故障转发状态码和故障在failure_route中为空

时间:2018-01-25 16:47:22

标签: sip kamailio

我尝试调试使用以下kamailio配置记录null null的值时获得$rs $rr的原因。

在request_route中:

if (is_method("REGISTER")) {
    t_on_reply("REGISTER_FROM_USER");
    # In case of a failure, do a failover:
    t_on_failure("FAILURE_TO_REGISTRAR");
}

在failure_route中:

failure_route[FAILURE_TO_REGISTRAR] {
  xlog("L_INFO","Registrar replied (failure): $rs $rr\n");

输出:

Registrar replied (failure): <null> <null>

1 个答案:

答案 0 :(得分:5)

failure_route中,事务的SIP请求(例如,REGISTERINVITE)正在处理中,而不是触发执行 failure_route的SIP响应。这在failure_route here的核心文档中标识为:

  

请注意,在'failure_route'中处理发起交易的请求,而不是回复。

如果正在处理的邮件是回复,$rs$rr会返回响应代码和原因文本。在这种情况下,正在处理的消息是请求,因此这些变量都返回null

要在failure_route中获取回复代码和原因文本,请按照here所述使用事务变量T(reply_code)T(reply_reason)