From 9dbdc103b01433c42ca65b361c7df57b786712d3 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Fri, 7 Dec 2007 15:39:58 +0000 Subject: [PATCH] Hangups that happen during autoservice were not processed appropriately. This is because a hangup actually causes a NULL frame to be received, not a hangup frame. Queueing a hangup if we receive a NULL frame during autoservice corrects this problem (closes issue #11467, reported by jmls, patched by me) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@91737 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/autoservice.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main/autoservice.c b/main/autoservice.c index dc5ad81bf2..f6887f638b 100644 --- a/main/autoservice.c +++ b/main/autoservice.c @@ -90,8 +90,11 @@ static void *autoservice_run(void *ign) if (chan) { struct ast_frame *f = ast_read(chan); - if (!f) + if (!f) { + /* NULL means we got a hangup*/ + ast_queue_hangup(chan); continue; + } /* Do not add a default entry in this switch statement. Each new * frame type should be addressed directly as to whether it should