Asterisk app: Read
Приложение диалплана Asterisk - Read: сохраняет введенные цифры в переменной.
Описание
Читает введенные цифры, пока не получит сигнал завершения ввода - решетку '#'
и сохраняет в указанную переменную.
Возвращает статус в переменной канала ${READSTATUS} с одним из перечисленных значений:
- OK
- ERROR
- HANGUP
- INTERRUPTED
- SKIPPED
- TIMEOUT
синтаксис
Read(variable[,filename[&filename2[&...]][,maxdigits[,options[,attempts[,timeout]]]]])
аргументы
- variable - введенные цифры сохраняются в переменную <variable>.
- filename - файл проигрываемый перед чтением цифр, или тональный сигнал с опцией 'i'.
- maxdigits - максимальное кол-во цифр ввода. Чтение останавливается по достижении порога <maxdigits>, нажатие клавиши решетка -'#', в этом случае не требуется. По умолчанию - '0' - без ограничений - ожидает символа завершения ввода - '#'. Максимально-возможное значение -'255'.
- options
- s: завершает немедленно выполнение команды, если линия не поднята.
- i: вместо файла <filename>, генерирует тональный сигнал, из конфига indications.conf.
- n: читает DTMF ввод независимо от состояния линии.
- attempts - Если задано, указывает кол-во попыток ввода.
- timeout - время ожидания ввода в секундах. Если задано имеет приоритет над таймаутом по умолчанию. Может быть числом с плавающей точкой.
пример
Вызывающий абонент вводит dtmf сигналы, набираемые цифры записываются в текстовый файл.
exten => s,1,Answer() exten => s,2,Playback(access-code) exten => s,3,Read(myvar,beep,,,6,15) exten => s,n,SayDigits(${myvar}) exten => s,n,Set(CDR(userfield)=${myvar}) exten => s,n,Verbose(${myvar}) exten => s,n,System(echo "${CALLERID(num)}" - "${myvar}" >> /var/log/asterisk/test)
см. также