Читаем до конца, а после уже делаем !
Голосовой модуль по умолчанию активирован только в модемах МТС 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-хаб и всё заработало)
- прошивка модема
- слабый уровень сигнала от оператора связи
Файлы для скачивания:
[download id=»138″]
Ссылки и документация по USB VoIP-GSM для вкуривания:
- http://www.draisberghof.de
- http://www.ra1aie.ru/?p=1215
Хорошая статья, но остался вопрос на какой версии ядра поднималось ? и какая ось ? :-[
Centos 6.4
аха понял, и последний вопросик, как вы определяли кто из ttyUSB data а кто voice ? это нужно для настройки в dongle.conf