<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<font face="monospace">:+1:</font><br>
<pre class="moz-signature" cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a class="moz-txt-link-freetext" href="https://www.opensips-solutions.com">https://www.opensips-solutions.com</a>
<a class="moz-txt-link-freetext" href="https://www.siphub.com">https://www.siphub.com</a></pre>
<div class="moz-cite-prefix">On 6/12/23 5:19 PM, Denys Pozniak
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CA+x3Axqs0euXH5JO4G0O+KMdycQc=jSW7PM67giGTaS421UyYg@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">Judging by the documentation, the activation of the
tag of a non-working node in the context of dialogs should be
handled by an external system. So it won't happen automatically,
right?
<div><br>
"If node 1 fails, the monitoring system (also responsible
for the Anycast management and BGP updates) will pick one of
the remaining node in the anycast group and it will activate
the “node_1” tag on it.</div>
<div> So, this new node will became owner and responsible for
the calls created on former node 1."</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">пн, 12 июн. 2023 г. в 13:37,
Denys Pozniak <<a href="mailto:denys.pozniak@gmail.com"
moz-do-not-send="true">denys.pozniak@gmail.com</a>>:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hello!
<div>Thank you for your help!</div>
<div><br>
</div>
<div>><span style="font-family:monospace">2) you can use
the same sharing tag for multiple modules, as time as
from logical perspective, the switching of the tags fits
all the cases. For dialogs, you may need one tag per
node (to remember which node created the dialog), so you
may not be able to reuse here.</span></div>
<div>Do I understand correctly that when creating a dialog
on a node, an active tag will be attached to it.</div>
<div>And if this node falls out of the cluster, then this
tag will be automatically activated like some other node
and all the dialog information (variables) will be
available on it?<span style="font-family:monospace"><br>
</span></div>
<div><br>
</div>
<div>There is also a question about transactions. How will
the response be handled if the owner of the transaction is
not available?<br>
</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">пн, 12 июн. 2023 г. в
10:30, Bogdan-Andrei Iancu <<a
href="mailto:bogdan@opensips.org" target="_blank"
moz-do-not-send="true">bogdan@opensips.org</a>>:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div> <font face="monospace">Hi Denys,<br>
<br>
1) yes<br>
<br>
2) you can use the same sharing tag for multiple
modules, as time as from logical perspective, the
switching of the tags fits all the cases. For dialogs,
you may need one tag per node (to remember which node
created the dialog), so you may not be able to reuse
here.<br>
<br>
Regards,<br>
</font>
<pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="https://www.opensips-solutions.com" target="_blank" moz-do-not-send="true">https://www.opensips-solutions.com</a>
<a href="https://www.siphub.com" target="_blank" moz-do-not-send="true">https://www.siphub.com</a></pre>
<div>On 6/9/23 1:30 PM, Denys Pozniak wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Hello!</div>
<div>Thank you! The mechanism with a single tag for
the dispatcher works as it should.<br>
</div>
<div><br>
</div>
<div>But I still have a number of questions on
related topics:<br>
</div>
1) Should I declare this common dispatcher tag in
the parameters of the clusterer module?
<div>Then, after the start, the tag on the active
node will be set by an external script.</div>
<div><br>
<div> modparam("clusterer", "sharing_tag",
"dispatcher/1=backup")
<div> modparam("dispatcher",
"cluster_sharing_tag", "dispatcher")<br>
</div>
<div><br>
</div>
<div>2) I also want to replicate transactions
and dialogs, so should I declare own tags for
each cluster node?</div>
<div>Or like with a dispatcher do I need one
common?</div>
<div><br>
modparam("clusterer", "sharing_tag",
"anycast1/1=active")<br>
modparam("clusterer", "sharing_tag",
"anycast2/1=backup")<br>
modparam("clusterer", "sharing_tag",
"anycast3/1=backup")<br>
modparam("clusterer", "sharing_tag",
"anycast4/1=backup")<br>
modparam("dialog",
"dialog_replication_cluster", 1)<br>
modparam("tm", "tm_replication_cluster", 1)<br>
modparam("dispatcher", "cluster_sharing_tag",
"dispatcher")<br>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">вт, 6 июн. 2023 г.
в 18:08, Bogdan-Andrei Iancu <<a
href="mailto:bogdan@opensips.org"
target="_blank" moz-do-not-send="true">bogdan@opensips.org</a>>:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div> <font face="monospace">Hi Denys,<br>
<br>
Even better if you have only one active
opensips instance - in this case you can use
only one sharing-tag across all nodes/servers
in the dispatcher cluster, tag to point to the
active instance. So, whenever you point the
traffic to a certain opensips instance, be
sure to make the tag active on that instance
too.<br>
<a
href="https://opensips.org/html/docs/modules/3.2.x/clusterer.html#mi_clusterer_shtag_set_active"
target="_blank" moz-do-not-send="true">https://opensips.org/html/docs/modules/3.2.x/clusterer.html#mi_clusterer_shtag_set_active</a><br>
<br>
Best regards,<br>
</font>
<pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="https://www.opensips-solutions.com" target="_blank" moz-do-not-send="true">https://www.opensips-solutions.com</a>
<a href="https://www.siphub.com" target="_blank" moz-do-not-send="true">https://www.siphub.com</a></pre>
<div>On 6/6/23 4:11 PM, Denys Pozniak wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hello!
<div><br>
</div>
<div>>So, in the dispatcher cluster you
have some active nodes, but also some
stand-by, right ?<br>
All cluster nodes have the same dynamic
routing protocol metric, so only one
random node can receive traffic from the
network point of view.<br>
</div>
<div>Well, accordingly, only the "active"
node can accept replays to SIP OPTIONS
from the dispatcher. And all other nodes
see the dispatcher peers as not alive.<br>
It's more a question of how to make other
nodes believe the status from the "active"
node and not influence it.<br>
<br>
</div>
<div>>And I see you did not set the this
cluster_sharing_tag modparam<br>
I have this option set, you probably
didn't notice in the initial thread.<br>
modparam("dispatcher",
"cluster_sharing_tag", "anycast1")<br>
</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">вт, 6 июн.
2023 г. в 11:37, Bogdan-Andrei Iancu <<a
href="mailto:bogdan@opensips.org"
target="_blank" moz-do-not-send="true">bogdan@opensips.org</a>>:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div> <font face="monospace">Hi Denys,<br>
<br>
So, in the dispatcher cluster you have
some active nodes, but also some
stand-by, right ?<br>
<br>
And I see you did not set the this
cluster_sharing_tag modparam [1] -
check it out, it may help you in
deciding which nodes may broadcast the
state inside the cluster (for
dispatcher)<br>
<br>
[1] <a
href="https://opensips.org/html/docs/modules/3.3.x/dispatcher.html#param_cluster_sharing_tag"
target="_blank"
moz-do-not-send="true">https://opensips.org/html/docs/modules/3.3.x/dispatcher.html#param_cluster_sharing_tag</a><br>
<br>
Regards,<br>
</font>
<pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="https://www.opensips-solutions.com" target="_blank" moz-do-not-send="true">https://www.opensips-solutions.com</a>
<a href="https://www.siphub.com" target="_blank" moz-do-not-send="true">https://www.siphub.com</a></pre>
<div>On 6/2/23 5:39 PM, Denys Pozniak
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hello!
<div><br>
</div>
<div>I need advice on how best to
implement the anycast + clusterer
+ dispatcher scheme.<br>
In short, we want to build an
additional upper layer in front of
our sip legacy servers, on which
traffic balancing will take place.</div>
<div>Most likely it will look like
several nodes of the same
clusterer with a single public
anycast address, from which
traffic will also go to the public
interfaces of the legacy sip
servers (via the dispatcher list).<br>
During testing, it turned out that
if we include the dispatcher
module in the clusterer, then the
inactive nodes of the cluster
begin to affect the general state
of the legacy sip servers on
active node, since replays to SIP
OPTIONS reach only one active
node, though all nodes ping.</div>
<div><br>
</div>
<div>Thus, the sip server status is
constantly flapping on active
node.<br>
Is it possible to somehow make all
other nodes believe the active
node at a given time and inherit
its dispatcher state?<br>
</div>
<div><br>
</div>
<div><b>node1:</b></div>
<div>modparam("clusterer",
"sharing_tag",
"anycast1/1=active")<br>
</div>
modparam("clusterer", "sharing_tag",
"anycast2/1=backup")<br>
modparam("clusterer", "sharing_tag",
"anycast3/1=backup")<br>
modparam("clusterer", "sharing_tag",
"anycast4/1=backup")<br>
<br>
<div>modparam("dispatcher",
"cluster_sharing_tag", "anycast1")<br>
<br>
modparam("dispatcher", "db_url",
"text:///etc/opensips/dbtext")<br>
modparam("dispatcher",
"attrs_avp",
"$avp(dsp_attrs_avp)")</div>
<div>modparam("dispatcher",
"script_attrs_avp",
"$avp(dsp_script_attrs_avp)")<br>
modparam("dispatcher",
"hash_pvar",
"$avp(dsp_hash_pvar)")<br>
modparam("dispatcher",
"ds_ping_method", "OPTIONS")<br>
modparam("dispatcher",
"ds_ping_from", <a
moz-do-not-send="true">"sip:ping@dispatcher"</a>)<br>
modparam("dispatcher",
"ds_ping_interval", 10)<br>
modparam("dispatcher",
"ds_probing_threshold", 2)<br>
modparam("dispatcher",
"ds_probing_mode", 1)<br>
modparam("dispatcher",
"options_reply_codes",
"501,403,404,400,200")<br>
modparam("dispatcher", "dst_avp",
"$avp(dsp_dst_avp)")<br>
modparam("dispatcher", "grp_avp",
"$avp(dsp_grp_avp)")<br>
modparam("dispatcher", "cnt_avp",
"$avp(dsp_cnt_avp)")<br>
modparam("dispatcher",
"persistent_state", 1)<br>
modparam("dispatcher",
"cluster_id", 1)<br>
modparam("dispatcher",
"cluster_probing_mode",
"by-shtag")<br>
<br>
<b>dispatcher:</b></div>
<div>id(int,auto) setid(int)
destination(string)
socket(string,null) state(int)
probe_mode(int) weight(string)
priority(int) attrs(string)
description(string)<br>
0:1:sip\:1.1.1.1\:5060;transport=udp::2:1:1:1:'':''</div>
<div>
<div>1:1:sip\:2.2.2.2\:5060;transport=udp::2:1:1:1:'':''</div>
<div>2:1:sip\:3.3.3.3\:5060;transport=udp::2:1:1:1:'':''</div>
<div><br>
</div>
<div>Sure, it is possible to
attach an additional public
address to each node and do not
share dispatcher state, but
still I would like to somehow
find a solution for the current
scheme<br>
</div>
<div><br>
</div>
<div>--<br>
</div>
<div>
<div dir="ltr"
class="gmail_signature">
<div dir="ltr"><br>
<div>
<div>BR,</div>
<div>Denys Pozniak<br>
</div>
<div><br>
</div>
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank" moz-do-not-send="true">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank" moz-do-not-send="true">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
</div>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr"><br>
<div>
<div>BR,</div>
<div>Denys Pozniak<br>
</div>
<div><br>
</div>
<div><br>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr"><br>
<div>
<div>BR,</div>
<div>Denys Pozniak<br>
</div>
<div><br>
</div>
<div><br>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr"><br>
<div>
<div>BR,</div>
<div>Denys Pozniak<br>
</div>
<div><br>
</div>
<div><br>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr"><br>
<div>
<div>BR,</div>
<div>Denys Pozniak<br>
</div>
<div><br>
</div>
<div><br>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>