|
@@ -100,6 +100,7 @@ Julien Chavanton
|
|
3.35. ds_attrs_none (int)
|
|
3.35. ds_attrs_none (int)
|
|
3.36. ds_db_extra_attrs (str)
|
|
3.36. ds_db_extra_attrs (str)
|
|
3.37. ds_load_mode (int)
|
|
3.37. ds_load_mode (int)
|
|
|
|
+ 3.38. reload_delta (int)
|
|
|
|
|
|
4. Functions
|
|
4. Functions
|
|
|
|
|
|
@@ -184,17 +185,18 @@ Julien Chavanton
|
|
1.37. Set the “ds_attrs_none” parameter
|
|
1.37. Set the “ds_attrs_none” parameter
|
|
1.38. Set the “ds_db_extra_attrs” parameter
|
|
1.38. Set the “ds_db_extra_attrs” parameter
|
|
1.39. Set the “ds_load_mode” parameter
|
|
1.39. Set the “ds_load_mode” parameter
|
|
- 1.40. ds_select_dst usage
|
|
|
|
- 1.41. configuring load balancing with congestion detection
|
|
|
|
- 1.42. ds_select_domain usage
|
|
|
|
- 1.43. ds_select usage
|
|
|
|
- 1.44. ds_select_routes usage
|
|
|
|
- 1.45. ds_mark_dst usage
|
|
|
|
- 1.46. ds_list_exists usage
|
|
|
|
- 1.47. ds_is_from_list usage
|
|
|
|
- 1.48. ds_load_unset usage
|
|
|
|
- 1.49. dispatcher list file
|
|
|
|
- 1.50. Kamailio config script - sample dispatcher usage
|
|
|
|
|
|
+ 1.40. Set reload_delta parameter
|
|
|
|
+ 1.41. ds_select_dst usage
|
|
|
|
+ 1.42. configuring load balancing with congestion detection
|
|
|
|
+ 1.43. ds_select_domain usage
|
|
|
|
+ 1.44. ds_select usage
|
|
|
|
+ 1.45. ds_select_routes usage
|
|
|
|
+ 1.46. ds_mark_dst usage
|
|
|
|
+ 1.47. ds_list_exists usage
|
|
|
|
+ 1.48. ds_is_from_list usage
|
|
|
|
+ 1.49. ds_load_unset usage
|
|
|
|
+ 1.50. dispatcher list file
|
|
|
|
+ 1.51. Kamailio config script - sample dispatcher usage
|
|
|
|
|
|
Chapter 1. Admin Guide
|
|
Chapter 1. Admin Guide
|
|
|
|
|
|
@@ -245,6 +247,7 @@ Chapter 1. Admin Guide
|
|
3.35. ds_attrs_none (int)
|
|
3.35. ds_attrs_none (int)
|
|
3.36. ds_db_extra_attrs (str)
|
|
3.36. ds_db_extra_attrs (str)
|
|
3.37. ds_load_mode (int)
|
|
3.37. ds_load_mode (int)
|
|
|
|
+ 3.38. reload_delta (int)
|
|
|
|
|
|
4. Functions
|
|
4. Functions
|
|
|
|
|
|
@@ -360,6 +363,7 @@ Chapter 1. Admin Guide
|
|
3.35. ds_attrs_none (int)
|
|
3.35. ds_attrs_none (int)
|
|
3.36. ds_db_extra_attrs (str)
|
|
3.36. ds_db_extra_attrs (str)
|
|
3.37. ds_load_mode (int)
|
|
3.37. ds_load_mode (int)
|
|
|
|
+ 3.38. reload_delta (int)
|
|
|
|
|
|
3.1. list_file (string)
|
|
3.1. list_file (string)
|
|
|
|
|
|
@@ -939,6 +943,23 @@ modparam("dispatcher", "ds_db_extra_attrs", "socket=socket;pref=prefix")
|
|
modparam("dispatcher", "ds_load_mode", 1)
|
|
modparam("dispatcher", "ds_load_mode", 1)
|
|
...
|
|
...
|
|
|
|
|
|
|
|
+3.38. reload_delta (int)
|
|
|
|
+
|
|
|
|
+ The number of seconds that have to be waited before executing a new
|
|
|
|
+ reload of dispatcher records. By default there is a rate limiting of
|
|
|
|
+ maximum one reload in five seconds.
|
|
|
|
+
|
|
|
|
+ If set to 0, no rate limit is configured. Note carefully: use this
|
|
|
|
+ configuration only in tests environments because executing many RPC
|
|
|
|
+ reload commandss at the same time can cause unexpected behavior.
|
|
|
|
+
|
|
|
|
+ Default value is “5”.
|
|
|
|
+
|
|
|
|
+ Example 1.40. Set reload_delta parameter
|
|
|
|
+...
|
|
|
|
+modparam("dispatcher", "reload_delta", 1)
|
|
|
|
+...
|
|
|
|
+
|
|
4. Functions
|
|
4. Functions
|
|
|
|
|
|
4.1. ds_select_dst(set, alg[, limit])
|
|
4.1. ds_select_dst(set, alg[, limit])
|
|
@@ -1039,7 +1060,7 @@ modparam("dispatcher", "ds_db_extra_attrs", "socket=socket;pref=prefix")
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
|
|
|
|
|
|
- Example 1.40. ds_select_dst usage
|
|
|
|
|
|
+ Example 1.41. ds_select_dst usage
|
|
...
|
|
...
|
|
ds_select_dst("1", "0");
|
|
ds_select_dst("1", "0");
|
|
...
|
|
...
|
|
@@ -1049,7 +1070,7 @@ ds_select_dst("1", "$var(a)");
|
|
ds_select_dst("1", "4", "3");
|
|
ds_select_dst("1", "4", "3");
|
|
...
|
|
...
|
|
|
|
|
|
- Example 1.41. configuring load balancing with congestion detection
|
|
|
|
|
|
+ Example 1.42. configuring load balancing with congestion detection
|
|
...
|
|
...
|
|
# sample of SQL provisionning statements
|
|
# sample of SQL provisionning statements
|
|
INSERT INTO "dispatcher"
|
|
INSERT INTO "dispatcher"
|
|
@@ -1101,7 +1122,7 @@ DEST: {
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
|
|
|
|
|
|
- Example 1.42. ds_select_domain usage
|
|
|
|
|
|
+ Example 1.43. ds_select_domain usage
|
|
...
|
|
...
|
|
$var(a) = 4;
|
|
$var(a) = 4;
|
|
if(ds_select_domain("1", "$var(a)")) {
|
|
if(ds_select_domain("1", "$var(a)")) {
|
|
@@ -1125,7 +1146,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.43. ds_select usage
|
|
|
|
|
|
+ Example 1.44. ds_select usage
|
|
...
|
|
...
|
|
$var(a) = 4;
|
|
$var(a) = 4;
|
|
if(ds_select("1", "$var(a)")) {
|
|
if(ds_select("1", "$var(a)")) {
|
|
@@ -1168,7 +1189,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.44. ds_select_routes usage
|
|
|
|
|
|
+ Example 1.45. ds_select_routes usage
|
|
...
|
|
...
|
|
$var(alg) = 4;
|
|
$var(alg) = 4;
|
|
$var(limit) = 8;
|
|
$var(limit) = 8;
|
|
@@ -1243,7 +1264,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.45. ds_mark_dst usage
|
|
|
|
|
|
+ Example 1.46. ds_mark_dst usage
|
|
...
|
|
...
|
|
failure_route[tryagain] {
|
|
failure_route[tryagain] {
|
|
...
|
|
...
|
|
@@ -1262,7 +1283,7 @@ failure_route[tryagain] {
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.46. ds_list_exists usage
|
|
|
|
|
|
+ Example 1.47. ds_list_exists usage
|
|
...
|
|
...
|
|
if(ds_list_exists("10")) {
|
|
if(ds_list_exists("10")) {
|
|
...
|
|
...
|
|
@@ -1305,7 +1326,7 @@ if(ds_list_exists("10")) {
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.47. ds_is_from_list usage
|
|
|
|
|
|
+ Example 1.48. ds_is_from_list usage
|
|
...
|
|
...
|
|
if(ds_is_from_list()) {
|
|
if(ds_is_from_list()) {
|
|
...
|
|
...
|
|
@@ -1339,7 +1360,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.48. ds_load_unset usage
|
|
|
|
|
|
+ Example 1.49. ds_load_unset usage
|
|
...
|
|
...
|
|
route {
|
|
route {
|
|
...
|
|
...
|
|
@@ -1583,7 +1604,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.49. dispatcher list file
|
|
|
|
|
|
+ Example 1.50. dispatcher list file
|
|
...
|
|
...
|
|
#
|
|
#
|
|
# dispatcher destination sets (groups)
|
|
# dispatcher destination sets (groups)
|
|
@@ -1608,7 +1629,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.50. Kamailio config script - sample dispatcher usage
|
|
|
|
|
|
+ Example 1.51. Kamailio config script - sample dispatcher usage
|
|
...
|
|
...
|
|
#!KAMAILIO
|
|
#!KAMAILIO
|
|
#
|
|
#
|