mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-10-25 12:44:15 +00:00
allow ep_codec_string to draw from absolute_codec_string before the profile prefs
This commit is contained in:
1 parent
b2d183099f
commit
f685e4c504
3 files changed
+20
-14
No files matched your search
@@ -5815,7 +5815,7 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
|
||||
tech_pvt->remote_sdp_str = switch_core_session_strdup(session, r_sdp);
|
||||
switch_channel_set_variable(channel, SWITCH_R_SDP_VARIABLE, r_sdp);
|
||||
|
||||
if (sofia_test_flag(tech_pvt, TFLAG_LATE_NEGOTIATION) && (parser = sdp_parse(NULL, r_sdp, (int) strlen(r_sdp), 0))) {
|
||||
if ((sofia_test_flag(tech_pvt, TFLAG_LATE_NEGOTIATION) || switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_OUTBOUND) && (parser = sdp_parse(NULL, r_sdp, (int) strlen(r_sdp), 0))) {
|
||||
if ((sdp = sdp_session(parser))) {
|
||||
sofia_glue_set_r_sdp_codec_string(session, sofia_glue_get_codec_string(tech_pvt), sdp);
|
||||
}
|
||||
|
||||
@@ -776,19 +776,23 @@ void sofia_glue_set_local_sdp(private_object_t *tech_pvt, const char *ip, switch
|
||||
|
||||
const char *sofia_glue_get_codec_string(private_object_t *tech_pvt)
|
||||
{
|
||||
const char *codec_string = NULL, *preferred = NULL, *fallback = NULL;
|
||||
|
||||
if (switch_channel_direction(tech_pvt->channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
|
||||
preferred = tech_pvt->profile->outbound_codec_string;
|
||||
fallback = tech_pvt->profile->inbound_codec_string;
|
||||
} else {
|
||||
preferred = tech_pvt->profile->inbound_codec_string;
|
||||
fallback = tech_pvt->profile->outbound_codec_string;
|
||||
const char *preferred = NULL, *fallback = NULL;
|
||||
|
||||
if (!(preferred = switch_channel_get_variable(tech_pvt->channel, "absolute_codec_string"))) {
|
||||
preferred = switch_channel_get_variable(tech_pvt->channel, "codec_string");
|
||||
}
|
||||
|
||||
if (!preferred) {
|
||||
if (switch_channel_direction(tech_pvt->channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
|
||||
preferred = tech_pvt->profile->outbound_codec_string;
|
||||
fallback = tech_pvt->profile->inbound_codec_string;
|
||||
} else {
|
||||
preferred = tech_pvt->profile->inbound_codec_string;
|
||||
fallback = tech_pvt->profile->outbound_codec_string;
|
||||
}
|
||||
}
|
||||
|
||||
codec_string = !zstr(preferred) ? preferred : fallback;
|
||||
|
||||
return codec_string;
|
||||
return !zstr(preferred) ? preferred : fallback;
|
||||
}
|
||||
|
||||
void sofia_glue_tech_prepare_codecs(private_object_t *tech_pvt)
|
||||
|
||||
Reference in new issue
Block a user