Twilio Kamailio从域覆盖

Twilio Kamailio从域覆盖,twilio,sip,kamailio,Twilio,Sip,Kamailio,我用的是Kamailio4.4。我需要覆盖呼叫信息:来自标题域。 sip.twilio.com至pstn.mycompany.io。例如: From: "+16501112222" <sip:+16501112222@sip.twilio.com> SP2中的客户端看到来自Twilio的呼叫。为了将SIP调用重定向到SP2,Kamailio执行DNS查找。我尝试了以下运气,尽管我看到这段代码正在执行。使用Kamailio默认调用脚本 branch_route[MANAGE_BRAN

我用的是Kamailio4.4。我需要覆盖呼叫信息:来自标题域。 sip.twilio.com至pstn.mycompany.io。例如:

From: "+16501112222" <sip:+16501112222@sip.twilio.com>
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);
}
相关的:

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

  • uac模块中的uac_replace_from()函数。这还可以对回复进行反向更改,并在同一对话框的后续请求中更新标题

  • 将字符串(或变量)分配给$fu(或$fu/$fd)。此选项不处理反向更改和后续请求


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

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

  • uac模块中的uac_replace_from()函数。这还可以对回复进行反向更改,并在同一对话框的后续请求中更新标题

  • 将字符串(或变量)分配给$fu(或$fu/$fd)。此选项不处理反向更改和后续请求

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

这起到了作用:

# Add uac.so module
loadmodule "uac.so"


# Manage outgoing branches
branch_route[MANAGE_BRANCH] {


        xdbg("New branch [$T_branch_idx] to: $ru from: $fu $fd\n");
        xlog("L_DBG","$mb \n| New branch \n");  
        # Rewrite From Domain for X
        if($fd=~"sip.x.com") {
           xlog("L_DBG","$mb \n| RELAY | Masking X call from: $fu $fd");
           xlog("L_DBG","$mb \n| RELAY | From: $fu $fd"); 
           uac_replace_from("","sip:$fU@pstn.mycompany.io");
           xlog("L_DBG","$mb \n| RELAY | Call masked from: $fu");  
        }
        # We do not trust the user, let's remove the P-Asserted-Identity, if any:
        remove_hf("P-Asserted-Identity");
        remove_hf("P-Preferred-Identity");
        route(NATMANAGE);
}
这起到了作用:

# Add uac.so module
loadmodule "uac.so"


# Manage outgoing branches
branch_route[MANAGE_BRANCH] {


        xdbg("New branch [$T_branch_idx] to: $ru from: $fu $fd\n");
        xlog("L_DBG","$mb \n| New branch \n");  
        # Rewrite From Domain for X
        if($fd=~"sip.x.com") {
           xlog("L_DBG","$mb \n| RELAY | Masking X call from: $fu $fd");
           xlog("L_DBG","$mb \n| RELAY | From: $fu $fd"); 
           uac_replace_from("","sip:$fU@pstn.mycompany.io");
           xlog("L_DBG","$mb \n| RELAY | Call masked from: $fu");  
        }
        # We do not trust the user, let's remove the P-Asserted-Identity, if any:
        remove_hf("P-Asserted-Identity");
        remove_hf("P-Preferred-Identity");
        route(NATMANAGE);
}

欢迎回来并发布您的最终解决方案。我希望更多的人会这样做。今天,当我面临同样的问题时,我帮了我一把。为回来并发布你的最终解决方案而干杯。我希望更多的人会这样做。今天,当我面临同样的问题时,他帮助了我。
# Add uac.so module
loadmodule "uac.so"


# Manage outgoing branches
branch_route[MANAGE_BRANCH] {


        xdbg("New branch [$T_branch_idx] to: $ru from: $fu $fd\n");
        xlog("L_DBG","$mb \n| New branch \n");  
        # Rewrite From Domain for X
        if($fd=~"sip.x.com") {
           xlog("L_DBG","$mb \n| RELAY | Masking X call from: $fu $fd");
           xlog("L_DBG","$mb \n| RELAY | From: $fu $fd"); 
           uac_replace_from("","sip:$fU@pstn.mycompany.io");
           xlog("L_DBG","$mb \n| RELAY | Call masked from: $fu");  
        }
        # We do not trust the user, let's remove the P-Asserted-Identity, if any:
        remove_hf("P-Asserted-Identity");
        remove_hf("P-Preferred-Identity");
        route(NATMANAGE);
}