В первой части данного обзора мы рассмотрели возможности работы данного устройства в качестве Интернет-роутера. В этой же части устройство будет рассмотрено в качестве VoIP-шлюза, а также будут затронуты возможности шейпинга трафика.
VoIP-телефони работает с использованием протокола SIP. О принципах работы данного протокола можно прочитать здесь.
VoIP-шлюз
Рассматриваемое устройство позволяет подключить до четырех аналоговых телефонов. Подключаемые телефоны могут использовать как тоновый, так и импульсный набор. Естественно перед использованием телефонов необходимо произвести соответствующие настройки. Так как устройство является аналоговым и ничего не знает о SIP, настройки производятся на самом устройстве и привязываются к портам.
Настройки
Существует несколько способов работы АОН (автоматического определителя номера): DTMF, FSK и отечественный АОН. Использование DTMF или FSK позволяет определить номер телефона до поднятия трубки. Отечественный АОН для определения номера должен "снять трубку". Отечественный способ устройством не поддерживается. Используемые телефоны, к сожалению, не имеют определителя номера (к тому же не отечественного стандарта), поэтому мне не удалось проверить работу определителя.
Также возможно отключение определителя (Анонимный Caller ID).
Для каждого подключенного телефона возможно также задание Hot Line номера — номера, который будет набран после снятия трубки. Можно также задать задержку — то есть через сколько секунд после снятия трубки будет набран Hot Line номер, если абонент не набрал номер телефона самостоятельно (это что-то наподобие связи с оператором). Также возможно запретить или разрешить использование факса.
VoIP шлюз может помимо номеров на каждую линию иметь свой собственный номер. Если произвести вызов по этому номеру, то по умолчанию будет вызываться абонент на 1-й линии. Если 1-я линия занята — на 2-й линии, если 2-я занята — на 3-й и т.д. Приоритет вызова каждой линии устанавливается в настройках (рис. 3). Также возможно обзванивать каждую линию по очереди в случае, если истек заданный интервал времени, а трубку никто не поднял.
В настройках протокола можно задать, чтобы все вызовы производились через внешний прокси-сервер.
Возможно задать 2 прокси-сервера, на которых также может производиться регистрация абонентов.
![](router/nateks-networks-voicecom-115-2/tel/6_3.png)
рис. 6
Пункт "Register" отвечает за регистрацию аккаунта на прокси-сервера. Если этого не сделать — то телефон будет доступен только для локальных пользователей. Здесь же задается номер телефона ID/Аккаунт, под которым он будет зарегистрирован. Если стоит галочка "Invite with ID / Account", то регистрация происходит с использованием указанного User ID — номер телефона и User ID не обязательно должны совпадать.
Как выяснилось позднее, сервер не может регистрироваться на прокси-сервере, если последний находится в LAN-сегменте маршрутизатора (получается, что VoIP-шлюз прослушивает только WAN-интерфейс и отвечает тоже только через WAN-интерфейс) — это не очень распространенная, но вполне возможная конфигурация.
Устройство позволяет создавать локальную телефонную сеть — такая сеть уже существует между портами устройства и в ней используется нумерация отличная от глобальной. Если требуется позвонить на номер телефона, подключенного непосредственно к данному устройству — то это можно сделать, набрав его "глобальный" номер, либо набрав его "локальный" номер.
Если в одной сети установлено несколько устройств Nateks Networks серии VoiceComm, то локальную телефонную сеть можно существенно расширить. При этом на одном из устройств необходимо включить "Phone Book Manager server", а на другом — "Phone Book manager client". Таким образом, возможно сделать так, чтобы несколько устройств регистрировались на одном сервере — это позволит им "общаться" между собой (точнее между привязанными к ним локальными телефонными сетями).
Рассмотрим настройку такой конфигурации
Имеется 2 VoIP шлюза, WAN-сегменты которых находятся в одной сети. На первом шлюзе телефонным портам заданы внутренние номера от 901 до 904 включительно, на втором — от 905 до 908. Первый шлюз настроен как сервер Phone Book Manager (Сервер менеджера телефонной книги).
![](router/nateks-networks-voicecom-115-2/tel/7_1.png)
рис. 7
Особенностью настройки является то, что устройство, являющееся сервером, также должно быть настроено в качестве клиента (список клиентов, подключенных к серверу, можно увидеть, нажав соответствующую кнопку).
Таким образом, нам нужно настроить клиента на обоих устройствах
Здесь также указывается имя, под которым шлюз будет зарегистрирован, адрес сервера Phone Book Manager. Также требуется задать пароль для доступа к серверу.
Phone Book Manager Server способен работать только на WAN-интерфейсе, попытка связаться с ним, находясь в LAN-сегменте, не принесла результатов.
Далее задаются внутренние номера телефонов и номер самого шлюза
Как говорилось выше, внутренние номера (901-904) можно использовать при звонках в пределах одного шлюза. Если мы хотим позвонить на другой шлюз с использованием Phone Book Manager — нам нужно сначала набрать заданный номер шлюза, после чего набрать вызываемый внутренней номер телефона.
Данная возможность имеет свои подводные камни. Если в пределах одного шлюза для осуществления звонков можно пользоваться "тональным" набором, то для совершения звонков на другие шлюзы попытка использования тонального набора не приносила результата — звонок просто не осуществлялся. Зато использование импульсного режима решает эту проблему. Данная особенность не описана в документации, поэтому заставить работать вызовы через Phone Book Manager Server удалось, сказать без преувеличения, только "методом тыка".
Устройство позволяет производить переадресацию вызова в случае, если вызываемый номер занят или в течение заданного времени не последовало ответа
Теперь коснемся вопросов, связанных с кодеками
Здесь задается предпочитаемый кодек, параметр буфера джиттера, а также время пакета.
Джиттер связан с вариацией времени доставки пакетов и возможности прихода пакетов, не в той последовательности, в какой они были отправлены. Это существенно при преобразованиях аналогового сигнала в цифровой и наоборот, и существенно влияет на качество связи. Использование буфера джиттера позволяет сгладить эффекты от неравномерной доставки голосового трафика. Более подробно о том, что такое джиттер можно прочитать здесь.
За счет изменения параметра "времени пакета", мы можем менять порции данных, которые посылаются "единым куском". Например, если этот параметр установлен в 50 мс, то сначала в единый блок собираются звуковые данные, пришедшие за 50 мс, после чего кодируются выбранным кодеком и отправляются получателю. Увеличение данного параметра позволяет понизить требование ширине полосы пропускания канала (так как по сети передается меньшее количество служебных данных, а также потому, что большие объемы данных лучше подвергаются сжатию), но вносит дополнительные задержки. Уменьшение пакетов уменьшает задержки, но повышает требование к ширине полосы пропускания канала.
Параметр эхокомпенсации позволяет избавиться от эффекта "эхо" (с данным эффектом зачастую сталкиваются абоненты сотовой связи, когда они слышат свой голос в трубке).
Подавление пауз позволяет остановить трафик RTP-соединения, если собеседники временно не общаются, но при этом пропадает эффект присутствия — на принимающей стороне в телефонной трубке тишина (кажется, что телефон не включен). Как работает данная функция, выяснилось во время тестов: если собеседники не общаются, то даже лампочки на роутерах перестают мигать и, следовательно, канал не забивается. При отключении данной функции в трубке постоянно слышны шумы, как при телефонном разговоре.
Устройство поддерживает две технологии передачи факсимильных сообщений: T.30 и T.38. T.38 для передачи факса использует TCP или UDP-пакеты. Технология T.30 используется для передачи факсов по аналоговой линии (с использованием кодеков).
Использование телефонной книги устройства позволяет задать статические записи типа "номер абонента — IP-адрес (или доменное имя).
Использование возможности быстрого набора позволяет использовать короткие алиасы для длинных номеров. Быстрый набор также позволяет создавать правила набора с использованием специальных выражений (например, я могу вызвать номер 123456789011, просто набрав 011, если я задам в поле кода 0??, а в поле номера 1234567890??). Об этой возможности в документации устройства рассказано достаточно подробно. Всего можно создать до 100 правил быстрого набора.
Возможно использование CDR-сервера (Call Detail Record) — своеобразное подобие Log-сервера для шлюза VoIP-телефонии, в котором сохраняется статистка звонков (кто звонил, куда, когда и как долго длился разговор). Также возможна настройка тональностей "гудков" в телефоне и задание длины интервалов гудков (например, для сигналов "занято").
Тестирование
Для тестирования возможностей IP-телефонии устройства были использованы аналоговые телефоны Panasonic KX-TS2635RUW
Сначала я попробовал установить связь с использованием всех кодеков с максимальными и минимальными параметрами "времени пакета" — связь удалось установить во всех случаях, кроме случая использования кодека G.711 u-law (64 кбит/с) с временем пакета, равным 80 мс — соединение устанавливалось, но голоса не было слышно в принципе. При использовании времени пакета 70 мс, связь устанавливалась без каких-либо проблем.
Смена кодека существенно не влияла на слышимость абонента на другом конце линии, она, скорее, влияла на тональность голоса и передаваемый частотный диапазон. При использовании кодеков с качеством звука 64 кбит/с, качество голоса было похоже на качество голоса при использовании обычного телефона — то есть наиболее похоже на реальный голос. При использовании кодеков с низким качеством звука, диапазон частот достаточно сильно зарезался, и если разобрать то, что говорят в трубку, не представляло проблем, то "узнать по голосу" собеседника становится несколько сложнее.
Основным критерием при использовании кодеков с низким качеством звука становится так называемая информативность речи — передается как раз тот частотный диапазон, который отвечает за разговор. Передача музыки по телефонной линии практически невозможна (если ритм музыки еще можно услышать, то саму мелодию практически невозможно), так как в музыке используются "неинформативные частоты".
Увеличение параметра времени пакета сказывается на связи — изменение задержки можно отчетливо почувствовать, если собеседник находится в той же комнате.
Для приближения к реальным условиям, абоненты регистрировались на одном сервере регистрации. На программном NAT-роутере поднимался прокси-сервер (на базе siproxd — один из наиболее простых прокси-серверов), который позволял беспрепятственно преодолевать NAT. Для каждого кодека проводилась оценка качества связи при максимальном и минимальном значении параметра "время пакета".
Все ограничения ширины канала были одинаковыми как для прямого, так и для обратного канала (ограничение ширины канала до 100 кбит/с означает, что и прямой и обратный каналы были ограничены планкой в 100 кбит/с: 100100). При этом считается, что 1 кбит/с = 1000 бит/с.
Кодек G.711 u-law (64 кбит/с)
Длина пакета 20 мс:
- Ограничение 100 кбит/с: на данной скорости потери качества передаваемого голоса (если сравнивать с отсутствием шейпинга трафика) не наблюдалось.
- Ограничение 70 кбит/с: на данной скорости при активности собеседников возникают задержки голоса, в ряде случаев даже наблюдались кратковременные (незначительные для разговора) пропадания звука.
- Ограничение 50 кбит/с (ниже ширины звукового канала 64 кбит/с): при активной беседе наблюдаются значительное замедление голоса (как если запустить пластинку с речью на более низкой скорости), а также пропадание части разговора. Качество разговора неприемлемо. При беседе редкими фразами их качество не теряется, но и разговором это уже назвать нельзя.
- Ограничение 30 кбит/с: качество разговора неприемлемое. Даже редкими фразами обменяться вряд ли удастся.
Длина пакета 70 мс (напомню, что при 80 мс, соединение устанавливалось, но голосов собеседников почему-то не было слышно):
- Ограничение 100 кбит/с: на данной скорости никаких потерь качества передаваемого голоса не наблюдалось.
- Ограничение 70 кбит/с: на данной скорости, как и в предыдущем случае, потери качества не было.
- Ограничение 50 кбит/с: на данной скорости наблюдаются небольшие задержки, но качество связи вполне приемлемое
- Ограничение 30 кбит/с: качество неприемлемо для разговора.
Кодек G.711 a-law (64 кбит/с)
Длина пакета 20 мс:
- Ограничение 100 кбит/с: потери качества звука не наблюдается
- Ограничение 70 кбит/с: потери качества звука не наблюдается
- Ограничение 50 кбит/с: качество достаточно низкое, но разговаривать можно. Наблюдаются достаточно большие задержки при активной беседе.
- Ограничение 30 кбит/с: голос слышен обрывками, разговаривать невозможно.
Длина пакета 80 мс:
- Ограничение 100 кбит/с: потери качества звука не наблюдается.
- Ограничение 70 кбит/с: потери качества звука не наблюдается.
- Ограничение 50 кбит/с: наблюдаются небольшие задержки голоса при активном разговоре, но качество от этого падает незначительно. Мне не удалось добиться понижения качества до такой степени, чтобы нельзя было разобрать, о чем говорит собеседник
- Ограничение 30 кбит/с: качество очень низкое, но по обрывкам голоса можно распознать, что говорит собеседник. Очень большие задержки
Кодек G.723.1 (6,3 кбит/с)
Так как при использовании этого кодека требуется существенно более низкая ширина полосы пропускания, диапазон скоростей, при которых проводится тестирование, существенно расширяется. Следует учитывать, что общее качество голоса при использовании данного кодека ниже (так как качество звука всего лишь 6.3 кбит/с). Сравнение ведется с качеством звука при отключении шейпера.
Длина пакета 30 мс:
- Ограничение 100 кбит/с: потери качества звука не наблюдается
- Ограничение 70 кбит/с: потери качества звука не наблюдается
- Ограничение 50 кбит/с: потери качества звука не наблюдается
- Ограничение 30 кбит/с: потери качества звука не наблюдается, но мне показалось, что задержки голоса слегка увеличились
- Ограничение 20 кбит/с: потери качества звука не наблюдается
- Ограничение 15 кбит/с: в начальный момент времени кажется, что связь звук идет нормально, но в дальнейшем задержки начинают увеличиваться и разговор становится невозможен
- Ограничение 10 кбит/с: разговор невозможен! В подобных ситуациях можно использовать функцию подавления пауз — это позволит хотя бы вести разговор, хоть и с более низким качеством
Даже на скорости 19 кбит/с при длительном разговоре начинают появляться задержки, но более-менее короткий разговор (несколько минут) пройдет без проблем.
Длина пакета 90 мс:
В связи с тем, что мы увеличили значение времени пакета, существенно изменились задержки голоса, но на качество разговора такие задержки вряд ли повлияют
- Ограничение 50 кбит/с: потери качества звука не наблюдается
- Ограничение 30 кбит/с: потери качества звука не наблюдается
- Ограничение 20 кбит/с: потери качества звука не наблюдается
- Ограничение 15 кбит/с: потери качества звука не наблюдается
- Ограничение 10 кбит/с: на данной скорости качество связи становится неприемлемым только спустя непродолжительное время после начала разговора
Только при ширине канала 13 кбит/с звук идет без потери качества. Ширина канала 12 кбит/с этого уже не позволяет.
Кодек G.726 (32 кбит/с)
Длина пакета 20 мс:
- Ограничение 100 кбит/с: потери качества звука не наблюдается
- Ограничение 70 кбит/с: потери качества звука не наблюдается
- Ограничение 50 кбит/с: на данной скорости существенно возрастают задержки (почти до 1 секунды), наблюдаются редкие прерывания звука, но вести разговор при таком качестве звука вполне возможно
- Ограничение 40 кбит/с: качество связи становится неприемлемым
В отличие от использования других кодеков (когда звук пропадает полностью), звук передается обрывками, а задержки не превышают двух секунд. При ширине канала 45 кбит/с, уже можно попробовать вести разговор так сказать в "экстремальном" режиме.
Длина пакета 80 мс:
- Ограничение 100 кбит/с: потери качества звука не наблюдается
- Ограничение 70 кбит/с: потери качества звука не наблюдается
- Ограничение 50 кбит/с: потери качества звука не наблюдается
- Ограничение 40 кбит/с: потери качества звука не наблюдается
- Ограничение 35 кбит/с: появляются достаточно значительные задержки (до 1,5 секунд), звук незначительно прерывается, но разговор в принципе возможен в "экстремальном" режиме
- Ограничение 30 кбит/с: наблюдаются очень сильные прерывания звука, при которых невозможно вести разговор
Кодек G.729A (8 кбит/с)
Длина пакета 20 мс:
- Ограничение 100 кбит/с: потери качества звука не наблюдается
- Ограничение 50 кбит/с: потери качества звука не наблюдается
- Ограничение 40 кбит/с: потери качества звука не наблюдается
- Ограничение 30 кбит/с: потери качества звука не наблюдается
- Ограничение 25 кбит/с: значительно возрастают задержки голоса, что делает качество связи неприемлемым
Длина пакета 80 мс:
- Ограничение 100 кбит/с: потери качества звука не наблюдается
- Ограничение 50 кбит/с: потери качества звука не наблюдается
- Ограничение 30 кбит/с: потери качества звука не наблюдается
- Ограничение 20 кбит/с: потери качества звука не наблюдается
- Ограничение 15 кбит/с: потери качества звука не наблюдается
- Ограничение 10 кбит/с: связь невозможна из-за очень больших задержек
При настройке параметров используемых кодеков, показывается ориентировочная ширина полосы пропускания, которая требуется для беспроблемной работы IP-телефонии с использованием данного кодека. Во всех тестах, проблемы со связью возникали примерно на этой ширине полосы пропускания.
Шейпинг трафика
Устройство позволяет производить шейпинг трафика отдельно на WAN-интерфейсе и отдельно на каждом из 4-х LAN-интерфейсов. Правила шейпинга ограничены исключительно интерфейсами, никаких других критериев (IP-адрес, TCP/UDP-порт и др.) не предусмотрено. Для входящего и исходящего трафика ширина канала задается отдельно. Для LAN-интерфейса также можно задать приоритет.
Как можно увидеть на рис. 13, ширину канала можно ограничить только дискретными значениями скорости, выбранными из списка.
Как видно, настроек шейпинга трафика не так много, поэтому разберемся с ними по ходу тестирования.
Тестирование шейпинга трафика
Для начала наложим ограничение на ширину канала на WAN-интерфейсе и занесем полученные данные в таблицу. При этом будем поочередно менять ширину канала для исходящего трафика и для входящего трафика. Пока меняется ширина канала входящего трафика, ширина канала исходящего трафика устанавливается в максимальное значение, и, наоборот — при изменении ширины канала исходящего трафика — ширина канала входящего трафика установлено в максимальное значение.
WAN | Таблица 1 |
Значение ширины канала | скорость входящего трафика, Мбит/с | скорость исходящего трафика, Мбит/с |
128 кбит/с | 0,087 | 0,096 |
256 кбит/с | 0,180 | 0,159 |
512 кбит/с | 0,375 | 0,323 |
1 Мбит/с | 0,824 | 0,722 |
8 Мбит/с | 5,090 | 5,531 |
32 Мбит/с | 14.091 | 16.039 |
Как видно из таблицы 1, реальная скорость трафика значительно ниже, чем заданная ширина канала. Особенно это заметно при большой ширине полосы пропускания.
Далее проведем аналогичные тесты на LAN_портах. При этом исходящим трафиком считается трафик, исходящий с порта (то есть идущий в LAN-сегмент).
LAN | Таблица 2 |
Значение ширины канала | скорость входящего трафика, Мбит/с | скорость исходящего трафика, Мбит/с |
128 кбит/с | 0,107 | 0,094 |
256 кбит/с | 0,215 | 0,188 |
512 кбит/с | 0,407 | 0,403 |
1 Мбит/с | 0,782 | 0,801 |
8 Мбит/с | 2,571 | 4,293 |
32 Мбит/с | 5,655 | 10,946 |
Так же, как и по результатам тестов, приведенных в таблице 1, видно, что реальные скорости очень сильно отличаются от заданных. Так как ограничение трафика в LAN сегменте привязывается к порту, то также возможно производить шейпинг трафика между LAN-портами.
Теперь посмотрим на задание приоритета трафику. Возможно задание приоритетов LOW и HIGH (низкого и высокого соответственно). Судя по результатам тестов, приоритеты назначаются трафику, идущему в направлении LAN -> WAN. Назначение приоритетов трафику, идущему между LAN-портами, а также в направлении WAN -> LAN не влияет на распределение потоков трафика.
Как выглядит распределение скоростей при назначении одному потоку трафика высокого приоритета, а другому — низкого можно увидеть на рис. 14
Напоследок, посмотрев, как ведет себя шейпинг на низкоскоростном канале (производился шейпинг трафика на WAN-порту), оказалось, что если ограничить ширину обратного канала значением 128 кбит/с, то при запуске потока трафика, голос перестает передаваться и собеседник вас просто не слышит — то есть обычный трафик может не дать работать устройству в качестве VoIP-шлюза. При ограничении ширины прямого канала, получается тот же самый эффект — разница лишь в том, кто кого не слышит.
Выводы:
На последнем этапе рассмотрения устройства, все-таки можно уверенно сказать, что устройство является VoIP-шлюзом, расширенным до роутера, и как показал самый последний тест, иногда одно может мешать другому (а конкретно роутер может мешать IP-телефонии).
Что касается шейпинга трафика, то заданная ширина полосы пропускания канала значительно отличается от реальных скоростей, причем при больших значениях — в разы.
Как показало тестирование, IP-телефония работает без сбоев, если она может получить необходимую ширину полосы пропускания канала. В случае если ширины полосы пропускания не хватает, практически все кодеки (кроме G.726) "вносят задержки" не совместимые с телефонным разговором. Кодек G.726 вместо задержек выдает прерывистый звук, который позволяет хоть как-то услышать, что говорит собеседник на другом конце линии. Однако сам кодек нельзя назвать наименее требовательным к полосе пропускания канала (битрейт звука 32 кбит/с), поэтому на ограниченном канале возможно лучше воспользоваться менее требовательными к каналу кодеками (например, G.723.1 с битрейтом звука 6,3 кбит/с). Использование возможности подавления пауз также позволяет несколько снизить требования к ширине полосы пропускания канала.
Устройство позволяет создавать правила для "быстрого набора", изменять частоты и длины "служебных" гудков, а также работать в качестве сервера менеджера телефонной книги (позволяет объединить внутренние сети нескольких устройств Nateks Networks).
Прокси-сервер, на котором регистрируется VoIP-шлюз не может находиться в LAN-сегменте, хотя при построении тестовой сети, я пытался это сделать. Это не частая, но вполне возможная конфигурация.
В ряде случаев мне приходилось пользоваться импульсным режимом набора номера, тоновый набор почему-то не работал при попытке совершить звонок на другой VoIP-шлюз с использованием сервера менеджера телефонной книги.
Плюсы:
- Большой выбор кодеков (6 штук)
- Наличие возможности QoS
- Возможность использования "внутренней телефонной сети" с другой нумерацией
- Возможность работать в качестве сервера "менеджера телефонной книги"
- Возможность использования быстрого набора (100 правил) и внутренней телефонной книги (100 правил)
- Возможность настройки тональности "гудков"
Минусы:
- Невозможность регистрации на прокси-сервере, находящемся в LAN-сегменте
- Использование устройства в качестве роутера может сделать невозможной работу в качестве VoIP-шлюза
- В ряде случаев не удавалось произвести вызов с использованием тонового набора номеров (приходилось использовать импульсный набор)
- Значительное отличие реальной скорости трафика от заданной ширины канала при использовании QoS