Документация администратора

Групповой вызов абонентов

1. Пример группового вызова абонентов

Set : DIALGROUP(group_100,add)=PJSIP/user-101-domain
Set : DIALGROUP(group_100,add)=PJSIP/user-102-domain
Set : DIALGROUP(group_100,add)=PJSIP/user-103-domain
Set : DIALGROUP(group_100,add)=PJSIP/user-104-domain
Set : DIALGROUP(group_100,add)=PJSIP/user-105-domain
Dial : ${DIALGROUP(group_100)},60,tT

Добавление нового абонента

1. Настройка адреса записи

Канальный драйвер - Адрес записи.
Добавить.

Наименование - Наименование адреса записи, Пример user-100-domain.
Описание - Произвольное описание адреса записи.
Идентификатор - Идентификатор адреса записи, является уникальным. Пример: user-100-domain.
Контакт - Можно закрепить постоянный контакт за адресом записи.
Истечение срока действия по умолчанию - Через какое время требовать регистрацию абонентского устройства. Пример 600.
Почтовые ящики - 
Максимальное количество контактов - Максимальное количество контактов закрепленные за адресом записи.
Минимальный срок действия - Минимальный срок действия регистрации.
Удалить существующий - При повторной регистрации удаляет существующий контакт и заменяется новым.
Частота квалификации - Время проверки абонентского устройства.
Аутентификация квалификаций - Требуется ли аутентификация при квалификации.
Максимальный срок действия - Максимальный срок действия регистрации.
Исходящий прокси - Исходящий прокси.
Квалификация контакта только при ответе со статусом 2xx - Квалификация контактов происходит если только ответ от другой стороны приходит со статусом 2xx.
Поддержка Path - Включает поддержку Path для запросов регистрации.
Таймаут квалификации - Время ожидания ответа от абонентского устройства.
Расширение голосовой почты -
Удалить недоступные - Удалить контакты если при проверке они являются не доступными.
Группа - Группа в которую входит адрес записи.

2. Настройка аутентификации

Канальный драйвер - Аутентификация
Добавить

Наименование - Наименование аутентификации. Пример user-100-domain.
Описание - Произвольное описание аутентификации.
Идентификатор - Идентификатор аутентификации. Пример user-100-domain.
Тип аутентификации - Какой тип аутентификации используется.
Хэш md5 - Пароль в виде хэша md5.
Пароль - Пароль
Область - Область передаваемая в заголовках.
Имя пользователя - Имя пользователя авторизации. Пример user-100-domain.
Группа - Группа в которую входит аутентификация.

3. Настройка конечной точки.

Канальный драйвер - Конечная точка.
Добавить.

Наименование - Наименование конечная точки. Пример user-100-domain.
Описание - Произвольное описание конечная точки.
Идентификатор - Идентификатор конечная точки. Пример user-100-domain.
Транспорт - Используемый транспорт
Адрес записи - Используемый адрес записи
Аутентификация - Используемая аутентификация.
Маршрутизация - Используемая маршрутизация.
Запрещенные кодеки - Запрещенные кодеки.
Разрешенные кодеки - Разрешенные кодеки.
Прямое медиа - Дает возможность соединять абонентов в обход станции.
Режим DTMF - Режим DTMF.
Использование обратного порта - Для инициализации звонка используется обратный порт.
Поддержка ICE -
Музыка на удержании - Музыка на удержании для абонента.
Исходящая аутентификация - Исходящая аутентификация.
Перезаписать контакт - 
Симметричный RTP - 
Заголовок P-Asserted-Identity - 
Заголовок Remote-Party-ID - 
Определитель номера - Определитель номера. Пример: User <100>
Группа перехвата - Группа перехвата в которую входит конечная точка.
Перехват групп - Какие группы может перехватывать конечная точка.
Обнаружение факса -
Поддержка T.38 -
От домена - От какого домена отправлять запросы.
От пользователя - От какого пользователя отправлять запросы.
Таймаут RTP - Количество секунд после которых канал считается мертвым.
Контроль доступа - IP адреса с которых разрешена регистрация абонентов.
Индикаторы статуса - 
Поддержка WebRTC -
Группа - Группа в которую входит конечная точка.

Запись звонков в многоканальном режиме

Начиная с версии 8.3.4

Для настройки записи в многоканальном режиме необходимо изменить глобальную переменную MIXMONITOR_COMMAND в маршрутизации. Данный параметр можно изменить только в базе данных в таблице static_extensions.

Значение переменной по умолчанию:
/var/lib/asterisk/scripts/wavtompeg/script.php --uniqueid="^{UNIQUEID}"

Значение переменной для записи в многоканальном режиме:
/var/lib/asterisk/scripts/wavtostereompeg/script.php --uniqueid="^{UNIQUEID}"

Для записи разговора используется приложение MixMonitor с параметрами:
MixMonitor: ${UNIQUEID}.wav,,${MIXMONITOR_COMMAND}

Настройки приложения для записи в многоканальном режиме
MixMonitor: ${UNIQUEID}.wav,r(${UNIQUEID}_receive.wav)t(${UNIQUEID}_transmit.wav),${MIXMONITOR_COMMAND}

Для изменения параметра во всей телефонной станции необходимо выполнить запрос:

Выбрать строки:
SELECT * FROM `realtime_extensions` WHERE `app` = "MixMonitor";

Для записи в одноканальном режиме необходимо заменить строки выполнив следующий запрос:
UPDATE `realtime_extensions` SET `appdata` = "${UNIQUEID}.wav,,${MIXMONITOR_COMMAND}" WHERE `app` = "MixMonitor";

Для записи в многоканальном режиме необходимо заменить строки выполнив следующий запрос:
UPDATE `realtime_extensions` SET `appdata` = "${UNIQUEID}.wav,r(${UNIQUEID}_receive.wav)t(${UNIQUEID}_transmit.wav),${MIXMONITOR_COMMAND}" WHERE `app` = "MixMonitor";

Настройка автоматического обзвона

1. Предварительно необходимо настроить две маршрутизации. Для исходящих вызовов и для приветствия.

2. Загрузите файл голосового приветствия на сервер через модуль Медиа -> Аудиофайлы.

Назовите файл demo-domain.

3. Настройка маршрутизации.

Пример маршрутизации проигрывания файла:

Маршрутизация: ivr-autodial-domain.

Расширение: s.

NoOp
Answer
Playback : demo-domain
Hangup

Маршрутизация: outgoing-71234567890-domain.

Добавить расширение: h в исходящей маршрутизации. 

NoOp : Переменные при завершении
AGI : autodial/dialstatus.php,--dialstatus="${DIALSTATUS}",--contact_uuid="${contact_uuid}"
Hangup

4. После настройки маршрутизации можно переходить к настройкам автоматического обзвона.

Настройка уведомлений Телеграм

1. Авторизуемся на телефонной станции.

2. Поиск идентификатора чата сотрудника.

Для поиска идентификатора чата, необходимо что бы сотрудник отписался боту телеграм.
В телефонной станции заходим в меню Отладка - Телеграм.
Если сотрудник отписался боту, то можно увидеть сообщение от данного сотрудника и его идентификатор чата.
Данные об идентификаторе чата отображаются в течении последних 24 часов с момента написания телеграм боту.

3. Настройка контактов получателей сообщений.

Заходим в меню Модули - Телеграм.
Открываем список контактов получателей через Контакты в необходимой строке.
Добавляем сотрудника в список контактов получателей:
Наименование - Любое наименование.
Описание - Описание контакта.
Включен: Да.
Идентификатор чата - идентификатор чата скопированный из отладки.

Переадресация на сотовые номера сотрудников

Переадресация при входящих вызовах

Для настройка вызова на сотовый, необходимо использовать приложение Dial. Добавляется в место где необходимо произвести вызов на сотовый.

Dial: SIP/<Номер>@<Транк>,<Время>

Номер - Номер абонента
Транк - Транк через который совершается вызов
Время - Время дозвона абонента

Пример:

NoOp: Входящий вызов
...
...
...
Dial: SIP/user-110-office,15,tT
Dial: SIP/81234567890@peer-71234567890-office,60
Hangup

Переадресация при добавочных вызовах

Для настройки переадресации при наборе добавочного номера необходимо добавить в маршрутизацию добавочных номеров расширение 110.

Пример маршрутизации добавочного номера 110 с переадресацией на сотовый:

NoOp: Вызов на добавочный номер
Dial: SIP/user-110-office,15,t
Dial: SIP/81234567890@peer-71234567890-office,60
Hangup

Переадресация при внутренних вызовах

Для настройки переадресации при наборе внутреннего номера необходимо добавить в маршрутизацию внутренних номеров расширение 110.

Пример маршрутизации внутреннего номера 110 с переадресацией на сотовый:

NoOp: Вызов на внутренний номер
...
...
...
Dial: SIP/user-110-office,15,tT
Dial: SIP/81234567890@peer-71234567890-office,60
Hangup

Перевод транспорта на статическую конфигурацию

1. Отключение realtime для конфигурации транспорта.

update `static_sorcery` set `commented` = 1 where `filename` = "sorcery.conf" and `category` = "res_pjsip" and `var_name` = "transport";

2. Добавление статической конфигурации.

insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-udp","type","transport");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-udp","protocol","udp");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-udp","bind","0.0.0.0:5060");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-udp","local_net","192.168.0.0/24");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-udp","external_media_address","1.1.1.1");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-udp","external_signaling_address","1.1.1.1");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-udp","external_signaling_port","5060");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-udp","allow_reload","yes");

insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-tcp","type","transport");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-tcp","protocol","tcp");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-tcp","bind","0.0.0.0:5061");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-tcp","local_net","192.168.0.0/24");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-tcp","external_media_address","1.1.1.1");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-tcp","external_signaling_address","1.1.1.1");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-tcp","external_signaling_port","5061");
insert into static_pjsip (cat_metric,var_metric,commented,filename,category,var_name,var_val) values (0,0,0,"pjsip.conf","transport-tcp","allow_reload","yes");

Приложение Record

Краткое содержание

Запись в файл.

Описание

Если имя файла содержит «%d», эти символы будут заменены числом, увеличивающимся на единицу при каждой записи файла. Пользователь может нажать «#», чтобы прекратить запись и перейти к следующему приоритету. Если пользователь повесит трубку во время записи, все данные будут потеряны и приложение закроется.

Синтаксис

Record(filename.format,[silence,[maxduration,[options]]])

Аргументы

Ручное резервное копирование автоматической телефонной станции

Заходим через putty на сервер.

Для удобства можно использовать приложение Midnight Commander.

# mc

Создаем во временной папке \tmp, папку куда будем заливать резервные копии, и в будущем заархивируем (например backup).

# mkdir /tmp/backup

Копируем в нее, сохраняя всю структуру, папки:

etc/asterisk
opt/evolvex
var/lib/asterisk
var/www/html

Ниже производим действие в консоли:

# cd /tmp/backup
# mysqldump -p pbx > pbx.sql (вводим пароль от базы)

В папке backup должен появиться файл pbx.sql

Теперь всю папку backup заархивируем - находясь в папке tmp пропишем в консоли:

# cd /tmp
# tar czf archive.tar.gz /tmp/backup/

Полученный архив закачиваем на обменник, можно по ftp (логин@адрес_фтп_сервера) и вводим пароль пользователя.

Ручное создание резервной копии АТС

1. Запускается под администратором.

mkdir /tmp/backup
mysqldump -upbx -ppassword pbx > /tmp/backup/pbx.sql
mkdir /tmp/backup/etc
mkdir /tmp/backup/var
mkdir /tmp/backup/var/lib
mkdir /tmp/backup/var/www
mkdir /tmp/backup/var/www/html
cp -R /etc/asterisk /tmp/backup/etc/asterisk
cp -R /var/lib/asterisk /tmp/backup/var/lib/asterisk
cp -R /var/www/html/pbx /tmp/backup/var/www/html/pbx
cp -R /opt /tmp/backup
tar cfvz /tmp/backup.tar.gz /tmp/backup

2. Скопировать резервную копию backup.tar.gz на другой носитель.

Синтез речи

Введение

Для оперативного создания голосовых приветствий и интерактивных голосовых меню в версии 8.0.0 была реализована возможность синтезировать речь через Web интерфейс телефонной станции. Данный модуль использует синтез от компании Яндекс. Для подключения данного модуля необходимо получить Yandex IAM Token. Полученный токен необходимо ввести в Настройки - Яндекс - Yandex IAM Token.

Синтез речи

Для работы с синтезом речи необходимо открыть меню Медиа - Синтез речи. Откроется окно настроек синтеза речи.

image.png

Для выбора голоса и амплуа необходимо воспользоваться таблицей ниже.

Голос Пол Амплуа
alena (по умолчанию)
Ж (по умолчанию) нейтральная — neutral
радостная — good
filipp M
ermil M (по умолчанию) нейтральный — neutral
радостный — good
jane Ж (по умолчанию) нейтральная — neutral
радостная — good
раздраженная — evil
madirus M
omazh Ж (по умолчанию) нейтральная — neutral
раздраженная — evil
zahar M (по умолчанию) нейтральный — neutral
радостный — good
dasha Ж (по умолчанию) нейтральная — neutral
радостная — good
дружелюбная — friendly
julia Ж (по умолчанию) нейтральная — neutral
строгая — strict
lera Ж (по умолчанию) нейтральная — neutral
дружелюбная — friendly
masha Ж (по умолчанию) радостная — good
строгая — strict
дружелюбная — friendly
marina Ж (по умолчанию) нейтральная — neutral
шепот — whisper
дружелюбная — friendly
alexander M (по умолчанию) нейтральный — neutral
радостный — good
kirill M (по умолчанию) нейтральный — neutral
строгий — strict
радостный — good
anton M (по умолчанию) нейтральный — neutral
радостный — good

В текстовом поле добавить необходимый текст для синтеза и нажать кнопку "Синтезировать". Программа автоматически подготовит необходимый формат файла для телефонной станции, дополнительное конвертирование не нужно. В правой части окна в таблице "Список синтеза речи" добавится строка синтезированной речи.

synth-index-list.jpg

Для скачивания аудиофайла нажмите кнопку "Скачать".

Таблица заполняется по мере синтеза речи и хранит файлы за все время синтеза. При необходимости старые записи можно удалить.

Дополнительно

При необходимости данный модуль можно интегрировать с другими сервисами и приложениями. Для примера можно использовать интеграцию с CRM системой. При звонке в офис компании, голосовое приветствие будет синтезировано автоматически и система поприветствует клиента по имени и отчеству.

Скрипт отслеживания службы

1. Скрипт отслеживания службы

#!/bin/sh
# Название процесса
DAEMON="asterisk"
# "Убираем" grep из вывода
EXCLUDE="grep"
# Минимальное количество процессов
PROC_NUM="0"
# Команда для перезапуска
RESTART="/etc/init.d/asterisk restart"
# Утилита ps
PS="/bin/ps"
# Утилита grep
GREP="/usr/bin/grep"
if [ `$PS -ax | $GREP $DAEMON | $GREP -v $EXCLUDE | wc -l` -le "$PROC_NUM" ]
then
   $RESTART
fi

Смена исходящей маршрутизации для внутреннего номера

1. Меню - Канальный драйвер - Конечная точка

image.png

2. Нажимаем редактировать напротив нужной конечной точки.

3. Меняем параметр маршрутизация.

image.png

Сообщение после звукового сигнала

Подготовка аудиофайла

Необходимо подготовить файл звукового приветствия, например "Оставьте сообщение после звукового сигнала".
Через меню Медиа - Аудиофайлы загрузите файл с наименованием "message-office".
Файл должен быть в формате wav (rate 8000 Hz, sample rate 16 bits, mono).

Настройка маршрутизации

Необходимо подготовить новую маршрутизацию, например "message-office"
В созданной маршрутизации добавить расширение "s"

NoOp : Сообщение после звукового сигнала
Answer
Playback : message-office
Record : /tmp/${UNIQUEID}.wav,,300,k
Hangup

Настройка отправки на электронную почту

Добавить в маршрутизацию расширение "h"

NoOp : Отправка сообщения на электронную почту
AGI : email/attachment.php,--source="${CALLERID(number)}",--destination="Номер",--emails="mail@example.com",--attachment="/tmp/${UNIQUEID}.wav"
Hangup

Настройка перенаправления

В нужном месте маршрутизации добавьте приложение "GoTo"

NoOp : Входящий вызов
...
...
...
Goto : message-office,s,1
Hangup