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

How to fix outbound Twilio Website to Mobile VOIP Calls not making a ringing sound for the caller?

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

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

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

注意:从移动应用程序用户端一切正常,对他们来说 phone 正在响铃,是来电者没有听到铃声。我希望手机用户拿起后铃声停止,我不想挂断电话播放铃声。

如何在呼叫 voip 用户时复制呼叫常规 phone 号码的铃声效果?

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

我用的是ringing event on the Twilio.Connection object that is generated from a properly configured Twilio.Device object。连接对象通常不会发出振铃事件。但是如果在创建Twilio.Device对象时将enableRingingState配置参数设置为true,那么Twilio.Connection对象将发出事件。

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

如果我要拨打 voip 电话而不是标准电话,我会提前检测,这样我就不会产生双响效果。常规(非 voip)phone 通话会提供自己的铃声。