Bladeren bron

support for "who hang up" in accounting introduced

Jiri Kuthan 22 jaren geleden
bovenliggende
commit
fd2c51cfb3
1 gewijzigde bestanden met toevoegingen van 52 en 35 verwijderingen
  1. 52 35
      scripts/ser_mysql.sh

+ 52 - 35
scripts/ser_mysql.sh

@@ -33,6 +33,8 @@ CMD="mysql -h $DBHOST -p -u "
 BACKUP_CMD="mysqldump -h $DBHOST -p -c -t -u "
 BACKUP_CMD="mysqldump -h $DBHOST -p -c -t -u "
 TABLE_TYPE="TYPE=MyISAM"
 TABLE_TYPE="TYPE=MyISAM"
 SQL_USER="root"
 SQL_USER="root"
+# user name column
+USERCOL="username"
 
 
 #################################################################
 #################################################################
 
 
@@ -85,14 +87,29 @@ drop database $1;
 EOF
 EOF
 } #ser_drop
 } #ser_drop
 
 
-ser_create () # pars: <database name> <sql_user>
+ser_create () # pars: <database name> <sql_user> [<no_init_user>]
 {
 {
 
 
 #test
 #test
 #cat > /tmp/sss <<EOF
 #cat > /tmp/sss <<EOF
 
 
-if [ $# -ne 2 ] ; then
-	echo "ser_create function takes two params"
+if [ $# -eq 2 ] ; then
+	# 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, perms ) 
+		VALUES ( 'admin', 'heslo', 'Initial', 'Admin', '123', 
+		'root@localhost', '2002-09-04 19:37:45', '0000-00-00 00:00:00', 
+		'57DaSIPuCm52UNe54LF545750cfdL48OMZfroM53', 'o', '', '', 
+		'0239482f19d262f3953186a725a6f53b', 'iptel.org', 
+		'a84e8abaa7e83d1b45c75ab15b90c320', 
+		'65e397cda0aa8e3202ea22cbd350e4e9', 'admin' );"
+elif [ $# -eq 3 ] ; then
+	# if 3rd param set, don't create any initial user
+	INITIAL_USER=""
+else
+	echo "ser_create function takes two or three params"
 	exit 1
 	exit 1
 fi
 fi
 
 
@@ -157,7 +174,9 @@ CREATE TABLE acc (
   from_uri varchar(128) NOT NULL default '',
   from_uri varchar(128) NOT NULL default '',
   to_uri varchar(128) NOT NULL default '',
   to_uri varchar(128) NOT NULL default '',
   sip_callid varchar(128) NOT NULL default '',
   sip_callid varchar(128) NOT NULL default '',
-  username varchar(64) NOT NULL default '',
+  $USERCOL varchar(64) 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',
   time datetime NOT NULL default '0000-00-00 00:00:00',
   timestamp timestamp(14) NOT NULL
   timestamp timestamp(14) NOT NULL
 ) $TABLE_TYPE;
 ) $TABLE_TYPE;
@@ -181,13 +200,12 @@ CREATE TABLE active_sessions (
 
 
 
 
 
 
-
 #
 #
 # Table structure for table 'aliases' -- location-like table
 # Table structure for table 'aliases' -- location-like table
 #
 #
 
 
 CREATE TABLE aliases (
 CREATE TABLE aliases (
-  username varchar(50) NOT NULL default '',
+  $USERCOL varchar(50) NOT NULL default '',
   domain varchar(100) NOT NULL default '',
   domain varchar(100) NOT NULL default '',
   contact varchar(255) NOT NULL default '',
   contact varchar(255) NOT NULL default '',
   expires datetime default NULL,
   expires datetime default NULL,
@@ -197,7 +215,7 @@ CREATE TABLE aliases (
   last_modified timestamp(14) NOT NULL,
   last_modified timestamp(14) NOT NULL,
   replicate int(10) unsigned default NULL,
   replicate int(10) unsigned default NULL,
   state tinyint(1) unsigned default NULL,
   state tinyint(1) unsigned default NULL,
-  PRIMARY KEY(username, domain, contact)
+  PRIMARY KEY($USERCOL, domain, contact)
 ) $TABLE_TYPE;
 ) $TABLE_TYPE;
 
 
 
 
@@ -209,7 +227,7 @@ CREATE TABLE aliases (
 
 
 CREATE TABLE event (
 CREATE TABLE event (
   id int(10) unsigned NOT NULL auto_increment,
   id int(10) unsigned NOT NULL auto_increment,
-  username varchar(50) NOT NULL default '',
+  $USERCOL varchar(50) NOT NULL default '',
   uri varchar(255) NOT NULL default '',
   uri varchar(255) NOT NULL default '',
   description varchar(255) NOT NULL default '',
   description varchar(255) NOT NULL default '',
   PRIMARY KEY (id)
   PRIMARY KEY (id)
@@ -225,11 +243,11 @@ CREATE TABLE event (
 
 
 
 
 CREATE TABLE grp (
 CREATE TABLE grp (
-  username varchar(50) NOT NULL default '',
+  $USERCOL varchar(50) NOT NULL default '',
   domain varchar(100) NOT NULL default '',
   domain varchar(100) NOT NULL default '',
   grp varchar(50) NOT NULL default '',
   grp varchar(50) NOT NULL default '',
   last_modified datetime NOT NULL default '0000-00-00 00:00:00',
   last_modified datetime NOT NULL default '0000-00-00 00:00:00',
-  PRIMARY KEY(username, domain, grp)
+  PRIMARY KEY($USERCOL, domain, grp)
 ) $TABLE_TYPE;
 ) $TABLE_TYPE;
 
 
 
 
@@ -241,7 +259,7 @@ CREATE TABLE grp (
 
 
 
 
 CREATE TABLE location (
 CREATE TABLE location (
-  username varchar(50) NOT NULL default '',
+  $USERCOL varchar(50) NOT NULL default '',
   domain varchar(100) NOT NULL default '',
   domain varchar(100) NOT NULL default '',
   contact varchar(255) NOT NULL default '',
   contact varchar(255) NOT NULL default '',
   expires datetime default NULL,
   expires datetime default NULL,
@@ -251,7 +269,7 @@ CREATE TABLE location (
   last_modified timestamp(14) NOT NULL,
   last_modified timestamp(14) NOT NULL,
   replicate int(10) unsigned default NULL,
   replicate int(10) unsigned default NULL,
   state tinyint(1) unsigned default NULL,
   state tinyint(1) unsigned default NULL,
-  PRIMARY KEY(username, domain, contact)
+  PRIMARY KEY($USERCOL, domain, contact)
 ) $TABLE_TYPE;
 ) $TABLE_TYPE;
 
 
 
 
@@ -273,7 +291,9 @@ CREATE TABLE missed_calls (
   from_uri varchar(128) NOT NULL default '',
   from_uri varchar(128) NOT NULL default '',
   to_uri varchar(128) NOT NULL default '',
   to_uri varchar(128) NOT NULL default '',
   sip_callid varchar(128) NOT NULL default '',
   sip_callid varchar(128) NOT NULL default '',
-  username varchar(64) NOT NULL default '',
+  $USERCOL varchar(64) 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',
   time datetime NOT NULL default '0000-00-00 00:00:00',
   timestamp timestamp(14) NOT NULL
   timestamp timestamp(14) NOT NULL
 ) $TABLE_TYPE;
 ) $TABLE_TYPE;
@@ -289,7 +309,7 @@ CREATE TABLE missed_calls (
 
 
 CREATE TABLE pending (
 CREATE TABLE pending (
   phplib_id varchar(32) NOT NULL default '',
   phplib_id varchar(32) NOT NULL default '',
-  username varchar(100) NOT NULL default '',
+  $USERCOL varchar(100) NOT NULL default '',
   password varchar(25) NOT NULL default '',
   password varchar(25) NOT NULL default '',
   first_name varchar(25) NOT NULL default '',
   first_name varchar(25) NOT NULL default '',
   last_name varchar(45) NOT NULL default '',
   last_name varchar(45) NOT NULL default '',
@@ -307,8 +327,8 @@ CREATE TABLE pending (
   perms varchar(32) default NULL,
   perms varchar(32) default NULL,
   allow_find char(1) NOT NULL default '0',
   allow_find char(1) NOT NULL default '0',
   timezone varchar(128) default NULL,
   timezone varchar(128) default NULL,
-  PRIMARY KEY (username, domain),
-  KEY user_2 (username),
+  PRIMARY KEY ($USERCOL, domain),
+  KEY user_2 ($USERCOL),
   UNIQUE KEY phplib_id (phplib_id)
   UNIQUE KEY phplib_id (phplib_id)
 ) $TABLE_TYPE;
 ) $TABLE_TYPE;
 
 
@@ -322,7 +342,7 @@ CREATE TABLE pending (
 
 
 CREATE TABLE phonebook (
 CREATE TABLE phonebook (
   id int(10) unsigned NOT NULL auto_increment,
   id int(10) unsigned NOT NULL auto_increment,
-  username varchar(50) NOT NULL default '',
+  $USERCOL varchar(50) NOT NULL default '',
   fname varchar(32) NOT NULL default '',
   fname varchar(32) NOT NULL default '',
   lname varchar(32) NOT NULL default '',
   lname varchar(32) NOT NULL default '',
   sip_uri varchar(128) NOT NULL default '',
   sip_uri varchar(128) NOT NULL default '',
@@ -339,7 +359,7 @@ CREATE TABLE phonebook (
 
 
 
 
 CREATE TABLE reserved (
 CREATE TABLE reserved (
-  username char(100) NOT NULL default '',
+  $USERCOL char(100) NOT NULL default '',
   UNIQUE KEY user2(username)
   UNIQUE KEY user2(username)
 ) $TABLE_TYPE;
 ) $TABLE_TYPE;
 
 
@@ -353,7 +373,7 @@ CREATE TABLE reserved (
 
 
 CREATE TABLE subscriber (
 CREATE TABLE subscriber (
   phplib_id varchar(32) NOT NULL default '',
   phplib_id varchar(32) NOT NULL default '',
-  username varchar(100) NOT NULL default '',
+  $USERCOL varchar(100) NOT NULL default '',
   password varchar(25) NOT NULL default '',
   password varchar(25) NOT NULL default '',
   first_name varchar(25) NOT NULL default '',
   first_name varchar(25) NOT NULL default '',
   last_name varchar(45) NOT NULL default '',
   last_name varchar(45) NOT NULL default '',
@@ -372,8 +392,8 @@ CREATE TABLE subscriber (
   allow_find char(1) NOT NULL default '0',
   allow_find char(1) NOT NULL default '0',
   timezone varchar(128) default NULL,
   timezone varchar(128) default NULL,
   UNIQUE KEY phplib_id (phplib_id),
   UNIQUE KEY phplib_id (phplib_id),
-  PRIMARY KEY (username, domain),
-  KEY user_2 (username)
+  PRIMARY KEY ($USERCOL, domain),
+  KEY user_2 ($USERCOL)
 ) $TABLE_TYPE;
 ) $TABLE_TYPE;
 
 
 # hook-table for all posssible future config values
 # hook-table for all posssible future config values
@@ -382,7 +402,7 @@ CREATE TABLE subscriber (
 CREATE TABLE config (
 CREATE TABLE config (
    attribute varchar(32) NOT NULL,
    attribute varchar(32) NOT NULL,
    value varchar(128) NOT NULL,
    value varchar(128) NOT NULL,
-   username varchar(100) NOT NULL default '',
+   $USERCOL varchar(100) NOT NULL default '',
    modified timestamp(14)
    modified timestamp(14)
 ) $TABLE_TYPE;
 ) $TABLE_TYPE;
 
 
@@ -415,11 +435,11 @@ CREATE TABLE domain (
 # Table structure for table 'uri' -- uri user parts users are allowed to use
 # Table structure for table 'uri' -- uri user parts users are allowed to use
 #
 #
 CREATE TABLE uri (
 CREATE TABLE uri (
-  username varchar(50) NOT NULL default '',
+  $USERCOL varchar(50) NOT NULL default '',
   domain varchar(50) NOT NULL default '',
   domain varchar(50) NOT NULL default '',
   uri_user varchar(50) NOT NULL default '',
   uri_user varchar(50) NOT NULL default '',
   last_modified datetime NOT NULL default '0000-00-00 00:00:00',
   last_modified datetime NOT NULL default '0000-00-00 00:00:00',
-  PRIMARY KEY (username, domain, uri_user)
+  PRIMARY KEY ($USERCOL, domain, uri_user)
 ) $TABLE_TYPE;
 ) $TABLE_TYPE;
 
 
 #
 #
@@ -482,14 +502,8 @@ CREATE TABLE server_monitoring_ul (
 # add an admin user "admin" with password==heslo, 
 # add an admin user "admin" with password==heslo, 
 # so that one can try it out on quick start
 # so that one can try it out on quick start
 
 
-INSERT INTO subscriber (username, password, first_name, last_name, phone, 
-	email_address, datetime_created, datetime_modified, confirmation, 
-	flag, sendnotification, greeting, ha1, domain, ha1b, phplib_id, perms ) 
-	VALUES ( 'admin', 'heslo', 'Initial', 'Admin', '123', 
-	'root@localhost', '2002-09-04 19:37:45', '0000-00-00 00:00:00', 
-	'57DaSIPuCm52UNe54LF545750cfdL48OMZfroM53', 'o', '', '', 
-	'0239482f19d262f3953186a725a6f53b', 'iptel.org', 
-	'a84e8abaa7e83d1b45c75ab15b90c320', '65e397cda0aa8e3202ea22cbd350e4e9', 'admin' );
+$INITIAL_USER
+
 
 
 
 
 EOF
 EOF
@@ -499,7 +513,10 @@ EOF
 
 
 case $1 in
 case $1 in
 	renew)
 	renew)
-		# backup, drop, restore (experimental)
+		# backup, drop, restore -- experimental; thought to
+		# deal with upgrade to new structures which include
+		# new tables or columns (troubles can appear if columns
+		# renamed); not tested too much yet
 		tmp_file=/tmp/ser_mysql.$$
 		tmp_file=/tmp/ser_mysql.$$
 		ser_backup $DBNAME $SQL_USER > $tmp_file
 		ser_backup $DBNAME $SQL_USER > $tmp_file
 		ret=$?
 		ret=$?
@@ -512,7 +529,7 @@ case $1 in
 		if [ "$ret" -ne 0 ]; then
 		if [ "$ret" -ne 0 ]; then
 			exit $ret
 			exit $ret
 		fi
 		fi
-		ser_create $DBNAME $SQL_USER
+		ser_create $DBNAME $SQL_USER no_init_user
 		ret=$?
 		ret=$?
 		if [ "$ret" -ne 0 ]; then
 		if [ "$ret" -ne 0 ]; then
 			exit $ret
 			exit $ret
@@ -536,7 +553,7 @@ case $1 in
 			rm $tmp_file
 			rm $tmp_file
 			exit $ret
 			exit $ret
 		fi
 		fi
-		ser_create $1 $SQL_USER
+		ser_create $1 $SQL_USER no_init_user
 		ret=$?
 		ret=$?
 		if [ "$ret" -ne 0 ]; then
 		if [ "$ret" -ne 0 ]; then
 			rm $tmp_file
 			rm $tmp_file