mirror of https://github.com/sipwise/db-schema.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.
206 lines
7.8 KiB
206 lines
7.8 KiB
-- PRESENCE and RLS modules
|
|
use kamailio
|
|
|
|
DELETE FROM version WHERE table_name='presentity';
|
|
INSERT INTO version (table_name, table_version) values ('presentity','3');
|
|
DROP TABLE IF EXISTS presentity;
|
|
CREATE TABLE presentity (
|
|
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
|
username VARCHAR(64) NOT NULL,
|
|
domain VARCHAR(64) NOT NULL,
|
|
event VARCHAR(64) NOT NULL,
|
|
etag VARCHAR(64) NOT NULL,
|
|
expires INT(11) NOT NULL,
|
|
received_time INT(11) NOT NULL,
|
|
body BLOB NOT NULL,
|
|
sender VARCHAR(128) NOT NULL,
|
|
CONSTRAINT presentity_idx UNIQUE (username, domain, event, etag)
|
|
);
|
|
|
|
CREATE INDEX presentity_expires ON presentity (expires);
|
|
CREATE INDEX account_idx ON presentity (username, domain, event);
|
|
|
|
DELETE FROM version WHERE table_name='active_watchers';
|
|
INSERT INTO version (table_name, table_version) values ('active_watchers','11');
|
|
DROP TABLE IF EXISTS active_watchers;
|
|
CREATE TABLE active_watchers (
|
|
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
|
presentity_uri VARCHAR(128) NOT NULL,
|
|
watcher_username VARCHAR(64) NOT NULL,
|
|
watcher_domain VARCHAR(64) NOT NULL,
|
|
to_user VARCHAR(64) NOT NULL,
|
|
to_domain VARCHAR(64) NOT NULL,
|
|
event VARCHAR(64) DEFAULT 'presence' NOT NULL,
|
|
event_id VARCHAR(64),
|
|
to_tag VARCHAR(64) NOT NULL,
|
|
from_tag VARCHAR(64) NOT NULL,
|
|
callid VARCHAR(255) NOT NULL,
|
|
local_cseq INT(11) NOT NULL,
|
|
remote_cseq INT(11) NOT NULL,
|
|
contact VARCHAR(128) NOT NULL,
|
|
record_route TEXT,
|
|
expires INT(11) NOT NULL,
|
|
status INT(11) DEFAULT 2 NOT NULL,
|
|
reason VARCHAR(64) NOT NULL,
|
|
version INT(11) DEFAULT 0 NOT NULL,
|
|
socket_info VARCHAR(64) NOT NULL,
|
|
local_contact VARCHAR(128) NOT NULL,
|
|
from_user VARCHAR(64) NOT NULL,
|
|
from_domain VARCHAR(64) NOT NULL,
|
|
updated INT(11) NOT NULL,
|
|
updated_winfo INT(11) NOT NULL,
|
|
CONSTRAINT active_watchers_idx UNIQUE (callid, to_tag, from_tag)
|
|
) default charset=latin1; # FIXME
|
|
|
|
CREATE INDEX active_watchers_expires ON active_watchers (expires);
|
|
CREATE INDEX active_watchers_pres ON active_watchers (presentity_uri);
|
|
CREATE INDEX updated_idx ON active_watchers (updated);
|
|
CREATE INDEX updated_winfo_idx ON active_watchers (updated_winfo, presentity_uri);
|
|
|
|
DELETE FROM version WHERE table_name='watchers';
|
|
INSERT INTO version (table_name, table_version) values ('watchers','3');
|
|
DROP TABLE IF EXISTS watchers;
|
|
CREATE TABLE watchers (
|
|
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
|
presentity_uri VARCHAR(128) NOT NULL,
|
|
watcher_username VARCHAR(64) NOT NULL,
|
|
watcher_domain VARCHAR(64) NOT NULL,
|
|
event VARCHAR(64) DEFAULT 'presence' NOT NULL,
|
|
status INT(11) NOT NULL,
|
|
reason VARCHAR(64),
|
|
inserted_time INT(11) NOT NULL,
|
|
CONSTRAINT watcher_idx UNIQUE (presentity_uri, watcher_username, watcher_domain, event)
|
|
);
|
|
|
|
DELETE FROM version WHERE table_name='xcap';
|
|
INSERT INTO version (table_name, table_version) values ('xcap','4');
|
|
DROP TABLE IF EXISTS xcap;
|
|
CREATE TABLE xcap (
|
|
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
|
username VARCHAR(64) NOT NULL,
|
|
domain VARCHAR(64) NOT NULL,
|
|
doc MEDIUMBLOB NOT NULL,
|
|
doc_type INT(11) NOT NULL,
|
|
etag VARCHAR(64) NOT NULL,
|
|
source INT(11) NOT NULL,
|
|
doc_uri VARCHAR(255) NOT NULL,
|
|
port INT(11) NOT NULL,
|
|
CONSTRAINT doc_uri_idx UNIQUE (doc_uri)
|
|
) default charset=latin1; # FIXME
|
|
|
|
CREATE INDEX account_doc_type_idx ON xcap (username, domain, doc_type);
|
|
CREATE INDEX account_doc_type_uri_idx ON xcap (username, domain, doc_type, doc_uri);
|
|
CREATE INDEX account_doc_uri_idx ON xcap (username, domain, doc_uri);
|
|
|
|
DELETE FROM version WHERE table_name='pua';
|
|
INSERT INTO version (table_name, table_version) values ('pua','7');
|
|
DROP TABLE IF EXISTS pua;
|
|
CREATE TABLE pua (
|
|
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
|
pres_uri VARCHAR(128) NOT NULL,
|
|
pres_id VARCHAR(255) NOT NULL,
|
|
event INT(11) NOT NULL,
|
|
expires INT(11) NOT NULL,
|
|
desired_expires INT(11) NOT NULL,
|
|
flag INT(11) NOT NULL,
|
|
etag VARCHAR(64) NOT NULL,
|
|
tuple_id VARCHAR(64),
|
|
watcher_uri VARCHAR(128) NOT NULL,
|
|
call_id VARCHAR(255) NOT NULL,
|
|
to_tag VARCHAR(64) NOT NULL,
|
|
from_tag VARCHAR(64) NOT NULL,
|
|
cseq INT(11) NOT NULL,
|
|
record_route TEXT,
|
|
contact VARCHAR(128) NOT NULL,
|
|
remote_contact VARCHAR(128) NOT NULL,
|
|
version INT(11) NOT NULL,
|
|
extra_headers TEXT NOT NULL,
|
|
CONSTRAINT pua_idx UNIQUE (etag, tuple_id, call_id, from_tag),
|
|
CONSTRAINT expires_idx UNIQUE (expires)
|
|
) default charset=latin1; # FIXME
|
|
|
|
CREATE INDEX dialog1_idx ON pua (call_id, from_tag, to_tag);
|
|
CREATE INDEX dialog2_idx ON pua (pres_id, pres_uri);
|
|
CREATE INDEX tmp_dlg1_idx ON pua (call_id, from_tag);
|
|
CREATE INDEX tmp_dlg2_idx ON pua (pres_id, pres_uri, call_id, from_tag);
|
|
CREATE INDEX tmp_record1_idx ON pua (pres_id);
|
|
CREATE INDEX tmp_record2_idx ON pua (pres_id, etag);
|
|
|
|
DELETE FROM version WHERE table_name='rls_presentity';
|
|
INSERT INTO version (table_name, table_version) values ('rls_presentity','1');
|
|
DROP TABLE IF EXISTS rls_presentity;
|
|
CREATE TABLE rls_presentity (
|
|
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
|
rlsubs_did VARCHAR(255) NOT NULL,
|
|
resource_uri VARCHAR(128) NOT NULL,
|
|
content_type VARCHAR(255) NOT NULL,
|
|
presence_state BLOB NOT NULL,
|
|
expires INT(11) NOT NULL,
|
|
updated INT(11) NOT NULL,
|
|
auth_state INT(11) NOT NULL,
|
|
reason VARCHAR(64) NOT NULL,
|
|
CONSTRAINT rls_presentity_idx UNIQUE (rlsubs_did, resource_uri)
|
|
) default charset=latin1; # FIXME
|
|
|
|
CREATE INDEX rlsubs_idx ON rls_presentity (rlsubs_did);
|
|
CREATE INDEX updated_idx ON rls_presentity (updated);
|
|
CREATE INDEX expires_idx ON rls_presentity (expires);
|
|
|
|
DELETE FROM version WHERE table_name='rls_watchers';
|
|
INSERT INTO version (table_name, table_version) values ('rls_watchers','3');
|
|
DROP TABLE IF EXISTS rls_watchers;
|
|
CREATE TABLE rls_watchers (
|
|
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
|
presentity_uri VARCHAR(128) NOT NULL,
|
|
to_user VARCHAR(64) NOT NULL,
|
|
to_domain VARCHAR(64) NOT NULL,
|
|
watcher_username VARCHAR(64) NOT NULL,
|
|
watcher_domain VARCHAR(64) NOT NULL,
|
|
event VARCHAR(64) DEFAULT 'presence' NOT NULL,
|
|
event_id VARCHAR(64),
|
|
to_tag VARCHAR(64) NOT NULL,
|
|
from_tag VARCHAR(64) NOT NULL,
|
|
callid VARCHAR(255) NOT NULL,
|
|
local_cseq INT(11) NOT NULL,
|
|
remote_cseq INT(11) NOT NULL,
|
|
contact VARCHAR(128) NOT NULL,
|
|
record_route TEXT,
|
|
expires INT(11) NOT NULL,
|
|
status INT(11) DEFAULT 2 NOT NULL,
|
|
reason VARCHAR(64) NOT NULL,
|
|
version INT(11) DEFAULT 0 NOT NULL,
|
|
socket_info VARCHAR(64) NOT NULL,
|
|
local_contact VARCHAR(128) NOT NULL,
|
|
from_user VARCHAR(64) NOT NULL,
|
|
from_domain VARCHAR(64) NOT NULL,
|
|
updated INT(11) NOT NULL,
|
|
CONSTRAINT rls_watcher_idx UNIQUE (callid, to_tag, from_tag)
|
|
) default charset=latin1; # FIXME
|
|
|
|
CREATE INDEX rls_watchers_delete ON rls_watchers (callid, to_tag);
|
|
CREATE INDEX rls_watchers_update ON rls_watchers (watcher_username, watcher_domain, event);
|
|
CREATE INDEX rls_watchers_expires ON rls_watchers (expires);
|
|
CREATE INDEX updated_idx ON rls_watchers (updated);
|
|
|
|
DELETE FROM version WHERE table_name='silo';
|
|
INSERT INTO version (table_name, table_version) values ('silo','7');
|
|
DROP TABLE IF EXISTS silo;
|
|
CREATE TABLE silo (
|
|
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
|
src_addr VARCHAR(128) DEFAULT '' NOT NULL,
|
|
dst_addr VARCHAR(128) DEFAULT '' NOT NULL,
|
|
username VARCHAR(64) DEFAULT '' NOT NULL,
|
|
domain VARCHAR(64) DEFAULT '' NOT NULL,
|
|
inc_time INT DEFAULT 0 NOT NULL,
|
|
exp_time INT DEFAULT 0 NOT NULL,
|
|
snd_time INT DEFAULT 0 NOT NULL,
|
|
ctype VARCHAR(32) DEFAULT 'text/plain' NOT NULL,
|
|
body BLOB DEFAULT '' NOT NULL,
|
|
extra_hdrs TEXT DEFAULT '' NOT NULL,
|
|
callid VARCHAR(128) DEFAULT '' NOT NULL,
|
|
status INT DEFAULT 0 NOT NULL
|
|
);
|
|
|
|
CREATE INDEX account_idx ON silo (username, domain);
|
|
|