Twilio:一次拨打多个电话号码并连接到第一个应答的电话号码

问题描述 投票:0回答:3

我想拨打多个号码并连接到第一个应答的号码。另外,一旦有人接听,其他号码就应该停止响铃。

我知道这里描述的解决方案:https://www.twilio.com/blog/2009/05/dialing-multiple-numbers-simultaneously-with-twilio.html

基本上由一个

Dial
动词和多个
Number
组成:

<Response>
  <Dial action="/handleDialStatus.php" method="GET">
    <Number>877-555-1212</Number>
    <Number>877-999-1234</Number>
    <Number>877-123-4567</Number>
  </Dial>
</Response>

但正如他们所说:

如果拨打的电话自动转到语音信箱或 自动应答系统,很可能会接听电话 其中一台机器的速度比任何人都能回答得更快。

这对我来说是个大问题,他们没有提供解决方案!

我实施了呼叫筛选,如此处所述。这个想法是要求被叫者在连接到呼叫者之前按任意键以避免应答机。

然而,一旦某个号码的筛选过程开始,其他电话就停止响铃!基本上它的行为就像被调用者已经连接一样,所以它根本不能解决问题。

还有其他解决办法吗?

twilio phone-call
3个回答
7
投票

这里是 Twilio 开发者布道者。

与其尝试通过存在您描述的问题的

<Dial>
连接到每个调用者,为什么不通过 REST API 单独进行和控制每个调用

这样,您就可以为您想要拨打的每个号码创建一个呼叫。然后,当电话接听时,提出呼叫筛选质询,如果呼叫成功,则将其连接到原始呼叫并取消您拨打的所有其他呼叫。

这里的缺点是,您需要为每个呼叫注册回调事件,以便您可以判断是否没有成功应答,然后在之后对原始呼叫执行某些操作。

请告诉我这是否有帮助。


2
投票

关于存储 SID 并根据 philnash 描述的状态处理未答复的解决方案肯定适用于理想世界,但不适用于现实生活。我只需要处理这种情况,这就是我的做法:

通过 API 创建 2 个以上的拨出呼叫,为了克服语音邮件问题,我添加了一个带有耳语的收集选项,如果该人不按任何键(很可能是语音邮件),则不会连接呼叫,如果第一次没有呼叫步骤将应答并按键,转到步骤 2,其中将触发另一组具有相同收集选项的 2 个以上呼叫,然后如果未应答,或已应答但未按下按键,则转至语音邮件。 最初,按照本线程中的建议,我专注于根据 SID 和 CallStatus 杀死未应答的呼叫,但不幸的是,电话线具有随机行为,同时触发的相同电话将开始在不同电话上彼此之间出现很大的延迟/运营商,因此我不能真正依赖 CallStatus。 经过多次尝试后,我只是使用了一个肮脏的解决方案,即在第一次调用结束后创建一个空的 txt 文件,并会触发 StatusCallBack url(所有触发的调用共享相同的 url),如果该文件存在,则不会再运行该文件相同的 url 会扰乱终止/保持呼叫。 可能有一种更优雅的方法来实现这一点,但对于我的用例来说,这被证明是最好的解决方案。


0
投票

你能弄清楚这一点吗? 我已经尝试同样的事情一个多星期了。还是没能解决。 您能给我推荐任何有帮助的文章吗?

非常感谢

© www.soinside.com 2019 - 2024. All rights reserved.