asterisk huawei e173 настройка

Asterisk huawei e173 настройка

Huawei E173 & Asterisk

Как было просто со старыми модемами Huawei E173u-1 и разлочить было просто и бесплатно и к Астериску привязывались легко. Но увы их уже не. Продаются новые: Е173 и Е1550 как быть с ними.

Голос они также поддерживают, но найти программы для разлочки бесплатно не получилось, пришлось отдавать энную сумму денег и использовать программу DC — Unloker . (Зато быстро и без потери времени).

Процедура разлочки очень проста. Покупаешь кредиты на сайте, сколько необходимо там же можно посмотреть в таблице. При покупке указываешь адрес почты куда придет логин и пароль. В программе вводишь логин и пароль и модем отвязан.

Модем мы сделали, пора его привязывать к Астериск но тут уже сложнее.

При включения модема смотрим, видится он или нет командой lsusb и если все хорошо видим наш модем:

root@server:/etc/asterisk# lsusb
Bus 001 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Но радовать рано данные модемы видятся в системе как USB накопитель ( флешка ) а не как gsm устройство , проверить можно командой dmesg | tail

Переключения режима работы модема

1. Устанавливаем apt-get install usb-modeswitch-data

2.Создаем файл в каталоге / etc / usb _ modeswitch . d /12 d 1:1001 Имя файла делаем такое же как ID в команде lsusb

########################################################
# Huawei E1550
#
# Contributor: Bogomips
DefaultVendor= 0x12d1
DefaultProduct= 0x1001
MessageContent=»55534243000000000000000000000011060000000000000000000000000000″
MessageEndpoint=0x01
CheckSuccess=5

Где
DefaultVendor и DefaultProduct такие же как ID

4. Запускаем команду usb_modeswitch -v 0x12d1 -p 0x1001 -c /etc/usb_modeswitch.d/12d1\:1001
И если все прошло удачно в конце будет написано Mode switch most likely succeeded. Bye.

Проверяем. Запускаем команду dmesg | tail и видим что наш модем работает уже как GSM шлюз.

Дальнейшая настройка Астериск берем от сюда.

источник

Шпаргалка 😉

Блог посвященный системному администрированию

17 авг. 2012 г.

Настройка модемов Huawei для работы с АТС Asterisk PBX

После некоторых мучений и поисков, что чего и куда, решил написать статью для потомков о настройке модемов Huawei для работы с АТС Asterisk.

Для начала установим необходимые пакеты. Всё нижесказанное для системы Debian. Для других дистрибутивов нужно будет подправить команды и возможно пути.

aptitude install asterisk-dev libusb libusb-dev subversion build-essential

Теперь идём на реальную вин-машину. Втыкаем туда нашего зверька, винда должна пошуршать дровами, затем надо установить из памяти устройства программульку U’manager. Она установит дрова именно на сам модем. Для верности, заходим в свойства в прожке и проверяем, виден ли наш модем.

Теперь скачиваем прожку для крякания модемчиков Хуявей тут Huawei_Modem_Unlocker.zip

Вначале слева делаем Check Status и жмякаем SERVICE, если в логе внизу покажет, что модем залочен, то делаем ему UNLOCK и независимо от этого обязательно делаем ENABLE VOICE — ну собсно чтобы он звонил 🙂

Далее втыкаем донгл в сервер и, если у вас Asterisk на виртуалке, то заходим в свойства виртуальной машины и пробрасываем ей девайс:

Если у вас такой картинки нету, то ковыряем настройки. Может быть, надо зайти в свойства хоста и сделать как на картинке (Advanced settings — Edit — отмечаем юсб хабы):

Когда вы так или иначе прикрутили модем к серверу Asterisk, проверим:

lsmod | grep usb
usb_wwan 8068 1 option
usbserial 27676 6 option,usb_wwan
usb_storage 40217 0
usbhid 33292 0
hid 63257 1 usbhid
usbcore 123122 8 option,usb_wwan,usbserial,usb_storage,usbhid,uhci_hcd,ehci_hcd
nls_base 6377 1 usbcore
scsi_mod 126725 9 usb_storage,vmw_pvscsi,sd_mod,sg,sr_mod,mptspi,mptscsih,scsi_transport_spi,libata

Читайте также:  настройка магнитолы pioneer prs 80

ls /dev/ | grep USB
ttyUSB0
ttyUSB1
ttyUSB2

Если у вас примерно похожее, то всё окей.

В некоторых случаях модем линуксом сразу не определяется. А определяется как cr-rom или какой-нибудь флеш. в общем, ttyUSB нема. В этой ситуации может помочь утилитка USB Mode Switch, которая с помощью манипуляций правилами udev делает то, что нам нужно 🙂 Качаем ее с офф сайта (на Debian/Ubuntu она есть в репозиториях) http://www.draisberghof.de/usb_modeswitch/ затем распаковываем и компилируем. Не забываем установить утилиту tcl — без нее ругаться не будет, но и работать тоже. При следующем подключении модема, утилитка должна сработать и дать нам наши ttyUSB.

Теперь надо скачать для Asterisk-a модуль для работы с хуйвей модемами. Есть два варианта — модуль chan_datacard и chan_dongle. Мне вначале попался 1й и я заюзал его. Как оказалось, зря. Т. к. работало всё, кроме отправки USSD-запросов. А не знать свой баланс — пичалька. Потому ставить лучше 2й. Скачиваем последнюю версию с сайта http://code.google.com/p/asterisk-chan-dongle/downloads/list и компилим (предварительно сделав noload в modules.conf 1-му модулю, если он у вас уже есть):

tar -xzvf chan_dongle-1.1.r10.tgz
cd chan_dongle-1.1.r10/
./configure
make
make install
ls /usr/lib/asterisk/modules
cp etc/dongle.conf /etc/asterisk/
nano /etc/asterisk/dongle.conf

Причем, номера ttyUSBх могут отличаться для разных модемов — находям, если что, методом «тыка». А строки с усилением звука — потому что слишком низкий уровень звука по-умолчанию был у меня.

Далее, в папке etc, которая находится там, куда вы распаковали исходники модуля есть файл extensions.conf, в котором примеры чего и как прописывать в диалплан.

Если мы в /etc/asterisk/dongle.conf ничего явно не указали, то входящий вызов по-умолч. приходит в секцию [dongle-incoming].

include => dongle-incoming-sms
include => dongle-incoming-ussd

1е 2 строчки нужны для приема SMS и USSD-запросов. А 3я перекидывает вызов в стандартную секцию для входящих звонков моего диалплана. Содержимое инклюдов взял из гугла:

Далее, чтобы звонить через модем, нужно в секцию, где обрабатываются исходящие вызовы поместить такое:

exten => _7.,1,Dial(Dongle/dongle0/+$)
exten => _0.,1,Dial(Dongle/dongle0/$)

1-я строчка — для звонков в Россию. 2-я — для звонков на мобильные номера по Украине (я нахожусь в Украине — соотв., для других стран может быть по-другому здесь).

Дальше. Я так и не понял, как посылать USSD-запросы через диалплан (т. е. тупо набирая в SIP-телефоне). Но, через CLI Asterisk’a это делается просто:

asterisk -rx dongle ussd dongle0 *111#

Где dongle0 — как вы обозвали своё устройство в конфиге, а за ним сам запрос. Если в диаплане у вас прописана обработка USSD так же, как и у меня, то результаты запросов будут дописываться в файл /var/log/asterisk/ussd.txt.

Я написал скрипт на Python, который проверяет балланс через эту команду и отсылает результат на меил. Но о нем я напишу в другой статье.

входящие SMS сохраняются автоматом в файле /var/log/asterisk/sms.txt, если вы прописали как я.

З. Ы. Для тех, кто по каким-либо причинам решит юзать модуль chan_datacard, приведу кратко настройку его.

источник

oioki.ru

Дорогие читатели, сегодня поделюсь инструкцией, как настроить GSM-модем Huawei E173 на программной АТС Asterisk, работающей под управлением FreeBSD. Настроим исходящие и входящие звонки. Не сказать, что это очень уж секретные сведения, но мне всё-таки пришлось наступить на некоторые грабли в процессе настройки, а значит, материал достоин публикации. Итак, начнем – у нас имеется FreeBSD 8.3, Asterisk 1.8.17.0 и GSM-шлюз Huawei E173, подключающийся к USB-порту.

Подключаем USB-модем. Сперва нужно проверить, что он определяется в системе…

Читайте также:  настройка печати упд в 1с

Например, у меня при подключении модема появились следующие устройства в каталоге /dev:

Однако это ещё не всё, что нужно. Должны быть устройства вида cuaU* для взаимодействий с собственно GSM-модемом. Чтобы эти файлы устройств появились, необходимо загрузить модуль ядра u3g (он потянет за собой ucom):

После этого я увидел новые файлы устройств вида cuaU0.* и ttyU0.* (у вас могут отличаться цифры после большой буквы U).

Разобравшись с аппаратной частью, приступим к программной. Скачиваем исходники проекта asterisk-chan-dongle (раньше он назывался chan-datacard) – http://code.google.com/. Список поддерживаемых устройств можно посмотреть на вики проекта.

Распаковываем в любой каталог, и собираем стандартным способом:

Получаем модуль chan_dongle.so, который нужно поместить в каталог с модулями Asterisk, например, в /usr/local/lib/asterisk/modules/chan_dongle.so. Также переносим файл-пример dongle.conf в каталог с конфигурационными файлами Asterisk, например, в /usr/local/etc/asterisk/dongle.conf и редактируем по своим нуждам:

В основном это настройки по умолчанию, и многие из них описаны в самом конфиге, или на вики проекта. Нужно обратить внимание на настройки, выделенные жирным. Секция defaults определяет общие параметры для USB-устройств, если их у вас несколько, то для каждого устройства можно указать собственные параметры, в данном случае как у dongle0. Опции context и extension определяют, соответственно, контекст и добавочный номер, куда попадёт входящий звонок, поступающий на данную SIM-карту. Опции audio и data определяют файл устройства из каталога /dev, о которых я уже писал чуть выше. Название секции dongle0 также служит идентификатором канала, в который мы будем отправлять исходящий звонок из Asterisk. Сейчас мы увидим, как это делается.

Соответствующая настройка диалплана Asterisk, файл extensions.conf:

Чтобы последний контекст срабатывал, нужно у соответствующего пользователя присвоить значение параметра context=outgoing. Наконец, загружаем модуль и перезагружаем диалплан, в консоли Asterisk:

Похожие статьи

6 thoughts on “Настройка Huawei E173 на FreeBSD + Asterisk”

sip.conf пожалуйста выложите сюда.
При звонке на модем, можно донабрать другой номер? У меня не получается донабрать.

Донабор не пробовал. Попробуйте указать опцию dtmfmode=inband

у меня проблема с этим набираю номер в донаборе и идет отключение, в логе:
[Apr 28 17:50:35] DTMF[1865]: channel.c:4062 __ast_read: DTMF begin ‘8’ received on Dongle/dongle0-0100000004
[Apr 28 17:50:35] DTMF[1865]: channel.c:4072 __ast_read: DTMF begin passthrough ‘8’ on Dongle/dongle0-0100000004
[Apr 28 17:50:36] DTMF[1865]: channel.c:3977 __ast_read: DTMF end ‘8’ received on Dongle/dongle0-0100000004, duration 191 ms
[Apr 28 17:50:36] DTMF[1865]: channel.c:4017 __ast_read: DTMF end accepted with begin ‘8’ on Dongle/dongle0-0100000004
[Apr 28 17:50:36] DTMF[1865]: channel.c:4046 __ast_read: DTMF end passthrough ‘8’ on Dongle/dongle0-0100000004
[Apr 28 17:50:36] DTMF[1865]: channel.c:4062 __ast_read: DTMF begin ‘4’ received on Dongle/dongle0-0100000004
[Apr 28 17:50:36] DTMF[1865]: channel.c:4072 __ast_read: DTMF begin passthrough ‘4’ on Dongle/dongle0-0100000004
[Apr 28 17:50:36] DTMF[1865]: channel.c:3977 __ast_read: DTMF end ‘4’ received on Dongle/dongle0-0100000004, duration 229 ms
[Apr 28 17:50:36] DTMF[1865]: channel.c:4017 __ast_read: DTMF end accepted with begin ‘4’ on Dongle/dongle0-0100000004
[Apr 28 17:50:36] DTMF[1865]: channel.c:4046 __ast_read: DTMF end passthrough ‘4’ on Dongle/dongle0-0100000004
[Apr 28 17:50:36] DTMF[1865]: channel.c:4062 __ast_read: DTMF begin ‘9’ received on Dongle/dongle0-0100000004
[Apr 28 17:50:36] DTMF[1865]: channel.c:4072 __ast_read: DTMF begin passthrough ‘9’ on Dongle/dongle0-0100000004
[Apr 28 17:50:37] DTMF[1865]: channel.c:3977 __ast_read: DTMF end ‘9’ received on Dongle/dongle0-0100000004, duration 191 ms
[Apr 28 17:50:37] DTMF[1865]: channel.c:4017 __ast_read: DTMF end accepted with begin ‘9’ on Dongle/dongle0-0100000004
[Apr 28 17:50:37] DTMF[1865]: channel.c:4046 __ast_read: DTMF end passthrough ‘9’ on Dongle/dongle0-0100000004
[Apr 28 17:50:37] DTMF[1865]: channel.c:4062 __ast_read: DTMF begin ‘5’ received on Dongle/dongle0-0100000004
[Apr 28 17:50:37] DTMF[1865]: channel.c:4072 __ast_read: DTMF begin passthrough ‘5’ on Dongle/dongle0-0100000004
[Apr 28 17:50:37] DTMF[1865]: channel.c:3977 __ast_read: DTMF end ‘5’ received on Dongle/dongle0-0100000004, duration 191 ms
[Apr 28 17:50:37] DTMF[1865]: channel.c:4017 __ast_read: DTMF end accepted with begin ‘5’ on Dongle/dongle0-0100000004
[Apr 28 17:50:37] DTMF[1865]: channel.c:4046 __ast_read: DTMF end passthrough ‘5’ on Dongle/dongle0-0100000004
[Apr 28 17:50:38] DTMF[1865]: channel.c:4062 __ast_read: DTMF begin ‘7’ received on Dongle/dongle0-0100000004
[Apr 28 17:50:38] DTMF[1865]: channel.c:4072 __ast_read: DTMF begin passthrough ‘7’ on Dongle/dongle0-0100000004
[Apr 28 17:50:38] DTMF[1865]: channel.c:3977 __ast_read: DTMF end ‘7’ received on Dongle/dongle0-0100000004, duration 178 ms
[Apr 28 17:50:38] DTMF[1865]: channel.c:4017 __ast_read: DTMF end accepted with begin ‘7’ on Dongle/dongle0-0100000004
[Apr 28 17:50:38] DTMF[1865]: channel.c:4046 __ast_read: DTMF end passthrough ‘7’ on Dongle/dongle0-0100000004
[Apr 28 17:50:38] DTMF[1865]: channel.c:4062 __ast_read: DTMF begin ‘8’ received on Dongle/dongle0-0100000004
[Apr 28 17:50:38] DTMF[1865]: channel.c:4072 __ast_read: DTMF begin passthrough ‘8’ on Dongle/dongle0-0100000004
[Apr 28 17:50:39] DTMF[1865]: channel.c:3977 __ast_read: DTMF end ‘8’ received on Dongle/dongle0-0100000004, duration 191 ms
[Apr 28 17:50:39] DTMF[1865]: channel.c:4017 __ast_read: DTMF end accepted with begin ‘8’ on Dongle/dongle0-0100000004
[Apr 28 17:50:39] DTMF[1865]: channel.c:4046 __ast_read: DTMF end passthrough ‘8’ on Dongle/dongle0-0100000004
[Apr 28 17:50:39] DTMF[1865]: channel.c:4062 __ast_read: DTMF begin ‘7’ received on Dongle/dongle0-0100000004
[Apr 28 17:50:39] DTMF[1865]: channel.c:4072 __ast_read: DTMF begin passthrough ‘7’ on Dongle/dongle0-0100000004
[Apr 28 17:50:39] DTMF[1865]: channel.c:3977 __ast_read: DTMF end ‘7’ received on Dongle/dongle0-0100000004, duration 178 ms
[Apr 28 17:50:39] DTMF[1865]: channel.c:4017 __ast_read: DTMF end accepted with begin ‘7’ on Dongle/dongle0-0100000004
[Apr 28 17:50:39] DTMF[1865]: channel.c:4046 __ast_read: DTMF end passthrough ‘7’ on Dongle/dongle0-0100000004
[Apr 28 17:50:40] DTMF[1865]: channel.c:4062 __ast_read: DTMF begin ‘4’ received on Dongle/dongle0-0100000004
[Apr 28 17:50:40] DTMF[1865]: channel.c:4072 __ast_read: DTMF begin passthrough ‘4’ on Dongle/dongle0-0100000004
[Apr 28 17:50:41] DTMF[1865]: channel.c:3977 __ast_read: DTMF end ‘4’ received on Dongle/dongle0-0100000004, duration 191 ms
[Apr 28 17:50:41] DTMF[1865]: channel.c:4017 __ast_read: DTMF end accepted with begin ‘4’ on Dongle/dongle0-0100000004
[Apr 28 17:50:41] DTMF[1865]: channel.c:4046 __ast_read: DTMF end passthrough ‘4’ on Dongle/dongle0-0100000004
[Apr 28 17:50:41] DTMF[1865]: channel.c:4062 __ast_read: DTMF begin ‘2’ received on Dongle/dongle0-0100000004
[Apr 28 17:50:41] DTMF[1865]: channel.c:4072 __ast_read: DTMF begin passthrough ‘2’ on Dongle/dongle0-0100000004
[Apr 28 17:50:41] DTMF[1865]: channel.c:3977 __ast_read: DTMF end ‘2’ received on Dongle/dongle0-0100000004, duration 191 ms
[Apr 28 17:50:41] DTMF[1865]: channel.c:4017 __ast_read: DTMF end accepted with begin ‘2’ on Dongle/dongle0-0100000004
[Apr 28 17:50:41] DTMF[1865]: channel.c:4046 __ast_read: DTMF end passthrough ‘2’ on Dongle/dongle0-0100000004
[Apr 28 17:50:41] DTMF[1865]: channel.c:4062 __ast_read: DTMF begin ‘0’ received on Dongle/dongle0-0100000004
[Apr 28 17:50:41] DTMF[1865]: channel.c:4072 __ast_read: DTMF begin passthrough ‘0’ on Dongle/dongle0-0100000004
[Apr 28 17:50:42] DTMF[1865]: channel.c:3977 __ast_read: DTMF end ‘0’ received on Dongle/dongle0-0100000004, duration 178 ms
[Apr 28 17:50:42] DTMF[1865]: channel.c:4017 __ast_read: DTMF end accepted with begin ‘0’ on Dongle/dongle0-0100000004
[Apr 28 17:50:42] DTMF[1865]: channel.c:4046 __ast_read: DTMF end passthrough ‘0’ on Dongle/dongle0-0100000004
[Apr 28 17:50:42] DTMF[1865]: channel.c:4062 __ast_read: DTMF begin ‘0’ received on Dongle/dongle0-0100000004
[Apr 28 17:50:42] DTMF[1865]: channel.c:4072 __ast_read: DTMF begin passthrough ‘0’ on Dongle/dongle0-0100000004
[Apr 28 17:50:42] DTMF[1865]: channel.c:3977 __ast_read: DTMF end ‘0’ received on Dongle/dongle0-0100000004, duration 204 ms
[Apr 28 17:50:42] DTMF[1865]: channel.c:4017 __ast_read: DTMF end accepted with begin ‘0’ on Dongle/dongle0-0100000004
[Apr 28 17:50:42] DTMF[1865]: channel.c:4046 __ast_read: DTMF end passthrough ‘0’ on Dongle/dongle0-0100000004
— Executing [s@dongle-incoming:5] Congestion(“Dongle/dongle0-0100000004”, “3”) in new stack
== Spawn extension (dongle-incoming, s, 5) exited non-zero on ‘Dongle/dongle0-0100000004’

Читайте также:  пони прог 2000 настройка

@Alex
а какой диалплан? есть ли добавочные для приема этих цифр? например:
exten = _X.,1,NoOp($)

Диалплан такой:
[dongle-incoming]
; incoming from dongle
exten => s,1,Answer()
exten => s,2,Set(CALLERID(num)=18689)
exten => s,3,Background(2)
exten => s,4,Wait(20)
exten => _X.,1,Set(CALLERID(num)=18689)
exten => _X.,n,Dial(SIP/$@dongle-incoming)
exten = >_X.,n,Hangup()
exten => s,5,WaitExten(5)
exten => s,6,Congestion(3)
exten => s,7,Hangup()

источник

Оцените статью
Adblock
detector