mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-08 08:51:50 +00:00
FS-9206: [mod_sofia] proxy media with enable-3pcc=proxy does not properly pass audio after 3pcc re-invite #resolve
This commit is contained in:
parent
afa182cbfc
commit
d4833fac43
@ -664,14 +664,15 @@ static switch_status_t sofia_answer_channel(switch_core_session_t *session)
|
|||||||
b_sdp = switch_channel_get_variable(channel, SWITCH_B_SDP_VARIABLE);
|
b_sdp = switch_channel_get_variable(channel, SWITCH_B_SDP_VARIABLE);
|
||||||
switch_core_media_set_local_sdp(session, b_sdp, SWITCH_TRUE);
|
switch_core_media_set_local_sdp(session, b_sdp, SWITCH_TRUE);
|
||||||
|
|
||||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG,
|
|
||||||
"3PCC-PROXY nomedia - sending ack, SDP:\n%s\n", tech_pvt->mparams.local_sdp_str);
|
|
||||||
|
|
||||||
if (switch_channel_test_flag(tech_pvt->channel, CF_PROXY_MEDIA)) {
|
if (switch_channel_test_flag(tech_pvt->channel, CF_PROXY_MEDIA)) {
|
||||||
switch_core_media_patch_sdp(tech_pvt->session);
|
switch_core_media_patch_sdp(tech_pvt->session);
|
||||||
switch_core_media_proxy_remote_addr(tech_pvt->session, NULL);
|
switch_core_media_proxy_remote_addr(tech_pvt->session, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG,
|
||||||
|
"3PCC-PROXY nomedia - sending ack, SDP:\n%s\n", tech_pvt->mparams.local_sdp_str);
|
||||||
|
|
||||||
|
|
||||||
if (sofia_use_soa(tech_pvt)) {
|
if (sofia_use_soa(tech_pvt)) {
|
||||||
nua_ack(tech_pvt->nh,
|
nua_ack(tech_pvt->nh,
|
||||||
TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)),
|
TAG_IF(!zstr(tech_pvt->user_via), SIPTAG_VIA_STR(tech_pvt->user_via)),
|
||||||
|
@ -1636,9 +1636,13 @@ static void our_sofia_event_callback(nua_event_t event,
|
|||||||
|
|
||||||
if (switch_channel_test_flag(tech_pvt->channel, CF_PROXY_MEDIA) && r_sdp) {
|
if (switch_channel_test_flag(tech_pvt->channel, CF_PROXY_MEDIA) && r_sdp) {
|
||||||
if (sofia_test_pflag(tech_pvt->profile, PFLAG_3PCC_PROXY)) {
|
if (sofia_test_pflag(tech_pvt->profile, PFLAG_3PCC_PROXY)) {
|
||||||
|
switch_channel_set_variable_partner(tech_pvt->channel, SWITCH_B_SDP_VARIABLE, r_sdp);
|
||||||
|
|
||||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(tech_pvt->session), SWITCH_LOG_DEBUG, "3PCC-PROXY, Got my ACK\n");
|
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(tech_pvt->session), SWITCH_LOG_DEBUG, "3PCC-PROXY, Got my ACK\n");
|
||||||
|
switch_core_media_proxy_remote_addr(tech_pvt->session, r_sdp);
|
||||||
sofia_set_flag(tech_pvt, TFLAG_3PCC_HAS_ACK);
|
sofia_set_flag(tech_pvt, TFLAG_3PCC_HAS_ACK);
|
||||||
sofia_clear_flag(tech_pvt, TFLAG_PASS_ACK);
|
sofia_clear_flag(tech_pvt, TFLAG_PASS_ACK);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user