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



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

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

它基本上由一个Dial动词和多个Numbers组成:

<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开发者布道者在这里。

与其尝试通过具有您所描述问题的<Dial>连接到每个调用方,不如通过 REST API 单独进行和控制每个调用。

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

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

让我知道这是否有帮助。

关于存储 SID 和处理未回答的解决方案基于菲尔纳什描述的状态,肯定适用于理想世界,但在现实生活中则不然。我只需要处理这种情况,这就是我的做法:

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

相关内容

  • 没有找到相关文章

最新更新