Asterisk™: будущее телефонии Второе издание
Шрифт:
В данной книге мы сосредоточились на аналоговых интерфейсах Zaptel, предоставляемых платой TDM400P производства компании Digium (см. главу 3).
E
Функции диалплана Asterisk
Функции диалплана очень мощны. Начав их использовать, вы уже не сможете себе представить, как обходились без них до этого. Функции используются в диалплане так же, как и переменные. Пожалуй, их можно рассматривать как переменные с развитой логикой (или, для тех, кто пришел из мира баз данных, как переменные с триггерами). При вызове они
AGENT
Возвращает информацию об агенте
AGENT( idareHTa[: элемент])
Эта функция позволяет извлекать информацию, касающуюся агентов, и может только возвращать значение, не принимать. Действительные значения поля элемент: status (значение по умолчанию)
Статус агента (LOGGEDIN | LOGGEDOUT). password
Пароль агента. name
Имя агента. mohclass
Класс музыки во время ожидания.
exten
Добавочный номер обратного вызова для агента (AgentCallbackLogin).
channel
Имя активного канала для агента (AgentLogin).
ARRAY
Позволяет задавать несколько переменных за один раз
ARRAY(переменнaя1[|переменнaя2[...][|переменнaяN]])
Список значений, разделенных запятыми, соответствующий этой функции, будет интерпретирован как набор значений, которые должны быть присвоены переменным, чьи имена заданы аргументами этой функции. Функция может только принимать значение, не возвращать. ; Задаем var1 значение 1 и var2 значение 2. exten => 123,1,Set(ARRAY(var1,var2)=1\,2)
Не забудьте или экранировать запятые обратным слэшем в файле extensions.conf, или заключить весь аргумент в кавычки, поскольку функция Set может принимать несколько аргументов.
Смотрите также
Set
BASE64_DECODE
Декодирует строку, кодированную в BASE64
BASE64_DECODE(base64_строка)
Декодирует BASE64-строку. Эта функция только возвращает значение, не принимает.
Смотрите также
BASE64_ENCODE
BASE64_ENCODE
Кодирует строку в формат BASE64
BASE64_ENCODE(строка)
Кодирует строку в формат BASE64. Эта функция только возвращает значение, не принимает.
Смотрите также
BLACKLIST
Проверяет наличие CallerID в черном списке
BLACKLIST проверяет семейство blacklist базы данных AstDB на наличие в нем указанного идентификатора вызывающего абонента. Возвращает значение 1 или 0.
Эта функция только возвращает значение, не принимает.
Смотрите также
DB
CALLERID
Возвращает или устанавливает данные Caller ID для канала
CALLERID(типданных[,необязательный-CID])
CALLERID проводит синтаксический разбор строки Caller ID текущего канала и возвращает ее всю или часть, как задано параметром типданных. Допустимые типы данных: all, name, num, ani, dnid или rdnis. Может быть задан (необязательно) альтернативный Caller ID, если вы желаете проводить синтаксический разбор этой строки, а не заданного для канала Caller ID.
Функция может как возвращать, так и принимать значение.
CDR
Возвращает или устанавливает информацию CDR для данного вызова (которая будет записана в журнал CDR)
CDR(имяполя[,опции])
Вот список имен доступных полей CDR:
clid
Доступно только для чтения. Это значение задается функцией
CALLERID(all).
lastapp
Доступно только для чтения. Показывает приложение, которое было выполнено последним.
lastdata
Доступно только для чтения. Показывает аргументы, переданные в приложение, которое было выполнено последним.
src
Доступно только для чтения. Это значение задается функцией
CALLERID(ani).
dcontext
Доступно только для чтения. Соответствует последнему контексту диалплана.
channel
Доступно только для чтения. Имя канала, от которого поступил звонок.
dstchannel
Доступно только для чтения. Имя канала, в который поступил звонок.
disposition (состояние)
Доступно только для чтения. Максимальное состояние канала. Если задана опция u, это значение будет возвращено как целое число, а не строка: 1 = NO ANSWER, 2 = BUSY, 3 = FAILED, 4 = ANSWERED.
amaflags
Доступно для чтения/записи. Флаги, используемые для учета вызовов и времени разговора абонента. Если задана опция u, это значение будет возвращено как целое число, а не строка: 1 = OMIT, 2 = BILLING, 3 = DOCUMENTATION.
accountcode
Доступно для чтения/записи. Расчетный счет (максимум 19 символов).
userfield
Доступно для чтения/записи. Определяемое пользователем поле.
start
Доступно только для чтения. Время начала звонка. Если задана опция u, это значение будет возвращено как целое число (количество секунд с начала отсчета времени), а не форматированная строка дата/время.