我有一个Twilio中继连接到FreePbx,所有的用户都在使用FreePBX的webrtc模块进行呼叫。他们可以用双向音频很好地打电话和接收电话,但是对于出站电话,由于B号码正在响,所以打出去的人听不到铃声(铃声),这造成了与用户的某种程度的混淆。
我已经检查了出站拨号设置中的r标志,这是启用的,但是除了这个之外,我有点卡住了。
SIP设置
host=hostname
username=username
secret=supersecret
type=peer在设置->星号Settings中,设置了外部和内部网络
要确认的是,使用带有扩展的软电话可以正常工作,只能通过WEBRTC。
我给wireshark打了电话,这些都显示了180响
发布于 2017-12-13 12:30:05
查看您的日志,您可以正确地从10:17:13的Twilio那里接收到该事件,在10:17:09开始呼叫并在10:17:19上得到响应之后,您发现问题并不来自上游运营商没有发送信令信息,而是来自星号,或者来自内部WebRTC FreePBX客户端。
只是在这里思考一下,但是如果由于某种原因,您的WebRTC客户端还没有准备好在呼叫已经启动的情况下处理音频事件(并且被呼叫者正在响),那么您将不会听到任何回铃音。例如,如果您的WebRTC客户端启动调用时没有收集其所有ICE候选项(这是trickle ICE连接模式,但情况不应该是这样,因为我认为星号不支持它),就会出现这种情况。不幸的是,在这种情况下,除了修改WebRTC客户机的配置或WebRTC代码之外,您无能为力。
现在,在星号方面,实际上,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选项。
希望这能有所帮助!
https://stackoverflow.com/questions/47549883
复制相似问题