Как подружить Asterisk с китайским gsm-шлюзом GoIP4
GoIP4. Который будет выполнять входящие и исходящие (с возможностью выбора линии) звонки.

Вставляем 4 SIM-карты (без паролей), подключаем в порт “LAN” (DHCP) и смотрим в логах какой IP выдался Goip-у или в порт “PC” (шлюз имеет IP: 192.168.8.1).
Я выбрал первый вариант. Заходим в веб интерфейс GoIP, Логин/Пароль для авторизации на шлюзе admin/admin. Так же есть учетные записи с ограниченными правами user и sms.



Задаем основные параметры:
Phone Number = номер (берем с соответствующего екстеншена в sip.conf)
GateWay Prefix = 1 – для каждой линии свой 1,2,3,4, таким образом в GoIP идет выбор нужной вам линии при исходящих звонках.
Sip Proxy = IP Asterisk сервера
Sip Registrar Server = IP Asterisk сервера
Authentication ID = логин (берем с соответствующего екстеншена в sip.conf)
Password = пароль (берем с соответствующего екстеншена в sip.conf)

Переходим в Call Management, тут необходимо для каждой линии соответственно задать входящие “Call IN via GSM” и исходящие “Call OUT via GSM” параметры.
Dial Plan – ставим так же для каждой линии свой, например: 1:-1, 2:-2, 3:-3, 4:-4.
CID Forward Mode – выставляем значение “Use CID as SIP Caller ID” этот параметр отвечает за передачу Caller ID с GSM- в VoIP-сеть. Другими словами, передает входящий номер абонента GSM в VoiP.
Forwarding to VoIP Number – вписываем номер, который шлюз будет вызывать на Asterisk при входящих вызовах, у меня это “210” на котором находится голосовое меню.
CID Prefix – добавил “+”, так как GOIP изначально передает номер без префикса.

Так же добавлю, что в если Вам необходимо будет разделять на транки входящие звонки, С GoIP у меня не вышло. При входящем звонке она выдает транк звонящего рандомом, что меня очень смутило, а не как бы хотелось использовать при входящем звонке именно тот транк с которого поступает звонок.
Потратил на это пару дней. Решения в сети пока не нашел.
Настройка Asterisk
Добавляем транки в /usr/local/etc/asterisk/sip.conf:
[mts-1] host=dynamic ;dialformat = ${EXTEN:1} type=peer context=from-mts980 disallow=all allow=alaw allow=ulaw dtmfmode=rfc2833 username=mts-1 secret=пароль qualify=yes nat=no deny=0.0.0.0/0.0.0.0 permit=192.168.2.0/255.255.255.0 canreinvite=no insecure=port,invite [mts-2] host=dynamic type=peer context=from-mts153 disallow=all allow=alaw allow=ulaw dtmfmode=rfc2833 username=mts-2 secret=пароль qualify=yes nat=no deny=0.0.0.0/0.0.0.0 permit=192.168.2.0/255.255.255.0 canreinvite=no insecure=port,invite [ks-1] host=dynamic type=peer context=from-ks917 disallow=all allow=alaw allow=ulaw dtmfmode=rfc2833 username=ks-1 secret=пароль qualify=yes nat=no deny=0.0.0.0/0.0.0.0 permit=192.168.2.0/255.255.255.0 canreinvite=no insecure=port,invite ;insecure=very ;insecure=invite [ks-2] host=dynamic type=peer context=from-ks917out disallow=all allow=alaw allow=ulaw dtmfmode=rfc2833 username=ks-2 secret=пароль qualify=yes nat=no deny=0.0.0.0/0.0.0.0 permit=192.168.2.0/255.255.255.0 canreinvite=no insecure=port,invite
Перезагружаем Asterisk и смотрим в “sip show peers” транки должны зарегистрироваться на шлюзе.
voip*CLI> sip show peersks-1/ks-1 192.168.1.200 D A 5060 OK (23 ms) ks-2/ks-2 192.168.1.200 D A 5060 OK (22 ms) mts-1/mts-1 192.168.1.200 D A 5060 OK (18 ms) mts-2/mts-2 192.168.1.200 D A 5060 OK (24 ms)
Настройка диалплана Asterisk
[root@voip /]# cat /usr/local/etc/asterisk/extensions.conf
Входящие с GSM, например:
[from-mts980] exten => 210,1,GotoIfTime(8:00-19:00|mon-fri|*|*?wellcome,s,1) exten => 210,2,GotoIfTime(19:00-8:00|mon-fri|*|*?not_work,s,1) exten => 210,3,GotoIfTime(9:00-15:00|sat|*|*?wellcome,s,1) exten => 210,4,GotoIfTime(15:00-9:00|sat|*|*?not_work,s,1) exten => 210,5,GotoIfTime(*|sun|*|*?not_work,s,1)
Исходящие с VoIP сети, например:
exten => _09[1,2,3,6,7,8]XXXXXXX,1,Dial(SIP/ks-2/4${EXTEN},30) exten => _09[1,2,3,6,7,8]XXXXXXX,2,GotoIf(${DIALSTATUS} = BUSY,3) exten => _09[1,2,3,6,7,8]XXXXXXX,3,Dial(SIP/ks-1/3${EXTEN},30) exten => _09[1,2,3,6,7,8]XXXXXXX,4,GotoIf(${DIALSTATUS} = BUSY,5) exten => _09[1,2,3,6,7,8]XXXXXXX,5,Hangup
*выбор номера линии осуществляется префиксом “4” в данном случае.




Comments
So empty here ... leave a comment!