4

我在 C# 中使用 Twilio 时遇到了一个小问题。基本上,在调用 .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 seconds超时过后,调用结束,而不是将用户重定向到以下控制器:

[HttpPost]
public ActionResult BusyCallAction(string dialCallStatus)
    {
        if (dialCallStatus == "busy")
        {
            _twiml.Say(dialCallStatus);
            //more code here
        }
        return TwiML(_twiml);
    }

注意:该方法具有 HttpPost 数据注释,因为 dial 方法中的默认方法属性设置为POST

我需要知道电话是否被接听,或者是否占线。

4

1 回答 1

3

注意:这个问题由 Twilio 的一位代理回答。我告诉他他应该在这里发布答案,但他还没有 SO帐户

解决方案确实很简单,代码按预期工作,但是条件

if (dialCallStatus == "busy")
        {
            _twiml.Say(dialCallStatus);
            //more code here
        }

在这个测试场景中永远不会被触发,因为当超时发生时,状态是“ no-answer ”,如下所示:https ://www.twilio.com/docs/api/twiml/dial

希望这个答案可以帮助任何有同样情况的人。

于 2014-09-12T02:59:05.363 回答