Отключение проигрывания файла sound_thanks из FreePBX
В предыдущей статье мы рассмотрели правки исходного кода Asterisk и создание новой переменной, для отключения проигрывания файла sound_thanks. В рамках этой статьи рассмотрим создание на вкладке очередей FreePBX специального переключателя. Это позволит нам включать и выключать проигрывание файла sound_thanks без использования оверрайда диалплана нужной очереди. Создание переключателя Переключатель для проигрывания файла sound_thanks будем делать на […]
В предыдущей статье мы рассмотрели правки исходного кода Asterisk и создание новой переменной, для отключения проигрывания файла sound_thanks. В рамках этой статьи рассмотрим создание на вкладке очередей FreePBX специального переключателя. Это позволит нам включать и выключать проигрывание файла sound_thanks без использования оверрайда диалплана нужной очереди.
Создание переключателя
Переключатель для проигрывания файла sound_thanks будем делать на вкладке Caller Announcements очередей. Для этого открываем в режиме редактирования файл: …/admin/modules/queues/views/form.php. В этом файле находим окончание описания переключателя Announce Hold Time, то есть код: <!—END Announce Hold Time—>
Сразу за ним вставляем следующий код:
<!-- Playback sound_thanks-->
<div class="element-container">
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="form-group">
<div class="col-md-3">
<label class="control-label" for="playthanks"><?php echo _("Playback sound_thanks") ?></label>
<i class="fa fa-question-circle fpbx-help-icon" data-for="playthanks"></i>
</div>
<div class="col-md-9 radioset input-group">
<?php $default = (isset($thisQ['play-thanks']) ? $thisQ['play-thanks'] : "no");?>
<input type="radio" name="playthanks" id="playthanksyes" value="yes" <?php echo ($default == "yes" ? 'checked' : '') ?> >
<label for="playthanksyes"><?php echo _("Yes") ?></label>
<input type="radio" name="playthanks" id="playthanksno" value="no" <?php echo ($default == "no" ? 'checked' : '') ?> >
<label for="playthanksno"><?php echo _("No") ?></label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<span id="playthanks-help" class="help-block fpbx-help-block"><?php echo _("Playback sound-thanks?")?></span>
</div>
</div>
</div>
<!--END Playback sound_thanks-->
Сохраняем файл. Если перезагрузить страницу в браузере, увидим, что добавилось дополнительный переключатель Playback sound_thanks, на вкладке Caller Announcement, но пока переключение ничего не даёт.

Теперь перейдём к добавлению функционала к переключателю.
Функционал переключателя
Первым делом сделаем так, чтобы значение, выбранное в поле Playback sound_thanks сохранялось. Для этого открываем в режиме редактирования файл …/admin/modules/queues/functions.inc/geters_seters.php. В нём находим функцию queues_add, а в ней следующий код:
$fields = array(
…
array($account,'min-announce-frequency',($_REQUEST['min-announce'])?$_REQUEST['min-announce']:'15',0),
array($account,'announce-holdtime',($_REQUEST['announceholdtime'])?$_REQUEST['announceholdtime']:'no',0),
Сразу за ним вставляем строку:
array($account,'play-thanks',($_REQUEST['playthanks'])?$_REQUEST['playthanks']:'no',0),
Тем самым, при нажатии кнопки Submit в редактировании очереди, параметр play-thanks будет записываться в базу данных asterisk.
Посмотреть текущие параметры play-thanks в базе можно командой:
select * from queues_details where keyword='play-thanks';

Данную команду следует выполнять в MySQL. При этом в поле id номер очереди, а в поле data – текущее значение.
Теперь приступим к реализации вставки необходимой переменной в диалплан. Для этого открываем файл …/admin/modules/queues/functions.inc/dialplan.php. В нём находим функцию queues_get_config. В этой функции находим следующий код:
$ext->add($c, $exten, '', new ext_set('QUEUENUM', $exten));
$ext->add($c, $exten, '', new ext_set('QUEUEJOINTIME', '${EPOCH}'));
Сразу после этого кода вставляем:
if ($q['play-thanks'] == 'yes') {
$ext->add($c, $exten, '', new ext_set('__ANNOUNCE_THANKS', '1'));
}
Этот код будет отвечать за добавление переменной __ANNOUNCE_THANKS в файл extensions_addititonal.conf.
Сохраняем файл dialplan.php. На этом правки кода завершены, можно приступать к проверке.
Проверка
В качестве проверки необходимо зайти на FreePBX, перейти на вкладку Application -> Queues и зайти в любую очередь для редактирования.
Если очереди нет, то необходимо её создать. Подробнее о работе с очередями в FreePBX можно прочесть в статье.
На вкладке Caller Announcements выставляем значение Playback sound_thanks в Yes, после чего нажимаем Submit, а затем Apply Config для применения настроек.
Открываем файл extensions_additional.conf и ищем переменную __ANNOUNCE_THANKS. Если нашли и она выставлена в Yes, значит всё выполнено верно.

На этом статья по отключению проигрывания файла sound_thanks посредством создания переключателя во FreePBX завершена.

Остались вопросы?
Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.