Asterisk™: будущее телефонии Второе издание - Меггелен Джим Ван
Это приложение признано устаревшим и заменено приложением
GotoIf($[${RAND(1,100)} > номер]?метка).
Выполняет условный переход в заданный приоритет (и необязательные добавочныйномер и контекст) на основании вероятности. В качестве вероятности должно использоваться целое число в диапазоне от 1 до 100. Приложение перейдет в заданный приоритет с заданной вероятностью.
; снова и снова выбираем случайный номер exten => 123,1,SayNumber(${RAND(110)}) exten => 123,n,Goto(1)
Смотрите также
RAND
Read()
Читает DTMF-коды, набираемые вызывающим абонентом, и сохраняет результат в переменной
Read(переменная[, имяфайла[, мак.симумцифр[, опция[, попытк.и[, времяожидания]]]]])
Читает вводимую пользователем строку цифр, оканчивающуюся символом #, в заданную переменную.
Другие аргументы:
имяфайла
Определяет файл, воспроизводимый перед чтением цифр.
максимумцифр
Задает максимально допустимое количество цифр. Если этот аргумент задан, приложение прекращает чтение после того, как было введено максимально допустимое количество цифр (не требуя от пользователя нажатия кнопки #). Значение по умолчанию - 0 (ограничений нет, ожидает нажатия кнопки #). Любое значение меньше 0 означает то же самое. Максимально допустимое значение - 255.
опция
Нуль или более следующих опций:
s
Немедленно возвращается, если линия не отвечает.
i
Трактует имя файла как настройку тона из файла indications.conf.
n
Читает последовательность цифр, даже если нет ответа на вызов.
попытки
Если больше 1, то означает количество попыток чтения при условии, что данные не были введены.
времяожидания
Если больше 0, это значение переопределит время ожидания по умолчанию.
; читаем двузначный номер и воспроизводим ; его вызывающему абоненту exten => 123,1,Read(NUMBER,,2) exten => 123,2,SayNumber(${NUMBER}) exten => 123,3,Goto(1)
Смотрите также
SendDTMF()
ReadFile()
Читает содержимое файла в переменную
ReadFile(переменная=имяфайла,длина)
Приложение ReadFile фиксирует содержимое файла, определенного аргументом имяфайла. Максимальный размер считываемого содержимого определяется аргументом длина.
; читаем в переменную первые 80 символов файла
exten => 123,1,Answer()
exten => 123,n,ReadFile(TEST=/tmp/test.txt,80)
exten => 123,n,SayAlpha(${TEST})
Смотрите также
System(), Read()
RealTime()
Выполняет поиск информации в обработчике конфигурации RealTime
RealTime(семейство,соответствующийстолбец, значение[, префикс])
Использует систему обработки конфигурации RealTime для чтения данных в переменные канала. Все уникальные имена столбцов (из указанного семейства) будут заданы как переменные канала с добавлением необязательного префикса к имени (например, префикс var_ превратит имя столбца name в переменную ${var_Mi«m}).
; извлекаем все столбцы из таблицы sipfriends, где столбец ; name содержит значение John, и используем для всех ; переменных префикс John_
exten => 123,1,RealTime(sipfriends,name,John,John_) ; теперь прочитаем значение столбца port exten => 123,n,SayNumber(${John_port})
Смотрите также
RealTimeUpdate()
RealTimeUpdate()
Обновляет значение посредством обработчика конфигурации RealTime
RealTimeUpdate(семейство, соответствующийстолбец, .значение, новыйстолбец, новоезначение) Использует систему обработки конфигурации RealTime для обновления значения. В столбце новыйстолбец в семействе, соответствующем столбцу соответствующийстолбец = значение, будет обновлено значение новоезначение.
В переменной канала REALTIMECOUNT будет сохранено количество обновленных строк или -1 в случае возникновения ошибки.
; зададим для столбца port таблицы sipfriends
; со значением John новое значение, 5061
exten => 123,1,RealTimeUpdate(sipfriends,name,John,port,5061)
Смотрите также
RealTime
Record()
Записывает в файл аудиосигнал, передаваемый по каналу
Record(имяфайла. формат[, пауза[,максимальнаяпродолжительность[, опции]]])
Записывает аудиосигнал из канала в файл с заданным параметром имя- файла. Если файл уже существует, он будет перезаписан.
К необязательным аргументам относятся:
формат
Определяет формат, в котором будет записываться файл.
пауза
Определяет допустимую паузу (в секундах), после которой запись будет закончена и выполнение перейдет к следующему приоритету диалплана.
максимальнаяпродолжительность
Устанавливает максимальную продолжительность записи, в секундах. Если не задана или равна 0, ограничений по продолжительности нет.
опции
Может содержать любой из следующих символов:
a
Дописываем в конец файла, а не перезаписываем его.
n
Не отвечаем на звонок, но все равно выполняем запись.
q
Скрытый режим; не воспроизводим звуковой сигнал в начале записи.
s
Не выполняем запись, пока не установлено соединение.
t
Используем альтернативную кнопку завершения * вместо применяемой по умолчанию #.
x
Игнорируем все кнопки завершения и продолжаем запись до разрыва соединения.
Если имяфайла содержит %d, эти символы будут замещены номером, увеличивающимся на 1 при каждой записи файла.
Пользователь может нажать кнопку #, чтобы завершить запись и продолжить выполнение со следующего приоритета диалплана.
; записываем имя вызывающего абонента exten => 123,1,Playback(pls-rcrd-name-at-tone) exten => 123,n,Record(/tmp/name.gsm,3,30) exten => 123,n,Playback(/tmp/name)
RemoveQueueMember()
Динамически удаляет участников очереди
RemoveQueueMember(имяочереди[, интерфейс[,опции]])
Динамически удаляет заданный интерфейс из очереди обработки вызовов, заданной аргументом имяочереди. Если интерфейс не задан, это приложение удаляет текущий канал из очереди.
Если параметр опции имеет значение j, интерфейса нет в очереди и существует приоритет n + 101 (где n - текущий приоритет), приложение перейдет в этот приоритет.
; удалим SIP/3000 из очереди techsupport
exten => 123,1,RemoveQueueMember(techsupport,SIP/3000)
Смотрите также
Queue(), AddQueueMember(), PauseQueueMember(), UnpauseQueueMember()
ResetCDR()
Сбрасывает запись параметров вызова
ResetCDR([опции])
Сбрасывает все поля в записи параметров вызовов для текущего канала. Параметр опции может содержать нуль или более следующих опций:
a
Сохраняем все записи, помещенные в стек.
w
Сохраняем текущую запись CDR, прежде чем выполнить ее сброс.
v
Сохраняем переменные CDR.
; делаем копию текущей записи CDR и сбрасываем ее
exten => 123,1,Answer()
exten => 123,2,Playback(tt-monkeys)
exten => 123,3,ResetCDR(wv)
exten => 123,4,Playback(tt-monkeys)
Смотрите также
ForkCDR(), NoCDR()
RetryDial()
Делает попытку позвонить и повторяет ее в случае неудачи
RetгyDial(объявление, ожидание, циклы,технология/ресурс[&технология2/ресурс2...] [,времяожидания][, опции][,URL])
Делает попытку совершить звонок. Если нет доступного канала, воспроизводится файл, определенный аргументом объявление, а затем приложение ожидает заданное аргументом ожидание количество секунд и повторяет вызов. Если количество выполненных попыток равно значению, заданному аргументом циклы, обработка вызова продолжится в следующем приоритете диалплана. Если аргументу циклы задано значение 0, попытки дозвониться будут выполняться бесконечно. В ходе ожидания может быть введен одноразрядный добавочный номер. Если этот номер существует в любом из контекстов, определенных в переменной ${EXITCONTEXT} (если определена), или в текущем, вызов немедленно будет переадресован на этот добавочный номер. Все аргументы после аргумента циклы передаются непосредственно в приложение Dial().