Wstała konieczność skonfigurowania systemu Asterisk do prowadzenia rozmów przez modem 3G. Po krótkim poszukiwaniu znalazłem moduł o nazwie chan_dongle.
Posiadamy system Asterisk 11 na Ubuntu. Modem Huawei E173 (Djuice).
Po pierwsze, należy odblokować funkcję głosu i odblokować modem od kart SIM operatora. Zrobiłem to za pomocą programu dc-unlocker. Program ten przypadł mi do gustu, więc postanowiłem kupić kredyty do odblokowania.
No to zaczynamy.
Pobieramy chan_dongle tutaj lub tutaj.
Rozpakowujemy archiwum i przechodzimy do katalogu:
tar xzvf chan_dongle-1.1.r14.tgzcd chan_dongle-1.1.r14/
Kompilujemy i instalujemy:
aclocal && autoconf && automake -a./configure
make
make install
W systemie Asterisk 11 może wystąpić następujący błąd:
In file included from app.c:21:0: /usr/include/asterisk/version.h:1:2: error: #error «Do not include ‘asterisk/version.h’; use ‘asterisk/ast_version.h’ instead.» app.c: In function ‘app_register’: app.c:162:3: warning: passing argument 2 of ‘ast_register_application2’ from incompatible pointer type [enabled by default] In file included from app.c:20:0: /usr/include/asterisk/module.h:458:5: note: expected ‘int (*)(struct ast_channel *, const char *)’ but argument is of type ‘int (*)(struct ast_channel *, void *)’ make: *** [app.o] Error 1
Rozwiązanie:
1. Pobieramy źródła z łatą
2. Instalujemy autoconf i automake
3. Rozpakowujemy źródła, przechodzimy do ich katalogu i wykonujemy kolejno polecenia: aclocal, autoconf, automake -a
4. Instalujemy chan_dongle w standardowy sposób: ./configure, make, make install
5. Kopiujemy domyślny plik konfiguracyjny z etc/dongle.conf do katalogu z konfiguracją Asteriska.
Na tym instalacja się kończy. Przechodzimy do konfiguracji.
Po pierwsze, sprawdźmy, czy system wykrył nasz modem, wykonując:
ls /dev/ | grep USB
I jeśli widzimy coś w tym stylu:
ttyUSB0 ttyUSB1 ttyUSB2
To znaczy, że wszystko jest w porządk i przechodzimy dalej.
Przechodzimy do katalogu z Asteriskiem i otwieramy plik dongle.conf:
cd /etc/asterisk/vim dongle.conf
Plik powinien wyglądać mniej więcej tak:
[dongle0] audio=/dev/ttyUSB1 data=/dev/ttyUSB2 context=income
Przykład konfiguracji połączeń przychodzących w pliku extensions.conf:
[income] exten => +380XXXXXXXXX,1,Dial(SIP/100) exten => +380XXXXXXXXX,n,hangup
Przykład konfiguracji połączeń wychodzących w pliku extensions.conf:
[out] exten => _X.,1,Dial(dongle/i:XXXXXXXXXXXXX/${EXTEN}) exten => _X.,n,hangup
Gdzie XXXXXXXXXXXXX to numer IMEI modemu, przez który chcesz zadzwonić.
Uwaga: Nigdy nie używaj rozszerzenia _X., ponieważ jest to bardzo niebezpieczne!
To wszystko. Modem i Asterisk są gotowe do prowadzenia rozmów.
