Показать сообщение отдельно
  #46   Пожаловаться на это сообщение  
Старый 29-07-2011, 19:24
elected elected вне форума
Member
 
Регистрация: May 2009
Адрес: Москва
Сообщения: 61
Отправить сообщение для  elected с помощью ICQ
SIP-GSM шлюз из RT-N16 на прошивке энтузиастов (Инструкция)

Эта инструкция предназначена для тех, кто знает что такое asterisk и умеет хоть немного его администрировать


Итак делаем из RT-N16 шлюз GSM-SIP с 3G модемом Huawei E1550
(подойдут и другие модемы) E173, E169, K3520, K3715, K3765

Заведомо рабочие прошивки модема E 1550 (firmware - не путать с dashboard):
МТС 11.608.12.00.143
11.608.14.15.311 ссылка на прошивку http://depositfiles.com/ru/files/sz0ljt8q4

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


прошивку роутера берем от энтузиастов с ядром 2.6.22

Итак приступим:
1. Покупка модема модема Huawei E1550 (МТС) c прошивкой 11.608.12.00.143
2. Разлочка код разлочки генерируем тут (подставляем IMEI модема получаем код разлочки) http://a-zgsm.com/huawei.php
3. Программу для разлочки прикладываю Unlock.exe http://www.asteriskforum.ru/download...489a1405bebedb
4. В Windows запускаем терминал (Гиперерминал) (Модем должен быть отключён от интернета)
5. Выставьте COM порт (Huawei Mobile Connect 3G Modem)
6. Нажимаем "Connect"
7. В нижней строке прописываем команду AT и нажимаем
ENTER в ответ модем должен написать "OK"
8. Теперь вводим команду:AT^U2DIAG=0 (девайс в режиме только модем)
9. Отсоединяем модем и снова подсоединяем
10 Установка Asterisk 1.6 из репозитория
Код:

Код:
ipkg update
ipkg install asterisk16
установка chan_datacard из исходников (для версии asterisk 1.8 возможно нужно будет взять пропатченную версию chan_datacard http://iqlab.ru/downloads/chan_datacard-175-1.8.zip)

Код:
svn co http://www.makhutov.org/svn/chan_datacard/trunk/ chan_datacard
cd ~/chan_datacard/
./configure
make
копируем получившийся файл chan_datacard.so в /opt/lib/asterisk

если нет компилятора просто берем готовую библиотеку отсюда:
http://iqlab.ru/downloads/chan_datacard.so и копируем ее в в /opt/lib/asterisk

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

Код:
ls /dev | grep USB
ttyUSB0
ttyUSB1
ttyUSB2
Если Модем не определяется в системе
добавьте в файл /usr/local/sbin/post-mount
Код:
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;
перегрузите роутер снова проверьте определился ли модем в системе
Код:
ls /dev | grep USB
ttyUSB0
ttyUSB1
ttyUSB2
Если модем определился продолжаем!
В файл /opt/etc/asterisk/modules.conf добавляем:
Код:
noload => res_timing_timerfd.so
noload => res_timing_pthread.so
noload => chan_iax2.so

редактируем /opt/etc/asterisk/datacard.conf
Код:
[datacard0]

context=datacard-incoming   ; context for incoming calls
audio=/dev/ttyUSB1      ; tty port for audio connection
data=/dev/ttyUSB2      ; tty port for AT commands
group=1            ; calling group
rxgain=3         ; increase the incoming volume
txgain=-4         ; 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
disablesms=yes         ; chan_datacard has currently a bug with SMS reception. When a SMS gets in during a
            ; call chan_datacard might crash. Enable this option to disable sms reception.
            ; Default = no
перезапускаем asterisk и заходим в консоль asterisk

Код:
# killall asterisk 
# /opt/sbin/asterisk
# /opt/sbin/asterisk -r
Проверим состояние модема из консоли Asterisk (CLI).
Код:
boxer*CLI> datacard show devices
ID           Group State      RSSI Mode Submode Provider Name  Model      Firmware          IMEI             IMSI             Number       
datacard0    1     Free       24   3    3       MTS RUS        E1550      11.608.12.00.143  35296XXXXXXXXXX  25001XXXXXXXXXX  +7916XXXXXXX
boxer*CLI>
Если ответ у Вас похожий - это значит что библиотека заработала и asterisk увидел модем, если нет возвращаемся и ищем в чем проблема.

Далее настройка Asterisk
Для входящих вызовов, sms и ussd запросов настроим /opt/etc/asterisk/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/datacard0/${EXTEN})
применяем изменения из консоли asterisk

Код:
[admin@RT-16N root]$ /opt/sbin/asterisk -r
Connected to Asterisk 1.6.2.13 currently running on RT-16N (pid = 606)
Verbosity is at least 5
RT-16N*CLI> reload
запуск asterisk автоматом при загрузке роутера
добавьте в конец файла /usr/local/sbin/post-mount
Код:
/opt/sbin/asterisk
p.s. Модем должен быть подключен напрямую без хаба и удлиннителей !!!!


Проверяем все должно работать. Задавайте вопросы в этой ветке, по мере возможности буду отвечать
__________________
http://www.iqlab.ru

Последний раз редактировалось elected, 31-07-2011 в 09:55.
Ответить с цитированием
  #46   Пожаловаться на это сообщение  
Старый 29-07-2011, 19:24
AsusForum elected вне форума
Member
 
Регистрация: Nov 2003
Адрес: Netherlands
Сообщения: 61