2012-03-02 68 views
1

我正在構建應用程序,其中一個功能與Twilio集成在一起。Twilio Rest Api的出站呼叫未執行

我已經用Asp.Net Mvc 3完成了所有的IVR流程,並且所有工作都正常。 但是,其中一個功能是讓用戶輸入一個電話號碼並讓Twilio撥打該號碼並在其他用戶回答後播放。

我正在使用Twilio REST API進行調用,但調用沒有完成,並且在應用程序或Twilio上沒有任何錯誤。

我在做什麼是這樣的:我有一個從twilio


public ActionResult Dial(Call request, int opt) 
{ 

    var twilio = new TwilioRestClient(Configuration.TwilioAccKey, Configuration.TwilioAuthKey); 
    twilio.InitiateOutboundCall(Configuration.TwilioPhoneNumber, 
           "+" + request.Digits, 
           string.Format("{0}/Calls/Endorsement/Play?opt={1}", Configuration.BaseUrl, opt)); 

    var response = new TwilioResponse(); 
    response.Redirect("/Calls/Endorsement/Play?opt=" + opt, "GET"); 
    return TwiML(response); 
} 

正在執行的REST調用後的響應和呼出呼叫不會引發任何錯誤接收數據的操作。 我在做什麼錯?

謝謝!

回答

1

您發起呼出呼叫的代碼看起來是正確的。

它有可能是從REST API返回的異常。我已經改變了你的代碼使用InitiateOutboundCall方法回調參數來檢查RestException屬性不爲null:

var twilio = new TwilioRestClient(Configuration.TwilioAccKey, 
            Configuration.TwilioAuthKey); 
twilio.InitiateOutboundCall(Configuration.TwilioPhoneNumber, 
         "+" + request.Digits, 
         string.Format("{0}/Calls/Endorsement/Play?opt={1}", Configuration.BaseUrl, opt), 
         call => 
         { 
          if (call.RestException != null) 
          { 
           //handle the rest error 
          } 
         } 
        ); 

如果RestException爲null,並且沒有被記錄在Twilio調試日誌,那麼你最好的選擇可能是要打開Fiddler,看看在實際的API請求過程中發生了什麼。

+0

哦,很酷。我會試試看,謝謝! – Ioni 2012-03-02 18:42:21

+1

我修正了它,結果發現,其餘的API會執行POST和我所有GET的操作,所以我改變它並使用CallOptions對象作爲參數。 – Ioni 2012-03-05 17:02:41

0

我有類似的問題,並希望在這裏發佈,以防其他人發現像我這樣的問題。 (當時這是搜索「InitiateOutboundCall」時唯一顯示的內容)。

在我的案例中,我的應用程序或Twilio都沒有拋出異常。對InitiateOutboundCall的調用根本就沒有做任何事情。

該文檔明確指出該URL必須是絕對的,而我已經放棄了「http://」。添加完成後,所有事情都按預期工作