drachtio / drachtio-server

A SIP call processing server that can be controlled via nodejs applications
https://drachtio.org
MIT License
233 stars 90 forks source link

Is there any solution for call continuity in case of failover? #364

Open calvet27 opened 2 weeks ago

calvet27 commented 2 weeks ago

I am using drachtio sip server and drachtio srf in node.js environment. During call service with both, if the main server is unavailable due to a disaster or other reasons, Is there a way to restore the call from the backup server? That said, Is there a way to back up or restore SIP dialog? Or, Does drachtio sip server support clustering?

nvwx commented 2 weeks ago

In general, the components of a drachtio solution can be architected to be highly available. For example, you could create a cluster of rtpengine services and multiple drachtio servers. Your middleware app would run on highly available infrastructure, such as a Kubernetes cluster or multiple virtual machines.

Most of what I mentioned leverages additional infrastructure such as load balancers, a cache such as Redis, and networking knowledge. You must also consider whether you intend to have a stateful failover in rtpengine and preserve the media.

In short, yes, you can create a highly available solution. Bear in mind all the components, as there's more to it than just the drachtio server and keeping track of the dialog.

calvet27 commented 2 weeks ago

@nvwx

Thank you for your reply.

In my case, I am using OpenSvc as a highly available infrastructure, It has one main server and one backup server. This is not a typical cluster configured for load balancing, This is how the backup server operates when the main server fails.

The method you mentioned requires drachtio sip server to run constantly on two or more nodes. In this case, Is there a way to process inbound calls only from drachtio sip server in a specific node?