Записанные файлы теряются, когда пользователь кладет трубку

Я пишу голосовое приложение, в котором я хочу сохранить записанный звуковой файл.
Мой код:

$file = $clientid.rand(5, 10);
$agi->stream_file("itc-Por-favor-indique-su-nombre-numero-de-telefono");
$sal = $agi->record_file($file,"WAV","0123456789#*",-1,NULL,true);

if ($sal['result'] > 0) {
$bodytext = "Reclamo de la mesa de ayuda, cliente no identificado por IVR.
\nNumero de Telefono: ".$agi->request['agi_callerid'];
}

Всякий раз, когда я вешаю трубку во время записи, приложение записи не может выполнить и повесить трубку.

У кого-нибудь есть идеи, как управлять этой функцией записи, вешая трубку?

1

Решение

Вам нужно использовать опцию ‘k’, чтобы указать звездочке, что вы хотите сохранить файл при зависании БЕЗ подтверждения.

core show application Record

-= Info about application 'Record' =-

[Synopsis]
Record to a file.

[Description]
If filename contains '%d', these characters will be replaced with a number
incremented by one each time the file is recorded. Use 'core show file formats'
to see the available formats on your system User can press '#' to terminate the
recording and continue to the next priority. If the user hangs up during a
recording, all data will be lost and the application will terminate.
${RECORDED_FILE}: Will be set to the final filename of the recording.
${RECORD_STATUS}: This is the final status of the command
DTMF:A terminating DTMF was received ('#' or '*', depending upon option
't')
SILENCE:The maximum silence occurred in the recording.
SKIP:The line was not yet answered and the 's' option was specified.
TIMEOUT:The maximum length was reached.
HANGUP:The channel was hung up.
ERROR:An unrecoverable error occurred, which resulted in a WARNING to the
logs.

[Syntax]
Record(filename.format[,silence[,maxduration[,options]]])

[Arguments]
format
Is the format of the file type to be recorded (wav, gsm, etc).
silence
Is the number of seconds of silence to allow before returning.
maxduration
Is the maximum recording duration in seconds. If missing or 0 there is no
maximum.
options
a: Append to existing recording rather than replacing.

n: Do not answer, but record anyway if line not yet answered.

q: quiet (do not play a beep tone).

s: skip recording if the line is not yet answered.

t: use alternate '*' terminator key (DTMF) instead of default '#'

x: Ignore all terminator keys (DTMF) and keep recording until hangup.

k: Keep recorded file upon hangup.

y: Terminate recording if *any* DTMF digit is received.
0

Другие решения

Других решений пока нет …