Джим Меггелен - Asterisk™: будущее телефонии Второе издание
n
Повторные попытки по истечении времени ожидания запрещены; происходит выход из этого приложения, и выполнение переходит к следующему шагу.
r
Вместо музыки во время ожидания вызывающий абонент будет слышать гудки.
t
Вызванный абонент получает возможность переадресовывать вызов.
T
Вызывающий абонент получает возможность переадресовывать вызов.
w
Вызванный абонент получает возможность записывать разговор на диск.
W
Вызывающий абонент получает возможность записывать разговор на диск.
Кроме переадресации, вызов может быть припаркован, а затем на него может ответить другой абонент.
Аргумент переопределитьприветствие переопределяет стандартное приветствие, воспроизводимое агентам обработки очереди перед тем, как они ответят на указанный вызов.
Необязательный URL будет отправлен вызываемой стороне, если канал поддерживает это.
Соответственно аргументу времяожидания вызов будет ожидать ответа в течение заданного промежутка времени, который проверяется между каждым циклом, заданным параметрами timeout и retry в файле queues.conf. Обработка вызова продолжится со следующего приоритета диалплана.
По завершении это приложение задает переменную канала QUEUESTATUS. Ей может быть задано одно из следующих значений: TIMEOUT (время ожидания)
Вызов находился в очереди слишком долго, и время ожидания истекло. См. параметр времяожидания.
FULL (полная)
Очередь была уже заполнена. См. настройку очереди maxlen в файле queues.conf.
JOINEMPTY (присоединился к пустой)
Вызывающий абонент не мог быть поставлен в очередь, поскольку не было участников, которые могли бы ответить на звонок. См. настройку очереди joinempty в файле queues.conf.
LEAVEEMPTY (покинул пустую)
Вызывающий абонент был поставлен в очередь, но затем все участники обработки очереди покинули ее. См. настройку очереди leavewhenempty в файле queues.conf.
JOINUNAVAIL (присоединился к недоступной)
Вызывающий абонент был поставлен в очередь, но затем все участники обработки очереди стали недоступными. См. настройку очереди leavewhenempty в файле queues.conf.
; помещаем вызывающего абонента в очередь techsupport
exten => 123,1,Answer()
exten => 123,2,Queue(techsupport,t)
Смотрите также
AddQueueMember(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember(), AgentLogin(), queues.conf, QUEUE_MEMBER_COUNT, QUEUE_MEMBER_LIST, QUEUE_WAITING_COUNT
QueueLog()
Записывает произвольные события очереди в журнал регистрации очереди
QueueLog( имяочереди, уникaльныйid, участник, событие[, дополнительнаяинформация])
Записывает произвольное событие очереди в журнал регистрации очереди. Параметр имяочереди определяет имя очереди вызовов. Параметр уникaльныйid определяет уникальный идентификатор для канала. Параметр участник определяет, к какому участнику обработки очереди относится событие. Для параметров событие и дополнительнаяинформация произвольно могут быть заданы необходимые данные.
; Записываем произвольное событие ; в журнал регистрации очереди
exten => 123,1,QueueLog(myqueue,${UNIQUEID},Agent/123,MyTestEvent)
Смотрите также
Queue()
Random()
Выполняет условный переход на основании вероятности
Ra.пdom([вероятность]:[[к.онтек.ст)]добaвочныйномер)]приоритет)
Это приложение признано устаревшим и заменено приложением
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
Используем альтернативную кнопку завершения * вместо применяемой по умолчанию #.