Hello Benoit,
let's focus on the topos topic then and try to solve it. This should then help in this scenario a lot. I just wrote you another e-mail about it.
Cheers,
Henning
-----Original Message----- From: Benoît Panizzon via sr-users sr-users@lists.kamailio.org Sent: Montag, 30. Dezember 2024 08:39 To: James Browne via sr-users sr-users@lists.kamailio.org Cc: Benoît Panizzon benoit.panizzon@imp.ch Subject: [SR-Users] Re: how to call loose_route() after adding route header without using msg_apply_changes?
Hi James
I've two suggestions (three if we count agreeing with Alex's suggestion to consider not supporting that UA).
Unfortunately, at the moment, not an option.
- Get kamailio to manually do the steps that loose_route() would do
anyway. This is messy, because it requires good understanding of loose routing. You might remove the supplied Route header field, then get the transport/host/port from your saved Record-Route header fields, and then set the $du and $fs explicitly (and then get any _other_ Record-Route values and insert them as Route values), all while being aware of "r2" parameters (to know whether to exclude one or two Route values). It might work, but I don't think I'd ever want to even attempt this nonsense.
I started working in this direction and got this working for transport UDP. After that, I noticed that not msg_apply_changes() caused the issue, but that by mistake I was indeed calling rtpengine_manage() twice in some re-invite situations which caused the duplicate SDP.
- Add TOPOS to kamailio. That strips the topology from the message,
and then the faulty UA should never see Route or Record-Route header fields so never wreck them. It requires kamailio to keep state in a database, though, but it should work well.
I found TOPOS not being able to cope with spiralling calls in this situation which is very common:
- Two customer, Alice and Bob, registered on the same Kamailio Registrar
running TOPOS.
- Kamailio Registrar are not dialog aware and do not route calls. For this there is a central 'core' kamailio instance running dialog, gathering CDR and knowing how to route calls.
So the call flow is:
Alice => Registrar => Core => Registrar => Bob
The same call passes the registrar twice. This, as I observe (it's still possible I did something wrong), breaks topos and header get replaced the wrong way!
-- 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!