Подключение модема Huawei E1550 к FreePBX (elastix ).

  • VOIP
Протестированно на модеме Huawei E1550 с разлоченным звонками и версией прошивки 11.608.14.15.311 СКАЧАТЬ ТУТ
А теперь перейдем к установке и настройке модема. Для нормальной работы модема отключим на нем CardReader и виртуальный CD-ROM. Сделать это можно так:

root@computer:$ sudo -i
root@computer:$ apt-get install minicom
root@computer:$ minicom -s
Выбираем настройку последовательного порта:
Нажимаем А и редактируем порт — /dev/ttyUSB0 после этого жмем два раза Enter и нажимаем Выход.
После подключения к модему введем команду — AT^U2DIAG=0 (Это команда перевода модема в режим только модем)
Выходим нажав Ctrl-A а потом Q

CardReader и виртуальный CD-ROM отключены можно продолжать.
Дальше — если нет svn то доставим

# yum install mod_dav_svn mod_ssl


Ну а дальше непосредственно к установке chan_datacard. По чему то не захотел ставиться на elastix 2.4

# svn co http://www.makhutov.org/svn/chan_datacard/trunk/ chan_datacard
# cd ~/chan_datacard/
# ./configure
# make install
# cp ~/chan_datacard/etc/datacard.conf /etc/asterisk


Второй вариант это chan_dongle

Устанавливаем последнюю стабильную версию Dongle-1.1.r14:

Качаем, распаковываем и переходим в папку с исходниками модуля chan_dongle выполнив команды:

wget http://asterisk-chan-dongle.googlecode.com/files/chan_dongle-1.1.r14.tgz
tar xvfz chan_dongle-1.1.r14.tgz
cd chan_dongle-1.1.r14

Если на официальном сайте отсутствует архив с дистрибутивом модуля Dongle, скачиваем его с этого сайта:

wget http://softnastroy.com/downloads/asterisk/chan_dongle-1.1.r14.tgz
tar xvfz chan_dongle-1.1.r14.tgz
cd chan_dongle-1.1.r14

Запускаем конфигурирование, сборку и установку модуля chan_dongle командами:

./configure
make
cp chan_dongle.so /usr/lib/asterisk/modules/
cp etc/dongle.conf /etc/asterisk/


Устанавливаем самую последнюю разрабатываемую версию Dongle из svn:

aptitude install autoconf
cd /usr/src/asterisk-src/
svn checkout http://asterisk-chan-dongle.googlecode.com/svn/trunk/
cd trunk/
aclocal
autoconf
automake -a
./configure
make
cp chan_dongle.so /usr/lib/asterisk/modules/
cp etc/dongle.conf /etc/asterisk/
chown -R asterisk:asterisk /usr/lib/asterisk/modules/chan_dongle.so
/etc/init.d/asterisk restart


Задание прав и пользователя устройства (Huawei E1550)

Предположим, по умолчанию так:

# ls -al /dev | grep ttyS


crw-rw----   1 root     dialout    4,  64 Сен 23 15:14 ttyUSB0
crw-rw----   1 root     dialout    4,  65 Сен 23 15:14 ttyUSB1
crw-rw----   1 root     dialout    4,  66 Сен 23 15:14 ttyUSB2

А Asterisk запущен из под одноименного пользователя

в консоли увидим:

chan_dongle.c: unable to open /dev/ttyUSB1: Permission denied
создадим правило udev

nano /etc/udev/rules.d/e1550.rules

Вставим в созданный файл.
KERNEL=="ttyUSB[012]", OWNER="asterisk", GROUP="asterisk", MODE="0660"


# /sbin/start_udev  
 # ls =al /dev | grep ttyUSB


crw-rw--   1 asterisk asterisk   4,  64 Сен 23 15:25 ttyUSB0
crw-rw--   1 asterisk asterisk   4,  65 Сен 23 15:25 ttyUSB1
crw-rw--   1 asterisk asterisk   4,  66 Сен 23 15:25 ttyUSB2


Отредактируем файл конфигурации модуля модема:

root@computer:$ nano /etc/asterisk/datacard.conf
Удаляем всё после последней черты в конфиг файле и вставляем:

[ВАШ НОМЕР СИМ КАРТЫ]
context=from-gsm         ; context для входящих звонков
audio=/dev/ttyUSB1        ; tty порт для аудио подключения
data=/dev/ttyUSB2         ; tty порт для управляющих AT комманд модема
group=1              ; Группа вызова
rxgain=10             ; Изменение громкости динамика
txgain=-5             ; Изменение громкости микрофона
resetdatacard=yes         ; Перезагрузка модема при перезапуске модуля
autodeletesms=yes         ; Удаление смс с симкарты при перезапуске
usecallingpres=yes        ; use the caller ID presentation or not
callingpres=allowed_passed_screen ; set caller ID presentation

Создадим конфигурационный файл для входящих подключений:

Для входящих вызовов, sms и ussd запросов настроим extensions.conf:



[datacard-incoming]
exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${SMS})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD} - ${CALLERID(num)}: ${SMS}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()

exten => ussd,1,Verbose(Incoming USSD: ${USSD})
exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD}: ${USSD}' >> /var/log/asterisk/ussd.txt)
exten => ussd,n,Hangup()

exten => s,1,Dial(SIP/100,,)
exten => s,n,Hangup()

Подробности