Здравствуйте уважаемый посетитель.
Так как я купил модем Huawei e173 (аналогично работает и с Huawei E1550) и имеется маршрутизатор dir-320, решил выложить инструкцию как установить Asterisk 1.6.2.22 и собрать chan_dongle и chan_datacard для работы с Huawei e173 установленном на роутер dir-320, а также может работать на любых роутерах поддерживающих альтернативную прошивку на архитектуре mipsel, например OpenWRT, DD-WRT и т.д.
В связи с тем, что Asterisk, что устанавливается с репозитория Олега обновлен до последней стабильной версии 1.6.2.22 (огромная благодарность майнтейнерам) и все бинарники, что были ранее выложены хорошими людьми на просторах интернета для подключения Huawei модема к Asterisk в dir-320, на новом Астериск не работали, так как были собраны на более старую версию, пришлось собирать chan_dongle, а заодно и chan_datacard для нового Asterisk.
Инструкция по прошивке, а также ссылка на прошивку с модулями ядра находится по адресу: Прошивка роутера dir-320 прошивкой rtn-r3015M от Олега с ядром 2.6.19, с помощью программы TFTP
Необходимо отключить у модема e173 виртуальный cdrom через программу minicom под Debian Squeeze
Установка minicom осуществляется коммандой:
aptitude install minicom
Запускаем программу: minicom -s
При открытии программы выбираем Настройка последовательного порта
Необходимо изменить Последовательный порт нажав большую букву А (Shift a) и исправив на /dev/ttyUSB0 нажать два раза ENTER
Далее нажимаем на Выход
После этого попадаем в терминал Вашего модема вводим команду:
AT^U2DIAG=256
После этого необходимо нажать CTRL + a и нажимаем Shift + q и выходим с модема.
Отключаем, подключаем модем.
Это основные комманды для модемма:
Только GPRS/EDGE - AT^SYSCFG=13,1,3FFFFFFF,2,4
Только 3G/WCDMA - AT^SYSCFG=14,2,3FFFFFFF,2,4
Предпочитать GPRS/EDGE - AT^SYSCFG=2,1,3FFFFFFF,2,4
Предпочитать 3G/WCDMA - AT^SYSCFG=2,2,3FFFFFFF,2,4
Устройство в режиме только модем - AT^U2DIAG=0
Устройство в режиме модем + CD-ROM - AT^U2DIAG=1
Устройство в режиме модем + CD-ROM + Card Reader - AT^U2DIAG=255 или AT^U2DIAG=276
Устройство в режиме модем + Card Reader - AT^U2DIAG=256
Далее необходимо прошить роутер прошивкой Олега с ядром 2.6, так как Asterisk на ядре 2.4 с модулем chan_dongle и chan_datacard работать не будут.
Из-за своей лени, я не настраиваю все руками, а пользуюсь скриптом (этот скрипт рассчитан на прошивку от Олега) устанавливающим весь основной софт на флешку модема, и затем, то чем не пользуюсь - удаляю.
После прошивки роутера, меняем имя пользователя с admin на root, заходим под пользователем root по telnet и выполняем комманды:
wget http://rung.narod.ru/start chmod +x start ./start
Можно скачать скрипт с этого сайта (но лучше естественно скачивать с оффициального, я тут выложил на всякий случай) он актуален на 20.02.2012 выполнив комманды:
wget http://softnastroy.com/downloads/asterisk/install_all_progs_08.07.2012 -O start chmod +x start ./start
И тут вместо rtorrent устанавливаем transmission: нажимаем - (тире) и нажимаем Enter, после того как rtorrent изменен на transmission начинаем инсталяцию введя команду ! (восклицательный знак) и нажимаем Enter, соглашаемся с форматированием флешки нажав y когда запросит скрипт.
После установки всех программ посредством скрипта устанавливающем основные программы необходимо удалить (если Вы не используете) не нужные программы, в моем случае мне не нужен ни качальщик торентов, ни поддержка веб сервером php, поэтому я удаляю не нужные программы командой:
ipkg remove transmission eaccelerator php-fcgi
Также удаляю скрипты запуска этих пограмм из автозагрузки, что находится по пути /opt/etc/init.d/
Далее устанавливаем на наш маршрутизатор Asterisk 1.6.2.22 командой:
ipkg install asterisk16
Команда выполнит установку Asterisk 1.6.2.22
Настраиваем загрузку модулей Asterisk
В файл /opt/etc/asterisk/modules.conf необходимо вставить этот набор загружаемых модулей, его в процессе работы будете подстраивать под свои нужды:
[modules] autoload=no load => format_pcm.so load => codec_ulaw.so load => codec_alaw.so load => app_dial.so load => app_macro.so load => app_playback.so load => app_setcallerid.so load => app_disa.so load => app_transfer.so load => func_timeout.so load => func_callerid.so load => func_logic.so load => func_strings.so load => pbx_config.so load => pbx_spool.so load => chan_sip.so load => res_musiconhold.so load => func_shell.so load => func_channel.so load => chan_dongle.so load => chan_oss.so
Для настройки автозагрузки Asterisk, необходимо добавить в файл /tmp/local/sbin/post-mount
было:
#!/bin/sh /opt/etc/init.d/rc.unslung start rm /opt/var/run/*.pid
стало:
#!/bin/sh /opt/etc/init.d/rc.unslung start /opt/sbin/asterisk rm /opt/var/run/*.pid
После этого необходимо записать изменения на флешке роутера выполнив такую комманду:
flashfs save && flashfs commit && flashfs enable
Сборка chan_dongle и chan_datacard для работы модема HUAWEI e173
Я собрал два модуля chan_dongle и chan_datacard просто для того, чтобы кто-то кому необходимо, мог скачать любой готовый собранный модуль не городя огород со сборкой.
!!! Использовать нужно только один модуль
Скачать chan_dongle.so собранный для Asterisk 1.6.2.22
Скачать архив с собранным модулем. Содержимое архива: chan_dongle.so, dongle.conf, extensions.conf
Скачать командой из консоли собранный модуль chan_dongle.so:
wget http://softnastroy.com/downloads/asterisk/chan_dongle.so wget http://softnastroy.com/downloads/asterisk/chan_dongle_so.tgz
Скачать chan_datacard.so собранный для Asterisk 1.6.2.22
Скачать архив с собранным модулем. Содержимое архива: chan_datacard.so, datacard.conf, extensions.conf
Скачать командой из консоли собранный модуль chan_datacard:
wget http://softnastroy.com/downloads/asterisk/chan_datacard.so wget http://softnastroy.com/downloads/asterisk/chan_datacard-1.0.r310_so.tgz
Самостоятельная сборка из исходников:
Для сборки chan_dongle и chan_datacard необходимо установить необходимые инструменты и зависимости коммандой:
ipkg install buildroot optware-devel make -force-overwrite
Добавил параметр -force-overwrite из-за того, что у меня не устанавливался buildroot и я не мог сконфигурировать пакет.
Создаем папку в которую мы будем качать и в которой будем проводить конфигурирование и сборку программы:
mkdir -p /opt/usr/src/asterisk/ cd /opt/usr/src/asterisk/
Качаем, распаковываем и переходим в папку с исходниками модуля chan_dongle:
cd /opt/usr/src/asterisk/ wget http://asterisk-chan-dongle.googlecode.com/files/chan_dongle-1.1.r10.tgz tar xvfz chan_dongle-1.1.r10.tgz cd chan_dongle-1.1.r10
Запускаем конфигурирование и сборку и установку модуля chan_dongle:
mkdir -p /opt/local/include ln -s /opt/include/asterisk.h /opt/local/include/ ./configure --target=mipsel-linux --build=mipsel-linux make cp chan_dongle.so /opt/lib/asterisk/modules/ cp etc/dongle.conf /opt/etc/asterisk/
Качаем, распаковываем и переходим в папку с исходниками модуля chan_datacard:
cd /opt/usr/src/asterisk/ wget http://datacard.googlecode.com/files/chan_datacard-1.0.r310.tgz tar xvfz chan_datacard-1.0.r310.tgz cd chan_datacard-1.0.r310
Запускаем конфигурирование и сборку и установку модуля chan_datacard:
mkdir -p /opt/local/include ln -s /opt/include/asterisk.h /opt/local/include/ ./configure --target=mipsel-linux --build=mipsel-linux make cp chan_datacard.so /opt/lib/asterisk/modules/ cp etc/datacard.conf /opt/etc/asterisk/
Коммандой:
ls /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2
мы смотрим видит или не видит Linux роутер DIR-320 наш модем HUAWEY E173.
В файл /etc/asterisk/dongle.conf необходимо добавить настройки для нашего модема
было:
[dongle0] audio=/dev/ttyUSB1 ; tty port for audio connection; no default value data=/dev/ttyUSB2 ; tty port for AT commands; no default value ; or you can omit both audio and data together and use imei=123456789012345 and/or imsi=123456789012345 ; imei and imsi must contain exactly 15 digits ! ; imei/imsi discovery is available on Linux only imei=123456789012345 imsi=123456789012345 ; if audio and data set together with imei and/or imsi audio and data has precedence ; you can use both imei and imsi together in this case exact match by imei and imsi required
стало:
;[dongle0] ;audio=/dev/ttyUSB1 ; tty port for audio connection; no default value ;data=/dev/ttyUSB2 ; tty port for AT commands; no default value ; or you can omit both audio and data together and use imei=123456789012345 and/or imsi=123456789012345 ; imei and imsi must contain exactly 15 digits ! ; imei/imsi discovery is available on Linux only ;imei=123456789012345 ;imsi=123456789012345 ; if audio and data set together with imei and/or imsi audio and data has precedence ; you can use both imei and imsi together in this case exact match by imei and imsi required [dongle0] 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
Для модуля chan_datacard отличие от chan_dongle в конфигурационном файле /etc/asterisk/datacard.conf только в [dongle0] который нужно изменить на [datacard0]
После установки запускаем консоль командой:
rasterisk
И выполняем в консоли две комманды:
module reload dongle show devices
module reload - тут мы перегрузили установленные модули.
dongle show devices - этой командой мы смотрим видит ли модуль наш модем. Вот мой вывод этой комманды:
(none)*CLI> dongle show devices ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number dongle0 1 Free 21 3 3 life:) E173 11.126.85.00.209 874965201353496 248063553293180 Unknown
Инструкция по установке и настройке Asterisk, chan_dongle, chan_datacard в роутере dir-320 c прошивкой Олега (работает на любой прошивке поддерживающей optware) закончена. Теперь необходимо только настраивать наш VOIP сервер на Asterisk.
P.S. Если на новой прошивке при подключении модема Huawei, он не определяется в системе, не появляется /dev/ttyUSB* добавьте в файл /usr/local/sbin/post-mount:
vi /tmp/local/sbin/pre-mount #!/bin/sh swapon -a
kernel="$(uname -r)" kernel=${kernel:0:3} if [ "$kernel" = "2.4" ]; then acm_mod="acm" else acm_mod="cdc-acm" fi usbserial="$(lsmod | grep usbserial)" acm="$(lsmod | grep $acm_mod)" option="$(lsmod | grep option)" [ -z "$usbserial" ] && insmod usbserial; [ -z "$acm" ] && insmod $acm_mod; [ -z "$option" ] && insmod option;
Сохраняем все изменения в энергонезависимой памяти выполнив команду:
P.S.
У меня с моим модемом Huawei e173 не заладилась совместная жизнь, потому поменял на Huawei e1550. После установки на флешку софта, сама флешка за ночь такое ощущение перемонтировалась самостоятельно по 8-10 раз. И каждое перемонтирование создавало новую точку монтирования. Отчего весь софт установленный на флешку переставал работать. Модем покупал на aukro и продавец модема согласился на обмен на Huawei e1550 с доплатой разницы, за что ему огромное спасибо. С новым модемом никаких проблем, все определяется и работает безотказно. Может конечно проблема в самом модеме либо в прошивке, но у меня получилось обменять и я рад, что не пришлось мучиться с его прошивкой.
Add new comment