Asterisk: установка та інструкція
В даному матеріалі ми розглянемо процес установки Asterisk на ОС Linux, зокрема на популярних дистрибутивах CentOS і Debian, а також базові процедури налаштування сервера голосової пошти.
Установка сервера Asterisk з исходников
Для початку розглянемо алгоритм інсталяції сервера IP-телефонії, який доступний абсолютно на будь-якому дистрибутиві Linux, а саме збірку і установку програмного забезпечення з вихідного коду. Даний метод дозволяє виконати установку Asterisk з нуля. Перед установкою сервера IP-телефонії в системі повинен бути забезпечений ряд умов. Asterisk повинен встановлюватися на систему, що працює на ядрі версії не нижче 2.6 при цьому в системі повинні бути присутні файли заголовків, щоб програма успішно скомпилировалась. Asterisk написаний на мові C, тому для складання у системі повинен бути встановлений компілятор gcc з супутніми бібліотеками, такими як termcap і openssl. Для складання доповнень Asterisk також потрібні передвстановлені бібліотеки і клієнт mysql, а також відповідні файли заголовків.Коли система підготовлена для установки вам буде необхідно перейти в розділ Download на офіційному сайті і завантажити з нього такі архіви:
asterisk.
asterisk-sounds.
asterisk-addons.
zaptel.
libpri.
Файли необхідно скопіювати на сервер, який буде здійснювати функції офісної АТС. Розмістіть їх у папці /usr/src/.
Після цього запустіть на сервері термінал. Перейдіть в каталог з архівами і розпакуйте кожен з них командою:
tar-xzf tar.gz
Архіви будуть розпаковані у папки з іменами, що збігаються з назвами архівів. Послідовно перейдіть в кожну з папок командою:
cd
І виконайте в кожній папці нижченаведені команди.
1. Підготовка до складання:
./configure
2. Збірка:
make
3. Установка:
make install
Якщо вищенаведені команди завершаться з успішним результатом, ви зберете і встановіть Asterisk на своєму сервері.
Процедура установки з исходников однакова для всіх дистрибутивів Linux, але не всім звична. Як правило, більшість користувачів надає перевагу методи установки, що пропонуються конкретним дистрибутивом.
У зв'язку з цим, розглянемо процедури інсталяції Asterisk на двох популярних платформах для створення офісних АТС: CentOS і Debian GNU/Linux.
Установка Asterisk на CentOS
В рамках даного прикладу ми будемо встановлювати Asterisk 13. Ми виконаємо установку Asterisk на CentOS 7.
Передбачається, що інсталяція буде виконуватися в текстовому консольному режимі від імені суперкористувача (root).
Для початку необхідно встановити всі необхідні пререквизиты. Переконайтеся, що у системі присутні всі пакети, зазначені нижче. Їх досить багато:
У результаті в системі будуть присутні всі залежності, необхідні для успішного складання сервера телефонії Asterisk.
Наступним кроком має стати відключення SELinux. Система безпеки Security-Enhanced Linux CentOS включена за замовчуванням і дуже часто перешкоджає нормальному функціонуванню Asterisk. Тому для успішної установки і роботи сервера її необхідно відключити.
<script type="text/jаvascript">
var blockSettings2 = {blockId:"R-A-70350-2",renderTo:"yandex_rtb_R-A-70350-2",async:!0};
if(document.cookie.indexOf("abmatch=") >= 0){
blockSettings2 = {blockId:"R-A-70350-2",renderTo:"yandex_rtb_R-A-70350-2",statId:70350async:!0};
}
!function(a,b,c,d,e){a[c]=a[c]||[],a[c]
Якщо система повідомляє, що SELinux включений, виконаємо процедуру відключення. Для цього необхідно внести зміни в конфігураційний файл в папці /etc/selinux, встановивши відповідний прапор.
sed -i 's/(^SELINUX=).*/SELINUX=DISABLED/' config
Далі потрібно перевірити параметри системного часу і, зокрема, вибрати правильний часовий пояс. Для вибору потрібно використовувати команди, які дозволять визначити і встановити поточний пояс:
tzselect
timedatectl set-timezone
(наприклад, America/Los_Angeles
)
Для того, щоб перевірити, чи був встановлений часовий пояс, можна використовувати наступну команду:
timedatectl status
Після цього буде потрібно перезавантажити систему, щоб активувати зміни. Для цього використовуйте команду reboot
.
Тепер безпосередньо перейдемо до встановлення Asterisk.
Фактично, установка Asterisk на CentOS зводиться до тієї ж самої складанні з джерел, з якою ми познайомилися в попередньому розділі. Тут же ми розглянемо процес складання з урахуванням особливостей конкретного дистрибутива Linux, а саме CentOS 7.
Для початку завантажимо і встановимо сам сервер IP-телефонії.
Завантажити з розділу Завантаження на офіційному сайті продукту архів з Asterisk 13 і збережемо його в папку /usr/src. Распакуем архів командою:
tar zxvf
Перейдемо в папку з розпакованим архівом і виконаємо команди, наведені нижче.
make distclean
./configure --libdir=/usr/lib64 --with-pjproject-bundled
Дана послідовність команд дозволить підготувати вихідні коди до складання.
Далі встановимо параметри компіляції:
make menuselect.makeopts
Після налаштування опцій компіляції виконайте наступну послідовність дій:
1. Створіть окремий обліковий запис користувача для сервера IP-телефонії.
adduser asterisk -s /sbin/nologin -c "Asterisk User"
2. Зберіть і встановіть сервер.
make && make install
3. Встановіть права доступу до Asterisk для новоствореного користувача.
chown -R asterisk. /var/lib/asterisk
В внаслідок базовий сервер Asterisk буде зібраний і встановлений.
Крім самого Asterisk, аналогічним способом на CentOS можна встановити корисні доповнення до сервера. Про це читайте нижче.
FreePBX
FreePBX – це повнофункціональний графічний Веб-інтерфейс, призначений для налаштування і управління офісної АТС. Установка Asterisk з FreePBX здійснюється в наведеній нижче послідовності.
<script type="text/jаvascript">
var blockSettings3 = {blockId:"R-A-70350-3",renderTo:"yandex_rtb_R-A-70350-3",async:!0};
if(document.cookie.indexOf("abmatch=") >= 0){
blockSettings3 = {blockId:"R-A-70350-3",renderTo:"yandex_rtb_R-A-70350-3",statId:70350async:!0};
}
!function(a,b,c,d,e){a[c]=a[c]||[],a[c].push(function(){Ya.Context.AdvManager.render(blockSettings3)}),e=b.getElementsByTagName("script")[0],d=b.createElement("script"),d.type="text/jаvascript",d.src="//an.yandex.ru/system/context.js",d.async=!0e.parentNode.insertBefore(d,e)}(this,this.document,"yandexContextAsyncCallbacks");
Запустимо базу даних:
systemctl start mariadb
Завантажити з сайту GitHub в папку /usr/src вихідний код FreePBX:
git clone -b release/13.0 https://github.com/FreePBX/framework.git freepbx
Далі виконаємо в папці наступні команди для установки:
./start_asterisk start
./install -n
І ряд команд для налаштування FreePBX:
DAHDI
DAHDI – це драйвер, що забезпечує взаємодію Asterisk з різним телефонним обладнанням. Він відповідає за роботу плат інтерфейсів телефонії, що встановлюються безпосередньо на сервер, на якому працює Asterisk. Процедура установки DAHDI описана нижче.
Скачайте в каталог /usr/src архів з драйвером, розпакуйте його і перейдіть в разархивированную папку. В ній виконайте команди:
PJSIP
PJSIP – це бібліотека, написана на С, яка відповідає за підтримку різних протоколів IP-телефонії. З версії Asterisk 13.8 включно бібліотека PJSIP може встановлюватися окремо. Втім, якщо Asterisk компілюється з прапором --with-pjproject-bundled (що ми і зробили в попередньому розділі), бібліотека PJSIP буде встановлена безпосередньо при компіляції сервера.
Для того, щоб встановити PJSIP окремо, потрібно виконати наступну процедуру.
Скачайте з сайту pjsip.org в каталог /usr/src архів з драйвером, розпакуйте його і перейдіть в разархивированную папку. В ній виконайте команди:
Пост-інсталяційні процедури
По завершенню установки Asterisk необхідно виконати ряд додаткових дій. Дані процедури є обов'язковими.
1. Встановити захист для сервера бази даних:
mysql_secure_installation
Для виконання процедури просто відповідайте Y на всі питання.
2. Змінити налаштування веб-сервера:
3. Відкрити доступ до служб і портів, необхідним для роботи Asterisk:
firewall-cmd --permanent --zone=public --add-service={http,https}
--add-port=5060-5061/tcp
--add-port=5060-5061/udp
--add-port=10000-20000/udp
4. Налаштувати автозавантаження бази даних:
systemctl enable mariadb
5. Налаштувати завантаження веб-сервера при запуску системи:
systemctl enable httpd
6. Налаштувати автозапуск FreePBX при завантаженні системи:
nano /etc/systemd/system/freepbx.service
systemctl enable freepbx
7. Налаштувати з'єднання з базою даних через ODBC. Якщо встановлений застарілий модуль cdr_mysql.so, цей пункт опційний, але все ж рекомендується:
nano /etc/odbc.ini
Для того, щоб перевірити зв'язок з ODBC, використовуйте наступну команду:
isql -v asteriskcdrdb
8. Перезавантажте систему, щоб застосувати зроблені зміни:
reboot
Установка Asterisk 13 на Debian
В даному розділі ми розглянемо процедуру установки на іншій популярній платформі – Debian. Гарна новина для користувачів: вона відносно проста, незважаючи на те, що також включає в себе збірку з исходников. В якості прикладу ми виконаємо установку Asterisk на Debian 8.
Установка проводиться від імені суперкористувача (root). Відкрийте термінал, отримаєте відповідні права, після чого можна приступити до інсталяції.
Спочатку завантажте Asterisk 13 з офіційного сайт і розпакуйте завантажений архів. Перейдіть в папку з распакованными джерела.
Тепер встановимо необхідні залежності. Найважливіша – компілятор gcc – в Debian вже є. Тому просто завантажимо залишилися:
Після того, як всі залежно завантажені і встановлені, виконайте в папку з розпакованим архівом Asterisk наступну команду:
./configure
Команда повинна завершитися без помилок. Якщо в результаті виникне повідомлення про відсутність деяких залежностей, встановіть їх.
Перед компіляцією Asterisk є можливість включити або відключити окремі модулі:
make menuselect
Буде відкрито консольний додаток з переліком модулів. Переміщаючись клавішами вниз і вгору за списком, ви можете вмикати та вимикати їх. Деякі додаткові модулі вимагають встановлення залежностей. Це можна зробити за допомогою apt-get.
Тепер приступимо до компіляції Asterisk. Введіть в консолі вже знайомі команди:
1. Збірка джерел:
make
2. Установка в системні каталоги:
make install
Коли виконання компіляції завершиться без помилок, потрібно запустити команду:
make samples
На цьому завершується установка. Asterisk успішно проинсталлирован на ваш сервер. Наступна команда викличе консоль управління Asterisk:
asterisk -vvvvvvgc
Налаштування Asterisk
Тепер розглянемо базові процедури налаштування сервера телефонії Asterisk. Вони принципово однакові для всіх дистрибутивів Linux.
Для початку потрібно додати наступний текст в файл sip.conf:
Тим самим ми створимо п'ять облікових записів, які можуть використовуватися будь-яким клієнтом SIP (Cisco SIP Phone, xlite, ATA і тому подібні). Всі користувачі будуть зареєстровані в Asterisk. Якщо дана конфігурація не працює, спробуйте відключити мережний екран до завершення налаштування програмного забезпечення.
Створення першого номерного плану
Номерний план (диалплан) надає собою формалізований опис процесів обробки телефонних дзвінків. Диалплан в деталях вказує системі, що потрібно робити з вихідними і вхідними дзвінками. Наприклад, Asterisk може переадресовувати їх, відповідати на них за допомогою автовідповідача і так далі.
Відкрийте файл extension.conf у папці /etc/asterisk і додайте в нього рядок:
розширеннями=> _XXXX,1Dial(SIP/${РОЗШИРЕННЯМИ})
Тепер всі настроєний клієнти SIP зможуть приймати і відправляти дзвінки. Завдяки простоті настройки диалплана, Asterisk і є однією з найбільш дружніх платформ IP-телефонії. Не так вже й багато навичок потрібно, щоб підняти офісну АТС.
Створення першого SIP транк
Asterisk може виконувати вихідні та вхідні дзвінки. Для вихідних дзвінків нам потрібен провайдер, який буде перенаправляти виклики в нашу систему, а також публічний IP-адресу.
Для цього потрібно налаштувати SIP транк – канал віртуальної зв'язку між клієнтським обладнанням і телефонним оператором. Якщо в ролі обладнання клієнта буде виступати наш сервер Asterisk, налаштування транка дозволить підключити до нього будь-яку кількість міських телефонних номерів по протоколу SIP
Для створення транка додайте наступний код у файл sip.conf:
Після цього потрібно буде внести в extension.conf ще один рядок:
розширеннями => _XXXXXXX.,1Dial(SIP/trunk1/${РОЗШИРЕННЯМИ})
Це дозволить встановити зв'язок з провайдером для здійснення вихідних дзвінків.