<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">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">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">https://www.opensips-solutions.com</a>
<a href="https://www.siphub.com" target="_blank">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">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">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">https://www.opensips-solutions.com</a>
<a href="https://www.siphub.com" target="_blank">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">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">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">https://www.opensips-solutions.com</a>
<a href="https://www.siphub.com" target="_blank">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>"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">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">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>