Архив метки: Asterisk

Входящие звонки по времени в FreePBX

Работу системы FreePBX можно организовать таким образом, чтобы телефония работала по разной логике в различное время суток. Например, можно сделать разделение на дневной и ночной режимы работы. В данной статье будет рассмотрен заворот входящей маршрутизации в правила по времени.

Постановка задачи


Рассмотрим следующую ситуацию (разделени на дневной и ночной режимы): необходимо чтобы днем все входящие звонки заворачивались на IVR с приветствием и возможностью выбора подменю и донабора внутренних номеров сотрудников, а в нерабочее время уже озвучивалось другое IVR в котром будет отключена возможность прямого донабора и по таймауту будет переход, например, на голосовую почту, чтобы звонивший мог оставить сообщение.

Изначально необходимо создать два разных IVR и назвать их, например, IVR-day и IVR-night. (Более подробно о составлении IVR можно посмотреть здесь)

Создание временной группы


Далее создаются необходимые временные группы. Настройки производятся на вкладке Applications>Time Groups: в поле Description вводится описание временной группы — целесообразно в описании указывать временной диапазон, который будет использоваться. Затем настраиваются параметры времени: Time to start/Time to finish — время начала/окончания работы группы (время можно выставлять с точностью до минуты), Week Day start/Week Day finish — день недели началы/окончания работы. Для примера возьмем с понедельника по пятницу с 9:00 до 18:00.

После сохранения настроек созданные временные группы отображаются в правом верхнем углу окна. Здесь же находится кнопка Add Time Group при нажатии на которую открывается страница добавления новой временной группы.

 

Создание правил по времени


Теперь можно перейти на страницу создания Временных правил: Applications>Time Conditions. В поле Time Condition name задается имя правила, например, worktime. В поле Time Group выбирается созданная на предыдущем шаге временная группа. Поле Destination if time matches (Назначение если время совпадает) — соответственно выставляет назначение куда будет направлен входящий звонок при совпадении времени — в данном случае будет завернут в IVR-day. Поле Destination if time does not match (Назначение если время не совпадает) — соответственно выставляет назначение куда будет направлен входящий звонок при не совпадении времени — в данном случае будет завернут в IVR-night.

 

Заворот входящих звонков в правило по времени


Теперь необходимо завернуть входящие маршруты на только что созданное правило по времени. Вкладка Connectivity>Inbound Route. Создается маршрут для AnyDID/AnyCID и заворачивается на созданное правило по времен: в поле Set Destination указывается Time Conditions, затем выбирается необходимое правило.

На этом настройка перенаправление входящей маршрутизации на правила по времени закончена.



2017-07-28T16:32:58
Asterisk

Ошибка asterisk — Sending fake auth rejection for device

На днях менял в офисе шлюз freebsd на mikrotik. Сразу скажу зачем это делал, чтобы не было вопросов. Freebsd была очень старая, обслуживать или что-то настраивать на ней было неудобно, пришло время ее заменить. Перенес все настройки, в том числе и проброс портов со старого шлюза на новый. В сети стоял астериск за nat и с одним номером возникли проблемы.

Читать

traps: asterisk trap invalid opcode

Столкнулся на днях со странной ошибкой asterisk. Мне нужно было перенести виртуальную машину с настроенной телефонией с одного гипервизора Hyper-V на другой. Воспользовался штатным функционалом экспорта импорта, но виртуалка не завелась на новом месте.

Читать

Asterisk + MonAst

(Ubuntu 14.04 LTS, Asterisk 11, Apache2, MySQL5.5, PHP5.5, FreePBX 2.11 + MonAst3)

Проверяем установлен ли пакет python и его версию

# python —version

Python 2.7.6

Ставим пакет HTTP_Client:

# pear install HTTP_Client

WARNING: «pear/HTTP_Client» is deprecated in favor of «pear/HTTP_Request2»

WARNING: channel «pear.php.net» has updated its protocols, use «pear channel-update pear.php.net» to update

WARNING: «pear/HTTP_Request» is deprecated in favor of «pear/HTTP_Request2»

WARNING: «pear/Net_URL» is deprecated in favor of «pear/Net_URL2»

downloading HTTP_Client-1.2.1.tgz …

Starting to download HTTP_Client-1.2.1.tgz (10,269 bytes)

…..done: 10,269 bytes

downloading HTTP_Request-1.4.4.tgz …

Starting to download HTTP_Request-1.4.4.tgz (17,233 bytes)

…done: 17,233 bytes

downloading Net_URL-1.0.15.tgz …

Starting to download Net_URL-1.0.15.tgz (6,393 bytes)

…done: 6,393 bytes

downloading Net_Socket-1.0.14.tgz …

Starting to download Net_Socket-1.0.14.tgz (5,655 bytes)

…done: 5,655 bytes

install ok: channel://pear.php.net/Net_URL-1.0.15

install ok: channel://pear.php.net/Net_Socket-1.0.14

install ok: channel://pear.php.net/HTTP_Request-1.4.4

install ok: channel://pear.php.net/HTTP_Client-1.2.1

Как видим — в процессе установки говорит об устарении пакета и предлагает поставить более новый:

# pear install HTTP_Request2

WARNING: channel «pear.php.net» has updated its protocols, use «pear channel-update pear.php.net» to update

downloading HTTP_Request2-2.2.1.tgz …

Starting to download HTTP_Request2-2.2.1.tgz (109,716 bytes)

…………………….done: 109,716 bytes

downloading Net_URL2-2.2.0.tgz …

Starting to download Net_URL2-2.2.0.tgz (20,071 bytes)

…done: 20,071 bytes

install ok: channel://pear.php.net/Net_URL2-2.2.0

install ok: channel://pear.php.net/HTTP_Request2-2.2.1

Пакеты Twisted и StarPy будем ставить из исходников.

# cd /usr/src/

# wget https://pypi.python.org/packages/source/T/Twisted/Twisted-15.5.0.tar.bz2#md5=0831d7c90d0020062de0f7287530a285

# apt-get install python-starpy

# tar -xvf Twisted-15.5.0.tar.bz2

# cd Twisted-15.5.0/

# python setup.py install

Traceback (most recent call last):

File «setup.py», line 13, in <module>

import setuptools

ImportError: No module named setuptools

Выдало ошибку о недоступности пакета setuptools

Ставим его:

# wget https://bootstrap.pypa.io/ez_setup.py -O — | python

Finished processing dependencies for setuptools==19.2

Повторяем после установки соответствующего пакета

# python setup.py install

twisted/test/raiser.c:4:20: fatal error: Python.h: Нет такого файла или каталога

#include «Python.h»^

compilation terminated.

error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1

Снова ругается

Применим команду на установку python с библиотеками

# apt-get install python-dev

После повторим ввод команды

# python setup.py install

Finished processing dependencies for Twisted==15.5.0

Готово!

Ну и самый главный виновник торжества. На момент написания актуальная версия — 3.0b4:

# wget http://downloads.sourceforge.net/project/monast/Monast%20for%20Asterisk%201.4%2C%201.6%20and%201.8/3.0b4/monast-3.0b4.tar.gz

# tar -xvf monast-3.0b4.tar.gz

# cd monast-3.0b4

# ./install.sh

Для Ubuntu — копируем скрипт от Debian и добавляем его в автозагрузку:

# cp contrib/init.d/rc.debian.monast /etc/init.d/monast

# chmod 755 /etc/init.d/monast

# update-rc.d monast defaults 91 60

Настроим /etc/monast.conf

[global]

# Bind client connetions on host:port

bind_host = 127.0.0.1

bind_port = 5039

# Use client autentication on browser.

#auth_required = false ; по умолчанию

auth_required = true ; Указываем что аутентификация обязательна

##

## Servers Definitions

##

[server: Amazon] # Server name can not contains space

hostname = 127.0.0.1

hostport = 5038

username = monast

password = password

# Default user context

#default_context = default ; по умолчанию

default_context = from-internal ; для FreePBX

# Context to use in transfer calls

#transfer_context = default ; по умолчанию

transfer_context = from-internal ; для FreePBX

# Context and prefix for meetme

#meetme_context = default ; по умолчанию

meetme_context = from-internal ; для FreePBX

meetme_prefix  =.

#[server: Server_2] # Server name can not contains space

#hostname = 192.168.0.2

#hostport = 5038

#username = ami_username

#password = ami_password

# Default user context

#default_context = default

# Context to use in transfer calls

T#ransfer_context = default

# Context and prefix for meetme

#meetme_context = default

#meetme_prefix  =

[user: ubuntu]

secret  = secret

roles   = originate,queue,command,spy

servers = ALL

Запуск

# /etc/init.d/monast start

Starting MonAst…                                                              [OK]

Все. Можно подключаться и проверять. Открываем браузер и в строке адреса вбиваем: http://localhost/monast/

Источники: http://habrahabr.ru/post/143053/

http://asterisk-pbx.ru/wiki/artikle/monast



2016-09-14T08:28:31
Asterisk

Мониторинг состояния Asterisk с помощью MonAst

Осмотр возможностей

MonAst позиционируется разработчиками как инструмент мониторинга, который действует как панель оператора для Asterisk. Распространяется по лицензии BSD. Проект написан с использованием Python (демон для связи с Asterisk по AMI), PHP, JS (AJAX).

Из возможностей просмотра (в режиме real-time) — следующее:

  • Работа с несколькими серверами (с помощью переключения между ними)
  • Многопользовательский режим с указанием прав доступа
  • Отображение пользователей и пиров (SIP, IAX, DAHDI, Khomp, etc…)
  • Отображение активных каналов и вызовов (с именем канала и CallerID)
  • Каналы конференции (с отображением подключённых пользователей)
  • Припаркованные звонки (Parked Calls)
  • Очереди (с отображением статистики, участников и ожидающих клиентов)

Из возможностей выполнения операций:

  • Выполнение (инициация) вызовов
  • Трансфер вызовов
  • Сброс вызовов
  • Паркование вызовов
  • Прослушивание звонков (Spy Calls)
  • Приглашение участников в конференцию
  • Удаление участников конференции
  • Добавление пользователей (или пиров) как участника любой очереди
  • Удаление участников из очереди
  • Постановка и снятие с паузы участников очереди
  • Выполнение CLI команд

Как видно — список возможностей достаточно обширный.

Установка

Подопытной системой у нас будет чистая Ubuntu 10.10 с базовыми программами и обновлениями. MonAst не обязательно ставить на хосте с Asterisk. У меня, к примеру, MonAst стоит локально на ноутбуке — и я прекрасно мониторю все наши 6 серверов с Asterisk.

Прежде чем приступить к установке MonAst — пробежимся по требованиям.

Так как демон, с помощью которого происходит обмен между Asterisk и MonAst (посредством AMI — Asterisk Manager API) написан на Python, то первым делом проверяем его присутствие в системе:

it@ubuntu-test ~ $ python --version

Python 2.6.6


Если видим нечто подобное — значит все в порядке. Если по каким то причинам его нет — выполняем команду:

it@ubuntu-test ~ $ sudo apt-get update && sudo apt-get install python


Двигаемся дальше.

Так как все это будет отображаться через web-интерфейс, то нужно иметь установленный http сервер с поддержкой php, а так же php-pear. Если ранее данного комплекта не стояло — выполняем команду (дополнительно поставим mc — для удобства навигации и редактирования):

it@ubuntu-test ~ $ sudo apt-get install apache2 php5 php-pear mc


Ну и напоследок — установка зависимостей для обсуждаемого продукта. Этот список у нас невелик:

  1. Twisted Python 10.1+
  2. zope.interface 3.6+
  3. Starpy SVN-Trunk
  4. PHP PEAR Packages: (HTTP_Client)

Пакет zope.interface уже стоял в системе (был в наличии из коробки).

Ставим пакет HTTP_Client:

it@ubuntu-test:/usr/src$ sudo pear install HTTP_Client

WARNING: "pear/HTTP_Client" is deprecated in favor of "pear/HTTP_Request2"

WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update

WARNING: "pear/HTTP_Request" is deprecated in favor of "pear/HTTP_Request2"

WARNING: "pear/Net_URL" is deprecated in favor of "pear/Net_URL2"

downloading HTTP_Client-1.2.1.tgz ...

Starting to download HTTP_Client-1.2.1.tgz (10,202 bytes)

.....done: 10,202 bytes

downloading HTTP_Request-1.4.4.tgz ...

Starting to download HTTP_Request-1.4.4.tgz (17,109 bytes)

...done: 17,109 bytes

downloading Net_URL-1.0.15.tgz ...

Starting to download Net_URL-1.0.15.tgz (6,303 bytes)

...done: 6,303 bytes

downloading Net_Socket-1.0.10.tgz ...

Starting to download Net_Socket-1.0.10.tgz (5,429 bytes)

...done: 5,429 bytes

install ok: channel://pear.php.net/Net_URL-1.0.15

install ok: channel://pear.php.net/Net_Socket-1.0.10

install ok: channel://pear.php.net/HTTP_Request-1.4.4

install ok: channel://pear.php.net/HTTP_Client-1.2.1


Как видим — в процессе установки говорит об устаревании пакета и предлагает поставить более новый:

it@ubuntu-test:/usr/src$ sudo pear install HTTP_Request2


Пакеты Twisted и StarPy будем ставить из исходников. Но при установке выявились еще зависимости, которые и исправляем (попутно перейдем в режим суперпользователя):

it@ubuntu-test:~$ sudo su

root@ubuntu-test:~$ cd /usr/src/

root@ubuntu-test:/usr/src# wget http://pypi.python.org/packages/source/T/Twisted/Twisted-12.0.0.tar.bz2#md5=cf49a8676c21c50faf1b42b528049471

root@ubuntu-test:/usr/src# wget http://downloads.sourceforge.net/project/starpy/starpy/1.0.0a13/starpy-1.0.0a13.tar.gz

root@ubuntu-test:/usr/src# tar -xvf Twisted-12.0.0.tar.bz2

root@ubuntu-test:/usr/src# tar -xvf starpy-1.0.0a13.tar.gz

root@ubuntu-test:/usr/src# apt-get install build-essential gcc-4.5 libssl-dev python-dev

root@ubuntu-test:/usr/src# cd Twisted-12.0.0

root@ubuntu-test:/usr/src/Twisted-12.0.0# python setup.py install


Если видим надпись «Finished processing dependencies for Twisted==12.0.0» — значит установка прошла успешно и переходим дальше. Если выскакивает ошибка — то скорее не хватает какого-то компонента. Проверте по списку — все ли зависимости установлены? Идем дальше:

root@ubuntu-test:/usr/src/Twisted-12.0.0# cd ..

root@ubuntu-test:/usr/src# cd starpy-1.0.0a13

root@ubuntu-test:/usr/src/starpy-1.0.0a13# python setup.py install

root@ubuntu-test:/usr/src/starpy-1.0.0a13# cd ..


Ну и самый главный виновник торжества. На момент написания актуальная версия — 3.0b4:

root@ubuntu-test:/usr/src# wget http://downloads.sourceforge.net/project/monast/Monast%20for%20Asterisk%201.4%2C%201.6%20and%201.8/3.0b4/monast-3.0b4.tar.gz

root@ubuntu-test:/usr/src# tar -xvf monast-3.0b4.tar.gz

root@ubuntu-test:/usr/src# cd monast-3.0b4

root@ubuntu-test:/usr/src/monast-3.0b4# ./install.sh


В процессе установки скрипт задаст пару вопросов относительно путей. Если предложенные им варианты устраивают — соглашаемся. Иначе прописываем свои данные. Я лишь изменил путь, куда ложатся .php файлы

MonAst HTML path [/var/www/html/monast]: /var/www/asterisk/monast/



Может показаться что на этом установка закончена. Но не тут то было. Стартовый скрипт /etc/init.d/monast ставится лишь для систем SuSE, RedHat, Debian, Gentoo, Slackware, FreeBSD. Но не Ubuntu и ей подобные. Потому копируем скрипт от Debian и добавляем его в автозагрузку:

root@ubuntu-test:/usr/src/monast-3.0b4# cp contrib/init.d/rc.debian.monast /etc/init.d/monast

root@ubuntu-test:/usr/src/monast-3.0b4# chmod 755 /etc/init.d/monast 

root@ubuntu-test:/usr/src/monast-3.0b4# update-rc.d monast defaults 91 60


Вот теперь установка у нас окончена. Можно переходить к настройке.

Настройка

Перво наперво нужно выполнить настройку самого Asterisk, дабы сабжевое ПО могло успешно подключится и обмениваться информацией. На сервере с Asterisk переходим по пути /etc/asterisk/ и правим файл manager.conf. Если серверов несколько — делаем подобные поправки на нужных.

root@asterisk ~ $ mcedit /etc/asterisk/manager.conf


; 

; AMI - The Asterisk Manager Interface 

; 



[general] 

enabled = yes		; Активируем AMI

port = 5038		; Порт, по которому к данному сервису будет подключаться MonAst

bindaddr = 0.0.0.0	; Прослушиваем все интерфейсы в системе для принятия подключения

displayconnects = yes	; Показывать в консоли Asterisk о факте подключения



webenabled = no 	; Выключаем встроенный в Asterisk static_http



allowmultiplelogin = yes	; Разрешаем вход вход под одним и тем же пользователем с разных мест.

timestampevents = yes		; Добавлять метку времени для событий



; debug = on	; Можно включить отладочный режим для сообщений AMI



[monast_user]                                                                                                                  

secret=qwerty123				; Пароль для подключения

deny=0.0.0.0/0.0.0.0				; Запрещаем подключение с любого адреса

permit=127.0.0.1/255.255.255.0		; И постепенно разрешаем нужные

permit=192.168.1.10/255.255.255.0		; Так разрешаем конкретный хост

permit=192.168.2.0/255.255.255.0		; А вот так можно разрешить подсеть

writetimeout=100				; Таймаут для посылки команд



; Разрешения для данного пользователя. Можно указать all, но так наглядней

read=system,call,log,verbose,command,agent,user,config,originate,reporting

write=system,call,log,verbose,command,agent,user,config,originate,reporting


После чего перезагрузим конфигурацию Asterisk для модуля manager:

root@asterisk$ asterisk -rx "manager reload"


На этом настройка Asterisk закончена. Переходим к конфигурации самого MonAst’а.

Файл с параметрами находится по пути /etc/monast.conf. Его и правим. Скажу наперед — сложностей в настройке не возникло, приведенные в файле комментарии четко описывают тот или иной параметр. Но для примера приведу свой пример файла

root@ubuntu-test:/usr/src/monast-3.0b4# cd /etc/

root@ubuntu-test:/etc# mcedit monast.conf


# Copyright (c) 2008-2011, Diego Aguirre

# All rights reserved.



##

## Global Section

##

[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 = 192.168.1.1

hostport = 5038

username = monast_user

password = qwerty123



# Default user context

default_context = default



# Context to use in transfer calls

transfer_context = default



# Context and prefix for meetme

meetme_context = default

meetme_prefix  = 



[server: Server2]		; Параметры для второго сервера

hostname = 192.168.2.1

hostport = 5038

username = monast_user

password = qwerty123



# Default user context

default_context = default



# Context to use in transfer calls

transfer_context = default



# Context and prefix for meetme

meetme_context = default

meetme_prefix  = 



## ===================================



##

## Peers Definitions

##

[peers]

# sort peers (options: channel, callerid)

sortby = callerid



# default show/hide

default = show



# hide peer when default = show

;<Server Name>/SIP/user-1 = hide



# show peer when default = hide

;<Server Name>/SIP/user-2 = show



# always show peer.

;<Server Name>/SIP/user-3 = force



# force CallerID (only in forced mode)

;<Server Name>/SIP/user-4 = force,Diego Aguirre <5555>



# Create peer groups

;<Server Name>/@group/Group 1 = SIP/user-1,SIP/user-2

;<Server Name>/@group/Group 2 = SIP/user-3,SIP/user-4



## ===================================



##

## Meetmes / Conferences Definitions

##

[meetmes]

# default show/hide

default = hide



# hide meetme when default = show

;<Server Name>/1234 = hide



# show meetme when default = hide

;<Server Name>/1234 = show



# always show meetme

;<Server Name>/1234 = force



## ===================================



##

## Queues Definitions

##

[queues]

# defualt show/hide

default = hide



# show queue queue01

;<Server Name>/queue01 = show



# show queue queue02 with display name Support

;<Server Name>/queue02 = show,Support



# hide queue queue03

;<Server Name>/queue03 = hide



# Map Member name

;<Server Name>/@member/SIP/user-1 = Diego Aguirre <5555>



## ===================================



## Define users and roles to use on auth_required is set to true

## roles must be:

##                originate : user can originate, transfer, park and drop calls

##                agent     : user cans add, remove, pause and unpause members on queues

##                command   : user can execute asterisk cli commands

##                spy       : user can start a spy



[user: admin]		; Мего-админ

secret  = SuperPuperDruper

roles   = originate,queue,command,spy 

servers = ALL



[user: manager]	; Пользователь с возможностью просмотра обеих (всех) серверов

secret  = password

roles   = originate

servers = ALL



[user: server1]		; Пользователь с возможностью просмотра одного (первого) серверов

secret  = 12345

roles   = originate

servers = Server1



[user: server2]		; Пользователь с возможностью просмотра и выполнения команд на одном (втором) сервере 

secret  = 54321

roles   = originate,command

servers = Server2


Сохраняем изменения и перезагружаем демон:

root@ubuntu-test:/etc# /etc/init.d/monast restart


Все. Можно подключаться и проверять. Открываем браузер и в строке адреса вбиваем: http://localhost/asterisk/monast/

Если ставили «auth_required = true» то вводим логин, пароль — и наслаждаемся рабочим инструментом 🙂

MonAst Mixed Pannels

Важное замечание. В режиме «без аутентификации» все, кто работают в панели оператора MonAst — имеют полные права, т.е. являются «суперпользователями». А как мы знаем «Оружие, данное в неумелые руки, может навредить». Будьте внимательны.

Так же в файле /var/www/asterisk/monast/lib/config.php находятся параметры адреса и порта, где работает демон monast.py, параметры отображение вкладок debug и cli, а так же некоторых не менее интересных параметров.

Обзор возможностей

Теперь же пробежимся по возможностям данного программного продукта.

После входа на web-интерфейс мы видим несколько вкладок. А если быть точнее:

  • Mixed Pannels — Вкладка с практически всем разделами сразу. Удобство заключается в том, что можно отобразить лишь нужные и, не переключаясь, видеть необходимую информацию в одном месте.
  • Peers/Users — Просмотр и управление достуными пирами и пользователями.
  • Meetme Rooms — Просмотр и управление конференциями
  • Channels/Calls — Просмотр и управление активными вызовами и поднятыми каналами.
  • Parked Calls — Просмотр и управление припаркованными вызовами
  • Queues — Просмотр и управление очередью звонков
  • Asterisk CLI — Командная строка Asterisk. Если у пользователя есть права выполнения команд в консоли, то именно здесь можно ввести нечто схожее с «core show version» 🙂

Разобраться в возможностях не составляет труда и, возможно, даже лучше будет если Вы сами пробежитесь и опробуете доступные функции — так вы четко будете понимать что и как работает. Но я все таки опишу парочку интересных из них 🙂

Originate call (инициирование вызова). Из названия функции ясно — можно соединить внутреннего абонента с каким либо номером (если он, номер, сможет обработаться Вашим dialplan’ом). Для выполнения функции нужно нажать правой кнопкой мыши (далее по тексту — пкм) на нужном аккаунте и выбрать соответствующий пункт. В появившемся окне вводим нужный номер и, вуаля — у выбранного человека звонит телефонный аппарат, он берет трубку и Asterisk соединяет его с выведенным нами номером. Так же можно перетащить мышкой один аккаунт на другой и, согласившись — инициировать соединение между ними.

Meetme Rooms (комната конференции). Перейдя в данный раздел можно управлять уже созданными конференциями, либо создать новую и пригласить туда определённых участников. Для создания своей конференции — переходим в соответствующий раздел, нажимаем «Create Dynamic Meetme» и в окне вводим запрашиваемую информацию. Нажали «Ок» — и процесс пошел-поехал 🙂

Spy (прослушивание вызова). Что она делает? Из названия можно понять — дает возможность подключится к выбранному разговору и прослушать речевой поток. Функция может быть полезна при использовании в call-центрах для контроля и проверки агентов. При этом в процессе разговора собеседники даже не подозревают о факте прослушивания. По крайней мере я, тестируя данную возможность, никакого сигнала или уведомления не слышал. Для того, чтобы пользователь панели имел право на прослушивание — нужно чтобы в поле roles его прав доступа присутствовало spy. Потому для того, чтоб ограничить использование данной функции с нехорошим умыслом — включайте аутентификацию для доступа к панели и давайте права на ее использование только доверенным для этого пользователям. Начальнику отдела, например 🙂

Заключение

MonAst, как и альтернативные проекты с подобной функциональностью (FOP, Links и пр.) однозначно имеет право на существование и, соответственно, использование в рабочем процессе.

Простота использования, относительная лёгкость в установке и настройке, мониторинг нескольких серверов с одного места — все это, в большинстве случаев, будет более чем достаточно.

Ссылки



2016-09-11T16:34:23
Asterisk

Установка Asterisk 13 на Debian 8

В сегодняшней статье мы расскажем, как установить Asterisk 13 на Debian 8

Установим зависимости, которые будут необходимы для корректной работы Asterisk

apt-get install -y build-essential autoconf libncurses5-dev libssl-dev libxml2-dev libsqlite3-dev libmysqlclient-dev curl 

mpg123 libxml2 libxml2-dev libaudiofile-dev subversion sox libsox-fmt-all uuid-dev libjansson-dev libiksemel-dev libssl-dev 

libtiff5-dev mysql-client libmyodbc lame linux-headers-`uname -r` mysql-server mysql-client

При установки у вас нужно будет задать пароль для пользователя root в MySQL

Запустим и включим автозагрузку MySQL

/etc/init.d/mysql restart

systemctl enable mysql

Переходим в /usr/src/ скачиваем, распаковываем и компилируем pjproject

cd /usr/src 

wget http://www.pjsip.org/release/2.4.5/pjproject-2.4.5.tar.bz2 

tar -xjvf pjproject-*.tar.bz2 

rm -f pjproject-*.tar.bz2 

cd pjproject-* 

CFLAGS='-DPJ_HAS_IPV6=1' ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr 

make dep && make && make install

Устанавливаем DAHDI

cd /usr/src 

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz 

tar xvfz dahdi-linux-complete-current.tar.gz 

rm -f dahdi-linux-complete-current.tar.gz 

cd dahdi-linux-complete-* 

make all && make install && make config

Устанавливаем LibPRI

cd /usr/src 

wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz 

tar xvfz libpri-current.tar.gz 

rm -f libpri-current.tar.gz

cd libpri-* 

make && make install

Устанавливаем SpanDSP

apt-get install -y libspandsp2 libspandsp-dev

Теперь можно перейти к установке Asterisk 13

cd /usr/src 

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz

Распаковываем

tar xvfz asterisk-13-current.tar.gz 

rm -f asterisk-13-current.tar.gz 

cd asterisk-13*

Начнем установку Asterisk 13. Необходимые модули устанавливаем командой make menuselect.

contrib/scripts/get_mp3_source.sh 

contrib/scripts/install_prereq install 

./configure

make menuselect

По большей части, все необходимые модули уже включены. Вы можете что-то добавить или удалить. как минимум нужны следующие компоненты

Add-ons: format_mp3. Если будите использовать связку с mysql и собиарть cdr то следуюет добавить res_config_mysql,app_myql,cdr_mysql

Core Sound Packages: CORE-SOUNDS-EN-(GSM), CORE-SOUNDS-RU-(GSM), CORE-SOUNDS-EN-(WAV), CORE-SOUNDS-RU-( WAV)

Extras Sound Packages: EXTRA-SOUNDS-EN-GSM, EXTRA-SOUNDS-EN-WAV

Продолжим установку

make && make install && make config && make samples && ldconfig

Сделаем Русский язык по умолчанию:

sed -i 's/defaultlanguage = en/defaultlanguage = ru/' /etc/asterisk/asterisk.conf

sed -i 's/;language=en/language=ru/' /etc/asterisk/*.conf

Создаем пользователя и даем права

adduser --system --group --home /var/lib/asterisk --no-create-home --gecos "Asterisk PBX" asterisk

chown -R asterisk:asterisk /var/lib/asterisk/

chown -R asterisk:asterisk /var/log/asterisk/

chown -R asterisk:asterisk /var/run/asterisk/

chown -R asterisk:asterisk /var/spool/asterisk/

chown -R asterisk:asterisk /etc/asterisk

Раскомментируем в /etc/default/asterisk

AST_USER="asterisk"

AST_GROUP="dialout"

Запускам Asterisk

service asterisk start



2016-09-11T14:03:28
Asterisk