FS-9259 #resolve [Missing "m=image 0" when replying to INVITE with disable image line]

This commit is contained in:
Anthony Minessale 2016-07-18 13:00:00 -05:00
parent 6bc535fd65
commit d9700b36a3
2 changed files with 118 additions and 106 deletions

View File

@ -1509,6 +1509,7 @@ typedef enum {
CF_3P_MEDIA_REQUESTED,
CF_3P_NOMEDIA_REQUESTED,
CF_3P_NOMEDIA_REQUESTED_BLEG,
CF_IMAGE_SDP,
CF_VIDEO_SDP_RECVD,
/* WARNING: DO NOT ADD ANY FLAGS BELOW THIS LINE */
/* IF YOU ADD NEW ONES CHECK IF THEY SHOULD PERSIST OR ZERO THEM IN switch_core_session.c switch_core_session_request_xml() */

View File

@ -3880,7 +3880,10 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
got_udptl++;
}
if (got_udptl && m->m_type == sdp_media_image && m->m_port) {
if (got_udptl && m->m_type == sdp_media_image) {
switch_channel_set_flag(session->channel, CF_IMAGE_SDP);
if (m->m_port) {
switch_t38_options_t *t38_options = switch_core_media_process_udptl(session, sdp, m);
if (switch_channel_test_app_flag_key("T38", session->channel, CF_APP_T38_NEGOTIATED)) {
@ -3990,6 +3993,7 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
/* do nothing here, mod_fax will trigger a response (if it's listening =/) */
match = 1;
goto done;
}
} else if (m->m_type == sdp_media_audio && m->m_port && got_audio && got_savp) {
a_engine->reject_avp = 1;
} else if (m->m_type == sdp_media_audio && m->m_port && !got_audio) {
@ -8257,6 +8261,12 @@ SWITCH_DECLARE(void) switch_core_media_gen_local_sdp(switch_core_session_t *sess
}
if (switch_channel_test_flag(session->channel, CF_IMAGE_SDP)) {
switch_snprintf(buf + strlen(buf), SDPBUFLEN - strlen(buf), "m=image 0 UDPTL T38\r\n", SWITCH_VA_NONE);
}
video:
@ -8814,6 +8824,7 @@ SWITCH_DECLARE(void) switch_core_media_set_udptl_image_sdp(switch_core_session_t
a_engine = &smh->engines[SWITCH_MEDIA_TYPE_AUDIO];
switch_channel_clear_flag(session->channel, CF_IMAGE_SDP);
switch_assert(t38_options);