diff options
Diffstat (limited to 'main/kamailio/0001-utils-add-sqlite-support-to-kamctl-kamdbctl.patch')
-rw-r--r-- | main/kamailio/0001-utils-add-sqlite-support-to-kamctl-kamdbctl.patch | 1223 |
1 files changed, 1223 insertions, 0 deletions
diff --git a/main/kamailio/0001-utils-add-sqlite-support-to-kamctl-kamdbctl.patch b/main/kamailio/0001-utils-add-sqlite-support-to-kamctl-kamdbctl.patch new file mode 100644 index 0000000000..30525faf85 --- /dev/null +++ b/main/kamailio/0001-utils-add-sqlite-support-to-kamctl-kamdbctl.patch @@ -0,0 +1,1223 @@ +From 215a55e097c07b497747caf2a04c65cb11d783c6 Mon Sep 17 00:00:00 2001 +From: Natanael Copa <ncopa@alpinelinux.org> +Date: Thu, 26 May 2011 07:07:19 +0000 +Subject: [PATCH] utils: add sqlite support to kamctl/kamdbctl + +I basically copied the postgrersql scripts and simplified them a bit +--- + utils/kamctl/kamctl | 6 + + utils/kamctl/kamctl.sqlite | 51 +++++++++ + utils/kamctl/kamctlrc | 6 +- + utils/kamctl/kamdbctl | 13 ++ + utils/kamctl/kamdbctl.sqlite | 152 ++++++++++++++++++++++++++ + utils/kamctl/sqlite/acc-create.sql | 28 +++++ + utils/kamctl/sqlite/alias_db-create.sql | 12 ++ + utils/kamctl/sqlite/auth_db-create.sql | 15 +++ + utils/kamctl/sqlite/avpops-create.sql | 15 +++ + utils/kamctl/sqlite/carrierroute-create.sql | 42 +++++++ + utils/kamctl/sqlite/cpl-create.sql | 10 ++ + utils/kamctl/sqlite/dialog-create.sql | 29 +++++ + utils/kamctl/sqlite/dialplan-create.sql | 13 ++ + utils/kamctl/sqlite/dispatcher-create.sql | 11 ++ + utils/kamctl/sqlite/domain-create.sql | 8 ++ + utils/kamctl/sqlite/domainpolicy-create.sql | 13 ++ + utils/kamctl/sqlite/drouting-create.sql | 39 +++++++ + utils/kamctl/sqlite/group-create.sql | 19 +++ + utils/kamctl/sqlite/htable-create.sql | 9 ++ + utils/kamctl/sqlite/imc-create.sql | 19 +++ + utils/kamctl/sqlite/lcr-create.sql | 43 +++++++ + utils/kamctl/sqlite/matrix-create.sql | 9 ++ + utils/kamctl/sqlite/msilo-create.sql | 16 +++ + utils/kamctl/sqlite/mtree-create.sql | 8 ++ + utils/kamctl/sqlite/pdt-create.sql | 9 ++ + utils/kamctl/sqlite/permissions-create.sql | 21 ++++ + utils/kamctl/sqlite/presence-create.sql | 92 ++++++++++++++++ + utils/kamctl/sqlite/purple-create.sql | 9 ++ + utils/kamctl/sqlite/registrar-create.sql | 22 ++++ + utils/kamctl/sqlite/rls-create.sql | 42 +++++++ + utils/kamctl/sqlite/siptrace-create.sql | 20 ++++ + utils/kamctl/sqlite/speeddial-create.sql | 14 +++ + utils/kamctl/sqlite/standard-create.sql | 5 + + utils/kamctl/sqlite/uac-create.sql | 16 +++ + utils/kamctl/sqlite/uri_db-create.sql | 10 ++ + utils/kamctl/sqlite/userblacklist-create.sql | 21 ++++ + utils/kamctl/sqlite/usrloc-create.sql | 22 ++++ + 37 files changed, 887 insertions(+), 2 deletions(-) + create mode 100644 utils/kamctl/kamctl.sqlite + create mode 100644 utils/kamctl/kamdbctl.sqlite + create mode 100644 utils/kamctl/sqlite/acc-create.sql + create mode 100644 utils/kamctl/sqlite/alias_db-create.sql + create mode 100644 utils/kamctl/sqlite/auth_db-create.sql + create mode 100644 utils/kamctl/sqlite/avpops-create.sql + create mode 100644 utils/kamctl/sqlite/carrierroute-create.sql + create mode 100644 utils/kamctl/sqlite/cpl-create.sql + create mode 100644 utils/kamctl/sqlite/dialog-create.sql + create mode 100644 utils/kamctl/sqlite/dialplan-create.sql + create mode 100644 utils/kamctl/sqlite/dispatcher-create.sql + create mode 100644 utils/kamctl/sqlite/domain-create.sql + create mode 100644 utils/kamctl/sqlite/domainpolicy-create.sql + create mode 100644 utils/kamctl/sqlite/drouting-create.sql + create mode 100644 utils/kamctl/sqlite/group-create.sql + create mode 100644 utils/kamctl/sqlite/htable-create.sql + create mode 100644 utils/kamctl/sqlite/imc-create.sql + create mode 100644 utils/kamctl/sqlite/lcr-create.sql + create mode 100644 utils/kamctl/sqlite/matrix-create.sql + create mode 100644 utils/kamctl/sqlite/msilo-create.sql + create mode 100644 utils/kamctl/sqlite/mtree-create.sql + create mode 100644 utils/kamctl/sqlite/pdt-create.sql + create mode 100644 utils/kamctl/sqlite/permissions-create.sql + create mode 100644 utils/kamctl/sqlite/presence-create.sql + create mode 100644 utils/kamctl/sqlite/purple-create.sql + create mode 100644 utils/kamctl/sqlite/registrar-create.sql + create mode 100644 utils/kamctl/sqlite/rls-create.sql + create mode 100644 utils/kamctl/sqlite/siptrace-create.sql + create mode 100644 utils/kamctl/sqlite/speeddial-create.sql + create mode 100644 utils/kamctl/sqlite/standard-create.sql + create mode 100644 utils/kamctl/sqlite/uac-create.sql + create mode 100644 utils/kamctl/sqlite/uri_db-create.sql + create mode 100644 utils/kamctl/sqlite/userblacklist-create.sql + create mode 100644 utils/kamctl/sqlite/usrloc-create.sql + +diff --git a/utils/kamctl/kamctl b/utils/kamctl/kamctl +index 2ec550a..c548849 100755 +--- a/utils/kamctl/kamctl ++++ b/utils/kamctl/kamctl +@@ -124,6 +124,12 @@ case $DBENGINE in + DBENGINELOADED=1 + fi + ;; ++ SQLITE|sqlite) ++ if [ -f "$MYLIBDIR/kamctl.sqlite" ]; then ++ . "$MYLIBDIR/kamctl.sqlite" ++ DBENGINELOADED=1 ++ fi ++ ;; + + esac + +diff --git a/utils/kamctl/kamctl.sqlite b/utils/kamctl/kamctl.sqlite +new file mode 100644 +index 0000000..8c3eb21 +--- /dev/null ++++ b/utils/kamctl/kamctl.sqlite +@@ -0,0 +1,51 @@ ++# ++# $Id$ ++# ++# control tool for maintaining Kamailio ++# ++#=================================================================== ++ ++##### ----------------------------------------------- ##### ++### SQLITE specific variables and functions ++# ++ ++##### ----------------------------------------------- ##### ++### load SQL base ++# ++if [ -f "$MYLIBDIR/kamctl.sqlbase" ]; then ++ . "$MYLIBDIR/kamctl.sqlbase" ++else ++ echo "Cannot load SQL core functions '$MYLIBDIR/kamctl.sqlbase' - exiting ..." ++ exit -1 ++fi ++ ++DBNAME=$DB_PATH ++ ++##### ----------------------------------------------- ##### ++### binaries ++if [ -z "$SQLITE" ] ; then ++ locate_tool sqlite3 ++ if [ -z "$TOOLPATH" ] ; then ++ echo "error: 'sqlite3' tool not found: set SQLITE variable to correct tool path" ++ exit ++ fi ++ SQLITE="$TOOLPATH" ++fi ++ ++ ++# input: sql query, optional sqlite3 command-line params ++sqlite_query() { ++ # if password not yet queried, query it now ++ mecho "sqlite_query: $SQLITE $2 $DBNAME $1" ++ $SQLITE $2 $DBNAME "$1" ++} ++ ++# input: sql query, optional sqlite3 command-line params ++sqlite_ro_query() { ++ sqlite_query "$@" ++} ++ ++DBCMD=sqlite_query ++DBROCMD=sqlite_ro_query ++DBRAWPARAMS= ++ +diff --git a/utils/kamctl/kamctlrc b/utils/kamctl/kamctlrc +index 5e888bd..ceb6f54 100644 +--- a/utils/kamctl/kamctlrc ++++ b/utils/kamctl/kamctlrc +@@ -12,7 +12,9 @@ + ## chrooted directory + # $CHROOT_DIR="/path/to/chrooted/directory" + +-## database type: MYSQL, PGSQL, ORACLE, DB_BERKELEY, or DBTEXT, by default none is loaded ++## database type: MYSQL, PGSQL, ORACLE, DB_BERKELEY, DBTEXT, or SQLITE ++# by default none is loaded ++# + # If you want to setup a database with kamdbctl, you must at least specify + # this parameter. + # DBENGINE=MYSQL +@@ -23,7 +25,7 @@ + ## database name (for ORACLE this is TNS name) + # DBNAME=openser + +-# database path used by dbtext or db_berkeley ++# database path used by dbtext, db_berkeley or sqlite + # DB_PATH="/usr/local/etc/kamailio/dbtext" + + ## database read/write user +diff --git a/utils/kamctl/kamdbctl b/utils/kamctl/kamdbctl +index c04bebd..d60f10f 100755 +--- a/utils/kamctl/kamdbctl ++++ b/utils/kamctl/kamdbctl +@@ -108,6 +108,15 @@ case $DBENGINE in + merr "could not load the script in $MYLIBDIR/kamdbctl.db_berkeley for database engine $DBENGINE" + fi + ;; ++ SQLITE|sqlite) ++ if [ -f "$MYLIBDIR/kamdbctl.sqlite" ]; then ++ . "$MYLIBDIR/kamdbctl.sqlite" ++ USED_DBENGINE="sqlite" ++ DBNAME=$DB_PATH ++ else ++ merr "could not load the script in $MYLIBDIR/kamdbctl.sqlite for database engine $DBENGINE" ++ fi ++ ;; + esac + + if [ -z "$USED_DBENGINE" ] ; then +@@ -194,6 +203,10 @@ case $1 in + usage + exit 1 + fi ++ if [ "$USED_DBENGINE" = "sqlite" ]; then ++ cp $DB_PATH $1 ++ exit $? ++ fi + tmp_file=`mktemp /tmp/kamdbctl.XXXXXXXXXX` || exit 1 + openser_dump $DBNAME $tmp_file + ret=$? +diff --git a/utils/kamctl/kamdbctl.sqlite b/utils/kamctl/kamdbctl.sqlite +new file mode 100644 +index 0000000..ecb51aa +--- /dev/null ++++ b/utils/kamctl/kamdbctl.sqlite +@@ -0,0 +1,152 @@ ++# $Id$ ++# ++# Script for adding and dropping Kamailio sqlite tables ++# ++ ++# path to the database schemas ++DATA_DIR="/usr/local/share/kamailio" ++if [ -d "$DATA_DIR/sqlite" ] ; then ++ DB_SCHEMA="$DATA_DIR/sqlite" ++else ++ DB_SCHEMA="./sqlite" ++fi ++ ++################################################################# ++# config vars ++################################################################# ++ ++CMD="sqlite3" ++DUMP_CMD="sql_dump" ++################################################################# ++ ++sql_dump() ++{ ++ $CMD ${1:-$DB_PATH} .dump ++} ++ ++# execute sql command with optional db name ++sql_query() ++{ ++ $CMD "$@" ++} ++ ++ ++openser_drop() # pars: <database name> ++{ ++if [ $# -ne 1 ] ; then ++ merr "openser_drop function takes one param" ++ exit 1 ++fi ++ ++if ! rm $1; then ++ merr "Dropping database $1 failed!" ++ exit 1 ++fi ++ ++minfo "Database $1 dropped" ++} #openser_drop ++ ++ ++openser_create () # pars: <database name> ++{ ++if [ $# -ne 1 ] ; then ++ merr "openser_create function takes one param" ++ exit 1 ++fi ++ ++minfo "creating database $1 ..." ++ ++if [ $? -ne 0 ] ; then ++ merr "Creating database failed!" ++ exit 1 ++fi ++ ++#sql_query "$1" "CREATE FUNCTION "concat" (text,text) RETURNS text AS 'SELECT \$1 || \$2;' LANGUAGE 'sql'; ++# CREATE FUNCTION "rand" () RETURNS double precision AS 'SELECT random();' LANGUAGE 'sql';" ++# emulate mysql proprietary functions used by the lcr module in postgresql ++ ++#if [ $? -ne 0 ] ; then ++# merr "Creating mysql emulation functions failed!" ++# exit 1 ++#fi ++ ++for TABLE in $STANDARD_MODULES; do ++ mdbg "Creating core table: $TABLE" ++ sql_query "$1" < $DB_SCHEMA/$TABLE-create.sql ++ if [ $? -ne 0 ] ; then ++ merr "Creating core tables failed!" ++ exit 1 ++ fi ++done ++ ++if [ -e $DB_SCHEMA/extensions-create.sql ] ++then ++ minfo "Creating custom extensions tables" ++ sql_query $1 < $DB_SCHEMA/extensions-create.sql ++ if [ $? -ne 0 ] ; then ++ merr "Creating custom extensions tables failed!" ++ exit 1 ++ fi ++fi ++ ++minfo "Core Kamailio tables succesfully created." ++ ++get_answer $INSTALL_PRESENCE_TABLES "Install presence related tables? (y/n): " ++if [ "$ANSWER" = "y" ]; then ++ presence_create $1 ++fi ++ ++get_answer $INSTALL_EXTRA_TABLES "Install tables for $EXTRA_MODULES? (y/n): " ++if [ "$ANSWER" = "y" ]; then ++ extra_create $1 ++fi ++} # openser_create ++ ++ ++presence_create () # pars: <database name> ++{ ++if [ $# -ne 1 ] ; then ++ merr "presence_create function takes one param" ++ exit 1 ++fi ++ ++minfo "creating presence tables into $1 ..." ++ ++sql_query "$1" < $DB_SCHEMA/presence-create.sql ++ ++if [ $? -ne 0 ] ; then ++ merr "Failed to create presence tables!" ++ exit 1 ++fi ++ ++sql_query "$1" < $DB_SCHEMA/rls-create.sql ++ ++if [ $? -ne 0 ] ; then ++ merr "Failed to create rls-presence tables!" ++ exit 1 ++fi ++ ++minfo "Presence tables succesfully created." ++} # end presence_create ++ ++ ++extra_create () # pars: <database name> ++{ ++if [ $# -ne 1 ] ; then ++ merr "extra_create function takes one param" ++ exit 1 ++fi ++ ++minfo "creating extra tables into $1 ..." ++ ++for TABLE in $EXTRA_MODULES; do ++ mdbg "Creating extra table: $TABLE" ++ sql_query "$1" < $DB_SCHEMA/$TABLE-create.sql ++ if [ $? -ne 0 ] ; then ++ merr "Creating extra tables failed!" ++ exit 1 ++ fi ++done ++ ++minfo "Extra tables succesfully created." ++} # end extra_create +diff --git a/utils/kamctl/sqlite/acc-create.sql b/utils/kamctl/sqlite/acc-create.sql +new file mode 100644 +index 0000000..4d23363 +--- /dev/null ++++ b/utils/kamctl/sqlite/acc-create.sql +@@ -0,0 +1,28 @@ ++INSERT INTO version (table_name, table_version) values ('acc','4'); ++CREATE TABLE acc ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ method VARCHAR(16) DEFAULT '' NOT NULL, ++ from_tag VARCHAR(64) DEFAULT '' NOT NULL, ++ to_tag VARCHAR(64) DEFAULT '' NOT NULL, ++ callid VARCHAR(64) DEFAULT '' NOT NULL, ++ sip_code VARCHAR(3) DEFAULT '' NOT NULL, ++ sip_reason VARCHAR(32) DEFAULT '' NOT NULL, ++ time TIMESTAMP WITHOUT TIME ZONE NOT NULL ++); ++ ++CREATE INDEX acc_callid_idx ON acc (callid); ++ ++INSERT INTO version (table_name, table_version) values ('missed_calls','3'); ++CREATE TABLE missed_calls ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ method VARCHAR(16) DEFAULT '' NOT NULL, ++ from_tag VARCHAR(64) DEFAULT '' NOT NULL, ++ to_tag VARCHAR(64) DEFAULT '' NOT NULL, ++ callid VARCHAR(64) DEFAULT '' NOT NULL, ++ sip_code VARCHAR(3) DEFAULT '' NOT NULL, ++ sip_reason VARCHAR(32) DEFAULT '' NOT NULL, ++ time TIMESTAMP WITHOUT TIME ZONE NOT NULL ++); ++ ++CREATE INDEX missed_calls_callid_idx ON missed_calls (callid); ++ +diff --git a/utils/kamctl/sqlite/alias_db-create.sql b/utils/kamctl/sqlite/alias_db-create.sql +new file mode 100644 +index 0000000..90656e9 +--- /dev/null ++++ b/utils/kamctl/sqlite/alias_db-create.sql +@@ -0,0 +1,12 @@ ++INSERT INTO version (table_name, table_version) values ('dbaliases','1'); ++CREATE TABLE dbaliases ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ alias_username VARCHAR(64) DEFAULT '' NOT NULL, ++ alias_domain VARCHAR(64) DEFAULT '' NOT NULL, ++ username VARCHAR(64) DEFAULT '' NOT NULL, ++ domain VARCHAR(64) DEFAULT '' NOT NULL, ++ CONSTRAINT dbaliases_alias_idx UNIQUE (alias_username, alias_domain) ++); ++ ++CREATE INDEX dbaliases_target_idx ON dbaliases (username, domain); ++ +diff --git a/utils/kamctl/sqlite/auth_db-create.sql b/utils/kamctl/sqlite/auth_db-create.sql +new file mode 100644 +index 0000000..7d6d1f8 +--- /dev/null ++++ b/utils/kamctl/sqlite/auth_db-create.sql +@@ -0,0 +1,15 @@ ++INSERT INTO version (table_name, table_version) values ('subscriber','6'); ++CREATE TABLE subscriber ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ username VARCHAR(64) DEFAULT '' NOT NULL, ++ domain VARCHAR(64) DEFAULT '' NOT NULL, ++ password VARCHAR(25) DEFAULT '' NOT NULL, ++ email_address VARCHAR(64) DEFAULT '' NOT NULL, ++ ha1 VARCHAR(64) DEFAULT '' NOT NULL, ++ ha1b VARCHAR(64) DEFAULT '' NOT NULL, ++ rpid VARCHAR(64) DEFAULT NULL, ++ CONSTRAINT subscriber_account_idx UNIQUE (username, domain) ++); ++ ++CREATE INDEX subscriber_username_idx ON subscriber (username); ++ +diff --git a/utils/kamctl/sqlite/avpops-create.sql b/utils/kamctl/sqlite/avpops-create.sql +new file mode 100644 +index 0000000..007ecb5 +--- /dev/null ++++ b/utils/kamctl/sqlite/avpops-create.sql +@@ -0,0 +1,15 @@ ++INSERT INTO version (table_name, table_version) values ('usr_preferences','2'); ++CREATE TABLE usr_preferences ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ uuid VARCHAR(64) DEFAULT '' NOT NULL, ++ username VARCHAR(128) DEFAULT 0 NOT NULL, ++ domain VARCHAR(64) DEFAULT '' NOT NULL, ++ attribute VARCHAR(32) DEFAULT '' NOT NULL, ++ type INTEGER DEFAULT 0 NOT NULL, ++ value VARCHAR(128) DEFAULT '' NOT NULL, ++ last_modified TIMESTAMP WITHOUT TIME ZONE DEFAULT '1900-01-01 00:00:01' NOT NULL ++); ++ ++CREATE INDEX usr_preferences_ua_idx ON usr_preferences (uuid, attribute); ++CREATE INDEX usr_preferences_uda_idx ON usr_preferences (username, domain, attribute); ++ +diff --git a/utils/kamctl/sqlite/carrierroute-create.sql b/utils/kamctl/sqlite/carrierroute-create.sql +new file mode 100644 +index 0000000..baafbee +--- /dev/null ++++ b/utils/kamctl/sqlite/carrierroute-create.sql +@@ -0,0 +1,42 @@ ++INSERT INTO version (table_name, table_version) values ('carrierroute','3'); ++CREATE TABLE carrierroute ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ carrier INTEGER DEFAULT 0 NOT NULL, ++ domain INTEGER DEFAULT 0 NOT NULL, ++ scan_prefix VARCHAR(64) DEFAULT '' NOT NULL, ++ flags INTEGER DEFAULT 0 NOT NULL, ++ mask INTEGER DEFAULT 0 NOT NULL, ++ prob REAL DEFAULT 0 NOT NULL, ++ strip INTEGER DEFAULT 0 NOT NULL, ++ rewrite_host VARCHAR(128) DEFAULT '' NOT NULL, ++ rewrite_prefix VARCHAR(64) DEFAULT '' NOT NULL, ++ rewrite_suffix VARCHAR(64) DEFAULT '' NOT NULL, ++ description VARCHAR(255) DEFAULT NULL ++); ++ ++INSERT INTO version (table_name, table_version) values ('carrierfailureroute','2'); ++CREATE TABLE carrierfailureroute ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ carrier INTEGER DEFAULT 0 NOT NULL, ++ domain INTEGER DEFAULT 0 NOT NULL, ++ scan_prefix VARCHAR(64) DEFAULT '' NOT NULL, ++ host_name VARCHAR(128) DEFAULT '' NOT NULL, ++ reply_code VARCHAR(3) DEFAULT '' NOT NULL, ++ flags INTEGER DEFAULT 0 NOT NULL, ++ mask INTEGER DEFAULT 0 NOT NULL, ++ next_domain INTEGER DEFAULT 0 NOT NULL, ++ description VARCHAR(255) DEFAULT NULL ++); ++ ++INSERT INTO version (table_name, table_version) values ('carrier_name','1'); ++CREATE TABLE carrier_name ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ carrier VARCHAR(64) DEFAULT NULL ++); ++ ++INSERT INTO version (table_name, table_version) values ('domain_name','1'); ++CREATE TABLE domain_name ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ domain VARCHAR(64) DEFAULT NULL ++); ++ +diff --git a/utils/kamctl/sqlite/cpl-create.sql b/utils/kamctl/sqlite/cpl-create.sql +new file mode 100644 +index 0000000..8beedf5 +--- /dev/null ++++ b/utils/kamctl/sqlite/cpl-create.sql +@@ -0,0 +1,10 @@ ++INSERT INTO version (table_name, table_version) values ('cpl','1'); ++CREATE TABLE cpl ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ username VARCHAR(64) NOT NULL, ++ domain VARCHAR(64) DEFAULT '' NOT NULL, ++ cpl_xml TEXT, ++ cpl_bin TEXT, ++ CONSTRAINT cpl_account_idx UNIQUE (username, domain) ++); ++ +diff --git a/utils/kamctl/sqlite/dialog-create.sql b/utils/kamctl/sqlite/dialog-create.sql +new file mode 100644 +index 0000000..bb086a5 +--- /dev/null ++++ b/utils/kamctl/sqlite/dialog-create.sql +@@ -0,0 +1,29 @@ ++INSERT INTO version (table_name, table_version) values ('dialog','5'); ++CREATE TABLE dialog ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ hash_entry INTEGER NOT NULL, ++ hash_id INTEGER NOT NULL, ++ callid VARCHAR(255) NOT NULL, ++ from_uri VARCHAR(128) NOT NULL, ++ from_tag VARCHAR(64) NOT NULL, ++ to_uri VARCHAR(128) NOT NULL, ++ to_tag VARCHAR(64) NOT NULL, ++ caller_cseq VARCHAR(7) NOT NULL, ++ callee_cseq VARCHAR(7) NOT NULL, ++ caller_route_set VARCHAR(512), ++ callee_route_set VARCHAR(512), ++ caller_contact VARCHAR(128) NOT NULL, ++ callee_contact VARCHAR(128) NOT NULL, ++ caller_sock VARCHAR(64) NOT NULL, ++ callee_sock VARCHAR(64) NOT NULL, ++ state INTEGER NOT NULL, ++ start_time INTEGER NOT NULL, ++ timeout INTEGER DEFAULT 0 NOT NULL, ++ sflags INTEGER DEFAULT 0 NOT NULL, ++ toroute INTEGER DEFAULT 0 NOT NULL, ++ toroute_name VARCHAR(32), ++ req_uri VARCHAR(128) NOT NULL ++); ++ ++CREATE INDEX dialog_hash_idx ON dialog (hash_entry, hash_id); ++ +diff --git a/utils/kamctl/sqlite/dialplan-create.sql b/utils/kamctl/sqlite/dialplan-create.sql +new file mode 100644 +index 0000000..1a85e50 +--- /dev/null ++++ b/utils/kamctl/sqlite/dialplan-create.sql +@@ -0,0 +1,13 @@ ++INSERT INTO version (table_name, table_version) values ('dialplan','1'); ++CREATE TABLE dialplan ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ dpid INTEGER NOT NULL, ++ pr INTEGER NOT NULL, ++ match_op INTEGER NOT NULL, ++ match_exp VARCHAR(64) NOT NULL, ++ match_len INTEGER NOT NULL, ++ subst_exp VARCHAR(64) NOT NULL, ++ repl_exp VARCHAR(32) NOT NULL, ++ attrs VARCHAR(32) NOT NULL ++); ++ +diff --git a/utils/kamctl/sqlite/dispatcher-create.sql b/utils/kamctl/sqlite/dispatcher-create.sql +new file mode 100644 +index 0000000..ec37fc4 +--- /dev/null ++++ b/utils/kamctl/sqlite/dispatcher-create.sql +@@ -0,0 +1,11 @@ ++INSERT INTO version (table_name, table_version) values ('dispatcher','4'); ++CREATE TABLE dispatcher ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ setid INTEGER DEFAULT 0 NOT NULL, ++ destination VARCHAR(192) DEFAULT '' NOT NULL, ++ flags INTEGER DEFAULT 0 NOT NULL, ++ priority INTEGER DEFAULT 0 NOT NULL, ++ attrs VARCHAR(128) DEFAULT '' NOT NULL, ++ description VARCHAR(64) DEFAULT '' NOT NULL ++); ++ +diff --git a/utils/kamctl/sqlite/domain-create.sql b/utils/kamctl/sqlite/domain-create.sql +new file mode 100644 +index 0000000..0b1fbe4 +--- /dev/null ++++ b/utils/kamctl/sqlite/domain-create.sql +@@ -0,0 +1,8 @@ ++INSERT INTO version (table_name, table_version) values ('domain','1'); ++CREATE TABLE domain ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ domain VARCHAR(64) DEFAULT '' NOT NULL, ++ last_modified TIMESTAMP WITHOUT TIME ZONE DEFAULT '1900-01-01 00:00:01' NOT NULL, ++ CONSTRAINT domain_domain_idx UNIQUE (domain) ++); ++ +diff --git a/utils/kamctl/sqlite/domainpolicy-create.sql b/utils/kamctl/sqlite/domainpolicy-create.sql +new file mode 100644 +index 0000000..c7cb279 +--- /dev/null ++++ b/utils/kamctl/sqlite/domainpolicy-create.sql +@@ -0,0 +1,13 @@ ++INSERT INTO version (table_name, table_version) values ('domainpolicy','2'); ++CREATE TABLE domainpolicy ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ rule VARCHAR(255) NOT NULL, ++ type VARCHAR(255) NOT NULL, ++ att VARCHAR(255), ++ val VARCHAR(128), ++ description VARCHAR(255) NOT NULL, ++ CONSTRAINT domainpolicy_rav_idx UNIQUE (rule, att, val) ++); ++ ++CREATE INDEX domainpolicy_rule_idx ON domainpolicy (rule); ++ +diff --git a/utils/kamctl/sqlite/drouting-create.sql b/utils/kamctl/sqlite/drouting-create.sql +new file mode 100644 +index 0000000..9c962fa +--- /dev/null ++++ b/utils/kamctl/sqlite/drouting-create.sql +@@ -0,0 +1,39 @@ ++INSERT INTO version (table_name, table_version) values ('dr_gateways','3'); ++CREATE TABLE dr_gateways ( ++ gwid INTEGER PRIMARY KEY NOT NULL, ++ type INTEGER DEFAULT 0 NOT NULL, ++ address VARCHAR(128) NOT NULL, ++ strip INTEGER DEFAULT 0 NOT NULL, ++ pri_prefix VARCHAR(64) DEFAULT NULL, ++ attrs VARCHAR(255) DEFAULT NULL, ++ description VARCHAR(128) DEFAULT '' NOT NULL ++); ++ ++INSERT INTO version (table_name, table_version) values ('dr_rules','3'); ++CREATE TABLE dr_rules ( ++ ruleid INTEGER PRIMARY KEY NOT NULL, ++ groupid VARCHAR(255) NOT NULL, ++ prefix VARCHAR(64) NOT NULL, ++ timerec VARCHAR(255) NOT NULL, ++ priority INTEGER DEFAULT 0 NOT NULL, ++ routeid VARCHAR(64) NOT NULL, ++ gwlist VARCHAR(255) NOT NULL, ++ description VARCHAR(128) DEFAULT '' NOT NULL ++); ++ ++INSERT INTO version (table_name, table_version) values ('dr_gw_lists','1'); ++CREATE TABLE dr_gw_lists ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ gwlist VARCHAR(255) NOT NULL, ++ description VARCHAR(128) DEFAULT '' NOT NULL ++); ++ ++INSERT INTO version (table_name, table_version) values ('dr_groups','2'); ++CREATE TABLE dr_groups ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ username VARCHAR(64) NOT NULL, ++ domain VARCHAR(128) DEFAULT '' NOT NULL, ++ groupid INTEGER DEFAULT 0 NOT NULL, ++ description VARCHAR(128) DEFAULT '' NOT NULL ++); ++ +diff --git a/utils/kamctl/sqlite/group-create.sql b/utils/kamctl/sqlite/group-create.sql +new file mode 100644 +index 0000000..fbd91c5 +--- /dev/null ++++ b/utils/kamctl/sqlite/group-create.sql +@@ -0,0 +1,19 @@ ++INSERT INTO version (table_name, table_version) values ('grp','2'); ++CREATE TABLE grp ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ username VARCHAR(64) DEFAULT '' NOT NULL, ++ domain VARCHAR(64) DEFAULT '' NOT NULL, ++ grp VARCHAR(64) DEFAULT '' NOT NULL, ++ last_modified TIMESTAMP WITHOUT TIME ZONE DEFAULT '1900-01-01 00:00:01' NOT NULL, ++ CONSTRAINT grp_account_group_idx UNIQUE (username, domain, grp) ++); ++ ++INSERT INTO version (table_name, table_version) values ('re_grp','1'); ++CREATE TABLE re_grp ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ reg_exp VARCHAR(128) DEFAULT '' NOT NULL, ++ group_id INTEGER DEFAULT 0 NOT NULL ++); ++ ++CREATE INDEX re_grp_group_idx ON re_grp (group_id); ++ +diff --git a/utils/kamctl/sqlite/htable-create.sql b/utils/kamctl/sqlite/htable-create.sql +new file mode 100644 +index 0000000..59fa681 +--- /dev/null ++++ b/utils/kamctl/sqlite/htable-create.sql +@@ -0,0 +1,9 @@ ++INSERT INTO version (table_name, table_version) values ('htable','1'); ++CREATE TABLE htable ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ key_name VARCHAR(64) DEFAULT '' NOT NULL, ++ key_type INTEGER DEFAULT 0 NOT NULL, ++ value_type INTEGER DEFAULT 0 NOT NULL, ++ key_value VARCHAR(128) DEFAULT '' NOT NULL ++); ++ +diff --git a/utils/kamctl/sqlite/imc-create.sql b/utils/kamctl/sqlite/imc-create.sql +new file mode 100644 +index 0000000..99d68c1 +--- /dev/null ++++ b/utils/kamctl/sqlite/imc-create.sql +@@ -0,0 +1,19 @@ ++INSERT INTO version (table_name, table_version) values ('imc_rooms','1'); ++CREATE TABLE imc_rooms ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ name VARCHAR(64) NOT NULL, ++ domain VARCHAR(64) NOT NULL, ++ flag INTEGER NOT NULL, ++ CONSTRAINT imc_rooms_name_domain_idx UNIQUE (name, domain) ++); ++ ++INSERT INTO version (table_name, table_version) values ('imc_members','1'); ++CREATE TABLE imc_members ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ username VARCHAR(64) NOT NULL, ++ domain VARCHAR(64) NOT NULL, ++ room VARCHAR(64) NOT NULL, ++ flag INTEGER NOT NULL, ++ CONSTRAINT imc_members_account_room_idx UNIQUE (username, domain, room) ++); ++ +diff --git a/utils/kamctl/sqlite/lcr-create.sql b/utils/kamctl/sqlite/lcr-create.sql +new file mode 100644 +index 0000000..bf93141 +--- /dev/null ++++ b/utils/kamctl/sqlite/lcr-create.sql +@@ -0,0 +1,43 @@ ++INSERT INTO version (table_name, table_version) values ('lcr_gw','2'); ++CREATE TABLE lcr_gw ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ lcr_id SMALLINT NOT NULL, ++ gw_name VARCHAR(128), ++ ip_addr VARCHAR(15), ++ hostname VARCHAR(64), ++ port SMALLINT, ++ params VARCHAR(64), ++ uri_scheme SMALLINT, ++ transport SMALLINT, ++ strip SMALLINT, ++ prefix VARCHAR(16) DEFAULT NULL, ++ tag VARCHAR(64) DEFAULT NULL, ++ flags INTEGER DEFAULT 0 NOT NULL, ++ defunct INTEGER DEFAULT NULL, ++ CONSTRAINT lcr_gw_lcr_id_ip_addr_port_hostname_idx UNIQUE (lcr_id, ip_addr, port, hostname) ++); ++ ++INSERT INTO version (table_name, table_version) values ('lcr_rule_target','1'); ++CREATE TABLE lcr_rule_target ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ lcr_id SMALLINT NOT NULL, ++ rule_id INTEGER NOT NULL, ++ gw_id INTEGER NOT NULL, ++ priority SMALLINT NOT NULL, ++ weight INTEGER DEFAULT 1 NOT NULL, ++ CONSTRAINT lcr_rule_target_rule_id_gw_id_idx UNIQUE (rule_id, gw_id) ++); ++ ++CREATE INDEX lcr_rule_target_lcr_id_idx ON lcr_rule_target (lcr_id); ++ ++INSERT INTO version (table_name, table_version) values ('lcr_rule','1'); ++CREATE TABLE lcr_rule ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ lcr_id SMALLINT NOT NULL, ++ prefix VARCHAR(16) DEFAULT NULL, ++ from_uri VARCHAR(64) DEFAULT NULL, ++ stopper INTEGER DEFAULT 0 NOT NULL, ++ enabled INTEGER DEFAULT 1 NOT NULL, ++ CONSTRAINT lcr_rule_lcr_id_prefix_from_uri_idx UNIQUE (lcr_id, prefix, from_uri) ++); ++ +diff --git a/utils/kamctl/sqlite/matrix-create.sql b/utils/kamctl/sqlite/matrix-create.sql +new file mode 100644 +index 0000000..50f2ed8 +--- /dev/null ++++ b/utils/kamctl/sqlite/matrix-create.sql +@@ -0,0 +1,9 @@ ++INSERT INTO version (table_name, table_version) values ('matrix','1'); ++CREATE TABLE matrix ( ++ first INTEGER NOT NULL, ++ second SMALLINT NOT NULL, ++ res INTEGER NOT NULL ++); ++ ++CREATE INDEX matrix_matrix_idx ON matrix (first, second); ++ +diff --git a/utils/kamctl/sqlite/msilo-create.sql b/utils/kamctl/sqlite/msilo-create.sql +new file mode 100644 +index 0000000..7234112 +--- /dev/null ++++ b/utils/kamctl/sqlite/msilo-create.sql +@@ -0,0 +1,16 @@ ++INSERT INTO version (table_name, table_version) values ('silo','5'); ++CREATE TABLE silo ( ++ id INTEGER 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 INTEGER DEFAULT 0 NOT NULL, ++ exp_time INTEGER DEFAULT 0 NOT NULL, ++ snd_time INTEGER DEFAULT 0 NOT NULL, ++ ctype VARCHAR(32) DEFAULT 'text/plain' NOT NULL, ++ body BYTEA DEFAULT '' NOT NULL ++); ++ ++CREATE INDEX silo_account_idx ON silo (username, domain); ++ +diff --git a/utils/kamctl/sqlite/mtree-create.sql b/utils/kamctl/sqlite/mtree-create.sql +new file mode 100644 +index 0000000..9b6f56f +--- /dev/null ++++ b/utils/kamctl/sqlite/mtree-create.sql +@@ -0,0 +1,8 @@ ++INSERT INTO version (table_name, table_version) values ('mtree','1'); ++CREATE TABLE mtree ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ tprefix VARCHAR(32) DEFAULT '' NOT NULL, ++ tvalue VARCHAR(128) DEFAULT '' NOT NULL, ++ CONSTRAINT mtree_tprefix_idx UNIQUE (tprefix) ++); ++ +diff --git a/utils/kamctl/sqlite/pdt-create.sql b/utils/kamctl/sqlite/pdt-create.sql +new file mode 100644 +index 0000000..46b517a +--- /dev/null ++++ b/utils/kamctl/sqlite/pdt-create.sql +@@ -0,0 +1,9 @@ ++INSERT INTO version (table_name, table_version) values ('pdt','1'); ++CREATE TABLE pdt ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ sdomain VARCHAR(128) NOT NULL, ++ prefix VARCHAR(32) NOT NULL, ++ domain VARCHAR(128) DEFAULT '' NOT NULL, ++ CONSTRAINT pdt_sdomain_prefix_idx UNIQUE (sdomain, prefix) ++); ++ +diff --git a/utils/kamctl/sqlite/permissions-create.sql b/utils/kamctl/sqlite/permissions-create.sql +new file mode 100644 +index 0000000..ff3ac56 +--- /dev/null ++++ b/utils/kamctl/sqlite/permissions-create.sql +@@ -0,0 +1,21 @@ ++INSERT INTO version (table_name, table_version) values ('trusted','5'); ++CREATE TABLE trusted ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ src_ip VARCHAR(50) NOT NULL, ++ proto VARCHAR(4) NOT NULL, ++ from_pattern VARCHAR(64) DEFAULT NULL, ++ tag VARCHAR(64) ++); ++ ++CREATE INDEX trusted_peer_idx ON trusted (src_ip); ++ ++INSERT INTO version (table_name, table_version) values ('address','4'); ++CREATE TABLE address ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ grp SMALLINT DEFAULT 1 NOT NULL, ++ ip_addr VARCHAR(15) NOT NULL, ++ mask SMALLINT DEFAULT 32 NOT NULL, ++ port SMALLINT DEFAULT 0 NOT NULL, ++ tag VARCHAR(64) ++); ++ +diff --git a/utils/kamctl/sqlite/presence-create.sql b/utils/kamctl/sqlite/presence-create.sql +new file mode 100644 +index 0000000..fe89b36 +--- /dev/null ++++ b/utils/kamctl/sqlite/presence-create.sql +@@ -0,0 +1,92 @@ ++INSERT INTO version (table_name, table_version) values ('presentity','3'); ++CREATE TABLE presentity ( ++ id INTEGER 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 INTEGER NOT NULL, ++ received_time INTEGER NOT NULL, ++ body BYTEA NOT NULL, ++ sender VARCHAR(128) NOT NULL, ++ CONSTRAINT presentity_presentity_idx UNIQUE (username, domain, event, etag) ++); ++ ++INSERT INTO version (table_name, table_version) values ('active_watchers','9'); ++CREATE TABLE active_watchers ( ++ id INTEGER 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(128) NOT NULL, ++ local_cseq INTEGER NOT NULL, ++ remote_cseq INTEGER NOT NULL, ++ contact VARCHAR(128) NOT NULL, ++ record_route TEXT, ++ expires INTEGER NOT NULL, ++ status INTEGER DEFAULT 2 NOT NULL, ++ reason VARCHAR(64) NOT NULL, ++ version INTEGER DEFAULT 0 NOT NULL, ++ socket_info VARCHAR(64) NOT NULL, ++ local_contact VARCHAR(128) NOT NULL, ++ CONSTRAINT active_watchers_active_watchers_idx UNIQUE (presentity_uri, callid, to_tag, from_tag) ++); ++ ++INSERT INTO version (table_name, table_version) values ('watchers','3'); ++CREATE TABLE watchers ( ++ id INTEGER 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 INTEGER NOT NULL, ++ reason VARCHAR(64), ++ inserted_time INTEGER NOT NULL, ++ CONSTRAINT watchers_watcher_idx UNIQUE (presentity_uri, watcher_username, watcher_domain, event) ++); ++ ++INSERT INTO version (table_name, table_version) values ('xcap','3'); ++CREATE TABLE xcap ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ username VARCHAR(64) NOT NULL, ++ domain VARCHAR(64) NOT NULL, ++ doc BYTEA NOT NULL, ++ doc_type INTEGER NOT NULL, ++ etag VARCHAR(64) NOT NULL, ++ source INTEGER NOT NULL, ++ doc_uri VARCHAR(128) NOT NULL, ++ port INTEGER NOT NULL, ++ CONSTRAINT xcap_account_doc_type_idx UNIQUE (username, domain, doc_type, doc_uri) ++); ++ ++CREATE INDEX xcap_source_idx ON xcap (source); ++ ++INSERT INTO version (table_name, table_version) values ('pua','6'); ++CREATE TABLE pua ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ pres_uri VARCHAR(128) NOT NULL, ++ pres_id VARCHAR(64) NOT NULL, ++ event INTEGER NOT NULL, ++ expires INTEGER NOT NULL, ++ desired_expires INTEGER NOT NULL, ++ flag INTEGER NOT NULL, ++ etag VARCHAR(64) NOT NULL, ++ tuple_id VARCHAR(64), ++ watcher_uri VARCHAR(128) NOT NULL, ++ call_id VARCHAR(128) NOT NULL, ++ to_tag VARCHAR(64) NOT NULL, ++ from_tag VARCHAR(64) NOT NULL, ++ cseq INTEGER NOT NULL, ++ record_route TEXT, ++ contact VARCHAR(128) NOT NULL, ++ remote_contact VARCHAR(128) NOT NULL, ++ version INTEGER NOT NULL, ++ extra_headers TEXT NOT NULL ++); ++ +diff --git a/utils/kamctl/sqlite/purple-create.sql b/utils/kamctl/sqlite/purple-create.sql +new file mode 100644 +index 0000000..b58c53e +--- /dev/null ++++ b/utils/kamctl/sqlite/purple-create.sql +@@ -0,0 +1,9 @@ ++INSERT INTO version (table_name, table_version) values ('purplemap','1'); ++CREATE TABLE purplemap ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ sip_user VARCHAR(128) NOT NULL, ++ ext_user VARCHAR(128) NOT NULL, ++ ext_prot VARCHAR(16) NOT NULL, ++ ext_pass VARCHAR(64) ++); ++ +diff --git a/utils/kamctl/sqlite/registrar-create.sql b/utils/kamctl/sqlite/registrar-create.sql +new file mode 100644 +index 0000000..68f2adc +--- /dev/null ++++ b/utils/kamctl/sqlite/registrar-create.sql +@@ -0,0 +1,22 @@ ++INSERT INTO version (table_name, table_version) values ('aliases','1004'); ++CREATE TABLE aliases ( ++ id INTEGER PRIMARY KEY 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 TIMESTAMP WITHOUT TIME ZONE DEFAULT '2020-05-28 21:32:15' NOT NULL, ++ q REAL DEFAULT 1.0 NOT NULL, ++ callid VARCHAR(255) DEFAULT 'Default-Call-ID' NOT NULL, ++ cseq INTEGER DEFAULT 13 NOT NULL, ++ last_modified TIMESTAMP WITHOUT TIME ZONE DEFAULT '1900-01-01 00:00:01' NOT NULL, ++ flags INTEGER DEFAULT 0 NOT NULL, ++ cflags INTEGER DEFAULT 0 NOT NULL, ++ user_agent VARCHAR(255) DEFAULT '' NOT NULL, ++ socket VARCHAR(64) DEFAULT NULL, ++ methods INTEGER DEFAULT NULL ++); ++ ++CREATE INDEX aliases_alias_idx ON aliases (username, domain, contact); ++ +diff --git a/utils/kamctl/sqlite/rls-create.sql b/utils/kamctl/sqlite/rls-create.sql +new file mode 100644 +index 0000000..b15120d +--- /dev/null ++++ b/utils/kamctl/sqlite/rls-create.sql +@@ -0,0 +1,42 @@ ++INSERT INTO version (table_name, table_version) values ('rls_presentity','0'); ++CREATE TABLE rls_presentity ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ rlsubs_did VARCHAR(255) NOT NULL, ++ resource_uri VARCHAR(128) NOT NULL, ++ content_type VARCHAR(64) NOT NULL, ++ presence_state BYTEA NOT NULL, ++ expires INTEGER NOT NULL, ++ updated INTEGER NOT NULL, ++ auth_state INTEGER NOT NULL, ++ reason VARCHAR(64) NOT NULL, ++ CONSTRAINT rls_presentity_rls_presentity_idx UNIQUE (rlsubs_did, resource_uri) ++); ++ ++CREATE INDEX rls_presentity_updated_idx ON rls_presentity (updated); ++ ++INSERT INTO version (table_name, table_version) values ('rls_watchers','1'); ++CREATE TABLE rls_watchers ( ++ id INTEGER 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(64) NOT NULL, ++ local_cseq INTEGER NOT NULL, ++ remote_cseq INTEGER NOT NULL, ++ contact VARCHAR(64) NOT NULL, ++ record_route TEXT, ++ expires INTEGER NOT NULL, ++ status INTEGER DEFAULT 2 NOT NULL, ++ reason VARCHAR(64) NOT NULL, ++ version INTEGER DEFAULT 0 NOT NULL, ++ socket_info VARCHAR(64) NOT NULL, ++ local_contact VARCHAR(128) NOT NULL, ++ CONSTRAINT rls_watchers_rls_watcher_idx UNIQUE (presentity_uri, callid, to_tag, from_tag) ++); ++ +diff --git a/utils/kamctl/sqlite/siptrace-create.sql b/utils/kamctl/sqlite/siptrace-create.sql +new file mode 100644 +index 0000000..a784d0b +--- /dev/null ++++ b/utils/kamctl/sqlite/siptrace-create.sql +@@ -0,0 +1,20 @@ ++INSERT INTO version (table_name, table_version) values ('sip_trace','2'); ++CREATE TABLE sip_trace ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ time_stamp TIMESTAMP WITHOUT TIME ZONE DEFAULT '1900-01-01 00:00:01' NOT NULL, ++ callid VARCHAR(255) DEFAULT '' NOT NULL, ++ traced_user VARCHAR(128) DEFAULT '' NOT NULL, ++ msg TEXT NOT NULL, ++ method VARCHAR(50) DEFAULT '' NOT NULL, ++ status VARCHAR(128) DEFAULT '' NOT NULL, ++ fromip VARCHAR(50) DEFAULT '' NOT NULL, ++ toip VARCHAR(50) DEFAULT '' NOT NULL, ++ fromtag VARCHAR(64) DEFAULT '' NOT NULL, ++ direction VARCHAR(4) DEFAULT '' NOT NULL ++); ++ ++CREATE INDEX sip_trace_traced_user_idx ON sip_trace (traced_user); ++CREATE INDEX sip_trace_date_idx ON sip_trace (time_stamp); ++CREATE INDEX sip_trace_fromip_idx ON sip_trace (fromip); ++CREATE INDEX sip_trace_callid_idx ON sip_trace (callid); ++ +diff --git a/utils/kamctl/sqlite/speeddial-create.sql b/utils/kamctl/sqlite/speeddial-create.sql +new file mode 100644 +index 0000000..64e1ae6 +--- /dev/null ++++ b/utils/kamctl/sqlite/speeddial-create.sql +@@ -0,0 +1,14 @@ ++INSERT INTO version (table_name, table_version) values ('speed_dial','2'); ++CREATE TABLE speed_dial ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ username VARCHAR(64) DEFAULT '' NOT NULL, ++ domain VARCHAR(64) DEFAULT '' NOT NULL, ++ sd_username VARCHAR(64) DEFAULT '' NOT NULL, ++ sd_domain VARCHAR(64) DEFAULT '' NOT NULL, ++ new_uri VARCHAR(128) DEFAULT '' NOT NULL, ++ fname VARCHAR(64) DEFAULT '' NOT NULL, ++ lname VARCHAR(64) DEFAULT '' NOT NULL, ++ description VARCHAR(64) DEFAULT '' NOT NULL, ++ CONSTRAINT speed_dial_speed_dial_idx UNIQUE (username, domain, sd_domain, sd_username) ++); ++ +diff --git a/utils/kamctl/sqlite/standard-create.sql b/utils/kamctl/sqlite/standard-create.sql +new file mode 100644 +index 0000000..0add99d +--- /dev/null ++++ b/utils/kamctl/sqlite/standard-create.sql +@@ -0,0 +1,5 @@ ++CREATE TABLE version ( ++ table_name VARCHAR(32) NOT NULL, ++ table_version INTEGER DEFAULT 0 NOT NULL ++); ++ +diff --git a/utils/kamctl/sqlite/uac-create.sql b/utils/kamctl/sqlite/uac-create.sql +new file mode 100644 +index 0000000..f0cf80d +--- /dev/null ++++ b/utils/kamctl/sqlite/uac-create.sql +@@ -0,0 +1,16 @@ ++INSERT INTO version (table_name, table_version) values ('uacreg','1'); ++CREATE TABLE uacreg ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ l_uuid VARCHAR(64) DEFAULT '' NOT NULL, ++ l_username VARCHAR(64) DEFAULT '' NOT NULL, ++ l_domain VARCHAR(128) DEFAULT '' NOT NULL, ++ r_username VARCHAR(64) DEFAULT '' NOT NULL, ++ r_domain VARCHAR(128) DEFAULT '' NOT NULL, ++ realm VARCHAR(64) DEFAULT '' NOT NULL, ++ auth_username VARCHAR(64) DEFAULT '' NOT NULL, ++ auth_password VARCHAR(64) DEFAULT '' NOT NULL, ++ auth_proxy VARCHAR(64) DEFAULT '' NOT NULL, ++ expires INTEGER DEFAULT 0 NOT NULL, ++ CONSTRAINT uacreg_l_uuid_idx UNIQUE (l_uuid) ++); ++ +diff --git a/utils/kamctl/sqlite/uri_db-create.sql b/utils/kamctl/sqlite/uri_db-create.sql +new file mode 100644 +index 0000000..8e291fc +--- /dev/null ++++ b/utils/kamctl/sqlite/uri_db-create.sql +@@ -0,0 +1,10 @@ ++INSERT INTO version (table_name, table_version) values ('uri','1'); ++CREATE TABLE uri ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ username VARCHAR(64) DEFAULT '' NOT NULL, ++ domain VARCHAR(64) DEFAULT '' NOT NULL, ++ uri_user VARCHAR(64) DEFAULT '' NOT NULL, ++ last_modified TIMESTAMP WITHOUT TIME ZONE DEFAULT '1900-01-01 00:00:01' NOT NULL, ++ CONSTRAINT uri_account_idx UNIQUE (username, domain, uri_user) ++); ++ +diff --git a/utils/kamctl/sqlite/userblacklist-create.sql b/utils/kamctl/sqlite/userblacklist-create.sql +new file mode 100644 +index 0000000..34d9eb1 +--- /dev/null ++++ b/utils/kamctl/sqlite/userblacklist-create.sql +@@ -0,0 +1,21 @@ ++INSERT INTO version (table_name, table_version) values ('userblacklist','1'); ++CREATE TABLE userblacklist ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ username VARCHAR(64) DEFAULT '' NOT NULL, ++ domain VARCHAR(64) DEFAULT '' NOT NULL, ++ prefix VARCHAR(64) DEFAULT '' NOT NULL, ++ whitelist SMALLINT DEFAULT 0 NOT NULL ++); ++ ++CREATE INDEX userblacklist_userblacklist_idx ON userblacklist (username, domain, prefix); ++ ++INSERT INTO version (table_name, table_version) values ('globalblacklist','1'); ++CREATE TABLE globalblacklist ( ++ id INTEGER PRIMARY KEY NOT NULL, ++ prefix VARCHAR(64) DEFAULT '' NOT NULL, ++ whitelist SMALLINT DEFAULT 0 NOT NULL, ++ description VARCHAR(255) DEFAULT NULL ++); ++ ++CREATE INDEX globalblacklist_globalblacklist_idx ON globalblacklist (prefix); ++ +diff --git a/utils/kamctl/sqlite/usrloc-create.sql b/utils/kamctl/sqlite/usrloc-create.sql +new file mode 100644 +index 0000000..6eb7d07 +--- /dev/null ++++ b/utils/kamctl/sqlite/usrloc-create.sql +@@ -0,0 +1,22 @@ ++INSERT INTO version (table_name, table_version) values ('location','1004'); ++CREATE TABLE location ( ++ id INTEGER PRIMARY KEY 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 TIMESTAMP WITHOUT TIME ZONE DEFAULT '2020-05-28 21:32:15' NOT NULL, ++ q REAL DEFAULT 1.0 NOT NULL, ++ callid VARCHAR(255) DEFAULT 'Default-Call-ID' NOT NULL, ++ cseq INTEGER DEFAULT 13 NOT NULL, ++ last_modified TIMESTAMP WITHOUT TIME ZONE DEFAULT '1900-01-01 00:00:01' NOT NULL, ++ flags INTEGER DEFAULT 0 NOT NULL, ++ cflags INTEGER DEFAULT 0 NOT NULL, ++ user_agent VARCHAR(255) DEFAULT '' NOT NULL, ++ socket VARCHAR(64) DEFAULT NULL, ++ methods INTEGER DEFAULT NULL ++); ++ ++CREATE INDEX location_account_contact_idx ON location (username, domain, contact); ++ +-- +1.7.4.5 + |