ソースを参照

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

Kamailio Dev 7 年 前
コミット
88e8ae6f41
2 ファイル変更205 行追加166 行削除
  1. 63 45
      src/modules/htable/README
  2. 142 121
      src/modules/siputils/README

+ 63 - 45
src/modules/htable/README

@@ -51,9 +51,10 @@ Ovidiu Sas
               3.10. timer_interval (integer)
               3.10. timer_interval (integer)
               3.11. db_expires (integer)
               3.11. db_expires (integer)
               3.12. enable_dmq (integer)
               3.12. enable_dmq (integer)
-              3.13. timer_procs (integer)
-              3.14. event_callback (str)
-              3.15. event_callback_mode (int)
+              3.13. dmq_init_sync (integer)
+              3.14. timer_procs (integer)
+              3.15. event_callback (str)
+              3.16. event_callback_mode (int)
 
 
         4. Functions
         4. Functions
 
 
@@ -106,23 +107,24 @@ Ovidiu Sas
    1.13. Set timer_interval parameter
    1.13. Set timer_interval parameter
    1.14. Set db_expires parameter
    1.14. Set db_expires parameter
    1.15. Set enable_dmq parameter
    1.15. Set enable_dmq parameter
-   1.16. Set timer_procs parameter
-   1.17. Set event_callback parameter
-   1.18. Set event_callback_mode parameter
-   1.19. sht_print usage
-   1.20. sht_rm usage
-   1.21. sht_rm_name_re usage
-   1.22. sht_rm_value_re usage
-   1.23. sht_rm_name usage
-   1.24. sht_rm_value usage
-   1.25. sht_reset usage
-   1.26. sht_lock usage
-   1.27. sht_unlock usage
-   1.28. sht_iterator_start usage
-   1.29. sht_iterator_end usage
-   1.30. sht_iterator_next usage
-   1.31. sht_has_name usage
+   1.16. Set dmq_init_sync parameter
+   1.17. Set timer_procs parameter
+   1.18. Set event_callback parameter
+   1.19. Set event_callback_mode parameter
+   1.20. sht_print usage
+   1.21. sht_rm usage
+   1.22. sht_rm_name_re usage
+   1.23. sht_rm_value_re usage
+   1.24. sht_rm_name usage
+   1.25. sht_rm_value usage
+   1.26. sht_reset usage
+   1.27. sht_lock usage
+   1.28. sht_unlock usage
+   1.29. sht_iterator_start usage
+   1.30. sht_iterator_end usage
+   1.31. sht_iterator_next usage
    1.32. sht_has_name usage
    1.32. sht_has_name usage
+   1.33. sht_has_name usage
 
 
 Chapter 1. Admin Guide
 Chapter 1. Admin Guide
 
 
@@ -149,9 +151,10 @@ Chapter 1. Admin Guide
         3.10. timer_interval (integer)
         3.10. timer_interval (integer)
         3.11. db_expires (integer)
         3.11. db_expires (integer)
         3.12. enable_dmq (integer)
         3.12. enable_dmq (integer)
-        3.13. timer_procs (integer)
-        3.14. event_callback (str)
-        3.15. event_callback_mode (int)
+        3.13. dmq_init_sync (integer)
+        3.14. timer_procs (integer)
+        3.15. event_callback (str)
+        3.16. event_callback_mode (int)
 
 
    4. Functions
    4. Functions
 
 
@@ -422,9 +425,10 @@ $ kamcmd htable.dump htable
    3.10. timer_interval (integer)
    3.10. timer_interval (integer)
    3.11. db_expires (integer)
    3.11. db_expires (integer)
    3.12. enable_dmq (integer)
    3.12. enable_dmq (integer)
-   3.13. timer_procs (integer)
-   3.14. event_callback (str)
-   3.15. event_callback_mode (int)
+   3.13. dmq_init_sync (integer)
+   3.14. timer_procs (integer)
+   3.15. event_callback (str)
+   3.16. event_callback_mode (int)
 
 
 3.1. htable (str)
 3.1. htable (str)
 
 
@@ -619,7 +623,21 @@ modparam("htable", "db_expires", 1)
 modparam("htable", "enable_dmq", 1)
 modparam("htable", "enable_dmq", 1)
 ...
 ...
 
 
-3.13. timer_procs (integer)
+3.13. dmq_init_sync (integer)
+
+   If set to 1, will request synchronization from other nodes at startup.
+   It applies to all tables having the "dmqreplicate" parameter set. As
+   above, it is important to ensure the definition (size, autoexpire etc.)
+   of replicated tables is identical across all instances.
+
+   Default value is 0.
+
+   Example 1.16. Set dmq_init_sync parameter
+...
+modparam("htable", "dmq_init_sync", 1)
+...
+
+3.14. timer_procs (integer)
 
 
    If set to 1 or greater, the module will create its own timer processes
    If set to 1 or greater, the module will create its own timer processes
    to scan for expired items in hash tables. If set to zero, it will use
    to scan for expired items in hash tables. If set to zero, it will use
@@ -628,12 +646,12 @@ modparam("htable", "enable_dmq", 1)
 
 
    Default value is 0.
    Default value is 0.
 
 
-   Example 1.16. Set timer_procs parameter
+   Example 1.17. Set timer_procs parameter
 ...
 ...
 modparam("htable", "timer_procs", 4)
 modparam("htable", "timer_procs", 4)
 ...
 ...
 
 
-3.14. event_callback (str)
+3.15. event_callback (str)
 
 
    The name of the function in the kemi configuration file (embedded
    The name of the function in the kemi configuration file (embedded
    scripting language such as Lua, Python, ...) to be executed instead of
    scripting language such as Lua, Python, ...) to be executed instead of
@@ -645,7 +663,7 @@ modparam("htable", "timer_procs", 4)
 
 
    Default value is 'empty' (no function is executed for events).
    Default value is 'empty' (no function is executed for events).
 
 
-   Example 1.17. Set event_callback parameter
+   Example 1.18. Set event_callback parameter
 ...
 ...
 modparam("htable", "event_callback", "ksr_htable_event")
 modparam("htable", "event_callback", "ksr_htable_event")
 ...
 ...
@@ -656,7 +674,7 @@ function ksr_htable_event(evname)
 end
 end
 ...
 ...
 
 
-3.15. event_callback_mode (int)
+3.16. event_callback_mode (int)
 
 
    Control when event_route[htable:init] is executed: 0 - after all
    Control when event_route[htable:init] is executed: 0 - after all
    modules were initialized; 1 - in first worker process.
    modules were initialized; 1 - in first worker process.
@@ -666,7 +684,7 @@ end
 
 
    Default value is 0.
    Default value is 0.
 
 
-   Example 1.18. Set event_callback_mode parameter
+   Example 1.19. Set event_callback_mode parameter
 ...
 ...
 modparam("htable", "event_callback_mode", 1)
 modparam("htable", "event_callback_mode", 1)
 ...
 ...
@@ -696,7 +714,7 @@ modparam("htable", "event_callback_mode", 1)
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    ONREPLY_ROUTE, BRANCH_ROUTE.
    ONREPLY_ROUTE, BRANCH_ROUTE.
 
 
-   Example 1.19. sht_print usage
+   Example 1.20. sht_print usage
 ...
 ...
 sht_print();
 sht_print();
 ...
 ...
@@ -708,7 +726,7 @@ sht_print();
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.20. sht_rm usage
+   Example 1.21. sht_rm usage
 ...
 ...
 sht_rm("ha", "test"");
 sht_rm("ha", "test"");
 ...
 ...
@@ -721,7 +739,7 @@ sht_rm("ha", "test"");
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    ONREPLY_ROUTE, BRANCH_ROUTE.
    ONREPLY_ROUTE, BRANCH_ROUTE.
 
 
-   Example 1.21. sht_rm_name_re usage
+   Example 1.22. sht_rm_name_re usage
 ...
 ...
 sht_rm_name_re("ha=>.*");
 sht_rm_name_re("ha=>.*");
 ...
 ...
@@ -734,7 +752,7 @@ sht_rm_name_re("ha=>.*");
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    ONREPLY_ROUTE, BRANCH_ROUTE.
    ONREPLY_ROUTE, BRANCH_ROUTE.
 
 
-   Example 1.22. sht_rm_value_re usage
+   Example 1.23. sht_rm_value_re usage
 ...
 ...
 sht_rm_value_re("ha=>.*");
 sht_rm_value_re("ha=>.*");
 ...
 ...
@@ -752,7 +770,7 @@ sht_rm_value_re("ha=>.*");
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.23. sht_rm_name usage
+   Example 1.24. sht_rm_name usage
 ...
 ...
 sht_rm_name("ha", "re", ".*");
 sht_rm_name("ha", "re", ".*");
 ...
 ...
@@ -770,7 +788,7 @@ sht_rm_name("ha", "re", ".*");
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.24. sht_rm_value usage
+   Example 1.25. sht_rm_value usage
 ...
 ...
 sht_rm_value("ha", "re", ".*");
 sht_rm_value("ha", "re", ".*");
 ...
 ...
@@ -782,7 +800,7 @@ sht_rm_value("ha", "re", ".*");
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.25. sht_reset usage
+   Example 1.26. sht_reset usage
 ...
 ...
 sht_reset("ha$var(x)");
 sht_reset("ha$var(x)");
 ...
 ...
@@ -795,7 +813,7 @@ sht_reset("ha$var(x)");
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.26. sht_lock usage
+   Example 1.27. sht_lock usage
 ...
 ...
 sht_lock("ha=>test");
 sht_lock("ha=>test");
 ...
 ...
@@ -808,7 +826,7 @@ sht_lock("ha=>test");
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.27. sht_unlock usage
+   Example 1.28. sht_unlock usage
 ...
 ...
 sht_lock("ha=>test");
 sht_lock("ha=>test");
 $sht(ha=>test) = $sht(ha=>test) + 10;
 $sht(ha=>test) = $sht(ha=>test) + 10;
@@ -830,7 +848,7 @@ sht_unlock("ha=>test");
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.28. sht_iterator_start usage
+   Example 1.29. sht_iterator_start usage
 ...
 ...
 sht_iterator_start("i1", "h1");
 sht_iterator_start("i1", "h1");
 ...
 ...
@@ -845,7 +863,7 @@ sht_iterator_start("i1", "h1");
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.29. sht_iterator_end usage
+   Example 1.30. sht_iterator_end usage
 ...
 ...
 sht_iterator_end("i1");
 sht_iterator_end("i1");
 ...
 ...
@@ -867,7 +885,7 @@ sht_iterator_end("i1");
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.30. sht_iterator_next usage
+   Example 1.31. sht_iterator_next usage
 ...
 ...
     sht_iterator_start("i1", "h1");
     sht_iterator_start("i1", "h1");
     while(sht_iterator_next("i1")) {
     while(sht_iterator_next("i1")) {
@@ -891,7 +909,7 @@ sht_iterator_end("i1");
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.31. sht_has_name usage
+   Example 1.32. sht_has_name usage
 ...
 ...
 if(sht_has_name("ha", "eq", "alice")) {
 if(sht_has_name("ha", "eq", "alice")) {
   ...
   ...
@@ -913,7 +931,7 @@ if(sht_has_name("ha", "eq", "alice")) {
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.32. sht_has_name usage
+   Example 1.33. sht_has_name usage
 ...
 ...
 if(sht_has_str_value("ha", "eq", "alice")) {
 if(sht_has_str_value("ha", "eq", "alice")) {
   ...
   ...

+ 142 - 121
src/modules/siputils/README

@@ -79,26 +79,27 @@ Gabriel Vasile
               4.9. tel2sip(uri, hostpart, result)
               4.9. tel2sip(uri, hostpart, result)
               4.10. is_e164(pseudo-variable)
               4.10. is_e164(pseudo-variable)
               4.11. is_uri_user_e164(pseudo-variable)
               4.11. is_uri_user_e164(pseudo-variable)
-              4.12. is_tel_number(tval)
-              4.13. is_numeric(tval)
-              4.14. is_alphanum(tval)
-              4.15. is_alphanumex(tval, eset)
-              4.16. encode_contact(encoding_prefix,hostpart)
-              4.17. decode_contact()
-              4.18. decode_contact_header()
-              4.19. cmp_uri(str1, str2)
-              4.20. cmp_aor(str1, str2)
-              4.21. append_rpid_hf()
-              4.22. append_rpid_hf(prefix, suffix)
-              4.23. is_rpid_user_e164()
-              4.24. set_uri_user(uri, user)
-              4.25. set_uri_host(uri, host)
-              4.26. is_request()
-              4.27. is_reply()
-              4.28. is_gruu([uri])
-              4.29. is_supported(option)
-              4.30. is_first_hop()
-              4.31. sip_p_charging_vector(flags)
+              4.12. is_uri(pseudo-variable)
+              4.13. is_tel_number(tval)
+              4.14. is_numeric(tval)
+              4.15. is_alphanum(tval)
+              4.16. is_alphanumex(tval, eset)
+              4.17. encode_contact(encoding_prefix,hostpart)
+              4.18. decode_contact()
+              4.19. decode_contact_header()
+              4.20. cmp_uri(str1, str2)
+              4.21. cmp_aor(str1, str2)
+              4.22. append_rpid_hf()
+              4.23. append_rpid_hf(prefix, suffix)
+              4.24. is_rpid_user_e164()
+              4.25. set_uri_user(uri, user)
+              4.26. set_uri_host(uri, host)
+              4.27. is_request()
+              4.28. is_reply()
+              4.29. is_gruu([uri])
+              4.30. is_supported(option)
+              4.31. is_first_hop()
+              4.32. sip_p_charging_vector(flags)
 
 
         5. Exported pseudo-variables
         5. Exported pseudo-variables
 
 
@@ -130,26 +131,27 @@ Gabriel Vasile
    1.18. tel2sip usage
    1.18. tel2sip usage
    1.19. is_e164 usage
    1.19. is_e164 usage
    1.20. is_uri_user_e164 usage
    1.20. is_uri_user_e164 usage
-   1.21. is_tel_number usage
-   1.22. is_numeric usage
-   1.23. is_alphanum usage
-   1.24. is_alphanumex usage
-   1.25. encode_contact usage
-   1.26. decode_contact usage
-   1.27. decode_contact_header usage
-   1.28. cmp_uri usage
-   1.29. cmp_aor usage
-   1.30. append_rpid_hf usage
-   1.31. append_rpid_hf(prefix, suffix) usage
-   1.32. is_rpid_user_e164 usage
-   1.33. set_uri_user usage
-   1.34. set_uri_host usage
-   1.35. is_request usage
-   1.36. is_reply usage
-   1.37. is_gruu() usage
-   1.38. is_supported() usage
-   1.39. is_first_hop() usage
-   1.40. sip_p_charging_vector() usage
+   1.21. is_uri usage
+   1.22. is_tel_number usage
+   1.23. is_numeric usage
+   1.24. is_alphanum usage
+   1.25. is_alphanumex usage
+   1.26. encode_contact usage
+   1.27. decode_contact usage
+   1.28. decode_contact_header usage
+   1.29. cmp_uri usage
+   1.30. cmp_aor usage
+   1.31. append_rpid_hf usage
+   1.32. append_rpid_hf(prefix, suffix) usage
+   1.33. is_rpid_user_e164 usage
+   1.34. set_uri_user usage
+   1.35. set_uri_host usage
+   1.36. is_request usage
+   1.37. is_reply usage
+   1.38. is_gruu() usage
+   1.39. is_supported() usage
+   1.40. is_first_hop() usage
+   1.41. sip_p_charging_vector() usage
 
 
 Chapter 1. Admin Guide
 Chapter 1. Admin Guide
 
 
@@ -186,26 +188,27 @@ Chapter 1. Admin Guide
         4.9. tel2sip(uri, hostpart, result)
         4.9. tel2sip(uri, hostpart, result)
         4.10. is_e164(pseudo-variable)
         4.10. is_e164(pseudo-variable)
         4.11. is_uri_user_e164(pseudo-variable)
         4.11. is_uri_user_e164(pseudo-variable)
-        4.12. is_tel_number(tval)
-        4.13. is_numeric(tval)
-        4.14. is_alphanum(tval)
-        4.15. is_alphanumex(tval, eset)
-        4.16. encode_contact(encoding_prefix,hostpart)
-        4.17. decode_contact()
-        4.18. decode_contact_header()
-        4.19. cmp_uri(str1, str2)
-        4.20. cmp_aor(str1, str2)
-        4.21. append_rpid_hf()
-        4.22. append_rpid_hf(prefix, suffix)
-        4.23. is_rpid_user_e164()
-        4.24. set_uri_user(uri, user)
-        4.25. set_uri_host(uri, host)
-        4.26. is_request()
-        4.27. is_reply()
-        4.28. is_gruu([uri])
-        4.29. is_supported(option)
-        4.30. is_first_hop()
-        4.31. sip_p_charging_vector(flags)
+        4.12. is_uri(pseudo-variable)
+        4.13. is_tel_number(tval)
+        4.14. is_numeric(tval)
+        4.15. is_alphanum(tval)
+        4.16. is_alphanumex(tval, eset)
+        4.17. encode_contact(encoding_prefix,hostpart)
+        4.18. decode_contact()
+        4.19. decode_contact_header()
+        4.20. cmp_uri(str1, str2)
+        4.21. cmp_aor(str1, str2)
+        4.22. append_rpid_hf()
+        4.23. append_rpid_hf(prefix, suffix)
+        4.24. is_rpid_user_e164()
+        4.25. set_uri_user(uri, user)
+        4.26. set_uri_host(uri, host)
+        4.27. is_request()
+        4.28. is_reply()
+        4.29. is_gruu([uri])
+        4.30. is_supported(option)
+        4.31. is_first_hop()
+        4.32. sip_p_charging_vector(flags)
 
 
    5. Exported pseudo-variables
    5. Exported pseudo-variables
 
 
@@ -400,26 +403,27 @@ modparam("auth", "rpid_avp", "$avp(myrpid)")
    4.9. tel2sip(uri, hostpart, result)
    4.9. tel2sip(uri, hostpart, result)
    4.10. is_e164(pseudo-variable)
    4.10. is_e164(pseudo-variable)
    4.11. is_uri_user_e164(pseudo-variable)
    4.11. is_uri_user_e164(pseudo-variable)
-   4.12. is_tel_number(tval)
-   4.13. is_numeric(tval)
-   4.14. is_alphanum(tval)
-   4.15. is_alphanumex(tval, eset)
-   4.16. encode_contact(encoding_prefix,hostpart)
-   4.17. decode_contact()
-   4.18. decode_contact_header()
-   4.19. cmp_uri(str1, str2)
-   4.20. cmp_aor(str1, str2)
-   4.21. append_rpid_hf()
-   4.22. append_rpid_hf(prefix, suffix)
-   4.23. is_rpid_user_e164()
-   4.24. set_uri_user(uri, user)
-   4.25. set_uri_host(uri, host)
-   4.26. is_request()
-   4.27. is_reply()
-   4.28. is_gruu([uri])
-   4.29. is_supported(option)
-   4.30. is_first_hop()
-   4.31. sip_p_charging_vector(flags)
+   4.12. is_uri(pseudo-variable)
+   4.13. is_tel_number(tval)
+   4.14. is_numeric(tval)
+   4.15. is_alphanum(tval)
+   4.16. is_alphanumex(tval, eset)
+   4.17. encode_contact(encoding_prefix,hostpart)
+   4.18. decode_contact()
+   4.19. decode_contact_header()
+   4.20. cmp_uri(str1, str2)
+   4.21. cmp_aor(str1, str2)
+   4.22. append_rpid_hf()
+   4.23. append_rpid_hf(prefix, suffix)
+   4.24. is_rpid_user_e164()
+   4.25. set_uri_user(uri, user)
+   4.26. set_uri_host(uri, host)
+   4.27. is_request()
+   4.28. is_reply()
+   4.29. is_gruu([uri])
+   4.30. is_supported(option)
+   4.31. is_first_hop()
+   4.32. sip_p_charging_vector(flags)
 
 
 4.1.  ring_insert_callid()
 4.1.  ring_insert_callid()
 
 
@@ -624,14 +628,31 @@ if (is_uri_user_e164("$avp(i:705)") {
 };
 };
 ...
 ...
 
 
-4.12.  is_tel_number(tval)
+4.12.  is_uri(pseudo-variable)
+
+   Checks if string value of pseudo variable argument is a valid uri.
+
+   This function can be used from ANY_ROUTE.
+
+   Example 1.21. is_uri usage
+...
+if (is_uri("$var(x)")) {  # Check if variable contains a uri
+   ...
+}
+if (is_uri("$avp(i:705)") {
+   # Check value stored in avp i:705
+   ...
+};
+...
+
+4.13.  is_tel_number(tval)
 
 
    Checks if the parameter value is a telephone number: starting with one
    Checks if the parameter value is a telephone number: starting with one
    optional +, followed by digits. The parameter can include variables.
    optional +, followed by digits. The parameter can include variables.
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.21. is_tel_number usage
+   Example 1.22. is_tel_number usage
 ...
 ...
 if (is_tel_number("$rU")) {  # Test if R-URI user is telephone number
 if (is_tel_number("$rU")) {  # Test if R-URI user is telephone number
    ...
    ...
@@ -641,35 +662,35 @@ if (is_tel_number("+24242424") {
 }
 }
 ...
 ...
 
 
-4.13.  is_numeric(tval)
+4.14.  is_numeric(tval)
 
 
    Checks if the parameter value consists solely of decimal digits. The
    Checks if the parameter value consists solely of decimal digits. The
    parameter can include variables.
    parameter can include variables.
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.22. is_numeric usage
+   Example 1.23. is_numeric usage
 ...
 ...
 if (is_numeric("$rU")) {  # Test if R-URI user consists of decimal digits
 if (is_numeric("$rU")) {  # Test if R-URI user consists of decimal digits
    ...
    ...
 }
 }
 ...
 ...
 
 
-4.14.  is_alphanum(tval)
+4.15.  is_alphanum(tval)
 
 
    Checks if the parameter value consists solely of decimal digits or
    Checks if the parameter value consists solely of decimal digits or
    alphabetic ASCII characters. The parameter can include variables.
    alphabetic ASCII characters. The parameter can include variables.
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.23. is_alphanum usage
+   Example 1.24. is_alphanum usage
 ...
 ...
 if (is_alphanum("$rU")) {
 if (is_alphanum("$rU")) {
    ...
    ...
 }
 }
 ...
 ...
 
 
-4.15.  is_alphanumex(tval, eset)
+4.16.  is_alphanumex(tval, eset)
 
 
    Checks if the value of parameter 'tval' consists solely of decimal
    Checks if the value of parameter 'tval' consists solely of decimal
    digits, alphabetic ASCII characters and the characters in the second
    digits, alphabetic ASCII characters and the characters in the second
@@ -677,14 +698,14 @@ if (is_alphanum("$rU")) {
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.24. is_alphanumex usage
+   Example 1.25. is_alphanumex usage
 ...
 ...
 if (is_alphanumex("$rU", "+.-_")) {
 if (is_alphanumex("$rU", "+.-_")) {
    ...
    ...
 }
 }
 ...
 ...
 
 
-4.16.  encode_contact(encoding_prefix,hostpart)
+4.17.  encode_contact(encoding_prefix,hostpart)
 
 
    This function will encode uri-s inside Contact header in the following
    This function will encode uri-s inside Contact header in the following
    manner sip:username:password@ip:port;transport=protocol goes
    manner sip:username:password@ip:port;transport=protocol goes
@@ -706,12 +727,12 @@ if (is_alphanumex("$rU", "+.-_")) {
 
 
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE.
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE.
 
 
-   Example 1.25. encode_contact usage
+   Example 1.26. encode_contact usage
 ...
 ...
 if (src_ip == 10.0.0.0/8) encode_contact("natted_client","1.2.3.4");
 if (src_ip == 10.0.0.0/8) encode_contact("natted_client","1.2.3.4");
 ...
 ...
 
 
-4.17.  decode_contact()
+4.18.  decode_contact()
 
 
    This function will decode the request URI. If the RURI is in the format
    This function will decode the request URI. If the RURI is in the format
    sip:encoding_prefix*username*ip*port*protocol@hostpart it will be
    sip:encoding_prefix*username*ip*port*protocol@hostpart it will be
@@ -724,12 +745,12 @@ if (src_ip == 10.0.0.0/8) encode_contact("natted_client","1.2.3.4");
 
 
    This function can be used from REQUEST_ROUTE.
    This function can be used from REQUEST_ROUTE.
 
 
-   Example 1.26. decode_contact usage
+   Example 1.27. decode_contact usage
 ...
 ...
 if (uri =~ "^sip:natted_client") { decode_contact(); }
 if (uri =~ "^sip:natted_client") { decode_contact(); }
 ...
 ...
 
 
-4.18.  decode_contact_header()
+4.19.  decode_contact_header()
 
 
    This function will decode URIs inside Contact header. If the URI in the
    This function will decode URIs inside Contact header. If the URI in the
    format sip:encoding_prefix*username*ip*port*protocol@hostpart it will
    format sip:encoding_prefix*username*ip*port*protocol@hostpart it will
@@ -742,7 +763,7 @@ if (uri =~ "^sip:natted_client") { decode_contact(); }
 
 
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE.
    This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE.
 
 
-   Example 1.27. decode_contact_header usage
+   Example 1.28. decode_contact_header usage
 ...
 ...
 reply_route[2] {
 reply_route[2] {
         ...
         ...
@@ -751,13 +772,13 @@ reply_route[2] {
 }
 }
 ...
 ...
 
 
-4.19.  cmp_uri(str1, str2)
+4.20.  cmp_uri(str1, str2)
 
 
    The function returns true if the two parameters matches as SIP URI.
    The function returns true if the two parameters matches as SIP URI.
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.28. cmp_uri usage
+   Example 1.29. cmp_uri usage
 ...
 ...
 if(cmp_uri("$ru", "sip:[email protected]"))
 if(cmp_uri("$ru", "sip:[email protected]"))
 {
 {
@@ -765,14 +786,14 @@ if(cmp_uri("$ru", "sip:[email protected]"))
 }
 }
 ...
 ...
 
 
-4.20.  cmp_aor(str1, str2)
+4.21.  cmp_aor(str1, str2)
 
 
    The function returns true if the two parameters matches as AoR. The
    The function returns true if the two parameters matches as AoR. The
    parameters have to be SIP URIs.
    parameters have to be SIP URIs.
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.29. cmp_aor usage
+   Example 1.30. cmp_aor usage
 ...
 ...
 if(cmp_aor("[email protected]", "sip:kamailio@$fd"))
 if(cmp_aor("[email protected]", "sip:kamailio@$fd"))
 {
 {
@@ -780,7 +801,7 @@ if(cmp_aor("[email protected]", "sip:kamailio@$fd"))
 }
 }
 ...
 ...
 
 
-4.21.  append_rpid_hf()
+4.22.  append_rpid_hf()
 
 
    Appends to the message a Remote-Party-ID header that contains header
    Appends to the message a Remote-Party-ID header that contains header
    'Remote-Party-ID: ' followed by the saved value of the SIP URI received
    'Remote-Party-ID: ' followed by the saved value of the SIP URI received
@@ -791,14 +812,14 @@ if(cmp_aor("[email protected]", "sip:kamailio@$fd"))
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    BRANCH_ROUTE.
    BRANCH_ROUTE.
 
 
-   Example 1.30. append_rpid_hf usage
+   Example 1.31. append_rpid_hf usage
 ...
 ...
 append_rpid_hf();  # Append Remote-Party-ID header field
 append_rpid_hf();  # Append Remote-Party-ID header field
 ...
 ...
 
 
-4.22.  append_rpid_hf(prefix, suffix)
+4.23.  append_rpid_hf(prefix, suffix)
 
 
-   This function is the same as Section 4.21, “ append_rpid_hf()”. The
+   This function is the same as Section 4.22, “ append_rpid_hf()”. The
    only difference is that it accepts two parameters--prefix and suffix to
    only difference is that it accepts two parameters--prefix and suffix to
    be added to Remote-Party-ID header field. This function ignores
    be added to Remote-Party-ID header field. This function ignores
    rpid_prefix and rpid_suffix parameters, instead of that allows to set
    rpid_prefix and rpid_suffix parameters, instead of that allows to set
@@ -815,13 +836,13 @@ append_rpid_hf();  # Append Remote-Party-ID header field
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
    BRANCH_ROUTE.
    BRANCH_ROUTE.
 
 
-   Example 1.31. append_rpid_hf(prefix, suffix) usage
+   Example 1.32. append_rpid_hf(prefix, suffix) usage
 ...
 ...
 # Append Remote-Party-ID header field
 # Append Remote-Party-ID header field
 append_rpid_hf("", ";party=calling;id-type=subscriber;screen=yes");
 append_rpid_hf("", ";party=calling;id-type=subscriber;screen=yes");
 ...
 ...
 
 
-4.23.  is_rpid_user_e164()
+4.24.  is_rpid_user_e164()
 
 
    The function checks if the SIP URI received from the database or radius
    The function checks if the SIP URI received from the database or radius
    server and will potentially be used in Remote-Party-ID header field
    server and will potentially be used in Remote-Party-ID header field
@@ -831,68 +852,68 @@ append_rpid_hf("", ";party=calling;id-type=subscriber;screen=yes");
 
 
    This function can be used from REQUEST_ROUTE.
    This function can be used from REQUEST_ROUTE.
 
 
-   Example 1.32. is_rpid_user_e164 usage
+   Example 1.33. is_rpid_user_e164 usage
 ...
 ...
 if (is_rpid_user_e164()) {
 if (is_rpid_user_e164()) {
     # do something here
     # do something here
 };
 };
 ...
 ...
 
 
-4.24.  set_uri_user(uri, user)
+4.25.  set_uri_user(uri, user)
 
 
    Sets userpart of SIP URI stored in writable pseudo variable 'uri' to
    Sets userpart of SIP URI stored in writable pseudo variable 'uri' to
    value of pseudo variable 'user'.
    value of pseudo variable 'user'.
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.33. set_uri_user usage
+   Example 1.34. set_uri_user usage
 ...
 ...
 $var(uri) = "sip:user@host";
 $var(uri) = "sip:user@host";
 $var(user) = "new_user";
 $var(user) = "new_user";
 set_uri_user("$var(uri)", "$var(user)");
 set_uri_user("$var(uri)", "$var(user)");
 ...
 ...
 
 
-4.25.  set_uri_host(uri, host)
+4.26.  set_uri_host(uri, host)
 
 
    Sets hostpart of SIP URI stored in writable pseudo variable 'uri' to
    Sets hostpart of SIP URI stored in writable pseudo variable 'uri' to
    value of pseudo variable 'host'.
    value of pseudo variable 'host'.
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.34. set_uri_host usage
+   Example 1.35. set_uri_host usage
 ...
 ...
 $var(uri) = "sip:user@host";
 $var(uri) = "sip:user@host";
 $var(host) = "new_host";
 $var(host) = "new_host";
 set_uri_host("$var(uri)", "$var(host)");
 set_uri_host("$var(uri)", "$var(host)");
 ...
 ...
 
 
-4.26.  is_request()
+4.27.  is_request()
 
 
    Return true if the SIP message is a request.
    Return true if the SIP message is a request.
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.35. is_request usage
+   Example 1.36. is_request usage
 ...
 ...
 if (is_request()) {
 if (is_request()) {
         ...
         ...
 }
 }
 ...
 ...
 
 
-4.27.  is_reply()
+4.28.  is_reply()
 
 
    Return true if the SIP message is a reply.
    Return true if the SIP message is a reply.
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.36. is_reply usage
+   Example 1.37. is_reply usage
 ...
 ...
 if (is_reply()) {
 if (is_reply()) {
         ...
         ...
 }
 }
 ...
 ...
 
 
-4.28.  is_gruu([uri])
+4.29.  is_gruu([uri])
 
 
    The function returns true if the uri is GRUU ('gr' parameter is
    The function returns true if the uri is GRUU ('gr' parameter is
    present): 1 - pub-gruu; 2 - temp-gruu.
    present): 1 - pub-gruu; 2 - temp-gruu.
@@ -903,12 +924,12 @@ if (is_reply()) {
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.37. is_gruu() usage
+   Example 1.38. is_gruu() usage
 ...
 ...
 if(is_gruu()) { ... }
 if(is_gruu()) { ... }
 ...
 ...
 
 
-4.29.  is_supported(option)
+4.30.  is_supported(option)
 
 
    Function returns true if given option is listed in Supported header(s)
    Function returns true if given option is listed in Supported header(s)
    (if any) of the request. Currently the following options are known:
    (if any) of the request. Currently the following options are known:
@@ -916,12 +937,12 @@ if(is_gruu()) { ... }
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.38. is_supported() usage
+   Example 1.39. is_supported() usage
 ...
 ...
 if (is_supported("outbound")) { ... }
 if (is_supported("outbound")) { ... }
 ...
 ...
 
 
-4.30.  is_first_hop()
+4.31.  is_first_hop()
 
 
    The function returns true if the proxy is first hop after the original
    The function returns true if the proxy is first hop after the original
    sender. For incoming SIP requests, it means there is only one Via
    sender. For incoming SIP requests, it means there is only one Via
@@ -935,19 +956,19 @@ if (is_supported("outbound")) { ... }
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.39. is_first_hop() usage
+   Example 1.40. is_first_hop() usage
 ...
 ...
 if(is_first_hop()) { ... }
 if(is_first_hop()) { ... }
 ...
 ...
 
 
-4.31.  sip_p_charging_vector(flags)
+4.32.  sip_p_charging_vector(flags)
 
 
    Manage the P-Charging-Vector header (RFC7315). The flags can be: 'r' -
    Manage the P-Charging-Vector header (RFC7315). The flags can be: 'r' -
    remove; 'g' - generate; 'f' - force (remove + generate).
    remove; 'g' - generate; 'f' - force (remove + generate).
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.40. sip_p_charging_vector() usage
+   Example 1.41. sip_p_charging_vector() usage
 ...
 ...
 sip_p_charging_vector("g");
 sip_p_charging_vector("g");
 ...
 ...