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)

см. также

Asterisk app: Authenticate

Asterisk app: BackGround

Команда Asterisk Dial

Asterisk app: SendDTMF

Asterisk app: WaitExten

Команды диалплана Asterisk

  • asterisk/app/read.txt
  • Последние изменения: 2018/03/12