Новий 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 має бути зібраний з наступними опціями

прослуховування
викликів
3. Далі редагуємо кілька конфіг-файлів

Впіймав на одній із систем баг, при якому конектор чомусь перестав чіплятися і астер звалювався в кірку:

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]