Asterisk: кожен дзвінок як м'ячик стрибає

У ці передсвяткові дні, коли почасти повинен проводити час на роботі, але зміни в робочі системи вже не вносяться, бо «скоро свята, кому потрібні твої свіжі баги?», можна зайнятися вирізанням зірочок та сніжинок з паперу і маленькими експериментами.

Загалом, ми з вами не раз чули такий вислів: «мій дзвінок штовхали як м'ячик від оператора до оператора, і в підсумку відфутболили», а може навіть самі колись таке сказали в серцях. І подумалося, а адже якщо уявити дзвінок як скачуший м'ячик від стінки до стінки, а так як у нас кілька десятків дзвінків буває на астериске одномоментно, то це має виглядати, як мінімум, забавно.

Що вийшло? Далі деталі і невелике відео.

image

Як тут все влаштовано?

Найпростішим способом. При дзвінку, який диалплане астериска виконується додатком Dial у AMI кидається подія Dial (subevent: begin), а коли такий дзвінок завершується, то відбувається подія Dial (subevent: end).

Тобто ми пишемо невеликий веб-сервер на node.js, яке слухає ці події в AMI і потім передає їх усім браузерам, які зайшли на веб-сторінку і підключилися до websockets.

Для відображення скачуть м'ячиків на веб-сторінці в html5 canvas скористаємося бібліотекою konva. Швидкість і напрямок руху, а також колір м'ячиків випадкові в допустимому інтервалі.

Як встановити?

Використовую ubuntu 14.04

1. Клонируем репозиторій:

git clone https://github.com/antirek/bounce-call.git

2. Перейдемо в директорію bounce-call і встановимо залежності:

cd bounce-call 
npm install && install bower

3. Правимо конфігураційний файл config.js:

{
port: 3100, //порт веб-сервера
asterisk: { // настроїти manager.conf астериска
host: 'localhost',
port: 5038,
username: 'admin',
password: 'admin'
}
};

4. Запускаємо додаток:

node app.js

І якщо у вас все вийшло, то у вас в браузері повинні почати літати м'ячики, з'являючись при ініціюванні виклику і зникаючи при завершенні виклику. Як на відео.



Репозиторій: github.com/antirek/bounce-call

Що далі?

Колеги пропонували цікаві доповнення:

1. зробити гру за типом Moorhuhn: потрапив по м'ячику — дзвінок завершиться. Але це, погодьтеся, якось не вписується в рамки якісного телефонного сервісу.

2. міняти колір м'яча в залежності від статусу дзвінка або тривалості очікування відповіді. Але для моніторингу якості обслуговування є інші програмні продукти.

Тому поки використовую для споглядання, підняття настрою і усвідомлення, що за кожним м'ячиком є розмова, де наші колеги спілкуються, домовляються, продають, купують і бажають усім партнерам і клієнтам всього хорошого в наступному році.

Всім відмінного настрою!

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.