浏览代码

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

Kamailio Dev 1 年之前
父节点
当前提交
6a8eb982be
共有 1 个文件被更改,包括 151 次插入41 次删除
  1. 151 41
      src/modules/permissions/README

+ 151 - 41
src/modules/permissions/README

@@ -12,6 +12,8 @@ Juha Heinanen
 
 
 Emmanuel Schmidbauer
 Emmanuel Schmidbauer
 
 
+Donat Zenichev
+
    Copyright © 2003 Miklos Tirpak
    Copyright © 2003 Miklos Tirpak
 
 
    Copyright © 2006-2008 Juha Heinanen
    Copyright © 2006-2008 Juha Heinanen
@@ -70,12 +72,14 @@ Emmanuel Schmidbauer
               4.3. allow_routing(allow_file, deny_file)
               4.3. allow_routing(allow_file, deny_file)
               4.4. allow_register(basename)
               4.4. allow_register(basename)
               4.5. allow_register(allow_file, deny_file)
               4.5. allow_register(allow_file, deny_file)
-              4.6. allow_uri(basename, pvar)
-              4.7. allow_address(group_id, ip_addr_pvar, port_pvar)
-              4.8. allow_source_address([group_id])
-              4.9. allow_source_address_group()
-              4.10. allow_address_group(addr, port)
-              4.11. allow_trusted([src_ip_pvar, proto_pvar, furi_pvar])
+              4.6. allow_register_include_port(basename)
+              4.7. allow_register_include_port(allow_file, deny_file)
+              4.8. allow_uri(basename, pvar)
+              4.9. allow_address(group_id, ip_addr_pvar, port_pvar)
+              4.10. allow_source_address([group_id])
+              4.11. allow_source_address_group()
+              4.12. allow_address_group(addr, port)
+              4.13. allow_trusted([src_ip_pvar, proto_pvar, furi_pvar])
 
 
         5. RPC Commands
         5. RPC Commands
 
 
@@ -89,6 +93,7 @@ Emmanuel Schmidbauer
               5.8. permissions.trustedDump
               5.8. permissions.trustedDump
 
 
         6. Address File Format
         6. Address File Format
+        7. Register File Format
 
 
    List of Examples
    List of Examples
 
 
@@ -123,13 +128,16 @@ Emmanuel Schmidbauer
    1.29. allow_routing(allow_file, deny_file) usage
    1.29. allow_routing(allow_file, deny_file) usage
    1.30. allow_register(basename) usage
    1.30. allow_register(basename) usage
    1.31. allow_register(allow_file, deny_file) usage
    1.31. allow_register(allow_file, deny_file) usage
-   1.32. allow_uri(basename, pvar) usage
-   1.33. allow_address() usage
-   1.34. allow_source_address(group_id) usage
-   1.35. allow_source_address_group() usage
-   1.36. allow_source_address_group() usage
-   1.37. allow_trusted() usage
-   1.38. Address File Sample
+   1.32. allow_register_include_port(basename) usage
+   1.33. allow_register_include_port(allow_file, deny_file) usage
+   1.34. allow_uri(basename, pvar) usage
+   1.35. allow_address() usage
+   1.36. allow_source_address(group_id) usage
+   1.37. allow_source_address_group() usage
+   1.38. allow_source_address_group() usage
+   1.39. allow_trusted() usage
+   1.40. Address File Sample
+   1.41. Register File Sample
 
 
 Chapter 1. Admin Guide
 Chapter 1. Admin Guide
 
 
@@ -184,12 +192,14 @@ Chapter 1. Admin Guide
         4.3. allow_routing(allow_file, deny_file)
         4.3. allow_routing(allow_file, deny_file)
         4.4. allow_register(basename)
         4.4. allow_register(basename)
         4.5. allow_register(allow_file, deny_file)
         4.5. allow_register(allow_file, deny_file)
-        4.6. allow_uri(basename, pvar)
-        4.7. allow_address(group_id, ip_addr_pvar, port_pvar)
-        4.8. allow_source_address([group_id])
-        4.9. allow_source_address_group()
-        4.10. allow_address_group(addr, port)
-        4.11. allow_trusted([src_ip_pvar, proto_pvar, furi_pvar])
+        4.6. allow_register_include_port(basename)
+        4.7. allow_register_include_port(allow_file, deny_file)
+        4.8. allow_uri(basename, pvar)
+        4.9. allow_address(group_id, ip_addr_pvar, port_pvar)
+        4.10. allow_source_address([group_id])
+        4.11. allow_source_address_group()
+        4.12. allow_address_group(addr, port)
+        4.13. allow_trusted([src_ip_pvar, proto_pvar, furi_pvar])
 
 
    5. RPC Commands
    5. RPC Commands
 
 
@@ -203,6 +213,7 @@ Chapter 1. Admin Guide
         5.8. permissions.trustedDump
         5.8. permissions.trustedDump
 
 
    6. Address File Format
    6. Address File Format
+   7. Register File Format
 
 
 1. Overview
 1. Overview
 
 
@@ -272,7 +283,8 @@ Chapter 1. Admin Guide
    The function for registration checking is called allow_register and the
    The function for registration checking is called allow_register and the
    algorithm is very similar to the algorithm described in Section 1.1,
    algorithm is very similar to the algorithm described in Section 1.1,
    “Call Routing”. The only difference is in the way how pairs are
    “Call Routing”. The only difference is in the way how pairs are
-   created.
+   created. Additionally one can use allow_register_include_port function
+   in order to include the port value of the Contact into the check.
 
 
    Instead of the From header field the function uses the To header field
    Instead of the From header field the function uses the To header field
    because the To header field in REGISTER messages contains the URI of
    because the To header field in REGISTER messages contains the URI of
@@ -458,7 +470,7 @@ modparam("permissions", "check_all_branches", 0)
 
 
    Suffix to be appended to basename to create filename of the allow file
    Suffix to be appended to basename to create filename of the allow file
    when version with one parameter of either allow_routing or
    when version with one parameter of either allow_routing or
-   allow_register is used.
+   allow_register_include_port or allow_register is used.
 
 
 Note
 Note
 
 
@@ -475,7 +487,7 @@ modparam("permissions", "allow_suffix", ".allow")
 
 
    Suffix to be appended to basename to create filename of the deny file
    Suffix to be appended to basename to create filename of the deny file
    when version with one parameter of either allow_routing or
    when version with one parameter of either allow_routing or
-   allow_register is used.
+   allow_register_include_port or allow_register is used.
 
 
 Note
 Note
 
 
@@ -771,12 +783,14 @@ modparam("permissions", "trusted_cleanup_interval", 120)
    4.3. allow_routing(allow_file, deny_file)
    4.3. allow_routing(allow_file, deny_file)
    4.4. allow_register(basename)
    4.4. allow_register(basename)
    4.5. allow_register(allow_file, deny_file)
    4.5. allow_register(allow_file, deny_file)
-   4.6. allow_uri(basename, pvar)
-   4.7. allow_address(group_id, ip_addr_pvar, port_pvar)
-   4.8. allow_source_address([group_id])
-   4.9. allow_source_address_group()
-   4.10. allow_address_group(addr, port)
-   4.11. allow_trusted([src_ip_pvar, proto_pvar, furi_pvar])
+   4.6. allow_register_include_port(basename)
+   4.7. allow_register_include_port(allow_file, deny_file)
+   4.8. allow_uri(basename, pvar)
+   4.9. allow_address(group_id, ip_addr_pvar, port_pvar)
+   4.10. allow_source_address([group_id])
+   4.11. allow_source_address_group()
+   4.12. allow_address_group(addr, port)
+   4.13. allow_trusted([src_ip_pvar, proto_pvar, furi_pvar])
 
 
 4.1.  allow_routing()
 4.1.  allow_routing()
 
 
@@ -900,7 +914,65 @@ if (method=="REGISTER") {
 };
 };
 ...
 ...
 
 
-4.6.  allow_uri(basename, pvar)
+4.6.  allow_register_include_port(basename)
+
+   The function does exacty the same thing as allow_register(basename)
+   apart that it tells the module to include the port value of Contact
+   into the check. No additional function parameters required.
+
+   Meaning of the parameters is as follows:
+     * basename - Basename from which allow and deny filenames will be
+       created by appending contents of allow_suffix and deny_suffix
+       parameters.
+       If the parameter doesn't contain full pathname then the function
+       expects the file to be located in the same directory as the main
+       configuration file of the server.
+
+   This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
+
+   Example 1.32. allow_register_include_port(basename) usage
+...
+if (method=="REGISTER") {
+        if (allow_register_include_port("register")) {
+                save("location");
+                exit;
+        } else {
+                sl_send_reply("403", "Forbidden");
+        };
+};
+...
+
+4.7.  allow_register_include_port(allow_file, deny_file)
+
+   The function does exacty the same thing as allow_register(allow_file,
+   deny_file) apart that it tells the module to include the port value of
+   Contact into the check. No additional function parameters required.
+
+   Meaning of the parameters is as follows:
+     * allow_file - File containing allow rules.
+       If the parameter doesn't contain full pathname then the function
+       expects the file to be located in the same directory as the main
+       configuration file of the server.
+     * deny_file - File containing deny rules.
+       If the parameter doesn't contain full pathname then the function
+       expects the file to be located in the same directory as the main
+       configuration file of the server.
+
+   This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
+
+   Example 1.33. allow_register_include_port(allow_file, deny_file) usage
+...
+if (method=="REGISTER") {
+        if (allow_register_include_port("register.allow", "register.deny")) {
+                save("location");
+                exit;
+        } else {
+                sl_send_reply("403", "Forbidden");
+        };
+};
+...
+
+4.8.  allow_uri(basename, pvar)
 
 
    Returns true if the pair constructed as described in Section 1.3, “URI
    Returns true if the pair constructed as described in Section 1.3, “URI
    Permissions” have appropriate permissions according to the
    Permissions” have appropriate permissions according to the
@@ -917,7 +989,7 @@ if (method=="REGISTER") {
 
 
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
 
 
-   Example 1.32. allow_uri(basename, pvar) usage
+   Example 1.34. allow_uri(basename, pvar) usage
 ...
 ...
 if (allow_uri("basename", "$rt")) {  // Check Refer-To URI
 if (allow_uri("basename", "$rt")) {  // Check Refer-To URI
         t_relay();
         t_relay();
@@ -927,7 +999,7 @@ if (allow_uri("basename", "$avp(i:705)") {  // Check URI stored in $avp(i:705)
 };
 };
 ...
 ...
 
 
-4.7.  allow_address(group_id, ip_addr_pvar, port_pvar)
+4.9.  allow_address(group_id, ip_addr_pvar, port_pvar)
 
 
    Returns true if the address and port given as values of pvar arguments
    Returns true if the address and port given as values of pvar arguments
    belonging to a group given as group_id argument matches an IP subnet or
    belonging to a group given as group_id argument matches an IP subnet or
@@ -943,7 +1015,7 @@ if (allow_uri("basename", "$avp(i:705)") {  // Check URI stored in $avp(i:705)
 
 
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
 
 
-   Example 1.33. allow_address() usage
+   Example 1.35. allow_address() usage
 ...
 ...
 
 
 // Check if source address/port is in group 1
 // Check if source address/port is in group 1
@@ -958,14 +1030,14 @@ if (!allow_address("2", "$avp(dst_adr)", "$avp(dst_port)") {
 };
 };
 ...
 ...
 
 
-4.8.  allow_source_address([group_id])
+4.10.  allow_source_address([group_id])
 
 
    Equal to “allow_address(group_id, "$si", "$sp")”. If 'group_id' is
    Equal to “allow_address(group_id, "$si", "$sp")”. If 'group_id' is
    missing, the function is equal to allow_address("1", "$si", "$sp").
    missing, the function is equal to allow_address("1", "$si", "$sp").
 
 
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
 
 
-   Example 1.34. allow_source_address(group_id) usage
+   Example 1.36. allow_source_address(group_id) usage
 ...
 ...
 
 
 // Check source address/port of request
 // Check source address/port of request
@@ -974,7 +1046,7 @@ if (!allow_source_address("1")) {
 };
 };
 ...
 ...
 
 
-4.9.  allow_source_address_group()
+4.11.  allow_source_address_group()
 
 
    Checks if source address/port is found in cached address or subnet
    Checks if source address/port is found in cached address or subnet
    table in any group. If yes, returns that group. If not returns -1. Port
    table in any group. If yes, returns that group. If not returns -1. Port
@@ -982,7 +1054,7 @@ if (!allow_source_address("1")) {
 
 
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
 
 
-   Example 1.35. allow_source_address_group() usage
+   Example 1.37. allow_source_address_group() usage
 ...
 ...
 
 
 $var(group) = allow_source_address_group();
 $var(group) = allow_source_address_group();
@@ -991,7 +1063,7 @@ if ($var(group) != -1) {
 };
 };
 ...
 ...
 
 
-4.10.  allow_address_group(addr, port)
+4.12.  allow_address_group(addr, port)
 
 
    Checks if address/port is found in cached address or subnet table in
    Checks if address/port is found in cached address or subnet table in
    any group. If yes, returns that group. If not returns -1. Port value 0
    any group. If yes, returns that group. If not returns -1. Port value 0
@@ -1000,7 +1072,7 @@ if ($var(group) != -1) {
 
 
    This function can be used from ANY_ROUTE.
    This function can be used from ANY_ROUTE.
 
 
-   Example 1.36. allow_source_address_group() usage
+   Example 1.38. allow_source_address_group() usage
 ...
 ...
 
 
 $var(group) = allow_address_group("1.2.3.4", "5060");
 $var(group) = allow_address_group("1.2.3.4", "5060");
@@ -1009,7 +1081,7 @@ if ($var(group) != -1) {
 };
 };
 ...
 ...
 
 
-4.11.  allow_trusted([src_ip_pvar, proto_pvar, furi_pvar])
+4.13.  allow_trusted([src_ip_pvar, proto_pvar, furi_pvar])
 
 
    Checks based either on request's source address and transport protocol
    Checks based either on request's source address and transport protocol
    or source address and transport protocol given in pvar arguments, and
    or source address and transport protocol given in pvar arguments, and
@@ -1030,7 +1102,7 @@ if ($var(group) != -1) {
 
 
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
 
 
-   Example 1.37. allow_trusted() usage
+   Example 1.39. allow_trusted() usage
 ...
 ...
 if (allow_trusted()) {
 if (allow_trusted()) {
         t_relay();
         t_relay();
@@ -1148,7 +1220,7 @@ if (allow_trusted("$si", "any", "$ai")) {
    provided, the tag value has to be a single token, without whitespaces
    provided, the tag value has to be a single token, without whitespaces
    (other punctuation signs can be in its value, like ',', '=', ';', ...).
    (other punctuation signs can be in its value, like ',', '=', ';', ...).
 
 
-   Example 1.38. Address File Sample
+   Example 1.40. Address File Sample
 ...
 ...
 # address file - records to match with allow_address(...) and variants
 # address file - records to match with allow_address(...) and variants
 # * file format details
 # * file format details
@@ -1170,3 +1242,41 @@ if (allow_trusted("$si", "any", "$ai")) {
 
 
 3 [1:5ee::900d:c0de]
 3 [1:5ee::900d:c0de]
 ...
 ...
+
+7. Register File Format
+
+   It is a text file with one record per line. Lines starting with '#' are
+   considered comments and ignored. Comments can be also at the end of
+   records, by using '#' to start the comment part of the line.
+
+   Each record line has the format:
+...
+(from_list,str) (req_uri_list,str)
+...
+
+   The 'str' indicates that the value has to be a string compatible with
+   POSIX Extended Regular Expressions.
+
+   Example 1.41. Register File Sample
+...
+# Syntax:
+#       from_list [EXCEPT from_list] : req_uri_list [EXCEPT req_uri_list]
+#
+#       from_list and req_uri_list are comma separated expressions
+#       Expressions are treated as case insensitive POSIX Extended Regular Expre
+ssions.
+#       Keyword ALL matches any expression.
+#
+# Examples (requires a usage of allow_register() function):
+#       ALL : "^sip:361[0-9]*@abc\.com$" EXCEPT "^sip:361[0-9]*3@abc\.com$", "^s
+ip:361[0-9]*4@abc\.com$"
+#
+#       "^sip:3677[0-9]*@abc\.com$" :  "^sip:361[0-9]*@abc\.com$"
+#
+#       All : ALL
+#
+# Examples including port check (requires a usage of allow_register_include_port
+() function):
+#
+# ALL : "^sip:.*@192.168.0.1:5062"
+...