The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Развертывание VoIP телефонии в корпоративной сети (voip gatekeeper phone)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: voip, gatekeeper, phone,  (найти похожие документы)
From: B. Yasynetsky <iasb@yahoo.com.> Date: Mon, 25 Jun 2006 14:31:37 +0000 (UTC) Subject: Развертывание VoIP телефонии в корпоративной сети Оригинал: http://iasb.narod.ru/voip.htm * В данной статье описан основной порядок действий по инсталляции системы корпоративной телефонии. При чтении данной статьи заведомо не будут даваться ссылки на документацию, которая поступает с устройствами или указываться в общем плане порядок действия с устройствами. Задача администратора - иметь эту документацию и в случае необходимости часть действий, описанных ниже проводить в соответствии с документацией производителя. Пример: нет особого смысла описывать порядок замены программного обеспечения в устройстве 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/FAQ/voip/showTopic.asp?ID=137 вопрос 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.">iasb@yahoo.com M.Yasynetska marsha@list.ru.">marsha@list.ru 6.11.2005

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, iasb (??), 16:39, 30/07/2006 [ответить]  
  • +/
    2 дополнения есть на оригинальном сайте, с фотографиями ------------------ Пос... большой текст свёрнут, показать
     
  • 2, Василий (??), 14:59, 24/09/2012 [ответить]  
  • +/
    Статья очень полезной оказалась!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру