Команда Record()


Назначение:

Запись разговора пользователя в файл

Описание

До 01-11-2004
Record(filename:format[|silence][|maxduration][|option])

После 01-11-2004 (cvs)
Record(filename.format[|silence][|maxduration][|option])

Производит запись разговора на текущем канале в звуковой файл с заданным именем. Параметр format определяет в каком звуковом формате сохранить запись и расширение файла для записи. Если Вы не определили полный путь к файлу, он будет сохранен в директории: /var/lib/asterisk/sounds. Если уже существует файл с таким же именем и расширением, то он будет перезаписан.

Если в имени файла содержится %d, то эти символы будут заменены порядковым номером, который будет увеличиваться на один каждый раз, когда будет производиться запись в этот файл, а полученное в результате имя файла будет помещено в переменную канала: ${RECORDED_FILE}.

Поддерживаемые форматы звуковых файлов: g723, g729, gsm, h263, ulaw, alaw, vox, wav, WAV (WAV - GSM формат wav файлов).

Необязательные параметры:
  • silence: количество секунд тишины, после которых запись останавливается. Если пустое значение или 0, детектирование тишины выключено.
  • maxduration: Максимальная продолжительность записи в секундах. Если пустое значение или 0, нет ограничений на время записи.
  • option: может иметь значение 'skip', это заставляет команду немедленно закончить работу, если канал находиться в неотвеченном состоянии, или может иметь значение 'noanswer', для записи разговора, даже если линия не в состоянии установленного соединения.

Команда Record, сгенерирует beep на канале, перед началом записи. Запись закончиться, если достигнуто время максимальной продолжительности записи или, если нажата кнопка '#' или соединение на канале завершено.

exclaim Убедитесь, что аудиопоток проходит через сервер Asterisk, т.е. Вам необходимо установить параметр canreinvite=no в файле конфигурации sip.conf, если это канал SIP, или использовать параметры t или T в Вашей команде Dial, или использовать трансляцию между звуковыми кодеками (абоненты используют различные кодеки для связи).

Коды возврата:

Возвращает -1, когда абонент повесил трубку.

Пример

; можно использовать для записи приветствий
exten => 205,1,Wait(2)
exten => 205,2,Record(/tmp/asterisk-recording:gsm)
exten => 205,3,Wait(2)
exten => 205,4,Playback(/tmp/asterisk-recording)
exten => 205,5,Wait(2)
exten => 205,6,Hangup

Еще один пример

Данный пример позволяет записывать необходимые Вам сообщения, и создавать несколько записей без необходимости переименования файлов после каждой записи. В данном примере используется синтезатор Festival, который должен быть установлен у Вас в системе. Если не установлен, отредактируйте соответствующие части примера.

[recordings]
exten => 500,1,Festival('Please record your message')
exten => 500,2,Record(mymessage:gsm)
exten => 500,3,Festival('You said')
exten => 500,4,Playback(mymessage)
exten => 500,5,Festival('Press 1 to continue or 2 to change your message')
exten => 500,6,ResponseTimeout(3)

exten => t,1,Festival('Sorry, I did not get that')
exten => t,2,Goto(500,5)

exten => i,1,Festival('Sorry, that is an invalid choice')
exten => i,2,Goto(500,5)

exten => 1,1,System(/bin/mv /var/lib/asterisk/sounds/mymessage.gsm /var/lib/asterisk/sounds/local/${TIMESTAMP}.gsm)
exten => 1,2,Festival('Thank you, your recording has been saved.')
exten => 1,3,Festival('Press 3 to record another file or 4 to hang up')

exten => 2,1,Goto(500,1)


Ссылки по теме:



Asterisk | Файлы конфигурации | План набора: extensions.conf | Список команд | Звуковые файлы