From 4f91d228f1292f2db64720c3bdc778befc9e409c Mon Sep 17 00:00:00 2001 From: lazedo Date: Wed, 6 Jun 2018 23:13:14 +0100 Subject: [PATCH] fix ds_group assignment & reorder --- kamailio/dispatcher-role.cfg | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/kamailio/dispatcher-role.cfg b/kamailio/dispatcher-role.cfg index 3179516..24b26cc 100644 --- a/kamailio/dispatcher-role.cfg +++ b/kamailio/dispatcher-role.cfg @@ -85,18 +85,16 @@ route[DISPATCHER_FIND_ROUTES] #!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 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 { - 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; } - 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; while($(avp(ds_dst)[$var(i)]) != $null) { if($(avp(ds_dst)[$var(i)]) == $var(prefered_route)) {