聊天覆盖来自域
Kamailio overwrite From domain
我正在使用 Kamailio 4.4。我需要覆盖呼叫信息:来自 header 域。
sip.twilio.com 到 pstn.mycompany.io。示例:
From: "+16501112222" <sip:+16501112222@sip.twilio.com>
至
From: "+16501112222" <sip:+16501112222@pstn.mycompany.io>
调用流程:
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 默认调用脚本。
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
更改 kamailio.cfg 中的 From URI 可以通过以下方式完成:
uac_replace_from() 来自 uac 模块的函数。这也可以对回复进行反向更改,并在同一对话框的后续请求中更新 header
分配一个字符串(或变量)给$fu(或$fU/$fd)。此选项不处理反向更改和跟进请求。
您使用了第二个选项,但请注意更改不会立即可见。所以在分配给 $fd 之后打印 $fu 将打印 From URI 的旧值。查看网络流量,header 应该更新。如果没有,请查看系统日志以查看是否有任何错误消息。此外,加载调试器模块并将其参数 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);
}
我正在使用 Kamailio 4.4。我需要覆盖呼叫信息:来自 header 域。 sip.twilio.com 到 pstn.mycompany.io。示例:
From: "+16501112222" <sip:+16501112222@sip.twilio.com>
至
From: "+16501112222" <sip:+16501112222@pstn.mycompany.io>
调用流程:
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 默认调用脚本。
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
更改 kamailio.cfg 中的 From URI 可以通过以下方式完成:
uac_replace_from() 来自 uac 模块的函数。这也可以对回复进行反向更改,并在同一对话框的后续请求中更新 header
分配一个字符串(或变量)给$fu(或$fU/$fd)。此选项不处理反向更改和跟进请求。
您使用了第二个选项,但请注意更改不会立即可见。所以在分配给 $fd 之后打印 $fu 将打印 From URI 的旧值。查看网络流量,header 应该更新。如果没有,请查看系统日志以查看是否有任何错误消息。此外,加载调试器模块并将其参数 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);
}