Hello,
I think the Swisscom UAC is not acting RFC compliant in this case, but the standard is a bit ambiguously phrased. The phrase related to the ignorance of any subsequent responses is about the 18x and 200OK for each particular dialog, but not that you just accept the first SDP that you receive and ignore the rest.
As per RFC:
13.2.2.4 2xx Responses
Multiple 2xx responses may arrive at the UAC for a single INVITE request due to a forking proxy. Each response is distinguished by the tag parameter in the To header field, and each represents a distinct dialog, with a distinct dialog identifier.
Additional to the options mentioned from Daniel, you could also just remove all SDP from provisional responses, but this will break early media obviously.
You maybe want to discuss this again with Swisscom, as it was a common error many years ago also for German provider infrastructure, and got fixed after some time.
Cheers,
Henning
-----Original Message----- From: Benoit Panizzon via sr-users sr-users@lists.kamailio.org Sent: Tuesday, October 15, 2024 1:17 PM To: Daniel-Constantin Mierla miconda@gmail.com Cc: Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org; Benoit Panizzon benoit.panizzon@imp.ch Subject: [SR-Users] Re: parallel forking: how to fix 183 g711 then 200 ok g722?
Hi Daniel
this is a common scenario and the UAC (the phone) should be able to cope with it.
By parallel forking, there will be two different To-tags, so practically during the call setup, the UAC has to maintain two different (early-state) dialogs, when one is answered with 200ok, the other one is cancelled.
If the UAC that you use doesn't support parallel forking by downstream proxies, then either you replace it with a capable one; configure it with a single codec; as you suggested, strip codecs on proxy leaving a single option; or route first via a transcoding system.
The UAC in question, is the Swisscom Mobile Network.
I guess it's not feasible to tell Swisscom to replace all the millions of mobile phones in operation. :-)
They tell me it's in the RFC, you side is not RFC compliant.
Mit freundlichen Grüssen
-Benoît Panizzon-