Новий web-інтерфейс статистики та прослуховування викликів для IP АТС Asterisk
.collapse">Зміст
Ідея написання web-інтерфейсу статистики та прослуховування викликів для IP АТС Asterisk не залишала мене вже кілька років. Рішення, знайдені в Інтернеті, не влаштовували за тими чи іншими критеріями — десь не вистачало функціоналу, якісь із них зовсім не тішили око.
І ось, озброївшись стеком технологій і осідлавши бойового коня, наданого компанією ServerClub, я вирушив у дорогу.
Результатом моєї подорожі став новий інтерфейс, з діаграмами, графіками та можливістю завантажувати та прослуховувати виклики. Не буду втомлювати вас словесами, ось пара скріншотів:
Щоб пост не виглядав як простирадло зі скріншотів, я зробив невелике слайдшоу, де ви можете ознайомитися з інтерфейсом.
Опис Що вже готове плани.
На даний момент реалізовано наступний функціонал:
- Звіт — Кількість дзвінків у черзі за період (всього/неприйняті/відповідальні/не дочекалися відповіді)
- Діаграма — Прийняті/Неприйняті
- Діаграма - Прийняті, розподіл за операторами
- Діаграма - Невідповідні, розподіл за операторами
- Звіт — Статистика операторів. Хто і скільки прийняв/не прийняв викликів
- Звіт - Причина роз'єднання (оператор/клієнт)
- Звіт — Виклики. Скільки на дату Надійшло/Відповідних/Невідповідних
- Пошук записів у БД. Прослуховування та скачування записів розмов
- Звіт — Усього дзвінків, невідповідні/відповідальні/зайнято (помилка дзвінка), загальна тривалість та розподіл дзвінків за тривалістю (див. пункт).
- Діаграма - Розподіл викликів за тривалістю: до 30с, від 30с до 90с, від 90с
- Діаграма - Кількість дзвінків, розподіл за менеджерами
- Звіт — розподіл дзвінків за тривалістю між менеджерами/операторами
- Звіт — Виклики. Скільки було здійснено викликів на дату (вважаємо лише відповіді*)
- Пошук записів у БД. Прослуховування та скачування записів розмов
Також доступні кілька налаштувань, де вказується чи використовує Asterisk черги* та шлях до файлів записів розмов на сервері. *реалізовано в налаштуваннях, але поки що немає в інтерфейсі
У найближчих планах додати:
Астерік. Налаштування
Для роботи з описуваним інтерфейсом буде потрібно Asterisk версії 1.8 і вище. На АТС має бути налаштовано ведення записів CDR та queue_log у БД MySQL. Якщо ви цього ще не зробили, то я розповім як.
Так само я наведу приклад налаштування діалплану Asterisk для організації збереження записів розмов.
1. Встановлюємо необхідні пакети (наприклад у Debian/Ubuntu)
2. Asterisk має бути зібраний з наступними опціями


Впіймав на одній із систем баг, при якому конектор чомусь перестав чіплятися і астер звалювався в кірку:
Core was generated by `asterisk -cvvvvvvvgd'.
Program terminated with signal 8, Arithmetic exception.
#0 0x00007ff4cc77a61b in sqlchar_as_sqlwchar () from /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
вирішив тим, що скачав останню версію з сайту MySQL - dev.mysql.com/downloads/file/?id=461779
розпакував либи в /usr/lib/x86_64-linux-gnu/odbc/
і трохи підправив конфіг
наприкінці cdr_mysql.conf додати
4. Створимо БД та таблицю cdr у MYSQL
5. Тепер створимо табличку queue_log
6. Внесемо до /etc/asterisk/extconfig.conf рядок
7. Перезавантажуємо Asterisk та перевіряємо підключення
8. Також варто зателефонувати і перевірити чи потрапляють дані до БД
Файли записів розмов потрапляють прямо в /var/calls де мають наступну ієрархію
Астерік. Підключення до інтерфейсу статистики
Настав час розвіяти деякі сумніви, або ж підтвердити деякі припущення. Так — зараз сервіс надається за моделлю SAAS, тобто. на вашу АТС встановлюється клієнт для синхронізації БД та записів дзвінків.
Для встановлення скрипта потрібно виконати такі кроки:
1. Встановити на сервер nodejs та менеджер пакетів npm , якщо вони ще не встановлені (за допомогою yum або apt/aptitude/apt-get )
2. Встановити pm2
3. Створити та перейти до папки /opt/stat.vistep.ru
4. Помістити архів зі скриптом у папку, створену кроком раніше, і розпакувати його
5. Відредагувати скрипт, внісши зміни до рядків 393 - 397 (і 398 - опціонально, якщо вам знайомі regexp), а саме
6. Запустити скрипт на виконання:
7. Налаштувати автозапуск/зупинення скрипта синхронізації разом з ОС:
З налаштуваннями на цьому все. Залишилося дочекатися завантаження даних на сервер статистики та почати користуватися!
Умови надання сервісу
На даний момент ми пропонуємо 2 варіанти співробітництва по продукту Stat.ViStep.RU:
-Локальна версія, у постійне користування. Всі оновлення будуть доступні Вам без додаткової оплати.
-Хмарна версія. Оновлення включено до абонентської плати.
Допомога в установці/налаштуванні продукту безкоштовна в обох випадках.
Всі подробиці ви можете дізнатися, написавши нам на [email protected]
Висновок
Ось і завершилася моя оповідь про подорож та її результати. Але тільки оповідь, не сама подорож — вона ще тільки починається. Вірю, що чекають на мене ще багато звершень, захоплюючі шляхи-дороги та цікаві квести.
За допомогою в налаштуванні Asterisk ласки прошу писати нам на [email protected]. Якщо питання щодо співпраці, умов надання сервісу або ще якась оказія, то чекаю листів на [email protected]