[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