clarification of Active-Active, multiple directions with active-switchover

15 views
Skip to first unread message

Niels Galjaard

unread,
May 28, 2024, 5:47:04 AMMay 28
to Sipwise rtpengine
Hi,

We've  builld a set of rtpeniges (tag 11.1.24 compiled for arm) and have been experimenting with the active-switch over setting. We want to scale our set of rtpengines in and out and we don't want to make the kamailio SBC constantly aware of the specifics of which rtpengines use what addresses for rtp. It would be nice if we could use only the direction flags, which is possible if you don't use failover. But we want to use it with the --active-switchover setting in case of failure. It seems to me that this is not a supported usecase and we either need to not use --active-switchover at all or create some super hacky code on the kamailio SBC. But this could just be me not understanding the docs.

We've setup the rtpengines with their own set of floating addresses one public one private, on different NICs. It will also have two routes to the outside, one over a direct connect(with no NAT) and one over and internet gateway (with NAT) It seems from the wiki page about active-switchover that you would also have to setup all the interfaces of all the other machines in every config file. https://github.com/sipwise/rtpengine/wiki/Redis-keyspace-notifications

So the interface line will contain 3 times the number of rtpengines. private, public(DNAT) and external (just public). With our 8 sets of IPs we would have something quite large but Here is what it would look like with 2 sets IPs

interfaces = pub/nonfloatingPrivateIP!publicFloaitingIP1;ext/PublicFloatingIP1;priv/PrivateFloatingIP1;pub/nonfloatingPrivateIP!publicFloaitingIP2;ext/PublicFloatingIP2;priv/PrivateFloatingIP2

Where the other rtpengine should have

interfaces = pub/nonfloatingPrivateIP!publicFloaitingIP2;ext/PublicFloatingIP2;priv/PrivateFloatingIP2;pub/nonfloatingPrivateIP!publicFloaitingIP1;ext/PublicFloatingIP1;priv/PrivateFloatingIP1

This creates a new problem that the rtpengine that gets failed over to will use the first pub in the list of interfaces to open the port. so if we use ext. The call setup by rtpengine1 will use PublicFloatingIP1 and the failover rtpengine2 will open that port on PublicFloatingIP2.

If we set it up like in the wiki page the SDP does not get rewritten with ext since we still use direction ext not extX. If we also add the number to the direction it works but this creates a kind of difficult spot with the kamailio code where we have to alter the params based on the targeted rtpengine (ext1,2 ext2 ... ).

Is there anyway to just let the kamailio worry about the rough direction of the call without having to customize the  rtpengine_manage parameters for the specific rtpengine we are choosing?. It is also not clear to me If we can know which one will be chosen?

Is this situation outlined above simply not supported by the current implementation of the rtpegine?

PS, I might have totally misread the wiki page but I was unable to find any example that combines the multiple directions feature, multiple interfaces and the --active-switchover.

Niels Galjaard

unread,
May 28, 2024, 5:53:02 AMMay 28
to Sipwise rtpengine
To clarify we use tag mr11.5.1.24 as source https://github.com/sipwise/rtpengine/tree/mr11.5.1.24.

Richard Fuchs

unread,
May 28, 2024, 10:03:59 AMMay 28
to rtpe...@googlegroups.com
This sounds like the same scenario that was discussed here: https://groups.google.com/g/rtpengine/c/tHxSwTpDVZY/m/U2KYUFprAQAJ

I haven't seen a pull request from Thomas, so not sure what came of it :)

Cheers
--
You received this message because you are subscribed to the Google Groups "Sipwise rtpengine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtpengine+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rtpengine/e9198a81-51a2-4586-b2db-a7de574b932fn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages