Browse Source

- ser_mysql.sh cleanup

Jan Janak 20 years ago
parent
commit
0dc5ccf91f
4 changed files with 550 additions and 838 deletions
  1. 274 0
      scripts/mysql/my_create.sql
  2. 11 0
      scripts/mysql/my_drop.sql
  3. 265 0
      scripts/mysql/ser_mysql.sh
  4. 0 838
      scripts/ser_mysql.sh

+ 274 - 0
scripts/mysql/my_create.sql

@@ -0,0 +1,274 @@
+CREATE DATABASE ser;
+USE ser;
+
+CREATE TABLE version (
+    table_name VARCHAR(32) NOT NULL,
+    table_version INT UNSIGNED NOT NULL DEFAULT '0'
+);
+
+INSERT INTO version (table_name, table_version) VALUES ('acc', '3');
+INSERT INTO version (table_name, table_version) VALUES ('missed_calls', '3');
+INSERT INTO version (table_name, table_version) VALUES ('location', '8');
+INSERT INTO version (table_name, table_version) VALUES ('credentials', '6');
+INSERT INTO version (table_name, table_version) VALUES ('domain', '2');
+INSERT INTO version (table_name, table_version) VALUES ('attr_types', '1');
+INSERT INTO version (table_name, table_version) VALUES ('global_attrs', '1');
+INSERT INTO version (table_name, table_version) VALUES ('domain_attrs', '1');
+INSERT INTO version (table_name, table_version) VALUES ('user_attrs', '3');
+INSERT INTO version (table_name, table_version) VALUES ('phonebook', '1');
+INSERT INTO version (table_name, table_version) VALUES ('silo', '3');
+INSERT INTO version (table_name, table_version) VALUES ('uri', '2');
+INSERT INTO version (table_name, table_version) VALUES ('server_monitoring', '1');
+INSERT INTO version (table_name, table_version) VALUES ('trusted', '1');
+INSERT INTO version (table_name, table_version) VALUES ('server_monitoring_agg', '1');
+INSERT INTO version (table_name, table_version) VALUES ('speed_dial', '2');
+INSERT INTO version (table_name, table_version) VALUES ('sd_attrs', '1');
+INSERT INTO version (table_name, table_version) VALUES ('gw', '2');
+INSERT INTO version (table_name, table_version) VALUES ('gw_grp', '2');
+INSERT INTO version (table_name, table_version) VALUES ('lcr', '1');
+
+CREATE TABLE acc (
+    id INT AUTO_INCREMENT NOT NULL,
+    from_uid VARCHAR(64),
+    to_uid VARCHAR(64),
+    to_did VARCHAR(64),
+    from_did VARCHAR(64),
+    sip_from VARCHAR(255),
+    sip_to VARCHAR(255),
+    sip_status VARCHAR(128),
+    sip_method VARCHAR(16),
+    in_ruri VARCHAR(255),
+    out_ruri VARCHAR(255),
+    from_uri VARCHAR(255),
+    to_uri VARCHAR(255),
+    sip_callid VARCHAR(255),
+    sip_cseq INT,
+    digest_username VARCHAR(64),
+    digest_realm VARCHAR(255),
+    from_tag VARCHAR(128),
+    to_tag VARCHAR(128),
+    src_ip INT UNSIGNED,
+    src_port SMALLINT UNSIGNED,
+    request_timestamp DATETIME NOT NULL,
+    response_timestamp DATETIME NOT NULL,
+    flags INT UNSIGNED NOT NULL DEFAULT '0',
+    attrs VARCHAR(255),
+    UNIQUE KEY id_key (id),
+    KEY cid_key (sip_callid)
+);
+
+CREATE TABLE missed_calls (
+    id INT AUTO_INCREMENT NOT NULL,
+    from_uid VARCHAR(64),
+    to_uid VARCHAR(64),
+    to_did VARCHAR(64),
+    from_did VARCHAR(64),
+    sip_from VARCHAR(255),
+    sip_to VARCHAR(255),
+    sip_status VARCHAR(128),
+    sip_method VARCHAR(16),
+    inbound_ruri VARCHAR(255),
+    outbound_ruri VARCHAR(255),
+    from_uri VARCHAR(255),
+    to_uri VARCHAR(255),
+    sip_callid VARCHAR(255),
+    sip_cseq INT,
+    digest_username VARCHAR(64),
+    digest_realm VARCHAR(255),
+    from_tag VARCHAR(128),
+    to_tag VARCHAR(128),
+    request_timestamp DATETIME NOT NULL,
+    response_timestamp DATETIME NOT NULL,
+    flags INT UNSIGNED NOT NULL DEFAULT '0',
+    attrs VARCHAR(255),
+    UNIQUE KEY id_key (id),
+    KEY cid_key (sip_callid)
+);
+
+CREATE TABLE credentials (
+    auth_username VARCHAR(64) NOT NULL,
+    realm VARCHAR(64) NOT NULL,
+    password VARCHAR(28) NOT NULL DEFAULT '',
+    flags INT NOT NULL DEFAULT '0',
+    ha1 VARCHAR(32) NOT NULL,
+    ha1b VARCHAR(32) NOT NULL DEFAULT '',
+    uid VARCHAR(64) NOT NULL,
+    UNIQUE KEY (auth_username, realm),
+    KEY uid (uid)
+);
+
+CREATE TABLE attr_types (
+    name VARCHAR(32) NOT NULL,
+    rich_type VARCHAR(32) NOT NULL DEFAULT 'string',
+    raw_type INT NOT NULL DEFAULT '2',
+    type_spec VARCHAR(255),
+    KEY upt_idx1 (name)
+);
+
+CREATE TABLE global_attrs (
+    name VARCHAR(32) NOT NULL,
+    type INT NOT NULL DEFAULT '0',
+    value VARCHAR(64),
+    flags INT UNSIGNED NOT NULL DEFAULT '0',
+    UNIQUE KEY global_attrs_idx (name, value)
+);
+
+CREATE TABLE domain_attrs (
+    did VARCHAR(64),
+    name VARCHAR(32) NOT NULL,
+    type INT NOT NULL DEFAULT '0',
+    value VARCHAR(64),
+    flags INT UNSIGNED NOT NULL DEFAULT '0',
+    UNIQUE KEY domain_attr_idx (did, name, value),
+    KEY domain_did (did, flags)
+);
+
+CREATE TABLE user_attrs (
+    uid VARCHAR(64) NOT NULL,
+    name VARCHAR(32) NOT NULL,
+    value VARCHAR(64),
+    type INT NOT NULL DEFAULT '0',
+    flags INT UNSIGNED NOT NULL DEFAULT '0',
+    UNIQUE KEY userattrs_idx (uid, name, value)
+);
+
+CREATE TABLE domain (
+    did VARCHAR(64) NOT NULL,
+    domain VARCHAR(128) NOT NULL,
+    last_modified timestamp NOT NULL,
+    flags INT UNSIGNED NOT NULL DEFAULT '0',
+    UNIQUE KEY domain_idx (did, domain)
+);
+
+CREATE TABLE location (
+    uid VARCHAR(64) NOT NULL,
+    contact VARCHAR(255) NOT NULL,
+    received VARCHAR(255),
+    expires DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00',
+    q FLOAT NOT NULL DEFAULT '1.0',
+    callid VARCHAR(255),
+    cseq INT UNSIGNED,
+    flags INT UNSIGNED NOT NULL DEFAULT '0',
+    user_agent VARCHAR(64),
+    UNIQUE KEY location_key (uid, contact),
+    KEY location_contact (contact)
+);
+
+CREATE TABLE trusted (
+    src_ip VARCHAR(39) NOT NULL,
+    proto VARCHAR(4) NOT NULL,
+    from_pattern VARCHAR(64) NOT NULL,
+    UNIQUE KEY trusted_idx (src_ip, proto, from_pattern)
+);
+
+CREATE TABLE server_monitoring (
+    time DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00',
+    id INT NOT NULL DEFAULT '0',
+    param VARCHAR(32) NOT NULL DEFAULT '',
+    value INT NOT NULL DEFAULT '0',
+    increment INT NOT NULL DEFAULT '0',
+    KEY sm_idx1 (id, param)
+);
+
+CREATE TABLE server_monitoring_agg (
+    param VARCHAR(32) NOT NULL DEFAULT '',
+    s_value INT NOT NULL DEFAULT '0',
+    s_increment INT NOT NULL DEFAULT '0',
+    last_aggregated_increment INT NOT NULL DEFAULT '0',
+    av DOUBLE NOT NULL DEFAULT '0',
+    mv INT NOT NULL DEFAULT '0',
+    ad DOUBLE NOT NULL DEFAULT '0',
+    lv INT NOT NULL DEFAULT '0',
+    min_val INT NOT NULL DEFAULT '0',
+    max_val INT NOT NULL DEFAULT '0',
+    min_inc INT NOT NULL DEFAULT '0',
+    max_inc INT NOT NULL DEFAULT '0',
+    lastupdate DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00',
+    KEY smagg_idx1 (param)
+);
+
+CREATE TABLE phonebook (
+    id INT AUTO_INCREMENT NOT NULL,
+    uid VARCHAR(64) NOT NULL,
+    fname VARCHAR(32),
+    lname VARCHAR(32),
+    sip_uri VARCHAR(255) NOT NULL,
+    UNIQUE KEY pb_idx (id),
+    KEY pb_uid (uid)
+);
+
+CREATE TABLE gw (
+    gw_name VARCHAR(128) NOT NULL,
+    ip_addr INT UNSIGNED NOT NULL,
+    port SMALLINT UNSIGNED,
+    uri_scheme TINYINT UNSIGNED,
+    transport SMALLINT UNSIGNED,
+    grp_id INT NOT NULL,
+    UNIQUE KEY gw_idx1 (gw_name),
+    KEY gw_idx2 (grp_id)
+);
+
+CREATE TABLE gw_grp (
+    grp_id INT AUTO_INCREMENT NOT NULL,
+    grp_name VARCHAR(64) NOT NULL,
+    UNIQUE KEY gwgrp_idx (grp_id)
+);
+
+CREATE TABLE lcr (
+    prefix VARCHAR(16) NOT NULL,
+    from_uri VARCHAR(255) NOT NULL DEFAULT '%',
+    grp_id INT,
+    priority INT,
+    KEY lcr_idx1 (prefix),
+    KEY lcr_idx2 (from_uri),
+    KEY lcr_idx3 (grp_id)
+);
+
+CREATE TABLE silo (
+    mid INT AUTO_INCREMENT NOT NULL,
+    src_addr VARCHAR(255) NOT NULL,
+    dst_addr VARCHAR(255) NOT NULL,
+    r_uri VARCHAR(255) NOT NULL,
+    uid VARCHAR(64) NOT NULL,
+    inc_time DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00',
+    exp_time DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00',
+    ctype VARCHAR(128) NOT NULL DEFAULT 'text/plain',
+    body BLOB NOT NULL DEFAULT '',
+    UNIQUE KEY silo_idx1 (mid)
+);
+
+CREATE TABLE uri (
+    uid VARCHAR(64) NOT NULL,
+    did VARCHAR(64) NOT NULL,
+    username VARCHAR(64) NOT NULL,
+    flags INT UNSIGNED NOT NULL DEFAULT '0',
+    UNIQUE KEY uri_idx1 (username, did, flags),
+    UNIQUE KEY uri_uid (uid, flags)
+);
+
+CREATE TABLE speed_dial (
+    id INT AUTO_INCREMENT NOT NULL,
+    uid VARCHAR(64) NOT NULL,
+    dial_username VARCHAR(64) NOT NULL,
+    dial_did VARCHAR(64) NOT NULL,
+    new_uri VARCHAR(255) NOT NULL,
+    UNIQUE KEY speeddial_idx1 (uid, dial_did, dial_username),
+    UNIQUE KEY speeddial_id (id),
+    KEY speeddial_uid (uid)
+);
+
+CREATE TABLE sd_attrs (
+    id VARCHAR(64) NOT NULL,
+    name VARCHAR(32) NOT NULL,
+    value VARCHAR(64),
+    type INT NOT NULL DEFAULT '0',
+    flags INT UNSIGNED NOT NULL DEFAULT '0',
+    UNIQUE KEY userattrs_idx (id, name, value)
+);
+
+GRANT ALL ON ser.* TO 'ser'@'%' IDENTIFIED BY 'heslo';
+GRANT ALL ON ser.* TO 'ser'@'localhost' IDENTIFIED BY 'heslo';
+FLUSH PRIVILEGES;
+GRANT SELECT ON ser.* TO 'serro'@'%' IDENTIFIED BY '47serro11';
+GRANT SELECT ON ser.* TO 'serro'@'localhost' IDENTIFIED BY '47serro11';
+FLUSH PRIVILEGES;

+ 11 - 0
scripts/mysql/my_drop.sql

@@ -0,0 +1,11 @@
+DROP DATABASE ser;
+REVOKE ALL PRIVILEGES ON ser.* FROM 'ser'@'%';
+DROP USER 'ser'@'%';
+REVOKE ALL PRIVILEGES ON ser.* FROM 'ser'@'localhost';
+DROP USER 'ser'@'localhost';
+FLUSH PRIVILEGES;
+REVOKE ALL PRIVILEGES ON ser.* FROM 'serro'@'%';
+DROP USER 'serro'@'%';
+REVOKE ALL PRIVILEGES ON ser.* FROM 'serro'@'localhost';
+DROP USER 'serro'@'localhost';
+FLUSH PRIVILEGES;

+ 265 - 0
scripts/mysql/ser_mysql.sh

@@ -0,0 +1,265 @@
+#!/bin/sh
+#
+# $Id$
+#
+# Script for adding and dropping ser MySQL tables
+#
+
+#################################################################
+# config vars
+#################################################################
+DEFAULT_DBHOST="localhost"
+DEFAULT_DBNAME="ser"
+DEFAULT_SQLUSER="root"
+
+DEFAULT_MYSQL="/usr/bin/mysql"
+DEFAULT_MYSQLDUMP="/usr/bin/mysqldump"
+
+DEFAULT_CREATE_SCRIPT="my_create.sql"
+DEFAULT_DROP_SCRIPT="my_drop.sql"
+
+CMD="$MYSQL -f -h$DBHOST -u$SQLUSER"
+
+usage() {
+cat <<EOF
+Usage: $COMMAND create 
+       $COMMAND drop   
+       $COMMAND backup [database] <file> 
+       $COMMAND restore [database] <file>
+       $COMMAND copy <source_db> <dest_db>
+   
+  Command 'create' creates database named '${DBNAME}' containing tables 
+  needed for SER and SERWeb. In addition to that two users are created, 
+  one with read/write permissions and one with read-only permissions.
+
+  Commmand 'drop' deletes database named '${DBNAME}' and associated users.
+
+  Command 'backup' Dumps the contents of the database in <file>. If no
+  database name is provided on the command line then the default '${DBNAME}'
+  database will be used.
+
+  Command 'restore' will load the datata previously saved with 'backup'
+  command in the database. If no database name is provided on the command
+  line then '${DBNAME}' database will be loaded.
+    Note: Make sure that you have no conflicting data in the database before
+          you execute 'restore' command.
+
+  Command 'copy' will copy the contents of <source_db> to database <dest_db>.
+  The destination database must not exist -- it will be created.
+    Note: The default users (ser, serro) will not have sufficient permissions
+          to access the new database.
+
+  Environment variables:
+    DBHOST    Hostname of the MySQL server (${DBHOST})
+    DBNAME    Default name of SER database (${DBNAME})
+    SQLUSER   Database username with administrator privileges (${SQLUSER})
+              (Make sure that the specified user has sufficient permissions
+               to create databases, tables, and users)
+    MYSQL     Full path to mysql command (${MYSQL})
+    MYSQLDUMP Full path to mysqldump command (${MYSQLDUMP})
+           
+Report bugs to <[email protected]>
+EOF
+} #usage
+
+
+# read password
+prompt_pw()
+{
+	savetty=`stty -g`
+	printf "Enter password for MySQL user ${SQLUSER} (hit enter for no password): "
+	stty -echo
+	read PW
+	stty $savetty
+	echo
+}
+
+# execute sql command
+sql_query()
+{
+    $CMD $PW "$@"
+}
+
+
+# Dump the contents of the database to stdout
+db_save() 
+{
+    if [ $# -ne 2 ] ; then
+	echo "ERROR: Bug in $COMMAND"
+	exit 1
+    fi
+    $DUMP_CMD -t $PW $1 > $2
+}
+
+
+# Load the contents of the database from a file
+db_load() #pars: <database name> <filename>
+{
+    if [ $# -ne 2 ] ; then
+	echo "ERROR: Bug in $COMMAND"
+	exit 1
+    fi
+    sql_query $1 < $2
+}
+
+
+# copy a database to database_bak
+db_copy() # par: <source_database> <destination_database>
+{
+	if [ $# -ne 2 ] ; then
+		echo  "ERROR: Bug in $COMMAND"
+		exit 1
+	fi
+
+	BU=/tmp/mysql_bup.$$
+	$DUMP_CMD $PW $1 > $BU
+	if [ "$?" -ne 0 ] ; then
+		echo "ERROR: Failed to copy the source database"
+		exit 1
+	fi
+	sql_query <<EOF
+	CREATE DATABASE $2;
+EOF
+
+	db_load $2 $BU
+	if [ "$?" -ne 0 ]; then
+		echo "ERROR: Failed to create the destination database (database exists or insuffucient permissions)"
+		rm -f $BU
+		exit 1
+	fi
+}
+
+
+# Drop SER database
+ser_drop()
+{
+    # Drop dabase
+    # Revoke user permissions
+
+    echo "Dropping SER database"
+    sql_query < $DROP_SCRIPT
+} #ser_drop
+
+
+# Create SER database
+ser_create ()
+{
+    echo "Creating SER database"
+    sql_query < $CREATE_SCRIPT
+} # ser_create
+
+
+
+# Main program
+
+COMMAND=`basename $0`
+
+if [ -z "$DBHOST" ]; then
+    DBHOST=$DEFAULT_DBHOST;
+fi
+
+if [ -z "$DBNAME" ]; then
+    DBNAME=$DEFAULT_DBNAME;
+fi
+
+if [ -z "$SQLUSER" ]; then
+    SQLUSER=$DEFAULT_SQLUSER;
+fi
+
+if [ -z "$MYSQL" ]; then
+    MYSQL=$DEFAULT_MYSQL;
+fi
+
+if [ -z "$MYSQLDUMP" ]; then
+    MYSQLDUMP=$DEFAULT_MYSQLDUMP;
+fi
+
+if [ -z "$CREATE_SCRIPT" ]; then
+    CREATE_SCRIPT=$DEFAULT_CREATE_SCRIPT;
+fi
+
+if [ -z "$DROP_SCRIPT" ]; then
+    DROP_SCRIPT=$DEFAULT_DROP_SCRIPT;
+fi
+
+if [ $# -eq 0 ]; then
+    usage
+    exit 1
+fi
+
+if [ ! -x $MYSQL ]; then
+    echo "ERROR: Could not execute MySQL tool $MYSQL, please set MYSQL variable"
+    echo "       Run ($COMMAND without parameters for more information)"
+    exit 1
+fi
+
+if [ ! -x $MYSQLDUMP ]; then
+    echo "ERROR: Could not execute MySQL tool $MYSQLDUMP, please set MYSQLDUMP variable"
+    echo "       (Run $COMMAND without parameters for more information"
+    exit 1
+fi
+
+CMD="$MYSQL -h$DBHOST -u$SQLUSER"
+DUMP_CMD="${MYSQLDUMP} -h$DBHOST -u$SQLUSER -c -a -e --add-locks --all"
+
+export PW
+prompt_pw
+
+if [ -z "$PW" ]; then
+    unset PW
+else
+    PW="-p$PW"
+fi
+
+case $1 in
+    create) # Create SER database and users
+	ser_create
+	exit $?
+		;;
+    
+    drop) # Drop SER database and users
+	ser_drop
+	exit $?
+	;;
+
+    backup) # backup SER database
+	shift
+	if [ $# -eq 1 ]; then
+	    db_save $DBNAME $1
+	elif [ $# -eq 2 ]; then
+	    db_save $1 $2
+	else
+	    usage
+	    exit 1
+	fi
+	exit $?
+	;;
+
+    restore) # restore SER database
+	shift
+	if [ $# -eq 1 ]; then
+	    db_load $DBNAME $1
+	elif [ $# -eq 2 ]; then
+	    db_load $1 $2
+	else
+	    usage
+	    exit 1
+	fi
+	exit $?
+	;;
+        
+    copy)
+	shift
+	if [ $# -ne 2 ]; then
+	    usage
+	    exit 1
+	fi
+	db_copy $1 $2
+	exit $?
+	;;
+    
+    *)
+	usage
+	exit 1;
+	;;
+esac

+ 0 - 838
scripts/ser_mysql.sh

@@ -1,838 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-#
-# Script for adding and dropping ser MySql tables
-#
-# TO-DO: update_structures command for migriting to new
-#        table definitons
-# USAGE: call the command without any parameters for info
-#
-# 2003-01-21 changed SILO table definition, by dcm
-#
-# History:
-# 2003-03-12 added replication mark and state columns to location (nils)
-# 2003-03-05: Changed user to username, user is reserved word (janakj)
-# 2003-01-26 statistics table introduced (jiri)
-# 2003-01-25: Optimized keys of some core tables (janakj)
-# 2003-01-25: USER_ID changed to user everywhere (janakj)
-# 2003-01-24: Changed realm column of subscriber and pending
-#             tables to domain (janakj)
-# 2003-04-14  reinstall introduced (jiri)
-# 2004-07-05  new definition of table silo (dcm)
-# 2004-07-23  added uri_scheme and transport cols to table gw (jih)
-# 2005-09-05  new tables dom_preferences, customer and new columns in table domain
-
-
-#################################################################
-# config vars
-#################################################################
-DBNAME=ser
-DBHOST=localhost
-USERNAME=ser
-DEFAULT_PW=heslo
-ROUSER=serro
-RO_PW=47serro11
-SQL_USER="root"
-CMD="mysql -h $DBHOST -u$SQL_USER "
-DUMP_CMD="mysqldump -h $DBHOST -u$SQL_USER -c -t "
-BACKUP_CMD="mysqldump -h $DBHOST -u$SQL_USER -c "
-TABLE_TYPE="TYPE=MyISAM"
-# user name column
-USERCOL="username"
-
-GENHA1='gen_ha1'
-
-FOREVER="2020-05-28 21:32:15"
-
-DEFAULT_ALIASES_EXPIRES=$FOREVER
-DEFAULT_Q="1.0"
-DEFAULT_CALLID="Default-Call-ID"
-DEFAULT_CSEQ="42"
-DEFAULT_LOCATION_EXPIRES=$FOREVER
-
-#################################################################
-
-
-usage() {
-COMMAND=`basename $0`
-cat <<EOF
-usage: $COMMAND create
-       $COMMAND drop   (!!entirely deletes tables)
-       $COMMAND reinit (!!entirely deletes and than re-creates tables
-       $COMMAND backup (dumps current database to stdout)
-	   $COMMAND restore <file> (restores tables from a file)
-       $COMMAND copy <new_db> (creates a new db from an existing one)
-       $COMMAND reinstall (updates to a new SER database)
-
-       if you want to manipulate database as other MySql user than
-       root, want to change database name from default value "$DBNAME",
-       or want to use other values for users and password, edit the
-       "config vars" section of the command $COMMAND
-
-EOF
-} #usage
-
-
-# read password
-prompt_pw()
-{
-	savetty=`stty -g`
-	printf "MySql password for $SQL_USER: "
-	stty -echo
-	read PW
-	stty $savetty
-	echo
-}
-
-# execute sql command
-sql_query()
-{
-	$CMD "-p$PW" "$@"
-}
-
-# dump all rows
-ser_dump()  # pars: <database name>
-{
-	if [ $# -ne 1 ] ; then
-		echo "ser_dump function takes one param"
-		exit 1
-	fi
-	$DUMP_CMD "-p$PW" $1
-}
-
-
-# copy a database to database_bak
-ser_backup() # par: <database name>
-{
-	if [ $# -ne 1 ] ; then
-		echo  "ser_backup function takes one param"
-		exit 1
-	fi
-	BU=/tmp/mysql_bup.$$
-	$BACKUP_CMD "-p$PW" $1 > $BU
-	if [ "$?" -ne 0 ] ; then
-		echo "ser backup dump failed"
-		exit 1
-	fi
-	sql_query <<EOF
-	create database $1_bak;
-EOF
-
-	ser_restore $1_bak $BU
-	if [ "$?" -ne 0 ]; then
-		echo "ser backup/restore failed"
-		rm $BU
-		exit 1
-	fi
-}
-
-ser_restore() #pars: <database name> <filename>
-{
-if [ $# -ne 2 ] ; then
-	echo "ser_restore function takes two params"
-	exit 1
-fi
-sql_query $1 < $2
-}
-
-ser_drop()  # pars: <database name>
-{
-if [ $# -ne 1 ] ; then
-	echo "ser_drop function takes two params"
-	exit 1
-fi
-
-sql_query << EOF
-drop database $1;
-EOF
-} #ser_drop
-
-# read realm
-prompt_realm()
-{
-	printf "Domain (realm) for the default user 'admin': "
-	read SIP_DOMAIN
-	echo
-}
-
-# calculate credentials for admin
-credentials()
-{
-	HA1=`$GENHA1 admin $SIP_DOMAIN heslo`
-	if [ $? -ne 0 ] ; then
-		echo "HA1 calculation failed"
-		exit 1
-	fi
-	HA1B=`$GENHA1 "admin@$SIP_DOMAIN" $SIP_DOMAIN heslo`
-	if [ $? -ne 0 ] ; then
-		echo "HA1B calculation failed"
-		exit 1
-	fi
-
-  #PHPLIB_ID of users should be difficulty to guess for security reasons
-  NOW=`date`;
-  PHPLIB_ID=`$GENHA1 "$RANDOM" "$NOW" $SIP_DOMAIN`
-	if [ $? -ne 0 ] ; then
-    echo "PHPLIB_ID calculation failed"
-		exit 1
-	fi
-}
-
-ser_create () # pars: <database name> [<no_init_user>]
-{
-if [ $# -eq 1 ] ; then
-	if [ -z "$SIP_DOMAIN" ] ; then
-		prompt_realm
-	fi
-	credentials
-	# by default we create initial user
-	INITIAL_USER="INSERT INTO subscriber
-		($USERCOL, password, first_name, last_name, phone,
-		email_address, datetime_created, datetime_modified, confirmation,
-    flag, sendnotification, greeting, ha1, domain, ha1b, phplib_id )
-		VALUES ( 'admin', 'heslo', 'Initial', 'Admin', '123',
-		'root@localhost', '2002-09-04 19:37:45', '0000-00-00 00:00:00',
-		'57DaSIPuCm52UNe54LF545750cfdL48OMZfroM53', 'o', '', '',
-		'$HA1', '$SIP_DOMAIN', '$HA1B',
-    '$PHPLIB_ID' );
-
-    INSERT INTO admin_privileges ($USERCOL, domain, priv_name, priv_value)
-    VALUES ('admin', '$SIP_DOMAIN', 'is_admin', '1');
-
-    INSERT INTO admin_privileges ($USERCOL, domain, priv_name, priv_value)
-    VALUES ('admin', '$SIP_DOMAIN', 'change_privileges', '1');"
-elif [ $# -eq 2 ] ; then
-	# if 3rd param set, don't create any initial user
-	INITIAL_USER=""
-else
-	echo "ser_create function takes one or two params"
-	exit 1
-fi
-
-echo "creating database $1 ..."
-
-sql_query <<EOF
-create database $1;
-use $1;
-
-# Users: ser is the regular user, serro only for reading
-GRANT ALL PRIVILEGES ON $1.* TO $USERNAME IDENTIFIED  BY '$DEFAULT_PW';
-GRANT ALL PRIVILEGES ON $1.* TO ${USERNAME}@$DBHOST IDENTIFIED BY '$DEFAULT_PW';
-GRANT SELECT ON $1.* TO $ROUSER IDENTIFIED BY '$RO_PW';
-GRANT SELECT ON $1.* TO ${ROUSER}@$DBHOST IDENTIFIED BY '$RO_PW';
-
-
-#
-# Table structure versions
-#
-
-CREATE TABLE version (
-   table_name varchar(64) NOT NULL,
-   table_version smallint(5) DEFAULT '0' NOT NULL
-) $TABLE_TYPE;
-
-#
-# Dumping data for table 'version'
-#
-
-INSERT INTO version VALUES ( 'subscriber', '5');
-INSERT INTO version VALUES ( 'phonebook', '1');
-INSERT INTO version VALUES ( 'pending', '4');
-INSERT INTO version VALUES ( 'missed_calls', '2');
-INSERT INTO version VALUES ( 'location', '7');
-INSERT INTO version VALUES ( 'grp', '2');
-INSERT INTO version VALUES ( 'aliases', '7');
-INSERT INTO version VALUES ( 'acc', '2');
-INSERT INTO version VALUES ( 'silo', '3');
-INSERT INTO version VALUES ( 'domain', '2');
-INSERT INTO version VALUES ( 'uri', '1');
-INSERT INTO version VALUES ( 'server_monitoring', '1');
-INSERT INTO version VALUES ( 'server_monitoring_agg', '1');
-INSERT INTO version VALUES ( 'trusted', '1');
-INSERT INTO version VALUES ( 'usr_preferences', '2');
-INSERT INTO version VALUES ( 'usr_preferences_types', '1');
-INSERT INTO version VALUES ( 'admin_privileges', '1');
-INSERT INTO version VALUES ( 'speed_dial', '2');
-INSERT INTO version VALUES ( 'gw', '3');
-INSERT INTO version VALUES ( 'gw_grp', '1');
-INSERT INTO version VALUES ( 'lcr', '1');
-INSERT INTO version VALUES ( 'customer', '1');
-INSERT INTO version VALUES ( 'dom_preferences', '1');
-
-#
-# Table structure for table 'acc' -- accounted calls
-#
-
-
-CREATE TABLE acc (
-  caller_UUID varchar(64) NOT NULL default '',
-  callee_UUID varchar(64) NOT NULL default '',
-  sip_from varchar(128) NOT NULL default '',
-  sip_to varchar(128) NOT NULL default '',
-  sip_status varchar(128) NOT NULL default '',
-  sip_method varchar(16) NOT NULL default '',
-  i_uri varchar(128) NOT NULL default '',
-  o_uri varchar(128) NOT NULL default '',
-  from_uri varchar(128) NOT NULL default '',
-  to_uri varchar(128) NOT NULL default '',
-  sip_callid varchar(128) NOT NULL default '',
-  $USERCOL varchar(64) NOT NULL default '',
-  domain varchar(128) NOT NULL default '',
-  fromtag varchar(128) NOT NULL default '',
-  totag varchar(128) NOT NULL default '',
-  time datetime NOT NULL default '0000-00-00 00:00:00',
-  timestamp timestamp(14) NOT NULL,
-  caller_deleted char(1) NOT NULL default '0',
-  callee_deleted char(1) NOT NULL default '0',
-  INDEX acc_user ($USERCOL, domain),
-  KEY sip_callid (sip_callid)
-) $TABLE_TYPE;
-
-#
-# Table structure for table 'aliases' -- location-like table
-# (aliases_contact index makes lookup of missed calls much faster)
-#
-
-CREATE TABLE aliases (
-  $USERCOL varchar(64) NOT NULL default '',
-  domain varchar(128) NOT NULL default '',
-  contact varchar(255) NOT NULL default '',
-  received varchar(255) default NULL,
-  expires datetime NOT NULL default '$DEFAULT_ALIASES_EXPIRES',
-  q float(10,3) NOT NULL default '$DEFAULT_Q',
-  callid varchar(255) NOT NULL default '$DEFAULT_CALLID',
-  cseq int(11) NOT NULL default '$DEFAULT_CSEQ',
-  last_modified timestamp(14) NOT NULL,
-  replicate int(10) unsigned NOT NULL default '0',
-  state tinyint(1) unsigned NOT NULL default '0',
-  flags int(11) NOT NULL default '0',
-  user_agent varchar(50) NOT NULL default '',
-  instance varchar(80) default NULL,
-  PRIMARY KEY($USERCOL, domain, contact),
-  INDEX aliases_contact (contact)
-) $TABLE_TYPE;
-
-
-#
-# Table structure for table 'grp' -- group membership
-# table; used primarily for ACLs
-#
-
-
-CREATE TABLE grp (
-  $USERCOL varchar(64) NOT NULL default '',
-  domain varchar(128) NOT NULL default '',
-  grp varchar(50) NOT NULL default '',
-  last_modified datetime NOT NULL default '0000-00-00 00:00:00',
-  PRIMARY KEY($USERCOL, domain, grp)
-) $TABLE_TYPE;
-
-
-
-
-#
-# Table structure for table 'location' -- that is persistent UsrLoc
-#
-CREATE TABLE location (
-  $USERCOL varchar(64) NOT NULL default '',
-  domain varchar(128) NOT NULL default '',
-  contact varchar(255) NOT NULL default '',
-  received varchar(255) default NULL,
-  expires datetime NOT NULL default '$DEFAULT_LOCATION_EXPIRES',
-  q float(10,3) NOT NULL default '$DEFAULT_Q',
-  callid varchar(255) NOT NULL default '$DEFAULT_CALLID',
-  cseq int(11) NOT NULL default '$DEFAULT_CSEQ',
-  last_modified timestamp(14) NOT NULL,
-  replicate int(10) unsigned NOT NULL default '0',
-  state tinyint(1) unsigned NOT NULL default '0',
-  flags int(11) NOT NULL default '0',
-  user_agent varchar(50) NOT NULL default '',
-  instance varchar(80) default NULL,
-  PRIMARY KEY($USERCOL, domain, contact)
-) $TABLE_TYPE;
-
-
-
-
-#
-# Table structure for table 'missed_calls' -- acc-like table
-# for keeping track of missed calls
-#
-
-
-CREATE TABLE missed_calls (
-  sip_from varchar(128) NOT NULL default '',
-  sip_to varchar(128) NOT NULL default '',
-  sip_status varchar(128) NOT NULL default '',
-  sip_method varchar(16) NOT NULL default '',
-  i_uri varchar(128) NOT NULL default '',
-  o_uri varchar(128) NOT NULL default '',
-  from_uri varchar(128) NOT NULL default '',
-  to_uri varchar(128) NOT NULL default '',
-  sip_callid varchar(128) NOT NULL default '',
-  $USERCOL varchar(64) NOT NULL default '',
-  domain varchar(128) NOT NULL default '',
-  fromtag varchar(128) NOT NULL default '',
-  totag varchar(128) NOT NULL default '',
-  time datetime NOT NULL default '0000-00-00 00:00:00',
-  timestamp timestamp(14) NOT NULL,
-  INDEX mc_user ($USERCOL, domain)
-) $TABLE_TYPE;
-
-
-
-
-#
-# Table structure for table 'pending' -- unconfirmed subscribtion
-# requests
-#
-
-
-CREATE TABLE pending (
-  phplib_id varchar(32) NOT NULL default '',
-  $USERCOL varchar(64) NOT NULL default '',
-  domain varchar(128) NOT NULL default '',
-  password varchar(25) NOT NULL default '',
-  first_name varchar(25) NOT NULL default '',
-  last_name varchar(45) NOT NULL default '',
-  phone varchar(15) NOT NULL default '',
-  email_address varchar(50) NOT NULL default '',
-  datetime_created datetime NOT NULL default '0000-00-00 00:00:00',
-  datetime_modified datetime NOT NULL default '0000-00-00 00:00:00',
-  confirmation varchar(64) NOT NULL default '',
-  flag char(1) NOT NULL default 'o',
-  sendnotification varchar(50) NOT NULL default '',
-  greeting varchar(50) NOT NULL default '',
-  ha1 varchar(128) NOT NULL default '',
-  ha1b varchar(128) NOT NULL default '',
-  allow_find char(1) NOT NULL default '0',
-  timezone varchar(128) default NULL,
-  rpid varchar(128) default NULL,
-  domn int(10) default NULL,
-  uuid varchar(64) default NULL,
-  PRIMARY KEY ($USERCOL, domain),
-  KEY user_2 ($USERCOL),
-  UNIQUE KEY phplib_id (phplib_id)
-) $TABLE_TYPE;
-
-
-
-
-#
-# Table structure for table 'phonebook' -- user's phonebook
-#
-
-
-CREATE TABLE phonebook (
-  id int(10) unsigned NOT NULL auto_increment,
-  $USERCOL varchar(64) NOT NULL default '',
-  domain varchar(128) NOT NULL default '',
-  fname varchar(32) NOT NULL default '',
-  lname varchar(32) NOT NULL default '',
-  sip_uri varchar(128) NOT NULL default '',
-  PRIMARY KEY  (id)
-) $TABLE_TYPE;
-
-
-#
-# Table structure for table 'subscriber' -- user database
-#
-
-
-CREATE TABLE subscriber (
-  $USERCOL varchar(64) NOT NULL default '',
-  domain varchar(128) NOT NULL default '',
-  password varchar(25) NOT NULL default '',
-  first_name varchar(25) NOT NULL default '',
-  last_name varchar(45) NOT NULL default '',
-  phone varchar(15) NOT NULL default '',
-  email_address varchar(50) NOT NULL default '',
-  datetime_created datetime NOT NULL default '0000-00-00 00:00:00',
-  datetime_modified datetime NOT NULL default '0000-00-00 00:00:00',
-  confirmation varchar(64) NOT NULL default '',
-  flag char(1) NOT NULL default 'o',
-  ha1 varchar(128) NOT NULL default '',
-  ha1b varchar(128) NOT NULL default '',
-  allow_find char(1) NOT NULL default '0',
-  timezone varchar(128) default NULL,
-  rpid varchar(128) default NULL,
-  domn int(10) default NULL,
-  uuid varchar(64) default NULL,
-  UNIQUE KEY phplib_id (phplib_id),
-  PRIMARY KEY ($USERCOL, domain),
-  KEY user_2 ($USERCOL)
-) $TABLE_TYPE;
-
-
-# "instant" message silo
-
-CREATE TABLE silo(
-    mid INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
-    src_addr VARCHAR(255) NOT NULL DEFAULT "",
-    dst_addr VARCHAR(255) NOT NULL DEFAULT "",
-    r_uri VARCHAR(255) NOT NULL DEFAULT "",
-    username VARCHAR(64) NOT NULL DEFAULT "",
-    domain VARCHAR(128) NOT NULL DEFAULT "",
-    inc_time INTEGER NOT NULL DEFAULT 0,
-    exp_time INTEGER NOT NULL DEFAULT 0,
-    ctype VARCHAR(32) NOT NULL DEFAULT "text/plain",
-    body BLOB NOT NULL DEFAULT ""
-) $TABLE_TYPE;
-
-#
-# Table structure for table 'domain' -- domains proxy is responsible for
-#
-
-CREATE TABLE domain (
-  d_id int NOT NULL,
-  domain varchar(128) NOT NULL default '',
-  last_modified datetime NOT NULL default '0000-00-00 00:00:00',
-  UNIQUE KEY domain (domain),
-  PRIMARY KEY  (d_id, domain)
-) $TABLE_TYPE;
-
-#
-# Table structure for table 'customer'
-#
-
-CREATE TABLE customer (
-  c_id int NOT NULL AUTO_INCREMENT,
-  name varchar(128) NOT NULL,
-  address varchar(255),
-  phone varchar(64),
-  email varchar(255),
-  last_modified datetime NOT NULL default '0000-00-00 00:00:00',
-  PRIMARY KEY  (c_id)
-) $TABLE_TYPE;
-
-
-#
-# Table structure for table 'uri' -- uri user parts users are allowed to use
-#
-CREATE TABLE uri (
-  $USERCOL varchar(64) NOT NULL default '',
-  domain varchar(128) NOT NULL default '',
-  uri_user varchar(50) NOT NULL default '',
-  last_modified datetime NOT NULL default '0000-00-00 00:00:00',
-  PRIMARY KEY ($USERCOL, domain, uri_user)
-) $TABLE_TYPE;
-
-#
-# Table structure for table 'server_monitoring'
-#
-
-
-DROP TABLE IF EXISTS server_monitoring;
-CREATE TABLE server_monitoring (
-  time datetime NOT NULL default '0000-00-00 00:00:00',
-  id int(10) unsigned NOT NULL default '0',
-  param varchar(32) NOT NULL default '',
-  value int(10) NOT NULL default '0',
-  increment int(10) NOT NULL default '0',
-  PRIMARY KEY  (id,param)
-) $TABLE_TYPE;
-
-#
-# Table structure for table 'usr_preferences'
-#
-
-DROP TABLE IF EXISTS usr_preferences;
-CREATE TABLE usr_preferences (
-  uuid varchar(64) NOT NULL default '',
-  $USERCOL varchar(100) NOT NULL default '0',
-  domain varchar(128) NOT NULL default '',
-  attribute varchar(32) NOT NULL default '',
-  value varchar(128) NOT NULL default '',
-  type integer NOT NULL default '0',
-  modified timestamp(14) NOT NULL,
-  PRIMARY KEY  (attribute,$USERCOL,domain)
-) $TABLE_TYPE;
-
-
-
-#
-# Table structure for table 'usr_preferences_types' -- types of atributes in preferences
-#
-
-CREATE TABLE usr_preferences_types (
-  att_name varchar(32) NOT NULL default '',
-  att_rich_type varchar(32) NOT NULL default 'string',
-  att_raw_type int(11) unsigned NOT NULL default '2',
-  att_type_spec text,
-  default_value varchar(100) NOT NULL default '',
-  PRIMARY KEY  (att_name)
-) $TABLE_TYPE;
-
-
-#
-# Table structure for table 'dom_preferences'
-#
-
-DROP TABLE IF EXISTS dom_preferences;
-CREATE TABLE dom_preferences (
-  d_id int NOT NULL,
-  att_name varchar(32) NOT NULL,
-  att_value varchar(255),
-  PRIMARY KEY  (d_id, att_name, att_value)
-) $TABLE_TYPE;
-
-#
-# Table structure for table trusted
-CREATE TABLE trusted (
-  src_ip varchar(39) NOT NULL,
-  proto varchar(4) NOT NULL,
-  from_pattern varchar(64) NOT NULL,
-  PRIMARY KEY (src_ip, proto, from_pattern)
-) $TABLE_TYPE;
-
-
-#
-# Table structure for table 'server_monitoring_agg'
-#
-DROP TABLE IF EXISTS server_monitoring_agg;
-CREATE TABLE server_monitoring_agg (
-  param varchar(32) NOT NULL default '',
-  s_value int(10) NOT NULL default '0',
-  s_increment int(10) NOT NULL default '0',
-  last_aggregated_increment int(10) NOT NULL default '0',
-  av float NOT NULL default '0',
-  mv int(10) NOT NULL default '0',
-  ad float NOT NULL default '0',
-  lv int(10) NOT NULL default '0',
-  min_val int(10) NOT NULL default '0',
-  max_val int(10) NOT NULL default '0',
-  min_inc int(10) NOT NULL default '0',
-  max_inc int(10) NOT NULL default '0',
-  lastupdate datetime NOT NULL default '0000-00-00 00:00:00',
-  PRIMARY KEY  (param)
-) $TABLE_TYPE;
-
-#
-# Table structure for table 'admin_privileges' -- multidomain serweb ACL control
-#
-
-CREATE TABLE admin_privileges (
-  $USERCOL varchar(64) NOT NULL default '',
-  domain varchar(128) NOT NULL default '',
-  priv_name varchar(64) NOT NULL default '',
-  priv_value varchar(64) NOT NULL default '',
-  PRIMARY KEY  ($USERCOL,priv_name,priv_value,domain)
-) $TABLE_TYPE;
-
-#
-# Table structure for table 'speed_dial'
-#
-
-CREATE TABLE speed_dial (
-  uuid varchar(64) NOT NULL default '',
-  $USERCOL varchar(64) NOT NULL default '',
-  domain varchar(128) NOT NULL default '',
-  sd_username varchar(64) NOT NULL default '',
-  sd_domain varchar(128) NOT NULL default '',
-  new_uri varchar(192) NOT NULL default '',
-  fname varchar(128) NOT NULL default '',
-  lname varchar(128) NOT NULL default '',
-  description varchar(64) NOT NULL default '',
-  PRIMARY KEY  ($USERCOL,domain,sd_username,sd_domain)
-) $TABLE_TYPE;
-
-#
-# Table structure for table 'gw'
-#
-
-CREATE TABLE gw (
-  gw_name VARCHAR(128) NOT NULL,
-  grp_id INT UNSIGNED NOT NULL,
-  ip_addr INT UNSIGNED NOT NULL,
-  port SMALLINT UNSIGNED,
-  uri_scheme TINYINT UNSIGNED,
-  transport TINYINT UNSIGNED,
-  prefix VARCHAR(16) default NULL,
-  PRIMARY KEY (gw_name),
-  KEY (grp_id)
-) $TABLE_TYPE;
-
-#
-# Table structure for table 'gw_grp'
-#
-
-CREATE TABLE gw_grp (
-  grp_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
-  grp_name VARCHAR(64) NOT NULL
-) $TABLE_TYPE;
-
-#
-# Table structure for table 'lcr'
-#
-
-CREATE TABLE lcr (
-  prefix varchar(16) NOT NULL,
-  from_uri varchar(128) NOT NULL DEFAULT '%',
-  grp_id INT UNSIGNED NOT NULL,
-  priority TINYINT UNSIGNED NOT NULL,
-  KEY (prefix),
-  KEY (from_uri),
-  KEY (grp_id)
-) $TABLE_TYPE;
-
-
-# add an admin user "admin" with password==heslo,
-# so that one can try it out on quick start
-
-$INITIAL_USER
-
-
-
-EOF
-
-} # ser_create
-
-
-export PW
-if [ "$#" -ne 0 ]; then
-  prompt_pw
-fi
-
-case $1 in
-	reinstall)
-
-		#1 create a backup database (named *_bak)
-		echo "creating backup database"
-		ser_backup $DBNAME
-		if [ "$?" -ne 0 ] ; then
-			echo "reinstall: ser_backup failed"
-			exit 1
-		fi
-		#2 dump original database and change names in it
-		echo "dumping table content ($DBNAME)"
-		tmp_file=/tmp/ser_mysql.$$
-		ser_dump $DBNAME  > $tmp_file
-		if [ "$?" -ne 0 ] ; then
-			echo "reinstall: dumping original db failed"
-			exit 1
-		fi
-		sed "s/[uU][sS][eE][rR]_[iI][dD]/user/g" $tmp_file |
-			sed "s/[uU][sS][eE][rR]\($\|[^a-zA-Z]\)/$USERCOL\1/g" |
-			sed "s/[rR][eE][aA][lL][mM]/domain/g"> ${tmp_file}.2
-		#3 drop original database
-		echo "dropping table ($DBNAME)"
-		ser_drop $DBNAME
-		if [ "$?" -ne 0 ] ; then
-			echo "reinstall: dropping table failed"
-			rm $tmp_file*
-			exit 1
-		fi
-		#4 change names in table definition and restore
-		echo "creating new structures"
-		ser_create $DBNAME no_init_user
-		if [ "$?" -ne 0 ] ; then
-			echo "reinstall: creating new table failed"
-			rm $tmp_file*
-			exit 1
-		fi
-		#5 restoring table content
-		echo "restoring table content"
-
-		# Recreate perms column here so that subsequent
-		# restore succeeds
-
-    sql_query $DBNAME << EOF
-    ALTER TABLE subscriber ADD perms VARCHAR(32)  AFTER ha1b;
-    ALTER TABLE pending ADD perms VARCHAR(32)  AFTER ha1b;
-EOF
-
-
-		ser_restore $DBNAME ${tmp_file}.2
-		if [ "$?" -ne 0 ] ; then
-			echo "reinstall: restoring table failed"
-			rm $tmp_file*
-			exit 1
-		fi
-
-
-    sql_query $DBNAME << EOF
-
-    # Move perms from subscriber to admin_privileges
-    INSERT INTO admin_privileges ($USERCOL, domain, priv_name, priv_value) SELECT $USERCOL, domain, 'is_admin', '1' FROM subscriber WHERE perms='admin';
-
-		# Drop perms column here
-    ALTER TABLE subscriber DROP perms;
-    ALTER TABLE pending DROP perms;
-
-EOF
-
-#XX
-#		rm $tmp_file*
-		exit 0
-		;;
-	copy)
-		# copy database to some other name
-		shift
-		if [ $# -ne 1 ]; then
-			usage
-			exit 1
-		fi
-		tmp_file=/tmp/ser_mysql.$$
-		ser_dump $DBNAME  > $tmp_file
-		ret=$?
-		if [ "$ret" -ne 0 ]; then
-			rm $tmp_file
-			exit $ret
-		fi
-		ser_create $1 no_init_user
-		ret=$?
-		if [ "$ret" -ne 0 ]; then
-			rm $tmp_file
-			exit $ret
-		fi
-		ser_restore $1 $tmp_file
-		ret=$?
-		rm $tmp_file
-		exit $ret
-		;;
-	backup)
-		# backup current database
-		ser_dump $DBNAME
-		exit $?
-		;;
-	restore)
-		# restore database from a backup
-		shift
-		if [ $# -ne 1 ]; then
-			usage
-			exit 1
-		fi
-		ser_restore $DBNAME $1
-		exit $?
-		;;
-	create)
-		# create new database structures
-		shift
-		if [ $# -eq 1 ] ; then
-			DBNAME="$1"
-		fi
-		ser_create $DBNAME
-		exit $?
-		;;
-	drop)
-		# delete ser database
-		ser_drop $DBNAME
-		exit $?
-		;;
-	reinit)
-		# delete database and create a new one
-		ser_drop $DBNAME
-		ret=$?
-		if [ "$ret" -ne 0 ]; then
-			exit $ret
-		fi
-		ser_create $DBNAME
-		exit $?
-		;;
-	*)
-		usage
-		exit 1;
-		;;
-esac
-