mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-13 12:40:17 +00:00
try to fix SOA problem with early and answer audio with dissimilar sdp
This commit is contained in:
parent
33848eb01c
commit
52bf0423e2
@ -707,11 +707,20 @@ static switch_status_t sofia_answer_channel(switch_core_session_t *session)
|
|||||||
cid = generate_pai_str(tech_pvt);
|
cid = generate_pai_str(tech_pvt);
|
||||||
|
|
||||||
|
|
||||||
if (switch_channel_test_flag(tech_pvt->channel, CF_PROXY_MODE) && tech_pvt->early_sdp && strcmp(tech_pvt->early_sdp, tech_pvt->local_sdp_str)) {
|
if (switch_channel_test_flag(tech_pvt->channel, CF_PROXY_MODE) && tech_pvt->early_sdp) {
|
||||||
/* The SIP RFC for SOA forbids sending a 183 with one sdp then a 200 with another but it won't do us much good unless
|
char *a, *b;
|
||||||
we do so in this case we will abandon the SOA rules and go rogue.
|
|
||||||
*/
|
/* start at the s= line to avoid some devices who update the o= between messages */
|
||||||
sofia_clear_flag(tech_pvt, TFLAG_ENABLE_SOA);
|
a = strstr(tech_pvt->early_sdp, "s=");
|
||||||
|
b = strstr(tech_pvt->local_sdp_str, "s=");
|
||||||
|
|
||||||
|
if (!a || !b || strcmp(a, b)) {
|
||||||
|
|
||||||
|
/* The SIP RFC for SOA forbids sending a 183 with one sdp then a 200 with another but it won't do us much good unless
|
||||||
|
we do so in this case we will abandon the SOA rules and go rogue.
|
||||||
|
*/
|
||||||
|
sofia_clear_flag(tech_pvt, TFLAG_ENABLE_SOA);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sofia_use_soa(tech_pvt)) {
|
if (sofia_use_soa(tech_pvt)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user