use*_*852 4 python twilio twilio-twiml
背景
我正在尝试为我的twilio应用程序实施呼叫筛选 - 即一个人按下一个键接受呼叫.我已经看到了几个这样做的例子(例如,如何使用twilio来保证实时答案或语音邮件?)但是,对于将呼叫转发到多个号码的情况,给定的答案使用循环方法.
这个问题
有没有办法让所有人同时打电话,第一个通过挑战的人说话,所有其他电话断开连接?
为什么?
我想这样做是因为如果呼叫仅由循环中的最后一个人回答,则呼入呼叫者将需要等待一段时间.
Twilio Evangelist在这里,
当您收到初始呼叫(让我们称之为客户)时,请向他们询问一些信息<Gather>,或者播放一些持有音乐,无论您认为哪种方式最佳:
<Response>
<Play loop="0">/my_music.mp3</Play>
</Response>
Run Code Online (Sandbox Code Playgroud)
然后,使用REST API启动对我们称之为代理的3个出站调用.你需要注意Twilio的速率限制.这些调用中的每一个都将沿着这些行具有TwiML:
<Response>
<Gather numDigits="1" action="/accepted">
<Say>Incoming call from +X YYY ZZZZ ZZZZ</Say>
</Gather
<Response>
Run Code Online (Sandbox Code Playgroud)
现在,只要其中一个代理按下某个密钥(您当然可以添加拒绝选项等),它们就会被重定向到该actionURL.在您的服务器上,您需要响应第一个代理:
<Response>
<Dial>
<Conference>some-unique-room-name</Conference>
</Dial>
</Response>
Run Code Online (Sandbox Code Playgroud)
然后,您需要向REST API发出请求并更改客户呼入呼叫(例如仍在听音乐的人),并使用上述TwiML将客户放入与代理相同的会议室.
当任何后续代理决定接受呼叫时,它们将重定向到/acceptedURL,但由于您的应用程序已经知道客户已连接到另一个代理,因此您可以向他们播放一条消息,说明呼叫已被响应.
有一些方法可以扩展这个.例如,使用<Queue>TwiML动词更容易处理多个来电.
您可能还想使用动词url属性的'whisper'来查看<Number>.这允许您添加仅在代理端执行的额外TwiML文档.虽然你<Number>只使用多个动词,但第一个接听的代理人会听到耳语.
<Response>
<Dial>
<Number url="/whisper">+AGENTNUMBER</Number>
</Dial>
</Response>
Run Code Online (Sandbox Code Playgroud)
该/whisperTwiML可以包含一个<Gather>要求代理接受呼叫.一旦呼叫到达TwimL文档的末尾,它就会将它们连接到呼叫客户.否则你可以<Hangup>用来拒绝.
在提供的链接上有大部分Python代码.我担心我不是一个Python编码器,但我猜TwiML有帮助吗?
祝好运!
| 归档时间: |
|
| 查看次数: |
1298 次 |
| 最近记录: |