Asterisk & Huawei E1550 (VoIP GSM Gate)

Захотелось на досуге завести VoIP – GSM шлюз, дабы экономить на звонках на сотовые и иметь возможность переключать на сотовые входящие звонки.

После прочтения интернетов выяснилось, что 100% рабочий вариант это модем Huawei E1550. Под теми же циферками продающийся операторами большой тройки. Желательно иметь модем от МТС, т.к. на нем не заблокированы голосовые функции, но после выполнения квеста по поиску в радиусе 1 км от офиса, модем нашелся только в Мегафоне, где и был куплен.

После чего началось…
Проблема №1: Модем залочен по самое немогу. На активацию голоса были потрачены еще 4 Euro через сайт dc-unlocker, есть и бесплатные способы (заливка прошивки от МТС, прекрасно заливается после патча патча, заливка прошивки от E1553), но мне больше по душе было однокнопочное решение, а 170 рублей не такие большие деньги. После чего модем был подцеплен к астериску и выяснилась
Проблема №2: звонки проходят, а голоса нет. Вдумчивое вчитывание показало, что это косяк пошивки 11.608.12.10.209 и лечется он перешивкой на 11.608.14.15.311. Для перепрошивки потребовалось:
1. Прошивка
2. Калькулятор анлок-кодов
В калькулятор скармливаем IMEI модема (написан на коробке или модеме или в прошиваторе или dc-unlocker client) получаем два кода, нас сейчас интересует flashcode. Именно его и попросит ввести прошиватор.
После проделанных действий модем готов к работе и можно переходить к настройке asterisk

Версия ядра должна быть старше 2.6.33, поэтому я не особо размышляя поставил 2.6.35-23-generic-pae из бэкпортов для ubuntu-server 10.04LTS
так же потребуется пакет usb-modeswitch для работы модем и build-essential для сборки модуля канала chan_datacard

После установки usb-modeswitch можно воткнуть модем и посмотреть, что получилось:
$ ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 2011-04-21 19:08 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 2011-04-21 19:08 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 0 2011-04-21 19:08 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 0 2011-04-21 19:08 /dev/ttyUSB3

Это все порты модема, нам потребуются только ttyUSB2 и ttyUSB3, это audio и data-порты. С помощью udev их можно привести в более понятный вид, но об этом потом.

Далее в программе сборка модуля канала для астериска. Проста как три копейки: выкачиваем свежую ревизию http://code.google.com/p/datacard/
в моем случае это была r310
tar xfv chan_datacard-1.0.r310.tgz
cd chan_datacard-1.0.r310
./configure
make && make install

я знаю, что систему захламлять не хорошо, это не слака, но возиться с сборкой DEB-пакета ради одного файла это чересчур. Если потребуется удалить make install копирует только /usr/lib/asterisk/modules/chan_datacard.so
после чего копируем файл настроек etc/datacard.conf астериску и начинаем настройку
я поменял только контекст, язык и порты:

[general]
context=gsm
language=ru
group=0
[datacard0]
audio=/dev/ttyUSB2
data=/dev/ttyUSB3

после чего перезагружаем астериск и заходим в консоль:
$ sudo asterisk -r
и смотрим на устройство:
my*CLI> datacard show devices
ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number
datacard0 0 Free 30 3 3 MegaFon E1550 11.608.14.15.311 XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX Unknown

Если устройсво не появилось – 90% что перепутаны порты.

Как звонить:
Звонки приходят на экстеншен s контекста gsm, а звонить как с dahdi:
Dial(Datacard/g0/+71234567890);
где g0 – группа 0 и режим распределения линий (может быть gGrR – подбробнее в описании chan_dahdi.conf)

В следующей серии: адекватные называния портов через UDEV и что-нибудь еще

 

 

 

 

 

 

 

 

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

:!: Голосовой модуль по умолчанию активирован только в модемах МТС. :!:
Рекомендованное ядро Linux 2.6.33+
Asterisk 1.6.+
USB 2.0

Заведомо рабочие прошивки (firmware – не путать с dashboard):
МТС 11.608.12.00.143
11.608.14.15.311

Нерабочая firmware:
Мегафон 11.608.12.10.209 -при активированном голосе из под винды звонит, из под Linux – нет.

Активировать голосовую функцию можно программой DC-UNLOCKER за 4 кредита – 4 евро.

набор утилит для активации голоса

Установка 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=3			; increase the incoming volume
txgain=3			; 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).
Перегрузить 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 ${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()

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

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

Отключение функций 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 &c1 E1 Q0                                             
OK
AT^U2DIAG=0
OK

Выходим Ctrl-A Q

AT^U2DIAG=0 (девайс в режиме только модем)
AT^U2DIAG=1 (девайс в режиме модем + CD-ROM)
AT^U2DIAG=255 (девайс в режиме модем + CD-ROM + Card Reader)
AT^U2DIAG=256 (девайс в режиме модем + Card Reader)
AT^CARDLOCK=«NCK-code» (разблокировка модема)
Ещё команды:

AT команды USB модемов HUAWEI

https://wiki.archlinux.org/index.php/Huawei_E1550_3G_modem

 

 

 

 

 

 

 

GSM-шлюз для Asterisk-чайников

 

IP Телефония • Asterisk • GSM

GSM шлюз своими руками

Загружаю в привод диск — буду ставить Asterisk.
Знаний ноль, а файлов много. Где коллеги? Где подмога?
На словах так все спецы, в деле ж малые птенцы.
Каждый до трепни охоч. Нет чтоб чайнику помочь.

Навеяно иронической цитатой «На словах ты Лев Толстой, а на деле хрен пустой».

Все проблемы в жизни от экономии. Хочешь подешевле телефонную станцию с громадными возможностями? Asterisk. Хочешь дешевый gsm-шлюз? Покупай комплект МТС Коннект: Huawei E1550 (он поддерживает голос) за 890 рублей (300 рублей уже на счёте). Хочешь подешевле настроить?… В общем, ничтоже сумняшеся я ввязалась в авантюру, являясь полным чайником во всём, что касается вышеозначенного предмета. Поправляйте, если что не так.

Тут надо сразу взять на заметку: если вы хотите что попроще, т.е. CD (качается сразу образ диска, который потом надо записать на болванку) с Астериском, красивым графическим веб-интерфейсом, дополнительными приложениями — ставьте Trixbox, AsteriskNow, Elastix, DRUID. Новичок может быстро установить Линукс со всем хозяйством с такого CD, но сразу предупреждаю, что все они на Линуксе CentOS 5.x, т.е. бесплатном аналоге RHEL (Red Hat Enterprise Linux). Нет, вполне хороший Линукс, учитывая, что Avaya работает тоже под RHEL. Но в этих Линуксах старое ядро kernel 2.6.18 (разные модификации), а новое оборудование обычно поддерживается уже в новых ядрах. В результате готовые .iso при одновременном упрощении реализации задач стандартных усложняют реализацию задач нетривиальных.

Почти халявный E1550 имеет встроенный разъем для microSD ёмкостью до 8 Гб. В Windows сей девайс определяется как CD-ROM, на котором имеются драйвера для модема, плюс Mass Storage, т.е. потенциальная флешка, если вы купите microSD. После установки дровишек благополучно начинает работать и сам модем, получивший у меня соm-port 5.

Но что же делать c Asterisk-ом, который крутится под Linux? E1550 поддерживается начиная с kernel 2.6.24 (не факт, что точная информация). Поэтому в CentOS девайс работает не так как надо. Он определяется, как и в Windows, в виде CD-ROM + Mass Storage. Есть утилита usb_modeswitch, которая помогает переключить разные usb-устройства в режим модема. Появлялись ttyUSB0 и ttyUSB1, но потом и они пропадали после вытаскивания и вставки E1550. Сам модем имеет Product ID 1446. В реальности с этим кодом что-то он не хочет работать, а надо его представлять как E220 — это более ранняя модель с кодом 1003.

Зачем мне такие заморочки? Две недели я уже в астрале, хотя не без пользы: учу команды Linux. Польза ли это — отдельный вопрос. Лучше активный отдых и натуральные, а не виртуальные занятия.
Обновлять ядро в CentOS — никто не гарантирует стабильность системы, могут быть проблемы с качеством голоса. В итоге, начав читать книги по Астериску, я решила, что надо всё-таки конфиги писать ручками, а ставить Ubuntu 9.10 — там ядро kernel 2.6.31 и E1550 должен заработать как модем (usb serial) без дополнительных телодвижений. Кроме того, в этой версии Ubuntu можно качать Asterisk из репозиториев. Я думаю, что надо ещё поставить и веб-морду FreePBХ.

Далее, что ещё нужно для совершения звонков через usb-модем? Во-первых, чтобы голос поддерживался модемом, во-вторых, чтобы эта возможность не была закрыта программно, в-третьих, модуль канала для Asterisk-а. Операторы продают модемы, залоченные под свои сим-карты. Проверить, не закрыт ли голос, можно утилитой, о которой написано здесь. В статье читаем о модуле канала chan_datacard. Для разных протоколов нужны свои модули каналов. Так, для GSM-вызовов есть chan_sebi, который работает с версией Asterisk 1.4.х, а для Asterisk версии 1.6.x нужен chan_datacard, который к тому же поддерживает передачу DTMF, т.е. можно донабирать внутренний номер после прослушивания приветствия. Но недостатки есть. Пока не реализован функционал call-waiting и еще всяко-разно. А что вы хотели? Обычно GSM-шлюзы стоят больших денег. Буду пытаться настроить. Посмотрим, что получится.

Первые впечатления от Астериска: понравились контексты (context), который позволяют, например, реализовать классы запретов типа авайских COR (Class of Restriction).

Естественно, что сим-карта будет другая — анлим МТС, т.к. по симке из комплекта звонить невыгодно.
Из Ubuntu 9.10 делаем Ubuntu + Asterisk 1.6.2 + chan_datacard + FreePBX

Используется дистрибутив Ubuntu 9.10 desktop. Кроме номера версии у дистрибутивов Ubuntu есть «кодовые названия», в которых фигурируют те или иные представители фауны. Так версия 9.10 имеет название Karmik Koala («кармический» сумчатый медведь). У серверной версии Ubuntu другое ядро, о других версиях и их отличиях можно почитать здесь.

Моя основная операционная система Windows XP. Ubuntu я поставлю не на VMWare Workstation, как в статье, а на бесплатную виртуальную машину Sun Virtualbox. Сразу замечу, что апдейты, софт качаются быстрее, чем из Elastix, DRUID — видимо, адреса репозиториев российские (большое зеркало на Яндексе), доступ к которым быстрее (потом посмотрю файлы конфигов с адресами). При первоначальной установке операционной системы на виртуальную машину я в качестве привода CD/DVD-ROM указываю файл ISO-образа ubuntu-9.10-desktop-i386.iso. По умолчанию в свойствах виртуальной машины в сетевых установках NAT. Да, в интернет мы попадём. Но из реальной ОС виртуалка не пингуется, т.к. там другие адреса. Я указала вместо NAT Тип подключения — Сетевой мост, имя — мой сетевой адаптер Realtek (там название модели видно полностью), встроенный в материнскую плату Asus P5B. Я получила при подключении IP-адрес 192.168.1.5, в то время как IP-адрес в моей реальной ОС 192.168.1.3. Виртуалка пингуется, это нам будет нужно, чтобы скопировать образ iso из основнок ОС Windows XP в гостевую ОС Ubuntu 9.10. Пока не касаюсь вопроса задания статического IP-адреса.

Автоматически грузится графическая среда Gnome с рабочим столом оранжевого окраса. Модификация Kubuntu работает с графической средой KDE, Xubuntu — с Xfce, Fluxbyuntu — с Fluxbox. При установке Ubuntu запрашивается имя пользователя и пароль, т.е. изначально предусматривается, что безопаснее работать не от root-а. Когда в дальнейшем мы заходим в Ubuntu, мы находимся под учетной записью созданного при инсталляции пользователя.

Правой кнопкой Ctrl можно переключаться из Virtualbox в свою основную операционную систему. Мы хотим использовать общий буфер обмена с основной ОС, автоматический захват экрана при движении мышкой, правильное разрешение. В свойствах виртуальной Ubuntu Общие>Дополнительно уже указан двунаправленный двухсторонний буфер обмена, но этого недостаточно.
В гостевой ОС Ubuntu идём в меню Система>Менеджер пакетов Synaptic (запросит наш пароль) и ищем virtualbox-ose-guest-utils. Чтоб долго по списку не искать, можно ввести слово guest в поисковом окошке. Правой кнопкой отмечаем, что хотим отметить этот пакет для установки. Выскочит предупреждение, что надо загрузить ещё 2 зависимых пакета. Соглашаемся. Наш пакет будет выделен коричневым, а два дополнительных virtualbox-ose-guest-source и vitrualbox-ose-guest-x11 — зелёным. Жмём Применить. Пакеты закачиваются и устанавливаются. У меня еще поставились gdm-guest-session и indicator-session. В правом верхнем углу Ubuntu ждем на кнопку выключения, из меню выбираем Перезагрузить. После перезагрузки начинает работать общий буфер обмена с моей основной операционной системой Windows XP. Плюс экран Ubuntu увеличился, т.е. увеличилось разрешение. Я зашла в терминалку (о терминале ниже), там стала рутом, вот такой текст работы из Терминала я скопировала мышкой (в первый раз я ввела пароль неправильно):

ann@ann-desktop:~$ sudo bash
[sudo] password for ann:
Sorry, try again.
[sudo] password for ann:
root@ann-desktop:~#

Всё работает. На всякий пожарный делаем снимок Машина>Сделать снимок. Теперь можно дальше баловаться: если чего напортачим — вернёмся в исходное состояние. Можно делать резервные снимки после разных действий.

Примечание: при работе в гостевой ОС Windows для работы буфера обмена с основной ОС жмем Ctrl, в верхнем меню Устройства>Установить дополнения гостевой ОС, ждём появления инсталлятора дополнений, соглашаемся установить их.

Если хотим выполнять команды, идём Приложения> Стандартные> Терминал. Хотим поставить ssh-сервер, введя apt-get install ssh, но получаем сообщение, что нет доступа. Тогда вводим sudo bash и тот же самый пароль, который вводили при инсталляции для нашего имени. Так мы на время сеанса в терминале начинаем работать от root-а. Если надо только одну команду выполнить от root-а, тогда пишем sudo , потом вводим пароль.Теперь закачиваем ssh без проблем. Узнаем свой ip-адрес командой ip ad, которую необязательно вводить от root-a:

ann@ann-desktop:~$ ip ad
1: lo: mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 08:00:27:3e:0f:ce brd ff:ff:ff:ff:ff:ff
inet 192.168.1.5/24 brd 192.168.1.255 scope global eth0
inet6 fe80::a00:27ff:fe3e:fce/64 scope link
valid_lft forever preferred_lft forever
ann@ann-desktop:~$

1 вариант. Ставим Asterisk, chan_datacard, FreePBX на гостевую/основную ОС Ubuntu

Это вариант для изучения на своём компьютере под Windows XP работы Asterisk из под гостевой ОС Ubuntu. Для работы USB в гостевой ОС Ubuntu надо в Virtualbox в свойствах виртуальной машины во вкладке USB оставить 2 галочки Включить контроллер USB и Включить контроллер USB 2.0 (ECHI) и добавить пустой фильтр (можно клавишей Ins), он будет называться Новый фильтр 1. После подключения E1550 в разъём USB согласиться с установкой Windows-драйверов USB для Virtualbox.

Вариант установки Asterisk из репозитория Ubuntu (можно пропустить)

В Ubuntu 9.10 можно установить Asterisk пакеты dahdi (для распознавания плат) сразу из репозитория, не скачивая предварительно исходники (но нам такой метод не подходит, почему — поясню ниже).

# aptitude update
# aptitude safe-upgrade
# aptitude install mc htop libpri1.4 dahdi asterisk asterisk-config asterisk-mp3 asterisk-mysql asterisk-sounds-main asterisk-sounds-extra

Насчёт второго пункта я сомневаюсь, там закачивать где-то 164Мб, достаточно много. Последний пункт, т.е. сам Asterisk с дополнениями, всего около 22Мб.

Asterisk поставился, но при попытке входа в командную строку Asterisk CLI (command line interface) не под root-ом вываливаются ошибки. Поэтому сначала sudo bash, потом уже входим в Asterisk CLI. Выйти из CLI клавишами Ctrl+C.

root@ann-desktop:~/chan_datacard# asterisk -r
Asterisk 1.6.2.0~rc2-0ubuntu1.2, Copyright (C) 1999 – 2009 Digium, Inc. and others.
Created by Mark Spencer
Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type ‘core show license’ for details.
==============================================================================
This package has been modified for the Ubuntu distribution. Please report
all bugs to https://bugs.edge.launchpad.net/ubuntu/+source/asterisk/+filebug
==============================================================================
Connected to Asterisk 1.6.2.0~rc2-0ubuntu1.2 currently running on ann-desktop (pid = 7200)

Внимание!!! Из репозитория Ubuntu сейчас ставится версия Asterisk 1.6.2 rc2, которая не работает с модулем chan_datacard: при установке модуля посыпется куча ошибок! В репозитории версии более старые, на данный момент там , а надо rc6 и выше. На день написания этой статьи версия Asterisk 1.6.2.1 от 14 января 2010 — последняя. Поэтому ставим Астериск из исходников.

Установка с родного сайта Asterisk.org из исходников .tar.gz
Качаем исходник, разархивируем его, заходим в его папку, ставим недостающие пакеты (subversion для svn при закачке модуля канала), необходимые для инсталляции, конфигурируем, устанавливаем сам Астериск и примеры конфигурационных файлов.

# wget http://downloads.asterisk.org/pub/telephhttp://downloads.asterisk.org/pub/teleph … 2.1.tar.gz
# tar xf asterisk-1.6.2.1.tar.gz
# cd asterisk-1.6.2.1
# apt-get install g++ libncurses-dev libxml2-dev subversion
# ./configure
# make install
# make config
# make samples

По необходимости добавляем asterisk-addons, звуковые файлы, модули каналов.

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

Нас интересует модуль канала для usb-модемов Huawei, качаем его, заходим в папку и устанавливаем. Файл datacard.conf копируем в каталог /etc/asterisk

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

После изменения перегрузить астериск /etc/init.d/asterisk restart. Заходим в Asterisk CLI командой asterisk -r и видим:

Connected to Asterisk 1.6.2.1 currently running on ann-desktop (pid = 2143)
[Jan 25 02:58:49] WARNING[2156]: chan_datacard.c:1351 opentty: Unable to open ‘/dev/ttyUSB5′
[Jan 25 02:58:49] WARNING[2156]: chan_datacard.c:1351 opentty: Unable to open ‘/dev/ttyUSB2′
[Jan 25 02:59:04] WARNING[2156]: chan_datacard.c:1351 opentty: Unable to open ‘/dev/ttyUSB5′
[Jan 25 02:59:04] WARNING[2156]: chan_datacard.c:1351 opentty: Unable to open ‘/dev/ttyUSB2′

Такие ошибки валятся, потому что в datacard.conf прописано два datacard (датакард— это наш E1550) Huawei: в первом ttyUSB1 для аудио (audio), ttyUSB2 для данных (data), во втором ttyUSB4 для аудио и ttyUSB5 для данных. Опрашиваются data каждые 15 секунд. Действительно, сейчас нет никаких вставленных модемов, поэтому datacard show devices покажет:

ann-desktop*CLI> datacard show devices
ID Group Connected State Voice SMS RSSI Mode Submode Provider Name Manufacturer Model Firmware IMEI
datacard1 2 No None No No 0 0 0
datacard0 1 No None No No 0 0 0

Попробуем вставить E1550. Не забываем, что при работе в гостевой Ubuntu из виртуальной машины Virtualbox надо включить поддержку USB и согласиться с установкой драйверов.

Т.к. в datacard.conf прописанные порты фиксированные, т.е. как пропишете, там и будут искать модем, нам надо решить проблему с перескакивающими портами ttyUSB при вытаскивании флешки. Проблема из-за того, что есть виртуальный CD-ROM в E1550. Ставим программу minicom для управления модемом. Она, например, нашла мой модем аж на tty8, плюс у меня дата неправильная в Ubuntu.

AT^U2DIAG=0 выключить CD.
AT^U2DIAG=1 включить CD
AT^U2DIAG=256 оставляем модем и флешку???
AT^U2DIAG=255 задействовать все устройства, т.е. CD-ROM, модем и флешку.

#apt-get install minicom
#minicom
Добро пожаловать в minicom 2.3

ПАРАМЕТРЫ: I18n
Дата Sep 25 2009, 23:40:20.
Port /dev/tty8

Для подсказки жмём на клавиатуре одновременно Ctrl+A, а затем Z. Клавишей Enter выходим из подсказки. Из самого minicom выходим так: одновременно жмём Ctrl+A, а затем Q.

Добро+——————————————————————-+
| Список команд minicom |
ПАРАМ| |
Дата | Команды могут быть вызваны нажатием CTRL-A |
Port | |
| Основные функции Прочие функции |
| |
| Телефонная книга…D Запустить скрипт…G | Очистить экран…..C |
| Отправить файлы….S Принять файлы……R | Конфигурация…….O |
| Параметры порта….P Добавлять LF…….A | Приостановить……J |
| Захват вкл/выкл….L Повесить трубку….H | Выход и сброс……X |
| Отправить break….F Инициализировать…M | Выход без сброса…Q |
| Настр. терминала…T Запустить Kermit…K | Режим курсора……I |
| Перенос вкл/выкл…W Местное эхо вк/вык.E | Экран подсказки….Z |
| Вставить файл……Y | Cкроллинг назад….B |
| |
| Выберите функцию или нажмите Enter для выхода |
| |
| Автор – Miquel van Smoorenburg 1991-1995 |
| Некоторые добавления – Jukka Lahtinen 1997-2000 |
| Интернационализация – Arnaldo Carvalho de Melo 1998

Полную помощь по minicom можно получить не входя в программу, а введя man minicom.

На сим-карте должны быть выключены проверка pin-кода и call waiting. Поддерживаются звонки, передача SMS-ок, приём и посылка CUSD-команд.

Установка FreePBX

Тут….

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

Все лишние модули можно не загружать, прописав для них в файле modules.conf правило noload. Входящие и исходящие вызовы настраиваются в extensions.conf по рекомендации файла README из папки chan_datacard и под собственные нужны, sip настраивать в sip.conf, а канальный модуль Huawei в datacard.conf.

# cat /etc/asterisk/modules.conf
# cat /etc/asterisk/extensions.conf
# cat /etc/asterisk/sip.conf
# cat /etc/asterisk/datacard.conf

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

Рекомендации README для extensions.conf:

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

exten => cusd,1,Verbose(Incoming CUSD: ${CUSDTXT})
exten => cusd,n,System(echo ‘${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} – ${CHANNEL}: ${CUSDTXT}’ >> /var/log/asterisk/cusd.txt)
exten => cusd,n,Hangup()

exten => s,1,Dial(SIP/2001@othersipserver)
exten => s,n,Hangup()

[othersipserver-incoming]
exten => _X.,1,Dial(Datacard/r1/${EXTEN})
exten => _X.,n,Hangup

можно также использовать
exten => _X.,1,Dial(Datacard/g1/${EXTEN})
или
exten => _X.,1,Dial(Datacard/datacard0/${EXTEN})

2 вариант. Интегрируем Asterisk, chan_datacard, FreePBX в дистрибутив Ubuntu

Это вариант для создания образа диска Ubuntu с уже интегрированным Asterisk-ом и дополнениями. Пригодится, чтобы ставить систему на отдельный сервер или компьютер, выделяемый организацией для Asterisk-a или сделать загрузочную флешку сразу с рабочей системой. При установке Ubuntu не надо будет каждый раз качать из сетки Asterisk, FreePBX и прочее.

На свою основную ОС Windows XP ставим WinSCP — бесплатный графический SFTP, FTP и SCP клиент. Кстати, для обновления прошивок Avaya тоже можно его использовать. Копируем из основной ОС Windows XP в гостевую ОС Ubuntu образ ubuntu-9.10-desktop-i386.iso.

Командой apt-get install uck ставим UCK — пакет для изменения дистрибутивов Ubuntu, Kubuntu и пр. После установки он доступен в Ubuntu из меню Приложения> Системные утилиты> Ubuntu Customization Kit. GSM шлюз

Leave a Reply