diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index c03981dd58..49f9d3e711 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -6252,7 +6252,11 @@ static void *ss_thread(void *data) ast_hangup(chan); return NULL; } - f = ast_read(chan); + if (!(f = ast_read(chan))) { + ast_log(LOG_WARNING, "Hangup received waiting for ring. Exiting simple switch\n"); + ast_hangup(chan); + return NULL; + } ast_frfree(f); if (chan->_state == AST_STATE_RING || chan->_state == AST_STATE_RINGING)