====== Database Tables for Presence Module ======
==== presentity ====
The table is used for storing PUBLISH messages information.
^Keys ^Type ^Actions ^Description |
|username | varchar(64) | primary | the presentity username|
|domain | varchar(128) | primary | the presentity domain |
|event | varchar(64) | primary | the only value it can take now is "presence"|
|etag | varchar(64) | primary | the generated etag value for a new PUBLISH, contained in the Sip-if-Match header field for the next PUBLISH update messages from the same dialog |
|expires | int | | the time at which the published information expires - Expires header field value + time() |
|received_time | int | | the time at which the PUBLISH request was received |
|body | text | | the xml body containing presence information|
CREATE TABLE `presentity` (
`username` varchar(64) NOT NULL,
`domain` varchar(124) NOT NULL,
`event` varchar(64) NOT NULL,
`etag` varchar(64) NOT NULL,
`expires` int(11) NOT NULL,
`received_time` int(11) NOT NULL,
`body` text NOT NULL,
PRIMARY KEY (`username`,`domain`,`event`,`etag`)
) ENGINE=MyISAM;
==== active-watchers ====
The table is used for storing the information about the dialog initiated by a Subscribe request, used for sending Notify with presence or presence.winfo information.
The to and from from the names of the columns have the same meaning as in the Subscribe message.
^Keys ^Type ^Actions ^Description |
| to_user | varchar(64) | | the presentity's username|
| to_domain| varchar(124)| | the presentity's domain |
| from_user| varchar(64) | | the subscriber's/watcher's username|
| from_domain| varchar(124)| | the watchers's domain |
| event | varchar(64) | | it can be either "presence" or "presence.winfo"|
| event_id|varchar(128)| | the Event id parameter value|
| from_tag| varchar(128)| | the tag value from the From header filed in the Subscribe message|
| to_tag| varchar(128)| | the tag value from the To header filed in the Subscribe message|
| callid| varchar(128)| | the Call-ID header field value|
| cseq | int | | the current cseq value incremented each time a Notify is sent in the same dialog|
| contact| varchar(128)| | the Contact header field value from the Subscribe message|
|record_route| varchar(255)| | the Record-Route that should be included in Notify messages|
| expires| int | |the time at which the subscription expires - Expires header field value + time() |
|staus | varchar(32)| |the subscribtions status: "active", "pending", "terminated" or "waiting"|
|version | int | |used for sending Notify for presence.winfo events ; incremented each time a new Notify is sent |
CREATE TABLE `active_watchers` (
`to_user` varchar(64) NOT NULL,
`to_domain` varchar(128) NOT NULL,
`from_user` varchar(64) NOT NULL,
`from_domain` varchar(128) NOT NULL,
`event` varchar(64) NOT NULL default 'presence',
`event_id` varchar(64),
`to_tag` varchar(128) NOT NULL,
`from_tag` varchar(128) NOT NULL,
`callid` varchar(128) NOT NULL,
`cseq` int(11) NOT NULL,
`contact` varchar(128) NOT NULL,
`record_route` varchar(255),
`expires` int(11) NOT NULL,
`status` varchar(32) NOT NULL default 'pending',
`version` int(11) default '0',
PRIMARY KEY (`from_tag`)
) ENGINE=MyISAM;
==== xcap_xml ====
The table is used for storing xcap files containing authorization information.
^Keys ^Type ^Actions ^Description |
| username | varchar(64) | primary | the presentity username|
| domain | varchar(128) | primary | the presentity domain |
| xcap | text | | the xcap file |
| doc_type | varchar(64) | primary | the type of the xml doc|
CREATE TABLE `xcap_xml` (
`username` varchar(64) NOT NULL,
`domain` varchar(128) NOT NULL,
`xcap` text NOT NULL,
`doc_type` int NOT NULL,
PRIMARY KEY (`username`,`domain`,`doc_type`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
- doc_type can have one of the following values:
1 - presence_rules;
2 - resource-list;
3 - rls-services;
==== watchers ====
This table is used for storing informations about acceptance for Subscribe messages for presence. The subscription state when sending a new notify is take from this table if it exists. Otherwise it takes a default value which is: 'pending' if the force_active parameter is set to 0 and 'active' if the parameter is not 0.
^Keys ^Type ^Actions ^Description |
|p_user | varchar(64) | primary | presentity username |
|p_domain | varchar(128) | primary | presentity domain |
|w_user | varchar(64) | primary | watcher username |
|w_domain | varchar(128) | primary | watcher domain |
|subs_status | varchar(64)| | the current subscription status |
|reason | varchar(64) | | if the status is terminated this field records the reason that lead to this |
|inserted_time | int(11)| | timestamp of insertion |
CREATE TABLE `watchers` (
`p_user` varchar(64) NOT NULL,
`p_domain` varchar(128) NOT NULL,
`w_user` varchar(64) NOT NULL,
`w_domain` varchar(128) NOT NULL,
`subs_status` varchar(64) NOT NULL,
`reason` varchar(64),
`inserted_time` int(11) NOT NULL,
PRIMARY KEY (`p_user`,`p_domain`,`w_user`,`w_domain`)
) ENGINE=MyISAM;
===== Presence-Related Stuff =====
{{indexmenu>presence|js}}