ADSL-маршрутизатор и SIP-шлюз ZyXEL P-2602H (предсерийный образец)

возможности SIP-шлюза


В последних двух обзорах (часть 1; часть 2) мы рассмотрели базовые возможности устройства, возможности его VPN-серверов и шейпинга трафика. В данном обзоре мы рассмотрим возможности устройства, работающего в качестве SIP-шлюза — для этого мы подключим к устройству обычные аналоговые телефоны и попробуем настроить его для работы в SIP-сети.

SIP-шлюз

В одном из обзоров мы уже вкратце рассмотрели принципы работы протокола SIP и его роль при организации SIP-телефонии.

Устройство имеет возможность подключения двух аналоговых телефонов к телефонным портам. Для осуществления вызовов необходимо настроить телефоны на использование тонального набора. Так как телефоны аналоговые и ничего не "знают" о SIP-телефонии, все настройки осуществляются на самом устройстве и привязаны непосредственно к портам. Рассмотрим более подробно настройки SIP-телефонии.

На данном скриншоте задаются параметры SIP-аккаунтов (их количество равно числу портов = 2). Здесь задается SIP-номер (то, что ставится в SIP-адресе до @), локальный порт, который будет использоваться для прослушивания SIP-вызовов (по умолчанию стандартный порт для протокола SIP: 5060), адрес SIP-сервера, на который посылаются исходящие SIP-вызовы, порт SIP-сервера (все тот же стандартный порт 5060), адрес сервера регистрации (данный сервер служит для определения текущего IP-адреса клиента), порт сервера регистрации, доменной имя SIP (то, что обычно идет после знака @ в SIP-адресе).

Рассмотрим некоторые параметры, которые задаются в расширенных настройках SIP-телефонии:

  • URL-type: тип используемого URL (SIP или TEL) — от выбора данного параметра зависит, какой тип адреса будет передаваться в исходящих SIP-сообщениях. Тип SIP — будут передаваться сообщения с адресом "номер@sip-domain-name", тип TEL — будут передаваться сообщения с адресом "номер" (доменное имя SIP будет опущено). Выбор данного параметра обусловлен настройками SIP-сервера
  • Expiration Duration: сообщает, как долго запись о регистрации остается на сервере регистрации
  • Register Re-send timer — задает, как часто устройство должно обновлять данные на сервере регистрации (продление регистрации)
  • Session Expires — данный параметр сообщает нашему устройству, как долго нужно держать в памяти данные о SIP-сессии, после передачи последнего SIP-сообщения
  • Min-SE — здесь устанавливается минимальное значение времени окончания SIP-соединения. Данное значение должно быть одинаковым на обоих концах SIP-соединения. Если вызывающее устройство предложит установить значение времени меньшее, чем указано в данном параметре, то устройство пошлет запрос на увеличение данного значения
  • RTP-port range — здесь задается диапазон портов, которые будут использованы для установления RTP-соединения (соединение по которому непосредственно передаются голосовые данные)
  • Voice Compression — здесь задается приоритет используемых голосовых кодеков
  • DTMF mode — выбор режима передачи тональных сигналов, вызванных нажатием клавиш на телефоне абоненту на другом конце линии. RFC 2833 — данные передаются по RTP-соединению. PCM — данные передаются непосредственно в голосовом потоке (этот режим рекомендуется использовать, только если используемые кодеки не используют сжатие — G.711, так как в случае сжатия звуковой поток подвергается обработке, которая может исказить сигнал, и он будет неправильно распознан на другом конце линии). SIP INFO — данные о нажатии клавиш передаются в SIP-сообщениях.
  • Call Forward Table – задается, какая таблица блокировки/переадресации будет использована при осуществлении вызовов с использованием данного аккаунта

Устройство также имеет возможности ставить ToS-биты на трафик, генерируемый при использовании SIP-телефонии.

Здесь задаются параметры входящих/исходящих вызовов. Можно сделать так, что первый телефон будет использовать второй SIP-аккаунт, а второй телефон — первый SIP-аккаунт. Также можно сделать так, что при вызове любого номера будут звонить сразу два телефона, и разговор будет вестись с того телефона, на котором будет раньше поднята трубка.

Здесь устанавливается чувствительность микрофона и громкость приемника, а также включается режим эхоподавления и режим детектирования разговора — данный режим позволяет уменьшить голосовой трафик за счет определения говорит ли абонент или молчит, во время молчания, голосовой трафик не передается, но при этом пропадает "эффект присутствия собеседника" (полная тишина в трубке).

Помимо этого, устройство позволяет осуществлять функцию быстрого набора, когда вызов абонента осуществляется по сокращенному номеру. Также возможна блокировка или переадресация вызовов.



Всего можно создать 10 правил быстрого набора. Количество правил переадресации/блокировки вызова также ограничено 10 для каждой таблицы форвардинга (напомню, что каждый SIP-аккаунт может использовать свою собственную таблицу форвардинга).

Тестирование

Для проверки работоспособности системы, был использован компьютер под управлением Gentoo Linux с простейшим прокси-сервером siproxd. Данный сервер также исполняет роль сервера регистрации, поэтому в нашем случае адрес SIP-сервера и сервера регистрации полностью совпадают. Схема подключения приведена на рисунке ниже

Чтобы не усложнять тестирование, в качестве доменного имени SIP был использован IP-адрес этого компьютера, что также допустимо. Таким образом, после настройки мы получаем SIP-адреса вида номер@ip-адрес_сервера. Для проведения экспериментов также был использован свободно распространяемый программный SIP-телефон X-Lite.

В качестве аппаратных телефонов, подключаемых к устройству, были использованы аналоговые телефоны Panasonic KX-TS2635RUW.

После настройки оборудования и соответствующего ПО, было обнаружено, что по регистрируемому номеру абонентов не удается установить вызов между телефонами, подключенными к рассматриваемому устройству. Впоследствии, после прочтения документации на аналогичное устройство (напомню, что наше устройство является бета-версией конечного продукта, поэтому документация на него пока отсутствует), оказалось, что вызов соседнего телефона осуществляется набором "####" в тональном режиме. С осуществлением вызовов программного SIP-телефона с аппаратного, подключенного к устройству и наоборот проблем не возникало.

Однако установить связь с SIP-сервером, используя программный телефон X-Lite, находясь за NAT (который реализуется на рассматриваемом устройстве), мне так и не удалось, даже несмотря на то, что в настройках NAT существует пункт SIP ALG (Application Level Gateway), который должен обеспечивать беспрепятственное прохождение SIP-сообщений через NAT. Из этого был сделан вывод, что механизм SIP ALG пока что не реализован в устройства (или работает некорректно). Будем надеяться, что в релиз-версии продукта данный недочет будет устранен.

В данном устройстве реализован так называемый конусный нат (Full Cone NAT), который позволяет осуществлять прохождение вызовов SIP-телефонии через NAT (с отключенным механизмом SIP ALG), однако для этого необходимо использование внешнего STUN-сервера (Simple Traversal Underneath NAT). Адрес STUN-сервера задается на программном или аппаратном телефоне, находящемся за NAT в LAN-сегменте рассматриваемого маршрутизатора.

Также отмечу, что даже если SIP-сервер находится в сегменте LAN — это никак не отразится на его работе (некоторое оборудование позволяет устанавливать соединения только с WAN-интерфейса устройства).

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

При тестах учитывается, что 1 кбит/с = 1000 бит/с. Скорость прямого и обратного канала равны: то есть когда мы говорим, что тест проводится на скорости 80 кбит/с,  значит, что скорость прямого канала равна 80 кбит/с и скорость обратного канала равна 80 кбит/с.

Кодек G.711a:

  • 80 кбит/с — при данном значении ширины канала никаких проблем со связью не возникает. Однако даже при использовании полной ширины канала ощущаются небольшие задержки голоса.
  • 70 кбит/с — на данной скорости в начале разговора бывает пропадание звука, однако на качество разговора оно практически не влияет.
  • 65 кбит/с — на данной скорости эффект пропадания звука имеет более выраженную форму, и тем не менее нельзя сказать, что разговор при этом вести невозможно. Задержки немного увеличиваются.
  • 60 кбит/с — на данном этапе пропадание звука может вызывать некоторый дискомфорт, но возможность разговора по-прежнему сохраняется
  • 50 кбит/с — на данной скорости появляются искажения голоса абонента — возникает своеобразный хрип (видимо, за счет того, что некоторые пакеты сбрасываются шейпером).
  • 45 кбит/с — на данной скорости голос абонента сильно искажается, тем не менее, то, что он говорит вполне можно разобрать.
  • 35 кбит/с — на данной скорости появляется своеобразный "металлический скрежет" в голосе, но разговор все равно возможен. Шум от работающего DSLAM'а (работал поблизости во время тестирования), становится похож на работу болгаркой на заднем фоне вызываемого абонента.
  • 30 кбит/с — на данной скорости передаваемый звук все больше становится похож на просто скрежет.
  • 25 кбит/с — речь человека становится слаборазборчивой, иногда наблюдаются пропадания звука, разговор практически невозможен (или крайне некомфортен). Удивительно, что на данной скорости удалось добиться хоть какого-то результата, так как данный кодек рассчитан на скорость соединения 64 кбит/с.
  • 20 кбит/с — среди металлического скрежета рвущегося из наушников разобрать практически ничего невозможно, поэтому дальнейшее понижение скорости мне видится бессмысленным.

Кодек G.711u:

  • 80 кбит/с — никаких проблем со связью не возникает.
  • 70 кбит/с — проблем с передачей голоса также не возникает, но возрастают задержки передачи (~ до 1/3 секунды).
  • 65 кбит/с — также как и в прошлом тесте звук передается практически без искажений (или эти искажения не различимы мной на слух).
  • 60 кбит/с — звук идет с некоторыми искажениями и изредка прерывается, но особого дискомфорта это не вызывает.
  • 50 кбит/с — как и в случае с g.711a кодеком, при данной ширине полосы пропускания, появляется "хрип" в голосе абонента.
  • 45 кбит/с — разговор становится менее комфортным, но разобрать, что говорит абонент на другой стороне линии, не представляет особого труда.
  • 35 кбит/с — снова появляется металлический скрежет, разобрать, что говорит абонент на другом конце линии по-прежнему можно.
  • 30 кбит/с — задержки голоса сильно возрастают, звук похож на "металлический скрежет".
  • 25 кбит/с — звук разобрать практически невозможно, очень сильный металлический оттенок в голосе, периодические прерывания звука.
  • 20 кбит/с — прерывистый звук с металлическим скрежетом, голос превращается в металлический звон — можно разобрать, что кто-то хочет что-то сказать, но что именно, разобрать невозможно.

Также было обнаружено, что устройство во всех случаях пытается сохранить полосу пропускания для телефонии "отбирая" скорость у потоков обычного трафика.

Для тестирования кодека G.729 нам понадобилось бы еще одно подобное устройство (программный телефон X-Lite не поддерживает работу с данным кодеком), но, к сожалению, в нашу лабораторию данное устройство попало только в единственном экземпляре. Данный кодек имеет значительно более низкие требования к ширине полосы пропускания.

Выводы:

Настройки SIP-шлюза позволяют просто и быстро использовать обычные аналоговые телефоны для работы с SIP-телефонией. На сайте компании также есть пошаговая инструкция на русском языке по подключению рассматриваемого устройства к провайдеру SIP-услуг — sipnet.ru. Настройки устройства также позволяют производить одновременное подключение к двум различным провайдерам SIP-услуг. Судя по тестам, устройство старается предоставить необходимую для вызовов SIP-телефонии полосу пропускания, отбирая ее у остальных потоков трафика, проходящего через него. Несмотря на то, что кодекам G.711 для нормальной работы требуется ширина полосы пропускания 64/64 кбит/с, тем не менее, на данном устройстве удалось добиться приемлемого качества связи при ширине канала ~45/45 кбит/с. Все вызовы осуществляются только с использованием тонального набора, использование импульсного набора номера невозможно (поэтому совсем "древние" телефоны не удастся использовать для работы с данным устройством).  

Навигация:

Плюсы:

  • Возможность регистрации на сервере находящемся в LAN-сегменте
  • Устройство пытается выделить и сохранить необходимую ширину полосы пропускания под нужды IP-телефонии
  • Возможность использования правил быстрого набора и переадресации вызовов
  • Возможность детектирования голоса для уменьшения трафика, передаваемого устройством

Минусы:

  • Количество правил переадресации вызовов и правил быстрого набора ограничено 10-ю для каждого SIP-аккаунта — данного количества может оказаться недостаточно в случае необходимости их использования
  • Невозможно произвести вызов одного телефона со второго (подключенных к одному устройству) по его номеру (вызов осуществляется набором "####" в тональном режиме)
  • Не удалось добиться работы механизма SIP ALG (Application Layer Gateway)

 

Оборудование предоставлено российским представительством компании ZyXEL
DSLAM для тестирования предоставлен российским представительством компании ZyXEL

 




Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.