2017-01-09 9 views
0

Я использую Kamailio 4.4. Мне нужно перезаписать информацию о вызове: из области заголовка. sip.twilio.com to pstn.mycompany.io. Пример:Kamailio overwrite Из домена

From: "+16501112222" <sip:[email protected]> 

в

From: "+16501112222" <sip:[email protected]> 

поток вызовов:

Twilio (SP1) --> MyCompany --> SP2 
Twilio SIP -> Calls: sip:[email protected] -> Kamailio -> Kamailio look up table and convert sip:[email protected] to sip:[email protected] using dbaliases to send call to SP2. 

Client в 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

ответ

2

Изменение From URI внутри kamailio.cfg может быть сделано с:

  • uac_replace_from() функции из модуля UAC. Это также может сделать обратное изменение для ответов, а также обновить заголовок в последующих запросах того же диалогового окна

  • присвойте строку (или переменную) переменной $ fu (или $ fU/$ fd). Этот вариант не заботится об обратном изменении и последующих запросах.

Вы использовали второй вариант, но имейте в виду, что это изменение не отображается сразу. Таким образом, печать $ fu после присвоения $ fd собирается напечатать старое значение из URI. Посмотрите на трафик в сети, там заголовок должен быть обновлен. Если нет, посмотрите в syslog, чтобы узнать, есть ли сообщения об ошибках. Кроме того, загрузка модуля отладчика и установка его параметра cfgtrace в 1 могут помочь отслеживать, какие строки файла конфигурации выполняются.

0

Это сработало:

# 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:[email protected]"); 
      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); 
}