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
Short answer: no, there is no replication of transaction state.
-- Sent from mobile. Apologies for brevity and errors.
-----Original Message----- From: Phillman25 Kyriacou phillman25@gmail.com To: sr-users@lists.kamailio.org Sent: Wed, 24 Oct 2018 4:56 AM Subject: [SR-Users] DMQ and DIALOG
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
Hi Alex,
I was thinking of asking something similiar...
Any workaround for something setup like that to work?
But in case of “no”: if Kamailio1 dies could kamailio2 take over the call and terminate the dialog when finished some how?
AFAIK dmq will replicate the dialogs between nodes, but only the “creating dialog” node can “tear a specific dialog down” so kamailio2 would be aware the dialog is there, but as K2 didn’t create it it will not remove it. Am I wrong?
Or even a restart of Kamailio1 would leave its “dialogs” in orphaned state as K2 didn’t create them, and K1 (because of the restart) doesn’t know the dialogs belongs to him because they just came replicated back again via DMQ...?
On Wed, Oct 24, 2018 at 02:17 Alex Balashov abalashov@evaristesys.com wrote:
Short answer: no, there is no replication of transaction state.
-- Sent from mobile. Apologies for brevity and errors.
-----Original Message----- From: Phillman25 Kyriacou phillman25@gmail.com To: sr-users@lists.kamailio.org Sent: Wed, 24 Oct 2018 4:56 AM Subject: [SR-Users] DMQ and DIALOG
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@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
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@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@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
Hi Brandon,
Could you please elaborate a little on that? I'm trying to understand but I'm not sure how I can do that.
On Wed, Oct 24, 2018 at 9:02 AM Brandon Armstead brandon@cryy.com wrote:
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@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@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
-- Sent from Gmail Mobile _______________________________________________ Kamailio (SER) - Users Mailing List sr-users@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
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@cryy.com To: "Kamailio (SER) - Users Mailing List" sr-users@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@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@lists.kamailio.org https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users