Kamailio覆盖来自域名

gog*_*sca 1 sip twilio kamailio

我正在使用Kamailio 4.4.我需要覆盖呼叫信息:来自头域.sip.twilio.com到pstn.mycompany.io.例:

From: "+16501112222" <sip:+16501112222@sip.twilio.com>
Run Code Online (Sandbox Code Playgroud)

From: "+16501112222" <sip:+16501112222@pstn.mycompany.io>
Run Code Online (Sandbox Code Playgroud)

呼叫流程:

Twilio (SP1) --> MyCompany --> SP2
Twilio SIP -> Calls: sip:14081112222@sip.mycompany.io -> Kamailio -> Kamailio look up table and convert sip:14081112222@sip.mycompany.io to sip:jdoe@sp2.com using dbaliases to send call to SP2. 
Run Code Online (Sandbox Code Playgroud)

SP2中的客户端看到来自Twilio的呼叫.为了将SIP呼叫重定向到SP2,Kamailio执行DNS查找.我尝试了以下运气,虽然我看到这个代码正在执行.使用Kamailio默认调用脚本.

branch_route[MANAGE_BRANCH] {

        if($fd=~"sip\.twilio\.com") {
           xlog("L_INFO","|Masking Twilio call from: $fu");
           $fd = "pstn.mycompany.io"; 

        }

        xdbg("new branch [$T_branch_idx] to: $ru from: $fu\n");
        route(NATMANAGE);
}
Run Code Online (Sandbox Code Playgroud)

相关: Twilio用SIP调用覆盖callerId

小智 5

更改kamailio.cfg中的From URI可以通过以下方式完成:

  • 来自uac模块的uac_replace_from()函数.这也可以对回复进行反向更改,也可以在同一对话框的后续请求中更新标头

  • 为$ fu(或$ fU/$ fd)分配一个字符串(或变量).此选项不会处理反向更改和后续请求.

您使用了第二个选项,但请注意,更改不会立即显示.因此,在分配给$ fd后打印$ fu将打印From URI的旧值.查看网络上的流量,应该更新标头.如果没有,请查看syslog以查看是否有任何错误消息.此外,加载调试器模块并将其参数cfgtrace设置为1可以帮助跟踪执行哪些配置文件行.