Сергей Маликов
05.02.2020
2685

Серийное изменение параметров записи разговоров во FreePBX

Описывается множественное внесение изменений в параметры записи разговоров различных объектов. В веб-интерфейсе FreepPBX можно просматривать и изменять параметры, отвечающие за запись разговоров у очередей, входящих и исходящих маршрутов, ринг групп, отдельных экстеншенов. Изменение параметров записи в одном или нескольких местах, можно выполнить через веб-интерфейс, но при необходимости множественных изменений это может быть не совсем удобно. […]

Описывается множественное внесение изменений в параметры записи разговоров различных объектов.

В веб-интерфейсе FreepPBX можно просматривать и изменять параметры, отвечающие за запись разговоров у очередей, входящих и исходящих маршрутов, ринг групп, отдельных экстеншенов. Изменение параметров записи в одном или нескольких местах, можно выполнить через веб-интерфейс, но при необходимости множественных изменений это может быть не совсем удобно.

Конфигурационные данные, в том числе, — отвечающие за запись разговоров, во FreePBX хранятся в базе данных и при каждом нажатии кнопки применения настроек в каталоге /etc/asterisk/ переписываются все конфигурационные файлы. Исключения — конфигурации *_custom.conf(пользовательские) и *_override_freepbx.conf(переписывающие стандартный контекст). Поэтому все изменения необходимо вносить через БД, а не непосредственно в текстовые файлы в /etc/asterisk.

Параметры записи разговоров могут принимать значения:

  • force (записывать принудительно) – имеет более высокий приоритет, всегда переопределяет значение, установленное в другом вышестоящем приложении; пользователи не смогут останавливать/стартовать запись.
  • yes (да) —  имеет более низкий приоритет, не переопределяет значение, установленное ранее в другом вышестоящем приложении; пользователи смогут останавливать/стартовать запись(если в настройках у этого экстеншена включена опция override).
  • dontcare (по умолчанию) — низкий приоритет.  Не вносит изменения в режим записи разговоров, установленный другими приложениями.
  • No (нет) — имеет более низкий приоритет, не переопределяет значение, установленное ранее в другом вышестоящем приложении; пользователи смогут останавливать/стартовать запись (если в настройках у этого экстеншена включена опция override).
  • Never (никогда) – имеет более высокий приоритет, всегда переопределяет значение другого приложения; пользователи не смогут изменять режим записи (останавливать либо запускать).

Таким образом, если при прохождении вызова ранее было встречено значение ‘yes’, а потом ‘no’ в приоритете будет первое значение. Если при прохождении вызова ранее было встречено значение ‘yes’, а потом ‘never’ режим записи будет установлен в ‘never’.

В базе данных параметры, отвечающие за режимы записи разговоров, хранятся в различных таблицах:

  • у ринг групп – в таблице ringgroups  (в столбце recording);
  • у очередей – в таблице queues_details   в поле data в строке, где в столбце keyword также находится значение «recording»;
  • у входящих маршрутов – в таблицеcallrecording_module (поле callrecording), где в столбце «display» также находится значение «did»;
При не изменении  установленного значения по умолчанию (dontcare) у входящих/исходящих маршрутов соответствующая строка в базе будет отсутствовать.
  • у исходящих маршрутов — в таблицеcallrecording_module (поле callrecording), где в столбце «display» также находится значение «routing»;
  • у добавочных номеров  — в таблице «users» в столбце «recording».

Изменение с помощью веб-приложения для администрирования БД

Для администрирования БД также можно воспользоваться каким-либо веб-приложением, например,  Adminer.

Ссылка на обзорную  статью об Adminer https://voxlink.ru/kb/linux/adminer-veb-prilozhenie-dlja-administrirovanija-bd/

Для этого необходимо авторизоваться в Adminer, ввести логин — пароль mysql, выбрать базу данных для работы, выбрать СУБД (по умолчанию — MySQL), указать сервер (по умолчанию — localhost).

Авторизация Adminer
Авторизация Adminer

Для поиска значений по всем таблицам в выбранной базе данных воспользоваться формой «Поиск в таблицах».

Adminer – поиск по всем таблицам
Adminer – поиск по всем таблицам

Если необходимо вывести/изменить данные только у конкретного объекта — перейти в нужную таблицу. Например, если необходимо изменить параметры записей разговоров во входящих и исходящих маршрутах – выбрать таблицу callrecording_module. Вверху нажать на «Выбрать». Отобразятся первые 50 строк таблицы. В extension хранится id (для исходящих маршрутов, название маршрута по id можно определить в таблице outbound_routes), в cidnum – did-номер (для входящих маршрутов)  После этого отметить строки для редактирования или выбрать все. Нажать на «Редактировать».

Adminer - выбор таблиц для редактирования
Adminer — выбор таблиц для редактирования

Произойдет переход на страницу редактирования. На открывшейся странице отредактировать поле callrecording. Например, для включения принудительной записи разговоров – задать значение force. Нажать «Сохранить».

Adminer  - изменение необходимых параметров
Adminer  — изменение необходимых параметров

После этого произойдет переадресация на предыдущую страницу (выводящую первые 50 строк таблицы callrecording_module). Если изменения произошли успешно, — вверху появится сообщение об успешном изменении записей, выделенное зеленым, в выведенной таблице также отобразится, что у всех выбранных ранее строк поле callrecording было изменено.

Adminer  - изменение необходимых параметров
Adminer  — изменение необходимых параметров

Для поиска установленного значения в таблице callrecording_module – нажать на «Поиск» и определить искомое значение. Нажать «Выбрать».

Adminer поиске значения по таблице
Adminer поиске значения по таблице

Изменение через консоль

Для серийного изменения параметров в БД через консоль необходимо зайти под учетной записью пользователя, имеющего права на просмотр и внесение изменений в бд asterisk (в примере — root) и выбрать для работы бд asterisk:

mysql -u root -p
<пароль>
use asterisk;
Вход в консоль mysql и выбор базы
Вход в консоль mysql и выбор базы

Для просмотра установленных значений режимов записи:

SELECT route_id, callrecording, name FROM `callrecording_module` INNER JOIN `outbound_routes` ON callrecording_module.extension=outbound_routes.route_id WHERE `callrecording` = 'dontcare';
SELECT extension, callrecording FROM `callrecording_module` WHERE `callrecording` = 'dontcare' AND `display`='did';
SELECT grpnum, recording FROM `ringgroups` WHERE `recording` = 'dontcare' ;
SELECT id, data FROM `queues_details` WHERE `data` = 'dontcare';
SELECT extension, recording FROM `users` WHERE `recording` = 'dontcare';
Поиск по установленному режиму записи dontcare
Поиск по установленному режиму записи dontcare
При вводе команд в консоль mysql необходимо, чтобы названия таблиц и полей окружали обратные одинарные кавычки(`), а устанавливаемых текстовых значений – прямые одинарные(‘).
Ошибка при вводе команды
Ошибка при вводе команды

Для внесения изменений, например, у всех входящих и всех исходящих маршрутов в режим force (принудительная запись):

UPDATE `callrecording_module` SET `callrecording`=’force’;

При успешном выполнении запроса в выводе появится соответствующая информация.

Обновление таблицы записей в mysql
Обновление таблицы записей в mysql

Для обновления режима записи и установки в значение ‘force’ в очередях, ринг группах, у всех добавочных, входящих и исходящих маршрутов необходимо выполнить:

UPDATE `queues_details` SET `data` = 'force' WHERE `keyword`='recording';
UPDATE `users` SET `recording` = 'force';
UPDATE `ringgroups` SET `recording` = 'force';
UPDATE `callrecording_module` SET `callrecording`='force';
Включение принудительной записи у всех
Включение принудительной записи у всех

Для отключения записи разговоров у входящих маршрутов, начинающихся с 7495 или 7499, очереди с трехзначной нумерацией, начинающейся на ‘6’ и ринг групп, номера которых определены в перечислении(501,502,503):

UPDATE `callrecording_module` SET `callrecording`='never' WHERE `extension` LIKE '7495%' OR `extension` LIKE '7499%';
UPDATE `queues_details` SET `data`='never' WHERE `keyword`='recording' AND `id` LIKE '6__';
UPDATE `ringgroups` SET `recording`='never' WHERE `grpnum` IN ('501', '502', '503');
Отключение записи у соответствующих условиям объектов
Отключение записи у соответствующих условиям объектов
После внесения изменений их необходимо применить и подгрузить новую конфигурацию. Выполнение команды fwconsole reload, эквивалентно нажатию в веб-интерфейсе кнопки Apply Config(Применить).
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

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

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.