diff --git a/src/switch_channel.c b/src/switch_channel.c index 16d1652b2d..8d98caa635 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -4766,7 +4766,7 @@ static void switch_channel_check_device_state(switch_channel_t *channel, switch_ } } - if (drec->state == SDS_DOWN && drec->last_state == SDS_DOWN) { + if ((drec->state == SDS_DOWN && drec->last_state == SDS_DOWN) || (drec->state == SDS_HANGUP && drec->last_state == SDS_HANGUP)) { switch_mutex_unlock(drec->mutex); switch_mutex_unlock(globals.device_mutex); return;