【问题标题】:Pass Data to use in TwiML for Outbound Call传递数据以在 TwiML 中用于出站呼叫
【发布时间】:2013-08-12 21:07:41
【问题描述】:

我创建了一个托管在 Azure 中的 WCF 服务。此服务用于从 SalesForce 工作流中插入数据。然后,该服务将调用特定文件(建议使用 cshtml),具体取决于需要通过来自 Twilio 的出站呼叫通知哪个团队。我需要将数据从 web 服务传递到创建/返回 TwiML 的文件。我想不出办法做到这一点,猜测 cshtml 不是要走的路吗?我目前正在使用 Twilio NuGet 包进行出站呼叫。我正在使用演示 URL 进行测试 (http://demo.twilio.com/docs/voice.xml)。这工作正常。刚才需要传递 SalesForce 数据以在创建 TwiML 时使用。将有很多字段需要传递,因此如果可能的话,我希望避免将它们附加到我的 URL 中。我到目前为止的代码如下。任何帮助/建议将不胜感激。谢谢!

        var client = new TwilioRestClient(accountSid, authToken);

        client.SendSmsMessage("", "", "Test Twilio SMS from Windows Azure Webservice", r =>
        {
            if (r.RestException != null)
            {
                //an exception occurred making the REST call
                string message = r.RestException.Message;
            }
        });

        CallOptions options = new CallOptions();
        options.To = "";
        options.From = "";
        options.Url = "http://demo.twilio.com/docs/voice.xml";
        options.Timeout = 5;
        options.IfMachine = "Hangup";

        client.InitiateOutboundCall(options);

【问题讨论】:

    标签: c# .net twilio


    【解决方案1】:

    Twilio Evangelist 在这里,如果您想避免将所有数据放在 URL 中,那么您可能只需添加一个 ID 作为状态数据,以便您找到原始的 SalesForce 数据。所以基本上,你需要一个沿着这些线路之一的 ID:

    https://example.com/calls/1234567890
    https://example.com/calls?some_id=1234567890
    

    然后,当您的应用程序收到此请求时,它可以使用此 ID 查找将允许它生成 TwiML 的数据。

    现在你可以做很多不同的事情:

    • 使用与销售人员关联的 ID
    • 创建一个键值对,将您的销售人员数据存储在内存(缓存)中 - 尽管记住要处理多个服务器或大量请求。
    • 将数据存储在数据库中,并使用记录的 ID。
    • 或根据销售人员数据预先计算您的 TwiML,拨打电话,然后根据上述选项之一存储 TwiML。

    第二种选择是相反。当您使用 API 创建 Twilio 调用时,您将获得调用的标识符 (Call SID)。当 Twilio 发出获取 TwiML 的请求时,它将提供此 SID,因此您可以轻松地将 API 请求与 TwiML 请求结合起来。您只需要以一种允许您查找原始数据的方式存储该 SID,或者再次查找一些预先生成的 TwiML。

    希望这会有所帮助!

    【讨论】:

    • 太好了,谢谢!我喜欢 ID 方法,我想我会尝试一下。你知道我可以偶然参考的一个好例子吗?我在我的网络服务中几乎确定了他的 C# 代码。最好有一个我调用的文件示例并将生成 TwiML 的 ID 参数传递给该文件。这是我第一次接触 Twilio,因此任何可用的 sn-ps 都会非常有帮助。再次感谢!
    • 需要在CallOptions的Url参数中添加ID。我建议您使用特定于您的域的内容,例如“myco_id”。然后,当 Twilio 联系该 URL 时,您必须呈现正确的 TwiML,使用该 ID 从 SalesForce 获取数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    相关资源
    最近更新 更多