|
|
|
|
|
|
|
|
route[AUTH]
|
|
|
{
|
|
|
if (!is_method("INVITE|MESSAGE|REFER")) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
#!ifdef DISPATCHER_ROLE
|
|
|
if (!isflagset(FLAG_INTERNALLY_SOURCED)) {
|
|
|
route(SETUP_AUTH_HEADERS);
|
|
|
}
|
|
|
#!endif
|
|
|
}
|
|
|
|
|
|
route[AUTH_HEADERS]
|
|
|
{
|
|
|
remove_hf_re("^X-");
|
|
|
|
|
|
xavp_params_implode("hf", "$var(outx)");
|
|
|
$var(out) = $(var(outx){re.subst,/^(.*);$$/\1/});
|
|
|
$var(c) = $(var(out){param.count});
|
|
|
xlog("L_DEBUG", "$ci|auth|headers $var(c) => $var(out) => $var(outx)\n");
|
|
|
while($var(c) > 0) {
|
|
|
$var(idx) = $var(c) - 1;
|
|
|
xlog("L_DEBUG", "$ci|auth|adding $(var(out){param.name,$var(idx)}): $(var(out){param.valueat,$var(idx)})\n");
|
|
|
append_hf("$(var(out){param.name,$var(idx)}): $(var(out){param.valueat,$var(idx)})\r\n");
|
|
|
$var(c) = $var(c) - 1;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
route[SETUP_AUTH_HEADERS]
|
|
|
{
|
|
|
|
|
|
$xavp(hf=>X-AUTH-IP) = $si;
|
|
|
$xavp(hf[0]=>X-AUTH-PORT) = $sp;
|
|
|
|
|
|
#!ifdef REGISTRAR_ROLE
|
|
|
#!ifdef WITH_AUTH_TOKEN
|
|
|
route(AUTH_TOKEN);
|
|
|
#!else
|
|
|
route(AUTH_CCVS);
|
|
|
#!endif
|
|
|
#!endif
|
|
|
|
|
|
}
|
|
|
|
|
|
#!ifdef REGISTRAR_ROLE
|
|
|
|
|
|
route[AUTH_TOKEN]
|
|
|
{
|
|
|
$xavp(regcfg=>match_received) = $su;
|
|
|
if (registered("location","$fu", 2, 1) == 1) {
|
|
|
if($(xavp(ulattrs=>token){s.len}) > 0) {
|
|
|
$xavp(hf[0]=>X-AUTH-Token) = $xavp(ulattrs=>token);
|
|
|
} else {
|
|
|
if($(xavp(ulattrs=>Authorizing-ID){s.len}) > 0 && $(xavp(ulattrs=>Account-ID){s.len})) {
|
|
|
$xavp(hf[0]=>X-AUTH-Token) = $_s("$xavp(ulattrs=>Authorizing-ID)@$xavp(ulattrs=>Account-ID)");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
route[AUTH_CCVS]
|
|
|
{
|
|
|
$xavp(regcfg=>match_received) = $su;
|
|
|
if (registered("location","$fu", 2, 1) == 1) {
|
|
|
if($(xavp(ulattrs=>custom_channel_vars){kz.json,Account-ID}{s.len}) > 0)
|
|
|
$xavp(hf[0]=>X-ecallmgr_Account-ID) = $(xavp(ulattrs=>custom_channel_vars){kz.json,Account-ID});
|
|
|
|
|
|
if($(xavp(ulattrs=>custom_channel_vars){kz.json,Authorizing-Type}{s.len}) > 0)
|
|
|
$xavp(hf[0]=>X-ecallmgr_Authorizing-Type) = $(xavp(ulattrs=>custom_channel_vars){kz.json,Authorizing-Type});
|
|
|
|
|
|
if($(xavp(ulattrs=>custom_channel_vars){kz.json,Authorizing-ID}{s.len}) > 0)
|
|
|
$xavp(hf[0]=>X-ecallmgr_Authorizing-ID) = $(xavp(ulattrs=>custom_channel_vars){kz.json,Authorizing-ID});
|
|
|
|
|
|
if($(xavp(ulattrs=>custom_channel_vars){kz.json,Username}{s.len}) > 0)
|
|
|
$xavp(hf[0]=>X-ecallmgr_Username) = $(xavp(ulattrs=>custom_channel_vars){kz.json,Username});
|
|
|
|
|
|
if($(xavp(ulattrs=>custom_channel_vars){kz.json,Realm}{s.len}) > 0)
|
|
|
$xavp(hf[0]=>X-ecallmgr_Realm) = $(xavp(ulattrs=>custom_channel_vars){kz.json,Realm});
|
|
|
|
|
|
if($(xavp(ulattrs=>custom_channel_vars){kz.json,Account-Realm}{s.len}) > 0)
|
|
|
$xavp(hf[0]=>X-ecallmgr_Account-Realm) = $(xavp(ulattrs=>custom_channel_vars){kz.json,Account-Realm});
|
|
|
|
|
|
if($(xavp(ulattrs=>custom_channel_vars){kz.json,Account-Name}{s.len}) > 0)
|
|
|
$xavp(hf[0]=>X-ecallmgr_Account-Name) = $(xavp(ulattrs=>custom_channel_vars){kz.json,Account-Name});
|
|
|
|
|
|
if($(xavp(ulattrs=>custom_channel_vars){kz.json,Presence-ID}{s.len}) > 0)
|
|
|
$xavp(hf[0]=>X-ecallmgr_Presence-ID) = $(xavp(ulattrs=>custom_channel_vars){kz.json,Presence-ID});
|
|
|
|
|
|
if($(xavp(ulattrs=>custom_channel_vars){kz.json,Owner-ID}{s.len}) > 0)
|
|
|
$xavp(hf[0]=>X-ecallmgr_Owner-ID) = $(xavp(ulattrs=>custom_channel_vars){kz.json,Owner-ID});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#!endif
|