FreePBX Twilio 出站铃声

FreePBX Twilio Outbound Ringtone

我有一个Twilio SIP 中继连接到FreePbx,所有用户都使用FreePBX 的webrtc 模块拨打电话。他们可以通过双向音频正常拨打和接听电话,但是对于出站呼叫,呼叫者听不到铃声(响铃),因为 B 号码正在响铃,这导致用户在一定程度上感到困惑。

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

[SIP 设置]

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

在设置 -> Asterisk SIP 设置中我设置了外部和内部网络

确认一下,使用带分机的软电话可以正常工作,只能通过 WEBRTC。

我已经对 wireshark 跟踪进行了响铃,这些都显示两端均有 180 振铃

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

查看您的日志,在 10:17:09 开始通话并在 [=14] 接听电话后,您在 10:17:13 正确接收到来自 Twilio 的 180 Ringing 事件=],正如您所发现的,问题不是来自上游运营商未发送信令信息,而是来自 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 文件才能使其正常工作。我猜其他功能如Ringing, Progress 也可以使用,但我认为在拨出之前接听电话的想法值得一试。当然,这有点老套,因为绝对应该使用 Dial 而不使用 r 选项。

希望对您有所帮助!