ATrey

ATrey - утилита для операторов call-центра. Данное приложение выводит информацию о звонящем абоненте(ФИО, адрес, тарифный план и тд), если он зарегистрирован в базе ABillSа. Так же можно сразу открыть страницу абонента в браузере.

Возможности

  • При подключении модуля Call-центр, утилита отправляет и ведет логи звонков.

Настройка

Адрес Asterisk адрес для сервера Asterisk;
Port Порт для подключения к AMI
Asterisk логин логинн от AMI
Asterisk пароль пароль от AMI
Адрес биллинга
Abills логин логин администратора в abills
Abills пароль пароль администратора в abills
Номер оператора номер оператора
Тип авторизиации 1 - WEB авторизация; 2 - http авторизация

Скриншоты

Скачать

Реализация в браузере

Отображает уведомления о абоненте в реальном времени.

Установить perl модули:

  • AnyEvent::Socket
  • AnyEvent::Handle
  • Protocol::WebSocket

Установить и включить модули апача:

  • mod_proxy
  • mod_proxy_wstunnel

Прописать в конфигурацию apache2 abills_httpd в секцию VirtualHost биллинга

# Proxying secure websockets to unsecure sockets
  ProxyPass "/admin/wss/" "ws://127.0.0.1:19443/wss/admin/" retry=1

Установить и включить сервер вебсокетов

ln -s /usr/abills/misc/websocket_backend.pl /usr/abills/libexec/websocket_backend.pl
chmod +x /usr/abills/libexec/websocket_backend.pl
iptables -I INPUT 1 -p tcp --dport 19443 -j ACCEPT

Включать при загрузке /etc/rc.local

/usr/abills/libexec/websocket_backend.pl -d

Конфигурация В конфиге укажите, что хотите подсоединяться к астериску для подписки на события libexec/config.pl

$conf{EVENTS_ASTERISK} = 1;
$conf{WEBSOCKET_URL} = 'wss://%host.example.com%/admin/wss/';

Также должны быть указаны настройки подключения к Астериску. libexec/config.pl

$conf{ASTERISK_AMI_IP} = '127.0.0.1';
$conf{ASTERISK_AMI_PORT} = '5039';
$conf{ASTERISK_AMI_USERNAME} = 'abills_admin';
$conf{ASTERISK_AMI_SECRET} = 'Password';

Запустите сервер вебсокетов

# /usr/abills/libexec/websocket_backend.pl -d

Консольные аргументы

LOG_FILE Куда писать лог, по умолчанию /tmp/abills_websocket.log
DEBUG Уровень режима отладки, по умолчанию LOG_INFO

Описание работы

Демон подключается к AMI, и слушает Newchannel события.
На билинге, нужно включить модуль Events, и прописать $conf{EVENTS_ASTERISK} = 1.

При успешном подключении, в логе будет
Connecting to asterisk
Connected to Asterisk::AMI

При любом звонке (Newchannel), появится
Got Newchannel event. $caller_number calling to $called_number

Дальше в базе ищет админа с номером $called_number, если нашло и он сейчас онлайн в билинге,
(если не онлайн, в логе Can't notify $aid, no connection)
будет произведен поиск по абонентам в модуле VOIP по полю number == $caller_number.
(если не нашло, в логе That's not an ABillS registered number )

Дальше собирается информация об абоненте, и отсылается в браузер как уведомление.