FreePBX Twilio Outbound Ringtone

时间:2017-11-29 09:59:40

标签: webrtc twilio asterisk sip freepbx

我有一个连接到FreePbx的Twilio SIP中继,所有用户都使用FreePBX的webrtc模块拨打电话。他们可以使用双向音频拨打和接听电话,但是对于拨出呼叫,呼叫者听不到铃声(振铃),因为B号码正在振铃,这会导致用户产生某种程度的混淆。

我已经检查了出站拨号设置中的r标志,这已启用,但除此之外我有点卡住了。

[SIP SETTINGS]

   host=hostname
   username=username
   secret=supersecret
   type=peer

在设置中 - >星号SIP设置我有外部和内部网络设置

要确认,使用带扩展功能的软电话工作正常,只能通过WEBRTC。

我已经打开了wireshark的痕迹,这些都显示了两端的180响声

详细通话记录:https://pastebin.com/s7BfwUMw

1 个答案:

答案 0 :(得分:4)

查看您的日志,在180 Ringing通话结束后,10:17:13已正确接收来自Twilio的10:17:09活动,并已在10:17:19处接听因此,当您发现它时,问题不是来自上游运营商不发送信令信息,而是来自Asterisk,或来自内部WebRTC FreePBX客户​​端。

想到这里,但是如果由于某种原因,你的WebRTC客户端还没有准备好处理音频事件,那么认为呼叫已经开始(并且被叫方正在振铃),那么你将听不到任何回铃音。例如,如果您的WebRTC客户端在没有收集所有ICE候选者的情况下启动呼叫(这是trickle ICE连接模式,则会发生这种情况,但事实并非如此,因为我认为Asterisk不支持它)。不幸的是,除了修改WebRTC客户端的配置或JavaScript代码之外,在这种情况下你无能为力。

现在,在Asterisk方面,确实r选项应该可以完成。我不确定FreePBX是否允许您控制拨号方案命令,但如果确实如此,您可能想尝试强制Asterisk接听电话,然后在拨出时播放铃声。 PlayTones函数可能非常有用。

exten => _44X.,1,Answer
exten => _44X.,n,Wait(1)
exten => _44X.,n,Playtones(ring)
exten => _44X.,n,Wait(3)
exten => _44X.,n,Dial(SIP/...)

请注意,您必须正确配置indications.conf文件才能使其正常工作。我想其他功能如RingingProgress可以使用,但我认为在拨出之前接听电话的想法值得一试。当然,这有点笨拙,因为要走的路应该是Dial 而不使用 r选项。

希望这有帮助!