Asterisk and GOIP
Goip 4 : Firmware Version: GS-4.01-98 Module Version: M35FAR02A01_RSIM
Goip16: Firmware Version: GST1610-1.01-61 Module Version: G610_V0C.58.0D_T1B
Goip32: Firmware Version: GST1610-1.01-61 Module Version: M35FAR02A01_RSIM
[GoIP User Manual] FIXFILE
Проблемs: Модели 16 и 32 не умеют Save/Restore configuration. Функцинал есть, и файл формируется (текстовый, читаемый) но восстановление из него ничего не изменяет. На модели 4 - не тестировалось
sip.conf
[gsm-tpl](!) ; template for gsm peers
host = dynamic
type = peer
port = 5060
bindport = 5060
qualify = 1000
[gsm-life](gsm-tpl)
context = from_gsm_life
username = gsm-life
secret = PASSWORD
[gsm-mts](gsm-tpl)
context = from_gsm_mts
username = gsm-mts
secret = PASSWORD
extensions.conf
# Значение 8888 - устанавливается в шлюзе в настройке Voip Call in
[from_gsm_ks]
exten => 8888,1,Noop()
same => n,Set(CALLERID(num)=${CALLERID(num):1}) ; обрезаем ведущий плюс
same => n,macro(incoming)
Настройка Шлюза
Общая конфигурация
ВАЖНО: Указать Prefix!!!
Входящие звонки - Вариант 1
extensions.conf
# Значение 8888 - устанавливается в шлюзе в настройке Voip Call in
[from_gsm_ks]
exten => 8888,1,Noop()
same => n,macro(incoming)
Исходящие звонки
extensions.conf
# В команде DIAl добавляем указанную цифру 3 для выбора данного слотам (сим-карты)
[gsm_ks_line]
exten => _X.,1,Noop()
same => n,macro(record)
same => n,Dial(SIP/gsm-ks/3${EXTEN})
Проблемы
A. Входящие звонки приходят с любых транков (peer-ов).
Так как в gms-* стоит insecure=invite, а так же все они идут с одного IP и одного хоста, то разделить транки не получается.
Варианты:
- разделение портов - GoIp в текущей версии не умеет, или я пока не нашел.
- убрать insecure=invite - GoIp не может авторизировать, получаем такое:
chan_sip.c:17126 check_auth: username mismatch, have <9005>, digest has <9006>
chan_sip.c:26179 handle_request_invite: Failed to authenticate device ....
Решение проблемы A :
Проверено на версиях: 11.7.0, 13.14.1
Включить параметр match_auth_username=yes в sip.conf
[general]
match_auth_username=yes
[gsm-goip](!)
type=friend
secret=PASSWORD
; теперь отключаем insecure
insecure=no
[slot1](gsm-goip)
[slot2](gsm-goip)
...
Выводы спустя 3 недели
Не имело смысла настраивать шлюз как отдельные линии.
Перешел на конфигурацию Single Server Mode :
Входящие в GOIP:
С конфигурацией входящих в Asterisk:
[from-gsm-gate]
exten => gsm-mts,1,Noop()
same => n,Gosub(sub-incoming,s,1)
exten => gsm-ks,1,Noop()
same => n,Gosub(sub-incoming,s,1)
exten => gsm-life,1,Noop()
same => n,Gosub(sub-incoming,s,1)
Плюсы:
- В логе понятно на какую линию звонили!
UPDATE 10.10.2017
Goip поддерживает 4 группы, делим все сим карты по Оператору на группы:
Routing Prefix - то что вы пропишите в extension для выполнения звонка по этой группе.
В sip.conf:
[gsm-goip](!)
type=friend
host=dynamic
qualify=1000
canreinvite=no
deny=0.0.0.0/0.0.0.0
permit=10.0.10.0/255.255.255.0
[gsm1-life](gsm-goip)
context=income-gsm-life
username=gsm1-life
secret=PASSWORD
[gsm1-ks](gsm-goip)
context=income-gsm-ks
username=gsm1-ks
secret=PASSWORD
Исходящие звонки:
[gsm_ks_dial]
; Префиксы Группы 111
exten => _X.,1,Noop()
same => n,Dial(SIP/gsm1-ks/111${EXTEN},120)
Входящие звонки:
Хоть мы выбрали по Группам, Входящие входят по настройкам Каждой сим-карты индивидуально! Но именно в тот context который соответствует группе.
В поле Forwarding to VoIP Number пишем Реальный мобильный номер карты, или Префикс оператора, и т.п.: