====== Настройка Huawei E173 (chan_dongle) ======
Инструкции актуальны для версии v**2022.2.96**+\\ Стоит добавить, что Dongle модемы работают не стабильно. Им необходимо надежное, стабильное питание и устойчивый GSM сигнал.
[[faq:|Обратно к инструкциям]]
===== Подготовка USB модема =====
Первым делом посмотрим какие USB устройства подключены к ПК:
lsusb
Bus 001 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Тут нам интересно устройство "**12d1:1001** Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem". \\ \\ **12d1** - это идентификатор вендора. \\ **1001** - идентификатор продукта.
\\ \\ Для корректной работы модема его необходимо перевести в режим "**1001** (только модем)".
Далее ищем информацию об устройстве по идентификатору вендора "**12d1**":
dmesg | grep 12d1
[ 2.828272] usb 1-1: New USB device found, idVendor=12d1, idProduct=1001, bcdDevice= 0.00
Далее ищем информацию по номеру USB устройства "**usb 1-1**":
dmesg | grep 'usb 1-1'
[ 2.262750] usb 1-1: new high-speed USB device number 2 using ehci-pci
[ 2.828272] usb 1-1: New USB device found, idVendor=12d1, idProduct=1001, bcdDevice= 0.00
[ 2.828479] usb 1-1: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[ 2.828641] usb 1-1: Product: HUAWEI Mobile
[ 2.828754] usb 1-1: Manufacturer: HUAWEI Technology
[ 2.856994] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
[ 2.861194] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
[ 2.864265] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
Теперь нам известны идентификаторы серийных устройств модема **ttyUSB0, ttyUSB1, ttyUSB2**.
Если устройства найдены, то пол дела сделано. Если же они не появились, то вероятно модем подключен в режиме, отличном от **1001**, цифровой идентификатор режима может отличаться на разных прошивках.
На некоторых устройствах режим "Только модем" отображается как "**140c**"
===== Проверка настроек модема =====
minicom -D /dev/ttyUSB0
Появится приглашение:
Welcome to minicom 2.8
OPTIONS: I18n
Compiled on Apr 26 2021, 18:06:16.
Port /dev/ttyUSB0, 12:30:42
Press CTRL-A Z for help on special keys
Теперь можно вводить команды **AT** для управления и настройки модема.
==== Примеры команд ====
* **AT^CARDLOCK?** – проверка состояния блокировки модема и количества попыток ввода кода разблокировки:(ответ модема: CARDLOCK: A,B,0 , если A=2 модем разблокирован, A=1 модем заблокирован – SimLock, если A=3 здесь два варианта либо вы израсходовали все 10 попыток ввести код, либо у вас в модеме кастомизированная прошивка, B – количество оставшихся попыток ввода кода разблокировки (по умолчанию 10 раз))
* **AT^CARDLOCK="NCK Code"** разблокировка модема, для возможности работы со всеми операторами связи
* **AT^CVOICE=?** – проверка состояния голосовых функций модема (0 - значит включено)
* **AT^CVOICE=0** – включение голосовых функций модема
* **AT^U2DIAG=0** - включение режима "**Только модем**"
==== Что проверяем? ====
- Убедитесь, что модем поддерживает голосовые функции
- Модем должен работать в режиме "**Только модем**"
- По возможности (при наличии кода) разблокируйте модем для возможности работы с любым оператором связи
===== chan_dongle Asterisk =====
- В web интерфейсе АТС переходим в web интерфейсе "**Система**" - "**Кастомизация системных файлов**"
- Открываем файл "**/etc/asterisk/modules.conf**"
- Выбираем режим "**Добавлять в конец файла**"
- Добавляем код load => chan_dongle.so
- Открываем на редактирование файл "**/etc/asterisk/dongle.conf**"
- Выбираем действие "Заменять полностью"
- Копируем конфигурацию [general]
interval=15
[defaults]
context=public-direct-dial
group=0
rxgain=0
txgain=0
autodeletesms=yes
resetdongle=yes
u2diag=-1
usecallingpres=yes
callingpres=allowed_passed_screen
disablesms=no
language=en
smsaspdu=yes
mindtmfgap=45
mindtmfduration=80
mindtmfinterval=200
callwaiting=auto
disable=no
initstate=start
dtmf=relax
[dongle0]
audio=/dev/ttyUSB1
data=/dev/ttyUSB2
- Открываем на редактирование файл "**/etc/asterisk/modules.conf**"
- Выбираем режим "**Добавлять в конец файла**"
- Обязательно добавьте контексты для обработки sms и ussd [dongle-incoming-ussd]
exten => ussd,1,Noop(Incoming USSD: ${BASE64DECODE(${USSDBASE64})})
exten => ussd,n,Hangup()
[dongle-incoming-sms]
exten => sms,1,Noop(Incoming SMS from ${CALLERID(num)} ${BASE64_DECODE(${SMS_BASE64})})
exten => sms,n,Hangup()
- После настройки "**dongle.conf**" потребуется перезагрузить АТС
* Описание конфигурационного файла и опций можно получить на странице [[https://github.com/haha8x/asterisk-chan-dongle-16/blob/master/etc/dongle.conf| странице]]
* Наиболее полное [[https://asterisk-service.com/en_US/page/chan-dongle-use | описание chan_dongle ]]
**dongle0** - произвольное имя линии, в дальнейшем будет использоваться в Dial команде для исходящих звонков. \\ **audio**, **data** - значения этих параметров - адреса серийных устройств, определенных на предыдущем этапе. Верные значения придется определить экспериментально. Если не будет звука, то поменять местами.
===== Настройка DID =====
Для корректной обработки входящих звонков какдому dongle необходимо настроить DID номер.
- Запускаем консоль asterisk: asterisk -r
- Смотрим список модемов mikopbx*CLI> dongle show devices
ID Group State RSSI Model Firmware IMEI IMSI Number
dongle0 0 Free 12 E173 11.126.15.00.209 *** *** 79255283744
- Если в колонке "Number" номер не указан, то необходимо выполнить команды dongle cmd dongle0 AT+CPBS=\"ON\"
dongle cmd dongle0 AT+CPBW=1,\"79255283744\",145
- Перезагрузите АТС
Вместо "**dongle0**" укажите идентификатор своей линии \\ Вместо "**79255283744**" номер телефона sim карты.
===== Настройка входящего маршрута =====
- В web перейлите в раздел "**Маршрутизация**" - "**Входящие маршруты**"
- Опишите новый маршрут, в поле DID укажите номер sim карты, настроенный на предыдущем шаге {{ :faq:dongle1.png |}}
===== Исходящие =====
- В разделе "**Маршрутизация**" - "**Провайдеры**" добавьте новую учетную запись **SIP**, будем его кастомизировать
- Название укажем к примеру "Dongle0" (может быть произвольным)
- **Хост** укажите **127.0.0.1**
- Тип учетной записи - **Аутентификаия по IP адресу, без пароля** {{ :faq:chan-dongle-1.png |}}
- Сохраним настройки
- Из адресной строки браузера скопируем **ID** провайдера, он будет иметь вид **SIP-1619606129**
- В разделе "**Маршуртизация**" - "**Входящие маршруты**" создайте новый {{ :faq:dongle5.png |}}
- В web интерфейсе АТС переходим в web интерфейсе "**Система**" - "**Кастомизация системных файлов**"
- Открываем файл "**/etc/asterisk/extensions.conf**"
- Выбираем режим "**Добавлять в конец файла**"
- Добавить текст [SIP-1619606129-outgoing-custom]
exten => _[0-9*#+]!,1,Set(DIAL_COMMAND=Dongle/dongle0/${number})
same => n,return
где "**SIP-1619606129**" - это ID провайдера, "**dongle0**" - это имя секции в chan_dongle
[[faq:|Обратно к инструкциям]]