Twilio Rest Api的出站呼叫未执行
问题描述:
我正在构建应用程序,其中一个功能与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调用后的响应和呼出呼叫不会引发任何错误接收数据的操作。 我在做什么错?
谢谢!
答
您发起呼出呼叫的代码看起来是正确的。
它有可能是从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请求过程中发生了什么。
答
我有类似的问题,并希望在这里发布,以防其他人发现像我这样的问题。 (当时这是搜索“InitiateOutboundCall”时唯一显示的内容)。
在我的案例中,我的应用程序或Twilio都没有抛出异常。对InitiateOutboundCall的调用根本就没有做任何事情。
该文档明确指出该URL必须是绝对的,而我已经放弃了“http://”。添加完成后,所有事情都按预期工作
哦,很酷。我会试试看,谢谢! – Ioni 2012-03-02 18:42:21
我修正了它,结果发现,其余的API会执行POST和我所有GET的操作,所以我改变它并使用CallOptions对象作为参数。 – Ioni 2012-03-05 17:02:41