Asterisk freepbx настройка windows huawei 1550
Обновлено: 03.07.2024
25 thoughts on “ VoIP-GSM шлюз для Asterisk на USB модеме HUAWEI E1550 ”
Познавательно!
Как к астериску прикрутить X-lite, что бы звонить с него через модем?
Сразу прошу прощения за откровенно дилетантские вопросы, но с астериском дружу не больше недели :-)
*CLI> dongle show devices
ID Group State RSSI Mode Submode Provider Name Model Firmware
Number
dongle0 0 Free 7 5 4 MTS-RUS E173 11.126.85.00.209
Перезагрузил астриск, исходящие звонки пошли, а вот входящие всё равно на X-lite не проходят :-(
Вот пример, ниже содержимое файла /etc/asterisk/dongle.conf:
[dongle0]
context=from-gsm
audio=/dev/ttyUSB1
data=/dev/ttyUSB2
Большое спасибо за помощь!
Тперь идут звонки и исходящие, и входящие с/на X-lite :-)
Сергей, не расскажите как поэтапно GoIP 4 к астериску прикрутить?
Итого, заработало так:
[dongle0]
audio=/dev/ttyUSB1
data=/dev/ttyUSB2
до этого я рубился через НЕПРАВИЛЬНУЮ НАСТРОЙКУ
[dongle0]
audio=/dev/ttyUSB0
data=/dev/ttyUSB2
Нажмите CTRL-A Z для получения подсказки по клавишам
Т.е. эта железка замечательно отвечает как бэ датой с другого tty (
Тьфу, наеправильная настройка была
audio=/dev/ttyUSB2
data=/dev/ttyUSB0
Он видел эту дату, отзывался, но звонки не принимал.
Спасибо, Сергей!
Буду разбираться.
ещё есть вопрос
Сергей, я всё устанавливал по Вашей статье, есть ли особые рекомендации как установить GUI? Можно ли по этой статье wiki.enchtex.info/howto/asterisk/asterisk-ubuntu-10.04 (Установка GUI)? Ничего не слетит?
знаю что дело в диалпланах. но голова уже едит кругом
если не тяжело пример показать
[dongle0]
audio=/dev/ttyUSB1
data=/dev/ttyUSB2
[dongle1]
audio=/dev/ttyUSB4
data=/dev/ttyUSB5
Выборочно можно, только кто будет выбирать?
ну я думал добавочную цифру вводить например
99+номер моб телефона => dongle0
номер моб телефона => dongle1
В период кризиса и девальвации национальной валюты, идет резкое удорожание разнотипного VoIP оборудования. Не всегда малый бизнес готов сразу выкинуть несколько миллионов за систему IP-телефонии. А такие сервисы как запись разговоров, статистика и собственно сама IP-телефония, бывают критически необходимы. Поэтому приходиться прибегать к бюджетным решениям, одно из таких использование 3G модемов в качестве VoIP-GSM шлюза. Нельзя назвать, это решение стабильным и надежным, тем не менее когда нет денег, заказчик готов закрыть глаза на всякого рода “отваливания” модемов. В этой статье попробуем расcмотреть, как к уже готовому дистрибутиву FreePBX Distro подключить 3G модемы через USB хаб.
Исходные данные дистрибутив FreePBX Distro 2.11 64 bit, c Asterisk 11 на борту. Первым делом качаем пропатченный канальный драйвер chan_dongle с нашего сайта. И ставим необходимые зависимости:
C помощью minicom отключаем CardReader и виртуальный CD-ROM в модеме.
Выбираем настройку последовательного порта, нажимаем А и редактируем порт — /dev/ttyUSB0 после этого жмем два раза Enter и нажимаем Выход. После подключения вводим AT команду AT^U2DIAG=0 и выходим нажав Ctrl-A а потом Q
Идем дальше и разбираемся с конфигурацией модемов.
Проверяем порты модемов:
Добавляем нужный контекст для работы модемов:
Во FreePBX создаем кастомный транк, где указываем imei модема:
После всех продлённых операций можно увидеть наши модемы:
Видим в консоли следующее:
Создадаем правило udev для разрешения прав:
Для экономии питания переводим модемы в 2G режим, это очень важный нюанс, потому как из-за нехватки тока питания USB модемы начинают отваливаться.
Если есть желание, то можно задать номер телефона для сим-карт с номером Unknown:
Прописываем этот скрипт на выполнения в cron:
И конечно скрипт, который на уровне Linux передернет ваш модем в случае его зависания:
Многие из нас имеют в быту замечательные WIFI роутеры ASUS.
В данной статье речь пойдет о варианте применения этих роутеров, в частности моделей RT-N16, WL-500GP, WL-500W в качестве сервиса VOIP телефонии на базе продукта Asterisk, в том числе с построением шлюза GSM<->Asterisk<->VOIP.
В результате получаем:
— вполне работоспособную IP – телефонию на роутере, без лишних затрат и дополнительных точек отказа в виде дополнительного железа
— очень бюджетное решение по VOIP2GSM терминации для личных нужд (на базе 3G модемов HUAWEI)
Насколько это нужно — решать Вам!
Я лично использую эту схему (при минимальных затратах на «железо») для:
— недорогих звонков за границу с мобильного телефона (GSM->VOIP->GSM or Landline)
— экономии расходов на связь в роуминге (c помощью Callback на «местную» или туристическую симку)
— в качестве VOIP<-> GSM шлюза в одной из стран, где цены на локальные звонки и интернет вполне адекватные, а вот VOIP трафик стоит немало.
1. Собственно указанный роутер ASUS RT-N16, WL-500GP, WL-500W (возможно список моделей может быть шире)
2. Для GSM<->VOIP шлюза – нужен 3G модем HUAWEI E1550 или E173 (опять же – список может быть шире, но тестировались именно эти модели). Шлюз GSM-VOIP в виде сервиса мегафона «Мультифон» — остается за рамками нашей темы.
Постараюсь не повторяться а осветить особенности установки Asterisk именно на роутере.
Итак, Часть 1-я, «Установка Asterisk»
1. Ставим на роутер прошивку на ядре 2.6* «от энтузиастов» на базе прошивки Oleg’а.
Почему эта, а не dd-wrt, tomato и тд – работает быстро, проект динамично обновляется(спасибо «энтузиастам»).
2. Для пакета asterisk и прочих зависимостей памяти роутера нам будет явно недостаточно, поэтому понадобится внешний USB накопитель (1 gb- вполне устроит). Вместо флешки – мы можем воспользоваться опцией замечательных 3g модемов Huawei e1550 и E173 (кстати – все еще продается по акции мегафона за 750 рублей, в комплекте с симкой на 1 мес бесплатного мобильного интернета) – которые имеют слот для Micro SD Card, совмещая в себе функции флешки. Таким образом, этот чудесный модем воплощает в себе одновременно 3 свойства:
— 3G модем (интернет на роутер можем получать через него)
— Флешка (при вставленной micro sd) для установки доп. пакетов на роутере
— GSM шлюз с поддержкой голоса, SMS, USSD
3. Подключаем модем-флешку или просто флешку, логинимся в роутер по SSH, и производим первоначальную конфигурацию и установку необходимых пакетов.
Процесс неплохо описан здесь wl500g.info/showthread.php?t=3171, я приведу основные этапы:
b) Форматим флешку и подключаем ее в качестве доступного хранилища
umount /tmp/mnt/disca_1
mke2fs -j /dev/discs/disca/part1
mkdir /tmp/mnt/disca_1/opt
mount -obind /tmp/harddisk/opt /opt
echo 'mount -obind /tmp/harddisk/opt /opt ' >> /usr/local/sbin/post-mount
flashfs save
flashfs commit
flashfs enable
c) Подключаемся к репозиторию и устанавливаем нужные пакеты
mkdir -p /opt/tmp/ipkg
ipkg.sh update
ipkg.sh install ipkg-opt
echo "option verbose-wget">>/opt/etc/ipkg.conf
ipkg update
ipkg upgrade
d) Ставим софт для удобства работы
ipkg install nano mc findutils grep wget
echo "export TERMINFO=/opt/share/terminfo" >> /usr/local/root/.profile
echo "export TERM=xterm" >> /usr/local/root/.profile
flashfs save
flashfs commit
flashfs enable
4. Ставим Asterisk 16
ipkg install asterisk16
5. Запускаем asterisk
и получаем……… «Segmentation Fault» (может быть Вам повезет больше? )
Небольшое лирическое отступление: все бы хорошо, но Asterisk «вылетает». Я потратил немало времени, пробовал компилировать Asterisk на роутере – вполне благополучно (с некоторыми хитростями), но тоже вылетает. Пробовал кросс компиляцию – аналогично.
Вот он:
mkdir /opt/lib/asterisk/modules_backup
mv /opt/lib/asterisk/modules/res* /opt/lib/asterisk/modules_backup/
Т.е. все res_* отключаем, надеюсь что Вам это будет некритично.
7. Запускаем опять asterisk, и «ВУАЛЯ»!
Asterisk Ready.
*CLI>
Процесс конфигурирования оставлю в покое, немало мано-факов по той тебе исписано, лишь сделаю ремарку, что для себя в /opt/etc/asterisk использую лишь эти конфигурационные файлы:
asterisk.conf cdr.conf extensions.conf indications.conf logger.conf modules.conf rtp.conf sip.conf
И для GSM модема еще dongle.conf (или datacard.conf)
Часть 2, Установка GSM Шлюза
С установкой Asterisk закончили, перейдем к установке GSM шлюза на базе 3G модемов HUAWEI, моделей E1550 и E173.
2. Если модем используется в качестве флешки для роутера – то эта функция должна быть инициализирована (можно сделать через терминал):
AT^U2DIAG=0 (девайс переводится в режим "только модем")
AT^U2DIAG=1 ( . "модем + CD-ROM")
AT^U2DIAG=255 ( . "модем + CD-ROM + Card reader")
AT^U2DIAG=256 ( . "модем + Card reader")
3. Далее пути два:
Первый – простой… использовать для шлюза готовый скомпилированный модуль chan_datacard.so
Дальше добавляем в /opt/etc/asterisk/ конфигурационный файл datacard.conf примерно следующего содержания
>>>>>>>>>>>>>>>>>>>>>>>>>>>
[datacard0]
audio=/dev/ttyUSB1 ; tty for audio connection
data=/dev/ttyUSB2 ; tty for AT commands
context=datacard-incoming ; context for incoming calls
group=1 ; calling group
rxgain=3 ; increase the incoming volume
txgain=3 ; increase the outgoint volume
resetdatacard=yes ; reset datacard during initialization
u2diag=256 ; set U2DIAG parameter (256 = modem+card_reader)
usecallingpres=yes ; use the caller ID presentation or not
callingpres=allowed_passed_screen ; set caller ID presentation
<<<<<<<<<<<<<<<<<<<<<<<
И далее, уже в файле extensions.conf создаем раздел [datacard-incoming] и добавляем туда свои правила диалплана. Для теста, например,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[datacard-incoming]
exten => s,1,Playback(demo-echotest) ; Let them know what's going on.
exten => s,2,Echo ; Do the echo test.
exten => s,1,Playback(demo-echodone)
<<<<<<<<<<<<<<<<<<
Вариант второй – посложнее, но и возможностей больше.
Для этого ставим на роутер необходимые для компиляции пакеты:
ipkg install buildroot optware-devel make
Далее настраиваем диалплан, и наслаждаемся работающим сервисом Asterisk с GSM шлюзом на роутере!
Появилась интересная задача, которая заключается в том что нужно подключить GSM-модем USB HUAWEI E1550 к Asterisk 13 работающий на Debian 8 Jessie. Настроить возможность принимать/отправлять SMS, принимать/звонить с номера находящегося в GSM-модеме.
Настройка системы и GSM-модема
Обновляем систему до актуального состояния:
Устанавливаем необходимые пакеты для работы с USB GSM шлюзом:
Подключаем GSM-модем HUAWEI E1550, проверяем появились ли устройства ttyUSB*:
crw - rw -- -- 1 root dialout 188 , 0 фев 27 11 : 34 ttyUSB0 crw - rw -- -- 1 root dialout 188 , 1 фев 27 11 : 33 ttyUSB1 crw - rw -- -- 1 root dialout 188 , 2 фев 27 12 : 37 ttyUSB2Запускаем утилиту для подключения к последовательным портам (COM):
Подключаемся к сохраненному профилю (я сохранил профиль как e1550):
AT^U2DIAG=0 (режим только модем)
AT^U2DIAG=1 (режим модем + CD-ROM)
AT^U2DIAG=255 (режим модем + CD-ROM + Card Reader)
AT^U2DIAG=256 (режим модем + Card Reader)
Для выхода из программы нажмите Ctrl+A, затем нажмите Q и подтвердите выход нажатием Enter.
Установка модуля chan_dongle
Скачиваем исходник модуля chan_dongle под Asterisk 13 и разархивируем его:
Выполняем сборку модуля, компиляцию и установку модуля:
Копируем конфигурационный файл dongle.conf в каталог asterisk и назначаем ему нужные права:
chown asterisk : asterisk / etc / asterisk / dongle . conf KERNEL == "ttyUSB*" , MODE = "0666" , OWNER = "asterisk" , GROUP = "dialout"Перезапустим службу udev и asterisk:
Для проверки, переподключим GSM-модем к системе и проверим назначенные права на него:
crw - rw - rw - 1 asterisk dialout 188 , 0 фев 27 11 : 34 ttyUSB0 crw - rw - rw - 1 asterisk dialout 188 , 1 фев 27 11 : 33 ttyUSB1 crw - rw - rw - 1 asterisk dialout 188 , 2 фев 27 13 : 09 ttyUSB2В файле конфигурации (/etc/asterisk/dongle.conf) опишем параметры подключенного устройства HUAWEI E1550.
Для примера скорректируем имеющуюся секцию [dongle0]:
audio = / dev / ttyUSB1 ; tty порт для audio соединений ;В консоли asterisk, перечитываем конфигурацию chan_dongle и проверяем состояние устройства. Если все было сделано правильно, то подключение к GSM-модему будет осуществлено и устройство будет отображаться в консоли asterisk:
ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number dongle0 0 Free 18 5 4 MTS - RUS E1550 11.608.12.00.143 3588 * * * 2500 * * * UnknownТеперь когда соединение с GSM-модемом установлено, настроим dialplan обработки SMS, USSD, входящих и исходящих вызовов. В файле конфигурации (/etc/asterisk/extensions.conf) добавляем следующее:
exten = > sms , n , System ( echo '$Для наглядности работы модуля chan_dongle, приведу выводы из консоли asterisk.
-- Executing [ sms @ from - dongle : 3 ] Hangup ( "Local/sms@from-dongle-00000002;1" , "" ) in new stack == Spawn extension ( from - dongle , sms , 3 ) exited non - zero on 'Local/sms@from-dongle-00000002;1'Пример отправки SMS:
dongle sms dongle0 + 7917 * * * * * 00 HELLO ! THIS IS TEST MESSAGE ! [ dongle0 ] SMS queued for send with id 0x7fc348000a90 -- [ dongle0 ] Successfully sent SMS message 0x7fc348000a90 [ Feb 27 11 : 30 : 22 ] NOTICE [ 852 ] : at_response . c : 257 at_response_ok : [ dongle0 ] Successfully sent SMS message 0x7fc348000a90Пример отправки USSD запроса:
[ Feb 27 11 : 37 : 13 ] NOTICE [ 852 ] : at_response . c : 267 at_response_ok : [ e1550 ] Successfully sent USSD 0x2e44cc0 [ dongle0 ] Got USSD type 0 'USSD Notify' : 'Баланс:5676,62р ' -- Executing [ ussd @ from - dongle : 1 ] NoOp ( "Local/ussd@from-dongle-00000004;1" , "Incoming USSD: Баланс:5676,62р " ) in new stack -- Executing [ ussd @ from - dongle : 2 ] System ( "Local/ussd@from-dongle-00000004;1" , "echo '2019-02-27 11:37:15 - e1550: Баланс:5676,62р ' >> /var/log/asterisk/ussd.txt" ) in new stack -- Executing [ ussd @ from - dongle : 3 ] Hangup ( "Local/ussd@from-dongle-00000004;1" , "" ) in new stack == Spawn extension ( from - dongle , ussd , 3 ) exited non - zero on 'Local/ussd@from-dongle-00000004;1'Очистка SMS из памяти SIM и GSM-модема
Периодически рекомендуется очищать SMS из память SIM и GSM-модема.
Для очистки памяти SIM в консоли asterisk, вводим команды:
dongle cmd < dongle_name > AT + CPMS = \ " SM \ " , \ " SM \ " , \ " SM \ "Для очистки памяти GSM-модема в консоли asterisk, вводим команды:
dongle cmd < dongle_name > AT + CPMS = \ " ME \ " , \ " ME \ " , \ " ME \ "Понравилась или оказалась полезной статья, поблагодари автора
Всего комментариев: 7 Комментировать
Похоже что вы пытаетесь сделать на Asterisk 15.7.2 + Debian 9, хотя в заметке явно указано что все описанное применимо к Asterisk 13 + Debian 8 Jessie!
Лично у меня на Asterisk 13 + Debian 8 Jessie, все прекрасно заводится, делая в точности по шагам заметки. На других версиях не пробовал и не могу знать что там за подводные камни могут быть.
К примеру указанный в статье модуль chan_dongle поддерживает Asterisk 13, поддержку Asterisk 15, насколько я знаю никто не делал..
Зачем делать контекст для входящих для проигрывания демо-теста и ложить трубку? Так круто?
Очевидно же что это просто для примера было так написано, если не догадались..
Здравствуйте. Спасибо за пост, вроде всё по делу. Не подскажете ли, в чем может быть дело, если мне не удается получить смски с помощью донгла (у меня модем E173) в процессе работы Asterisk?
сложно сказать почему у вас так, но на тот момент когда я реализовал, вроде все работало нормально. А сейчас даже не могу подсказать.
Читайте также: