SWITCH_STANDARD_APP(answer_function)
{
- switch_channel_answer(switch_core_session_get_channel(session));
+ switch_channel_t *channel = switch_core_session_get_channel(session);
+ switch_channel_clear_flag(channel, CF_PROXY_MEDIA);
+ switch_channel_clear_flag(channel, CF_PROXY_MODE);
+ switch_channel_answer(channel);
}
SWITCH_STANDARD_APP(presence_function)
SWITCH_STANDARD_APP(pre_answer_function)
{
- switch_channel_pre_answer(switch_core_session_get_channel(session));
+ switch_channel_t *channel = switch_core_session_get_channel(session);
+ switch_channel_clear_flag(channel, CF_PROXY_MEDIA);
+ switch_channel_clear_flag(channel, CF_PROXY_MODE);
+ switch_channel_pre_answer(channel);
}
SWITCH_STANDARD_APP(redirect_function)
}
}
} else {
- if (switch_test_flag(tech_pvt, TFLAG_LATE_NEGOTIATION)) {
+ if (switch_test_flag(tech_pvt, TFLAG_LATE_NEGOTIATION) || !tech_pvt->iananame) {
switch_clear_flag_locked(tech_pvt, TFLAG_LATE_NEGOTIATION);
if (!switch_channel_test_flag(tech_pvt->channel, CF_OUTBOUND)) {
const char *r_sdp = switch_channel_get_variable(channel, SWITCH_R_SDP_VARIABLE);