[SR-Users] dispatcher/carrierroute and branches across SBC and remote peer

Nathan Ward kamailio-sr-users at daork.net
Tue Nov 28 05:15:33 CET 2017


Hi,

We use Kamailio as a SIP server, and SEMS as an SBC. We have a need to use the dispatcher/carrierroute modules to provide HA/load sharing across two different parts of our environment:
1) Our SBCs
2) Our peer’s SIP servers

We have pairs of SBCs (for now) and they have the same network connectivity - different IPs of course, but they can reach the same things.
Our peer’s network has 2 SIP servers (again, for now) reachable through either SBC.
We select which SBC pair to use based on where the calls are going, in a branch route. In some cases, we use parallel forking, in others we use serial forking (i.e. to a media server for a prompt, then sending the call to wherever it needs to go).

Right now there is no automatic failover or load sharing, so this is all simple logic - if call is to x peer or y customer, use x SBC or y SBC. I’m trying to add the failover/loadbalancing now.

I have a few half baked ideas about how to achieve a network like this, but thought I’d ask if anyone else had done this first before I went too overboard.

Currently I’m thinking of calling cr_route to figure out which peer SIP server, from there figuring out which SBC pair, and then calling ds_select_dst to select which SBC in the pair to set $du. I’m being tripped up though, as I can’t call cr_route or ds_select_dst in a branch route, but, as far as I’m aware that’s where I’d need to do so in order to handle this for multiple branches. Should I be looping the request through the SIP server to achieve this (i.e. force $du = 127.0.0.1 in my branch_route), or, can I avoid that complexity?

--
Nathan Ward




More information about the sr-users mailing list