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 <brandon(a)cryy.com>
To: "Kamailio (SER) - Users Mailing List" <sr-users(a)lists.kamailio.org>
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 <phillman25(a)gmail.com>
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
sr-users(a)lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
--
Sent from Gmail Mobile