|
|
|
@ -748,7 +748,7 @@ failure_route[INTERNAL_FAULT] |
|
|
|
$sht(redirects=>$var(redirect)) = $T_rpl($hdr(X-Redirect-Server)); |
|
|
|
xlog("L_INFO", "$ci|log|stored redirect mapping $var(redirect) to $T_rpl($hdr(X-Redirect-Server))\n"); |
|
|
|
} |
|
|
|
route(DISPATCHER_REDIRECT); |
|
|
|
route(INTERNAL_REDIRECT); |
|
|
|
} else if (!t_check_status("407") && |
|
|
|
$avp(AVP_REDIRECT_KEY) != $null && |
|
|
|
$sht(redirects=>$avp(AVP_REDIRECT_KEY)) != $null |
|
|
|
@ -790,6 +790,26 @@ failure_route[INTERNAL_FAULT] |
|
|
|
xlog("L_INFO", "$ci|pass|$si:$sp\n"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
route[INTERNAL_REDIRECT] |
|
|
|
{ |
|
|
|
$var(ds_group) = 1; |
|
|
|
$var(contact_uri) = $(ct{tobody.user}) + "@" + $(ct{tobody.host}); |
|
|
|
$var(redirect) = @from.uri.user + "@" + @from.uri.host + "->" |
|
|
|
+ @ruri.user + "@" + @ruri.host; |
|
|
|
if ($sht(redirects=>$var(redirect)) != $null) { |
|
|
|
$var(prefered_route) = $sht(redirects=>$var(redirect)); |
|
|
|
xlog("L_INFO", "$ci|log|found redirect for $var(redirect) : $var(prefered_route)\n"); |
|
|
|
$du = $var(prefered_route); |
|
|
|
$avp(AVP_REDIRECT_KEY) = $var(redirect); |
|
|
|
t_on_reply("INTERNAL_REPLY"); |
|
|
|
t_on_failure("INTERNAL_FAULT"); |
|
|
|
t_set_fr(0, 1000); |
|
|
|
t_relay(); |
|
|
|
exit(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
onsend_route { |
|
|
|
if (isflagset(FLAG_ASSOCIATE_USER)) { |
|
|
|
$var(contact_uri) = $(ct{tobody.user}) + "@" + $(ct{tobody.host}); |
|
|
|
|