Настройка связки Asterisk и Mvts(GnuGK). С комменатирями voipx.ru
Недавно перед мной встала задача подключения SIP клиентов находящихся за NAT'ом. В наличии имелась mvts без SIP-HIT модуля и покупать этот модуль никто не собирался. Так что проблему необходимо было решить проектами OpenSource. Тогда я скачал и установил Asterisk. Сразу же встала проблема установки и настройки oh323 модуля. На этой теме я останавливаться не буду, и так на этот счет уже много написано. Только скажу, что имел опыт установки этого модуля на Slackware 9.0 это было самое трудное, на RedHat 9.0 модуль встал практически без проблем, а на Asterisk@home как будто только и ждал этого модуля.
voipx.ru: Для реализации данной схемы предполагается, что
для поддержки протокола H323 в Asterisk используется драйвер chanoh323.
В Asterisk в первую очередь надо проверить наличие соответствующих библиотек
и настроек, для чего проверяется:
h323driver => OH323
*CLI> show modules
load => chan_oh323.so
noload => chan_h323.so
*CLI> show channeltypes
В рассматриваемом примере предполагается, что через NAT пробрасывется номер 996699, включенный в MVTS, а оконечное устройство Linksys PAP2-NA, включаемого в Asterisk
Mvts настраивается стандартно, прописываем Asterisk как обычного RAS пользователя.
В user.cfg
[Asterisk] reg_address=xxx.xxx.xxx.xxx user=asterisk gateway_type=0 password=voipx.ru: Указывается пароль, который в Asterisk прописывается как пароль гейткипера
#ip_precedence=3 proxy_type=1 acct_enable=1 auth_enable=0
Ну в dialpeer.cfg
voipx.ru: Это план набора, пробрасывающего все вызовы по шаблону 996699 на Asterisk (DID - в случае наличия других пробрасывемых номеров)
[Asterisk] dst_pattern=996699;и т.д. сколько DID'ов вы хотите посылать на * gateway=Asterisk;NULL priority=110 hunt_stop=0 hunt_mode=0
Для GnuGk
[RasSrv::GWPrefixes] xxx.xxx.xxx.xxx=996699
С mvts(GK) закончили. Приступаем к *. Для начала настраиваем oh323.conf. Тут есть два варианта, стоит ли * и mvts(GK) на одном сервере или нет. Если стоит на одном то listenPort нужно обязательно другой, а не 1720. Так же желательно повесить oh323 на интерфейс, отличный от того который прописан для gatekeeper в oh323.conf. Если * и mvts(GK) стоит на разных серверах, то соответственно порт 1720, интерфейсы так и так разные.
[general] listenAddress=xxx.xxx.xxx.xxx listenPort=31337voipx.ru: Это при установке на одной машние. При установке на разных машинах:
listenPort=1720Далее
tcpStart=10000 tcpEnd=20000 udpStart=10000 udpEnd=20000 fastStart=yes h245Tunnelling=no h245inSetup=no inBandDTMF=yes jitterMin=20 jitterMax=100 ipTos=none outboundMax=10 inboundMax=10 simultaneousMax=10 wrapLibTraceLevel=1 libTraceLevel=0 libTraceFile=stdout gatekeeper=xxx.xxx.xxx.yyyvoipx.ru: Это адрес машины с MVTS
gatekeeper=DISCOVER gatekeeperTTL=600voipx.ru: При указании в MVTS для пользователя "Asterisk" пароля, он указывается в виде следующего параметра
gatekeeperPassword=Далее
userInputMode=TONE amaFlags=default accountCode=H323 language=en musiconhold=default context=h323-in[register] context=h323-in alias=996699
[codecs] codec=G729 frames=6 codec=G729A frames=6 codec=G729B frames=6 codec=G729AB frames=6 codec=G711U frames=20 codec=GSM0610 frames=4 codec=G7231 frames=4
В настройках sip.conf прописываем пользователей вот таким способом. Эти настройки используются для одного порта Linksys PAP2-NA стоящего за NAT
voipx.ru: При наличии проброса номеров на другие устройства - прописывается для каждого
[996699] type=friend host=dynamic username=996699 secret=pass callerid=996699 canreinvite=no context=h323-in nat=yes qualify=yes
Теперь нужно отредактировать dialplan, в extensions.conf прописываем.
[h323-in] exten => 996699,1,Dial(SIP/996699,60,tr) ;для входящихvoipx.ru: Эти строки повторяются для каждого последующего номера или через шаблон
Далее
exten => _Z.,1,Dial(OH323/${EXTEN},60,t) ;для исходящих
Теперь приступим к кодекам, по умолчанию g729 кодека, который необходим для выхода в PSTN в * нет. И если кодек не подходит для вашего процессора * при звонке через него в PSTN просто падает. Идем на http://www.asterisk-support.ru/files/codecs/download/G729/index_fs
Обычно подходит один из этих codec_g729-gcc-debug.so или codec_g729-gcc-pentium.so, но можно экспериментальным путем подобрать тот, который подходит именно для вашего сервера. Закидываем выбранный кодек в папку /usr/lib/asterisk/modules. Запускаем или перезагружаем * и тестируемся. Если при исходящем звонке * падает то просто подберите кодек. Так же стоит помнить о том в каком формате приходят номера.
Автор
icq:383630
e-mail: 5p134n(at)gmail.com