diff --git a/kamailio/dbtext/address b/kamailio/dbtext/address index 6d5674f..28c21d4 100644 --- a/kamailio/dbtext/address +++ b/kamailio/dbtext/address @@ -1,2 +1 @@ id(int,auto) grp(int) ip_addr(string) mask(int) port(int) tag(string,null) -0:1:10.10.10.10:32:0:Known Gateway diff --git a/kamailio/dbtext/dispatcher b/kamailio/dbtext/dispatcher new file mode 100644 index 0000000..12a5db7 --- /dev/null +++ b/kamailio/dbtext/dispatcher @@ -0,0 +1,9 @@ +### Dispatcher Set IDs: +### 1 - Primary media servers +### 2 - Backup media servers +### 3 - Alternate media server IPs (used only for classification) +### 10 - Presence servers (if not locally handled) +### 20 - Registrar servers (if not locally handled) + +# setid(integer) destination(sip uri) flags (integer, optional) +1 sip:127.0.0.1:11000 0 diff --git a/kamailio/dispatcher-role.cfg b/kamailio/dispatcher-role.cfg index aa81e15..59eec7c 100644 --- a/kamailio/dispatcher-role.cfg +++ b/kamailio/dispatcher-role.cfg @@ -3,7 +3,7 @@ modparam("htable", "htable", "failover=>size=16;autoexpire=120") ####### Dispatcher module ######## loadmodule "dispatcher.so" -modparam("dispatcher", "list_file", "/etc/kazoo/kamailio/dispatcher.list") +modparam("dispatcher", "list_file", "/etc/kazoo/kamailio/dbtext/dispatcher") modparam("dispatcher", "flags", 2) modparam("dispatcher", "use_default", 0) modparam("dispatcher", "force_dst", 1) @@ -100,9 +100,13 @@ route[DISPATCHER_FIND_ROUTES] $var(from_uri) = @from.uri.user + "@" + @from.uri.host; if ($sht(associations=>$var(from_uri)) != $null) { $var(association) = $var(from_uri); + $var(prefered_route) = $sht(associations=>$var(association)); + xlog("L_INFO", "$ci|log|from uri $var(from_uri) associated with media server $var(prefered_route)"); route(DISPATCHER_REORDER_ROUTES); } else if ($sht(associations=>$var(contact_uri)) != $null) { $var(association) = $var(contact_uri); + $var(prefered_route) = $sht(associations=>$var(association)); + xlog("L_INFO", "$ci|log|contact uri $var(contact_uri) associated with media server $var(prefered_route)"); route(DISPATCHER_REORDER_ROUTES); } } @@ -111,7 +115,6 @@ route[DISPATCHER_REORDER_ROUTES] { $var(i) = 0; $var(found) = 0; - $var(prefered_route) = $sht(associations=>$var(association)); while($(avp(ds_dst)[$var(i)]) != $null) { if($(avp(ds_dst)[$var(i)]) != $var(prefered_route)) { $avp(tmp_ds_dst) = $(avp(ds_dst)[$var(i)]); diff --git a/kamailio/dispatcher.list b/kamailio/dispatcher.list deleted file mode 100644 index cf724b4..0000000 --- a/kamailio/dispatcher.list +++ /dev/null @@ -1,2 +0,0 @@ -# setit(integer) destination(sip uri) flags (integer, optional) -1 sip:127.0.0.1:11000 0 diff --git a/kamailio/registrar-role.cfg b/kamailio/registrar-role.cfg index b89055e..3633be4 100644 --- a/kamailio/registrar-role.cfg +++ b/kamailio/registrar-role.cfg @@ -118,7 +118,7 @@ route[FAILED_AUTH_COUNT] route[DOMAIN_FORMAT_CHECK] { if ($rd =~ "([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})" || - $td =~ "([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}" ) { + $td =~ "([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})" ) { xlog("L_WARN", "$ci|end|denying request with IP domain in From or To header"); send_reply("403", "Forbidden"); exit;