|
|
@ -85,18 +85,16 @@ route[DISPATCHER_FIND_ROUTES] |
|
|
|
|
|
|
|
|
#!import_file "dispatcher-network-find.cfg" |
|
|
#!import_file "dispatcher-network-find.cfg" |
|
|
|
|
|
|
|
|
|
|
|
$var(ds_group) = $var(ds_primary_group); |
|
|
|
|
|
|
|
|
if (!ds_select_dst("$var(ds_primary_group)", "0") || $(avp(ds_dst)[0]) == $null) { |
|
|
if (!ds_select_dst("$var(ds_primary_group)", "0") || $(avp(ds_dst)[0]) == $null) { |
|
|
# if we selected from primary group, try again in backup group |
|
|
|
|
|
if ($var(ds_primary_group) == 1) { |
|
|
|
|
|
if (!ds_select_dst("$var(ds_backup_group)", "0")) { |
|
|
|
|
|
xlog("L_WARN", "$ci|end|no servers available in primary or backup group\n"); |
|
|
|
|
|
sl_send_reply("480", "All servers busy"); |
|
|
|
|
|
exit; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
# we selected from primary group, try again in backup group |
|
|
|
|
|
if (!ds_select_dst("$var(ds_backup_group)", "0") || $(avp(ds_dst)[0]) == $null) { |
|
|
|
|
|
xlog("L_WARN", "$ci|end|no servers available in primary or backup group\n"); |
|
|
|
|
|
sl_send_reply("480", "All servers busy"); |
|
|
|
|
|
exit; |
|
|
} else { |
|
|
} else { |
|
|
xlog("L_INFO", "$ci|end|no servers available in group $var(ds_primary_group)\n"); |
|
|
|
|
|
sl_send_reply("480", "All servers busy"); |
|
|
|
|
|
exit; |
|
|
|
|
|
|
|
|
$var(ds_group) = $var(ds_backup_group); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -132,7 +130,7 @@ route[DISPATCHER_REORDER_ROUTES] |
|
|
$var(i) = $var(i) + 1; |
|
|
$var(i) = $var(i) + 1; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (!$var(found) && $var(ds_group) == 1 && ds_select_dst("2", "0")) { |
|
|
|
|
|
|
|
|
if (!$var(found) && $var(ds_group) == $var(ds_primary_group) && ds_select_dst("$var(ds_backup_group)", "0")) { |
|
|
$var(i) = 0; |
|
|
$var(i) = 0; |
|
|
while($(avp(ds_dst)[$var(i)]) != $null) { |
|
|
while($(avp(ds_dst)[$var(i)]) != $null) { |
|
|
if($(avp(ds_dst)[$var(i)]) == $var(prefered_route)) { |
|
|
if($(avp(ds_dst)[$var(i)]) == $var(prefered_route)) { |
|
|
|