[OpenSIPS-Users] v3.1 Active/Active maintain active calls on node failure

Răzvan Crainea razvan at opensips.org
Fri Jan 22 15:18:43 EST 2021


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:* users at lists.opensips.org
> *Sent:* January 19, 2021 11:03 a.m.
> *To:* kworm at missouri-telecom.com; users at lists.opensips.org
> *Reply to:* social at bohboh.info; users at lists.opensips.org
> *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 
>>> <users at lists.opensips.org <mailto:users at lists.opensips.org>> 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 <adierlam at ptgi-ics.com 
>>>>> <mailto:adierlam at ptgi-ics.com>> 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 
>>>>> <kworm at missouri-telecom.com <mailto:kworm at missouri-telecom.com>> 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
>>>>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>> _______________________________________________
>>>>> Users mailing list
>>>>> Users at lists.opensips.org
>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
> 
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> 



More information about the Users mailing list