我正在构建一个应用程序,其中一个功能与Twilio集成。
我已经使用Asp.Net Mvc 3完成了所有IVR流程,到目前为止一切正常。 但是,其中一项功能是让用户输入一个电话号码,并让Twilio拨打该号码,并在其他用户应答后播放。
我正在使用Twilio REST API进行调用,但调用没有完成,我在应用程序或Twilio上没有任何错误。
我正在做的是:我有一个从twilio
接收数据的Action
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调用之后的响应,并且出站调用不会引发任何错误。 我做错了什么?
谢谢!
答案 0 :(得分: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期间发生了什么。
答案 1 :(得分:0)
我遇到了类似的问题,想在这里发帖以防其他人像我一样发现这个问题。 (当时这是搜索“InitiateOutboundCall”时唯一显示的内容。)
在我的情况下,我的应用程序或Twilio都没有抛出异常。对InitiateOutboundCall的调用根本就没有做任何事情。
文档清楚地表明URL必须是绝对的,我已经不使用“http://”。添加完毕后,一切都按预期工作。