Agree. There is a general need for transaction-associated replies and dialog-associated in-dialog requests (and their replies) to all go to the same node. There are Via and Record-Route attributes you can set to make this happen, assuming you're opposed to the load balancer keeping state based on a hash over the Call-ID or something.
The LB role is extremely natural for a proxy like Kamailio, BTW, since it follows Via and Route anyway just by definition. Dumb (that is, protocol-unaware) load balancers which just generically round-robin UDP messages won't work with SIP, because this method assumes that no UDP message is related to any other. In SIP that is a completely invalid assumption and the relationships are manifold. -- Sent from mobile. Apologies for brevity and errors. -----Original Message----- From: Brandon Armstead <[email protected]> To: "Kamailio (SER) - Users Mailing List" <[email protected]> Sent: Wed, 24 Oct 2018 12:01 PM Subject: Re: [SR-Users] DMQ and DIALOG Set a cookie and relay those subsequent transactions down to proper endpoint that they initially went over. On Wed, Oct 24, 2018 at 1:56 AM Phillman25 Kyriacou <[email protected]> wrote: > Hi List! > > I currently have 3 Kamailio's (Version 5.1) in an ACTIVE-ACTIVE-ACTIVE > scenario behind a load balancer all 3 nodes are listening and advertising > the same virtual ip of the load balancer. Im using dmq module together with > dialogue module to sync the state of the dialog to all 3 nodes. Is there a > way or module that i can use to also sync every transaction? > > Problem that im facing right now is that an INVITE will come to Kamailio1 > and the 100 TRYING or 183 RINGING or 200OK will go to Kamailio2 and since > Kamailio1 hasn't received a response will retransmit the INVITE. Or is > there a way with dmq to also update the other nodes for responses like 100 > ,183 or 200 OK so that Kamailio1 knows not to retransmit? > > Maybe im going down the wrong path? :) > > Any assistance would be greatly appreciated > > My config for dmq and dialog: > > #=====================DIALOG==================================== > modparam("dialog", "enable_dmq", 1) > > #=====================DMQ======================================= > modparam("dmq", "server_address", "sip:x.x.x.x:5080") > modparam("dmq", "notification_address", "sip:y.y.y.y:5080") > modparam("dmq", "multi_notify", 1) > modparam("dmq", "num_workers", 4) > modparam("dmq", "ping_interval", 30) > > request_route { > > # MANAGE ALL DIALOGS > dlg_manage(); > > if(is_method("KDMQ")) > { > dmq_handle_message(); > } > > Thanks! > Phillip > _______________________________________________ > Kamailio (SER) - Users Mailing List > [email protected] > https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users > -- Sent from Gmail Mobile _______________________________________________ Kamailio (SER) - Users Mailing List [email protected] https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
