Crmgo Блог

Asterisk, телефонуємо через модем huawei e173

Asterisk, телефонуємо через модем huawei e173

Винikла необхідність налаштувати asterisk для дзвінків через 3g модем. Трохи пошукавши, знайшов модуль під назвою chan_dongle. Маємо в наявності asterisk 11 на ubuntu. Модем huawei e173 (Djuice). Для початку потрібно відкрити голос і відучити модем від sim карт оператора. Зробив…

Asterisk, телефонуємо через модем huawei e173

Виникла необхідність налаштувати asterisk для дзвінків через 3g модем. Трохи пошукавши, знайшов модуль під назвою chan_dongle.

Маємо в наявності asterisk 11 на ubuntu. Модем huawei e173 (Djuice).

Для початку потрібно відкрити голос і відучити модем від sim карт оператора. Зробив я це через програму dc-unlocker. Мені ця програма припала до душі, і я вирішив купити кредити для розблокування.

Що ж, почнемо.

Завантажуємо chan_dongle тут або тут.

Розархівовуємо його і заходимо в директорію:

tar xzvf chan_dongle-1.1.r14.tgz

cd 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 готові до дзвінків.

Примітка: матеріал міг бути створений за підтримки ШІ з подальшою людською редакцією. Відповідальний за зміст: Dmytro Lomaka, Kaltenkirchen.