瀏覽代碼

modules: readme files regenerated - dispatcher ... [skip ci]

Kamailio Dev 4 年之前
父節點
當前提交
9c8abc6bba
共有 1 個文件被更改,包括 52 次插入23 次删除
  1. 52 23
      src/modules/dispatcher/README

+ 52 - 23
src/modules/dispatcher/README

@@ -188,17 +188,18 @@ Federico Cabiddu
    1.40. Set the “ds_db_extra_attrs” parameter
    1.40. Set the “ds_db_extra_attrs” parameter
    1.41. Set the “ds_load_mode” parameter
    1.41. Set the “ds_load_mode” parameter
    1.42. Set reload_delta parameter
    1.42. Set reload_delta parameter
-   1.43. ds_select_dst usage
-   1.44. configuring load balancing with congestion detection
-   1.45. ds_select_domain usage
-   1.46. ds_select usage
-   1.47. ds_select_routes usage
-   1.48. ds_mark_dst usage
-   1.49. ds_list_exists usage
-   1.50. ds_is_from_list usage
-   1.51. ds_load_unset usage
-   1.52. dispatcher list file
-   1.53. Kamailio config script - sample dispatcher usage
+   1.43. latency_optimized_dispatching usage
+   1.44. ds_select_dst usage
+   1.45. configuring load balancing with congestion detection
+   1.46. ds_select_domain usage
+   1.47. ds_select usage
+   1.48. ds_select_routes usage
+   1.49. ds_mark_dst usage
+   1.50. ds_list_exists usage
+   1.51. ds_is_from_list usage
+   1.52. ds_load_unset usage
+   1.53. dispatcher list file
+   1.54. Kamailio config script - sample dispatcher usage
 
 
 Chapter 1. Admin Guide
 Chapter 1. Admin Guide
 
 
@@ -1090,7 +1091,7 @@ modparam("dispatcher", "reload_delta", 1)
             1/2/1 will be distributed as 25/50/25. After third host
             1/2/1 will be distributed as 25/50/25. After third host
             failing distribution will be changed to 33/67/0.
             failing distribution will be changed to 33/67/0.
             Using this algorithm, you can also enable congestion control
             Using this algorithm, you can also enable congestion control
-            by setting the attibute 'cc=1', when 'cc' is enabled the
+            by setting the attribute 'cc=1', when 'cc' is enabled the
             'weight' attribute will also be used to control congestion
             'weight' attribute will also be used to control congestion
             tolerance. When facing congestion the weight of a gateway is
             tolerance. When facing congestion the weight of a gateway is
             lowered by 1 for every ms of estimated congestion, a 'rweight'
             lowered by 1 for every ms of estimated congestion, a 'rweight'
@@ -1105,6 +1106,34 @@ modparam("dispatcher", "reload_delta", 1)
             forking). Note that the XAVPs are no longer set with the
             forking). Note that the XAVPs are no longer set with the
             values of the destination records, no re-routing making sense
             values of the destination records, no re-routing making sense
             in this case.
             in this case.
+          + “13” - latency optimized dispatching
+            - The algorithm will load balance using round-robin
+            prioritizing the gateways with the highest priority.
+            - If ds_ping_latency_stats is active the algorithm will adjust
+            the priority of the gateway automatically, the priority will
+            be lowered by 1 point every time the latency ms is as high as
+            the priority.
+            - If the attribute 'cc=1' is set, the latency used is
+            congestion ms : estimate (current latency ms) - average
+            (normal condition latency ms).
+            Example 1.43. latency_optimized_dispatching usage
+Using this simple formula :
+    ADJUSTED_PRIORITY = PRIORITY - (ESTIMATED_LATENCY_MS/PRIORITY)
+
+GATEWAY | PRIORITY | ESTIMATED | ADJUSTED | LOAD
+   #    |          |  LATENCY  | PRIORITY | DISTRIBUTION
+   1    |    30    |    21     |    30    | 33%
+   2    |    30    |    91     |    27    | 0%
+   3    |    30    |    61     |    28    | 0%
+   4    |    30    |    19     |    30    | 33%
+   5    |    30    |    32     |    29    | 0%
+   6    |    30    |    0      |    30    | 33%
+   7    |    30    |    201    |    24    | 0%
+
+
+With congestion control the formula becomes :
+    CONGESTION_MS = CURRENT_LATENCY_MS - NORMAL_CONDITION_LATENCY_MS
+    ADJUSTED_PRIORITY = PRIORITY - (CONGESTION_MS/PRIORITY)
           + “X” - if the algorithm is not implemented, the first entry in
           + “X” - if the algorithm is not implemented, the first entry in
             set is chosen.
             set is chosen.
      * limit - the maximum number of items to be stored in XAVP list for
      * limit - the maximum number of items to be stored in XAVP list for
@@ -1113,7 +1142,7 @@ modparam("dispatcher", "reload_delta", 1)
 
 
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
 
 
-   Example 1.43. ds_select_dst usage
+   Example 1.44. ds_select_dst usage
 ...
 ...
 ds_select_dst("1", "0");
 ds_select_dst("1", "0");
 ...
 ...
@@ -1123,7 +1152,7 @@ ds_select_dst("1", "$var(a)");
 ds_select_dst("1", "4", "3");
 ds_select_dst("1", "4", "3");
 ...
 ...
 
 
-   Example 1.44. configuring load balancing with congestion detection
+   Example 1.45. configuring load balancing with congestion detection
 ...
 ...
 # sample of SQL provisionning statements
 # sample of SQL provisionning statements
 INSERT INTO "dispatcher"
 INSERT INTO "dispatcher"
@@ -1177,7 +1206,7 @@ DEST: {
 
 
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
 
 
-   Example 1.45. ds_select_domain usage
+   Example 1.46. ds_select_domain usage
 ...
 ...
 $var(a) = 4;
 $var(a) = 4;
 if(ds_select_domain("1", "$var(a)")) {
 if(ds_select_domain("1", "$var(a)")) {
@@ -1201,7 +1230,7 @@ if(ds_select_domain("1", "$var(a)")) {
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.46. ds_select usage
+   Example 1.47. ds_select usage
 ...
 ...
 $var(a) = 4;
 $var(a) = 4;
 if(ds_select("1", "$var(a)")) {
 if(ds_select("1", "$var(a)")) {
@@ -1244,7 +1273,7 @@ if(ds_select("1", "$var(a)")) {
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.47. ds_select_routes usage
+   Example 1.48. ds_select_routes usage
 ...
 ...
 $var(alg) = 4;
 $var(alg) = 4;
 $var(limit) = 8;
 $var(limit) = 8;
@@ -1319,7 +1348,7 @@ failure_route[REROUTE] {
 
 
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
 
 
-   Example 1.48. ds_mark_dst usage
+   Example 1.49. ds_mark_dst usage
 ...
 ...
 failure_route[tryagain] {
 failure_route[tryagain] {
 ...
 ...
@@ -1341,7 +1370,7 @@ failure_route[tryagain] {
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.49. ds_list_exists usage
+   Example 1.50. ds_list_exists usage
 ...
 ...
 if(ds_list_exists("10")) {
 if(ds_list_exists("10")) {
     ...
     ...
@@ -1385,7 +1414,7 @@ if(ds_list_exists("10")) {
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.50. ds_is_from_list usage
+   Example 1.51. ds_is_from_list usage
 ...
 ...
 if(ds_is_from_list()) {
 if(ds_is_from_list()) {
     ...
     ...
@@ -1419,7 +1448,7 @@ if(ds_is_from_list("10", "3", "sip:127.0.0.1:5080")) {
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    BRANCH_ROUTE and ONREPLY_ROUTE.
    BRANCH_ROUTE and ONREPLY_ROUTE.
 
 
-   Example 1.51. ds_load_unset usage
+   Example 1.52. ds_load_unset usage
 ...
 ...
 route {
 route {
     ...
     ...
@@ -1717,7 +1746,7 @@ setid(int) destination(sip uri) flags(int,opt) priority(int,opt) attrs(str,opt)
    For database, each element of a line resides in a different column.
    For database, each element of a line resides in a different column.
    Next is a dispatcher.list file example:
    Next is a dispatcher.list file example:
 
 
-   Example 1.52. dispatcher list file
+   Example 1.53. dispatcher list file
 ...
 ...
 #
 #
 # dispatcher destination sets (groups)
 # dispatcher destination sets (groups)
@@ -1742,7 +1771,7 @@ r,opt)
 
 
    Next listing shows a sample config for using the dispatcher module.
    Next listing shows a sample config for using the dispatcher module.
 
 
-   Example 1.53. Kamailio config script - sample dispatcher usage
+   Example 1.54. Kamailio config script - sample dispatcher usage
 ...
 ...
 #!KAMAILIO
 #!KAMAILIO
 #
 #