mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
401 lines
10 KiB
401 lines
10 KiB
Resource List Server
|
|
|
|
Anca-Maria Vamanu
|
|
|
|
voice-system.ro
|
|
|
|
Edited by
|
|
|
|
Anca-Maria Vamanu
|
|
|
|
Copyright © 2007 voice-system.ro
|
|
Revision History
|
|
Revision $Revision: 2492 $ $Date: 2007-07-20 14:04:13 +0300 (Fri, 20
|
|
Jul 2007) $
|
|
__________________________________________________________________
|
|
|
|
Table of Contents
|
|
|
|
1. Admin Guide
|
|
|
|
1. Overview
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
3. Exported Parameters
|
|
|
|
3.1. db_url(str)
|
|
3.2. xcap_table(str)
|
|
3.3. rlsubs_table(str)
|
|
3.4. rlpres_table(str)
|
|
3.5. clean_period (int)
|
|
3.6. waitn_time (int)
|
|
3.7. max_expires (int)
|
|
3.8. hash_size (int)
|
|
3.9. xcap_root (str)
|
|
3.10. integrated_xcap_server (int)
|
|
3.11. to_presence_code (int)
|
|
3.12. rls_event (str)
|
|
3.13. outbound_proxy (str)
|
|
3.14. server_address (str)
|
|
|
|
4. Exported Functions
|
|
|
|
4.1. rls_handle_subscribe()
|
|
4.2. rls_handle_notify()
|
|
|
|
5. Installation
|
|
|
|
2. Developer Guide
|
|
|
|
List of Examples
|
|
|
|
1.1. Set db_url parameter
|
|
1.2. Set xcap_table parameter
|
|
1.3. Set rlsubs_table parameter
|
|
1.4. Set rlpres_table parameter
|
|
1.5. Set clean_period parameter
|
|
1.6. Set waitn_time parameter
|
|
1.7. Set max_expires parameter
|
|
1.8. Set hash_size parameter
|
|
1.9. Set hash_size parameter
|
|
1.10. Set integrated_xcap_server parameter
|
|
1.11. Set to_presence_code parameter
|
|
1.12. Set rls_event parameter
|
|
1.13. Set outbound_proxy parameter
|
|
1.14. Set server_address parameter
|
|
1.15. rls_handle_subscribe usage
|
|
1.16. rls_handle_notify usage
|
|
|
|
Chapter 1. Admin Guide
|
|
|
|
Table of Contents
|
|
|
|
1. Overview
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
3. Exported Parameters
|
|
|
|
3.1. db_url(str)
|
|
3.2. xcap_table(str)
|
|
3.3. rlsubs_table(str)
|
|
3.4. rlpres_table(str)
|
|
3.5. clean_period (int)
|
|
3.6. waitn_time (int)
|
|
3.7. max_expires (int)
|
|
3.8. hash_size (int)
|
|
3.9. xcap_root (str)
|
|
3.10. integrated_xcap_server (int)
|
|
3.11. to_presence_code (int)
|
|
3.12. rls_event (str)
|
|
3.13. outbound_proxy (str)
|
|
3.14. server_address (str)
|
|
|
|
4. Exported Functions
|
|
|
|
4.1. rls_handle_subscribe()
|
|
4.2. rls_handle_notify()
|
|
|
|
5. Installation
|
|
|
|
1. Overview
|
|
|
|
The modules is a Resource List Server implementation following the
|
|
specification in RFC 4662 and RFC 4826.
|
|
|
|
The server is independent from local presence servers, retrieving
|
|
presence information with Subscribe-Notify messages.
|
|
|
|
The module uses the presence module as a library, as it requires a
|
|
resembling mechanism for handling Subscribe. Therefore, in case the
|
|
local presence server is not collocated on the same machine with the RL
|
|
server, the presence module should be loaded in a library mode only
|
|
(see doc for presence module).
|
|
|
|
It handles subscription to lists in an event independent way.The
|
|
default event is presence, but if some other events are to be handled
|
|
by the server, they should be added using the module parameter
|
|
"rls_events".
|
|
|
|
It works with XCAP server for storage. There is also the possibility to
|
|
configure it to work in an integrated_xcap server mode, when it only
|
|
queries database for the resource lists documents. This is useful in a
|
|
small architecture when all the clients use an integrated server and
|
|
there are no references to exterior documents in their lists.
|
|
|
|
The same as presence module, it has a caching mode with periodical
|
|
update in database for subscribe information. The information retrieved
|
|
with Notify messages is stored in database only.
|
|
|
|
2. Dependencies
|
|
|
|
2.1. Kamailio Modules
|
|
2.2. External Libraries or Applications
|
|
|
|
2.1. Kamailio Modules
|
|
|
|
The following modules must be loaded before this module:
|
|
* a database module.
|
|
* sl.
|
|
* tm.
|
|
* presence- in a library mode.
|
|
* pua.
|
|
|
|
2.2. External Libraries or Applications
|
|
|
|
* libxml.
|
|
|
|
3. Exported Parameters
|
|
|
|
3.1. db_url(str)
|
|
3.2. xcap_table(str)
|
|
3.3. rlsubs_table(str)
|
|
3.4. rlpres_table(str)
|
|
3.5. clean_period (int)
|
|
3.6. waitn_time (int)
|
|
3.7. max_expires (int)
|
|
3.8. hash_size (int)
|
|
3.9. xcap_root (str)
|
|
3.10. integrated_xcap_server (int)
|
|
3.11. to_presence_code (int)
|
|
3.12. rls_event (str)
|
|
3.13. outbound_proxy (str)
|
|
3.14. server_address (str)
|
|
|
|
3.1. db_url(str)
|
|
|
|
The database url.
|
|
|
|
Default value is “mysql://openser:openserrw@localhost/openser”.
|
|
|
|
Example 1.1. Set db_url parameter
|
|
...
|
|
modparam("rls", "db_url", "dbdriver://username:password@dbhost/dbname")
|
|
...
|
|
|
|
3.2. xcap_table(str)
|
|
|
|
The name of the xcap table in which the integrated server or the
|
|
xcap_client module writes. If integrated_xcap_server parameter not set,
|
|
the name of the table must be the same as the one set for the
|
|
xcap_client module.
|
|
|
|
Default value is “xcap”.
|
|
|
|
Example 1.2. Set xcap_table parameter
|
|
...
|
|
modparam("rls", "xcap_table", "xcaps");
|
|
...
|
|
|
|
3.3. rlsubs_table(str)
|
|
|
|
The name of the db table where resource lists subscription information
|
|
is stored.
|
|
|
|
Default value is “rls_watchers”.
|
|
|
|
Example 1.3. Set rlsubs_table parameter
|
|
...
|
|
modparam("rls", "rlsubs_table", "rls_subscriptions")
|
|
...
|
|
|
|
3.4. rlpres_table(str)
|
|
|
|
The name of the db table where notified event specific information is
|
|
stored.
|
|
|
|
Default value is “rls_presentity”.
|
|
|
|
Example 1.4. Set rlpres_table parameter
|
|
...
|
|
modparam("rls", "rlpres_table", "rls_notify")
|
|
...
|
|
|
|
3.5. clean_period (int)
|
|
|
|
The period at which to check for expired information.
|
|
|
|
Default value is “100”.
|
|
|
|
Example 1.5. Set clean_period parameter
|
|
...
|
|
modparam("rls", "clean_period", 100)
|
|
...
|
|
|
|
3.6. waitn_time (int)
|
|
|
|
The timer period at which the server should attempt to send Notifies
|
|
with the updated presence state of the subscribed list or watcher
|
|
information.
|
|
|
|
Default value is “50”.
|
|
|
|
Example 1.6. Set waitn_time parameter
|
|
...
|
|
modparam("rls", "waitn_time", 10)
|
|
...
|
|
|
|
3.7. max_expires (int)
|
|
|
|
The maximum accepted expires for a subscription to a list.
|
|
|
|
Default value is “7200”.
|
|
|
|
Example 1.7. Set max_expires parameter
|
|
...
|
|
modparam("rls", "max_expires", 10800)
|
|
...
|
|
|
|
3.8. hash_size (int)
|
|
|
|
The dimension of the hash table used to store subscription to a list.
|
|
This parameter will be used as the power of 2 when computing table
|
|
size.
|
|
|
|
Default value is “9 (512)”.
|
|
|
|
Example 1.8. Set hash_size parameter
|
|
...
|
|
modparam("rls", "hash_size", 11)
|
|
...
|
|
|
|
3.9. xcap_root (str)
|
|
|
|
The address of the xcap server.
|
|
|
|
Default value is “NULL”.
|
|
|
|
Example 1.9. Set hash_size parameter
|
|
...
|
|
modparam("rls", "xcap_root", "http://192.168.2.132/xcap-root:800")
|
|
...
|
|
|
|
3.10. integrated_xcap_server (int)
|
|
|
|
This parameter should be set if only integrated xcap servers are used
|
|
to store resource lists.
|
|
|
|
Default value is “0”.
|
|
|
|
Example 1.10. Set integrated_xcap_server parameter
|
|
...
|
|
modparam("rls", "integrated_xcap_server", 1)
|
|
...
|
|
|
|
3.11. to_presence_code (int)
|
|
|
|
The code to be returned by rls_handle_subscribe function if the
|
|
processed Subscribe is not a resource list Subscribe. This code can be
|
|
used in an architecture with presence and rls servers collocated on the
|
|
same machine, to call handle_subscribe on the message causing this
|
|
code.
|
|
|
|
Default value is “0”.
|
|
|
|
Example 1.11. Set to_presence_code parameter
|
|
...
|
|
modparam("rls", "to_presence_code", 10)
|
|
...
|
|
|
|
3.12. rls_event (str)
|
|
|
|
The default event that RLS handles is presence. If some other events
|
|
should also be handled by RLS they should be added using this
|
|
parameter. It can be set more than once.
|
|
|
|
Default value is “"presence"”.
|
|
|
|
Example 1.12. Set rls_event parameter
|
|
...
|
|
modparam("rls", "rls_event", "dialog;sla")
|
|
...
|
|
|
|
3.13. outbound_proxy (str)
|
|
|
|
The SIP address where to send RLS subscriptions (outbound proxy address
|
|
as SIP URI).
|
|
|
|
Default value is “NULL”.
|
|
|
|
Example 1.13. Set outbound_proxy parameter
|
|
...
|
|
modparam("rls", "outbound_proxy", "sip:presence.kamailio.org")
|
|
...
|
|
|
|
3.14. server_address (str)
|
|
|
|
The address of the server that will be used as a contact in sent
|
|
Subscribe requests and 200 OK replies for Subscribe requests for RLS.
|
|
It is a mandatory parameter.
|
|
|
|
Example 1.14. Set server_address parameter
|
|
...
|
|
modparam("rls", "server_address", "sip:rls@ip.address.ofyour.proxy:5060")
|
|
...
|
|
|
|
4. Exported Functions
|
|
|
|
4.1. rls_handle_subscribe()
|
|
4.2. rls_handle_notify()
|
|
|
|
4.1. rls_handle_subscribe()
|
|
|
|
This function detects if a Subscribe message should be handled by RLS.
|
|
If not it replies with the configured to_presence_code. If it is, it
|
|
extracts the dialog info and sends aggregate Notify requests with
|
|
information for the list.
|
|
|
|
This function can be used from REQUEST_ROUTE.
|
|
|
|
Example 1.15. rls_handle_subscribe usage
|
|
...
|
|
For presence and rls on the same machine:
|
|
modparam("rls", "to_presence_code", 10)
|
|
|
|
if(is_method("SUBSCRIBE"))
|
|
{
|
|
$var(ret_code)= rls_handle_subscribe();
|
|
|
|
if($var(ret_code)== 10)
|
|
handle_subscribe();
|
|
|
|
t_release();
|
|
}
|
|
|
|
For rls only:
|
|
if(is_method("SUBSCRIBE"))
|
|
{
|
|
rls_handle_subscribe();
|
|
t_release();
|
|
}
|
|
|
|
...
|
|
|
|
4.2. rls_handle_notify()
|
|
|
|
This function can be used from REQUEST_ROUTE.
|
|
|
|
Example 1.16. rls_handle_notify usage
|
|
...
|
|
if(method=="NOTIFY")
|
|
rls_handle_notify();
|
|
...
|
|
|
|
5. Installation
|
|
|
|
The module requires 2 tables in Kamailio database: rls_presentity and
|
|
rls_watchers.The SQL syntax to create them can be found in
|
|
rls-create.sql script in the database directories in the
|
|
kamailio/scripts folder. You can also find the complete database
|
|
documentation on the project webpage,
|
|
http://www.kamailio.org/docs/db-tables/kamailio-db-devel.html.
|
|
|
|
Chapter 2. Developer Guide
|
|
|
|
The module provides no functions to be used in other Kamailio modules.
|