diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index 423f5c0cea..8511745c68 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -10610,9 +10610,14 @@ static void *analog_ss_thread(void *data) ast_log(LOG_WARNING, "DTMFCID timed out waiting for ring. " "Exiting simple switch\n"); ast_hangup(chan); - return NULL; + goto quit; } f = ast_read(chan); + if (!f) { + /* Hangup received waiting for DTMFCID. Exiting simple switch. */ + ast_hangup(chan); + goto quit; + } if (f->frametype == AST_FRAME_DTMF) { dtmfbuf[k++] = f->subclass.integer; ast_log(LOG_DEBUG, "CID got digit '%c'\n", f->subclass.integer);