From 45d4aa17e301888ad891e6ef2de64ae5b960241a Mon Sep 17 00:00:00 2001 From: Sergey Safarov Date: Sat, 27 Jan 2018 18:31:20 +0000 Subject: [PATCH] db_scripts: Addeded creation of active_watchers_log table for PostgreSQL. db_scripts: Adjusted location_attrs table to store long avalue. db_scripts: KAMAILIO_SHARE_DIR and RESULTED_SQL is made configurable via enviroment vars db_scripts: DB scpectific function separated to dedicated files --- kamailio/db_scripts/create-kazoodb-sql.sh | 38 +++++------------ kamailio/db_scripts/mysql-spectific | 36 ++++++++++++++++ kamailio/db_scripts/postgres-spectific | 50 +++++++++++++++++++++++ 3 files changed, 96 insertions(+), 28 deletions(-) create mode 100644 kamailio/db_scripts/mysql-spectific create mode 100644 kamailio/db_scripts/postgres-spectific diff --git a/kamailio/db_scripts/create-kazoodb-sql.sh b/kamailio/db_scripts/create-kazoodb-sql.sh index 7b0989d..50f5f1b 100755 --- a/kamailio/db_scripts/create-kazoodb-sql.sh +++ b/kamailio/db_scripts/create-kazoodb-sql.sh @@ -1,10 +1,12 @@ #!/bin/sh -e -KAMAILIO_SHARE_DIR=/usr/share/kamailio +KAMAILIO_SHARE_DIR=${KAMAILIO_SHARE_DIR:-/usr/share/kamailio} DB_ENGINE=${DB_ENGINE:-postgres} -RESULTED_SQL=/tmp/kamailio_initdb.sql +RESULTED_SQL=${RESULTED_SQL:-/tmp/kamailio_initdb.sql} -get_sql_filelist() { +. ./$DB_ENGINE-spectific --source-only + +sql_filelist() { cat << EOF acc-create.sql lcr-create.sql @@ -48,33 +50,13 @@ uid_uri_db-create.sql EOF } -resulted_sql_header() { -cat << EOF -BEGIN TRANSACTION; -CREATE TABLE version ( - table_name VARCHAR(32) NOT NULL, - table_version INTEGER DEFAULT 0 NOT NULL, - CONSTRAINT version_table_name_idx UNIQUE (table_name) -); -INSERT INTO version VALUES('version',1); -CREATE TABLE event_list ( event varchar(25) PRIMARY KEY NOT NULL); -INSERT INTO event_list VALUES('dialog'); -INSERT INTO event_list VALUES('presence'); -INSERT INTO event_list VALUES('message-summary'); -EOF -} - -resulted_sql_footer() { -cat << EOF -COMMIT; -EOF -} - echo "Creating kamailio database init file in '$RESULTED_SQL'" -resulted_sql_header > $RESULTED_SQL -for i in $(get_sql_filelist); do +sql_db_pre_setup > $RESULTED_SQL +sql_header > $RESULTED_SQL +for i in $(sql_filelist); do cat $KAMAILIO_SHARE_DIR/$DB_ENGINE/$i >> $RESULTED_SQL done -resulted_sql_footer >> $RESULTED_SQL +sql_extra_tables >> $RESULTED_SQL +sql_footer >> $RESULTED_SQL exit 0 diff --git a/kamailio/db_scripts/mysql-spectific b/kamailio/db_scripts/mysql-spectific new file mode 100644 index 0000000..4eb2f59 --- /dev/null +++ b/kamailio/db_scripts/mysql-spectific @@ -0,0 +1,36 @@ +#!/bin/sh + +sql_db_pre_setup() { +cat << EOF +EOF +} + +sql_header() { +cat << EOF +BEGIN TRANSACTION; +CREATE TABLE version ( + table_name VARCHAR(32) NOT NULL, + table_version INTEGER DEFAULT 0 NOT NULL, + CONSTRAINT version_table_name_idx UNIQUE (table_name) +); +INSERT INTO version VALUES('version',1); +CREATE TABLE event_list ( event varchar(25) PRIMARY KEY NOT NULL); +INSERT INTO event_list VALUES('dialog'); +INSERT INTO event_list VALUES('presence'); +INSERT INTO event_list VALUES('message-summary'); +EOF +} + +sql_extra_tables() { +cat << EOF +-- Please add MySQL commnad for extra tables +-- Need to add "active_watchers_log" +EOF +} + +sql_footer() { +cat << EOF +ALTER TABLE location_attrs ALTER COLUMN avalue TYPE varchar(512); +COMMIT; +EOF +} diff --git a/kamailio/db_scripts/postgres-spectific b/kamailio/db_scripts/postgres-spectific new file mode 100644 index 0000000..833355f --- /dev/null +++ b/kamailio/db_scripts/postgres-spectific @@ -0,0 +1,50 @@ +#!/bin/sh + +sql_db_pre_setup() { +cat << EOF +EOF +} + +sql_header() { +cat << EOF +BEGIN TRANSACTION; +CREATE TABLE version ( + table_name VARCHAR(32) NOT NULL, + table_version INTEGER DEFAULT 0 NOT NULL, + CONSTRAINT version_table_name_idx UNIQUE (table_name) +); +INSERT INTO version VALUES('version',1); +CREATE TABLE event_list ( event varchar(25) PRIMARY KEY NOT NULL); +INSERT INTO event_list VALUES('dialog'); +INSERT INTO event_list VALUES('presence'); +INSERT INTO event_list VALUES('message-summary'); +EOF +} + +sql_extra_tables() { +cat << EOF +CREATE TABLE active_watchers_log ( + id SERIAL 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, + callid VARCHAR(255) NOT NULL, + time INTEGER NOT NULL, + result INTEGER NOT NULL, + sent_msg BYTEA NOT NULL, + received_msg BYTEA NOT NULL, + user_agent VARCHAR(255) DEFAULT '' NOT NULL, + CONSTRAINT active_watchers_active_watchers_log_idx UNIQUE (presentity_uri, watcher_username, watcher_domain, event) +); +EOF +} + +sql_footer() { +cat << EOF +ALTER TABLE location_attrs ALTER COLUMN avalue TYPE varchar(512); +COMMIT; +EOF +}