Встановлення Asterisk, Linuxoid

OpenSource forever

Статтю надруковано в журналі Хакер

Проект Asterisk

Встановлення Asterisk

На жаль, чітких вказівок на рахунок апаратних засобів дати неможливо, надто багато тонкощів та ньюансів, тому за зразковими конфігураціями комп'ютерів відсилаю на сторінку сайту voip.rus.net «Продуктивність Asterisk систем» (voip.rus.net/tiki-index.php? page = Asterisk + dimensioning). Якщо твоя мета – знайомство з Asterisk, можна використовувати один із дистрибутивів, у яких вже є налаштований та повністю готовий до роботи сервер: AsteriskNow (www.asterisknow.org), Trixbox (www.trixbox.org), VoIPonCD (www.voiponcd). com). Asterisk є у репозитаріях пакетів більшості дистрибутивів. Так в Ubuntu команда sudo apt-cache search asterisk видає пристойний список пакетів, після встановлення яких відразу ж можна приступати до налаштування.

Але установка з репозитарію має один мінус - як правило, у ньому версія Asterisk пристойно відстає від поточної, яку можна завантажити з офіційного сайту. Тому розглянемо універсальний спосіб установки на прикладі того ж Ubuntu, хоча все сказане (за рідкісним винятком) відноситься і до інших дистрибутивів. Встановлюємо пакети, необхідні для компіляції:

$ sudo apt-get install build-essential automake autoconf bison flex libtool libncurses5-dev libssl-dev

Крім того, рекомендується встановити бібліотеку libpri, навіть якщо не потрібна підтримка Primary Rate ISDN (первинний тип цифрової мережі з інтеграцією послуг). Це можна зробити або через репозитарій sudo apt-get install libpri1.2, або використовуючи вихідні тексти:

$wget -c downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz

Компіляція бібліотеки стандартна,тому не будемо на цьому зупинятись. Тепер завантажуємо з сайту вихідні тексти Asterisk і конфігуруємо:

$ wget -c downloads.digium.com/pub/asterisk/asterisk-1.4.11.tar.gz $ tar xzvf asterisk-1.4.11.tar.gz $ cd asterisk-1.4.11 $ ./configure —prefix=/usr

Після закінчення роботи скрипта в консолі побачимо емблему проекту та деяку інформацію про налаштування.

$ make $ sudo make install

Примітка: якщо встановлена ​​версія 1.2, то для підтримки формату mp3 перед командою make слід ввести «make mpg123», версія 1.4 вже ніяк не реагує на цю команду. Після компіляції будуть встановлені, крім усього іншого, такі файли, що виконуються:

1. /usr/sbin/asterisk - демон сервера Asterisk, який забезпечує всю роботу; 2. /usr/sbin/safe_asterisk — скрипт для запуску, перезапуску та перевірки роботи сервера Asterisk; 3. /usr/sbin/astgenkey – скрипт для створення закритого та публічного RSA ключів у форматі PEM, які необхідні для роботи Asterisk.

Щоб встановити шаблони конфігураційних файлів та документацію, набираємо:

$ sudo make samples

Приклади файлів конфігурації будуть скопійовані в /etc/asterisk, якщо в цьому каталозі вже знаходяться файли конфігурації, вони будуть перейменовані з префіксом «.old». Для складання документації потрібно пакет doxygen, якщо його немає, встановлюємо:

$ sudo apt-get install doxygen $ sudo make progdocs

Аналогічно встановлюємо і пакет із розширеннями asterіsk-addons (цей крок не обов'язковий, його можна сміливо пропустити). Багато модулів, що входять до складу цього набору, є експериментальними, їх варто встановлювати лише якщо потрібно запис інформації в БД, підтримка mp3-файлів та протоколу ooh323c (Objective SystemsOpen H.323 for C):

$ wget -c downloads.digium.com/pub/asterisk/asterisk-addons-1.4.2.tar.gz $ tar xzvf asterisk-addons-1.4.2.tar.gz $ cd asterisk-addons -1.4.2 $./configure; make; sudo make install; sudo make samples

$ sudo /usr/sbin/asterisk -vvvgc

Якщо отримуємо повідомлення Asterisk Ready та запрошення консолі керування, значить, все гаразд. Виходимо:

Тепер можна переходити до подальшого налаштування.

Налаштування підтримки інтерфейсних карток

$ sudo apt-get install zaptel zaptel-source $ sudo module-assistant prepare $ sudo m-a -t build zaptel

Після цих команд /usr/src з'явиться пакет zaptel-modules-*_i386.deb, встановлюємо його за допомогою dpkg. Після чого перевіряємо роботу модулів ядра:

$ sudo depmod -a $ sudo modprobe ztdummy

І якщо потрібна підтримка пристроїв:

$ sudo modprobe zaptel $ sudo modprobe wcfxo

Щоб забезпечити їхнє автоматичне завантаження, виконуємо наступну команду:

$ echo 'ztdummy\nzaptel\nwcfxo' >> /etc/modules

Створюємо правила для UDEV:

$ sudo mcedit /etc/udev/rules.d/51-zaptel.rules

KERNEL="zapctl", NAME="zap/ctl" KERNEL="zaptimer", NAME="zap/timer" KERNEL="zapchannel", NAME="zap/channel" KERNEL= "zappseudo", NAME="zap/pseudo" KERNEL="zap0-9*", NAME="zap/%n" Також можна використовувати вихідні тексти або CVS-версію драйвера. При самостійній компіляції знадобляться заголовні файли ядра (або вихідні тексти):

$ sudo apt-get install linux-headers-`uname -r`

Створимо символічне посилання, щоб Asterisk знайшов вихідні джерела ядра:

$ sudo ln -s /usr/src/linux-headers-2.6.20-15-generic /usr/src/linux-2.6

Тепер отримуємо останню версію драйверів:

$ cd /usr/src $ wget-c downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz

Компілюємо та встановлюємо:

$ tar xzvf zaptel-1.4-current.tar.gz $ cd /usr/src/zaptel-1.2.17.1 $ ./configure $ make $ sudo make install

І щоб вручну не створювати конфігураційні файли:

$ sudo make config

Після цієї команди буде створено скрипт для автоматичного запуску модулів, що входять до складу Zaptel, та конфіг /etc/default/zaptel (або /etc/sysconfig/zaptel), у якому зазначено, які модулі необхідно завантажувати. Рекомендую залишити в цьому файлі тільки необхідне. Пробуємо завантажити модуль:

$ sudo modprobe ztdummy $ lsmod grep ztdummy ztdummy 6184 0 zaptel 189860 1 ztdummy

Все нормально. Після встановлення в системі з'являться ще два файли:

1. /etc/zaptel.conf - визначає конфігурацію апаратного забезпечення; 2. /etc/asterisk/zapata.conf — Налаштування сервера Asterisk для роботи драйвера Zap каналу.

Детальні вказівки для всіляких пристроїв дано в документації, українською з цього приводу можна почитати в документі «Конфігурація драйвера ядра Zaptel» (voip.rus.net/tiki-index.php?page=Asterisk+config+zaptel.conf), тому на цьому не зупиняємося, попереду ще багато роботи. Після налаштування перевіряємо роботу командою "ztcfg -vv".

Реєстрація користувачів

Якщо зараз подивитися в каталог /etc/asterisk, можна знайти велику кількість файлів. Через стислий обсяг журнальної статті ми познайомимося лише з деякими з них. Так в asterisk.conf вказані каталоги, які буде використовувати Asterisk під час роботи, розташування та власник сокета, що використовується для підключення віддаленої консолі керування, а також параметри запуску сервера, які використовуються за замовчуванням. Деякі каталоги вчас установки не створюються, це доведеться зробити вручну:

$ sudo mkdir -p /var//asterisk $ sudo adduser -system - no-create-home asterisk $ sudo addgroup -system asterisk

Додамо користувача asterisk до групи audio:

$ sudo adduser asterisk audio $ sudo chown asterisk:asterisk /var/run/asterisk $ sudo chown -R asterisk:asterisk /var/log/asterisk $ sudo chown -R asterisk:asterisk /var /spool/asterisk

$ sudo mcedit /etc/asterisk/sip.conf

$ sudo mcedit /etc/asterisk/extensions.conf [office] include => default exten => 1234,1,Dial(SIP/600,20) exten => 1234,2,Voicemail(600) Тут все просто. За користувачем grinder закріплюємо номер 1234 і якщо він не відповість на дзвінок, йому можна буде залишити повідомлення в голосовій пошті. Цифра після номера означає пріоритет, що визначає послідовність виконання завдань. Тепер, якщо Asterisk запущено, слід підключитися до його консолі, виконавши на тій же машині Asterisk -r, і за допомогою команди reload змусити його перечитати конфігураційні файли.

Ще один непоганий і мультиплатформний клієнт - X-Lite (www.xten.com).

Проект CallWeaver

Щоб уникнути проблем із подвійним ліцензуванням, було створено форк Asterisk, названий CallWeaver (www.callweaver.org/blog). Щоправда, він має меншу функціональність, але підтримує велику кількість протоколів і роботу по аналогових та цифрових каналах. Розробники відмовилися від ztdummy, проте тепер для роботи ядро ​​має бути зібране з Timer Frequency 1000 HZ. Щоб в Ubuntu самому не перезбирати ядро, достатньо встановити пакет linux-lowlatency.

Відео зі встановлення Asterisk

to grinder: дуже цікаво ... чекаю не дочекаюся

Стаття чудова, допомогладуже швидко стартонути. Дякую.

Підкажіть як зробити підсвічування синтаксису, таке як у вас на малюнку?

2Олександр взагалі це в Ubuntu автоматично так налаштовано. Навіть увагу не звертав:) Подивлюсь як зробили і викладу.