Jump to content
Калькуляторы

Kamailio, rtpproxy - в локальной сети за NAT

Добрый день коллеги,

 

настривал ли кто-то kamailio за nat, когда на нем только ip из локальной сети? Виртуаляв яндекс облаке, поэтому внешний ip поставить нереально.

Получается так: клиент - (интернет) - роутер_NAT - (локальная сеть) - kamailio - pbx

 

на камаилио пока интерфейс один, но можно несколько сделать

 

сделал 2 листнера 
listen=udp:10.130.0.23:5070 #локалка в сторону pbx (не нужен via с внешним айпи)
listen=udp:10.130.0.23:5060 advertise 178.0.0.169:5060 #интернет (клиентам в инетрнете нужен via с внешним айпи)

 

ввел этот параметр, но в моей ситуации бесполезен, т.к. нужно 2 интерфейса с внешним и локальным айпи, и маршрутизация на уровне линукса
mhomed = 1

 

Клиент шлет регистрацию и инвайты на 178.0.0.169:5060, роутер это пересылает на мой kamailio на  udp:10.130.0.23:5060

Я конфигом принимаю, и пересылаю на сокет udp:10.130.0.23:5070

В итоге моя pbx получает sip от udp:10.130.0.23:5070 с via 10.130.0.23

 

ответные пакеты в интернет уходят с udp:10.130.0.23:5060 и via 178.0.0.169

 

в роуте RELAY поставил так:
if ($Ru == «udp:10.130.0.23:5070») {
#set_send_socket(«udp:10.130.0.23:5060»);
$fs = «udp:10.130.0.23:5060»;
#force_send_socket(«udp:10.130.0.23:5060»);
} else {
#set_send_socket(«udp:10.130.0.23:5070»);
$fs = «udp:10.130.0.23:5070»;
}
#$fs = «udp:10.130.0.23:5070»;
if (!t_relay()) {
sl_reply_error();
}

 

route[REGISTRAR] {

        if ($rd == "mydomain.ru" || $rd == "mydomain2.ru") {

          set_send_socket("udp:10.130.0.23:5070");

         }

}

 

Это срабатывает для запросов из интернета в локалку. Когда же моя pbx инициирует invite в сторону клиента, INVITE от pbx заходит в udp:10.130.0.23:5070 и выходит с этого же сокета из-за ошибки (pv [pv_branch.c:62]: pv_get_branchx_helper(): error accessing branch [0])

 

Либо что-то я делаю не так, либо это не должно работать. Не могу найти примеры настройки  kamailio за нат.

или эти листнеры должны быть для разных интерфейсов?

Или вообще надо настраивать с одним листнером не мучиться с сокетами? но тогда не cмогу управлять полем via

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.