C# 传递数据以在TwiML中用于出站呼叫

C# 传递数据以在TwiML中用于出站呼叫,c#,.net,twilio,C#,.net,Twilio,我在Azure中创建了一个WCF服务。此服务用于从SalesForce工作流中导入数据。然后,服务将调用一个特定的文件(建议使用cshtml),这取决于哪个团队需要通过Twilio的出站调用得到通知。我需要将数据从webservice传递到创建/返回TwiML的文件。我想不出一个方法来做到这一点,猜测cshtml不是一个好方法?我目前正在使用Twilio NuGet软件包进行出站呼叫。我正在使用演示URL进行测试()。这很好用。刚才需要传递SalesForce数据,以便在创建TwiML时使用。将

我在Azure中创建了一个WCF服务。此服务用于从SalesForce工作流中导入数据。然后,服务将调用一个特定的文件(建议使用cshtml),这取决于哪个团队需要通过Twilio的出站调用得到通知。我需要将数据从webservice传递到创建/返回TwiML的文件。我想不出一个方法来做到这一点,猜测cshtml不是一个好方法?我目前正在使用Twilio NuGet软件包进行出站呼叫。我正在使用演示URL进行测试()。这很好用。刚才需要传递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);

Twilio Evangelist在这里,如果您想避免将所有数据放在URL中,那么您可能只需要添加一个ID作为一段状态数据,它允许您查找原始SalesForce数据。因此,基本上,您需要沿着以下其中一条线的ID:

https://example.com/calls/1234567890
https://example.com/calls?some_id=1234567890
然后,当您的应用程序接收到这个请求时,它可以使用这个ID来查找允许它生成TwiML的数据

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

  • 使用与Sales Force关联的ID
  • 创建一个键值对,将您的销售人员数据存储在内存(缓存)中,但记住要处理多个服务器或大量请求
  • 将数据存储在数据库中,并使用记录的ID
  • 或者根据销售人员数据预计算TwiML,拨打电话,并根据上述选项之一存储TwiML
第二个选择是做相反的事情。使用API创建Twilio调用时,将获得调用的标识符(调用SID)。当Twilio请求获取TwiML时,它将提供此SID,因此您可以轻松地将API请求与TwiML请求连接起来。您只需要以允许您查找原始数据的方式存储该SID,或者再次查找一些预生成的TwiML


希望这有帮助

太好了,谢谢!我喜欢ID方法,我想我会尝试一下。你知道一个好的例子,我可以参考的机会?在我的Web服务中,C#代码几乎已经固定下来了。最好有一个我调用的文件示例,并将生成TwiML的ID参数传递给它。这是我第一次接触Twilio,因此任何可用的片段都会非常有用。再次感谢!您需要将ID添加到CallOptions的Url参数中。我建议您使用特定于您的域的内容,例如“myco_id”。然后,当Twilio联系该URL时,您必须呈现正确的TwiML,使用该ID从SalesForce获取数据。