Hello List,
i solved this with an "simple" if statement.
For me surprising i tried this without success:
#!define NEWDOMAIN "some.domain.example"
$avp(newdomain) = NEWDOMAIN;
if ($avp(newdomain) == $rd) ...
and this dont match. Also i tried "" around all vars.
And copied into $avp and {s.tolower} all of them.
Nothing works.
avp_print() shows both avps as the same.
Anyway ---
My now working example is that one with avp_check.
Was hard to find the meaning of g/G and i/I in the module.
In the wiki i found an example description of tha avp_check flags.
if (allow_source_address(FLT_IVR)) {
# OLD vs NEW - domain routing...
$avp(newdomain) = NEWDOMAIN;
$avp(pathinfo) = "outbound";
# avp_check flags / avpops
# g/G - use all values of the checked AVP (first parameter)
# i/I - if strings are checked, do it case insensitive
if ( avp_check("$rd", "eq/$avp(newdomain)/gi") ) {
xlog("L_INFO", "go to new-gw\n");
$avp(routing_target) = FLT_FSNODE;
}
else {
xlog("L_INFO", "go to old-gw\n");
$avp(routing_target) = FLT_OLDSBC;
}
xlog("L_INFO", "[$avp(pathinfo)] comes from IVR <$si> to
<$ruri>
\n");
route(DISPATCH);
exit;
}
Kind Regards
...
2017-11-08 13:28 GMT+01:00 Karsten Horsmann <khorsmann(a)gmail.com>om>:
Hello List,
i use kamailio-5.0.4 and i am now at the point that one kamailio is not
enough :).
So i decide to set another kamailio internal as sip-router based on
drouting.
My config is straight forward the example config with additional drouting
stuff.
Whats the best practice to route based on $rd with kamailio?
I dont want to end with an bunch of if then else. Should be come from
database.
Pseudo Code:
if ($rd == old.sbc.domain) {
route[oldstuff];
}
else {
route[newstuff];
}
Is there an module that i can use?
--
Kind Regards
*Karsten Horsmann*
--
Mit freundlichen Grüßen
*Karsten Horsmann*