专注于VoIP,Opensips,Kamailio等技术,QQ群:QQ群:293697898
This page was saved using WebZIP 7.0.3.1030 offline browser (Unregistered) on 10/03/15 23:42:10. Address: http://kamailio.org/docs/modules/stable/modules/group.html Title: group Module • Size: 33306 • Last Modified: Wed, 03 Jun 2015 20:25:53 GMT group Module
Jan Janak
FhG FOKUS
Daniel-Constantin Mierla
<miconda@gmail.com>
Edited by
Jan Janak
翻译
李 浩
<1354608370@qq.com>
Copyright © 2003 FhG FOKUS
目录
1. 用户指南
1. 概述
1.1. 严格的成员检查
1.2. 以正则表达式为基础的检查
2. 依赖模块
2.1. Kamailio模块
2.2. 外部库和应用程序
3. 参数表
3.1. db_url (string)
3.2. table (string)
3.3. user_column (string)
3.4. domain_column (string)
3.5. group_column (string)
3.6. use_domain (integer)
3.7. re_table (string)
3.8. re_exp_column (string)
3.9. re_gid_column (string)
3.10. multiple_gid (integer)
4. 函数表
4.1. is_user_in(URI, group)
4.2. get_user_group(URI, AVP)
示例
1.1. Set db_url parameter
1.2. Set table parameter
1.3. Set user_column parameter
1.4. Set domain_column parameter
1.5. Set group_column parameter
1.6. Set use_domain parameter
1.7. Set re_table parameter
1.8. Set re_exp_column parameter
1.9. Set re_gid_column parameter
1.10. Set multiple_gid parameter
1.11. is_user_in usage
1.12. get_user_group usage
第1节. 用户指南
目录
1. 概述
1.1. 严格的成员检查
1.2. 以正则表达式为基础的检查
2. 依赖模块
2.1. Kamailio模块
2.2. 外部库和应用程序
3. 参数表
3.1. db_url (string)
3.2. table (string)
3.3. user_column (string)
3.4. domain_column (string)
3.5. group_column (string)
3.6. use_domain (integer)
3.7. re_table (string)
3.8. re_exp_column (string)
3.9. re_gid_column (string)
3.10. multiple_gid (integer)
4. 函数表
4.1. is_user_in(URI, group)
4.2. get_user_group(URI, AVP)
1.用户指南
This module provides functionality for two different methods of group membership checking.
这个模块提供了两种对group成员进行检查的不同的方法的功能。
1.1.严格的成员检查
The module uses a database table that contains a list of users and groups they belong to. The module provides the possibility to check if a specific user belongs to a specific group.
这个模块使用了一个包含了用户和组列的的数据表 , 这个模块提供了检查某一个用户是否属于特定组的功能。
There is no DB caching support, which means that each check involves a DB query.
这个模块没有提供缓存, 这意味着每一次的检查都会发起一个数据库查询。
1.2. 以正则表达式为基础的检查
Another database table contains list of regular expressions and group IDs. A matching occurs if the user URI match the regular expression. This type of matching may be used to fetch the group ID(s) the user belongs to (via RE matching) .
另一个数据表包含了一个正则表达式和组的标识的对应表。如果用户URI和一个正则表达式匹配时, 这种类型的区配可以用来获取到用户所属的组标识(通过重新匹配)
Due to performance reasons (regular expression evaluation), DB cache support is available: the table content is loaded into memory at startup and all regular expressions are compiled.
由于性能的原因(正则表达式的评价),支持使用数据库缓存,这个表的内容被先加载到内存中, 启动并收集了所有的正则表达式。
2.依赖模块
2.1. Kamailio模块
The following modules must be loaded before this module:
依赖模块必须要本模块前加载
A database module, like db_mysql, db_postgres or db_text
相关的数据库模块,比如Db_mysql,db_postgres或db_text
2.2.外部库和应用程序
The following libraries or applications must be installed before running Kamailio with this module loaded:
依赖的外部库或应用程序必须在加载本模块前被安装:
None.
3.参数表
3.1. db_url (string)
URL of the database table to be used. 数据库使用的URL
默认值: “mysql://kamailioro:kamailioro@localhost/kamailio”.
示例 1.1. Set db_url parameter
...
modparam("group", "db_url", "dbdriver://username:password@dbhost/dbname")
...
3.2. table (string)
Name of the table holding strict definitions of groups and their members.
表中严格的定义了组和它的成员
默认值: “grp”.
示例 1.2. Set table parameter
...
modparam("group", "table", "grp_table")
...
3.3. user_column (string)
Name of the “table” column holding usernames.
包含用户名的表字段名称
默认值: “username”.
示例 1.3. Set user_column parameter
...
modparam("group", "user_column", "user")
...
3.4. domain_column (string)
Name of the “table” column holding domains.
包含domain的表字段的名称
默认值: “domain”.
示例 1.4. Set domain_column parameter
...
modparam("group", "domain_column", "realm")
...
3.5. group_column (string)
Name of the “table” column holding group names. 包含用户组的表字段名称
默认值: “grp”.
示例 1.5. Set group_column parameter
...
modparam("group", "group_column", "grp")
...
3.6. use_domain (integer)
If enabled (set to a non zero value) then the domain will be used also used for strict group matching; otherwise only the username part will be used.
如果启用的话(设置为一个非0值),那么domain将使用严格的组匹配检查,否则只会使用username部分。
默认值:0 (disabled).
示例 1.6. Set use_domain parameter
...
modparam("group", "use_domain", 1)
...
3.7. re_table (string)
Name of the table holding definitions for regular-expression based groups. If no table is defined, the regular-expression support is disabled.
定义用于基于组的正则表达式的表字段的名称。如果没有表定义,将禁止使用正则表达式。
默认值: “NULL”.
示例 1.7. Set re_table parameter
...
modparam("group", "re_table", "re_grp")
...
3.8. re_exp_column (string)
Name of the “re_table” column holding the regular expression used for user matching.
定义用于用户匹配表达式的的字段的定义
默认值: “reg_exp”.
示例 1.8. Set re_exp_column parameter
...
modparam("group", "re_exp_column", "re")
...
3.9. re_gid_column (string)
Name of the “re_table” column holding the group IDs. 用于定义group id的表字段名
默认值:“group_id”.
示例 1.9. Set re_gid_column parameter
...
modparam("group", "re_gid_column", "grp_id")
...
3.10. multiple_gid (integer)
If enabled (non zero value) the regular-expression matching will return all group IDs that match the user; otherwise only the first will be returned.
如果启用的话(非0值),正则表达式匹配将返回用户匹配的组标识; 否则仅返回第一个匹配的。
默认值: “1” (enabled).
示例 1.10. Set multiple_gid parameter
...
modparam("group", "multiple_gid", 0)
...
4.函数表
4.1. is_user_in(URI, group)
This function is to be used for script group membership. The function returns true if username in the given URI is a member of the given group and false if not.
这个函数用于检查组成员的脚本,函数返回true意味着指定的 URI 是指定的group的成员,否则不是。
Meaning of the parameters is as follows: 参数的含义如下:
URI - URI whose username and optionally domain to be used, this can be one of:
URI -用户名和一个可选项 domain,它可能是:
Request-URI - Use Request-URI username and (optionally) domain. Request-URI - 使用用户名和domain(可选)组合的Request-URI
To - Use To username and (optionally) domain. To - 要到达的 用户名和domain(可选)
From - Use From username and (optionally) domain. From - 发起请求的用户名和domain(可选)
Credentials - Use digest credentials username. Credentials -
$avp(name) - Use the URI from the AVP specified by this pseudo-variable.
group - Name of the group to check 检查group name.
This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. 这个函数可以被用于REQUEST_ROUTE and FAILURE_ROUTE.
示例 1.11. is_user_in usage
...
if (is_user_in("Request-URI", "ld")) {
...
};
...
4.2. get_user_group(URI, AVP)
This function is to be used for regular expression based group membership. The function returns true if username in the given URI belongs to at least one group; the group ID(s) are returned as AVPs.
这个函数用于通过正则表达式获得组成员。函数返回true,用户名至少属于一个group, 组ID返回到了 AVPs.
Meaning of the parameters is as follows: 参数的含义如下:
URI - URI to be matched against the regular expressions:
URI - 和表达式要匹配的URI
Request-URI - Use Request-URI
To - Use To URI.
From - Use From URI
Credentials - Use digest credentials username and realm.
$avp(name) - Use the URI from the AVP specified by this pseudo-variable.
AVP - $avp(name) - the matched group IDs are returned in this AVP.
This function can be used from REQUEST_ROUTE and FAILURE_ROUTE. 这个函数可以被用于REQUEST_ROUTE and FAILURE_ROUTE.
示例 1.12. get_user_group usage
...
if (get_user_group("Request-URI", "$avp(i:10)")) {
xgdb("User $ru belongs to $(avp(i:10)[*]) group(s)\n");
....
};
...