Как подружить Asterisk с китайским gsm-шлюзом GoIP4

27.01.2014 - 23:30

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

Goip-4.jpg

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

2_4.png

Меняем часовую зону на свою и убираем галочку IVR.

3_5.png

Ставим статический ИП, так надежней:

4_3.png

Переходим к настройкам gsm каналов. В данном случае мы выбираем "Config by Line".
Задаем основные параметры:
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)

5_3.png

Переходим в 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 изначально передает номер без префикса.
8_3.png

Не забудьте поменять пароли в "Tools > Change Password" и навсяк сделать бекап конфигурации "Backup/Restore Configurations".На вкладке "Status" можно посмотреть статус SIM-карт и уровень сигнала.

Так же добавлю, что в если Вам необходимо будет разделять на транки входящие звонки, С 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 peers
ks-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" в данном случае.
На этом все.

Прикрепленный файлРазмер
manual-gsm-voip-gateway-goip-4-ru.pdf1.94 Мб
Ваша оценка: Нет Средняя: 4.3 (11 votes)

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


Помогите пожалуйста! Купил Б/У шлюз Goip4, но не могу зайти в настройки через браузер, 92.168.8.1 СМС отправлял на симку, ответа нету. Неужели Goip4 НЕРАБОЧИЙ?



Добрый день,

Не сталкивались с проблемой настройки связки станции и шлюза через встроенный в GoiP PPTP-VPN. У меня VPN поднимается но ни зайти в админку шлюза, ни поднять транк не выходит. В качестве VPN сервера Mikrotik на последней прошивке.



Нет, не использовал GoiP PPTP-VPN. Проверьте роутинги возможно, пинг проходит?



Здравствуйте.Помогите ,пожалуйста,используем шлюз в диспетчерской такси. Возникла следующая проблема,попробую описать.
"Вот диспетчер ответила на звонок,говорит с клиентом,в это время звонит второй клиент, В этот момент ,этот клиент(второй) слышит весь разговор диспетчера с первым клиентом,хотя она еще не ответила на звонок второго клиента,так как не закончила с первым. А первый клиент(и диспетчер тоже) слышит как говорит робот приветствие("здравствуйте, вы позвонили в службу......сейчас вам ответит диспетчер"). Это приветствие робота должен был слышать второй клиент который звонит в службу,пока не ответит на его звонок диспетчер, а вместо этого робота начинает слышать первый клиент,который уже говорит с диспетчером.
(На Asterisk приходит звонок на один номер,хотя в настройках шлюза все номера разные)

В шлюзе установлено две сим-карты для входящих звонков,если основной номер занят,идет переадресация на второй."



exten => _09[1,2,3,6,7,8]XXXXXXX,2,GotoIf(${DIALSTATUS} = BUSY,3) - по-моему, лишнее.
Если даже не BUSY, он же все равно перейдёт на следующую строку. Например, если будет NOANSWER.