Подключаем VoIP-GSM шлюз к Asterisk на USB HUAWEI E171

Читаем до конца, а после уже делаем !

Голосовой модуль по умолчанию активирован только в модемах МТС HUAWEI mobile broadband E171, хотя время меняет многое. И так, у меня есть именно такой модем

Первым делом ставим необходимые пакеты

yum install usbutils libusb-devel tcl

Подключаем модем в usb-разъему компьютера и проверяем появился ли он в системе:

lsusb

также возможно командой «cat /proc/bus/usb/devices»

В нашем случаем модем представлен строчкой:

Bus 001 Device 026: ID 12d1:1446 Huawei Technologies Co., Ltd. E1552/E1800/E173 (HSPA modem)

Вместо того, чтобы определиться как HUAWEI E171, определяется другое устройство. Это из-за того, что внутри у них зашита флешка с драйверами под Windows.

Переходим в каталог с иcходниками

cd /usr/src/

Затем идем на сайт «http://www.draisberghof.de/usb_modeswitch/#download» и скачиваем последнюю версию

wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-2.0.1.tar.bz2

Распаковываем

tar jxvf usb-modeswitch-2.0.1.tar.bz2

Переходим в папку

cd usb-modeswitch*

Устанавливаем

make install

На том же сайте скачиваем базу данных устройств и файл правил

wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20130807.tar.bz2

Распаковываем

tar jxvf usb-modeswitch-data*

Переходим в папку

cd usb-modeswitch-data*

Устанавливаем

make install

У меня собрать нормально так и не получилось. Если у вас аналогичная ситуация, переходим на сайта http://repoforge.org/use/ и ищем подходящий репозитарий.

rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

Устанавливаем usb_modeswitch, прицепом поставится и usb_modeswitch-data

yum install usb_modeswitch

Чтобы система увидела модем, пробовал переключить даже руками руками

usb_modeswitch -v 0x12d1 -p 0x1446 -V 0x12d1 -P 0x1001 -M "55534243123456780000000000000011062000000100000000000000000000"

Скажу сразу, что запустить модем с таким Product ID не получилось. Модем Huawei является составным оборудованием и на самом деле состоит из 3-х устройств:

  • 3G-модема;
  • флэш-память с драйверами и дистрибутивами под Windows, определяется как cd-rom
  • устройства чтения/записи карт microSD

Единственным найденным стабильным решением этой проблемы является переключения составного устройства только в режим модема. Тут или при помощи гипер терминала подключаемся и выполняем команду

AT^U2DIAG=0

или качаем программу по ссылке ниже и запускаем. После достаточно переподключить модем.


 Подключаем модем

Переходим на сайт https://code.google.com/p/asterisk-chan-dongle

Устанавливаем модуль канала chan_dongle:

Переходим в папку для исходников:

cd /usr/local/src/

Скачиваем исходники:

wget https://asterisk-chan-dongle.googlecode.com/files/chan_dongle-1.1.r14.tgz

Распаковываем:

tar -xvzf chan_dongle-1.1.r14.tgz

Переходим в распакованную папку:

cd chan_dongle-1.1.r14

Выполняем конфигурацию

./configure

Устанавливаем

make install

Копируем конфиг

cp etc/dongle.conf /etc/asterisk/

Подключаем к консоли Asterisk:

asterisk -rq

Перезагружаем установленные модули:

module reload

Смотрим видит ли модуль наш модем:

dongle show devices

Теперь можно позвонить на номер симкарты установленный в модем и услышать поздравление от астериска.

Возможный ошибки 

1. Ошибка при сборке chan_dongle

[root@localhost chan_dongle-1.1.r14]# make install
gcc -g -O2 -O6 -I.  -D_GNU_SOURCE -I/usr/include -I/usr/include -DHAVE_CONFIG_H  -fvisibility=hidden -fPIC -Wall -Wextra -MD -MT app.o -MF .app.o.d -MP  -o app.o -c app.c
In file included from app.c:21:
/usr/include/asterisk/version.h:1:2: error: #error "Do not include 'asterisk/version.h'; use 'asterisk/ast_version.h' instead."
app.c: In function ‘app_status_exec’:
app.c:37: warning: missing initializer
app.c:37: warning: (near initialization for ‘args.resource’)
app.c: In function ‘app_send_sms_exec’:
app.c:82: warning: missing initializer
app.c:82: warning: (near initialization for ‘args.device’)
app.c: In function ‘app_register’:
app.c:162: warning: passing argument 2 of ‘ast_register_application2’ from incompatible pointer type
/usr/include/asterisk/module.h:458: note: expected ‘int (*)(struct ast_channel *, const char *)’ but argument is of type ‘int (*)(struct ast_channel *, void *)’
make: *** [app.o] Error 1
[root@localhost chan_dongle-1.1.r14]#

Решение:

не разбирался, сбросил...для истории

2. Ошибка при попытке позвонить на номер симкарты usb-модема

ERROR[2374]: chan_dongle.c:411 do_monitor_phone: [dongle0] Lost connection to Dongle

Решение:

  • малый вольтаж/ампераж на USB в который вставлен модем (выкинул usb-хаб и всё заработало)
  • прошивка модема
  • слабый уровень сигнала от оператора связи

Файлы для скачивания:

Скачать: tool-PortSwitch.exe (размер: 764 kB)

Ссылки и документация по USB VoIP-GSM для вкуривания:

  1. http://www.draisberghof.de
  2. http://www.ra1aie.ru/?p=1215
Остались или есть ещё вопросы? Задавайте!
(не забудьте указать ссылку на этот пост)




3 комментария

  1. Igor Ukraine Google Chrome Linux :

    Хорошая статья, но остался вопрос на какой версии ядра поднималось ? и какая ось ?  :-[

    Thumb up 0 Thumb down 0

Оставить комментарий

Установка, настройка, мониторинг и администрирование linux, unix, windows систем