Hello @all
as we want to enhance our VoIP-Plattform with DMQ functionalities for replication of Userlocation, Dialog and Hash Tables I made a lot of tests durings the last week.
For testing I use two Debian 12 Server with Kamailio 5.7.4 (latest git)
Both server have their own floating IP so in case one server fails the floating changes to the working server. This is done via keepalived
On both servers Kamailio is active and use ip_free_bind=1 so both Kamailio instances can listen to all necessary IPs.
So we have following network configuration:
Server1: static IP: 192.168.253.201 floating IP: 192.168.253.200
Server2: static IP: 192.168.253.202 floating IP: 192.168.253.210
Now I test some calls while I trigger a failover, so Server1 takes over 192.168.253.10
Message Test Result CustomerA -> Proxy -> CustomerB Failover while Dialogstate 4 BYE is relayed correctly. Dialog is changing to state 5 CDR needs to be written manually -> no problem at all CustomerA -> Proxy -> CustomerB Failover while Dialogstate 2 200 OK is relayed correctly although no transaction exist an therefore no t_reply route is triggered. This is not a big deal because i can use default onreply_route so all necessary variables can be used via hash table. BUT Big Problem: Dialog state stays 2, so a following ACK is a bogus event and the dialog state is never changed to 4. Even worse: after 300 seconds the dialog is cleaned away by the timer, so I have no chance to do any kind of accounting.
Test 2 is a real mess, because for me there is only one solution. I have to check after a failover on incoming replies to an INVITE that was handled on Server2 if these current dialog state is < 4 and cancel them. But I can't see how to do it? Are there other ways than using t_cancel? Or is it even some kind of a bug that a 200 OK does not trigger state 3 on dialog (although I have in mind that it has to be something to do with missing transaction data, that are not replicated because of missing replication capabilities of tm module)? If none of the above is possible I really asking myself of a real use case of dialog dmq replication.
-- Björn Klasen, Teamleitung NGN VoIP-Backbone TNG Stadtnetz GmbH, TNG-Technik Gerhard-Fröhler-Straße 12 24106 Kiel・Deutschland
T +49 431 7097-10 F +49 431 7097-555 bklasen@tng.de https://www.tng.de
Executive board (Geschäftsführer): Dr. Sven Willert (CEO/Vorsitz), Gunnar Peter, Sven Schade, Carsten Tolkmit, Bernd Sontheimer
Amtsgericht Kiel HRB 6002 KI USt-ID: DE225201428 Die Information über die Verarbeitung Ihrer Daten gemäß Artikel 12 DSGVO können Sie unter https://www.tng.de/datenschutz/ abrufen. ______________________________________________________________________