From 76f14e5a3b45309a028e234c2992d37c830772a2 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 20 Dec 2016 18:28:09 -0600 Subject: [PATCH] FS-9866: [freeswitch-core] 3pcc=proxy for FS client and local SDP #resolve --- src/mod/endpoints/mod_sofia/mod_sofia.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index b668fb0480..4bfd3cf4ba 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -714,7 +714,14 @@ static switch_status_t sofia_answer_channel(switch_core_session_t *session) switch_channel_set_flag(channel, CF_3PCC); } - switch_core_media_set_local_sdp(session, b_sdp, SWITCH_TRUE); + if (b_sdp && !switch_channel_var_true(channel, "3pcc_always_gen_sdp")) { + switch_core_media_set_local_sdp(session, b_sdp, SWITCH_TRUE); + } else { + switch_core_media_choose_port(tech_pvt->session, SWITCH_MEDIA_TYPE_AUDIO, 0); + switch_core_media_prepare_codecs(session, 1); + switch_core_media_gen_local_sdp(session, SDP_TYPE_REQUEST, NULL, 0, NULL, 1); + sofia_set_flag_locked(tech_pvt, TFLAG_3PCC); + } if (switch_channel_test_flag(channel, CF_PROXY_MEDIA)) { switch_core_media_patch_sdp(tech_pvt->session);