failure_route 中的 SIP 回复状态代码和原因为空

SIP reply status code and reason null in failure_route

我正在尝试调试为什么在使用以下 kamailio 配置记录 $rs $rr 的值时得到 null null

内部 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>

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

Note that in 'failure_route' is processed the request that initiated the transaction, not the reply .

如果正在处理的消息是响应,$rs$rr return 响应代码和原因文本。在这种情况下,正在处理的消息是请求,所以这些变量都是 return null

要在 failure_route 中获取响应代码和原因文本,请按照 here

所述使用交易变量 T(reply_code)T(reply_reason)