Приватний досвід встановлення та налаштування Asterisk з нуля

По-перше, дисклаймер
Спочатку було слово
Потім була справа

Загалом, на папері все було красиво та легко. Справа стала тільки за розгортанням. Спочатку було закуплено два простенькі сервери. Core i7-930, 12GB пам'яті та по 12ТБ на SATA-дисках. На ці сервери було встановлено безкоштовний Xen Server і розгорнуто віртуальні сервери та робочі станції для віддалених співробітників. В якості зовнішнього сховища використовується QNAP-овський NAS, який дістався у спадок. Терабайтні локальні сховища потрібні лише для зберігання медіа-банку, який є досить великим. Самі сервери всі разом важать менше трьох терабайт. Одним із серверів став Asterisk на заміну старичку Panasonic TDE-200. Т.к. компанії необхідний дешевий зв'язок, прямі номери в різних країнах, і безкоштовні переговори між співробітниками, то альтернативи йому за 12 шекелів взагалі немає.

День перший: Make World

Розгортати Asterisk було вирішено на рідній для Citrix Xen операційній системі CentOS. Той самий RedHat, тільки збоку. Обмовлюся відразу: я все життя адмінив Windows, а * nix-ами тільки "грав" у віртуалках, не рахуючи пари веб-серверів на залозі. Тому, розгортання Asterisk в Citrix Xen віддає деякою наївністю з погляду навчених досвідом людей. Загалом, я пішов перевіреним шляхом: відкривається на ноуті докладна how-to інструкція для чайників з офіційних мануалів і виконується на сервері буквально і безініціативно. Грати в героїв-наладчиків можна буде пізніше, коли все буде налаштовано та працюватиме в стані “за умовчанням” і буде зроблено перший full backup.

День другий: yum install asterisk -y

Не те щоб я був дуже здивований, але, проте, я пішов до знайомого зв'язківця за порадою, коли виявив, що живих астерісків ажтри практично самостійні форки: 1.4, 1,6 і 1.8. У кожного з них свої таргани та примочки. Т.к. я не спокушався надією здолати астериск з наскоку, то вирішив поставити версію 1.4, як у друга, щоб мати максимально можливу сумісність конфігів. Хоча згодом довелося підніматися до 1.6 через відсутність підтримки TCP в 1.4, коли виникла така потреба. Для цього до CentOS був прилаштований digium-овский репозиторій і Asterisk ставився з нього. Установка пройшла цілком очікувано, без сучка та задирки. В основному, використовувався тямущий покроковий roadmap з voip-info. Одразу ж були поправлені iptables, щоб дозволити трафік по SIP-портах. Не відразу ж, але майбутнім поколінням рекомендую встановити та налаштувати негайно пакет на ім'я fail2ban. Цілком не зайва програма на сервері, виставленому в інтернет. У мене через день після встановлення весь Тайвань у drop пішов, судячи з iptables.

День третій: ТЗ на функціонал АТС

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

День четвертий: nano sip.conf
День п'ятий: nano extensions.conf

Не менш цікавий файл, у якому прописується вся логіка АТС. Дуже корисними для розуміння логіки dial-plan-ів виявилися такі статті: http://inhibitz.ucoz.ru/publ/9-1-0-21, http://asterisk-pbx.ru/wiki/doku.php/asterisk_dialplan Отже, поїхали:

День шостий: nano Voicemail.conf, nano queues.conf

Настав час зробити голосову пошту.

З queues.conf теж все просто:

День сьомий: Післямова

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

Зараз у мене Астериск із такими конфігами працює цілком задовільно. Є прикрі дрібниці, типу луна при дзвінку на деякі дивні міські АТС, або огидна робота деяких вбудованих звукових карт (будь проклятий один популярний виробник бюджетних материнок), але це – життєва справа – вирішується USB-трубками, з якими дуже добре стикується безкоштовний Zoiper Free . Загалом і в цілому, я і моє керівництво задоволені виконаною роботою. Треба тільки попрацювати надфілем і можна буде приступати до наступного проекту.

Що ще залишилося доробити, для повного щастя: Поставити та налаштувати Fop2, щоб користувачі могли бачити хтось із співробітників у якому стані, щоб не було ситуації переведення дзвінка на зайнятого абонента, коли дзвінок автоматично перекидається на групу і людина потрапляє зовсім не туди куди хотів. Поставити систему моніторингу, щоб у реальному часі відстежувати стан АТС, дзвінків, черг. Поставитиякусь вкрай просту систему звітності за дзвінками. Завдання стоїть лише у виразній візуалізації кількості дзвінків для перевірки рахунків.