有没有办法将Dial
动词与IfMachine
参数结合使用?拨号动词页面(https://www.twilio.com/docs/api/twiml/dial)上没有显示任何内容,表示IfMachine
可以使用该参数或是否将其传递给生成的Action参数.
我发现这篇文章检测是否有一个应答服务,答案是"将IfMachine参数放在你的TwiML中",但我没有看到IfMachine
TwiML中使用的参数的任何例子.我只看到过它与REST API一起使用的例子.
我正在尝试让我的应用程序重定向呼叫,然后如果重定向呼叫被应答机接收,然后发送文本消息.理想情况下,传入呼叫TwiML看起来像:
555-5555
然后我的sendSmsIfMachine页面会有类似的东西:
@{ Response.ContentType = "text/xml"; if(Response["AnsweredBy"] == "machine") { var twimlResponse = new TwilioResponse(); twimlResponse.Message("You got a voicemail", new { to = "555-5556" }); Response.Write(twimlResponse.ToString(); } }
当我尝试这个时,对sendSmsIfMachine.cshtml的结果请求根据Twilio日志没有包含AnsweredBy参数.
No Twiml不支持(AMD)ifMachine
参数.我已经联系过Twilio关于这个问题,下面是回复.
嗨Sisir,
谢谢你的提问.不,只有API才能支持TwiML.这意味着IfMachine和AnsweredBy仅对REST API启动的调用有效.
当我们发布AMD时,这是一个故意排除.机器检测的工作方式是在连接呼叫之前监听应答方一秒钟.然后,如果它听到听起来像人类的音频模式,它会让呼叫连接起来.
呼叫的问题在于线路上通常有用户已经在等待被叫方接听.因此,如果机器检测"吃掉"呼叫的第一秒,则已经在电话上的人不会听到被叫方说"你好".这会引起一些尴尬的沉默.
最好的祝福,
Twilio客户支持
因此,如果您想使用AMD功能,您必须使用REST API.