2016-10-28 14 views
1

私はtwilioの声でアプリを構築しています。私はすべての電話の仕事をしています。しかし、私はコールバックが持っている必要があるパラメータを理解するのに少し問題があります。Twilio StatusCallback not working:

ドキュメントで説明したように、私はURLを登録した

   options.From = formatPhoneNumber(callout.callback_number); 
       options.To = formatPhoneNumber(offer.employee_phone_number); 
       options.Url = TwilioCallBotController.TwilioCalloutScriptURL; 
       options.StatusCallback = TwilioCallBotController.StatusCallbackURL; 
       options.StatusCallbackEvents = new []{"initiated", "ringing", "answered", "completed" }; 
       options.StatusCallbackMethod = "POST"; 

私もここにコールバックメソッドを作ったが、私はパラメータが動作するようになっている方法を見つける多くの幸運を持っていませんよAPIを使用して私は働いていない。この1の背後にある理由の何ができるかについての損失でkindofがよ:

[HttpPost] 
     public ActionResult TwilioStatusCallback() 
     { 
      var twiml = new Twilio.TwiML.TwilioResponse(); 
      twiml.Say("This is a test"); 
      string CallSid = Request.Form["CallSid"]; 
      string CallStatus = Request.Form["CallStatus"]; 
      Debug.WriteLine("Status Callback Delivered"); 
      Shift_Offer shoffer = db.Shift_Offers.Where(s => s.twillio_sid == CallSid).ToList()[0]; 
      shoffer.status = CallStatus.ToString();// + DateTime.Now.ToString(); 
      return TwiML(twiml); 
     } 

編集: だから、(呼び出しが以前に投げていたAPIは、メソッドのシグネチャについて非常に敏感であることが判明しますSystem.WebとSystem.Web.Mvcを含むいくつかのMicrosoft DLLでメソッドが例外を検出しません。

私は実際には、空のメソッドシグネチャ(パラメータなし)を使用してメソッドを呼び出すようにソフトウェアを取得しました。

しかし、まだHTTPPOSTからパラメータを取得するのに問題があります

編集:それ以上の調査で、私は依頼を検査することができました。後の値はRequest.Form ["foo"]に存在しますが、宣言した2つの文字列に入れられていないようです。私は["HttpPost"]属性を削除して問題を解決しようとしましたが、なぜデバッガの値を見ることができるのかが分かりませんが、メモリに変換されません。

public ActionResult TwilioStatusCallback() 
{ 
    var twiml = new Twilio.TwiML.TwilioResponse(); 
    string sid = Request.Form["CallSid"]; 
    string status = Request.Form["CallStatus"]; 
    Shift_Offer shoffer = db.Shift_Offers.Where(s => s.twillio_sid == sid).ToList()[0]; 
    shoffer.status = status;// + DateTime.Now.ToString(); 
    return TwiML(twiml); 
} 

答えて

0

最後の問題は、データベースが保存されていないことでした。

db.SaveChanges()が追加されました。