Инструменты пользователя

Инструменты сайта


faq:dongle

Настройка Huawei E173 (chan_dongle)

Инструкции актуальны для версии v2022.2.96+
Стоит добавить, что Dongle модемы работают не стабильно. Им необходимо надежное, стабильное питание и устойчивый GSM сигнал.

Обратно к инструкциям

Подготовка 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 - включение режима «Только модем»

Что проверяем?

  1. Убедитесь, что модем поддерживает голосовые функции
  2. Модем должен работать в режиме «Только модем»
  3. По возможности (при наличии кода) разблокируйте модем для возможности работы с любым оператором связи

chan_dongle Asterisk

  1. В web интерфейсе АТС переходим в web интерфейсе «Система» - «Кастомизация системных файлов»
  2. Открываем файл «/etc/asterisk/modules.conf»
  3. Выбираем режим «Добавлять в конец файла»
  4. Добавляем код
    load => chan_dongle.so
  5. Открываем на редактирование файл «/etc/asterisk/dongle.conf»
  6. Выбираем действие «Заменять полностью»
  7. Копируем конфигурацию
    [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
    
  8. Открываем на редактирование файл «/etc/asterisk/modules.conf»
  9. Выбираем режим «Добавлять в конец файла»
  10. Обязательно добавьте контексты для обработки 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()
  11. После настройки «dongle.conf» потребуется перезагрузить АТС
dongle0 - произвольное имя линии, в дальнейшем будет использоваться в Dial команде для исходящих звонков.
audio, data - значения этих параметров - адреса серийных устройств, определенных на предыдущем этапе. Верные значения придется определить экспериментально. Если не будет звука, то поменять местами.

Настройка DID

Для корректной обработки входящих звонков какдому dongle необходимо настроить DID номер.

  1. Запускаем консоль asterisk:
    asterisk -r
  2. Смотрим список модемов
    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 
  3. Если в колонке «Number» номер не указан, то необходимо выполнить команды
    dongle cmd dongle0 AT+CPBS=\"ON\"
    dongle cmd dongle0 AT+CPBW=1,\"79255283744\",145
  4. Перезагрузите АТС
Вместо «dongle0» укажите идентификатор своей линии
Вместо «79255283744» номер телефона sim карты.

Настройка входящего маршрута

  1. В web перейлите в раздел «Маршрутизация» - «Входящие маршруты»
  2. Опишите новый маршрут, в поле DID укажите номер sim карты, настроенный на предыдущем шаге

Исходящие

  1. В разделе «Маршрутизация» - «Провайдеры» добавьте новую учетную запись SIP, будем его кастомизировать
  2. Название укажем к примеру «Dongle0» (может быть произвольным)
  3. Хост укажите 127.0.0.1
  4. Тип учетной записи - Аутентификаия по IP адресу, без пароля
  5. Сохраним настройки
  6. Из адресной строки браузера скопируем ID провайдера, он будет иметь вид SIP-1619606129
  7. В разделе «Маршуртизация» - «Входящие маршруты» создайте новый
  8. В web интерфейсе АТС переходим в web интерфейсе «Система» - «Кастомизация системных файлов»
  9. Открываем файл «/etc/asterisk/extensions.conf»
  10. Выбираем режим «Добавлять в конец файла»
  11. Добавить текст
    [SIP-1619606129-outgoing-custom]
    exten => _[0-9*#+]!,1,Set(DIAL_COMMAND=Dongle/dongle0/${number})
    	same => n,return

    где «SIP-1619606129» - это ID провайдера, «dongle0» - это имя секции в chan_dongle

Обратно к инструкциям

faq/dongle.txt · Последние изменения: 2022/07/27 07:45 — Портнов Алексей