![](/files/books/160/oblozhka-knigi-asterisk-buduschee-telefonii-vtoroe-izdanie-164272.jpg)
Текст книги "Asterisk™: будущее телефонии Второе издание"
Автор книги: Джим Меггелен
Соавторы: Джаред Смит,Лейф Мадсен
Жанр:
ОС и Сети
сообщить о нарушении
Текущая страница: 38 (всего у книги 41 страниц)
vpb.conf
Этот файл используется для конфигурации плат Voicetronix в Asterisk. Больше информации можно найти в файле-шаблоне vpb.conf.
zapata.conf
Файл zapata.conf используется для описания отношений между Asterisk и драйвером Zaptel. Поскольку файл zapata.conf используется только Asterisk, он располагается вместе с остальными конфигурационными файлами Asterisk в папке /etc/asterisk/. Как и zaptel.conf, файл zapata.conf содержит массу вариантов выбора, отражающих огромное количество разнообразного оборудования, которое он поддерживает, и мы даже не будем пытаться перечислить здесь все эти опции. В данной книге (в главе 3) рассматривались только аналоговые интерфейсы для драйвера Zaptel.
zaptel.conf
Файл zaptel.conf располагается отдельно от всех остальных CONF-фай– лов Asterisk; драйвер Zaptel доступен любому приложению, которое может использовать его, поэтому имеет смысл хранить его в другой папке, не в той, которая используется только Asterisk (/etc/). Программа ztcfg проводит синтаксический разбор для конфигурации аппаратных элементов TDM в вашей системе. Вы настраиваете в файле zaptel. conf три основных элемента:
• Способ идентификации интерфейсов платы в плане набора.
• Тип необходимой интерфейсу системы обмена сигналами.
• Тоновый язык, связанный с конкретным интерфейсом, как задано в zonedata.c.
Будьте очень осторожны и случайно не включите свой модуль FXS в телефонную линию. Напряжение телефонной линии, особенно при поступлении вызова, слишком велико для модуля и может нанести ему непоправимый вред, сделав его абсолютно бесполезным!
которая будет использоваться для конфигурации каналов с помощью команды ztcfg. В файле zaptel.conf предлагается так много параметров, потому что механизм телефонии Zaptel используется множеством разнообразнейших интерфейсов PSTN. Также, поскольку данная технология быстро эволюционирует, все, что мы пишем сейчас, может измениться к тому моменту, когда вы это читаете. Поэтому мы не пытаемся перечислить здесь все эти опции.
В данной книге мы сосредоточились на аналоговых интерфейсах 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, это значение будет возвращено как целое число (количество секунд с начала отсчета времени), а не форматированная строка дата/время.
answer
Доступно только для чтения. Время установления соединения (поле может быть пустым, если на вызов еще не поступил ответ). Если задана опция u, это значение будет возвращено как целое число (количество секунд с начала отсчета времени), а не форматированная строка дата/время.
end
Доступно только для чтения. Время завершения звонка (поле может быть пустым, если звонок еще не завершен). Если задана опция u, это значение будет возвращено как целое число (количество секунд с начала отсчета времени), а не форматированная строка дата/ время.
duration
Доступно только для чтения. Разность между временем начала и окончания, в секундах. Может быть равным 0, если звонок еще не завершен.
billsec
Доступно только для чтения. Разность между временем установления соединения и окончания звонка, в секундах. Может быть равным 0, если звонок еще не завершен.
uniqueid
Доступно только для чтения. Строка, которая будет уникальна для каждого звонка в рамках этого экземпляра Asterisk.
Могут быть заданы следующие опции:
l
В случае если используется множество CDR посредством ForkCDR(), все результаты для вызова будут извлечены из последней записи параметров вызова.
r
Специальные переменные CDR будут извлечены из последней записи параметров вызова, но стандартные поля будут получены из первой записи.
u
Будет возвращено значение без синтаксического разбора. Записи, на которые этот флаг оказывает влияние, представлены в списке имен полей выше.
Также можно задать значение имяполя, не представленное в приведенном выше списке, и создать собственную переменную, значение которой можно изменять с помощью этой функции. И эта переменная будет храниться в CDR.
Смотрите также
CHANNEL()
CHANNEL
Получение или задание различных параметров канала
CHANNEL(элемент)
Стандартные элементы (для всех типов каналов):
audioreadformat
Доступно только для чтения. Формат, используемый для приема аудиоданных в настоящий момент.
audionativeformat
Доступно только для чтения. Формат, обычно используемый для аудиоданных.
videonativeformat
Доступно только для чтения. Формат, обычно используемый для видеоданных.
audiowriteformat
Доступно только для чтения. Формат, используемый для передачи данных в настоящий момент.
callgroup
Чтение/запись. Группы вызовов для перехвата входящих вызовов.
channeltype
Доступно только для чтения. Технология, используемая для канала.
language
Чтение/запись. Язык, на котором записываются и воспроизводятся звуковые файлы.
musicclass
Чтение/запись. Класс (из файла musiconhold.conf) музыки во время ожидания.
rxgain
Чтение/запись. Уровень принимаемого сигнала (в децибелах) для драйверов каналов, которые это поддерживают.
txgain
Чтение/запись. Уровень передаваемого сигнала (в децибелах) для драйверов каналов, которые это поддерживают.
tonezone
Чтение/запись. Часовой пояс, соответственно которому генерируются различные сигналы.
state
Доступно только для чтения. Текущее состояние канала. transfercapability
Чтение/запись. Что может передаваться по сети ISDN. Текущие действительные значения:
DIGITAL
Неограниченная цифровая информация (вызовы для передачи данных).
RESTRICTED_DIGITAL
Ограниченная цифровая информация.
3K1AUDIO
Аудиосигнал частотой 3,1кГц (вызовы для передачи факса).
DIGITAL_W_TONES
Неограниченная цифровая информация с тонами/приветствиями.
VIDEO
Видео.
Могут быть доступны дополнительные значения параметра элемент в зависимости от драйвера канала; более детальная информация представлена в его документации. В результате любого запроса на элемент, недоступный для текущего канала, будет возвращена пустая строка.
Смотрите также
CDR()
CHECK_MD5
Проверяет хеш MD5
CHECK_MD5(хеш,данные)
В случае успешной проверки возвращает 1, иначе 0.
Эта функция признана устаревшей и была заменена функцией MD5() со
встроенным синтаксическим анализатором выражений.
Смотрите также
MD5()
CHECKSIPDOMAIN
Проверяет, является ли домен локальным
CHECKSIPDOMAIN(домен|IP)
Эта функция проверяет, является ли заданный в аргументе домен локальным SIP-доменом, для обработки которого сконфигурирован данный сервер Asterisk. Возвращает имя домена, если он обрабатывается локально, в противном случае возвращается пустая строка. Обратите внимание на конфигурационную опцию domain в файле sip.conf.
CURL
Возвращает данные, полученные в результате операции GET или POST по заданному URL
CURl(url[|отпрaвляемые-дaнные])
По умолчанию CURL() будет выполнять операцию HTTP GET для получения значения url. Однако, если задан параметр отправляемые-данные, будет выполняться HTTP POST.
Смотрите также
SendURL()
CUT
Вырезает строку на основании заданного разделителя
CUT(имяпеременной, символ-разделитель,диапазон)
Функция CUT() аналогична инструменту командной строки UNIX cut(1) и, кстати, разработана на базе этого инструмента.
В диалплане можно задавать смещения в символах для выбора подстроки из переменной исключительно на основании постоянной длины символов (а именно 1). Функция CUT() создана, чтобы помочь при работе с данными, которые могут иметь несколько секций переменной длины с одинаковым разделителем.
Самый распространенный вариант – имя канала, которое состоит из двух частей: базового имени и уникального идентификатора (например, SIP/tom-abcd1234 или SIP/bert-1a2b3c4d). Функция CUT() может использоваться для обрезки уникального идентификатора независимо от длины базового имени:
; Вырезаем уникальный идентификатор
; из имени текущего канала
exten => 123,1,Set(chan=$ имяпеременной – это имя обрабатываемой переменной. Обратите внимание, что функция CUT() работает с именем переменной, а не ее значением. CUT() уникальна с этой точки зрения. символ-разделитель – символ, который будет выступать в роли разделителя (по умолчанию '-'). диапазон позволяет определить, какие поля будут возвращены. В качестве параметра диапазон с помощью символа – может быть задан диапазон (например, 1-3), а с помощью символа & – группа диапазонов и номеров полей (например, 1&3-4). Заметьте, что, если задано несколько номеров полей, поля результирующего значения будут иметь те же разделители. Параметр диапазон использует смещение, начиная с 1. То есть первое поле – это поле номер 1 (в противоположность смещению с 0, при котором первое поле шло бы под номером 0). Смотрите также FIELDQTY() DB Выполняет чтение или запись в AstDB DB(семейство/ключ) Будет возвращать значение записи базы данных (или пустую строку, если записи не существует) или записывать значение в базу данных. Смотрите также DBdel(), DB_DELETE(), DBdeltree(), DB_EXISTS() DB DELETE Удаляет ключ или семейство ключей из базы данных AstDB DB_DELETE(семейство/ключ) Возвращает значение из базы данных и удаляет его. Смотрите также DBdel(), DB(), DBdeltree() DB EXISTS Проверяет, существует ли в AstDB указанный ключ DB_EXISTS(семейство/ключ) Проверяет, существует ли ключ в базе данных Asterisk. Смотрите также DB() DUNDILOOKUP Запрашивает у равноправных участников системы DUNDi определенный номер DUNDILOOKUP(номер[|контекст[|опция) ENUMLOOKUP Запрашивает в базе данных ENUM определенный номер ENUMiOOKUP(номер[|Тип-методa[|опции[|зaпись#[|суффик.с-зоны]]]]) Позволяет получать основные или специальные NAPTR-записи или счетчики типов NAPTR для ENUM или ENUM-подобных DNS-указателей. ENV Работает с переменными окружения ENV(имяпеременнойокружения) Возвращает или устанавливает значение переменной окружения, заданной параметром имяпеременнойокружения. EVAL Вычисляет хранящиеся переменные EVAL(переменная) EVAL() – одна из наиболее мощных функций диалплана. Она позволяет сохранять переменные выражения не только в файле extensions.conf, а, например, и в базе данных и при этом вычислять их в диалплане так же, как если бы они были просто включены в него. Можно смело утверждать, что EVAL() – основной элемент в обеспечении истинной динамичности диалплана. ; Мы можем сохранить в записи базы данных для ; extension/123, например, следующее: ; "SIP/${DB(ext2chan/123)}". Это направит нас к другой ; записи базы данных. exten => _XXX,1,Set(dialline=${DB(extension/${EXTEN})}) exten => _XXX,n,Dial(${EVAL(${dialline})}) ; Реальный пример (взят из кода, используемого ; в производственной эксплуатации) exten => _1NXXNXXXXXX,n(generic),Set(provider=${DB(rt2provider/${route})}-nanp) exten => _ 1NXXNXXXXXX, n(provider), Dial(${EVAL(${DB(provider/${provider})})}) exten => _1NXXNXXXXXX,n,Goto(nextroute) Смотрите также Exec() EXISTS Проводит проверку, является ли значение не пустым EXISTS(данные) Тест на существование значения: возвращает 1, если оно не пустое; 0 в противном случае. FIELDQTY Выполняет подсчет полей FIELDQTY(имяпеременной|разделитель) Подсчитывает поля с использованием произвольно заданного разделителя. Смотрите также CUT() FILTER Удаляет из строки запрещенные символы FILTER(разрешеные-символы|строка) Выполняет фильтрацию содержимого параметра строка и включает в результат только значение разрешенные-символы: ; Гарантируем, что номер Caller*ID содержит только цифры exten => Set(CALLERID(num)=${FILTER(0123456789,${CALLERID(num)})}) Эта функция только возвращает значение, не принимает. Смотрите также QUOTE() GLOBAL Указывает глобальное пространство имен GLOBAL(имяпеременной) Возвращает или устанавливает значение заданной глобальной переменной. GROUP Включает канал в заданную группу GROUP([категория]) Возвращает или устанавливает группу каналов. ; Разрешаем одновременно выполнять доступ к системе ; оповещения только одному пользователю. exten => 8000,1,Set(GROUP()=pager) exten => 8000,n,GotoIf($[${GROUP_COUNT(pager)} > 1]?hangup) exten => 8000,n,Page(SIP/101&SIP/102&SIP/103&SIP/104) exten => 8000,n(hangup),Hangup Смотрите также GROUP_COUNT Подсчитывает количество каналов в заданной группе GROUP_COUNT([имягруппы][@кaтегория]) Подсчитывает количество каналов в заданной группе. Возвратит количество каналов в группе текущего канала, если значение имягруппы не задано. Смотрите также GROUP(), GROUP_LIST(), GROUP_MATCH_COUNT() GROUP_LIST Возвращает список групп каналов GROUP_LIST()([имягруппы][@кaтегория]) Возвращает список групп, заданных для канала. Смотрите также GROUP(), GROUP_COUNT(), GROUP_MATCH_COUNT() GROUP_MATCH_COUNT Подсчитывает количество каналов в группах, имена которых соответствуют заданному шаблону GROUP_MATCH_COUNT(шaблонименигруппы [@категория ]) Подсчитывает количество каналов в группах, соответствующих заданному шаблону. Смотрите также GROUP(),GROUP_COUNT(), GROUP_LIST() IAXPEER Получает информацию о IAX -канале IAXPEER(имярaвнопрaвногоучaстникa[| элемент]) IAXPEER(CURRENTCHANNEL[|элемент]) Получает информацию о равноправном участнике IAX. Если имя равноправного участника задано, действительными значениями параметра элемент являются: ip IP-адрес этого равноправного участника. Если параметр элемент не задан, IP-адрес будет предоставлен. mailbox Заданный для равноправного участника почтовый ящик. context Заданный для равноправного участника контекст. expire Время следующего истечения регистрации этого равноправного участника. dynamic Этот равноправный участник зарегистрирован в Asterisk? (yes/no) callerid_name Заданное для этого равноправного участника имя Caller ID. callerid_num Заданный для этого равноправного участника номер Caller ID. codecs Заданные для этого равноправного участника кодеки. codec[x] Индекс x предпочтительного кодека (начиная с нуля). Смотрите также SIPPEER() IF Выбор значения по условию ^(выражение?[Ггие][: false]) Условный оператор: возвращает данные, следующие за символом ?, в случае истинности условия, в противном случае возвращает данные, следующие за символом :. ; Возвращается foo exten => 123,1,Set(something=${IF($[2 > 1]?foo:bar)}) ; Возвращается bar exten => 123,n,Set(something=${IF($[2 < 1]?foo:bar)}) Смотрите также GotoIf() IFTIME Сравнивает текущее системное время с заданным IFTIME(время,дни_недели, дни_месяца,месяцы?[true][: false]) Условный оператор: возвращает данные, следующие за символом ?, в случае истинности условия, в противном случае возвращает данные, следующие за символом : . время Диапазоны времени в 24-часовом формате. дни_недели Дни недели (mon, tue, wed, thu, fri, sat, sun). дни_месяца Дни месяца (1-31). месяцы Месяцы (jan, feb, mar, apr и т. д.). Смотрите также GotoIfTime() ISNULL Проверяет, является ли значение пустым ISNULL(дaнные) Возвращает 1, если значение данные пустое, или 0 в противном случае. Смотрите также LEN(), EXISTS() KEYPADHASH Выполняет преобразование букв в числа KEYPADHASH(строка) Преобразует буквы в параметре строка в эквивалентные цифры номеронабирателя. ; Вычислим хеши фамилий авторов. Итак, ; соответствующими значениями будут ; 623736, 76484 и 82663443536. exten => 123,1,Set(lastname1=${KEYPADHASH(Madsen)}) exten => 123,n,Set(lastname2=${KEYPADHASH(Smith)}) exten => 123,n,Set(lastname3=${KEYPADHASH(VanMeggelen)}) Смотрите также Directory() LANGUAGE Определяет язык канала LANGUAGE() Возвращает или устанавливает язык канала. Эта функция признана устаревшей и была заменена функцией CHANNEL(язык). Смотрите также CHANNEL() LEN Вычисляет длину строки LEN( строка) Возвращает длину значения строка. MATH Выполняет математические вычисления MATH(число1 операция число2[,тип_результата]) Выполняет математические функции. exten => 123,1,Set(value1=${MATH(1+2)}) MD5 Вычисляет хеш MD5 MD5(данные) Вычисляет хеш MD5 параметра данные. Смотрите также SHA1() MUSICCLASS Выполняет доступ к настройкам музыки во время ожидания для канала MUSICCLASS() Эта функция была признана устаревшей и заменена функцией CHANNEL(классмузыки). Возвращает или устанавливает класс музыки во время ожидания. Смотрите также CHANNEL() QUEUE_MEMBER_COUNT Подсчитывает количество участников обработки очереди вызовов QUEUE_MEMBER_COUNT(имяочереди) Подсчитывает количество участников, отвечающих на вызовы очереди. Смотрите также QUEUE_MEMBER_LIST() QUEUE_MEMBER_LIST Возвращает список участников обработки очереди вызовов QUEUE_MEMBER_LIST(имяочереди) Возвращает список интерфейсов в очереди. Смотрите также QUEUE_MEMBER_COUNT() QUEUE_WAITING_COUNT Подсчитывает количество вызовов, ожидающих ответа QUEUE_WAITING_COUNT(имяочереди) Подсчитывает количество вызовов, стоящих в очереди и ожидающих ответа. QUEUEAGENTCOUNT(имяочереди) QUEUEAGENTCOUNT Эта функция была признана устаревшей и заменена функцией QUEUE_MEMBER_COUNT(). Подсчитывает количество агентов, отвечающих на вызовы очереди. Смотрите также QUEUE_MEMBER_COUNT(), QUEUE_MEMBER_LIST() QUOTE Экранирует строку QUOTE( строка) Заключает в кавычки заданную строку, по необходимости экранируя кавычки, встречающиеся в данной строке. Смотрите также RAND Возвращает случайное число RAND([минимум][|максимум]) Выбирает случайное число из заданного диапазона. Функция RAND() случайным образом выбирает целое число, находящееся в диапазоне между значениями минимум и максимум, включая и их самих, и возвращает его. Если значение минимум не задано, по умолчанию оно принимается равным 0. Если значение максимум не задано, по умолчанию оно принимается равным константе INT_MAX, которая равна 2147 483 647 на 32-разрядных платформах. Обратите внимание, что на 64-разрядных платформах значение INT_MAX немного больше. REALTIME Извлекает данные реального времени REALJIME(семействошaблонполя[|знaчение[\рaзделитель1[рaзделитель2]]]) Функции для чтения/записи в режиме реального времени. Приведенный выше синтаксис используется для чтения, приведенный ниже – для записи: REALTIME(семейство|шаблонполя|значение|поле) REGEX Проводит сравнение на основании регулярного выражения REGEX(«регулярное выражение» данные) Выполняет сопоставления на основании регулярного выражения. SET Задает значение переменной SET(имяпеременной=[значение]) Функция SET присваивает значение переменной канала. Часто применяется для задания значений, содержащих символ |, поскольку этот символ обычно является разделителем при использовании с приложением Set(). Смотрите также Set() SHA1 Смотрите также MD5() SIP_HEADER Извлекает заголовок SIP SIP_HEADER(имя[,номер]) Возвращает SIP-заголовок. SIPCHANINFO Извлекает информацию о SIP -канале SIPCHANINFO(элемент) Возвращает заданный SIP-параметр текущего канала. Действительные значения параметра элемент: peerip IP-адрес данного равноправного участника SIP. recvip IP-адрес источника сообщений данного равноправного участника SIP. from URI SIP из заголовка From:. uri URI SIP из заголовка Contact:. useragent Имя SIP-агента пользователя. peername Имя равноправного участника SIP. t38passthrough 1, если T38 предлагается или активирован в данном канале, в противном случае 0. SIPPEER Извлекает информацию о равноправном участнике SIP SIPPEEPl(имярaвнопрaвногоучaстник.a[| элемент]) Возвращает информацию о равноправном участнике SIP. Действительные значения параметра элемент: ip mailbox Заданный для данного равноправного участника почтовый ящик. context Заданный для данного равноправного участника контекст. expire Время следующего истечения регистрации. dynamic Это устройство зарегистрировано в Asterisk? (yes/no) callerid_name Заданное для этого равноправного участника имя Caller ID. callerid_number Заданный для этого равноправного участника номер Caller ID. status Статус данного равноправного участника (если qualify=yes). regexten Зарегистрированный для данного равноправного участника добавочный номер, если задан. limit Ограничение на число одновременных вызовов для данного равноправного участника. curcalls Текущее количество вызовов. Доступно, только если для данного равноправного участника установлен предел на число одновременных вызовов. language Язык по умолчанию для данного равноправного участника. accountcode Код учетной записи данного равноправного участника. useragent Имя SIP-агента пользователя. codecs Заданные для этого равноправного участника кодеки. Смотрите также IAXPEER() SORT Выполняет сортировку списка SORT(ключ1:знaчение1[...][, к.лючИ:значениеИ]) Выполняет сортировку списка ключей/значений, создавая список ключей на основании их значений (сортировка по ключу), которые могут быть любыми действительными числами (с плавающей точкой). SPEECH Возвращает информацию о результатах работы по распознаванию речи SPEECH(aргумент) Возвращает информацию о результатах работы по распознаванию речи. SPEECH_ENGINE Изменяет свойство механизма обработки речи SPEECH_ENGINE(имя)=значение) Меняет конкретный атрибут механизма обработки речи. SPEECH_GRAMMAR Возвращает информацию о грамматике речи SPEECH_GRAMMAR(результат номер) Возвращает соответствующую информацию по грамматике результата, если таковая доступна. SPEECH_SCORE Возвращает параметр достоверности результата распознавания речи SPEECH_SCORE( результат номер) Возвращает параметр достоверности результата. SPEECH_TEXT Возвращает текст, распознанный системой распознавания речи SPEECH_TEXT(результaт номер) Возвращает текст результата, распознанный системой распознавания речи. SPRINTF Выполняет форматирование строки SPRINJF(формaт|aргумент1[|...aргументN]) Форматирует переменную или ряд переменных соответственно формату строки. Чаще всего функция SPRINTF используется для дополнения числа нулями до определенной длины: ; Возвращает 00123 exten => 123,1,Set(padfive=${SPRINTF(%05d,${EXTEN})}) Большинство опций форматирования, приведенных на странице руководства по sprintf(3), также реализованы в данной функции диалплана. Смотрите также STRFTIME() STAT Возвращает атрибуты файловой системы STAT( флаг, имяфайла) Выполняет проверку заданного файла. Параметр флаг может принимать одно из следующих значений: e Возвращает 1, если файл существует; 0 в противном случае. s Возвращает размер файла в байтах. f Возвращает 1, если по указанному пути находится обычный файл (не папка, символическая ссылка, сокет или устройство), или 0 в противном случае. d Возвращает 1, если по указанному пути находится папка (не обычный файл, символическая ссылка, сокет или устройство), или 0 в противном случае. M Возвращает время последнего изменения содержимого файла в секундах с начала отсчета времени. C Возвращает время последнего изменения индексного дескриптора (inode) файла в секундах с начала отсчета времени. m Возвращает режим доступа к файлу (как восьмеричное число). STRFTIME Форматирует дату и время STRFTIME([нaчaлоотсчетaвремени][|[чaсовойпояс][|формaт]]) Возвращает текущую дату/время в заданном формате. STRFTIME передает аргументы началоотсчетавремени и формат прямо в базовый вызов библиотеки strftime(3) языка С, поэтому для получения дополнительной информации обращайтесь к странице руководства. В качестве параметра часовойпояс должно использоваться имя папки/ файла из папки /usr/share/zoneinfo (например, America/Chicago или America/New_York). Смотрите также STRPTIME() STRPTIME Преобразует строку в дату и время STRPTIME(дaтaвремя|часовойпояс|формат) Возвращает время в секундах с начала отсчета времени для произвольной строки даты/времени, структурированной в заданном формате. Назначение этой функции – преобразовать отформатированные дату/ время обратно в секунды с начала отсчета времени (с полночи по Гринвичу 1 января 1970 года), чтобы можно было производить с ними какие-то вычисления, или просто преобразовать их в какой-то другой формат даты/времени. STRPTIME передает строку и формат непосредственно в базовый вызов библиотеки функции strptime(3) языка С, поэтому для получения дополнительной информации обращайтесь к странице руководства. В качестве параметра часовойпояс должно использоваться имя папки/файла из папки / usr/share/zoneinfo (например, America/ Chicago или America/ New_York). Смотрите также STRFTIME() TIMEOUT Работает со значениями времени ожидания канала TIMEOUT(типвремениожидания) Возвращает или устанавливает значения времени ожидания для канала. Может производить действия со следующими типами времени ожидания: absolute Абсолютное максимально допустимое время звонка. Задание значения 0 отключает эту возможность. digit вершен, и начинается обработка добавочного номера. Заметьте, что, если введен действительный добавочный номер, для начала его обработки нет необходимости дожидаться истечения времени ожидания, поэтому обычно по истечении указанного времени ожидания добавочный номер считается недействительным (и управление передается добавочному номеру i, или, если его не существует, вызов завершается). Время ожидания по умолчанию – 5 с. response Максимально допустимый промежуток времени после выполнения ряда приоритетов для канала, в течение которого пользователь может начать набор добавочного номера. Если пользователь не вводит добавочный номер в течение этого промежутка времени, управление передается добавочному номеру t, если он существует, в противном случае вызов завершается. Время ожидания по умолчанию – 10 с. TXTCIDNAME Выполняет DNS -поиск TXTCIDNAME(номер) Выполняет поиск вызывающего абонента с помощью DNS. URIDECODE Декодирует URI URIDECODE(дaнные) Декодирует строку из формата, предназначенного для безопасного использования в URI, согласно стандарту RFC 2396. Смотрите также URIENCODE() URIENCODE Кодирует URI URIENCODE(дaнные) Кодирует строку для ее безопасного использования в URI согласно стандарту RFC 2396. Смотрите также URIDECODE() VMCOUNT Подсчитывает количество сообщений голосовой почты VMCOUNT(почтовыйящик[@контекст][|пaпкa]) Подсчитывает количество сообщений голосовой почты в заданном почтовом ящике. F Команды интерфейса Asterisk Manager В данном приложении представлен список команд, которые можно выполнить с помощью интерфейса Asterisk Manager (AMI). Больше информации об AMI можно найти в главе 14.