PJSIP 在应该回复 404 的时候回复 503

PJSIP replies 503 when it should reply 404

我有一个星号 15.5,PJSIP 配置了两个端点:1 个 sip 中继和 1 个 sip 分机。当通过该中继从分机拨打电话时,目标号码不在服务中,我从中继收到 404,但 PJSIP 使用 503 回复我的分机,这并不完全符合我的需要。

00017 1544111045 * <== #.#.5.12:5060          SIP/2.0 404 Not Found
00018 1544111045 * ==> #.#.5.12:5060          ACK sip:092532145@#.#.5.12:5060 SIP/2.0
00019 1544111045 * ==> 192.168.1.243:65104      SIP/2.0 503 Service Unavailable

我可以配置任何 documented/undocumented 设置来引用扩展的确切失败代码吗?

404 - 找不到号码。 如果目标交换机上的号码,可以。

原因由提供者提供,而不是由您提供。所以它与pjsip无关。

没有配置,但是Hangup应用接受了一个原因码[1],并且有查询去电方原因码的方法。至于为什么没有转发404,是因为主叫方在Asterisk中找到分机

[1] https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Hangup

有拨号方案函数[2]可供检查,wiki 包含一个映射[3]。

[2] https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause [3] https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings

JColp 在 Asterisk 的社区找到了解决方案: 谢谢大佬

https://community.asterisk.org/t/pjsip-not-passing-correct-sip-code-to-endpoint/77510