VoIP телефония. Корпоративная сеть.
Богдан Ясинецкий
- |
В данной статье описан основной порядок действий по инсталляции системы корпоративной телефонии. При чтении данной статьи заведомо не будут даваться ссылки на документацию, которая поступает с устройствами или указываться в общем плане порядок действия с устройствами. Задача администратора - иметь эту документацию и в случае необходимости часть действий, описанных ниже проводить в соответствии с документацией производителя. Пример: нет особого смысла описывать порядок замены программного обеспечения в устройстве IP телефонии в данной статье - эта часть очень подробно описана в документации на устройство. Предполагается что у администратора имеется определенный опыт работы как в среде Windows так и в среде
UNIX, но направление VoIP - для него новое и его надо практически внедрять.
|
- |
Учитывая что в общем случае мы работаем с устройствами удаленно и добраться до удаленного устройства иногда не представляется возможным, рекомендуется все работы производить чрезвычайно аккуратно и осознанно. Есть смысл дополнительно известить в офисе где установлено удаленное устройство необходимый персонал (секретарей, например) о том где это устройство находится и какой порядок включения/выключения/сброса питания на этом устройстве. Очень полезным будет на верх устройства наклеить большой лист бумаги и нарисовать стрелку в направлении выключателя питания. Это не CISCO класс оборудования, может и зависнуть. Должны быть готовы.
|
В предыдущих статьях было рассказано о построении корпоративного сервера и рассмотрены некоторые вопросы корпоратизации компьютерной системы - базовые элементы построения внешней части интранет инфраструктуры:
- Подключение к Интернет
- Регистрация доменного имени
- Структура почтовой системы
- Построение виртуальных каналов между разнесенными офисами
Сейчас рассмотрим вопросы более тесного связывания офисов в единую сеть предоставлением сервисов корпоративной телефонии.
Некоторые предварительные замечания о структуре телефонной сети, применяемом оборудовании и направлениях действий. В данной статье будет описано построение заведомо более сложной системы, чем можно было бы сделать, но в данной заведомо более сложной схеме реализации существует определенная гибкость системы и возможность достаточно простого расширения без перестройки всех устройств системы путем только наращивания оборудования. Все о чем идет дальше работает только в среде DTMF нумерации.
Самый простой вариант - полное отсутствие какой бы то ни было телефонной инфраструктуры в подразделениях. Случается. Часто. Но звонить надо, поэтому ставятся городские телефоны или люди просто используют корпоративные мобильные пакеты. Сейчас этого добра уже достаточно и в перспективе будет еще больше. Чем хорош такой подход - делать ничего не надо. Оно работает. Чем плох - дорого. Как можно расправиться с корпоративным пакетом - запихнуть его в GSM гейт. О чем идет речь - существует оборудование которое можно использовать для GSM телефонии и к нему подключать или обычные телефоны или офисные АТС. Удобно в случае если нужна телефонная линия, а физически доступна только сеть мобильной связи. Есть альтернативный вариант - если офис подключен к Интернету и существует нормальный интернет-канал - настроить телефонное взаимодействие офисов через Интернет. Мы говорим о канале более 128 кб/с.
Что для этого требуется - оборудование перевода телефонного сигнала в Интернет-формат и программное обеспечение управления всем этим оборудованием. Задачу ставим следующим образом: есть 3 офиса, территориально разнесенные на большое расстояние, подключенные к Интернет и между офисами настроены виртуальные сети как это описано в предыдущей статье или какие-либо иные схемы. Главное условие - мы не выходим с адресами этих сетей непосредственно в Интернет.
Какое выбираем оборудование - здесь будет дан пример выполнения телефонии на оборудовании H.323. Существует более новый стандарт - SIP. Пускай существует. Мы работаем с H.323. Пока в подробности не вдаемся. Основная наша задача пока - помнить что стандартов несколько и сосредотачиваться на чем-то одном.
Считаем, что внутри офисов существуют локальные телефонные станции. Для станций ряда Panasonic - проблем не возникает. Для Siemens - немного по другому. Серии Hicom-120/125 по программному обеспечению не позволяют (по крайней мере мы не нашли варианта) для формирования тоновых посылок с системного телефона на внутренний телефонный номер. То есть, при звонках через внешний порт АТС (в город) путем последовательного нажатия кнопок “*” и “#” после этой комбинации в порт выдаются DTMF посылки - можно управлять устройствами на внешнем канале. Это не получается при звонках с системного телефона на внутренний порт. После длительных переговоров с различными телефонными гуру - решения вопроса не было. То ли не того уровня гуру нам попадались, то ли это действительно из-за древности идеологии Hicom-120/125 - нам было разъяснено что она этого не может. Мы говорим только о системном телефоне. С обычным телефоном вообще этих вопросов не возникает. Ставишь его под DTMF и работаешь. В связи с этим принято решение - перейти на HiPath. Там это делается сразу, но при заказе станции необходимо указать это условие как обязательное в техническом задании - все «супер» гуру очень хорошо умеют считать деньги и постоянно- чего-то недоговаривать, оставляя себе сладенький кусочек на перспективу. Смотришь клиент проснется - и чего-то еще отломится. Это и есть причина почему такого класса требования надо писать на бумаге и, особенно, когда чувствуете какое-то неудобство при ведении переговоров с потенциальным поставщиком или инсталлятором АТС (да и любого другого сложного оборудования) до того как уплатить деньги требовать подписи подобного документа потенциальным исполнителем / поставщиком. В противном случае - придется платить деньги еще и за «сложное конфигурирование» а то и воевать по поводу полного возврата оборудования из-за его функциональной непригодности.
Что мы делаем - ставим достаточно простое оборудование. Какое. Какое существует. Какое продается. В принципе для наших условий существует два интерфейса VoIP оборудования - FXO и FXS. Что это - это два типа подключений - FXS порт изображает из себя порт АТС - то есть он в состоянии только выдавать напряжение звонка в линию, соответственно - это эмуляция той телефонной пары которая приходит с городской АТС - к нему подключается обычный телефон, способный по умолчанию работать в DTMF. Другой тип порта - FXO - он эмулирует пользовательский телефонный аппарат в части того, что он может «снимать трубку», отвечать и набирать номер. Так как это телефонный интерфейс - он также может воспринимать набор, передаваемый ему в DTMF. Этот порт подключается к порту телефонной станции как обычный телефон или факс. Телефонная станция конфигурируется для работы по этому порту в DTMF. Это нам и надо.
Кто производители оборудования - их много. Список можно найти например здесь
http://www.gnugk.org/interoperability.html и здесь
http://www.gnugk.org/interoperability-2.html Список внушает уважение, но не более. Наш выбор невелик -
Dynamix или NSG. Кто-то может добыть Micronet. Не будем вдаваться в подробности этих устройств - общее у них - версия прошивки. Это базовое устройство одного производителя и во все эти устройства заливается одинаковое программное обеспечение. Что еще с этими устройствами полезного на перспективу - перезаливкой программного обеспечения эти устройства можно перевести с протокола работы H.323 на протокол SIP. Кто знает как со временем сложатся требования - может придется переходить на SIP - тогда что-то при подобном выборе можно будет сэкономить. Почему мы не говорим о DLink ? Да, DLink существуют, они определились что более не поддерживают H.323 - не будем с ними спорить. Очень полезно по поводу DLink зайти на
http://www.dlink.ru в раздел Форум и почитать статьи на предмет формата и спектра задаваемых вопросов и качества ответов. Если Вам будут настраивать систему телефонии сторонние фирмы и они полностью будут нести ответственность за работоспособность строящейся системы - всегда пожалуйста, но мы должны строить сами.
Выберем для примера Dynamix
0004/H. Это 4-х портовая VoIP FXO система. Так как подобные устройства обычно как пирожки на лотке не продаются , то в фирме в которой мы их будем покупать попросим перешить их сразу под прошивку 2m4fxo118b. Это последняя стабильно работающая прошивка для этого класса устройств. Что потребуется еще - FreeBSD. Считаем что она настроена и работает. VPN подняты. Там есть место для инсталляции и настройки GateKeeper - программного обеспечения управления телефонными каналами.
Технология предполагается следующая - есть 3 офиса. В каждом офисе устанавливается VoIP устройство. Для каждого офиса определяем его «код дозвона» - то есть при наборе номера «код дозвона» будет определять то устройство на котором мы хотим прийти для последующего донабора на внутренней АТС.
Офис
|
Код офиса |
Внутренняя
Нумерация
В офисе |
Устройство
IP телефонии
(не принципиально) |
Офис - А (о.А)
|
2
|
100-120
|
118, 119
|
Офис - Б (о.Б)
|
5
|
200-220
|
218, 219
|
Офис - С (о.С)
|
9
|
300-320
|
318, 319
|
Как будет производиться звонок:
- допустим мы находимся в офисе А и звоним в о. Б на номер 206
- набираем внутренний номер порта на телефонной станции 118 офиса А
- слышим голосовое приветствие
- набираем код офиса Б - 5
- набираем нужный номер - 206
- завершаем набор символом «#»
или
- допустим мы находимся в офисе С и звоним в о. А на номер 106
- набираем внутренний номер порта на телефонной станции 318
- слышим голосовое приветствие
- набираем код офиса А - 2
- набираем нужный номер - 106
- завершаем набор символом «#»
Приниматься звонок обычно будет на последний подключенный порт VoIP устройства. Что можно оговорить при конфигурировании офисной АТС - создать группу для звонков на VoIP устройство. Примерно вот как: определяемся - что мы звоним на номер 118 - он занят - звонок сразу же маршрутизируется на 119. То есть все пользователи знают только один номер обращения к устройству, а дальше сама АТС определяет на какой свободный порт перебросить этот звонок.
То есть логически достаточно ясная схема работы. Может предложенная схема и не «прозрачна» - в таком случае вам необходимо идти по направлению стекирования используемых АТС. Но это другие масштабы, другие деньги и другие затраты на обслуживание. Технически могут быть и другие вариации использования оборудования и схем организации телефонии, которые может будут более технологичны, но мы реализуем описанный выше подход. Особенности этого подхода:
- ясная схема использования для сотрудников
- простота реализации
- возможность контроля звонков
- возможность блокирования определенных направлений или номеров для дозвона
- возможность перенаправления звонков
С чего начинаем.
Берем в аренду нужное количество устройств с прошивкой 2m4fxo118b.
Если не удалось получить именно с этой прошивкой - не страшно. Начинаем с тем что у нас есть. Или идем на
http://www.micronet.info или на сайт производителя и скачиваем 2-х мегабайтный образ прошивки. Дополнительно потребуется TFTP сервер под Windows, компьютер с COM - портом. Найдите в документации на устройство порядок подключение HyperTerm (стандартная компонента Windows/Communications) - в части точного описания параметров, выставляемых для COM-порта в HyperTerm. Устройство поставляется с кабелем подключения к COM-порту.
Если что-то не получилось или мы не дождались полной перепрошивки устройства и оно больше не грузится. В общем случае - не страшно. Еще не все потеряно. Данные устройства сконструированы так, что первоначально загружается загрузчик, а только потом загружается сама прошивка. Нам нужно будет перезалить прошивку находясь не на уровне самой прошивки - не в ее программном окружении - а на более низком уровне - на уровне загрузчика. Техподдержка отлично знает порядок действий в этом случае и стандартные пароли загрузчика устройства. В противном случае -
http://www.micronet.info вопрос 23 разъяснит многое.
Дальше. Рисуем схему сети:

Действуем
в соответствии со схемой:
- Через HyperTerm
/ COM-порт на всех трех
устройствах меняем необходимые IP,
Gateway, проверяем маски и
обязательно проверяем наличие чего-то
логически удобоваримого в MAC адресе.
Устройство работоспособно при
невыставленном MAC.
Устанавливаем устройства в их сетях.
Проверяем доступность устройств как по
Telnet так и по HTTP.
Нам понадобятся и первое и второе.
Что делается по Telnet:
- Сначала
дается список работ, некоторые
необходимые для понимания
разъяснения, потом - под номерами -
примеры программирования устройств.
Для различных офисов будут
проставляться соответствующие
указатели -А, -Б, -С.
1-А
- программируем интерфейсы (если это до
конца не сделано из консоли - через COM-порт).
DNS указан в файле конфигурации,
проставим его, но ничего сказать об его
практическом использовании мы не можем.
Блок от PPPoE user name - до конца - не трогаем
вообще. Что стоит - то и стоит.
usr/config$ ifaddr
-print
|
|
IP mode |
: Static |
Internet address information |
|
IP address |
:
192.168.40.251 |
Subnet mask |
: 255.255.255.0 |
Default gateway |
:
192.168.40.254 |
DNS primary |
:
192.168.40.240 |
DNS secondary |
:
192.168.40.241 |
HTTP port |
: 80 |
SNTP |
: mode=0, sntp off |
IPSharing |
: no IPSharing device. |
IP change |
: Disable |
PPPoE user name |
: pppoe |
PPPoE password |
: ***** |
PPPoE reboot |
: Yes |
PPPoE echo |
: Disable |
EMS IP |
: 10.1.1.2 |
EMS user name |
: Max_Su |
EMS password |
: ****** |
EMS time |
: 0 |
usr/config$
|
|
1-Б
usr/config$ ifaddr
-print
|
|
IP mode |
: Static |
Internet address information |
|
IP address |
: 192.168.41.251 |
Subnet mask |
: 255.255.255.0 |
Default gateway |
: 192.168.41.254 |
DNS primary |
: 192.168.41.240 |
DNS secondary |
: 192.168.41.241 |
HTTP port |
: 80 |
SNTP |
: mode=0, sntp off |
IPSharing |
: no IPSharing device. |
IP change |
: Disable |
PPPoE user name |
: pppoe |
PPPoE password |
: ***** |
PPPoE reboot |
: Yes |
PPPoE echo |
: Disable |
EMS IP |
: 10.1.1.2 |
EMS user name |
: Max_Su |
EMS password |
: ****** |
EMS time |
: 0 |
usr/config$
|
|
1-С
usr/config$ ifaddr
-print
|
|
IP mode |
: Static |
Internet address information |
|
IP address |
: 192.168.60.251 |
Subnet mask |
: 255.255.255.0 |
Default gateway |
:
192.168.60.254 |
DNS primary |
:
192.168.60.240 |
DNS secondary |
:
192.168.60.241 |
HTTP port |
: 80 |
SNTP |
: mode=0, sntp off |
IPSharing |
: no IPSharing device. |
IP change |
: Disable |
PPPoE user name |
: pppoe |
PPPoE password |
: ***** |
PPPoE reboot |
: Yes |
PPPoE echo |
: Disable |
EMS IP |
: 10.1.1.2 |
EMS user name |
: Max_Su |
EMS password |
: ****** |
EMS time |
: 0 |
usr/config$
|
|
2. Системные параметры:
- Inter-Digits time
- время в секундах от момента набора последней цифры в телефонный порт устройства до момента
завершения приема набранной посылки, формирования задания и отправки задания по соединению на обработку.
Для «тугодумов», которые не помнят «на взлет» набираемый номер - этот фактор может стать определенной проблемой.
Это одна из причин почему в системе принято стандартом завершать набор указателем «законченности» набора
номера « # »
- User defined prefix disable - код нашего офиса: А-2, Б-5, С-9, убираем префикс при принятии звонка
- Local generate ring back tone - в момент выполнения соединения - хотим чтобы трубка не молчала а выдавала подобие
гудков дозвона
- Ring before answer - количество гудков с PBX после которых устройство снимает трубку
- End of dial - требование восприятия символа # как завершение команды и немедленного набора номера
1-А
usr/config$ sysconf -print
|
|
System information |
|
Inter-Digits time |
: 8 |
Keypad DTMF type |
: H.245 SignalType |
User defined prefix switch |
: OFF |
User defined prefix disable |
: 2 |
User defined prefix |
: - |
Codec select method |
: Master |
Local generate ring back tone |
: Enable |
Round Trip |
: Disable |
Gateway prefix |
: Drop |
End of dial |
: Enable |
Detect silence voice |
: Enable |
Ring time |
: 1 |
Ring before answer |
: 1 |
Delay
to add DTMF |
: 1 |
Auto connect time |
: 1 |
FXO type |
: Normal |
usr/config$ |
|
1-Б
usr/config$ sysconf -print
|
|
System information |
|
Inter-Digits time |
: 8 |
Keypad DTMF type |
: H.245 SignalType |
User defined prefix switch |
: OFF |
User defined prefix disable |
:
5 |
User defined prefix |
: - |
Codec select method |
: Master |
Local generate ring back tone |
: Enable |
Round Trip |
: Disable |
Gateway prefix |
: Drop |
End of dial |
: Enable |
Detect silence voice |
: Enable |
Ring time |
: 1 |
Ring before answer |
: 1 |
Delay
to add DTMF |
: 1 |
Auto connect time |
: 1 |
FXO type |
: Normal |
usr/config$ |
|
1-С
usr/config$ sysconf -print
|
|
System information |
|
Inter-Digits time |
: 8 |
Keypad DTMF type |
: H.245 SignalType |
User defined prefix switch |
: OFF |
User defined prefix disable |
:
9 |
User defined prefix |
: - |
Codec select method |
: Master |
Local generate ring back tone |
: Enable |
Round Trip |
: Disable |
Gateway prefix |
: Drop |
End of dial |
: Enable |
Detect silence voice |
: Enable |
Ring time |
: 1 |
Ring before answer |
: 1 |
Delay
to add DTMF |
: 1 |
Auto connect time |
: 1 |
FXO type |
: Normal |
usr/config$ |
|
3.
Конфигурирование H.323
Gatekeeper IP address |
|
- адрес гейткипера |
Registered prefix number |
|
- префикс офиса - А-2, Б-5, С-9 |
Line1 |
|
- не трогаем, что стоит - то и стоит |
Registered alias |
: ofa |
- идентификация офиса в отчетах |
Display Information |
: ofa |
- идентификация офиса в отчетах |
Gatekeeper ID |
|
- имя гейткипера |
3-А
usr/config$ h323 -print
|
|
H.323 stack relate information |
|
RAS mode |
: GK mode |
Gatekeeper IP address |
: 192.168.60.252 |
Second Gatekeeper IP : |
|
Gateway Type |
: Gateway1 |
Registered prefix number |
: 2 |
Line1 |
: 000 |
Line2 |
: 001 |
Line3 |
: 002 |
Line4 |
: 003 |
H.235 security token |
: * |
Registered alias |
: ofa |
Display Information |
: ofa |
Gatekeeper discovery |
: Off |
Gatekeeper ID |
: GK-OFC |
RAS TTL time |
: 60 |
RTP port |
: 16384 |
Gatekeeper finding port |
: 1718 |
GK RAS port |
: 1719 |
H225 RAS port |
: 1024 |
H225 Call signal port |
: 1720 |
Allocated port range : |
|
start port |
: 2000 |
end port |
: 19999 |
Response timeOut |
: 15 |
Connect timeOut |
: 60 |
usr/config$ |
|
3-Б
usr/config$ h323 -print
|
|
H.323 stack relate information |
|
RAS mode |
: GK mode |
Gatekeeper IP address |
: 192.168.60.252 |
Second Gatekeeper IP : |
|
Gateway Type |
: Gateway1 |
Registered prefix number |
:
5 |
Line1 |
: 000 |
Line2 |
: 001 |
Line3 |
: 002 |
Line4 |
: 003 |
H.235 security token |
: * |
Registered alias |
:
ofb |
Display Information |
:
ofb |
Gatekeeper discovery |
: Off |
Gatekeeper ID |
: GK-OFC |
RAS TTL time |
: 60 |
RTP port |
: 16384 |
Gatekeeper finding port |
: 1718 |
GK RAS port |
: 1719 |
H225 RAS port |
: 1024 |
H225 Call signal port |
: 1720 |
Allocated port range : |
|
start port |
: 2000 |
end port |
: 19999 |
Response timeOut |
: 15 |
Connect timeOut |
: 60 |
usr/config$ |
|
3-C
usr/config$ h323 -print
|
|
H.323 stack relate information |
|
RAS mode |
: GK mode |
Gatekeeper IP address |
: 192.168.60.252 |
Second Gatekeeper IP : |
|
Gateway Type |
: Gateway1 |
Registered prefix number |
:
9 |
Line1 |
: 000 |
Line2 |
: 001 |
Line3 |
: 002 |
Line4 |
: 003 |
H.235 security token |
: * |
Registered alias |
:
ofc |
Display Information |
:
ofc |
Gatekeeper discovery |
: Off |
Gatekeeper ID |
: GK-OFC |
RAS TTL time |
: 60 |
RTP port |
: 16384 |
Gatekeeper finding port |
: 1718 |
GK RAS port |
: 1719 |
H225 RAS port |
: 1024 |
H225 Call signal port |
: 1720 |
Allocated port range : |
|
start port |
: 2000 |
end port |
: 19999 |
Response timeOut |
: 15 |
Connect timeOut |
: 60 |
usr/config$ |
|
4.
Устанавливаем параметры голосового (телефонного) сигнала и кодеки.
Эта страница приводится как справочная. Все указанные параметры намного удобнее делать из HTTP интерфейса. Что мы здесь корректируем - порядок следования кодеков и громкость приема/передачи. DTMF громкость оставляем без изменений. С громкостью особо увлекаться не стоит - может искажаться звук. Все для всех устройств одинаково.
usr/config$ voice
-print
|
|
Voice codec setting relate information |
|
Sending packet size |
: |
G.729 |
: 60 ms |
G.729 |
:
60 ms |
G.729A |
: 60 ms |
G.729B |
: 60 ms |
G.729AB |
: 60 ms |
G.711U |
: 40 ms |
G.711A |
: 40 ms |
Priority order codec |
:
g729 g729 g729a g729b g729ab g711u g711a |
Volume levels |
: |
voice volume |
: 35 35 35 35 |
input gain |
: 35 35 35 35 |
dtmf volume |
: 23 23 23 23 |
No sound compress & CNG |
: |
G.729 |
: There is no setting |
G.729 |
: There is no setting |
G.729A |
: There is no setting |
G.729B |
: There is no setting |
G.729AB |
: There is no setting |
G.711(U-Law) |
: There is no setting |
G.711(A-Law) |
: There is no setting |
Echo canceller |
: On On On On |
Jitter buffer |
: |
Min Delay |
: 90 |
Max Delay |
: 150 |
usr/config$
|
|
5. Различные протоколы - так как не являются для нас приоритетными - не рассматривались. Остаются как есть. Будем с ними разбираться позже. Когда будет все работать. А то и вообще перейдем на
E-Mail.
usr/config$ support
-print
|
|
Special Voice function support manipulation |
|
T.38(FAX) support |
: Disabled |
T.38(FAX) Request Mode |
: Enabled |
T.38(FAX) ECM |
: Disabled |
T.38(FAX) ASN.1 |
: Disabled |
FAX redundancy depth |
: 0 |
FastStart support |
: Disabled |
Tunneling support |
: Disabled |
H.245 message after FastStart support |
: Enabled |
EarlyH245 support |
: Disabled |
usr/config$
|
|
6. Phone. Не трогаем. Как работает - пусть так и работает.
7. Tone. Вот с этим нам может придется повеселиться.
Одной из задач функционирования устройства IP телефонии является точное идентифицирование тонов занятости (Busy) со стороны телефонной станции. Для начала сконфигурируем полностью телефонную систему, и потом в случае если эта часть не будет работать - будем настраивать и ее. Если работает - забываем этот раздел и говорим себе - хорошо, пронесло. Что значит работает - не работает. Если после окончания разговора устройство не «ложит трубку» в сторону PBX более 5 секунд - значит не работает. Надо настраивать.
Порядок настройки. Настройка (программирование) устройства ведется из HTTP интерфейса. Что нам понадобится из оборудования - микрофон, компьютерные колонки, провод соединяющий VoIP устройство и PBX к которому в центре можно подключить напрямую компьютерную колонку (с блоком питания у усилителем) и через нее услышать искомый сигнал «занято». То есть фигурально выражаясь - делаем провод для «прослушки» и «прослушиваем» на компьютерную колонку. Микрофон подносим к колонке и пишем сигнал «занято» в звуковой файл на компьютер в виде WAV файла. Это можем сделать даже средствами Windows - Sound Recorder. C:\WINDOWS\System32\sndrec32.exe. Дальше - ставим SoundForge. Подойдет даже какая-нибудь древняя версия. По примеру с 4.5 делаем следующее: считываем записанный файл, прямо на экране определяем временные параметры включения/выключение сигнала «занято» - перемешаем курсор к началу/концу сигнала и записываем время (справа внизу в формате 00:00:05.455). Записываем показания примерно 5-6 импульсов и в табличке определяем их длительность (А на рисунке).

Начало
|
Конец
|
Результат,
сек.
|
0.684
|
1.230
|
1.230-0.684=0.546
|
пауза
|
1.706-1.230=0.476
|
1.706
|
2.252
|
2.252-1.706=0.492
|
пауза
|
2.739-2.252=0.484
|
2.739
|
3.297
|
3.297-2.739=0.558
|
Делаем подобные вычисления точнее и принимаем средние значения - пауза/сигнал.
Теперь, в том же SoundForge - отмечаем курсором сигнал занятости, потом - Tools - Spectrum Analyses. В окне спектрального анализа выставляем в Options-Settings пределы анализируемых частот - скажем от 350 до 450 гц. Программа выдаст пик частот. Можем дать Update. В результате мы получили временные и частотные параметры сигнала «занято». На рисунке записан анализ для Hicom-125.
Что дальше - ставим в соответствующем окне HTTP интерфейса настройки устройства.
Записано в первой строке следующее - частота - 425 гц, скважность сигнала - 350 мс. Это стандартной значение для станций HiPath-3000.
Таблица большая из предположения, что станция сильно умная и на каждый вариант она может выдавать свой отличный от другого сигнал. Мы работаем только с одной строкой. В большинстве случаев этого достаточно.
И последнее - настраиваем TOS. Это выставление приоритетов прохождения VoIP сигнала по Ethernet сетям.
Делается одинаково для всех устройств.
usr/config$ tos
-print
|
|
IP Packet ToS
information: |
|
Signalling
Packet: |
|
DSCP Code |
: 6 |
Media Packet : |
|
DSCP Code |
: 6 |
usr/config$
|
|
Не будем вдаваться в подробности максимально значения параметра TOS. Выставим 6.
Как было сказано ранее - мы не говорим простейшие вещи по конфигурированию - но один раз напомним - команды Commit / Reboot. В документации об этом написано.
Итак, считаем что Hardware инфраструктура готова. Проверяем доступность до всех устройств из офиса С (там будет размещаться GateKeeper). Пробуем, перегружаем, слушаем голос вежливой барышни со всех сторон и думаем что будем делать дальше. А дальше - ставим GNU GateKeeper.
Так как ранее мы ориентировались в построении всей инфраструктуры на FreeBSD - продолжим в том же духе. У нас есть FreeBSD 5.4.
Ставим
/usr/ports/net/gatekeeper
Make
Make install
Или то же самое делаем через pkg_add - но будьте готовы к тому, что достаточно много вспомогательных пакетов будет устанавливаться. Теоретически можно ставить самый распоследний GateKeeper - но начать надо с анализа одной странички и размышлений о привязанности этого пакета к большому числу вспомогательных пакетов:
http://www.gnugk.org/compiling-gnugk.html. Занимательный документ. Ясно написано для FreeBSD что надо крепко ковыряться для получения работающей системы. Тихо об этом забываем и ставим то, что скомпилировано в дистрибутиве и по уверению разработчиков FreeBSD работает. Теоретически существует версия для Windows. Да. Существует. Только одна особенность, никем со стороны разработчиков GNUGK не признаваемая - Dynamix с GNUGK под Win-2000 сервер или Win-2003 сервер не работает. Суть вот в чем. Оно работает. Но падает. С периодичностью от 20 мин до 2-х недель совершенно бессистемно. После длительных разборок (и с техподдержкой Dynamix) общее мнение, удовлетворяющее обе стороны, следующее: видимо какие-то проблемы у Динамиксов с разбором TCP/IP пакетов производства Microsoft, сформированных Win-2003. Разбираться с этим - не представляется возможным - нерегулярные падения. Нельзя идентифицировать стабильный момент зависания устройства. Зависает оно по Ethernet стороне. Решение - ставить только в Unix окружении. Так и ставим.
Развернули. Поставили. Нарисуем файл
/usr/local/etc/gnugk.ini
Оставлено то что для нас существенно. Комментарии прилагаются. Все дано для примеров устройств выше.
; comments may start with # (only unix) or ; (unix or
windows)
;; Boolean values.
;; Boolean Values are retresented by a case insensitive string
;; - "t"..., "y"... or "1" for TRUE
;; - all other for FALSE
;; NOTE: This parameters may be loaded at program startup and not influenced by the HUP
signal.
[Gatekeeper::Main]
;; 'config is present' indicator. Has to be 42. - Это всегда так, как пароль
Fourtytwo=42
; Includes in some RAS-Msgs
Name=GK-OFC
; overwritten from command line parameter
Home=192.168.60.252
;NetworkInterfaces=
TimeToLive=300
;TotalBandwidth=100000
;StatusPort=7000
;StatusTraceLevel=2
;UseBroadcastListener=0
;;
;; Failover support
;;
;AlternateGKs=1.2.3.4:1719:false:120:OpenH323GK2
;Sendto=1.2.3.4:1719
;EndpointIDSuffix=_gk1
;SkipForwards=4.3.2.1
;RedirectGK=Calls > 50
;;
;; You should never need to change any of the following values.
;; They are mainly used for testing or very sophisticated applications.
;;
;UnicastRasPort=1719
;MulticastPort=1718
;MulticastGroup=224.0.1.41
;EndpointSignalPort=1720
;ListenQueueLength=1024
;TimestampFormat=RFC822
[LogFile]
; hourly - once per hour
; daily - once per day,
; weekly - once per week,
; monthly - once per month
Rotate=hourly
; For weekly rotation:
; Mon, Tue, Wed, Thu, Fri, Sat, Sun
; Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
; 1, 2, 3, 4, 5, 6, 0
;RotateDay=Sun
; For monthly rotation (31th of each month, or the last day of the month
; if it has less than 31 days)
; RotateDay=31
; For daily, weekly and monthly rotation (rotation will be performed at 4:00)
RotateTime=15
; For hourly rotation (rotation will be performed at 0:59, 1:59, ...)
;RotateTime=59
;; Здесь может быть одна заминка - проверьте соответствие портов на устройстве в разделе h323 и здесь
;; по умолчанию - могут быть разные порты
[RoutedMode]
GKRouted=1
H245Routed=0
CallSignalPort=1720
CallSignalHandlerNumber=1
RemoveH245AddressOnTunneling=0
AcceptNeighborsCalls=1
AcceptUnregisteredCalls=1
SupportNATedEndpoints=1
DropCallsByReleaseComplete=1
;RemoveCallOnDRQ=1
;SendReleaseCompleteOnDRQ=0
;ScreenDisplayIE=
;ScreenCallingPartyNumberIE=
;ScreenSourceAddress=
;ForwardOnFacility=1
;ShowForwarderNumber=1
;Q931PortRange=20000-20999
;H245PortRange=30000-30999
;ConnectTimeout=180000
;SetupTimeout=8000
TcpKeepAlive=1
[Proxy]
;Enable=1
;InternalNetwork=10.0.1.0/255.255.255.0,127.0.0.0/8
;T120PortRange=40000-40999
;RTPPortRange=50000-59999
;ProxyForNAT=1
;ProxyForSameNAT=0
;[Endpoint]
;Gatekeeper=no
;Gatekeeper=auto
;Gatekeeper=210.58.112.188
;Type=Gateway
;H323ID=CitronProxy
;E164=18888600000
;Password=
;Prefix=18888600,1888890003
;TimeToLive=900
;RRQRetryInterval=10
;UnregisterOnReload=0
;NATRetryInterval=60
;NATKeepaliveInterval=86400
;Discovery=1
;GatekeeperIdentifier=ParentGKId
;UseAlternateGK=1
;EndpointIdentifier=ChildGKId
;[Endpoint::RewriteE164]
;188889000=9
;;
;; Prefixes of e164 numbers for gateways.
;; A dot (.) matches any digit, ! at the beginning disables the prefix
;; Separate list elements by one of " ,;\t".
;; @see RasTbl::addPrefixes
;; This parameters should consider a HUP signal.
[RasSrv::GWPrefixes]
;; Test-Gateways
[RasSrv::RRQFeatures]
;OverwriteEPOnSameAddress=1
;AcceptEndpointIdentifier=1
;AcceptGatewayPrefixes=1
[RasSrv::ARQFeatures]
ArjReasonRouteCallToSCN=0
ArjReasonRouteCallToGatekeeper=1
CallUnregisteredEndpoints=1
RemoveTrailingChar=#
RoundRobinGateways=1
;; Routing polices define how the message destination is located
;; and where the call is routed. Currently the following policies
;; are implemented:
;;
;; explicit (only ARQ,Setup,Facility)
;;
;; If destCallSignalAddress is specified by the
message,
;; the call is routed to this address - aliases,
prefixes,
;; parent, neighbors are not further checked.
;;
;; internal
;;
;; A local GK registration table is checked for matching
alias.
;;
;; parent
;;
;; A parent gatekeeper (if this GK is registered as a child
GK)
;; is queried with ARQ or LRQ.
;;
;; dns
;;
;; Routing request aliases are scanned for presence of
'name@domain'
;; alias types - if such an alias is found, domain part is removed
;; and the call is routed to the endpoint 'name' at domain:1720.
;;
;; vqueue (only ARQ)
;;
;; Destination alises are checked for match with a virtual queue name
;; (configure via CTI::Agents). If there is a match, RoutingRequest
;; is signalled and the call is routed to the destination specified
;; by some external application (like ACD).
;;
;; neighbor
;;
;; The gatekeeper neighbors are queries with LRQ for the destination
;; of this routing request.
[RoutingPolicy]
default=explicit,internal,parent,neighbor
;[RoutingPolicy::OnARQ]
;h323_ID=vqueue,internal
;default=explicit,internal
;[RoutingPolicy::OnLRQ]
;0048=internal
;default=neighbor
;[RoutingPolicy::OnSetup]
;dialedDigits=internal,neighbor
;default=explicit,internal,parent,neighbor
;[RoutingPolicy::OnFacility]
;default=internal
[RasSrv::RRQAuth]
;; On a RRQ the h323-alias is queried from this section.
;; If there is an entry the endpoint is authenticated against the given rules.
;; If there is no entry the default action is performed. The default action
;; is to confirm the RRQ, unless the parameter "default=reject" is given.
;;
;; Notation:
;; <authrules> := empty | <authrule> "&" <authrules>
;; <authrule> := <authtype> ":" <authparams>
;; <authtype> := "sigaddr" | "sigip"
;; <autparams> := [!&]*
;; The notation and meaning of <authparams> depends on <authtype>:
;; - sigaddr: extended regular expression that has to match agains the
;; "PrintOn(ostream)" representation of the signal address of the request.
;; Example: "sigaddr:.*ipAddress .* ip = .* c3 47 e2 a5 .*port = 1720.*"
;; - sigip: specialized form of "sigaddr". Write the signalling ip adresse
;; using (commonly used) decimal notation: "byteA.byteB.byteC.byteD:port"
;; Example of the above sigaddr: "sigip:195.71.226.165:1720"
;;
;; This parameters should consider a HUP signal.
;; Это и есть наши устройства
ofa=sigip:192.168.40.251:1720
ofb=sigip:192.168.41.251:1720
ofc=sigip:192.168.60.251:1720
default=confirm
;; The parameter "rule" may be one of the following:
;; - "forbid" disallow any connection (default when no rule us given)
;; - "allow" allow any connection
;; - "explicit" reads the parameter ;"<ip>=<value>"; with ip is the ip4-address
;; if the peering client. ;<value>; is resolved with ;Toolkit::AsBool;. If the ip
;; is not listed the param "default" is used.
;; - "regex" the ;<ip>; of the client is matched against the given regular expression.
;; First the ip-rules (like "explicit") are tested. Olny of no such param exists
;; the regex is tried.
;; Example: "regex=^195\.71\.(129|131)\.[0-9]+$"
;; - "password" queries remote user for login/password combination and checks
;; it against username/password stored in this section. Passwords are encrypted
;; with addpasswd utility using KeyFilled encryption key. DelayReject defines
;; delay before reject is sent.
[GkStatus::Auth]
rule=allow
;regex=^(195\.71\.(129|100)\.[0-9]+)|(62\.52\.26\.[1-2][0-9][0-9])$
; only used when "rule=explicit"
;default=forbid
;Shutdown=0
;KeyFilled=123
;DelayReject=5
;LoginTimeout=120
;;
;; Beside other things every number to rewrite has its
;; own key/value-line. The implemententation is such that
;; all numbers that shell be rewritten have to begin
;; with a common prefix given by 'Fastmatch'.
;;
;; Doc From the code:
;; // Do rewrite to ;newE164;. Append the suffix too.
;; // old: 01901234999
;; // 999 Suffix
;; // 0190 Fastmatch
;; // 01901234 prefix, Config-Rule: 01901234=0521321
;; // new: 0521321999
;;
;; The rewrite-numbers function take care of reloads/a HUP signal.
[RasSrv::RewriteE164]
;; Only if an e164 number begins with ;Fastmatch; the
;; the further rewriting is done. Only one #Fastmatch# can be given.
;Fastmatch=
;0190703100=052418088663
;01903142=
0521178260
;5241908601903142=521178260
;7777.=.
;%%%%48=48
;; Это пошли запреты и замены
;; запретим звонить на номер 2-115, просто заменим эту посылку на 0, устройство обрежет звонок
Fastmach=2115
2115=0
;; звонок на номер 5-115 переведем на 5-105
Fastmach=5115
5115=5105
;; звонок на номер 9-112 переведем на 2-102
Fastmach=9112
9112=2102
;---------------------------------------------------------
[FileAcct]
; a full path to a file where CDRs will be logged
;; пишем лог звонков
DetailFile=/var/log/gkkbp.log
; 1 to use status interface compatible CDRs, 0 to build CDR from CDRString
StandardCDRFormat=1
; parametrized CDR format string
CDRString=%s|%u|%{Calling-Station-Id}|%{Called-Station-Id}|%d|%c
; timestamp format for CDR strings
TimestampFormat=ISO8601
; hourly - once per hour
; daily - once per day,
; weekly - once per week,
; monthly - once per month
Rotate=hourly
; For weekly rotation:
; Mon, Tue, Wed, Thu, Fri, Sat, Sun
; Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
; 1, 2, 3, 4, 5, 6, 0
;RotateDay=Sun
; For monthly rotation (31th of each month, or the last day of the month
; if it has less than 31 days)
; RotateDay=31
; For daily, weekly and monthly rotation (rotation will be performed at 4:00)
;RotateTime=4:00
; For hourly rotation (rotation will be performed at 0:59, 1:59, ...)
RotateTime=46
Запускаем Гейткипер
>/usr/local/bin/gnugk -c /usr/local/etc/gnugk.ini
Проверяем работоспособность
$ ps ax| grep gnugk
97349 p0 S+ 0:00.01 /bin/sh -c ps ax| grep gnugk
97351 p0 S+ 0:00.01 grep gnugk
39198 v3 S+ 34:18.77 /usr/local/bin/gnugk -c /usr/local/etc/ gnugk.ini
Press any key to continue...
Что дальше - заходим на это же машину по порту 7000 - получаем консоль гейткипера.
По команде « ? » получаем список всех подключенных устройств.
Дальше - видим какие порты (сканируем, в крайнем случае) и адреса (сами ставили) используются и обслуживаются гейткипером и соответственного - думаем что делать с Firewall, оставляя доступ только с VoIP устройств и тех машин на которых надо настроить MS NetMeeting.
Мы заведомо не занимались вопросами защиты - после установки системы системный администратор самостоятельно для себя должен решить что разрешается а что нет. Это не описание Call-центра. Это простая корпоративная система телефонии.
Результат: система работает.
Осматриваемся, читаем документацию, звоним, смотрим самостоятельно ПРИ РАБОТАЮЩЕЙ СИСТЕМЕ что можно сделать лучше.
B. Yasynetskyy
iasb@yahoo.com
M.Yasynetska
marsha@list.ru
6.11.2005
Оригинал статьи приведен на :
http://www.opennet.ru/opennews/art.shtml?num=6659
http://iasb.narod.ru/voip.htm
|