从控制台客户端进行自定义内容出站语音呼叫
我正在尝试使用Twilio和C#进行传出呼叫。从控制台客户端进行自定义内容出站语音呼叫
我给出了(fromnumber,tonumber,twiliodemourl)作为3个参数,用于启动 出站呼叫。然后它使用默认的twilio演示语音内容。
现在我需要自定义语音内容属性,每一次我触发启动外呼方法
我已经通过Twilio文档走后,我没有发现什么好的选择用于动态定制 内容时,一些其他属性 从每次我发送请求时使用C#的代码。
我的客户端应用程序定期运行以验证任何新消息,然后触发initiateoutboundall。
我没有任何自定义URL来发布语音正在寻找的第3个 参数initiateOutBoundCall的新XML。
那么是否需要一个外部域名URL才能从代码动态定制语音内容? 如果没有请提供选项/示例我必须从C#控制台应用程序中执行此操作。
我试图使用twimlets.com来呼应自定义文本以在通话中发言。 对于文本更改它与自定义文本工作正常。但我不确定twimlets.com/echo是否可用于生产用途?请确认。 Twimlets不支持我正在寻找的一些功能,例如收集输入 ,如IVR消息,用于出站呼叫。
使用Twilio的语音和C#的客户端:
-
声音请求使用Twilio C#的客户端?
- 拨号与自定义语音内容()。如果用户没有回复,则留下带有自定义语音内容的 语音邮件()。
- 拨号与自定义语音内容()。如果用户回应,在阅读 后,需要提供以下选项:
- 按1可重复播放相同的语音留言。
- 按2确认消息上的操作。
- 按3发送语音留言短信。
-
需要获得每个语音呼叫/消息的响应?
-
对于短信它发送我得到的响应为“排队”,而不是消息发送。 基于短信发送成功与否我需要更新一些标志。 所以我怎么能得到短信响应作为“发送”。
SMSMessage sms = twilio.SendSmsMessage(sFromNumber, sToNumber, sMessage); Console.WriteLine("SMS Status::::::" + sms.Status);
-
同样,我需要响应的语音呼叫一旦呼叫是振铃id完成。 但它给“排队”。
var call = twilio.InitiateOutboundCall(sFromNumber,sToNumber, url); Console.WriteLine("Call Status" + call.Status);
-
所以,请给我提供了使用Twilio做选择。
如果您使用C#提供任何示例示例,那就太好了。
Twilio福音传教士在这里。
您确实需要某种类型的公开URL,Twilio可以在出站呼叫得到应答后发出HTTP请求。这就是Twilio如何获得所需的指示,以便继续进行实时的进行中的呼叫。
正如您所指出的,有许多托管静态TwiML内容的免费选项。 Twimlets就是其中之一。 Twimlbin.com是另一个。这两个服务都是免费的,并且至少可以开始原型设计或设置应用程序的简单MVP,但请记住,如果您期望有大量流量,或者需要使用自己的定制逻辑构建某些内容,那么您可能会想要转向别的东西。
其他的东西可能是您自己的网站作为Azure网站托管(您也可以免费获得)。移动到自己的网站也意味着您可以根据需要进行扩展,并且您可以开始提供动态生成的TwiML,而不仅仅限于动态TwiML,因为您基本上使用Twimlets或Twimlbin。
如果您想处理来自<Gather>
的输入并且没有Twimlets满足您的需求,那么您可能需要查看Azure选项(或某种托管网站,不一定是Azure)。这将允许您构建自己的自定义逻辑,以便处理调用者输入并根据该逻辑动态生成TwiML响应。
Twilio为TwiML生成提供助手库,并使用ASP.NET MVC构建Twilio应用程序,您可以从NuGet获取它。
假设您想要使用ASP.NET MVC构建自己的自定义Twilio应用程序,并使用Azure网站托管它。在这种情况下,使用我们的帮助程序库,您可以在您的控制器中构建一个操作方法,该方法返回带有<Say>
和<Gather>
动词的TwiML。喜欢的东西:
var response = new TwilioResponse();
response.Say("Hello World");
response.BeginGather(new { action="http://example.azurewebsites.com/gather/" });
response.EndGather();
您将提供执行该操作方法在initiaizeOutboundCall
方法如第三个参数的网址:
client.IntializeOutboundCall(FROM, TO, "http://example.azurewebsites.net");
一旦用户输入他们的意见,Twilio将请求URL你在<Gather>
动词动作参数指定传递你被点名了数字的额外的HTTP参数,你可以在你的操作方法,抓住并在您的应用程序逻辑中使用:
public void Gather(string Digits) {
var response = new TwilioResponse();
response.Say("You pressed " + Digits);
return TwiML(response);
}
为了得到一个电话或短信的状态,可以包括使用statuscallback参数:
短信:
var result = client.SendMessage(FROM, TO, BODY, "http://example.azurewebsites.net/status");
配音:
var result = client.InitiateOutboundCall(FROM, TO, VOICEURL, "http://example.azurewebsites.net/status");
Twilio将使一旦达到了消息或呼叫的最终状态,就向statusCallback URL发送HTTP请求。
希望有所帮助。
感谢您的回应和帮助。我没有得到的一件事我无法获得短信的状态,Voice.Please帮助我理解。我需要创建一个动作“状态”http://example.azurewebsites。 net/status在默认controller.If是什么输入参数什么内容我应该为公共ActionResult状态(){} – user3311016 2015-01-13 20:07:03
我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 – 2014-09-12 20:27:46