Results 31 to 45 of 276

Thread: SIP-GSM шлюз на роутере (asterisk+chan-datacard/dongle/gtalk)

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Post SIP-GSM шлюз на роутере (asterisk+chan-datacard/dongle/gtalk)

    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 из репозитория

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

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

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

    или
    для asterisk 1.6.2.22

    (аналог chan_datacard c расширенным функционалом)
    http://code.google.com/p/asterisk-chan-dongle/
    ссылка на готовый скомпилированный модуль
    http://iqlab.ru/downloads/chan_dongle.so

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

    Code:
    ls /dev | grep USB
    ttyUSB0
    ttyUSB1
    ttyUSB2
    Если Модем не определяется в системе
    добавьте в файл /usr/local/sbin/post-mount

    Code:
    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;
    перегрузите роутер снова проверьте определился ли модем в системе

    Code:
    ls /dev | grep USB
    ttyUSB0
    ttyUSB1
    ttyUSB2
    Если модем определился продолжаем! В файл /opt/etc/asterisk/modules.conf добавляем:

    Code:
    noload => res_timing_timerfd.so
    noload => res_timing_pthread.so
    noload => chan_iax2.so
    редактируем /opt/etc/asterisk/datacard.conf

    Code:
    [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

    Code:
    # killall asterisk 
    # /opt/sbin/asterisk
    # /opt/sbin/asterisk -r
    Проверим состояние модема из консоли Asterisk (CLI)

    Code:
    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:

    Code:
    [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()
    Для исходящей связи

    Code:
    exten => _X.,1,Dial(Datacard/datacard0/${EXTEN})
    применяем изменения из консоли asterisk

    Code:
    [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

    Code:
    /opt/sbin/asterisk
    p.s. Модем должен быть подключен напрямую без хаба и удлиннителей !!!!

    Проверяем все должно работать. Задавайте вопросы в этой ветке, по мере возможности буду отвечать
    Last edited by elected; 27-02-2012 at 12:32. Reason: fixed

Similar Threads

  1. Установка и настройка asterisk на роутере
    By ptabashov in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 247
    Last Post: 04-11-2021, 08:59
  2. Asus WL-500g Premium и шлюз
    By Grig_oriy in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 106
    Last Post: 15-05-2012, 20:43
  3. Asterisk 1.6.0.1-1 IPK gesucht
    By schufti in forum German Discussion - Deutsch (DE)
    Replies: 4
    Last Post: 31-01-2010, 15:03
  4. Asterisk
    By Alex9er in forum WL-700g Firmware Discussion
    Replies: 1
    Last Post: 26-09-2007, 18:43

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •