Standard-dep
Resource lists server is a server which allows subscriptions to lists of users. Its behaviour is defined in [rls] and [sip rls]. As described there, it uses XCAP server for storing data about lists of users. These data can be manipulated in any way by user's client software.
vaclav.kubart@iptel.org [1]>
Resource lists server is a server which allows subscriptions to lists of users. Its behaviour is defined in [rls [2]] and [sip rls [3]]. As described there, it uses XCAP server for storing data about lists of users. These data can be manipulated in any way by user's client software.
i [4]
optionaly database module (mysql, ...)
Libraries
-
libcds (internal)
-
libxcap (internal) - XCAP queries
-
libpresence (internal) - used for internal subscriptions ta PA/presence_b2b
i [5]
Resource list URI. URI which represents a list of resources instead of
a single user.
Resource list URI. URI which represents a list of resources instead of a single user.
rls [6]]. Only in short: the AOR from SIP SUBSCRIBE request is combined with XCAP root given in configuration like this:
<xcap-root>/rls-services/global/index/~~/rls-services/service[@uri=%22<AOR>%22].
This URI doesn't not specify namespaces as mentioned in definition, but this is due to problems with XCAP server used for tests (problems querying parts of documents with namespaces).
http://localhost/xcap-root [9]
user smith (sends SUBSCRIBE with smith@... in From URI)
Smith's UUID = smith
The document below for user Smith can be stored on XCAP server in http://localhost/xcap-root/resource-lists/users/smith/resource-lists.xml [10]. It contains two resource lists: “default” and “contacts”.
<?xml version="1.0" encoding="UTF-8"?>
<resource-lists
xmlns="urn:ietf:params:xml:ns:resource-lists"
>
<list name="default">
<display-name>Buddy List</display-name>
<entry uri="sip:joe@test-domain.com">
<display-name>Joe</display-name>
</entry>
<entry uri="sip:jan@test-domain.com">
<display-name>Jan</display-name>
</entry>
</list>
<list name="contacts">
<display-name>Contact List</display-name>
<entry uri="sip:alois@test-domain.com">
<display-name>Alois</display-name>
</entry>
</list>
</resource-lists>
events [11]].
Default value is 60.
Maximal subscription expiration timeout in seconds.
If client supplies value, which is more than value of max_expiration, the server shortens this value to value of this variable as described in [events [12]].
Default value is 7200.
Default subscription expiration timeout in seconds.
If client doesn't supply subscription expiration timeout this value is used.
Default value is 3761.
This variable specifies authorization type for list watchers. Value can be one of:
- none
-
All watchers are always authorized. This is not recommended because it ignores user's wish.
- implicit
-
In this case is implicit authorization done. This means, that for list URIs in the form “<username>-list@domain” is subscription allowed only for user with username <username>, rejected for others.
If the URI is not in the form presented above, the subscription is marked as pending.
Default value is empty. In this case “implict” authorization is used with an error message.
If set to 1 the module tries to do simplify XCAP queries - queries will be done for whole documents, not partial, thus the XCAP server may be simulated using standard web server. It has influence only on querying resource lists and it will work correctly only if there are no links to resource lists containg partial documents URIs (lists should be contained directly in main rls-services document).
Default value is 0.
If set to 1, RLS module stores all subscription data into database and reloads them on startup. Requires db_url to be set.
Default value is 0.
Database connection URL. It has to be specified if db_mode is set.
Default value is empty.
Max. number of notifications sent within one timer tick (experimental). It might be used to reduce SER's machine load if there are lots of changes in presence status.
Default value is 1000000. (Too high number which in praxis means unlimited.)
Interval in seconds when are processed internal notifications and sent NOTIFYs to subscribers.
Maximum number of nested lists. For example if set to 2, it it possible to use "list nested in list nested in root list".
Default value is -1 what means “unlimited”.
It is possible to use this for speedup - if you know, that you will need only “flat” lists (no nested lists), you can set this to 0. In this case RLS doesn't try to query XCAP server for “possibly netsted list URIs” and directly creates subscription to URIs in list like if they are URIs of standalone users.
Interval in seconds of timer which removes expired subscriptions.
If set to 1 and 408 response to NOTIFY arrives, the dialog is NOT destroyed like in the case of other non-2xx responses. Use for testing only. Default value is 0.
Delay in seconds of timer which triggers loading data from database after startup. This is needed due to dependencies on other modules (pa/presence_b2b) - we need that these modules will be successfully initialised before reading data from DB and querying these modules.
Default value is 3.
query_rls_services [14], query_resource_list [15]).
smith@test-domain.com [16] and To is smith-list@test-domain.com [17], the function
returns true and the subscription is handled like subscription to
"user's resource list" (not "global") as written above.
handle_rls_subscription [18].
handle_rls_subscription [19].
have_flat_list
Test if a resource list is loaded.
Function tests if a list was loaded using one of query
functions (query_resource_list [20] or query_rls_services [21]) and returns 1 if yes and -1
otherwise.
Test if a resource list is loaded.
Function tests if a list was loaded using one of query functions (query_resource_list [20] or query_rls_services [21]) and returns 1 if yes and -1 otherwise.
IETF [22] by name.
XCAP
Presence
[reg] RFC 3680 - SIP Reg Events [33].
Authorization
Resource lists
http://www.iptel.org/ser/doc/modules/rls
Links:
[1] http://www.iptel.org/mailto:vaclav.kubart@iptel.org
[2] http://www.iptel.org/rls.html#pres_draft_rls
[3] http://www.iptel.org/rls.html#pres_draft_rls_sip
[4] http://www.iptel.org/glossary#term74
[5] http://www.iptel.org/glossary#term81
[6] http://www.iptel.org/rls.html#pres_draft_rls
[7] http://www.iptel.org/glossary/term/244
[8] http://www.iptel.org/rls.html#rls.parameters
[9] http://localhost/xcap-root
[10] http://localhost/xcap-root/resource-lists/users/smith/resource-lists.xml
[11] http://www.iptel.org/rls.html#pres_rfc_events
[12] http://www.iptel.org/rls.html#pres_rfc_events
[13] http://www.iptel.org/glossary/term/244
[14] http://www.iptel.org/rls.html#query_rls_services
[15] http://www.iptel.org/rls.html#query_resource_list
[16] http://www.iptel.org/mailto:smith@test-domain.com
[17] http://www.iptel.org/mailto:smith-list@test-domain.com
[18] http://www.iptel.org/rls.html#handle_rls_subscription
[19] http://www.iptel.org/rls.html#handle_rls_subscription
[20] http://www.iptel.org/rls.html#query_resource_list
[21] http://www.iptel.org/rls.html#query_rls_services
[22] http://www.ietf.org
[23] http://tools.ietf.org/html/draft-ietf-simple-xcap-07
[24] http://www.ietf.org/internet-drafts/draft-ietf-simple-xcap-diff-01.txt
[25] http://www.ietf.org/internet-drafts/draft-ietf-sipping-config-framework-07.txt
[26] http://www.ietf.org/rfc/rfc3265.txt
[27] http://www.ietf.org/rfc/rfc3856.txt
[28] http://www.ietf.org/rfc/rfc3863.txt
[29] http://www.ietf.org/rfc/rfc4480.txt
[30] http://www.ietf.org/rfc/rfc3903.txt
[31] http://www.ietf.org/rfc/rfc3857.txt
[32] http://www.ietf.org/rfc/rfc3858.txt
[33] http://www.ietf.org/rfc/rfc3680.txt
[34] http://www.ietf.org/internet-drafts/draft-ietf-geopriv-common-policy-05.txt
[35] http://www.ietf.org/internet-drafts/draft-ietf-simple-presence-rules-03.txt
[36] http://www.ietf.org/internet-drafts/draft-ietf-simple-xcap-list-usage-05.txt
[37] http://www.ietf.org/internet-drafts/draft-ietf-simple-event-list-07.txt
[38] http://www.iptel.org/rls.html#pres_biblio