如何将出站 Twilio 网站修复为移动 VOIP 呼叫而不为呼叫者发出铃声?

时间:2021-05-07 16:09:05

标签: twilio twilio-twiml

我们有一个 javascript twilio 网页,可以调用经典电话号码或尝试使用 twilio 向移动应用拨打 VOIP 电话。

当拨打标准电话时,网站用户可以听到预期的铃声。但是,当呼叫被路由到 VOIP 用户时,twilio 只是静默,而被呼叫的移动应用程序处于振铃状态。这吓坏了那些认为网站失败的用户,而实际上只是在等待移动应用用户的回答。

虽然有许多不同的实现方式,但在等待 voip 用户接听时播放铃声的最简单的 twilio 实现是什么?

注意:从移动应用程序用户端开始,一切正常,对他们来说,电话正在响铃,而来电者没有听到响铃声音。我希望移动用户摘机时铃声停止,我不想挂断电话播放铃声。

如何在拨打 voip 用户时复制拨打普通电话号码的振铃效果?

1 个答案:

答案 0 :(得分:0)

显然,与经典的非 voip 通话不同,Voip call 不会自行出现以发出正常的铃声。所以必须提供自己的铃声 UI 效果或声音。

我在从正确配置的 ringing event 生成的 Twilio.Connection object 上使用了 Twilio.Device object。连接对象通常不会发出振铃事件。但如果在创建 enableRingingState 对象时将 true 配置参数设置为 Twilio.DeviceTwilio.Connection 对象将发出事件。

我使用该事件来开始使用不带 controls 属性和带有 loop 属性的 <Audio> element 的响铃录音。我录制了一个普通电话的铃声来播放,所以听起来是一样的。然后当电话接通时,我关闭了铃声。此外,如果 hasEarlyMedia 设置为 true,那么我也不播放铃声,因为可能会播放早期媒体的任何内容。不过,我还没有观察到这种情况。

如果我要拨打 voip 电话而不是标准电话,我会提前检测,以免造成双振铃效应。常规(非 voip)电话会提供自己的铃声。