FS-3170 this was specific to the user channel which is not a real channel in every sense of the word as it has no running thread or any usable state changes so this new line of code in 233d3164be to wait for the state machine to stabalize before returning from originate caused an issue with user/ channels

This commit is contained in:
Anthony Minessale 2011-03-21 12:01:51 -05:00
parent 72f52aae19
commit 88a6ac2ff4
2 changed files with 10 additions and 1 deletions

View File

@ -1562,6 +1562,10 @@ SWITCH_DECLARE(switch_channel_state_t) switch_channel_get_running_state(switch_c
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;
}

View File

@ -3625,7 +3625,12 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
}
}
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);
}