Стоит Kamailio в сети с IP RFC1918.
Есть пользователи, у которых за роутерами также используются эти же сети.
Проблему с маршрутизацией как-то они решают, моя задача объяснить Kamailio, что данные пользователи стоят за NAT.
Я решил проверять только сеть 172.16, с остальными сетями пользователи сами пусть мудохаются.
Пытался сделать так:
| Код: |
| route[2]{ force_rport(); if (nat_uac_test("18")) { if (method=="REGISTER") { fix_nated_register(); } else { fix_nated_contact(); }; setflag(5); } # Contact:: sip:22222@172.16.0.2:5061 Q=0 else if search('Contact:.*sip:[0-9].+@172\.16\..+') { xlog("L_INFO","Fix NAT user with src_ip=$src_ip\n"); if (method=="REGISTER") { nat_keepalive(); $avp(s:received_uri) = $source_uri; fix_nated_register(); } else { $avp(s:received_uri) = $source_uri; fix_nated_contact(); } setflag(5); } |
Но видимо не правильно search пишу, т.к. проверка не срабатывает.
Отсюда два вопроса:
1. Как правильно написать search
2. Какой еще способ подскажете?
P.S. Kamailio version: 1.4.3
_________________
Maksim Timofejev
| Цитата: |
| .... # # If (received.ip != topmost_via.ip) || # (received.port != topmost_via.port) # if(nat_uac_test("18")) { xlog("L_INFO", "Request is behind NAT"); .... } .... |
Попробую, спасибо.
| Код: |
| # If (received.ip != topmost_via.ip) || # (received.port != topmost_via.port) |
Код
| Код: |
| if(nat_uac_test("18")) |
_________________
Maksim Timofejev
| tma писал(а): | ||
| Код |
| Код: |
| if(nat_uac_test("18")) |
И в каких неработает?
Лично у меня все работает, только два телефона за одним NAT'ом не работают. Не разбирался еще (есть идеи?).
А вот пользователи жаловались, но они всегда жалуются и чаще всего не по делу, так что возможно я и не прав.
_________________
Maksim Timofejev
Только вот по куску конфига и отсутствию логов проблемных звонков врятли можно генерировать правильные идеи...
| simax писал(а): |
| Только вот по куску конфига и отсутствию логов проблемных звонков врятли можно генерировать правильные идеи... |
Как только будут -- выложу.
Пока я столкнулся с проблемами, описанными в соседних топиках:
1. Kamailio падает при использовании БД. Причем пока не смог выявить в какой момент, хотя есть варианты.
2. Преобразование номера в e164 для биллинга (авторизация через radius).
_________________
Maksim Timofejev