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

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

$record_file= $dir_path . "recordfile_".$file_count; $this->obj_agi->exec("Record","$record_file.wav,5,$maxsecs"); 

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

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

Solutions Collecting From Web of "Записанные файлы потеряны, когда пользователь повесил трубку в Asterisk"

Приложение записи обрабатывает запись обычно даже при зависании.

Однако внутри AGI наилучшим способом захвата зависания является захват сигнала, отправленного из Asterisk в ваш AGI-процесс. Путем захвата вашего SIGHUP вы можете делать все, что хотите (биллинг, сенсорные файлы, вставка в БД и т. Д.).

По умолчанию будет отправлено сообщение SIGHUP.

чтобы получить дополнительную информацию, вот результат работы приложения AGI основного шоу (из CLI)

  A locally executed AGI script will receive SIGHUP on hangup from the channel except when using DeadAGI. A fast AGI server will correspondingly receive a HANGUP inline with the command dialog. Both of theses signals may be disabled by setting the ${AGISIGHUP} channel variable to 'no' before executing the AGI application. Alternatively, if you would like the AGI application to exit immediately after a channel hangup is detected, set the ${AGIEXITONHANGUP} variable to 'yes'.