Сервер телефонії Asterisk

  1. Загальні питання
  2. Установка зі сховищ
  3. Установка з вихідних
  4. Постскриптум
  5. Дзвінки з / на Skype

Asterisk - це відкритий програмний сервер телефонії, значно перевершує за функціоналом всі інші існуючі рішення для організації офісних АТС , Включаючи найдорожчі окремі телефонні станції Enterprise класу. У поєднанні з необхідним інтерфейсним устаткуванням, що забезпечує підключення до комп'ютера до існуючих телефонних мереж, Asterisk може воістину все, що ви тільки здатні собі уявити, і навіть більше. І це при тому, що сам Asterisk є повністю відкритим проектом - вам необхідно всього лише купити інтерфейсні плати і відповідний по потужності комп'ютер, і ви зможете створити АТС будь-якого рівня і складності. Комп'ютер на базі Intel Atom з пасивним охолодженням здатний обслужити до 50 внутрішніх і зовнішніх ліній.

Голосове меню, автовідповідачі, голосова пошта з доставкою аудіофайлів на email ящики, підтримка всіх існуючих протоколів обміну голосом і кодеків для них, відеодзвінки і передача текстової інформації, можливість комутації різних каналів, наприклад, SIP та звичайного телефону - це далеко не повний список можливостей Asterisk .

Загальні питання

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

Базова установка Asterisk складається з чотирьох частин:

  1. Бібліотека LibPRI. Ця бібліотека призначена для роботи з потоковими TDM-інтерфейсами ISDN: PRI (Primary Rate Interface) і BRI (Basic Rate Interface).

  2. Модулі підтримки телекомунікаційного обладнання DAHDI.

  3. Утиліти DAHDI.

  4. Власне сам сервер Asterisk.

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

Майте на увазі, модулі і утиліти DAHDI можна завантажити окремо, а можна у вигляді одного пакета DAHDI Complete. При цьому в назві пакету DAHDI Complete завжди міститься два номери версії - перший для включеного в нього пакета модулів DAHDI Linux, а другий - для DAHDI Tools. Взагалі кажучи ці номери можуть і не збігатися.

Для складання Asterisk вам буде потрібно компілятор GCC і деякі супутні бібліотекі.Мінімальний же набір необхідного можна поставити командою:

sudo apt-get install build-essential libncurses5-dev openssl libxml2-dev

Якщо ви збираєте DAHDI крім самого Asterisk, то так само знадобляться вихідні ядра.

Установка зі сховищ

Щоб поставити все необхідне досить просто запустити скрипт install_prereq з каталогу contrib / scripts / у вихідних текстах Asterisk з параметром install. Наприклад, ось так:

sudo. / Contrib / scripts / install_prereq install

Однак цей скрипт ставить дуже багато по суті марного сміття. Однак цей скрипт ставить дуже багато по суті марного сміття

Установка з вихідних

У статті буде описаний процес установки для сервера 12.04. Почнемо з установки необхідних бібліотек і додаткових пакетів.

sudo apt-get install libncurses5-dev openssl libssl-dev zlib1g zlib1g-dev mpg123 linux-headers- `uname -r` build-essential mysql-server libmysqlclient15-dev php5 php5-cli php5-mysql php5-gd php-pear apache2 curl sox bison flex cpp g ++ gcc make libauthen-pam-perl libio-pty-perl libnet-ssleay-perl libxml2 libxml2-dev libtiff5 libtiff5-dev libaudiofile-dev subversion libsqlite3-dev libghc-uuid-dev uuid-dev libgtk2.0-dev

Качаємо исходники DAHDI з утилітами. Розпаковуємо, і входимо в каталог з вихідними кодами.

sudo make all sudo make install sudo make config

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

Качаємо LibPRI. Розпаковуємо, і входимо в каталог з вихідними кодами.

sudo make sudo make install

Якщо не планується використання факсів, цей крок можна пропустити.

качаємо spandsp . Розпаковуємо, і входимо в каталог з вихідними кодами.

. / Configure sudo make sudo make install Стаття модифікована під Asterisk 13 LTS, тому що старими версіями врядли хто вже буде користуватися.

Як було зазначено вище, беремо останню LTS версію з офіційного сайту , А саме, з сторінки завантаження всіх версій, розпаковуємо і заходимо в каталог початкових кодів. У нових версіях Asterisk необхідна установка додаткових бібліотек для роботи WebRTC . Для цього виконуємо скрипт, що входить в комплект початкових кодів Asterisk.

contrib / scripts / install_prereq install

Після установки бібліотек необхідно встановити додаткові пакети libsrtp і pjproject, тому що вони необхідні для роботи WebRTC .

.contrib / scripts / install_prereq install-unpackaged

Якщо раптом виникнуть помилки, збираємо все ручками.

sudo su cd / usr / src / git clone https: // github.com / cisco /libsrtp.git cd libsrtp. / Configure CFLAGS = -fPIC make libsrtp.a make uninstall make install cd .. echo "/ usr / local / lib"> / etc /ld.so.conf.d /usr_local.conf ldconfig git clone https: // github. com / asterisk /pjproject.git cd pjproject. / Configure --enable-shared --with-external-speex --with-external-gsm --with-external-srtp --disable-sound --disable-resample make dep make make install ldconfig

Тиснемо Ctrl + D для виходу з рутовий консолі.

Ось тепер можна продовжити установку Asterisk. виконуємо

. / configure

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

виконуємо

sudo make menuselect

Якщо ви робите установку по ssh, то попередньо повинні переконатися, що розмір терміналу більше, ніж 80 × 25. Тут необхідно включити потрібні модулі для компіляції. Наприклад, в розділі Add-ons я включив модулі format_mp3, app_mysql, cdr_mysql, тому що далі планується установка панелі управління FreePBX . У розділі Core Sound Packages включаємо CORE-SOUNDS-EN-ALAW, CORE-SOUNDS-EN-GSM, CORE-SOUNDS-EN-G729, CORE-SOUNDS-RU-ALAW, CORE-SOUNDS-RU-GSM, CORE-SOUNDS- RU-G729 (куди ж без великого і могутнього Якщо ви робите установку по ssh, то попередньо повинні переконатися, що розмір терміналу більше, ніж 80 × 25 ).

Коротко поясню, для чого в трьох кодеках. Для різних транков і внутрішніх номерів можуть використовуватися різні кодеки. Встановлювана АТС буде використовувати основним кодеком alaw, тому що, наприклад, в Казахстані провайдер Казахтелеком використовує для SIP телефонії якраз його і g729. В цьому випадку, буде використовуватися менше ресурсів сервера для транскодування аудіопотоків. Внутрішні номери так само будуть використовувати alaw, номери, що підключаються зовні, через зовнішній інтернет, будуть працювати на g729a, для зменшення навантаження на канал. Як терміналу можуть використовуватися смартфони з встановленим SIP клієнтом. Стійкий зв'язок була перевірена при використанні цього кодека навіть на EDGE, не кажучи вже про 3G. Кодек GSM буде використовуватися в GSM шлюзи.

Якщо планується установка FreePBX, необхідно переконатися що для збірки відзначений модуль cdr_odbc.

Далі в розділі Music On Hold File Packages включаємо модуль MOH-OPSOUND-WAV просто для того, щоб він встановився. Після установки ці мелодії можна буде замінити на свої. Останній розділ Extras Sound Packages. Тут знову ж включаємо модулі для обраних кодеків ALAW, GSM і G729. З кореневого розділу натискаємо Esc і бачимо, що нам запропонували три варіанти виходу. Сміливо тиснемо S для збереження зроблених змін.

Оскільки ми включили поддежка mp3, то виконуємо

contrib / scripts /get_mp3_source.sh

далі робимо

sudo make install

П'ємо каву хвилин 10-30, в залежності від потужності комп'ютера і товщини каналу. П'ємо каву хвилин 10-30, в залежності від потужності комп'ютера і товщини каналу Гойдатимуться архіви звукових повідомлень. Ну ось, все скачав, установив. Створюємо тестові конфіги.

sudo make samples

І ми вже можемо зробити перший запуск нашої станції.

asterisk -vvvcd

Для того, щоб не складати скрипт автозапуску виконуємо

sudo make config

Тепер ми вже можемо запустити нашу станцію як демон.

sudo / etc /init.d / asterisk start

І підключитися до його консолі.

sudo asterisk -rvvvcd

Вийти з консолі можна по Ctrl + Ctrl або набравши quit і натиснувши Enter. Залишилося взяти модуль кодека g729 з російської сторінки проекту , Який більше відповідає конфігурації вашого заліза і покласти його в / usr / lib / asterisk / modules. Потім слід перезавантажити Asterisk, або завантажити модуль з консолі управління.

Asterisk запускається від користувача root!

Зробимо йому окремого користувача, попередньо зупинивши Asterisk, якщо запустили, додамо його в потрібні групи.

sudo adduser --system --group --home / var / lib / asterisk --no-create-home --gecos "Asterisk PBX" asterisk sudo adduser asterisk dialout sudo adduser asterisk audio sudo adduser www-data asterisk

Створимо каталог запуску.

sudo mkdir -p / var / run / asterisk

Змінимо права на потрібні каталоги.

sudo chown -R asterisk: asterisk / var / lib / asterisk sudo chown -R asterisk: asterisk / var / log / asterisk sudo chown -R asterisk: asterisk / var / run / asterisk sudo chown -R asterisk: asterisk / var / spool / asterisk sudo chown -R asterisk: asterisk / usr / lib / asterisk sudo chown -R asterisk: asterisk / dev / dahdi sudo chmod -R u = rwX, g = rX, o = / var / lib / asterisk sudo chmod -R u = rwX, g = rX, o = / var / log / asterisk sudo chmod -R u = rwX, g = rX, o = / var / run / asterisk sudo chmod -R u = rwX, g = rX, o = / var / spool / asterisk sudo chmod -R u = rwX, g = rX, o = / usr / lib / asterisk sudo chmod -R u = rwX, g = rX, o = / dev / dahdi sudo chown -R root: asterisk / etc / asterisk sudo chmod -R u = rwX, g = rX, o = / etc / asterisk

У файлі / etc / default / asterisk раскомментіруем дві строчки. AST_USER = «asterisk» AST_GROUP = «dialout»

Ось тепер можна запустити Asterisk.

sudo / etc /init.d / asterisk start

Дивимося, від якого користувача запустився Asterisk.

ps aux | grep aster

Отримуємо.

asterisk 2547 0.1 1.6 40680 16532? Ssl 12: 49 0: 01 / usr / sbin / asterisk -U asterisk -G dialout

Спокійно користуємося далі. Спокійно користуємося далі

Ось, власне, і весь процес установки цього чудового продукту.

Постскриптум

Для ознайомлення з мовою програмування Asterisk, можете почитати книгу Asterisk ™ - майбутнє телефонії . А, вивчивши мову програмування і структуру конфігураційних файлів Asterisk, ви будете мати воістину безмежними можливостями «дорослої» АТС у вашому офісі. Хоча, всупереч різним опозиційно налаштованим до цього продукту людям, називати цей продукт «дитячої АТС» або «недостанціей», щонайменше, неправильно. Є прихильники АТС Panasonis, є Nortel. У кожної є свої переваги. Але немає основного, безкоштовності. Той же Panasonic бере гроші за ліцензії на зовнішні підключення, ліцензії на системний телефон, бере ще за безліч речей, які в Asterisk вже є. Якщо у вас в офісі 4-6 телефону і одна зовнішня лінія, тут, безперечно, краще взяти недорогу залізяку, прокинути дроти і налаштувати АТСКУ як треба. При кількості телефонів більше 8, краще вже перейти на цифру. У таких офісах вже є, як правило, мережева інфраструктура. Вбудувати в неї кілька SIP телефонів і станцію буде не складно. Про переваги перед аналогової станцією говорити не доводиться. Ніяких рухомих контактів, комутуючих елементів. Ніяких плинтов, кросів, якщо не використовується аналогова частина. Безпроблемне підключення різних VoIP і GSM шлюзів, інтеграція з провайдерами IP телефонії. Об'єднання офісів в інших містах в загальний адресний простір. Автообзвон клієнтів, отримання і передача даних в різні бухгалтерські та CRM системи. При всьому при цьому, система досить безпечна в користуванні при правильному налаштуванні. Хотілося б сподіватися, що дана стаття комусь допоможе встановити Asterisk.

Удачі в освоєнні продукту!

Удачі в освоєнні продукту

Дзвінки з / на Skype

Інструкція написана для Asterisk 1.8 на Ubuntu server 9.04. Завдання - прив'язати до Астеріск аккаунт скайп, щоб приймати дзвінки з скайпу на SIP телефон, і дзвонити з SIP телефону по скайпу. Для цього існує штатний розширення Asterisk виробництва Digium, але воно комерційне та ліцензії коштують грошей. Однак, існує вільний проект - SipToSis , Що дозволяє зробити те ж саме.

Для запуску Skype в консольному Linux використовуємо Xvfb (X Virtual Frame Buffer) і для настройки Skype з іншої машини - x11vnc:

apt-get install xvfb x11vnc

Завантажити та встановити власне Skype: Качаємо останню версію з http://www.skype.com , Встановлюємо:

dpkg -i skype.deb

Для роботи SipToSis необхідна Java версії не нижче 1.5.

Додаємо репозитарій webupd8team. Більш детальну інформацію можете прочитати на https://launchpad.net/~webupd8team/+archive/java

sudo add-apt-repository ppa: webupd8team / java sudo apt-get update

Встановимо java:

sudo apt-get install oracle-java7-installer

cкачать SipToSis .

Разархівіруем в / etc / siptosis і проставимо chmod на виконуваний файл:

chmod + x / etc / siptosis / SipToSis_linux

man hier не погодиться з цим man hier не погодиться з цим

Тепер налаштуємо asterisk.

У users.conf додамо:

[Skype] username = Skype type = friend context = Skype secret = host = dynamic nat = no dtmfmode = auto canreinvite = no incominglimit = 1 outgoinglimit = 1 call-limit = 1 busylevel = 1

У extensions.conf додамо

exten => 1001,1, Dial (SIP / Skype / echo123)

І перезавантажити asterisk.

sudo /etc/init.d/asterisk restart

Тепер правимо конфиг SipToSis:

sudo nano /etc/siptosis/siptosis.cfg

Закомментіруем блок налаштувань, що починається з «#Sample AUTO config with NO registration» Раскомментіруем блок «#Sample Asterisk registration example», поправимо:

host_port = 5070 contact_url = sip: [email protected]: 5070 from_url = "Skype" <sip: [email protected]: 5060> username = Skype realm = asterisk passwd = expires = 300 do_register = yes minregrenewtime = 120 regfailretrytime = 15

запускаємо:

sudo / usr / bin / Xvfb: 101 -ac & sudo DISPLAY =: 101 / usr / bin / skype & sudo x11vnc -display: 101 &

Підключаємося з іншої машини (в моєму випадку, з Windows XP через VNC Viewer), вводимо в Skype логін-пароль, відключаємо все зайве.

Тепер запускаємо:

DISPLAY =: 101 / etc / siptosis / SipToSis_linux

Якщо все зроблено правильно, SipToSis запуститься і спробує підключитися до Skype. Skype видасть питання - чи дозволити підключення. Дозволяємо і ставимо галку «запам'ятати».

Перевіряємо: набираємо з підключеного до Asterisk клієнта 1001 - ми повинні почути тестовий дзвінок Skype.

Щоб приймати вхідні дзвінки, в /etc/siptosis/SkypeToSipAuth.props прописуємо відповідне правило. наприклад:

*, Sip: [email protected]: 5060

-перенаправлять всі вхідні дзвінки Skype SIP-юзеру «user1».

Природно, потрібно створити в extensions.conf контекст «Skype», в якому дозволити дзвінки на цей extension.

посилання