Parcourir la source

new shell scrupt for manipulation with ser structures

Jiri Kuthan il y a 23 ans
Parent
commit
f41812b20f
4 fichiers modifiés avec 323 ajouts et 132 suppressions
  1. 0 121
      scripts/mysql-create.sql
  2. 0 4
      scripts/mysql-drop.sql
  3. 0 7
      scripts/reinit-mysql.sh
  4. 323 0
      scripts/ser_mysql.sh

+ 0 - 121
scripts/mysql-create.sql

@@ -1,121 +0,0 @@
-# phpMyAdmin MySQL-Dump
-# http://phpwizard.net/phpMyAdmin/
-#
-# $Id$
-#
-
-create database ser;
-use ser;
-
-# Users: ser is the regular user, serro only for reading
-GRANT ALL PRIVILEGES ON ser.* TO ser IDENTIFIED  BY 'heslo';
-GRANT SELECT ON ser.* TO serro IDENTIFIED BY '47serro11';
-
-# --------------------------------------------------------
-#
-# Table structure for table 'aliases' -- the same as UsrLoc
-#
-
-CREATE TABLE aliases (
-   user varchar(50) NOT NULL,
-   contact varchar(255) NOT NULL,
-   expires datetime,
-   q float(10,2),
-   callid varchar(255),
-   cseq int(11),
-   last_modified timestamp(14),
-   KEY user (user, contact)
-);
-
-
-# --------------------------------------------------------
-#
-# Table structure for table 'grp' -- ACLs
-#
-
-CREATE TABLE grp (
-   user varchar(50) NOT NULL,
-   grp varchar(50) NOT NULL,
-   last_modified datetime DEFAULT '0000-00-00 00:00:00' NOT NULL
-);
-
-
-# --------------------------------------------------------
-#
-# Table structure for table 'location'
-#
-
-CREATE TABLE location (
-   user varchar(50) NOT NULL,
-   contact varchar(255) NOT NULL,
-   expires datetime,
-   q float(10,2),
-   callid varchar(255),
-   cseq int(11),
-   last_modified timestamp(14),
-   KEY user (user, contact)
-);
-
-
-# --------------------------------------------------------
-#
-# Table structure for table 'pending'
-#
-
-CREATE TABLE pending (
-   USER_ID varchar(100) NOT NULL,
-   PASSWORD varchar(25) NOT NULL,
-   FIRST_NAME varchar(25) NOT NULL,
-   LAST_NAME varchar(45) NOT NULL,
-   PHONE varchar(15) NOT NULL,
-   EMAIL_ADDRESS varchar(50) NOT NULL,
-   DATETIME_CREATED datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
-   DATETIME_MODIFIED datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
-   confirmation varchar(64) NOT NULL,
-   flag char(1) DEFAULT 'o' NOT NULL,
-   SendNotification varchar(50) NOT NULL,
-   Greeting varchar(50) NOT NULL,
-   HA1 varchar(128) NOT NULL,
-   REALM varchar(128) NOT NULL,
-   ha1b varchar(128) NOT NULL,
-   UNIQUE USER_ID (USER_ID),
-   KEY USER_ID_2 (USER_ID)
-);
-
-
-# --------------------------------------------------------
-#
-# Table structure for table 'reserved' -- reserved usernames
-#
-
-CREATE TABLE reserved (
-   user_id char(100) NOT NULL,
-   UNIQUE user_id (user_id)
-);
-
-
-# --------------------------------------------------------
-#
-# Table structure for table 'subscriber'
-#
-
-CREATE TABLE subscriber (
-   USER_ID varchar(100) NOT NULL,
-   PASSWORD varchar(25) NOT NULL,
-   FIRST_NAME varchar(25) NOT NULL,
-   LAST_NAME varchar(45) NOT NULL,
-   PHONE varchar(15) NOT NULL,
-   EMAIL_ADDRESS varchar(50) NOT NULL,
-   DATETIME_CREATED datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
-   DATETIME_MODIFIED datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
-   confirmation varchar(64) NOT NULL,
-   flag char(1) DEFAULT 'o' NOT NULL,
-   SendNotification varchar(50) NOT NULL,
-   Greeting varchar(50) NOT NULL,
-   HA1 varchar(128) NOT NULL,
-   REALM varchar(128) NOT NULL,
-   ha1b varchar(128) NOT NULL,
-   UNIQUE USER_ID (USER_ID),
-   KEY USER_ID_2 (USER_ID)
-);
-

+ 0 - 4
scripts/mysql-drop.sql

@@ -1,4 +0,0 @@
-/* $Id$ */
-
-drop database ser;
-

+ 0 - 7
scripts/reinit-mysql.sh

@@ -1,7 +0,0 @@
-#! /bin/bash
-
-USER=root
-
-
-/usr/bin/mysql -u $USER < mysql-drop.sql
-/usr/bin/mysql -u $USER < mysql-create.sql

+ 323 - 0
scripts/ser_mysql.sh

@@ -0,0 +1,323 @@
+#!/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
+#
+
+
+#################################################################
+# config vars
+#################################################################
+DBNAME=ser
+USERNAME=ser
+DEFAULT_PW=heslo
+ROUSER=serro
+RO_PW=47serro11
+CMD="mysql -p -u "
+TABLE_TYPE="TYPE=MyISAM"
+SQL_USER="root"
+
+#################################################################
+
+
+usage() {
+COMMAND=`basename $0`
+cat <<EOF
+usage: $COMMAND create
+       $COMMAND drop   (!!entirely deletes tables)
+       $COMMAND reinit (!!entirely deletes and than re-creates tables)
+
+       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
+
+ser_drop()  # pars: <database name> <sql_user>
+{
+if [ $# -ne 2 ] ; then
+	echo "ser_drop function takes two params"
+	exit 1
+fi
+
+$CMD $2 << EOF
+drop database $1;
+EOF
+} #ser_drop
+
+ser_create () # pars: <database name> <sql_user>
+{
+
+#test
+#cat > /tmp/sss <<EOF
+
+if [ $# -ne 2 ] ; then
+	echo "ser_create function takes two params"
+	exit 1
+fi
+
+$CMD $2 <<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 SELECT ON $1.* TO $ROUSER IDENTIFIED BY '$RO_PW';
+
+#
+# Table structure for table 'acc' -- accounted calls
+#
+
+
+CREATE TABLE acc (
+  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 '',
+  sip_callid varchar(128) NOT NULL default '',
+  user varchar(64) NOT NULL default '',
+  time datetime NOT NULL default '0000-00-00 00:00:00',
+  timestamp timestamp(14) NOT NULL
+) $TABLE_TYPE;
+
+
+
+
+#
+# Table structure for table 'active_sessions' -- web stuff
+#
+
+
+CREATE TABLE active_sessions (
+  sid varchar(32) NOT NULL default '',
+  name varchar(32) NOT NULL default '',
+  val text,
+  changed varchar(14) NOT NULL default '',
+  PRIMARY KEY  (name,sid),
+  KEY changed (changed)
+) $TABLE_TYPE;
+
+
+
+
+#
+# Table structure for table 'aliases' -- location-like table
+#
+
+
+CREATE TABLE aliases (
+  user varchar(50) NOT NULL default '',
+  contact varchar(255) NOT NULL default '',
+  expires datetime default NULL,
+  q float(10,2) default NULL,
+  callid varchar(255) default NULL,
+  cseq int(11) default NULL,
+  last_modified timestamp(14) NOT NULL,
+  KEY user (user,contact)
+) $TABLE_TYPE;
+
+
+
+
+#
+# Table structure for table 'event' -- track of predefined
+# events to which a user subscribed
+#
+
+
+CREATE TABLE event (
+  id int(10) unsigned NOT NULL auto_increment,
+  user varchar(50) NOT NULL default '',
+  uri varchar(255) NOT NULL default '',
+  description varchar(255) NOT NULL default '',
+  PRIMARY KEY  (id),
+  UNIQUE KEY id (id)
+) $TABLE_TYPE;
+
+
+
+
+#
+# Table structure for table 'grp' -- group membership
+# table; used primarily for ACLs
+#
+
+
+CREATE TABLE grp (
+  user varchar(50) NOT NULL default '',
+  grp varchar(50) NOT NULL default '',
+  last_modified datetime NOT NULL default '0000-00-00 00:00:00'
+) $TABLE_TYPE;
+
+
+
+
+#
+# Table structure for table 'location' -- that is persistent UsrLoc
+#
+
+
+CREATE TABLE location (
+  user varchar(50) NOT NULL default '',
+  contact varchar(255) NOT NULL default '',
+  expires datetime default NULL,
+  q float(10,2) default NULL,
+  callid varchar(255) default NULL,
+  cseq int(11) default NULL,
+  last_modified timestamp(14) NOT NULL,
+  KEY user (user,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 '',
+  sip_callid varchar(128) NOT NULL default '',
+  user varchar(64) NOT NULL default '',
+  time datetime NOT NULL default '0000-00-00 00:00:00',
+  timestamp timestamp(14) NOT NULL
+) $TABLE_TYPE;
+
+
+
+
+#
+# Table structure for table 'pending' -- unconfirmed subscribtion
+# requests
+#
+
+
+CREATE TABLE pending (
+  USER_ID varchar(100) 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 '',
+  REALM varchar(128) NOT NULL default '',
+  ha1b varchar(128) NOT NULL default '',
+  UNIQUE KEY USER_ID (USER_ID),
+  KEY USER_ID_2 (USER_ID)
+) $TABLE_TYPE;
+
+
+
+
+#
+# Table structure for table 'phonebook' -- user's phonebook
+#
+
+
+CREATE TABLE phonebook (
+  id int(10) unsigned NOT NULL default '0',
+  user varchar(50) 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),
+  UNIQUE KEY id (id)
+) $TABLE_TYPE;
+
+
+
+
+#
+# Table structure for table 'reserved' -- reserved username
+# which should be never allowed for subscription
+#
+
+
+CREATE TABLE reserved (
+  user_id char(100) NOT NULL default '',
+  UNIQUE KEY user_id (user_id)
+) $TABLE_TYPE;
+
+
+
+
+#
+# Table structure for table 'subscriber' -- user database
+# (note: realm is only informational -- it is defined
+# in ser scripts)
+#
+
+
+CREATE TABLE subscriber (
+  phplib_id varchar(32) NOT NULL default '',
+  USER_ID varchar(100) 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 '',
+  REALM varchar(128) NOT NULL default '',
+  ha1b varchar(128) NOT NULL default '',
+  UNIQUE KEY phplib_id (phplib_id),
+  UNIQUE KEY USER_ID (USER_ID),
+  KEY USER_ID_2 (USER_ID)
+) $TABLE_TYPE;
+
+EOF
+
+} # ser_create
+
+
+case $1 in
+	create)
+		ser_create $DBNAME $SQL_USER
+		exit $?
+		;;
+	drop)
+		ser_drop $DBNAME $SQL_USER
+		exit $?
+		;;
+	reinit)
+		ser_drop $DBNAME $SQL_USER
+		ret=$?
+		if [ "$ret" -ne 0 ]; then
+			exit $ret
+		fi
+		ser_create $DBNAME $SQL_USER
+		exit $?
+		;;
+	*)
+		usage
+		exit 1;
+		;;
+esac
+