Инсталиране и настройка на FreePBX 17 на Debian 12 с GSM модул (chan_dongle)

В тази статия ще разгледаме стъпка по стъпка как да превърнете сървър с Debian 12 в напълно функционална VoIP централа с GSM свързаност. Ще използваме най-новата версия на FreePBX 17 и модула chan_dongle за работа с USB модеми (като Huawei E1550/E173).


Стъпка 1: Инсталиране на FreePBX 17

Първата стъпка е да инсталирате базовата система. FreePBX 17 разполага с автоматизиран инсталатор за Debian 12.

Можете да следвате официалното ръководство тук: FreePBX 17 Installation Guide.

След като имате работещ FreePBX, преминете към следващата стъпка.


Стъпка 2: Подготовка за компилиране на модула

Тъй като chan_dongle не е включен по подразбиране, трябва да го компилираме. За целта са необходими изходният код на Asterisk и няколко библиотеки.

2.1. Инсталиране на зависимости

apt install -y git autoconf automake libtool pkg-config sqlite3 libsqlite3-dev libedit-dev uuid-dev libjansson-dev libxml2-dev

2.2. Подготовка на Asterisk Source

Проверете текущата версия на Asterisk:

asterisk -V

Изтеглете съответната версия (в примера използваме 22.7.0) и подгответе файловете за компилация:

cd /usr/src
wget https://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-22.7.0.tar.gz
tar -xvf asterisk-*.tar.gz
cd /usr/src/asterisk-22.7.0

# Конфигуриране и генериране на необходимите хедъри
./configure
make menuselect.makeopts
make include/asterisk/buildopts.h

Стъпка 3: Инсталиране на chan_dongle

Ще използваме версията на wdoekes, която е съвместима със съвременните версии на Asterisk.

cd ~
git clone https://github.com/wdoekes/asterisk-chan-dongle.git
cd asterisk-chan-dongle/
./bootstrap
./configure
make
make install

# Копиране на конфигурационния файл
cp etc/dongle.conf /etc/asterisk/
chown asterisk:asterisk /etc/asterisk/dongle.conf

Стъпка 4: Настройка на правата и хардуера

Asterisk трябва да има права за достъп до USB портовете.

usermod -aG dialout asterisk
chmod 666 /dev/ttyUSB*

Проверете на кои портове е разпознат модемът:

ls -l /dev/ttyUSB*

Забележка: Обикновено това са ttyUSB0, ttyUSB1 и ttyUSB2.


Стъпка 5: Конфигурация на dongle.conf

Редактирайте файла /etc/asterisk/dongle.conf. Най-важното е да зададете правилния контекст, за да може FreePBX да управлява обажданията.

nano /etc/asterisk/dongle.conf

Уверете се, че секцията [dongle0] изглежда така:

[dongle0]
context=from-trunk      ; Задължително за FreePBX
audio=/dev/ttyUSB1      ; Аудио порт (често е USB1 или USB2)
data=/dev/ttyUSB2       ; Порт за данни/команди
rxgain=0
txgain=0
disallow=all
allow=alaw
allow=ulaw

След редакция, заредете модула в Asterisk:

asterisk -rvvv
module load chan_dongle.so
dongle show devices

Ако видите статус Free, модемът работи успешно.


Стъпка 6: Настройка на FreePBX

Целта на тази конфигурация е: Входящо повикване → Запис на разговор → Звънене на вътрешен номер 200 (Zoiper).

1. Създаване на вътрешен номер (Extension)

  1. Отидете в меню Applications → Extensions.
  2. Натиснете Add Extension → Add New PJSIP Extension.
  3. User Extension: 200.
  4. Secret: Копирайте паролата (ще ви трябва за Zoiper).
  5. Натиснете Submit.

2. Създаване на Трънк (Trunk)

  1. Отидете в меню Connectivity → Trunks.
  2. Изберете Add Trunk → Add Custom Trunk.
  3. Trunk Name: GSM-Dongle.
  4. В таб Custom Settings, полето Custom Dial String напишете:
    dongle/dongle0/$OUTNUM$
  5. Натиснете Submit.

3. Настройка на входящи повиквания и запис

  1. Отидете в меню Connectivity → Inbound Routes.
  2. Натиснете Add Inbound Route.
  3. В таб General:
    • DID Number: Оставете празно (Any).
    • Set Destination: Изберете Extensions и посочете 200.
  4. В таб Call Recording:
    • Call Recording: Променете на Force (или Yes). Това гарантира запис на всички разговори.
  5. Натиснете Submit и след това червения бутон Apply Config.

Готово! Вече имате работеща GSM централа, която приема обаждания, записва ги автоматично и ги пренасочва към вашия IP телефон.

 

Коментари