Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

kamailio+rtpproxy+asterisk

0

Есть kamailio+rtpproxy на PU.BL.IC.IP, другой стороной в PR.IV.AT.IP.

Есть asterisk за нат. Kamailio и * cвязаны между собой по статье asipto

Два клиента с разных сетей (оба сидят за натом) снаружи цепляются к kamailio.

клиент A - A.IP и A.NAT_IP
клиент B - B.IP и B.NAT_IP

В астериске созданы экстеншены на прием голосовой почты и на звонки между абонентами

приступаем к тестированию

  1. Звоним с A и B на voicemail. Результат - слышимость в обе стороны, запись произведена успешно. RTP поток отправялется на PR.IV.AT.IP

  2. Звоним с клиента A на клиента B Результат - RTP пакеты в сторону B отправляются не через RTPPROXY а на B.NAT !!


Got  RTP packet from    PR.IV.AT.IP:54352 (type 00, seq 001250, ts 2972880, len 000160)
Sent RTP packet to      B.NAT_IP:42450 (type 00, seq 049499, ts 2972880, len 000160)
Got  RTP packet from    PR.IV.AT.IP:54352 (type 00, seq 001251, ts 2973040, len 000160)
Sent RTP packet to      B.NAT_IP:42450 (type 00, seq 049500, ts 2973040, len 000160)
  1. Звоним с клиента B на клиента A Результат - RTP пакеты в сторону A отправляются не через RTPPROXY а на A.NAT !!

Got  RTP packet from    PR.IV.AT.IP:54352 (type 00, seq 001250, ts 2972880, len 000160)
Sent RTP packet to      A.NAT_IP:42450 (type 00, seq 049499, ts 2972880, len 000160)
Got  RTP packet from    PR.IV.AT.IP:54352 (type 00, seq 001251, ts 2973040, len 000160)
Sent RTP packet to      A.NAT_IP:42450 (type 00, seq 049500, ts 2973040, len 000160)

начал дебажить kamailio на nat traversal

# Caller NAT detection route
route[NATDETECT] {
#!ifdef WITH_NAT
    force_rport();
    if ( nat_uac_test("19") ) {
        if (is_method("REGISTER")) {
            fix_nated_register();
            xlog('L_INFO',"route[NATDETECT] fix_nated_register()  $rm from $fu (IP:$si:$sp)\n");
        } else {
            fix_nated_contact();
            xlog('L_INFO',"route[NATDETECT] fix_nated_contact()  $rm from $fu (IP:$si:$sp)\n");
        }
        setflag(FLT_NATS);
    } else {
        xlog('L_INFO',"route[NATDETECT] NO NAT nat_uac_test(\"19\") is false.  $rm from $fu (IP:$si:$sp)\n");
    }
#!endif
    return;
}

что выяснилось - natuactest("19") не работает так как надо, а именно выдает FALSE для всех абонентов кроме приходящих из сети провайдера (хотя IP глобальный) в ситуации описанной первоначально оба абонента в сети провайдера

вот лог камалио с неправильным rtp

Sep  4 21:43:39 localhost /usr/local/sbin/kamailio[6439]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  REGISTER from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:39 localhost /usr/local/sbin/kamailio[6438]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  REGISTER from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:45 localhost /usr/local/sbin/kamailio[6441]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  REGISTER from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:45 localhost /usr/local/sbin/kamailio[6440]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  REGISTER from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:50 localhost /usr/local/sbin/kamailio[6439]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  INVITE from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:52 localhost /usr/local/sbin/kamailio[6438]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  INVITE from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:52 localhost /usr/local/sbin/kamailio[6440]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  INVITE from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:52 localhost /usr/local/sbin/kamailio[6440]: INFO: <script>: route[NATMANAGE] #1
Sep  4 21:43:52 localhost /usr/local/sbin/kamailio[6440]: INFO: <script>: route[NATMANAGE] #2
Sep  4 21:43:52 localhost /usr/local/sbin/kamailio[6440]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  INVITE from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:52 localhost /usr/local/sbin/kamailio[6426]: INFO: <script>: route[NATMANAGE] #1
Sep  4 21:43:52 localhost /usr/local/sbin/kamailio[6426]: INFO: <script>: route[NATMANAGE] #2
Sep  4 21:43:52 localhost /usr/local/sbin/kamailio[6427]: INFO: <script>: route[NATMANAGE] #1
Sep  4 21:43:52 localhost /usr/local/sbin/kamailio[6427]: INFO: <script>: route[NATMANAGE] #2
Sep  4 21:43:52 localhost /usr/local/sbin/kamailio[6427]: NOTICE: acc [acc.c:279]: acc_log_request(): ACC: transaction answered: timestamp=1378316632;method=INVITE;from_tag=f95c8372;to_tag=as7ee14b69;call_id=MjA1NjU4YmM0YzcwMzhiM2VkNjhjNTRjYTIyODVmZjg.;code=200;reason=OK;src_user=mylogin;src_domain=sipp.xxx.ru;src_ip=176.83.127.50;dst_ouser=599045;dst_user=599045;dst_domain=sipp.xxx.ru
Sep  4 21:43:52 localhost /usr/local/sbin/kamailio[6438]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  INVITE from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:53 localhost /usr/local/sbin/kamailio[6425]: INFO: <script>: route[NATMANAGE] #1
Sep  4 21:43:53 localhost /usr/local/sbin/kamailio[6425]: INFO: <script>: route[NATMANAGE] #2
Sep  4 21:43:53 localhost /usr/local/sbin/kamailio[6440]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  ACK from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:53 localhost /usr/local/sbin/kamailio[6440]: INFO: <script>: route[NATMANAGE] #1
Sep  4 21:43:53 localhost /usr/local/sbin/kamailio[6440]: INFO: <script>: route[NATMANAGE] #2
Sep  4 21:43:53 localhost /usr/local/sbin/kamailio[6439]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  ACK from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:53 localhost /usr/local/sbin/kamailio[6439]: INFO: <script>: route[NATMANAGE] #1
Sep  4 21:43:53 localhost /usr/local/sbin/kamailio[6439]: INFO: <script>: route[NATMANAGE] #2
Sep  4 21:43:53 localhost /usr/local/sbin/kamailio[6438]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  ACK from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:53 localhost /usr/local/sbin/kamailio[6438]: INFO: <script>: route[NATMANAGE] #1
Sep  4 21:43:53 localhost /usr/local/sbin/kamailio[6438]: INFO: <script>: route[NATMANAGE] #2
Sep  4 21:43:55 localhost /usr/local/sbin/kamailio[6441]: INFO: <script>: route[NATDETECT] NO NAT nat_uac_test("19") is false.  BYE from sip:mylogin@sipp.xxx.ru:6000;transport=UDP (IP:176.83.127.50:53257)
Sep  4 21:43:55 localhost /usr/local/sbin/kamailio[6426]: NOTICE: acc [acc.c:279]: acc_log_request(): ACC: transaction answered: timestamp=1378316635;method=BYE;from_tag=f95c8372;to_tag=as7ee14b69;call_id=MjA1NjU4YmM0YzcwMzhiM2VkNjhjNTRjYTIyODVmZjg.;code=200;reason=OK;src_user=mylogin;src_domain=sipp.xxx.ru;src_ip=176.83.127.50;dst_ouser=599045;dst_user=599045;dst_domain=192.168.30.1
удалить закрыть спам изменить тег редактировать

спросил 2013-08-31 18:21:48 +0400

neiroman2k Gravatar neiroman2k
1 8 1 6

обновил 2013-09-04 23:18:47 +0400

Comments

не шуми. тут ты это не решишь. или в списке рассылок или обнови версию(перечитай доки)

meral ( 2013-09-05 02:25:36 +0400 )редактировать

последняя версия kamailio. может наоборот downgrade нужен ?

neiroman2k ( 2013-09-05 17:17:52 +0400 )редактировать

проще всего разделить пиры на те у кого ната нет(через dispatcher/permission) и включить всем остальным. да и вообще нат всем не сильно мешает.

meral ( 2013-09-05 20:18:38 +0400 )редактировать

не представляю как это возможно. вот сейчас я за границей, соответственно через нат. Через неделю вернусь домой и буду без нат, но тоже не стабильно. как это все реализовать чтобы не заводить два акаунта (nat/nonat) на каждого абонента?

может-ли natuactest("19") из-за firewall криво работать ?

p.s. поставил kamailio 3.3.5 - все тоже самое :(

neiroman2k ( 2013-09-06 18:40:48 +0400 )редактировать

hint: акканты без ната вполне работают если вы их занатите.

meral ( 2013-09-07 04:02:37 +0400 )редактировать

спасибо, кэп :) я не понял смысла разделения

neiroman2k ( 2013-09-08 21:38:25 +0400 )редактировать

ну так убери. только есть провайдеры которые не люят когда их натят. вообще я считаю системы на базе ser* подсемейства уже глубоко комерческие, и бесплатно их не консультирую.

meral ( 2013-09-09 01:47:51 +0400 )редактировать

1 Ответ

0

неправильно настроен nat traversal на kamailio. как правильно - смотрите example или обратитесь к проффесионалам.

ссылка удалить спам редактировать

ответил 2013-08-31 21:25:48 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2013-08-31 18:21:48 +0400

Просмотрен: 1,244 раз

Обновлен: Sep 04 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.