Установка и настройка серверов Linux,создание сайтов, установка и настройка Asterisk PBX, Linux для начинающих и не только.
Получать статьи этого сайта на почту:

 

04
Oct 2012
sergldom
автор
7
комментариев
Рейтинг статьи:
5
Average: 4.5 (2 votes)

Установка модуля Dongle в Debian Squeeze для Asterisk и подключение модема Huawei E1550 в качестве GSM шлюза

GSM шлюз на Debian и Asterisk      Я предпочитаю ставить на серверах операционную систему Debian GNU/Linux, но данная инструкция будет вполне работоспособна и на Ubuntu Linux.

     Установку модуля Dongle применительно к роутеру dir320 я уже подробно освещал, потому повторятся не буду в таких моментах как отключить флешку и виртуальный cdrom на модеме Huawei E1550, это подробно описано в инструкции.

Сам Asterisk устанавливаем по инструкции: Установка Asterisk 1.8 в Debian Squeeze либо Ubuntu Linux, сборка из исходников VOIP Asterisk

      Установка аналогичная и на более новых версиях Debian, Ubuntu и иных основанных на Debian операционных системах, а также на не Debian системах, таких как Redhat, Centos...

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

Первое, что необходимо сделать, это настроить udev, чтобы при подключении модема, он получал права пользователя Asterisk и сам Asterisk мог работать с модемом. Для этого создаем файл /etc/udev/rules.d/10-modem.rules командой:

echo 'KERNEL=="ttyUSB*", OWNER="asterisk", GROUP="dialout"' > /etc/udev/rules.d/10-modem.rules

При подключении модема мы можем посмотреть права которые он получил командой:

ls -la /dev/ttyUSB*

Ответ системы:

crw-rw---- 1 asterisk dialout 188, 0 Сен 30 22:08 /dev/ttyUSB0
crw-rw---- 1 asterisk dialout 188, 1 Сен 30 22:08 /dev/ttyUSB1
crw-rw---- 1 asterisk dialout 188, 2 Сен 30 22:08 /dev/ttyUSB2

Переходим в папку где будем работать над сборкой модуля из исходных кодов  командой:

cd /usr/src/asterisk-src

Устанавливаем последнюю стабильную версию 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

Добавляем в самый низ конфигурационного файла /etc/asterisk/dongle.conf:

vi /etc/asterisk/dongle.conf

[modem1]
;0X3 - XXX-XX-XX - Life
audio=/dev/ttyUSB1 ; tty for audio connection
data=/dev/ttyUSB2 ; tty for AT commands
;imei=XXXXXXXXXXXXXXX
;imsi=XXXXXXXXXXXXXXX
context=incoming-modem1
languge=ru
group=1
rxgain=0 ; increase the incoming volume
txgain=0 ; increase the outgoint volume
autodeletesms=yes
resetdatacard=yes ; reset datacard during initialization
u2diag=0 ; set U2DIAG parameter (256 = modem+card_reader)
usecallingpres=yes ; use the caller ID presentation or not
callingpres=allowed_passed_screen ; set caller ID presentation

В файл /etc/asterisk/extensions.conf  добавляем:

vi /etc/asterisk/extensions.conf

;;;;;;; GSM ;;;;;;;
;;; Life - (XXX-XXX-XX-XX)  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[incoming-modem1]
; Предположим номер на симке Украина: 0632223344, Россия: 89852223344 указываем этот номер в контексте модема:
;;; Для Украины:
exten => +380632223344,1,Set(CALLERID(all)=${CALLERID(num):3})
;;; Для России:
;;;exten => +79852223344,n,Set(CALLERID(all)=${CALLERID(num)})
;;;   same => n,Set(CALLERID(num)=8${CALLERID(num):2}) 
   same => n,Dial(SIP/101,60,KTt)
   same => n,Hangup()

exten => ussd,1,Verbose(Incoming USSD: ${BASE64_DECODE(${USSD_BASE64})})
   same => n,System(echo ${DONGLENAME} - ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${BASE64_DECODE(${USSD_BASE64})} > /var/log/asterisk/ussd_Life1-modem1.txt)
   same => n,System(echo "${DONGLENAME} (063-222-33-44) - ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${BASE64_DECODE(${USSD_BASE64})}" > /var/log/asterisk/ussd_Life1-modem1.txt)
   same => n,Hangup()

exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${BASE64_DECODE(${SMS_BASE64})})
   same => n,System(echo "${DONGLENAME} - ${CALLERID(num)} - ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${BASE64_DECODE(${SMS_BASE64})}" >> /var/log/asterisk/sms_Life1-modem1.txt)
   same => n,Hangup()

Для звонков через данный модем, в контекст sip пользователя который имеет право совершать звонки через данный модем добавляем:
 

;;; Life1
exten => _9X.,1,Dial(Dongle/modem1/${EXTEN:1},120,KT)
   same => n,Hangup(${HANGUPCAUSE})

Тут  указано, что через 9 звоним на любой номер через gsm модем.

 

После установки модуля перезагружаем Asterisk командой:

/etc/init.d/asterisk restart

Для проверки модема запускаем консоль командой:

rasterisk

И выполняем  в консоли комманду:

dongle show devices

dongle show devices - этой командой мы смотрим видит ли модуль наш модем. Вот мой вывод этой комманды:

serv*CLI>dongle show devices
ID           Group State      RSSI Mode Submode Provider Name  Model      Firmware          IMEI             IMSI             Number       
Life-modem1 1     Free       5    5    4       life:)        E1550      11.608.14.15.311  XXXXXXXXXXXXXXX  XXXXXXXXXXXXXXX  Unknown      
serv*CLI>

 

!!! Обязательно сделать: Если вместо номера пишется Unknown, тогда необходимо задать номер сим карты с помощью двух команд в консоли Asterisk:

dongle cmd modem1 AT+CPBS=\"ON\"
dongle cmd modem1 AT+CPBW=1,\"+380632223344\",145

Перезагружаем Asterisk и проверяем наличие номера в выводе модемов.

serv*CLI>dongle show devices
ID           Group State      RSSI Mode Submode Provider Name  Model      Firmware          IMEI             IMSI             Number       
modem1       1      Free       5    5    4       life:)        E1550      11.608.14.15.311  XXXXXXXXXXXXXXX  XXXXXXXXXXXXXXX  +380632223344      
serv*CLI>

Задача выполнена.

GSM шлюз на VOIP Asterisk и сервере Debian, либо Ubuntu Linux сделан и работает через 3G модем Huawei E1550

С Вами был Сергей Лазаренко.

      Так как работа системного администратора очень связана с малоподвижным образом жизни, стараемся регулярно нагружать себя, например сделаем небольшую зарядку на 8 минут покачав пресс:

Рейтинг статьи: 

5
Average: 4.5 (2 votes)

Вам понравилась статья? Хотите получать уведомления о выходе новых статей с этого сайта на свой почтовый адрес? Подписывайтесь пожалуйста. Введите свой почтовый адрес и нажмите кнопку Хочу получать статьи!

<![CDATA[]]><![CDATA[]]>

 

*Адреса электронной почты не разглашаются и не предоставляются третьим лицам для коммерческого или некоммерческого использования.

 

 
 

 

7 комментария:
27/12/2012 - 15:49
После установки по инструкции из вашего поста получаю такую картину; Connected to Asterisk 1.8.17.0 currently running on debiansas (pid = 2767) [Dec 27 17:44:24] WARNING[2806]: chan_dongle.c:215 opentty: unable to open /dev/ttyUSB2: No such file or directory [Dec 27 17:44:39] WARNING[2806]: chan_dongle.c:215 opentty: unable to open /dev/ttyUSB2: No such file or directory debiansas*CLI> dongle show devices ID           Group State      RSSI Mode Submode Provider Name  Model      Firmware          IMEI             IMSI             Number         dongle0      1     Not connec 0    0    0       NONE                                                                          Unknown        debiansas*CLI>   подскажите где исправить, спасибо.
27/12/2012 - 15:56
Здравствуйте. /dev/ttyUSB2 - это в файле dongle.conf указан один из портов например модема 3G Huawei e1550,  если вы не используете модем, закоментируйте строки с /dev/ttyUSB* c помощью символа   ;      и перезагрузите астериск командой /etc/init.d/asterisk restart   Система не видит модема, то есть нет файлов /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2, которые создаются автоматически при включении модема. Попробуйте установить программу usb-modeswitch командой: aptitude install usb-modeswitch  
27/12/2012 - 16:31
Спасибо, закоментировал, не помогло. Да и смысл затеи как раз в использовании модема. USB-modesvich установлен.
27/12/2012 - 16:35
Что ж тут сделаеш, если система не видит модем, нужно разбиратся. Какой модем используется, какая операционка.
27/12/2012 - 17:11
Модем E1550 разлоченый, с активированным голосом, рабочий в общем. Операционка Debian. А может неопознаваться модем из за того что всё это на VirtualBox - е развёрнуто? Непонимаю что за напасть... Спасибо за ответы!
02/01/2013 - 11:29
Если на virtualbox, тогда модем должен быть проброшен. Я сам пробрасывал, нормально определялся.
Алекс
18/05/2016 - 19:47
собрал все по инструкции. при запуске астериска вижу chan_dongle.c:218 opentty: unable to open /dev/ttyUSB3: Device or resource busy система Debian 8 модем МТС Е1550 разлочен. с мегафоновской симкартой. пробовал запускать из под винды - все работает. даже звонок приходит на модем

Add new comment

Filtered HTML

  • Search Engines will index and follow ONLY links to allowed domains.

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
  • Search Engines will index and follow ONLY links to allowed domains.

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.