SWITCH_DECLARE(int) switch_channel_state_change_pending(switch_channel_t *channel)
{
+ if (switch_channel_down(channel) || !switch_core_session_in_thread(channel->session)) {
+ return 0;
+ }
+
return channel->running_state != channel->state;
}
}
}
- while(switch_channel_get_state(bchan) != switch_channel_get_running_state(bchan) && switch_channel_up(bchan)) switch_cond_next();
+
+ while(switch_channel_state_change_pending(bchan)) {
+ switch_cond_next();
+ }
+
+
switch_ivr_sleep(*bleg, 0, SWITCH_TRUE, NULL);
}