Команды для модемов Huawei e1550

По роду своей работы в сфере IT мне достаточно часто приходится сталкиваться с проблемами не всегда стандартными для IT сферы. Так же заметки со ссылками на статьи которые очень часто на практике выручали, держать на своем компе стало не удобно. По этой причине создан этот блог — записная книжка статей и заметок. Авторов статей прошу не обижаться если местами забыл сделать на них обратную ссылку. Пишите в комментариях все обязательно поправлю..

Поиск по моему блогу

VoIP-GSM шлюз для Asterisk на USB модеме HUAWEI E1550

Голосовой модуль по умолчанию активирован только в модемах МТС.
Рекомендованное ядро Linux 2.6.33+
Asterisk 1.6.+
Заведомо рабочие прошивки (firmware — не путать с dashboard):
МТС 11.608.12.00.143
11.608.14.15.311
Нерабочая firmware:
Мегафон 11.608.12.10.209 -при активированном голосе из под винды звонит, из под Linux — нет.
Активировать голосовую функцию можно программой DC-UNLOCKER за 4 кредита — 4 евро.

Вандальный ремонт USB 3G модема Huawei E1550

Установка asterisk из исходников

# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.6.2-current.tar.gz # tar zxvf asterisk-1.6.2-current.tar.gz # cd asterisk-1.6.2-current.tar.gz # apt-get install g++ libncurses-dev libxml2-dev subversion # ./configure # make install # make config # make samples

Установка модуля канала chan_datacard для Huawei

Файл datacard.conf из ~/chan_datacard/etc копируем в каталог /etc/asterisk
# 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

Установите usb-modeswitch

Пакет исходного кода: usb-modeswitch применяется в Unix системах для подключения устройств через USB интерфейс

#apt-get install libusb libusb-dev # wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-1.1.4.tar.bz2 # tar -jxvf usb-modeswitch-1.1.4.tar.bz2 # cd ~/usb-modeswitch-1.1.4 # make install # wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20100826.tar.bz2 # tar -jxvf usb-modeswitch-data-20100826.tar # cd ~/usb-modeswitch-data-20100826 # make install

Убедимся что модем Huawei E1550 определился в системе

ls /dev | grep USB ttyUSB0 ttyUSB1 ttyUSB2

Настройка модулей

Канальный модуль Huawei настраивается в 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 [datacard1] context=datacard-incoming ; context for incoming calls audio=/dev/ttyUSB4 ; tty port for audio connection data=/dev/ttyUSB5 ; tty port for AT commands group=2 ; calling group rxgain=10 ; increase the incoming volume txgain=10 ; increase the outgoint volume autodeletesms=yes ; auto delete incoming sms resetdatacard=yes ; reset datacard during initialization u2diag=0 ; set U2DIAG parameter (0 = disable everything except modem function) usecallingpres=yes ; use the caller ID presentation or not callingpres=allowed_passed_screen ; set caller ID presentation

Проверим состояние модема из командной строки Asterisk (CLI).

Полный обзор 3G USB модема Huawei E1550


Перегрузить asterisk можно командой core restart now,
а если система рабочая и идут вызовы, то core restart gracefully.
Запущенные модули каналов просмотрим командой module show like chan_

asterisk*CLI> datacard show devices ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number datacard1 2 Free 13 3 3 MTS RUS E1550 11.608.12.00.143 352. 25. Unknown datacard0 1 Free 15 3 3 TELE2 E1550 11.608.14.15.311 359. 25. Unknown

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

[datacard-incoming] exten => sms,1,Verbose(Incoming SMS from $ $) exten => sms,n,System(echo ‘$,,%Y-%m-%d %H:%M:%S)> — $ — $: $’ >> /var/log/asterisk/sms.txt) exten => sms,n,Hangup() exten => ussd,1,Verbose(Incoming USSD: $) exten => ussd,n,System(echo ‘$,,%Y-%m-%d %H:%M:%S)> — $: $’ >> /var/log/asterisk/ussd.txt) exten => ussd,n,Hangup() exten => s,1,Dial(SIP/100,,) exten => s,n,Hangup()

Где корзина в Хонор 9

Для исходящей связи

exten => _X.,1,Dial(Datacard/g1/$) или exten => _X.,1,Dial(Datacard/datacard0/$)

Отключение функций CD-ROM и card reader

Отключим ненужные функции.
# minicom -s +——[configuration]——+ | Filenames and paths | | File transfer protocols | | Serial port setup | | Modem and dialing | | Screen and keyboard | | Save setup as dfl | | Save setup as.. | | Exit | | Exit from Minicom | +—————————+
Выбираем Serial port setup и жмем ENTER. Жмем ‘А’ Редактируем порт:
+————————————————————————+ | A — Serial Device : /dev/ttyUSB0 | | B — Lockfile Location : /var/lock | | C — Callin Program : | | D — Callout Program : | | E — Bps/Par/Bits : 115200 8N1 | | F — Hardware Flow Control : Yes | | G — Software Flow Control : No | | | | Change which setting? | +————————————————————————+ | Screen and keyboard | | Save setup as dfl | | Save setup as.. | | Exit | | Exit from Minicom | +—————————
Жмем ENTER 2 раза и выбираем Exit.
После подключения вводим команду:AT^U2DIAG=0
Welcome to minicom 2.4 OPTIONS: I18n Compiled on Jan 25 2010, 06:49:09. Port /dev/ttyUSB0 Press CTRL-A Z for help on special keys AT S7=45 S0=0 L1 V1 X4 https://911ua.blogspot.com/2010/09/voip-gsm-asterisk-usb-huawei-e1550.html» target=»_blank»]911ua.blogspot.com[/mask_link]

myasterisk

Querying signal strength
+CSQ
Returns two comma separated numbers. The first number is the signal strength (RSSI), the second number is unused. Here’s how to interpret RSSI: 0 ⇐ -113dBm 1 -111dBm 2 – 30 -109dBm to -53dBm 31 >= -51dBm 99 Unknown

Setting operating mode
+CFUN=x 0 Low power mode 1 Online 4 Offline 6 Reset device 7 Turn off radio

Get manufacturer information
+CGMI

Get software version
+CGMR

Get SIM IMSI number
+CIMI

Get device IMEI
+CGSN

Get hardware version

Change PIN
+CPWD=SC,old pin, new pin

Enable PIN
+CLCK=SC,mode,pin Mode: 0=unlock, 1=lock, 2=query state

Query system information

Returns: status, domain, roaming status, mode, SIM state Status 0 No service. 1 Restricted service 2 Valid service 3 Restricted regional service. 4 Power-saving and deep sleep state Domain 0 No service. 1 Only CS service 2 Only PS service 3 PS+CS service 4 CS and PS not registered, searching Roaming 0 Non roaming state 1 Roaming state Mode 0 No service. 1 AMPS mode (not in use currently) 2 CDMA mode (not in use currently) 3 GSM/GPRS mode 4 HDR mode 5 WCDMA mode 6 GPS mode SIM state 0 Invalid USIM card state or pin code locked 1 Valid USIM card state 2 USIM is invalid in case of CS 3 USIM is invalid in case of PS 4 USIM is invalid in case of either CS or PS 255 USIM card is not existent

Источник: myasterisk.livejournal.com

perl скрипт производящий голосовой обзвон (оповещение) через usb модем huawei e1550

В свое время, так как я много времени проводил в командировках, мной была приобретена замечательная игрушка — usb модем Huawei e1550. Но времена лихой молодости прошли, и необходимость в использовании данного девайса по прямому назначению отпала. Так он и пылился у меня на полке в течении нескольких лет. И пылился бы и дальше, но возникла задача сделать систему оповещения.

Тут я и вспомнил про модем. Рассмотрев поставленную задачу — был вынужден отказаться от SMS оповещения в пользу голосового дозвона по причине невозможности получить уведомление о прочтении SMS. Решения на базе Asterisk показались мне несколько громоздкими, и почитав доку по модему я решил написать звонилку самостоятельно.

Причина публикации.

Несмотря на обилие статей по работе с USSD и SMS запросами, я не нашел ни одной реализации голосовых вызовов на скриптовых языках (таких как Perl, PHP, Node.js). Надеюсь данная статья будет для Вас хорошим подспорьем.

Как установить антивирус на Хонор
Среда разработки

операционная система: Linux
Дистрибутив: openSUSE 12.3
Ядро: 3.7.10-1.16-desktop #1 SMP PREEMPT Fri May 31 20:21:23 UTC 2013 (97c14ba) i686 i686 i386 GNU/Linux
Язык программирования: Perl
usb модем: Huawei e1550

Немного теории.

В большинстве дистрибутивов Linux, при подключении данного модема в /dev создаются 3 usb интерфейса. обычно это:
/dev/ttyUSB0 — командный интерфейс модема
/dev/ttyUSB1 — голосовой(при включенном голосовом режиме) интерфейс модема
/dev/ttyUSB2 — командный интерфейс модема. Отличается от /dev/ttyUSB0 тем что с него можно читать не только ответы модема на команды, а также служебные сообщения. Такие как данные о качестве сигнала, вывод ^CEND и прочее.

Для начала работы с модемом достаточно открыть как файл один из командных интерфейсов на чтение и запись.
Чтобы отправить модему команду — нужно записать ее в открытый файл интерфейса.
Чтобы получить ответ модема на данную команду — нужно прочесть его из открытого файла интерфейса.

Команды которые можно подавать модему — это AT команды
Команды для модема Huawei e1550 и ответы которые на них можно получить описаны в его спецификации:
HUAWEI CDMA Datacard Modem AT Command Interface Specification
HUAWEI UMTS Datacard Modem AT Command Interface Specification

Для того чтобы активировать голосовые функции модема нужно подать команду AT^CVOICE=0
Голосовые функции будут активированы до тех пор пока не будут отключены командой AT^CVOICE=1

Для того чтобы начать прием/передачу в модем аудио информации нужно при каждом звонке переключать режим работы аудио порта модема командой AT^DDSETEX=2

Аудиоданные для передачи модему должны иметь формат:
частота оцифровки: 8000 Герц.
количество каналов: 1 (mono).
бит на оцифровку: 16 signed.

Аудиоданные должны подаваться в аудио порт модема порциями по 320 байт каждые 0.02 секунды.

По завершении вызова модем через 2-й командный интерфейс выдает информацию о вызове в виде сообщения CEND
формат вывода ^CEND:call_index, duration, end_status, cc_cause
где:
call_index — уникальный идентификатор вызова
duration — длительность вызова в секундах
end_status — код статуса устройства после завершения вызова
cc_cause — код причины завершения вызова

Итак. Начнем.

звонилка будет состоять из 3-х файлов:
huawey_voice_call.pl — непосредственно сам скрипт голосового дозвона.
list.01.pl — файл с данными абонентов.
test.voice.raw — файл с голосовым сообщением записанным в нужном формате.

также в конце статьи будут представлены 2 дополнительных файла:
cc_cause.pl — содержит коды причин завершения вызова (cc_cause)
end_status.pl — содержит коды статуса устройства после завершения вызова (end_status)

все файлы одним архивом (выложил на своем компе, изредка комп бывает выключен)

# Список абонентов.
# Это массив хэш массивов в котором каждая запись содержит
# данные о абоненте:
# phone — телефон абонента
# name — ФИО абонента
# Также возможно хранение и других данных об абоненте
(
< phone =>’+79111234567′ , name => ‘Петров Петр Петрович’ > ,
< phone =>’+79117654321′ , name => ‘Васильев Василий Васильевич’ >
) ;

рассмотрим test.voice.raw
Для создания данного файла использовался аудиоредактор Audacity как показано на картинках:

image

image

image

image

image

Также привожу дополнительные файлы cc_cause.pl и end_status.pl. Они не используются в представленной версии скрипта, но в случае доработки будут полезны.

В завершение.

Данная версия скрипта голосового оповещения не претендует на полноту и правильность реализации, а является лишь демонстрацией, и для серьезного использования может быть и должна быть усовершенствована. Необходимо добавить более серьезную обработку состояний CEND, реализовать условия повторного дозвона до абонентов, если с первого раза не удалось оповестить. Также можно сделать web интерфейс включающий в себя планировщик задач, редактор списков абонентов, генерацию отчетов и многое другое.

Как загрузить циферблаты на Huawei band 6

Я надеюсь что эта статья окажется востребованной и полезной для Вас, а также постараюсь и впредь выкладывать интересные и полезные статьи.

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
Китай Покупай