diff --git a/main/autoservice.c b/main/autoservice.c index 8bcf81742b..2460527841 100644 --- a/main/autoservice.c +++ b/main/autoservice.c @@ -77,6 +77,11 @@ static int as_chan_list_state; static void *autoservice_run(void *ign) { + struct ast_frame hangup_frame = { + .frametype = AST_FRAME_CONTROL, + .subclass = AST_CONTROL_HANGUP, + }; + for (;;) { struct ast_channel *mons[MAX_AUTOMONS]; struct asent *ents[MAX_AUTOMONS]; @@ -121,7 +126,6 @@ static void *autoservice_run(void *ign) f = ast_read(chan); if (!f) { - struct ast_frame hangup_frame = { 0, }; /* No frame means the channel has been hung up. * A hangup frame needs to be queued here as ast_waitfor() may * never return again for the condition to be detected outside