diff --git a/src/switch_channel.c b/src/switch_channel.c index ae0634d802..5f53b22a7a 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -4854,7 +4854,7 @@ static void switch_channel_check_device_state(switch_channel_t *channel, switch_ break; case SDS_ACTIVE: case SDS_ACTIVE_MULTI: - if (drec->last_state != SDS_HELD && drec->active_start) { + if (drec->active_start && drec->last_state != SDS_HELD) { drec->active_stop = switch_micro_time_now(); } else if (!drec->active_start) { drec->active_start = switch_micro_time_now(); @@ -4864,7 +4864,7 @@ static void switch_channel_check_device_state(switch_channel_t *channel, switch_ drec->hold_start = switch_micro_time_now(); drec->hold_stop = 0; default: - if (drec->last_state != SDS_HELD) { + if (drec->active_start && drec->last_state != SDS_HELD) { drec->active_stop = switch_micro_time_now(); } break;