Дмитрий Рашевский
09.01.2020
3873

Массовое изменение параметров в очередях

Массовое изменение параметров в очередях Введение Таблицы настроек очередей Использование SQL запросов для замены значений Заключение Введение При администрировании FreePBX наша компания сталкивается с такими запросами, как поменять аудио файлы приветствия во всех и в нескольких очередях. Вы подумаете, что в этом сложного, 5-6 очередей, в этом нет ничего такого. Но предположим, что у вас […]

Массовое изменение параметров в очередях

  1. Введение
  2. Таблицы настроек очередей
  3. Использование SQL запросов для замены значений
  4. Заключение

Введение

При администрировании FreePBX наша компания сталкивается с такими запросами, как поменять аудио файлы приветствия во всех и в нескольких очередях. Вы подумаете, что в этом сложного, 5-6 очередей, в этом нет ничего такого. Но предположим, что у вас не 5 очередей, а 50 или даже 100.

Именно по этой причине была взята идея как быстро и правильно поправить значения для множества очередей за раз.

Далее в этой статье мы рассмотрим какие таблицы из БД asterisk нужны для редактирования, по каким полям эти таблицы связаны.

На данном примере, разберем добавление в каждую очередь голосовое приветствие для звонящего, изменение MoH и параметра Agent Timeout.

Разбор связных с очередями таблиц в базе asterisk

Сперва рассмотрим таблицы, связанные с очередями из базы asterisk. За настройку и хранение параметров очереди отвечают две таблицы queues_config и queues_details.

Теперь рассмотрим детально таблицу queues_config. Она содержит следующие поля:

  • extension — номер очереди
  • descr — описание (имя) очереди     
  • grppre — CID префикс для очереди
  • alertinfo — добавление SIP записи alert-info
  • ringing — Время звонка в очереди
  • maxwait — время звонка в очереди (оно должно быть пустым)
  • password — пароль для подключения к очереди
  • ivr_id — id голосового меню, для указания параметра IVR Break Out Menu
ID необходимой IVR можно найти в таблице ivr_details
  • dest — указание направления по окончании ringing. В Web это параметр Fail Over Destination
  • cwignore — ограничение операторов. Параметр в WEB — это Agent Restrictions
  • queuewait — временное ограничение на отображение CID prefix
  • qnoanswer — параметр обозначающий ответ очереди в канал. Queue No Answer
  • callconfirm — подтверждение принятия вызова сторонним устройством (мобильный, follow-me)
  • callconfirm_id — запись используемая при включенном Call Confirm.
  • agentannounce_id — запись, используемая для оповещения оператора
  • joinannounce_id — запись для оповещения звонящего
ID Записей найти в таблице связанной с модулем System Recordings
Describe queues_config
Describe queues_config

Следующей таблицей идет queues_details. Она служит для заполнения параметров используемых в конфигурационном файле queues_additional.conf. Итак, эта таблица состоит из следующих полей:

  • id – хранит в себе номер очереди.
  • keyword — содержит ключевое слово (название параметра используемого в asterisk)
  • data – значение параметра
Describe queues_details
Describe queues_details

Использование SQL запросов для замены значений

Итак, для изменения параметров, необходимых для нашего примера, надо получить необходимые значения.

  1. Сперва заменим в нескольких очередях параметр joinannounce_id.

Замена будет проводиться в таблице queues_config.

Это поле принимает id записи в системе, поэтому её нужно предварительно загрузить на сервер через модуль System Recordings.

Добавленная звуковой файл.
Добавленная звуковой файл.

Теперь подключимся к консоли mysql:

   # mysql -u freepbxuser   -p<YOUR_PASSWORD>   
Логин и пароль могут отличаться от тех. Что используются в статье. Корректный логин посмотрите в файле /etc/freepbx.conf.

            Далее командой USE выберем базу с которой будем работать:

   > USE asterisk;   

ID, загруженной ранее записи хранится в таблице recordings. Чтобы найти нужную нам запись используем оператор выбора SELCET и будем искать по ключевому слову queue-record. Это название мы давали при загрузке записи. В таблице recordings данное значение хранит поле displayname. Имея эти данные составим запрос и найдём id записи.

   > SELECT id FROM recordings   WHERE displayname=’queue-record’;   

Получим наше значение. В этом примере значение 68 у вас оно может отличаться.

Recording’s ID
Recording’s ID

Теперь нужно заменить текущее значение joinannounce_id на полученное ранее. В mysql для замены какого то значения используется оператор UPDATE в сочетании с ключевым словом SET. Но, чтобы поменять в нужных очередях, для этого добавим условие по которому будет осуществляться выборка, номера очередей, как писалось в пункте 1, занесены в поле extension. (WHERE extension IN (ДЕСЬ_УКАЗЫВАЕТСЯ_СПИСОК_НОМЕРОВ_ОЧЕРЕДЕЙ_ЧЕРЕЗ_ЗАПЯТУЮ>)).

   > UPDATE queues_config SET   joinannounce_id='68' WHERE extension IN   (00010,00106,00108,00110,00112,00114,00116,00118,00120,00122,00124,00126,00128,00130,00132,00134,00152,00154,00166,0070,0072,0076,0078,0080,0082,0086,0088,0090,0092,0098,041,043,045,071,073,077,079,081,083,087,089,091,093,099,0999,120,167,280,404,452,497,605,610,620,630,640,660);   
UPDATE joinannouce_id
UPDATE joinannouce_id

2.Теперь надо поменять класс MoH и agent timeout. Необходимые значения хранятся в таблице queues_details. Для текущего примера надо изменить значение в поле data для двух параметров music и timeout. В один запрос выполнить не получится, поэтому сделаем изменения по одному параметру. Как и ранее используем UPDATE только теперь будет меняться имя таблицы, и в ней номер очереди записан в поле id. Составим запросы и выполним их.

   > UPDATE queues_details SET   data='10' WHERE id IN   (00010,00106,00108,00110,00112,00114,00116,00118,00120,00122,00124,00126,00128,00130,00132,00134,00152,00154,00166,0070,0072,0076,0078,0080,0082,0086,0088,0090,0092,0098,041,043,045,071,073,077,079,081,083,087,089,091,093,099,0999,120,167,280,404,452,497,605,610,620,630,640,660)   AND keyword=’timeout’;   

Проверим заменённые значения:

UPDATE timeout
UPDATE timeout

B выполним запрос для изменения параметра MoH. За это отвечает значение из поля keyword – music. Здесь будем указывать имя класса MoH, которое используется в Freepbx по умолчанию — «default».

   > UPDATE queues_details SET   data='default' WHERE id IN (00010,00106,00108,00110,00112,00114,00116,00118,00120,00122,00124,00126,00128,00130,00132,00134,00152,00154,00166,0070,0072,0076,0078,0080,0082,0086,0088,0090,0092,0098,041,043,045,071,073,077,079,081,083,087,089,091,093,099,0999,120,167,280,404,452,497,605,610,620,630,640,660)   AND keyword='music';   
UPDATE music
UPDATE music
Имя класса moh в БД asterisk находится в таблице music в поле category.

Изменения внесены, теперь их надо применить, и для этого существует два способа:

  1. В основной консоли Linux вашей АТС введите команду fwconsole reload. Действие этой команды аналогично действию нажатия на кнопку «Apply Config» в web интерфейсе.
Если у вас установлен FreePBX 13, то используйте этот метод
  • Если у вас FreePBX ниже 13 версии, тогда используйте этот метод. Необходимо запустить стандартный скрипт module_admin используемый в FreePBX c параметром reload
   #   /var/lib/asterisk/bin/module_admin reload   

Заключение

В данной статье мы рассмотрели, какие таблицы в FreePBX используются для хранения значений выставляемых после заведения и редактирования значений очередей в WEB панели FreePBX.

Также рассмотрели как массово изменить отдельные параметры в настройках очередей. Какие mysql команды используются для замены значений в таблицах. А также как применить внесенные изменения.

Книга 101 функция Asterisk
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.
Скачать книгу
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

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

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

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


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

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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.