我正在尝试编写一个 Asterisk 拨号计划来暂停 180-Ringing,直到 183-progress 之后。拨号计划中需要发生什么来防止这种情况发生?
您可以在下面看到跟踪: chan_sip 驱动程序发送“180 Ringing”,然后在上游中继(下一跳)发送 503 时立即得到 503,但这会使运营商感到不安。他们不想看到振铃,除非可以取得进展,所以我想禁止发送“180 Ringing”,直到上游中继发送“183 Progress”之后。
我查看了 Dial(SIP/117/X)功能参考/标志,但没有看到任何有用的信息。这是 chan_sip,但我也愿意接受 chan_pjsip 拨号计划函数调用或分支测试。
想法?
(仅供参考:这是一个拨号计划编程问题,而不是配置问题,所以根据 SE星号标记规则,我认为它属于 stackoverflow 而不是超级用户。)
22:29:02.539741 IP (tos 0x68, ttl 57, id 36866, offset 0, flags [none], proto UDP (17), length 1405)
10.0.0.101.5062 > 10.0.0.201.5060: SIP, length: 1377
"INVITE sip:117@10.0.0.201 SIP/2.0"
22:29:02.541085 IP (tos 0x60, ttl 64, id 22099, offset 0, flags [none], proto UDP (17), length 538)
10.0.0.201.5060 > 10.0.0.101.5062: SIP, length: 510
"SIP/2.0 100 Trying"
22:29:02.546553 IP (tos 0x60, ttl 64, id 22102, offset 0, flags [none], proto UDP (17), length 554)
10.0.0.201.5060 > 10.0.0.101.5062: SIP, length: 526
"SIP/2.0 180 Ringing" # but this is too early!
22:29:02.770970 IP (tos 0x60, ttl 64, id 22111, offset 0, flags [none], proto UDP (17), length 526)
10.0.0.201.5060 > 10.0.0.101.5062: SIP, length: 498
"SIP/2.0 503 Service Unavailable"