How To Set Up A Shockvoice Server On Linux Using Mono
This is a step-by-step instruction on how to install Shockvoice on a Linux machine. Shockvoice is a voice-over-ip communication tool. This tool is slightly different in its features. It's simply coded in C# and therefore runs on almost any platform of interest, be it Windows, Unix, Macintosh or Solaris. The client will only be available for Windows in the beginning.
First of all you need the latest version of the .NET interpreter for Linux called Mono. Get the latest one from:
http://www.go-mono.com/mono-downloads/download.html
If your system is not listed you can download a complete binary package which can be found here:
http://www.mono-project.com/Other_Downloads
In our case we will install Mono by using the packaged installer from this source:
wget http://ftp.novell.com/pub/mono/archive/1.9.1/linux-installer/2/mono-1.9.1_2-installer.bin
Make it executable:
chmod +x mono-1.9.1_2-installer.bin
... and run it:
./mono-1.9.1_2-installer.bin
Follow the instructions on the screen. In our case we will install the binary to /opt. Once Mono is installed we need to get the latest server version of Shockvoice. Download the latest version from the Shockvoice downloadserver:
http://www.shockvoice.net/downloads.php
In our case we will download the Linux Server_v0.8.0pre2
Create the directory where you want to install Shockvoice.
mkdir -p /usr/share/shockvoice
Download the package:
Unpack the package into the newly created directory:
tar -C /usr/share/shockvoice -xvzf svserver-0.8.0pre2-linux.tar.gz
Before we will run the install.sh script, we have to choose our database type. In this example we choose MySQL as our favorite database. We have to do some stuff before that. If you want to use Sqlite as your favorite database you can have to use the shockvoice.s3db file as your database. Now set up the MySQL part.
Create the database:
mysqladmin -uroot -p create shockvoice
Now import the tables to the database.
mysql -uroot -p shockvoice < /usr/share/shockvoice/shockvoice.mysql.sql
Now we need to create a database user (we will name him svuser) and grant him permissions to use the shockvoice database.
mysql -uroot -p
Enter Password:
GRANT USAGE ON shockvoice.* TO svuser@localhost IDENTIFIED BY '<yourpassword>';
GRANT ALL ON shockvoice.* TO svuser@localhost IDENTIFIED BY "<yourpassword>";
FLUSH PRIVILEGES;
Change to the directory and start the install.sh script.
cd /usr/share/shockvoice && ./install.sh
Follow the instructions on the screen.
This script will create and configure the service_start, service_stop and the config.xml file. It will try to locate the necessary files from your Mono installation. Please make sure you have mono installed before running this script.
Continue? (y/n) y
Do you have unpacked Shockvoice in /usr/share/shockvoice? (y/n) y
Do you want to create the service_start and service_stop file? (recommend) (y/n) y
searching for mono...
Found mono binary in /opt/mono-1.9/bin/mono .. good
searching for mono-service.exe...
Found mono-service.exe binary in /opt/mono-1.9/lib/mono/gac/mono-service/2.0.0.0__0738eb9f132ed756/mono-service.exe .. good
Creating startscript
Creating stopscript
Do you want to create the config.xml file? (y/n) y
Creating config.xml
Please enter type of database you want to use. (e.g. sqlite, mysql or postgres)
mysql
Please enter server which stores the database Shockvoice. (e.g. shockvoice.s3db for sqlite or localhost for mysql)
localhost
Please enter name of the database. (leave empty for sqlite)
shockvoice
Please enter username who connects to the database. (leave empty for sqlite)
svuser
Please enter password for database user. (leave empty for sqlite)
<yourpassword>
Database type: mysql
Database server: localhost
Database name: shockvoice
Database user: svuser
Database password: <yourpassword>
Is this Correct? (y/n) y
Remember to setup the MySql database and User!
Configfile created!
Note: If you get an error like '==: unexpected operator' try changing the first line of the install.sh script to
#!/bin/bash
The next thing we have to do is to copy the libMonoPosixHelper.so and libsvcodec.so to a location where Mono will find them. e.g. /usr/lib:
cp libMonoPosixHelper.so libsvcodec.so /usr/lib
Note: If your are running a 64bit host system, you have to delete the libsvcodec.so file. If you intend to use sqlite3 as your favorite database you have to copy the libsqlite3.so.0 as well if it isn't already in /usr/lib/
That's it. Now start the server with:
./service_start