app = "intercept";
}
switch_core_session_rwunlock(b_session);
- } else {
- switch_channel_set_state(channel, CS_RESET);
}
if ((extension = switch_caller_extension_new(peer_session, app, app_arg)) == 0) {
switch_caller_extension_add_application(peer_session, extension, app, app_arg);
switch_channel_set_caller_extension(peer_channel, extension);
- switch_channel_set_flag(peer_channel, CF_TRANSFER);
switch_channel_set_state(peer_channel, CS_RESET);
switch_channel_wait_for_state(peer_channel, channel, CS_RESET);
switch_channel_set_state(peer_channel, CS_EXECUTE);
goto end;
}
- while(switch_channel_state_change_pending(tchannel)) {
+ while(switch_channel_state_change_pending(tchannel) || !switch_channel_media_ready(tchannel)) {
switch_yield(10000);
if (!--sanity) break;
}
- if (!switch_channel_media_ready(tchannel)) {
+ if (!switch_channel_media_up(tchannel)) {
goto end;
}
msg.message_id = SWITCH_MESSAGE_INDICATE_DISPLAY;
switch_core_session_receive_message(tsession, &msg);
- while (switch_channel_ready(tchannel) && switch_channel_ready(channel)) {
+ while (switch_channel_up(tchannel) && switch_channel_ready(channel)) {
uint32_t len = sizeof(buf);
switch_event_t *event = NULL;
char *fcommand = NULL;