1

我正在构建一个应用程序,其中一项功能已与 Twilio 集成。

我使用 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 调用后的响应,并且出站调用不会引发任何错误。我究竟做错了什么?

谢谢!

4

2 回答 2

1

您启动出站呼叫的代码看起来是正确的。

REST API 可能会返回异常。我已更改您的代码以使用 InitiateOutboundCall 方法回调参数来检查 RestException 属性是否不为空:

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 的实际请求期间发生了什么。

于 2012-03-02T18:37:33.920 回答
0

我有一个类似的问题,想在这里发帖,以防其他人像我一样发现这个问题。(当时这是在搜索“InitiateOutboundCall”时出现的唯一内容。)

就我而言,我的应用程序或 Twilio 都没有抛出异常。对 InitiateOutboundCall 的调用根本没有做任何事情。

文档清楚地表明 URL 必须是绝对的,并且我已经省略了“http://”。添加后,一切都按预期工作。

于 2012-10-08T13:09:21.720 回答