From efe3ff7be4b1c73dc42e50acb2ca99cd9429a2d1 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 11 Jun 2013 11:23:45 -0500 Subject: [PATCH] FS-5498 fix state change --- src/switch_channel.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/switch_channel.c b/src/switch_channel.c index a3dd9d9978..1ae67f2915 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -4596,7 +4596,7 @@ static void fetch_device_stats(switch_device_record_t *drec) drec->stats.early++; } else if (np->callstate == CCS_RINGING) { drec->stats.ringing++; - } else { + } else if (np->callstate != CCS_DOWN) { drec->stats.active++; } } @@ -4751,6 +4751,12 @@ static void switch_channel_check_device_state(switch_channel_t *channel, switch_ } } + if (drec->state == SDS_DOWN && drec->last_state == SDS_DOWN) { + switch_mutex_unlock(drec->mutex); + switch_mutex_unlock(globals.device_mutex); + return; + } + switch(drec->state) { case SDS_ACTIVE: case SDS_ACTIVE_MULTI: