пятница, 16 ноября 2012 г.

Документация по D-Link DVG-2102s и DVG-7111

Как могли многие обнаружить документации по данным девайсам вообще нет. Однако есть его клоны или он клон ;) VoiceCom90

Вот ПДФ файл на русском: http://www.voipdevice.ru/docs/Voicecom90-Manual-RUS.pdf

А вот далее детальный разбор некоторых основных параметров шлюзов, перепечатанный с сайта http://www.lynks.ru/blog/nastroika-voip-shlyuza-d-link-dvg-xxxx, за что им огромное спасибо. Ведь бывает что статьи пропадают, а такой ценный текст терять нельзя.

Настройка VoIP шлюза D-Link DVG-XXXX

В последнее время на форумах очень часто начали спрашивать, как настроить ту или иную модель шлюза D-Link для работы совместно с сервером Asterisk. Популярность этих шлюзов растет уже много лет, ведь за сравнительно небольшие деньги потребитель получает качественный продукт, отлично работающий на подавляющем большинстве линий, но на сайте производителя мало информации для нашего конкретного случая – работы с Asterisk. Эта статья освещает все особенности настройки шлюзов современной серии DVG.

Настройка абонента в FreePBX

Настройка порта FXS со стороны сервера не отличается от настройки обычного телефона: нужно лишь создать SIP аккаунт, которому прописать номер, имя (английскими буквами) и пароль как показано на рисунке (для простоты пароль пользователя равен выданному номеру):
Добавление аккаунта для абонентского порта шлюза серии DVG Как видно из рисунка, параметр dtmfmode установлен в режим rfc2833, это значение нужно изменить на info.

Настройка транка и маршрутов в FreePBX

Настройка порта FXO несколько сложнее: нужно создать транковый аккунт, прописать исходящий и входящий маршруты. Для создания транка нужно перейти в Trunks, затем выбрать Add SIP Trunk. В открывшейся форме нужно в поле Trunk Name дать имя транку. Для удобства нужно дать имя, не пересекающееся с общей нумерацией системы для того, чтобы легко различать транки и абонентов в команде sip show peers, например 78XY, где X – номер шлюза в инсталляции, а Y – номер порта на шлюзе. Для того, чтобы шлюз мог зарегистрироваться в системе, необходимо задать параметры SIP пира, например так:
username=7811      ;имя пользователя для порта 
type=friend        ;позволяет и принимать и отправлять вызовы
secret=7811        ;для простоты пароль равен логину
qualify=yes        ;разрешает серверу определять доступность шлюза
port=5060          ;SIP порт шлюза
nat=no             ;запрещает NAT
host=dynamic       ;для работы шлюз должен зарегистрироваться
dtmfmode=info      ;режим DTMF должен быть общим для всего шлюза
context=from-pstn  ;контекст указывает обработчик входящих вызовов
canreinvite=no     ;запрещает передачу медиатрафика минуя астериск
По большому счету после этих настроек шлюз может зарегистрироваться и работать как обычно. Однако даже если прописать все порты по отдельности как положено, шлюз будет выбирать линию для выхода по принципам, известным только его разработчикам. Это происходит из-за того, что умная электроника сама определяет статус городской линии: если она не подключена к физически то шлюз не даст совершить вызов по этому порту и вызов перейдет на другой. Однако в некоторых случаях эта особенность только мешает и необходимо жестко прописывать порядок занятия портов. Для этого в первую очередь нужно прописать правило набора для этого транка (Dial Rules):
7811+X.
Это правило будет преобразовывать отправляемый номер, добавляя номер порта к набираемому номеру, что шлюз интерпретирует как занятие конкретного порта. Чтобы это работало, в шлюзе должна быть установлены опции в разделе Telephony Settings (обычно включены по умолчанию):
Включения занятия транка по портам Однако при прямом выборе транка шлюз не контролирует статус выбранной линии, если она будет отключена, то шлюз, как ни в чем не бывало, “поднимет трубку” и наберет вызываемый номер в линию, а вызывающий будет слышать лишь тишину. Так же не будет работать автоматический выбор другой линии, если по выбранная уже занята разговором. Для решения проблемы необходимо изменить исходный код FreePBX. Для этого нужно модифицировать файл /var/www/html/admin/modules/core/functions.inc.php, в котором примерно со строки 1240 после строчки

$exten = 's-BUSY';
будет примерно следующее содержимое:
$ext->add($context, $exten, '', new ext_noop('Dial failed due to trunk reporting BUSY - giving up'));
$ext->add($context, $exten, '', new ext_playtones('busy'));
$ext->add($context, $exten, '', new ext_busy(20)); 
этот код нужно изменить на следующий:
$ext->add($context, $exten, '', new ext_gotoif('$["x${OUTFAIL_${ARG1}}" = "x"]','noreport')); 
$ext->add($context, $exten, '', new ext_agi('${OUTFAIL_${ARG1}}'));
$ext->add($context, $exten, 'noreport', new ext_noop('TRUNK Dial failed due to ${DIALSTATUS} '));
Побочным эффектом может быть некорректная работа цифровых транков к провайдерам: при обнаружении занятости вызываемого номера система автоматически перейдет на следующий транк и повторит дозвон до тех пор, пока не дойдет до последнего транка в маршруте.
Для распределения звонков, поступающих с FXO портов шлюза следует настроить входящую маршрутизацию: прописать DID и CID номера в разделе Inbound Routes. В данном случае DID номер отвечает за то, на звонок с какого порта шлюза нужно реагировать, а CID номер определяет совпадение с номером звонящего:
Входящая маршрутизация шлюза DVG-XXXX Отбор по CID номеру будет работать только в том случае, если городские линии, подключенные к FXO порту шлюза, выдают CallerID. Многие пользователи жалуются на задержку в “два гудка” с момента поступления вызова на порт шлюза до поступления его в сервер. Эта задержка связана с технологией определения CallerID: дело в том, что тональный посыл вызываемого номера осуществляется между первой и второй посылкой вызывного сигнала. В текущей версии прошивки шлюза отключить эту паузу невозможно.

Базовые настройки шлюза

Сетевые параметры
Все шлюзы с завода имеют статический IP адрес 192.168.8.254, что по понятным причинам подойдет не всем. Самый простой способ включить получение параметров сети по DHCP – с помощью встроенного голосового меню. Для доступа в меню нужно подключить любой аналоговый телефон в порт FXS и нажать **#, после чего будет слышно однократное прерывание КПВ. Шлюзы без FXS портов можно подключить к городской линии с известным номером, позвонить с другого телефона на эту линию и набрать **# (после настройки не забудьте отключить сервисное голосовое меню).
После входа в режим IVR нужно набрать 114, шлюз спросит: “Enter value”, введите 2 для переключения в DHCP режим. Для сохранения настроек нужно нажать 509, через некоторое время шлюз сообщит: “One”, это означает, что настройки сохранены. Для перезагрузки можно набрать 118. После того, как шлюз перезагрузится можно снова войти в сервисное меню и, набрав 101, услышать присвоенный IP адрес.
Теперь нужно настроить основные параметры шлюза, для чего заходим на его веб интерфейс по полученному адресу. В разделе Network Settings нужно установить порты SIP и RTP в значения, актуальные для Вашей системы. Для TrixBox Embedded это, как правило, так:
Задание номеров SIP и RTP портов для работы D-link и Asterisk
Настройка телефонных сервисов
Если к шлюзу подключены телефоны, которые понимают посылки CallerID, то нужно включить передачу номера в разделе Caller ID (прием по умолчанию включен):
Включение генерации CallerID Для того, чтобы пользователи могли воспользоваться функцией “Flash” своего телефона необходимо включить эту возможность в разделе Calling Features:
Включение перевода звонка средствами шлюза Также можно включить и Call Waiting, однако нужно быть готовым, что пользователей будет выводить из себя обратный отзвон при неправильно положенной трубке. В новых версиях прошивки шлюзов в этом разделе присутствуют элементы управления дополнительными сервисами и их клавиатурными кодами. Эти коды пересекаются со встроенными в Trixbox и их необходимо отключить полностью.
Настройка DTMF и кодеков
Для правильной работы системы требуется четко определить способ передачи тоновых посылок между шлюзом и сервером. Ранее, при определении транка, мы прописали dtmfmode=info, аналогичные настройки нужно сделать и на шлюзе в разделе Advanced Options:
Настройка DTMF Опцию Enable Non-SIP Inbox Call следует отключить, она отвечает за режим работы шлюза с исходящими звонками: при ее включении все вызовы маршрутизируются шлюзом самостоятельно без участия сервера телефонии.
Так как в большинстве случаев шлюзы устанавливаются в локальной сети, в непосредственной близости от сервера телефонии. В этом случае нет необходимости нагружать оборудование сжатием голоса, тем более что это ухудшает качество связи и мешает передаче факсов. В разделе Codec Settings нужно выбрать кодек G.711:
Настройка кодеков

Настройки SIP подсистемы

Для того, чтобы шлюз взаимодействовал с сервером телефонии, его необходимо настроить: прописать SIP сервер, параметры регистрации, учетные данные для каждого порта шлюза. В разделе SIP нужно отметить опцию Enable Support of SIP Proxy Server / Soft Switch, а адрес сервера прописать в три поля:
Настройки SIP сервера в шлюзе В шлюзах D-Link есть возможность представлять все порты одного типа под одним логином, при этом шлюз сам выбирает доступные для звонка линии. Однако удобнее, когда управление выбора линий осуществляется с сервера, поэтому нужно прописать логины и пароли для каждого порта шлюза: Настройки SIP аккаунтов на примере шлюза DVG-7044 Для того, чтобы включить регистрацию порта шлюза, нужно отметить опцию Register.
После выполнения этих настроек уже должна работать исходящая связь в городские линии, а так же абонентские порты. Однако входящая связь работать не будет. Причина этому проста: шлюз не знает куда направить вызов по порту FXO. Для этого нужно всего лишь прописать Hotline в разделе Telephony Settings:
Hotline в разделе Telephony Settings Номер, который указываем в Hotline был прописан ранее при настройке входящей маршрутизации FreePBX. Если прописать эту опцию для FXS порта, то при поднятии трубки на подключенном телефоне шлюз моментально произведет набор указанного номера. В поле “Fax/Modem” нужно установить значение Disable, это предотвратит распознавание шлюзом факсовых сигналов и все данные будут отправляться в голосовом канале как есть.
Для сохранения настроек и применения их необходимо в разделе System Operation отметить соответствующие опции и перезагрузить шлюз:
Сохранение и применение настроек шлюза После перезагрузки шлюз зарегистрируется на сервере и будет готов к работе. Проверить это можно перейдя в модуль Asterisk CLI системы управления FreePBX и выполнив команду sip show peers. Эта команда должна вывести информацию о всех заведенных устройствах и их регистрации в системе:
Вывод команды sip show peers

Настройка определения сигнала “Занято”

Шлюзы D-Link обладают развитыми средствами определения сигналов на линии (CPT – Call Progress Tones), самым важным из которых является определение сигнала отбоя (или занятости линии). Надежное определение отбоя гарантирует отсутствия зависших линий. Для правильной настройки необходимо прописать точные параметры длительности и частоты сигналов. В России стандартная частота сигнала отбоя 425 Гц при длительности 350 мс через 350 мс тишины. Однако на местах величины этих параметров могут быть непредсказуемыми и требуют определения. Самый простой способ это сделать – записать сигнал и проанализировать в аудиоредакторе. Для этого нужно включить запись на каком-либо внутреннем номере и позвонить через внешнюю линию на другой телефон (например на сотовый). После ответа на удаленном телефоне необходимо положить трубку, на вызывающем немного подождать для записи достаточного повторов для точного анализа. После этого полученный файл нужно открыть в аудиоредакторе, например, Audacity:
Определение периодичности сигнала в Audacity В конце файла можно увидеть характерные прямоугольные импульсы – это и есть графическое отображение сигнала отбоя. Нужно точно выделить полное количество периодов сигнала, как показано на рисунке, в строке состояния будет отображено время выделенного промежутка в секундах. Поделив количество секунд на количество периодов получим длительность сигнала. Поделив еще на два, получим длительность сигнала и тишины отдельно. В данном случае длительность равна 2560 мс, следовательно длительность периодов равна 2560/4/2=320 мс.
Для измерения частоты сигнала необходимо выделить участок с сигналом и построить график спектра:
График спектра в Audacity На этом графике будет отчетливо видны пики на тех частотах, которые используются в формировании сигнала. В данном случае сигнал одночастотный (а бывают и двухчастотные, для них будет два пика) с максимальной амлитудой на частоте 425 Гц. Полученные значения нужно прописать в шлюз. В разделе CPT / Cadence Settings в таблице Busy Tone Cadence Measurement нужно прописать в одной из строк длительности периодов сигнала:
Задание параметров длительности периодов сигнала "занято" Эта таблица отвечает за обнаружение периодичности сигнала без учета частот. Опцию Auto Learning нужно отключить во всех строчках, в других незадействованных строках все значения нужно выставить в 0. Точную частоту сигнала нужно прописать в одной из секций CPT:
Задаем точную частоту сигнала "занято" После этих настроек шлюз должен “железно” определять занятость линии и прекращать соединение.

Методы устранения эха и других проблем

Устранение эха
Эхо это основная врожденная болезнь стыка VoIP и аналоговых систем, оно образуется из-за задержки при кодировании и декодировании сигнала. В традиционных системах эхо так же есть, но задержка во времени минимальна и ухом человека почти не воспринимается, а также легко давится примитивными противоместными схемами. Устранение эха в шлюзах D-Link сводится к простому перебору преднастроенных параметров импеданса FXO линий в разделе Advanced Options:
Подбор параметров для удаления эха Хорошие результаты обычно показывают варианты для Новой Зеландии и Греции. Если эхо все равно есть, то можно попробовать другие варианты. Удобно, что перезагрузки шлюза для вступления в силу этой настройки не требуется, нужно просто нажать в нижней части страницы кнопку Accept. Все изменения слышны на слух. Для проверки нужно позвонить в FXO линию и разговаривать, подбором параметра добиться пропадания эха с обоих сторон.
Регулировка громкости и длительности Flash
Часто бывает, что порт подключен к тихой линии и одного из абонентов плохо слышно. Это можно исправить в разделе Advanced Options -> Line Settings, там же можно настроить длительность определения сигнала flash:
Регулировка громкости и длительности flash При изменении громкости эхо может возникнуть снова, это можно попробовать исправить повторным подбором импеданса линии, однако при сильном увеличении громкости зачастую эхо невозможно убрать. В таком случае можно попробовать увеличивать громкость на абонентских устройствах.
Самопроизвольный обрыв разговора
После обновления прошивки около года назад многие пользователи шлюзов заметили спонтанные обрывы связи, при этом со стороны сервера все выглядело так, как будто на стороне FXO линии произошел отбой. Долгие часы и дни решения проблемы выявили новую опцию в подсистеме распознавания сигнала занято: Auto Learning. В общем-то полезная опция появилась неожиданно, однако ее нужно отключать сразу после того, как шлюз определит параметры сигнала, т.е. в процессе начальной настройки. Если этого не сделать, то умная железка может обнаружить повторяющиеся последовательности в процессе обычного разговора и прервать вызов.
Отладка шлюза
Шлюзы D-Link могут выдавать подробный лог своих действий, что незаменимо при отладке проблемных моментов. Для этого нужна специальная программа slmon, которая присоединяется к шлюзу по TCP или UDP соединению, снимает лог событий в реал-тайм режиме и сохраняет их на диск.

Комментариев нет:

Отправить комментарий