diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index de2d0f4cad3c326d513e9c19b2829e97d66892d8..f4a81131b2bd9f5a5bc1cbbeeb4314d3e98b1232 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -9986,7 +9986,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 92eb19144e531bd704307299764a4bca2ead1fc5..5fcb485eea2e0ce00b06bd3dae63a59d6fd7f180 100644 --- a/channels/sig_analog.c +++ b/channels/sig_analog.c @@ -2010,10 +2010,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; } }