Hi all
Is there a way to skip a branch in branch route?
Situation: Two registrar server with DMQ synced location database.
CPE register via TCP or TLS. To properly work, message have to be sent
over the existing TCP connection.
Multiple CPE register to one AOR.
CPE1 and CPE2 register to Registrar 1
CPE3 registers to Registrar 2
On Registrar 1 there is an established TCP connection to CPE1 and CPE2
but not to CPE3.
Within the Branch Route to the CPE I can check if there is a TCP
as the Branch Route is executed for every contact in that AOR:
branch_route[BR_TO_CPE]
{
[...]
$var(reg_contact_addr) = $(ulc(aor=>addr)[$T_branch_idx]{uri.host});
$var(socket) = $(ulc(aor=>socket)[$T_branch_idx]);
if ($var(socket) == 0) {
xlog("L_ERROR", "$cfg(route): No Socket for:
$var(reg_contact_addr)");
}
[...]
}
This log an error if the socket is not present on the local registrar.
But is there a way to tell kamailio to skip/discard that contact?
My intention is to parallel branch from the core to both registrars,
that way all contacts would still get the call but via established
TCP socket (and in case of UDP and NAT via correct know ip for ALG port-forwarding).
--
Mit freundlichen Grüssen
-Benoît Panizzon- @ HomeOffice und normal erreichbar
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web
http://www.imp.ch
______________________________________________________