Виникла необхідність налаштувати asterisk для дзвінків через 3g модем. Трохи пошукавши, знайшов модуль під назвою chan_dongle.
Маємо в наявності asterisk 11 на ubuntu. Модем huawei e173 (Djuice).
Для початку потрібно відкрити голос і відучити модем від sim карт оператора. Зробив я це через програму dc-unlocker. Мені ця програма припала до душі, і я вирішив купити кредити для розблокування.
Що ж, почнемо.
Завантажуємо chan_dongle тут або тут.
Розархівовуємо його і заходимо в директорію:
tar xzvf chan_dongle-1.1.r14.tgzcd chan_dongle-1.1.r14/
Компілимо та встановлюємо:
aclocal && autoconf && automake -a./configure
make
make install
На asterisk 11 виникне наступна помилка:
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
Рішення:
1. Завантажуємо вихідний код з патчем
2. Встановлюємо autoconf та automake
3. Розархівовуємо вихідний код, переходимо в його папку і виконуємо одну за одною команди: aclocal, autoconf, automake -a
4. Встановлюємо chan_dongle як зазвичай: ./configure, make, make install
5. Копіюємо дефолтний конфіг з etc/dongle.conf в папку з конфігом астеріска.
На цьому встановлення завершено. Переходимо до конфігурування.
Для початку перевіримо, чи визначився наш модем системою, виконуємо:
ls /dev/ | grep USB
І якщо бачимо щось на кшталт цього:
ttyUSB0 ttyUSB1 ttyUSB2
То значить все ок і йдемо далі.
Переходимо в директорію з asterisk і відкриваємо dongle.conf:
cd /etc/asterisk/vim dongle.conf
Має виглядати приблизно так:
[dongle0] audio=/dev/ttyUSB1 data=/dev/ttyUSB2 context=income
Приклад налаштування вхідних дзвінків у extensions.conf:
[income] exten => +380XXXXXXXXX,1,Dial(SIP/100) exten => +380XXXXXXXXX,n,hangup
Приклад налаштування вихідних дзвінків у extensions.conf:
[out] exten => _X.,1,Dial(dongle/i:XXXXXXXXXXXXX/${EXTEN}) exten => _X.,n,hangup
Де XXXXXXXXXXXXX imei модема, через який хочете зателефонувати.
Note: Ніколи не використовуйте екстеншен _X. оскільки це дуже не безпечно!
Ось і все. Модем і asterisk готові до дзвінків.
