首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从域覆盖Kamailio

从域覆盖Kamailio
EN

Stack Overflow用户
提问于 2017-01-09 09:34:38
回答 2查看 1.6K关注 0票数 1

我用的是Kamailio 4.4我需要覆盖呼叫信息:来自报头域。sip.twilio.com到pstn.mycompany.io。示例:

代码语言:javascript
复制
From: "+16501112222" <sip:+16501112222@sip.twilio.com>

代码语言:javascript
复制
From: "+16501112222" <sip:+16501112222@pstn.mycompany.io>

调用流:

代码语言:javascript
复制
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. 

SP2的客户看到了Twilio打来的电话。为了将SIP调用重定向到SP2,Kamailio执行DNS查找。虽然我看到这段代码正在执行,但我尝试了以下运气。使用Kamailio默认调用脚本。

代码语言:javascript
复制
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);
}

相关:Twilio overwrite callerId with SIP calls

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-16 17:45:40

在kamailio.cfg中更改From URI可以使用以下方法完成:

  • uac_replace_from()函数来自uac模块。这还可以对答复进行反向更改,还可以在相同对话框的后续请求中更新标头。
  • 将字符串(或变量)分配给$fu (或$fU/$fd)。此选项不处理反向更改和后续请求。

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

票数 5
EN

Stack Overflow用户

发布于 2017-01-20 09:03:19

这样做是有效的:

代码语言:javascript
复制
# 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);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41544857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档