Описание
MonAst позиционируется разработчиками как инструмент мониторинга, который действует как панель оператора для Asterisk. Распространяется по лицензии BSD. Проект написан с использованием Python
Из возможностей просмотра (в режиме real-time) — следующее:
- Работа с несколькими серверами (с помощью переключения между ними)
- Многопользовательский режим с указанием прав доступа
- Отображение пользователей и пиров (SIP, IAX, DAHDI, Khomp, etc...)
- Отображение активных каналов и вызовов (с именем канала и CallerID)
- Каналы конференции (с отображением подключённых пользователей)
- Припаркованные звонки (Parked Calls)
- Очереди (с отображением статистики, участников и ожидающих клиентов)
Из возможностей выполнения операций:
- Выполнение (инициация) вызовов
- Трансфер вызовов
- Сброс вызовов
- Паркование вызовов
- Прослушивание звонков (Spy Calls)
- Приглашение участников в конференцию
- Удаление участников конференции
- Добавление пользователей (или пиров) как участника любой очереди
- Удаление участников из очереди
- Постановка и снятие с паузы участников очереди
- Выполнение CLI команд
Установка
Установка будет выполнятся с учетом уже установленного сервера с FreeBPX
Установка компонентов из репозиториев
apt-get update apt-get install python-starpy python-twisted
Модули для php
pear install HTTP_Client pear install HTTP_Request2
Загрузка и установка Monast
cd /usr/src svn checkout https://monast.svn.sourceforge.net/svnroot/monast/trunk monast cd monast ./install.sh
В процессе установки скрипт задаст пару вопросов относительно путей. Если предложенные им варианты устраивают — соглашаемся. Иначе прописываем свои данные
MonAst base path указываем /etc/monast MonAst HTML path указываем /var/www/monast
Копируем скрипт запуска и назначим ему автостарт при загрузке системы
cp contrib/init.d/rc.debian.monast /etc/init.d/monast chmod +x /etc/init.d/monast update-rc.d monast defaults
Настройка MonAst и Asterisk
Отредактируем на сервере Asterisk файл manager.cong и добавим пользователя для MonAst
nano /etc/asterisk/manager.conf
Правим основную секцию
[general] enabled = yes; Активируем AMI port = 5038; Порт, по которому к данному сервису будет подключаться MonAst bindaddr = 0.0.0.0; Прослушиваем все интерфейсы в системе для принятия подключения displayconnects = yes; Показывать в консоли Asterisk о факте подключения
Добавим пользователя для MonAst
[monast_user] secret=isolda; Пароль для подключения deny=0.0.0.0/0.0.0.0; Запрещаем подключение с любого адреса permit=127.0.0.1/255.255.255.0; И постепенно разрешаем нужные permit=192.168.0.111/255.255.255.0; Так разрешаем конкретный хост permit=192.168.0.0/255.255.255.0; А вот так можно разрешить подсеть writetimeout=100; Таймаут для посылки команд
read=system,call,log,verbose,command,agent,user,config,originate,reporting write=system,call,log,verbose,command,agent,user,config,originate,reporting
Перезагрузим конфигурацию Asterisk для модуля manager:
asterisk -rx "manager reload"
На этом настройка Asterisk закончена.Переходим к конфигурации MonAst.
Редактируем файл monast.conf
nano /etc/monast.conf
Секция global
[global]
# Bind client connetions on host:port bind_host = 127.0.0.1 ; Разрешаем подключения с локального хоста bind_port = 5039 ; Порт для подключения к демону.
# Use client autentication on browser auth_required = true ; Указываем сто аутентификация обязательна
Параметры серверов.
## Servers Definitions [server: Server1] hostname = 0.0.0.0 ;Адрес сервера asterisk hostport = 5038 username = monast_user ;Пользователь указанный ранее на сервере Asterisk в файле manager.conf password = isolda ; пароль для пользователя
[Server: Server2]
... [Server: Server3] ...
Настройка пользователей
[user: admin] ; Главный Администратор secret = 123456 roles = originate,queue,command,spy; настройка прав servers = ALL ;Доступ ко всем серверам [user: adminS2] secret = 123456 roles = originate,queue,command,spy; настройка прав servers = Server2 ;Доступ только на Server2
Сохраняем изменения и делаем перезапуск
/etc/init.d/monast restart
Зайти и проверить можно через браузер, по адресу
http://localhost/html/monast/