当SIP代理无法访问端点时,状态码为477的适当SIP响应

时间:2019-05-03 09:44:02

标签: sip freeswitch sip-server

在一个实现中,我遇到了一个情况,即freeswitch充当代理。当前面的调度程序服务器关闭时,它会生成477,因为我无法在Sip草稿中找到我认为保留原因为“ Send Failed”(基于参考:http://opensips-open-sip-server.1449251.n2.nabble.com/SIP-2-0-477-Send-failed-477-TM-Route-td7595929.html)的任何地方的477。不确定是否符合运营商支持的标准。有关sip 477响应的任何文档都将有所帮助。

1 个答案:

答案 0 :(得分:2)

所有由rfc定义的官方回复均在 Internet分配号码授权机构 iana.org 中列出。

您可以找到列表here

rfc3261明确允许任何应用程序(或新的rfc)扩展SIP并使用新的代码。它还允许对您定义的响应代码以及预定义的响应代码使用任何自定义的原因...

在rfc3261中,有关原因短语Section: 7.2 Responses

  

尽管本规范出于某些原因建议使用特定措辞   词组,实现可以选择其他文本,例如,在   语言的“接受语言”标头字段中指示的语言   请求。

从rfc3261开始,关于状态代码:在SIP的BNF中对状态代码的使用没有限制。

请参见Section 25 Augmented BNF for the SIP Protocol

Status-Code     =  Informational
               /   Redirection
               /   Success
               /   Client-Error
               /   Server-Error
               /   Global-Failure
               /   extension-code
extension-code  =  3DIGIT

上面重要的部分是 extension-code = 3DIGIT ,这意味着可以使用任何3位数字(当然,只能使用100到699)。

PS:477是在kamailio,opensips,ser,openser系列中看到的特定代码,如果我正确的话,通常表示传输层有错误。