Ventrilo is a Voice over IP (VoIP) group communications software well known for its superior sound quality and optimal CPU usage. Here we take a look at installing and setting up the Vnetrilo server on a Linux/Unix machine. Once, the Ventrilo server is installed and setup, users can connect to it using the Ventrilo client software thats available for bot Windows and Mac.
Getting Ventrilo
The latest version of Ventrilo Server can be downloaded from,
http://www.ventrilo.com/dlprod.php?id=102
Now, that would be a tar.gz file named something like ventrilo_srv-3.0.2-Linux-i386.tar.gz depending on the version number.
Installation
.Upload the file to the machine that you plan on running the server on.
.Upload the file to any convenient directory,say /home/user
.Open a terminal window (telnet or OpenSSH) to the host computer that will be running the server
.Create a directory to unzip the files say /home/user/Ventrilo, change to that direcotry
Quote:
mkdir /home/user/Ventrilo
cd /home/user/Ventrilo
|
.Copy the tar.gz file into this new directory.
Quote:
|
cp /home/user/ventrilo_srv-3.0.2-Linux-i386.tar.gz ./
|
.Now its time to extract the files
A) Either use
Quote:
|
tar -xzvf ventrilo_srv-3.0.2-Linux-i386.tar.gz
|
OR ELSE
B) Type "gunzip " followed by the name of the tar.gz file.
Quote:
|
gunzip ventrilo_srv-3.0.2-Linux-i386.tar.gz
|
That would leave out a tar file ventrilo_srv-3.0.2-Linux-i386.tar
Now, type "tar xf " followed by the name of the tar file.
Quote:
|
tar -xf ventrilo_srv-3.0.2-Linux-i386.tar
|
This would leave all the files extracted in the directory ventsrv.
.Starting the Server Process
The command ./ventrilo_srv would spawn the Ventrilo server. The -d option would serve better here as it runs the Ventrilo server in daemon mode.
Quote:
[root@localhost ventsrv]#./ventrilo_srv -d # Starts Ventrilo In daemon mode
[root@localhost ventsrv]#pgrep ventrilo # Ventrilo running with PID 22694
22694
[root@localhost ventsrv]#
|
Note: The default port used ofr listening is 3784, though this can easily be changed.This implies that the connecting clients should also connect to the new port instead of 3784.
Configuration
Ventrilo provides a -f command line option to specify the path and prefix name to be used for all files. This allows Ventrilo to be started easily by startup scripts.
Quote:
|
ventrilo -f home/user/ventrilo_srv -d
|
Ventilo_srv.ini
The main Config file used by Ventrilo is the ventrilo_srv.ini
The "ventrilo_srv.ini" file has several categories:
Server - General configuration info.
Intf - Accept connections only from specific IP interfaces.
Each category is contained in [ brackets ] and each option is entered using key=value formatting.
This document will use the settings included in the example INI file.
For eg : [Server]
There are a lot of options available but the most significant ones worth mentioning are
Name=Server 1
This is the name of the server that appears at the top of the active user list when someone connects ( In the client ). This field cannot be left blank.
Auth=0
This is the authentication mode. This field is also essential.
0 = No authentication and anyone can connect.
1 = Global password authentication.
2 = Specific user/password authentication.
Duplicates=1
Enables or disables duplicate login names.
0 = Disables duplicates.
1 = Allows duplicate login names.
If disabled and someone logs in with a user name identical to that of a currently connected user, the server will disconnect the first user.
AdminPassword=
This is the remote server administration password. Leaving this option blank will disable remote admin logins. This password is used by normal login accounts and they activate a menu option to have admin rights assigned to their login.
Password=
This is the global login password for when Auth=1. All users connecting to this server must have this password, otherwise the server will send back an error message saying that they could not be authenticated.
TimeStamp=0
0 = Disable console timestamp's.
1 = Enable console timestamp's.
This option enables or disables timestamp's being displayed in console messages. This includes remote consoles.
PingRate=10
This option allows the administrator to change the interval at which the server pings the clients. The value is specified in seconds and defaults to 10. Setting to a lower value might be useful for diagnosing problem clients especially when the remote console command "pingtrace" is used.
ChanClients=0
This option specifies the maximum number of clients allowed in any channel. A value of 0 means there is no limit to the number of clients per channel.
DisableQuit=1
0=Allow remote consoles to issue the "quit" command.
1=Disable (prevent) remote console from issuing the "quit" command.
This option prevents remote console commands (those typed into the chat window when logged in with server admin rights) from issuing the "quit" command which would instruct the server to exit the system. However, if the server was started in a non-daemon mode the local console can still issue the quit command.
VoiceCodec=0
This option tells the server which codec all clients must use. The value is a 0 based index into a list of possible codec's. To see the list of currently supported codec types issue the command "ventrilo_srv -?" and the program will display a table of codec's and their associated formats.
VoiceFormat=1
This option is the second part of VoiceCodec. Each codec can have one or more possible formats that control the quality and bandwidth usage of the specified codec. To see the list of currently supported codec formats issue the command "ventrilo_srv -?" and the program will display a table of codec's and their associated formats.
SilentLobby=0
0 = Allow replication.
1 = Suppress replication, thus making the lobby silent.
This option allows or suppresses replication of voice, wave binds and TTS binds when the client is in the main lobby.
AutoKick=0
This option enables auto-kicking of a client after it has been connected for X number of seconds. A value of 0 disables the autokick feature, otherwise it specifies the number of seconds that a client is allowed to remain connected before the server will automatically disconnect them. This feature is primarily intended for professional hosting services who setup servers for potential customers to test the quality of the hosters network and machines, while at the same time prevent people from hijacking the server for their own private use.
ventrilo_srv.log
As the name suggests it is the Ventrilo log file and is appended to by the server when ever a log message is generated. Thus it proves to be significant during troubleshooting.
Startup script
The following script is an example of starting Linux based server(s) from the "/etc/rc.d/rc.local" file when a system is booted. Notice that they are started with the specific user account called "user"
Quote:
# Startup ventrilo servers.
VENPATH=/home/user
VENBIN=$VENPATH/ventrilo_srv
ventrilo -c "$VENBIN -f$VENPATH/ventrilo_srv -d"
|
This is just a sample script and more better and professiona one can be found here,
http://www.ventrilo.com/dlprod.php?id=301
The startup script needs just a few variables to be set up properly and all those necessary info is provided along in the readme file that accompanies the script.
ventrilo_status program
This tool is used for submitting status information requests to servers. The following example shows how to issue a general status command "-c1" to a server running on the same machine.
Quote:
|
ventrilo_status -c1 -t127.0.0.1
|
The following example is similar to the one above but will request detailed status "-c2" from the same server.
Quote:
|
ventrilo_status -c2 -t127.0.0.1
|
The -c option specifies the type of request (command).
The -t option specifies the target address and can be an IP address or hostname. Unless otherwise specified the request would be issued to the default port of 3784. If the server you want to status is running on a different port number then you must append the port number to the target address and
separated by a colon. The following example shows how:
Quote:
|
ventrilo_status -c2 -t127.0.0.1:3794
|