我在使用Twilio和C#时遇到了一个小问题。基本上,我在调用.Dial方法后无法控制调用。
考虑到我有以下代码:
TwilioResponse _twiml = new TwilioResponse();
_twiml.Dial(RedirectPhoneNumner, new { action = Url.Action("BusyCallAction"), timeout = 5 });`
以下内容将在我的应用程序中呈现:
<Response>
<Dial action="/Home/BusyCallAction" timeout="5">*RedirectPhoneNumber*</Dial>
</Response>
出于测试目的,我添加了 5秒的超时时间。 超时过后,呼叫结束,而不是将用户重定向到以下控制器:
[HttpPost]
public ActionResult BusyCallAction(string dialCallStatus)
{
if (dialCallStatus == "busy")
{
_twiml.Say(dialCallStatus);
//more code here
}
return TwiML(_twiml);
}
注意:该方法具有HttpPost数据注释,因为dial方法中的默认方法属性设置为 POST 。
我需要知道电话是否已被接听,或是否正忙。
答案 0 :(得分:3)
注意:Twilio的代理人之一回答了这个问题。我告诉他他应该在这里发布答案,但他没有SO账户,但。
解决方案确实很简单,代码按预期工作,但条件
if (dialCallStatus == "busy")
{
_twiml.Say(dialCallStatus);
//more code here
}
在此测试方案中永远不会触发,因为当超时发生时,状态为&#34; 无应答&#34;,如此处所指定:https://www.twilio.com/docs/api/twiml/dial
希望这个答案可以帮助任何处于同样情况的人。