Шаблоны Joomla 3 здесь: http://www.joomla3x.ru/joomla3-templates.html

Ubuntu+Asterisk+Huawei 1550=GSM-gate

Автор: GAMER вкл. .

После удачной инсталяции на FreeBSD, пришлось мне делать подобное на Убунте.

Первая проблема возникла тогда, когда я обнаружил, что в модеме не включен голос. (Модем от украинсокого Лайфа). После долгих мучений на торрентах я нашел как его перепрошить. Искать тему, как патчить МТС-кой прошивкой.

Основное руководство к действию взято здесь: http://www.asterisk-pbx.ru/wiki/doku.php/new2

1. Ставим Астериск с исходников. Почему? А потому, что установленый с пакетов не ставит все свои сорсы библиотек, которые нужны будут в последствии. (Если же хочется с репозитариев, то нужно ставить пакеты asterisk и asterisk-dev)

# 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

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

# 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

3. Установка 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

4. Смотрим, видел ли наш модем в системе.

# ls /dev | grep USB
ttyUSB0
ttyUSB1
ttyUSB2

5. Настройка. Канальный модуль 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

6. Проверка.
Проверим состояние модема из командной строки 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 

7. Диалплан.

Для входящих вызовов, 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})

Через некоторое время пользования одним шлюзом захотелось прикрутить еще один модем.

Все делается аналогично.

Но возникла проблема. Хочется переставлять девайсы, менять местами, подключать и т.д. При этом, могут меняться /dev/ttyUSB*.

Подумав над проблемой было принято решение, привязывать СИМку к порту, а не к модем-девайсу.

Решение следующее.

Создаем файл /etc/udev/rules.d/99-huawei.rules

# add symlinks for device based on USB bus address i.e. physical USB slot
ACTION!="add|change", GOTO="device_huawei_end"

 

LABEL="device_huawei_link"
#Left USB-port<----- USB-hub (DLink)

#1 port in HUB
KERNEL=="ttyUSB[0-9]*", ID=="1-5.1:1.0", NAME="%k", SYMLINK+="hw-1-modem", GROUP="root", MODE="0666"
KERNEL=="ttyUSB[0-9]*", ID=="1-5.1:1.1", NAME="%k", SYMLINK+="hw-1-audio", GROUP="root", MODE="0666"
KERNEL=="ttyUSB[0-9]*", ID=="1-5.1:1.2", NAME="%k", SYMLINK+="hw-1-data", GROUP="root", MODE="0666"

#2 port in HUB
KERNEL=="ttyUSB[0-9]*", ID=="1-5.2:1.0", NAME="%k", SYMLINK+="hw-2-modem", GROUP="root", MODE="0666"
KERNEL=="ttyUSB[0-9]*", ID=="1-5.2:1.1", NAME="%k", SYMLINK+="hw-2-audio", GROUP="root", MODE="0666"
KERNEL=="ttyUSB[0-9]*", ID=="1-5.2:1.2", NAME="%k", SYMLINK+="hw-2-data", GROUP="root", MODE="0666"

LABEL="device_huawei_end"

 

ID=="1-5.2:1.0" был узнан с помощью команды

# dmesg | grep usb

[    0.152828] usbcore: registered new interface driver usbfs
[    0.152860] usbcore: registered new interface driver hub
[    0.153002] usbcore: registered new device driver usb
[    1.132182] usb 1-5: new high speed USB device number 2 using ehci_hcd
[    1.540379] usb 1-5.1: new high speed USB device number 3 using ehci_hcd
[    1.716487] usb 1-5.2: new high speed USB device number 4 using ehci_hcd
[    2.577229] usbcore: registered new interface driver usb-storage
[   20.352409] usbcore: registered new interface driver usbserial
[   20.352882] usbcore: registered new interface driver usbserial_generic
[   20.352890] usbserial: USB Serial Driver core
[   20.417927] usb 1-5.1: GSM modem (1-port) converter now attached to ttyUSB0
[   20.426469] usb 1-5.1: GSM modem (1-port) converter now attached to ttyUSB1
[   20.438007] usb 1-5.1: GSM modem (1-port) converter now attached to ttyUSB2
[   20.455436] usb 1-5.2: GSM modem (1-port) converter now attached to ttyUSB3
[   20.464622] usb 1-5.2: GSM modem (1-port) converter now attached to ttyUSB4
[   20.483030] usb 1-5.2: GSM modem (1-port) converter now attached to ttyUSB5
[   20.483269] usbcore: registered new interface driver option

В datacard.conf после этого можно использовать

/devhw-1-audio и /dev/hw-1-data

audio=/dev/hw-1-audio           ; tty for audio connection
data=/dev/hw-1-data             ; tty for AT commands

 

Отключал определение СД-рома другими средствами (Free_Huawei_Modem_Tool).

Внимание!

1. Отключить ввод пин-кода.

2. Отключить определение СД-рома.

3. Подключать в USB-порт без всяких шнурков.

4. Можно ребутнуть убунту для профилактики :).

Проблемы и решения:

1. Переполнение СМС-ками.

SMS storage is full

В консоли астериска чистим хранилище СИМ-карты:

dongle cmd dongle0 AT+CPMS=\"SM\",\"SM\",\"SM\"
dongle cmd dongle0 AT+CMGD=1,4

В консоли астериска чистим dongle-хранилище:

dongle cmd dongle0 AT+CPMS=\"ME\",\"ME\",\"ME\"
dongle cmd dongle0 AT+CMGD=1,4
ngle AT+CPMS=\"ME\",\"ME\",\"ME\"
dongle cmd name_dongle AT+CMGD=1,4