chan_Dongle

Добавляем в Asterisk 1.8 поддержку gsm сетей.

0. Сначала нужно подготовить модем(в моем случае Huawei E1550),
а) перешить,  запустить exe файл(сразу и голос появится)
б) разлочить, поможет dc-unlocker
в) активировать голос,  поможет dc-unlocker
г) отключить неиспользуемые устройства,  dc-unlocker или Asterisk
д) убрать пин из карточки,  Руки
е) воткнуть модемы в хаб d-link H7(180грн), Руки
Для получения анлоккода и флешкода(для перепрошивки) нам поможет
http://a-zgsm.com/huawei.php

Для отключения ненужных устройств нужно с помощью dc-unlockera отослать AT команду AT^U2DIAG=0

Из годных прошивок народ рекомендует
E155XUpdate_11.608.14.15.311.B418
прошивки на модемы можно найти здесь http://dc-files.com/
ГЛЮЧНАЯ 11.608.12.10.209

Я использую мегафоновские модемы они уже разлочены + активирован голос, единственное что нужно сделать сменить прошивку!цена вопроса 200грн(могу сказать где брал:)

Отключить ненужные устройства можно и с помощью консоли астериска, но для начала нужно его собрать

1. Скачиваем http://code.google.com/p/asterisk-chan-dongle/downloads/list
2. Распаковываем
3. Заходим в распакованную папку, делаем

 ./configure
gmake
gmake install

4. Конфигурируем модем
Если вы не отключили кардридер и виртуальный сдром  на 0 шаге тогда
audio — cuaUx.2, для data cuaUx.3. могут быть такие, правильная связка портов находится исключительно эмпирическим путем. После отключения ненужных девайсов выставляем порты как в листинге!

(/usr/local/etc/asterisk/dongle)
[general]
interval=15
;--- JITTER BUFFER CONFIGURATION ---
jbenable = yes
jbforce = no
jbmaxsize = 200
jbresyncthreshold = 1000
jbimpl = fixed
;-----
; shablon dl9 modemov
; opisuvaem odinakovie nastrojki dl9 vseh
[E1550_t](!)
context=incom		        ; context for incoming calls
rxgain=0			; increase the incoming volume
txgain=0			; increase the outgoint volume
autodeletesms=yes		; auto delete incoming sms
resetdongle=yes			; reset datacard during init
u2diag=0                        ; only modem function
usecallingpres=no		; use the caller ID presentation
callingpres=allowed_passed_screen ; set caller ID presentation
disablesms=no	; disable of SMS reading from device when received
language=ru
callwaiting=no

[kyivstar](E1550_t)
audio=/dev/cuaU0.1		; tty for audio connection
data=/dev/cuaU0.2		; tty for AT commands
group=1				; calling group

[mts](E1550_t)
audio=/dev/cuaU3.1		; tty for audio connection
data=/dev/cuaU3.2		; tty for AT commands
group=1				; calling group

[life](E1550_t)
audio=/dev/cuaU6.1		; tty for audio connection
data=/dev/cuaU6.2		; tty for AT commands
group=1				; calling group

5. Для того, чтобы Asterisk получил доступ к портам дадим пользователю asterisk доступ к ресурсам группы dialer.

pw groupmod dialer -M asterisk

6. перезапускаемс звездочку
7. проверка что все работает

 dongle show devices
ID           Group State      RSSI Mode Submode Provider Name  Model      Firmware
life         1     Free       30   3    3       life:)         E1550      11.608.13.02.00  ...
mts          1     Free       28   3    3       MTS UKR        E1550      11.608.13.02.00  ...
kyivstar     1     Free       9    3    3       UA-KYIVSTAR    E1550      11.608.13.02.00  ...

Есть и один глюк который пока не удалось решить, периодически зависает модем МТС украина, только принимает звонки, на форумах  народ говорит это связано с положением модема и вышки(вышка мтс прямо над модемом).

Небольшое дополнение по АТ:
выполнение команд:

CLI> dongle cmd evice AT_command

АТ^SYSCFG=mode, order, band, roaming, domain
Mode
2 Automatic search
13 2G ONLY
14 3G ONLY
16 No change
Order
0 Automatic search
1 2G first, then 3G
2 3G first, then 2G
3 No change
Band
80 GSM DCS systems
100 Extended GSM 900
200 Primary GSM 900
200000 GSM PCS
400000 WCDMA IMT 2000
3FFFFFFF Any band
40000000 No change of band
Roaming
0 Not supported
1 Roaming is supported
2 No change
Domain
0 CS_ONLY
1 PS_ONLY
2 CS_PS
3 ANY
4 No changе
ПРИМЕР:
AT^SYSCFG=13,0,3FFFFFFF,0,3 — modem 2G only, automatic search any band, no roaming
UDIAG
AT^U2DIAG=0 (девайс в режиме только модем)
AT^U2DIAG=1 (девайс в режиме модем + CD-ROM)
AT^U2DIAG=255 (девайс в режиме модем + CD-ROM + Card Reader)
AT^U2DIAG=256 (девайс в режиме модем + Card Reader)
AT+CCWA=0,0,1 отключаем режим ожидания
AT+CFUN=1,1  перезагрузка модема
AT+CFUN=x 0 Low power mode 1 Online 4 Offline 6 Reset device 7 Turn off radio
AT^CARDLOCK=”code” отправка анлок кода
Активация голоса:
AT^CVOICE=0 (включено)
AT^CVOICE=1 (выключено)
AT^CVOICE=? (запрос состояния)
Уровень сигнала:
AT+CLVL=? (Доступные значения)
AT+CLVL? (текущее значение)
AT+CLVL=N (установить значение N)
Уровни rssi:
0 :-113 dBm или меньше
1 :-111 dBm
2 до 30 : -109 до 53 dBm
31 : 51 dBm или больше
99 : не известно или нельзя определить

Более детальную информацию о соте, уровне сигнала итд можно получить выполнив команду

dongle show device state имя_донгла(прописывали в dongle.conf)

Решение проблем:

1. Если Asterisk сообщает, что хранилище SMS переполнено: [mts] SMS storage is full — удалите все сообщения с помощью команды в консоли Asterisk:

Clear SMS sim memory

dongle cmd name_dongle AT+CPMS=\"SM\",\"SM\",\"SM\"
dongle cmd name_dongle AT+CMGD=1,4

Clear SMS dongle memory

dongle cmd name_dongle AT+CPMS=\"ME\",\"ME\",\"ME\"
dongle cmd name_dongle AT+CMGD=1,4

2. Звонящий (GSM → SIP) не слышит гудков, в трубке зловещая тишина

Для решения проблемы нужно использовать опцию ‘m’ (music on hold) или ‘r’ в Dial()

exten => s,n,Dial(SIP/111@sip,30,m)
exten => s,n,Dial(SIP/111@sip,30,r)

3. Не отправляются DTMF символы A,B,C,D
Это нормально Huawei модемы такого не умеют:)

4. Если не определяется Ваш номер (Unknown)

dongle cmd mts AT+CPBS=\"ON\"
dongle cmd mts AT+CPBW=1,\"+380951111111\",145

UPD1: Если вдруг после обновления астера ВЫ не обнаружите модуль донгла, то пересобрать и поставить его(модуль) заново, перезапустите астер и будет Щастье 🙂

Список рекомендованной литературы:
http://wiki.e1550.mobi
http://blog.tavda.net/2011/07/freebsd-82asterisk-185-huawei-e150.html


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