Hello Team,
I hope you're all doing well. I'm reaching out to request your insights on the
following scenario.
Overview:
I have successfully configured Kamailio to authenticate IP addresses, primarily for PBXs
and customers unable to register. With this setup, I can flawlessly receive incoming
traffic and forward it to our internal FreeSwitch servers.
Current issue:
Now, I'm focusing on managing traffic in the opposite direction—specifically for DIDs.
I have a DID table set up in Kamailio that associates DID numbers with their respective IP
peers. Upon receiving a call, a database lookup is performed to find the destination
number, after which the call is terminated at the customer's IP.
I'm facing difficulty in handling situations where a customer has multiple IP peers
(for redundancy). My aim is to try each of these IPs sequentially when terminating a
specific DID call towards them. The current logic I'm employing for the INVITE lookup
looks like this:
# Database lookup for INVITEs
if (is_method("INVITE")) {
sql_query("didrouting_db", "SELECT route_to FROM did_routing WHERE
did_number='$rU'", "result");
if ($dbr(result=>rows) > 0) {
$var(route_to) = $dbr(result=>[0,0]);
xlog("L_INFO", "Routing DID $rU to $var(route_to)\n");
$du = "sip:" + $var(route_to) + ":5060";
} else {
$du = "sip:" + FS_IP + ":5060";
}
}
The above logic works fine for a single IP.
I intend to use a comma-separated list of IPs in my route_to column (for example
192.168.1.2,192.168.1.3, ...) and then iterate through these IPs one by one. I'm
having trouble coming up with a workable logic or loop to achieve this. Would you be able
to offer any guidance or suggestions?
Please also recommend if there is a better approach available to handle this scenario.
Thank you in advance for your valuable input.
Regards,
Shah Hussain