mirror of https://github.com/sipwise/db-schema.git
parent
0191a4b340
commit
bc491373e9
@ -0,0 +1,120 @@
|
||||
use kamailio
|
||||
|
||||
-- Upgrade Kamailio from v3.1.x to v3.2.0
|
||||
ALTER TABLE acc MODIFY callid VARCHAR(255) DEFAULT '' NOT NULL;
|
||||
#ALTER TABLE missed_calls MODIFY callid VARCHAR(255) DEFAULT '' NOT NULL;
|
||||
|
||||
INSERT INTO version (table_name, table_version) VALUES ('dialog_vars','1');
|
||||
CREATE TABLE dialog_vars (
|
||||
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
||||
hash_entry INT(10) UNSIGNED NOT NULL,
|
||||
hash_id INT(10) UNSIGNED NOT NULL,
|
||||
dialog_key VARCHAR(128) NOT NULL,
|
||||
dialog_value VARCHAR(512) NOT NULL
|
||||
) ENGINE=MyISAM;
|
||||
CREATE INDEX hash_idx ON dialog_vars (hash_entry, hash_id);
|
||||
|
||||
UPDATE version SET table_version=2 WHERE table_name="lcr_gw";
|
||||
#ALTER TABLE lcr_gw DROP INDEX lcr_id_ip_addr_port_hostname_idx;
|
||||
ALTER TABLE lcr_gw ADD prefix VARCHAR(16) DEFAULT NULL;
|
||||
ALTER TABLE lcr_gw MODIFY tag VARCHAR(64) DEFAULT NULL;
|
||||
CREATE INDEX lcr_id_idx ON lcr_gw (lcr_id);
|
||||
|
||||
#UPDATE version SET table_version=3 WHERE table_name="sip_trace";
|
||||
#ALTER TABLE sip_trace ADD COLUMN time_us INT UNSIGNED DEFAULT 0 NOT NULL;
|
||||
#ALTER TABLE sip_trace MODIFY msg MEDIUMTEXT NOT NULL;
|
||||
|
||||
|
||||
-- Upgrade Kamailio from v3.2.x to v3.3.0
|
||||
-- PERMISSIONS module
|
||||
ALTER TABLE address CHANGE COLUMN ip_addr ip_addr varchar(48) NOT NULL; # was varchar(15) NOT NULL
|
||||
ALTER TABLE address CHANGE COLUMN grp grp int(11) UNSIGNED NOT NULL DEFAULT '1'; # was smallint(5) UNSIGNED NOT NULL DEFAULT '1'
|
||||
ALTER TABLE address CHANGE COLUMN mask mask int(11) NOT NULL DEFAULT '32'; # was tinyint(4) NOT NULL DEFAULT '32'
|
||||
|
||||
-- DIALOG module
|
||||
DELETE FROM dialog;
|
||||
ALTER TABLE dialog CHANGE COLUMN caller_cseq caller_cseq varchar(20) NOT NULL; # was varchar(7) NOT NULL
|
||||
ALTER TABLE dialog CHANGE COLUMN callee_cseq callee_cseq varchar(20) NOT NULL; # was varchar(7) NOT NULL
|
||||
ALTER TABLE dialog DROP COLUMN toroute; # was int(10) UNSIGNED NOT NULL DEFAULT '0'
|
||||
ALTER TABLE dialog ADD COLUMN iflags int(10) UNSIGNED NOT NULL DEFAULT '0';
|
||||
ALTER TABLE dialog ADD COLUMN xdata varchar(512) DEFAULT NULL;
|
||||
|
||||
DELETE FROM dialog_vars;
|
||||
|
||||
-- LCR module
|
||||
#ALTER TABLE lcr_gw CHANGE COLUMN ip_addr ip_addr varchar(47) DEFAULT NULL; # was varchar(15) DEFAULT NULL
|
||||
#ALTER TABLE lcr_rule ADD COLUMN request_uri varchar(64) DEFAULT NULL;
|
||||
|
||||
-- USRLOC module
|
||||
DELETE FROM location;
|
||||
ALTER TABLE location ADD COLUMN ruid varchar(64) NOT NULL DEFAULT '';
|
||||
ALTER TABLE location ADD COLUMN reg_id int(11) NOT NULL DEFAULT '0';
|
||||
ALTER TABLE location ADD COLUMN instance varchar(255) DEFAULT NULL;
|
||||
|
||||
INSERT INTO version (table_name, table_version) values ('aliases','5');
|
||||
CREATE TABLE aliases (
|
||||
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
||||
ruid VARCHAR(64) DEFAULT '' NOT NULL,
|
||||
username VARCHAR(64) DEFAULT '' NOT NULL,
|
||||
domain VARCHAR(64) DEFAULT NULL,
|
||||
contact VARCHAR(255) DEFAULT '' NOT NULL,
|
||||
received VARCHAR(128) DEFAULT NULL,
|
||||
path VARCHAR(128) DEFAULT NULL,
|
||||
expires DATETIME DEFAULT '2020-05-28 21:32:15' NOT NULL,
|
||||
q FLOAT(10,2) DEFAULT 1.0 NOT NULL,
|
||||
callid VARCHAR(255) DEFAULT 'Default-Call-ID' NOT NULL,
|
||||
cseq INT(11) DEFAULT 1 NOT NULL,
|
||||
last_modified DATETIME DEFAULT '1900-01-01 00:00:01' NOT NULL,
|
||||
flags INT(11) DEFAULT 0 NOT NULL,
|
||||
cflags INT(11) DEFAULT 0 NOT NULL,
|
||||
user_agent VARCHAR(255) DEFAULT '' NOT NULL,
|
||||
socket VARCHAR(64) DEFAULT NULL,
|
||||
methods INT(11) DEFAULT NULL,
|
||||
instance VARCHAR(255) DEFAULT NULL,
|
||||
reg_id INT(11) DEFAULT 0 NOT NULL
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
#TODO: check ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes:
|
||||
#CREATE INDEX alias_idx ON aliases (username, domain, contact);
|
||||
|
||||
-- DOMAIN module
|
||||
ALTER TABLE domain CHANGE COLUMN domain domain varchar(64) NOT NULL; # was varchar(64) NOT NULL DEFAULT ''
|
||||
ALTER TABLE domain ADD COLUMN did varchar(64) DEFAULT NULL;
|
||||
|
||||
CREATE TABLE domain_attrs (
|
||||
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
did varchar(64) NOT NULL,
|
||||
name varchar(32) NOT NULL,
|
||||
type int(10) UNSIGNED NOT NULL,
|
||||
value varchar(255) NOT NULL,
|
||||
last_modified datetime NOT NULL DEFAULT '1900-01-01 00:00:01',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY domain_attrs_idx (did,name,value)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
-- PRESENCE modules
|
||||
|
||||
-- HTABLE module
|
||||
DELETE FROM version WHERE table_name='htable';
|
||||
INSERT INTO version (table_name, table_version) VALUES ('htable','2');
|
||||
CREATE TABLE htable (
|
||||
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
||||
key_name VARCHAR(64) DEFAULT '' NOT NULL,
|
||||
key_type INT DEFAULT 0 NOT NULL,
|
||||
value_type INT DEFAULT 0 NOT NULL,
|
||||
key_value VARCHAR(128) DEFAULT '' NOT NULL,
|
||||
expires INT DEFAULT 0 NOT NULL
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
-- VERSION table
|
||||
DELETE FROM version WHERE table_name='address';
|
||||
INSERT INTO version (table_name, table_version) VALUES ('address','5');
|
||||
DELETE FROM version WHERE table_name='dialog';
|
||||
INSERT INTO version (table_name, table_version) VALUES ('dialog','7');
|
||||
DELETE FROM version WHERE table_name='domain';
|
||||
INSERT INTO version (table_name, table_version) VALUES ('domain','2');
|
||||
DELETE FROM version WHERE table_name='domain_attrs';
|
||||
INSERT INTO version (table_name, table_version) VALUES ('domain_attrs','1');
|
||||
DELETE FROM version WHERE table_name='location';
|
||||
INSERT INTO version (table_name, table_version) VALUES ('location','5');
|
||||
|
||||
@ -0,0 +1,197 @@
|
||||
-- PRESENCE and RLS modules
|
||||
use kamailio
|
||||
|
||||
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)
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
CREATE INDEX presentity_expires ON presentity (expires);
|
||||
CREATE INDEX account_idx ON presentity (username, domain, event);
|
||||
|
||||
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)
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
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);
|
||||
|
||||
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)
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
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)
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
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);
|
||||
|
||||
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)
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
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);
|
||||
|
||||
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)
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
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);
|
||||
|
||||
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)
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
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);
|
||||
|
||||
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
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
CREATE INDEX account_idx ON silo (username, domain);
|
||||
|
||||
Loading…
Reference in new issue