diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index b5a02d9859..88aada55aa 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -9921,7 +9921,10 @@ static void *analog_ss_thread(void *data) /* some switches require a minimum guard time between the last FGD wink and something that answers immediately. This ensures it */ - if (ast_safe_sleep(chan,100)) goto quit; + if (ast_safe_sleep(chan, 100)) { + ast_hangup(chan); + goto quit; + } } dahdi_enable_ec(p); if (NEED_MFDETECT(p)) { diff --git a/channels/sig_analog.c b/channels/sig_analog.c index 1b40a9f585..17762ccd84 100644 --- a/channels/sig_analog.c +++ b/channels/sig_analog.c @@ -2007,10 +2007,13 @@ static void *__analog_ss_thread(void *data) } if ((p->sig == ANALOG_SIG_FEATDMF) || (p->sig == ANALOG_SIG_FEATDMF_TA)) { analog_wink(p, idx); - /* some switches require a minimum guard time between - the last FGD wink and something that answers - immediately. This ensures it */ - if (ast_safe_sleep(chan,100)) { + /* + * Some switches require a minimum guard time between the last + * FGD wink and something that answers immediately. This + * ensures it. + */ + if (ast_safe_sleep(chan, 100)) { + ast_hangup(chan); goto quit; } }