{
private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session);
switch_channel_t *channel = switch_core_session_get_channel(session);
+ uint32_t sanity = 1000;
switch_assert(tech_pvt != NULL);
return SWITCH_STATUS_FALSE;
}
- while (!(tech_pvt->video_read_codec.implementation && switch_rtp_ready(tech_pvt->video_rtp_session))) {
- if (switch_channel_ready(channel)) {
+ while (!(tech_pvt->video_read_codec.implementation && switch_rtp_ready(tech_pvt->video_rtp_session) && !switch_channel_test_flag(channel, CF_REQ_MEDIA))) {
+ switch_ivr_parse_all_messages(tech_pvt->session);
+
+ if (--sanity && switch_channel_ready(channel)) {
switch_yield(10000);
} else {
+ switch_channel_hangup(tech_pvt->channel, SWITCH_CAUSE_RECOVERY_ON_TIMER_EXPIRE);
return SWITCH_STATUS_GENERR;
}
}