Список наиболее часто задаваемых вопоросов службе поддержки VOIP провайдера:

  1. Меня не слышат.
  2. Я не слышу.
  3. Мне не приходит входящий звонок.

Все они являются, в 90 процентах случаев результатами одной проблемы.

В данной статье не будут рассматриваться варианты как с этим бороться. Дело в том, что по разному, поэтому планируется написать целый ряд статей где будут рассмотренны разные варианты решения проблем. Здесь рассмотрим только вопрос почему?

Все нижесказанное относится к 3 наиболее популярным протоколам: SIP, H323, MGCP. С точки зрения NAT traversal, то-есть прохождения маршрутизатора с NAT проблемы одни и те же, только порты разные.

Исходящий звонок через симметричный NAT

Исходящий звонок через симметричный NAT

Простейший случай. Абонент офисной сети с IP адресом 192.168.0.1 c программой IP телефона. Офисная сеть подключена к интернету через Линукс роутер c iptables в качестве NAT без sip_conntrack. Со стороны интернета адрес Linux роутера 66.230.160.14. Как происходит звонок. Во сигнальной сессии абонент А через порт 5060 посылает команду softswitch соединить его с абонентом B, и при этом сообщает, что будет слушать RTP поток (голос) на своем локальном адресе-порте 192.168.0.1:16384. Хотя с точки зрения абонента B, а также softsich-а, он будет слушать на интернет адресе 66.230.160.163:5060. Ни proxy ни ip телефон абонента B об этом понятия не имеют и соответственно голос от абонента B к абоненту А не пройдет.

Входящий звонок через симметричный NAT

Входящий звонок через симметричный NAT

В такой же схеме Абонент B зарегестрировался на SIP регистаре и ожидает входящего звонка от абонента А. Здесь возможны варианты.

  • Или регистар берет обратный IP адрес, не из заголовка пакета c сообщением Register а из тела регистрационного запроса. То есть не 66.230.160.14 а 192.168.0.1. Естественно запрос на соединение (сообщение INVITE), будет послано вместо реального IP 66.230.160.14 адреса, на несуществующий в интернете 192.168.0.1.
  • Более неприятная ситуация, это время жизни трансляции в NAT таблицах. Дело в том, что NAT роутер осуществляет трансляцию локального адреса-порта в глобальный и наоборот при приходе пакета. Затем, эта информация некоторое время хранится в таблице трансляциий (в пределах нескольких секунд). Стандартое время удержания информации о клиенте на SIP регистарах, H323 gatekeepers и других устройствах, от минуты и выше. Так вот, если входящий звонок прийдет в этот период времени, он дойдет до абонента B. В противном случае, NAT роутер просто проигнорирует его и звонок не дойдет.

В качестве заключения. Все описанные выше проблемы обычно решены, тем либо образом на VOIP серверах и клиентах. Как сделать, чтобы они работали првильно, будет рассказано в дальнейших публикациях.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong