【问题标题】:How to change To header URI from Kamailio?如何从 Kamailio 更改 To 标头 URI?
【发布时间】:2017-12-05 06:00:59
【问题描述】:

我正在使用 Kamailio 4.4。我想将请求转发到我的端点的不同端口号。我已经更改了 destination URI 并且 INVITE 正确地到达了新端口。但是 INVITE 请求中的 To 标头 具有旧端口。所以端点没有响应请求。 然后我尝试使用 remove_hf("To")insert_hf("To: $var(modified_to_header) \r\ n"); 函数。但是 to 标题没有改变。

那么,有没有办法改变 To 标头 URI?

【问题讨论】:

    标签: proxy sip voip sip-server kamailio


    【解决方案1】:

    需要更多信息才能为您提供真正的答案,但通常“To”标头不用于路由(重播)。如果 INVITE 到达新端口,无论如何您都应该得到响应,甚至是错误。

    据我所知,问题不在“To”标题中,而是在重播地址中

    通常 UAS 在使用直接路由时将重播发送到 top 'Via' 标头或 'Contact' 标头(例如,您不称为 record_route)。这个过程描述在rfc3261 Sections 4 and 18.2.2

    因此,首先检查此标头您可以了解重播发送的位置。如果您将看到重播,您将获得更多信息来了解如何解决问题。

    无论如何要将数据包转发到不同的地址/端口,最好使用内部核心功能 rewritehostport 或类似的https://www.kamailio.org/wiki/cookbooks/4.4.x/core#rewritehostport。或调度程序,负载均衡器等模块。 它将自动为您完成所有职责,以真实的方式重写标题

    这里是简单的例子

    rewritehostport("1.2.3.4:5080");
    rewriteport("5070");
    

    要从 uac 模块更改“To”标头 uac_replace_to。 但是警告 - 在大多数情况下,没有理由进行此类重写,并且由于存储在标头中的标签可能会产生不可预知的影响。你应该确切地知道你在做什么。

    uac_replace_to("sip:batman@10.0.0.100:5090");
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-01
      相关资源
      最近更新 更多