Asterisk: установка та інструкція

189 0 Новини високих технологій

Asterisk, установка якого буде розглянута в даному матеріалі, являє собою програмне забезпечення для організації так званої офісної телефонної станції або IP-АТС (англ. Private Branch eXchange, PBX). Воно об'єднує всі телефони в офісі в одну інформаційну мережу, на базі якої працюють різноманітні служби голосового зв'язку. Asterisk працює на Linux, BSD, OS X і Windows з використанням емулятора. Asterisk може здійснювати передачу голосу чотирьом різним протоколів VoIP і взаємодіяти практично з усіма стандартизованими телефонними апаратами (включаючи мобільні) за допомогою недорогого обладнання. Asterisk реалізує різні можливості голосової пошти (voicemail), включаючи телефонний довідник, конференц-зв'язок, інтерактивний голосовий відповідь і черги дзвінків.


В даному матеріалі ми розглянемо процес установки Asterisk на ОС Linux, зокрема на популярних дистрибутивах CentOS і Debian, а також базові процедури налаштування сервера голосової пошти.

Asterisk: установка та інструкція

Установка сервера 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: установка та інструкція

    Для початку необхідно встановити всі необхідні пререквизиты. Переконайтеся, що у системі присутні всі пакети, зазначені нижче. Їх досить багато:

    Asterisk: установка та інструкція

    У результаті в системі будуть присутні всі залежності, необхідні для успішного складання сервера телефонії Asterisk.

    Наступним кроком має стати відключення SELinux. Система безпеки Security-Enhanced Linux CentOS включена за замовчуванням і дуже часто перешкоджає нормальному функціонуванню Asterisk. Тому для успішної установки і роботи сервера її необхідно відключити.


    <script type="text/javascript">
    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: установка та інструкція

    Фактично, установка 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/javascript">
    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/javascript",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:

    Asterisk: установка та інструкція

    DAHDI

    DAHDI – це драйвер, що забезпечує взаємодію Asterisk з різним телефонним обладнанням. Він відповідає за роботу плат інтерфейсів телефонії, що встановлюються безпосередньо на сервер, на якому працює Asterisk. Процедура установки DAHDI описана нижче.

    Скачайте в каталог /usr/src архів з драйвером, розпакуйте його і перейдіть в разархивированную папку. В ній виконайте команди:

    Asterisk: установка та інструкція

    PJSIP

    PJSIP – це бібліотека, написана на С, яка відповідає за підтримку різних протоколів IP-телефонії. З версії Asterisk 13.8 включно бібліотека PJSIP може встановлюватися окремо. Втім, якщо Asterisk компілюється з прапором --with-pjproject-bundled (що ми і зробили в попередньому розділі), бібліотека PJSIP буде встановлена безпосередньо при компіляції сервера.

    Для того, щоб встановити PJSIP окремо, потрібно виконати наступну процедуру.

    Скачайте з сайту pjsip.org в каталог /usr/src архів з драйвером, розпакуйте його і перейдіть в разархивированную папку. В ній виконайте команди:

    Asterisk: установка та інструкція

    Пост-інсталяційні процедури

    По завершенню установки Asterisk необхідно виконати ряд додаткових дій. Дані процедури є обов'язковими.

    1. Встановити захист для сервера бази даних:

    mysql_secure_installation

    Для виконання процедури просто відповідайте Y на всі питання.

    2. Змінити налаштування веб-сервера:

    Asterisk: установка та інструкція

    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

    Asterisk: установка та інструкція

    systemctl enable freepbx

    7. Налаштувати з'єднання з базою даних через ODBC. Якщо встановлений застарілий модуль cdr_mysql.so, цей пункт опційний, але все ж рекомендується:

    nano /etc/odbc.ini

    Asterisk: установка та інструкція

    Для того, щоб перевірити зв'язок з ODBC, використовуйте наступну команду:

    isql -v asteriskcdrdb

    8. Перезавантажте систему, щоб застосувати зроблені зміни:

    reboot

    Установка Asterisk 13 на Debian

    В даному розділі ми розглянемо процедуру установки на іншій популярній платформі – Debian. Гарна новина для користувачів: вона відносно проста, незважаючи на те, що також включає в себе збірку з исходников. В якості прикладу ми виконаємо установку Asterisk на Debian 8.

    Установка проводиться від імені суперкористувача (root). Відкрийте термінал, отримаєте відповідні права, після чого можна приступити до інсталяції.

    Asterisk: установка та інструкція

    Спочатку завантажте Asterisk 13 з офіційного сайт і розпакуйте завантажений архів. Перейдіть в папку з распакованными джерела.

    Тепер встановимо необхідні залежності. Найважливіша – компілятор gcc – в Debian вже є. Тому просто завантажимо залишилися:

    Asterisk: установка та інструкція

    Після того, як всі залежно завантажені і встановлені, виконайте в папку з розпакованим архівом Asterisk наступну команду:

    ./configure

    Команда повинна завершитися без помилок. Якщо в результаті виникне повідомлення про відсутність деяких залежностей, встановіть їх.

    Перед компіляцією Asterisk є можливість включити або відключити окремі модулі:

    make menuselect

    Буде відкрито консольний додаток з переліком модулів. Переміщаючись клавішами вниз і вгору за списком, ви можете вмикати та вимикати їх. Деякі додаткові модулі вимагають встановлення залежностей. Це можна зробити за допомогою apt-get.

    Тепер приступимо до компіляції Asterisk. Введіть в консолі вже знайомі команди:

    1. Збірка джерел:

    make

    2. Установка в системні каталоги:

    make install

    Коли виконання компіляції завершиться без помилок, потрібно запустити команду:

    make samples

    На цьому завершується установка. Asterisk успішно проинсталлирован на ваш сервер. Наступна команда викличе консоль управління Asterisk:

    asterisk -vvvvvvgc

    Налаштування Asterisk

    Тепер розглянемо базові процедури налаштування сервера телефонії Asterisk. Вони принципово однакові для всіх дистрибутивів Linux.

    Для початку потрібно додати наступний текст в файл sip.conf:

    Asterisk: установка та інструкція

    Тим самим ми створимо п'ять облікових записів, які можуть використовуватися будь-яким клієнтом 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:

    Asterisk: установка та інструкція

    Після цього потрібно буде внести в extension.conf ще один рядок:

    розширеннями => _XXXXXXX.,1Dial(SIP/trunk1/${РОЗШИРЕННЯМИ}) Це дозволить встановити зв'язок з провайдером для здійснення вихідних дзвінків.

    Висновок

    Налагодження повноцінної офісної АТС на базі Asterisk, установка якого була розглянута в цій статті, включає в себе набагато більше процедур, ніж описано вище. Докладна інформація про сервер телефонії та його можливості представлена до офіційної документації по Asterisk.

    При копіюванні матеріалів лінк на наш сайт Hi-News обов'язковий.