====== Настройка 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:|Обратно к инструкциям]]