Hi, Kevin!

There is a tutorial for 2.4 for this[1] but most of the functions changed a bit in 3.1.

Your setup seems correct
* you should have different sharing tags for each node
* for each created dialog, you should set the tag of the current node
* you should setup dialog replication between the two nodes
* you must figure out when a node goes down (probably using external tools) - once you figure out, you should change the active state of the tag on the remaining node - he should be active for both tags (do this using the clusterer_shtag_set_active command, as Social Boh indicated) * since you're using a different IP, you should send re-invites for all the affected dialogs (just as you indicated)

Please provide a trace for the messages sent after you switch, to understand why the call is being terminated.

[1] https://blog.opensips.org/2018/03/23/clustering-ongoing-calls-with-opensips-2-4/

Best regards,

Răzvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com

On 1/19/21 7:02 PM, Kevin Vines wrote:
Hi Social,

I'll try my luck with Google Translate if you want to share your tutorial.

Thanks,

Kevin V.

*From:* [email protected]
*Sent:* January 19, 2021 11:03 a.m.
*To:* [email protected]; [email protected]
*Reply to:* [email protected]; [email protected]
*Subject:* Re: [OpenSIPS-Users] v3.1 Active/Active maintain active calls on node failure


I think your best option is KeepAlived; on keepalived configuration you declare a script name where you execute:

/usr/local/bin/opensips-cli -x mi clusterer_shtag_set_active vip/3

to switch VIP TAG from one server to other.

In this case BYE go to the right place.

If anyone want translate from spanish to english, I have a complete tutorial for OpenSIPs 3.1

Regards

---
I'm SoCIaL, MayBe

El 19/01/2021 a las 10:40 a. m., Kevin Wormington escribió:
I’m not using RTPEngine…the upstream proxies are handling all media, NAT traversal, etc. so the OpenSIPS instances can always reach the endpoints.  I’m using clusterer module to share the user location and dialogs with different active tags per node.  There is zero loss of media on switch-over and sometimes a little longer PDD for new calls during switchover until the upstream proxies detect the instance down.   The only part I can’t seem to get to work is handling the final BYE for calls that were on the failed node originally.   The re-invite ping will correct end them but would like to be able to fix it completely…but maybe that is not currently possible.


Thanks,

Kevin
On Jan 19, 2021, at 9:31 AM, Social Boh via Users <[email protected] <mailto:[email protected]>> wrote:

To switch calls from one server to another you have to use redis and rptengine using HA with pacemaker y corosync.

You must have two OpenSIPs, Two RTPEngine, Two Redis servers (primary-replica) Two Mariad  servers (primary/primary)

With redis you can save calls data (ip, ports, callid) on active server and then use these data on the replica server when swithc to active. On my tests, when switching from a server to another I have between 5 and 10 seconds without audio.

Regards

---
I'm SoCIaL, MayBe

El 19/01/2021 a las 10:00 a. m., Kevin Wormington escribió:
I’m not using a VIP and I have made some progress by setting a different active tag on each node…then upon node failure setting the failed node's tag to active on remaining node.  This lets the re-invite pinging work, etc.  It’s almost there but the handling of the BYE…they are still sent to the IP of the failed node even after re-invite pings so any in-progress calls from the failed node are zombie when they hang up until the re-invite ping times out (30 seconds).   I found an article about initiating a re-invite on the new node with something like "opensips-cli -x mi dlg_send_sequential callid="442CB6C1-6005F8B80009DA08-FC731700" mode=challenge body=outbound” but that either seems to terminate the call immediately or say the dialog wasn’t found.


Thanks,

Kevin
On Jan 19, 2021, at 8:46 AM, Andy Dierlam <[email protected] <mailto:[email protected]>> wrote:

With dialog writing to db that both servers use.   And same tag on both - modparam("dialog", "dlg_sharing_tag", "vip1=active")
had this working on opensips 2.4

thanks
Andy


On Mon, Jan 18, 2021 at 2:30 PM Kevin Wormington <[email protected] <mailto:[email protected]>> wrote:
Hi,

I've been attempting to get a two node active/active setup to work with the v3.1 clusterer module sharing usrloc and dialog.  The setup is fronted by a proxy that handles all of the NAT/media so either OpenSIPS instance can communicate directly with the user.

What I have working so far:

Registrations and calls work when sent to either node and if you stop OpenSIPS on a node new calls work fine using the other node.

What I can’t get to work:

Calls that are already in progress to switch between nodes when one node fails.


I have messed around with various sharing tags…no tag, same tag, different tags but haven’t had any luck.   I’m guessing that I’m missing something to trigger the remaining node to send re-invites.  Has anyone attempted this type of setup and have any ideas?

Thanks,

Kevin
_______________________________________________
Users mailing list
[email protected] <mailto:[email protected]>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
[email protected] <mailto:[email protected]>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
[email protected] <mailto:[email protected]>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to