0

我创建了一个托管在 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);
4

1 回答 1

2

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。

希望这可以帮助!

于 2013-08-13T09:16:40.210 回答