我有一个连接到freepbx的twilio sip trunk,所有用户都使用freepbx的webrtc模块进行呼叫。他们可以通过两条音频进行罚款和接听电话,但是在出口通话中,呼叫者不会听到铃声(铃声),因为B号响起,这会引起与用户的一定程度的混乱。
我已经在出站拨号设置中检查了R标志,这是启用的,但除此之外,我有点卡住了。
[SIP设置]
host=hostname
username=username
secret=supersecret
type=peer
在设置 ->星号sip设置中,我有外部和内部网络设置
要确认,使用带有扩展的软电话可以正常工作,只能通过webrtc。
我已经掌握了wireshark痕迹,所有这些都显示在两端的180响起
详细的呼叫日志:https://pastebin.com/s7bfwumw
查看您的日志,在呼叫启动10:17:09
之后,您正常从Twilio at Twilio从10:17:13
接收180 Ringing
事件,并在10:17:19
上得到了回答,因此当您发现它时,问题不是来自上游操作员不是发送信号信息,而是来自Asterisk或Internal WebRTC FreepBX客户端。
只是在这里思考,但是如果出于某种原因,您的WEBRTC客户端还没有准备好处理音频事件,以为呼叫已经开始(并且Callee正在响起),那么您将不会听到任何回合音调。例如,如果您的WEBRTC客户端启动呼叫而没有收集所有候选ICE,则可能发生这种情况(这是trickle ICE
连接模式,但事实并非如此,因为我认为Asterisk不支持它)。不幸的是,除了修改WEBRTC客户端的配置或JavaScript代码外,您无能为力。
现在,在星号侧,实际上,r
选项应该完成工作。我不确定FreepBX允许您控制拨号平面命令,但是如果这样做,您可能想尝试强迫星号接听电话,然后在拨出拨号时播放响铃音。然后,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
文件才能使此工作。我猜其他功能,例如铃声,进度可以使用,但是我认为在拨打呼叫之前接听电话的想法值得一试。当然,这有点骇客,因为要走的方法绝对应该是使用Dial
而无需r
选项。
希望这会有所帮助!