Re: [Freeswitch-dev] Is 3PCC broken in FreeSWITCH Version 1.10.6?
So to answer my own question, yes it does seem to be broken, the following patch fixes it but I'm not sure if this is the right thing to do: diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index b76a804..29f233d 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -6532,15 +6532,20 @@ static void sofia_handle_sip_r_invite(switch_core_session_t *session, int status switch_channel_clear_flag(channel, CF_REQ_MEDIA); if (status < 200) { - if (switch_core_session_get_partner(session, &other_session) == SWITCH_STATUS_SUCCESS) { - if(switch_core_session_compare(session, other_session)) { - private_object_t *other_tech_pvt = switch_core_session_get_private(other_session); - if (sofia_test_flag(other_tech_pvt, TFLAG_3PCC)) { - sofia_set_flag_locked(tech_pvt, TFLAG_SKIP_EARLY); - } - } - switch_core_session_rwunlock(other_session); - } +// +// **AlanE** +// The following code sets TFLAG_SKIP_EARLY for the b-leg of a call with a 3PCC on the a-leg +// this then later on causes the call to fail with no write codec error +// Just commenting the code out seems to fix the issue +// if (switch_core_session_get_partner(session, &other_session) == SWITCH_STATUS_SUCCESS) { +// if(switch_core_session_compare(session, other_session)) { +// private_object_t *other_tech_pvt = switch_core_session_get_private(other_session); +// if (sofia_test_flag(other_tech_pvt, TFLAG_3PCC)) { +// sofia_set_flag_locked(tech_pvt, TFLAG_SKIP_EARLY); +// } +// } +// switch_core_session_rwunlock(other_session); +// } if (sofia_test_flag(tech_pvt, TFLAG_SKIP_EARLY)) { return;
But reports and PR's exist in github, Here isn't so much helpful. https://github.com/freeswitch/ /b On Sun, Sep 19, 2021 at 6:30 PM KageDS <alan@kageds.com> wrote:
So to answer my own question, yes it does seem to be broken, the following patch fixes it but I'm not sure if this is the right thing to do:
diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index b76a804..29f233d 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -6532,15 +6532,20 @@ static void sofia_handle_sip_r_invite(switch_core_session_t *session, int status switch_channel_clear_flag(channel, CF_REQ_MEDIA);
if (status < 200) { - if (switch_core_session_get_partner(session, &other_session) == SWITCH_STATUS_SUCCESS) { - if(switch_core_session_compare(session, other_session)) { - private_object_t *other_tech_pvt = switch_core_session_get_private(other_session); - if (sofia_test_flag(other_tech_pvt, TFLAG_3PCC)) { - sofia_set_flag_locked(tech_pvt, TFLAG_SKIP_EARLY); - } - } - switch_core_session_rwunlock(other_session); - } +// +// **AlanE** +// The following code sets TFLAG_SKIP_EARLY for the b-leg of a call with a 3PCC on the a-leg +// this then later on causes the call to fail with no write codec error +// Just commenting the code out seems to fix the issue +// if (switch_core_session_get_partner(session, &other_session) == SWITCH_STATUS_SUCCESS) { +// if(switch_core_session_compare(session, other_session)) { +// private_object_t *other_tech_pvt = switch_core_session_get_private(other_session); +// if (sofia_test_flag(other_tech_pvt, TFLAG_3PCC)) { +// sofia_set_flag_locked(tech_pvt, TFLAG_SKIP_EARLY); +// } +// } +// switch_core_session_rwunlock(other_session); +// }
if (sofia_test_flag(tech_pvt, TFLAG_SKIP_EARLY)) { return;
_________________________________________________________________________
The FreeSWITCH project is sponsored by SignalWire https://signalwire.com Enhance your FreeSWITCH install with disruptive priced SMS and PSTN services. Build your next product on our scalable cloud platform.
Join our online community to chat in real time https://signalwire.community
Professional FreeSWITCH Services sales@freeswitch.com https://freeswitch.com
Official FreeSWITCH Sites https://freeswitch.com/oss https://freeswitch.org/confluence https://cluecon.com
FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev https://freeswitch.com
-- Brian West | Co-founder and Developer Need Commercial support? email sales@freeswitch.com FreeSWITCH Solutions | 17345 Civic Drive #2531 Brookfield, WI 53045 <https://maps.google.com/?q=17345+Civic+Drive+%232531+Brookfield,+WI+53045&entry=gmail&source=g> Email: brian@freeswitch.com Mobile: 918-424-9378 Website: https://www.FreeSWITCH.com <https://www.freeswitch.com/> [image: https://www.facebook.com/signalwireinc?src=email] <https://www.facebook.com/freeswitch> [image: https://twitter.com/freeswitch] <https://twitter.com/freeswitch>
participants (2)
-
Brian West
-
KageDS