Hi Benoît,
What about the PacketCable spec constrains you only to a single Route header? I have never heard of such a constraint, and if it existed, it would be a pretty damning violation of a mechanism very deeply infused into the heart of RFC 3261.
I mean this with all due respect: once again, you're doing something very clever, but maybe a little too clever, perhaps so clever that you're the only Kamailio implementor on the planet who is doing it. When that happens, it is possible that 1) you and you alone have such unique problems, and must devise correspondingly intrepid and ingenious solutions, or 2) there is another (simpler) approach. I would encourage you to think more strategically and less tactically in these cases: perhaps it is programmatically possible, somehow, to solve the problem, but does it mean that it should be solved that way, or solved at all?
I cannot say what the better approach is in this case, but it's safe to say that no proxy should be storing and restoring the Route set. If you truly have a type of endpoint that does not implement the most basic elements of the SIP standard, perhaps a business decision should be taken to simply not support it?
-- Alex
On Dec 27, 2024, at 5:18 am, Benoît Panizzon via sr-users sr-users@lists.kamailio.org wrote:
Hi List
To handle CPE which can only handle a limited number of route header (PacketCable SIP specification), I need to store and restore the route header (limited topology hiding only affecting Route Header) to present the CPE only one Route or RR header.
I pass the ID of the stored route-set via RR param.
So when I get a message back from the CPE is:
- Take ID from RR param and pull stored route set from cache.
- remove_hf("Route");
- insert_hf("Route: $avp(stored-routeset)\r\n");
- msg_apply_changes();
- loose_route();
I found loose_route() only to be able to correctly determine the next hop, if I first did apply the changes.
But after adding rtpengine to the mix, I got back into the known situation that calling rtpengine (on the branch route) after calling msg_apply_changes() results in duplicate SDP.
Is there a way to get loose_route() to operate on freshly added header without calling msg_apply_changes?
-- Mit freundlichen Grüssen
-Benoît Panizzon- @ HomeOffice und normal erreichbar
I m p r o W a r e A G - Leiter Commerce Kunden ______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00 CH-4133 Pratteln Fax +41 61 826 93 01 Schweiz Web http://www.imp.ch ______________________________________________________ __________________________________________________________ Kamailio - Users Mailing List - Non Commercial Discussions -- sr-users@lists.kamailio.org To unsubscribe send an email to sr-users-leave@lists.kamailio.org Important: keep the mailing list in the recipients, do not reply only to the sender!