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)}{s.unescape.param})\n"); append_hf("$(var(out){param.name,$var(idx)}): $(var(out){param.valueat,$var(idx)}{s.unescape.param})\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) return; 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}{s.escape.param}); 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}); if($(xavp(ulattrs=>custom_channel_vars){kz.json,Hotdesk-Current-ID}{s.len}) > 0) $xavp(hf[0]=>X-ecallmgr_Hotdesk-Current-ID) = $(xavp(ulattrs=>custom_channel_vars){kz.json,Hotdesk-Current-ID}); } #!endif