Само приложение можно взять отсюда: https://github.com/nchizhov/Asterisk-Call-Viewer
Описание
Web-приложение для просмотра в реальном времени активности телефонных номеров Asterisk’а.
Скриншот интерфейса
Способ установки
- Склонировать репозиторий
- Поместить содержимое папки web в директорию на Web-Сервере
Настройки
- Отредактировать файл daemon/config.py:
config = {'host': '192.168.50.250', # IP-адрес AMI Asterisk 'port': 5038, # Порт AMI Asterisk 'login': 'nikolay', # Логин AMI Asterisk 'secret': 'qwerty'} # Пароль AMI Asterisk
- Отредактировать файл daemon/wraps_config.py:
config = {'ws_port': 8888} # Порт WebSocket-сервера
Остальные строки данного конфигурационного файла предназначены для примера обработки событий поступающих с AMI Asterisk’а.
- В файле daemon/py-ami.py в функцию wrap_list добавлять свои обработки событий. Примеры:
self.ami.wrapper({'PeerStatus': {'function': self.wraps.peer_status}})
или
self.ami.wrapper({'PeerStatus': {'function': self.wraps.peer_status, 'filter': {'PeerStatus': 'Registered'}}})
где ‘PeerStatus’ — это событие из AMI Asterisk’а
function — указывает на функцию, которая будет обрабатывать данное событие, в функцию передается в виде массива дополнительные данные по данному событию
filter — дополнительный фильтр по данному событию
Также есть возможность отменять обработку событий. Пример удаления всех событий с данным названием:
self.ami.unwrapper('Dial')
Пример удаления всех событий с дополнительным фильтром:
self.ami.unwrapper({'Dial': {'filter': {'SubEvent': 'End'}}})
- Запустить AMI-демона командой daemon/py-ami.py start. Параметры командной строки демона:
- start — Запуск демона
- stop — Остановка демона
- restart — Перезапуск демона
- Файл index.html в скопированной папке на Web-Сервер отредактировать, указав IP-адрес и порт WebSocket-сервера:
var ws_ip = "192.168.0.7"; var ws_port = "8888";
Зависимости
- Python > 2.5