По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Дорогой читатель! В поисках полезной автоматизации и кастомизации своего Asterisk продвинутые администраторы прибегают к использованию различных скриптов. Это может быть PHP, Perl C, Pascal или Shell. Для использования скриптов, написанных на одном из перечисленных языков программирования в диалплане Asterisk используется AGI (Asterisk Gateway Interface) – о нем и поговорим.
Как это работает?
AGI - это прослойка между скриптом и диалпланом (планом набора) в Asterisk. В скрипт мы можем передавать различные переменные, а можем получать какие - то значения из скрипта. Когда Asterisk инициирует запуск скрипта через AGI, он передает в него набор переменных. Все переменные обладают префиксом agi_:
Переменная
Описание
Пример
agi_request
Имя файла исполняемого скрипта
trunk.php
agi_channel
Канал, инициирующий звонок
Local/89123456789@from-internal-00000002;2
agi_language
Языковой код
en
agi_type
Тип канала, инициирующий вызов
Local
agi_uniqueid
Уникальный идентификатор звонка
1497364935.15
agi_version
Версия Asterisk
13.10.0
agi_callerid
Номер звонящего (CID Number)
89123456789
agi_calleridname
Имя звонящего (CID Name)
89123456789
agi_dnid
Набранный номер
unknown
agi_context
Контекст обработки вызова
macro-dialout-trunk
Как вызвать AGI в диалплане?
Вызвать AGI скрипт очень просто: предварительно, загрузите скрипт в директорию /var/lib/asterisk/agi-bin/. После этого, скрипту необходимо дать права и собственника. Предположим, наш скрипт называется trunk.php:
chmod 755 /var/lib/asterisk/agi-bin/trunk.php
chown asterisk:asterisk /var/lib/asterisk/agi-bin/trunk.php
Теперь, чтобы скрипт был вызван в диалплане, просто добавьте следующую конструкцию:
exten => 1333,n,AGI(trunk.php)
Просто, не правда ли? А если мы хотим передать переменную в скрипт? Просто добавьте ее после запятой:
exten => 1333,n,AGI(trunk.php, ${CALLERID(number)})
А как же написать скрипт?
Теперь к самому скрипту – напишем его на PHP. Пусть нам нужно отправлять письмо с номером звонящего. Выглядеть скрипт будет так:
#!/usr/bin/php -q
<?php
require('phpagi.php');
$agi = new AGI(); //подключаем файл phpagi.php – 1 и 2 строки обязательны в любом скрипте
$cid = $agi->request['agi_callerid']; // берем из AGI номер звонящего
mail("info@merionet.ru", 'Привет!', 'Вот и номер звонящего:', $cid); //отправляем в письме
Вот и все. Нам будет приходить на почту письмо с номером звонящего – прокачав данный функционал можно отслеживать пропущенные вызовы, например.
Мы уже рассматривали как можно выключать и перезагружать Linux сервер. А вы знали вы можете заставить операционную систему выполнять определенные действия при загрузке, а также при входе в систему или выходе из нее?
В этой статье, мы обсудим традиционные методы достижения этих целей в Linux, не зависимо от дистрибутива.
Выполнение скриптов Linux во время перезагрузки или запуска
Есть два традиционных метода для выполнения команды или запуска скриптов во время запуска:
Метод №1 - Используйте задание cron (cron job)
Примечание. Мы предполагаем использование Bash в качестве основной оболочки.
Помимо обычного формата минута/час/день месяца/месяц/день недели, который широко используется для обозначения расписания, планировщик cron также позволяет использовать @reboot. Эта директива, за которой следует абсолютный путь к скрипту, приведет к его запуску при загрузке сервера.
Руководство по cron можно найти тут.
Однако у этого подхода есть два предостережения:
Демон cron должен быть запущен
Сценарий или файл crontab должны включать необходимые переменные среды, если таковые имеются
Метод № 2 - Используйте /etc/rc.d/rc.local
Этот метод действителен даже для дистрибутивов на основе systemd. Чтобы этот метод работал, вы должны предоставить разрешения на выполнение (execute) для /etc/rc.d/rc.local следующим образом:
# chmod +x /etc/rc.d/rc.local
и добавьте свой скрипт в конец файла.
Имейте в виду, что скрипту предварительно должны быть предоставлены разрешения на выполнение:$ chmod +x /home/gacanepa/script1.sh
Выполнение скриптов Linux при входе в систему и выходе из системы
Чтобы выполнить сценарий при входе или выходе из системы, используйте ~.bash_profile и ~.bash_logout соответственно. Скорее всего, вам потребуется создать последний файл вручную. Просто пропишите строку, вызывающую ваш скрипт, внизу каждого файла так же, как и раньше
В данной статье мы рассмотрим работу такого функционала Elastix 4 как Agenda, и его сопутствующего модуля – Calendar.
Обзор
Данный функционал находится в общем меню слева, и называется, как я уже упоминал выше – Agenda:
Если кликнуть по нему, то откроется два модуля на выбор Calendar и Address Book:
Начнем с обзора возможностей Calendar.
Настройка и использование Calendar
Как видно на скриншоте ниже, это обычный календарь, но с не совсем обычным функционалом.
После нажатия на кнопку + Create New Event, откроется следующее окно, которое можно увидеть на скриншоте ниже, вместе с примером настройки. По факту, это будет автоматический звонок указанному абоненту с подключением механизма TTS (Text to Speech) – то есть озвучивания текста голосом:
Name - Название события
Description - Описание события, необязательное поле
Start and End dates - Дата начала и дата конца события
Color - Цвет, которым событие будет выделено в календаре
Configure a phone call reminder - включение возможности голосового напоминания участнику события
Call to - номер телефонаэкстеншена
Reminder - параметр, определяющий, за какое время будет произведено голосовое напоминание
Text to Speech - текст, который будет произнесен с помощью TTS абоненту
Кроме того можно прислать напоминание участниками по email:
Для завершения настройки необходимо кликнуть кнопку Save. После этого событие появится в вашем календаре и будет выделено указанным цветом.
Заключение
В заключение хочу сказать что скорее всего данный функционал будет не очень часто использоваться, по причине повсеместного развития облачных календарей и различных to-do приложений, но если при каком-то сценарии вам понадобится данный календарь – знайте, он есть :)