У меня есть одно голосовое приложение, в котором я хочу сохранить записанный звуковой файл. Мой код:
$record_file= $dir_path . "recordfile_".$file_count; $this->obj_agi->exec("Record","$record_file.wav,5,$maxsecs");
Всякий раз, когда я повесил трубку во время записи, приложение записи не может выполнить и повредить вызов.
Кто-нибудь знает, как управлять этой функцией записи при вешании?
Приложение записи обрабатывает запись обычно даже при зависании.
Однако внутри 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'.