Developers Documentation

×

Warning

301 error for file:https://clearos.com/dokuwiki2/lib/exe/css.php?t=dokuwiki&tseed=82873f9c9a1f5784b951644363f20ef8

User Tools

Site Tools


Mumble - Open Source VOIP Client and Server

Mumble, a new Open Source version for all those VoIP lovers.

You can find the website here http://mumble.sourceforge.net/Main_Page

I am a bit new to this program, but found it very easy to install. Once people discover Mumble I am sure we can add to the How-To, please see the forum site.

Install Program Tools

SSH logon

You can pickup WinSCP here; http://winscp.net/eng/index.php

Putty here; http://www.chiark.greenend.org.uk/~sgtatham/putty/ This all could be done via Putty too if you want.

Get the latest version of Mumble Here Download here http://sourceforge.net/projects/mumble/files%2FMumble%2F1.2.2%2Fmurmur-static_x86-1.2.2.tar.lzma/download

Please note the download is LZMA format, but can be opened with WinRAR, but I am sure all you Linux experts will have something better! :-D

Install Mumble

Create a new user within the Webgui

User:       mum
Name:       Mumble
Last Name:  Server 

Everything else is up to you, but don’t give it access to anything

Logon to you ClearOS box via SSH

Go: /home/mum

Copy the murmur-static_x86-version.tar.lzma file into this directory

Command chown mum:allusers murmur-static_x86-version.tar.lzma
Update: Please provide a CLI command to open this file??? 

You can delete the zip file if you like

Type:  chown -R mum:allusers /home/mum/server
Type:  chmod -R 0755 /home/mum/server

I changed the folder name to server from murmur-static_x86-version to make it a bit easier.

Next, edit the .ini file

The murmur.ini file located under;

 /home/mum/server/ 

Here is where you can store the password for users, name of the server, etc.

Here is .ini File, since this is different than Ventrilo or TS, you can modify this as you like. I have indicated areas that you need to change for this How-To, but you'll need to change them to your liking;

    
 # Path to database. If blank, will search for
 # murmur.sqlite in default locations or create it if not found.
 database=
    
 # If you wish to use something other than SQLite, you'll need to set the name
 # of the database above, and also uncomment the below.
 # Sticking with SQLite is strongly recommended, as it's the most well tested
 # and by far the fastest solution.
 #
 #dbDriver=QMYSQL
 #dbUsername=
 #dbPassword=
 #dbHost=
 #dbPort=
 #dbPrefix=murmur_
 #dbOpts=
 
 # Murmur defaults to not using D-Bus. If you wish to use dbus, which is one of the
 # RPC methods available in murmur, please specify so here.
 #
 dbus=session
 
 # Alternate service name. Only use if you are running distinct
 # murmurd processes connected to the same D-Bus daemon.
 #dbusservice=net.sourceforge.mumble.murmur
 
 # If you want to use ZeroC Ice to communicate with Murmur, you need
 # to specify the endpoint to use. Since there is no authentication
 # with ICE, you should only use it if you trust all the users who have
 # shell access to your machine.
 # Please see the ICE documentation on how to specify endpoints.
 #ice="tcp -h 127.0.0.1 -p 6502"
 
 # Ice primarily uses local sockets. This means anyone who has a
 # user account on your machine can connect to the Ice services.
 # You can set a plaintext "secret" on the Ice conntection, and
 # any script attempting to access must then have this secret.
 #icesecret=
 
 # How many login attempts do we tolerate from one IP
 # inside a given timeframe before we ban the connection?
 # Note that this is global (shared between all virtual servers), and that
 # it counts both successfull and unsuccessfull connection attempts.
 # Set either Attempts or Timeframe to 0 to disable.
 #autobanAttempts = 10
 #autobanTimeframe = 120
 #autobanTime = 300
 
 # Murmur default to logging to murmur.log. If you leave this blank,
 # murmur will log to the console (linux) or through message boxes (win32).
 logfile=murmur.log (MODIFY THIS BASED ON YOUR OWN DESIRE OR DEFAULT)
 
 # If set, murmur will write its process ID to this file.
 pidfile=murmur_server
 
 # The below will be used as defaults for new configured servers.
 # If you're just running one server (the default), it's easier to
 # configure it here than through D-Bus or Ice.
 #
 # Welcome message sent to clients when they connect
 welcometext="
Welcome to this server running Murmur.
Enjoy your stay!
" (YOU CAN CHANGE THIS TOO) # Port to bind TCP and UDP sockets to port=64738 (YOU CAN CHANGE THIS DEFAULT) # Specific IP or hostname to bind to. # If this is left blank (default), murmur will bind to all available addresses. host=ENTER YOUR DOMAIN # Password to join server serverpassword=ENTER YOU PASSWORD HERE # Maximum bandwidth (in bits per second) clients are allowed # to send speech at. bandwidth=72000 (THIS IS SET TO MAX, REDUCE IF NECESSARY) # Maximum number of concurrent clients allowed. users=10 (CHANGE TO THE AMOUNT OF USER YOU THINK WILL BE USING IT) # Regular expression used to validate channel names # (note that you have to escape backslashes with \ ) #channelname=[ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|]+ # Regular expression used to validate user names # (note that you have to escape backslashes with \ ) #username=[-=\\w\\[\\]\\{\\}\\(\\)\\@\\|\\.]+ # Maximum length of text messages in characters. 0 for no limit. #textmessagelength=5000 # Maximum length of text messages in characters, with image data. 0 for no limit. #imagemessagelength=131072 # Allow clients to use HTML in messages, user comments and channel descriptions? allowhtml=true # Murmur retains the per-server log entries in an internal database which # allows it to be accessed over D-Bus/ICE. # How many days should such entries be kept? #logdays=31 # To enable public server registration, the serverpassword must be blank, and # this must all be filled out. # The password here is used to create a registry for the server name; subsequent # updates will need the same password. Don't lose your password. # The URL is your own website, and only set the registerHostname for static IP # addresses. # #registerName=Mumble Server #registerPassword=secret #registerUrl=http://mumble.sourceforge.net/ #registerHostname= # To enable bonjour service discovery uncomment the following line. # To change the name announced by bonjour adjust the registerName variable. # See http://developer.apple.com/networking/bonjour/index.html for more information # about bonjour. bonjour=True (IF YOU WANT TO PLAY MUSIC) # If you have a proper SSL certificate, you can provide the filenames here. #sslCert= (I WOULD ASSUME YOU CAN ADD THE ONE FROM CLEAR OS, JUST NEED TO KNOW WHERE THEY ARE STORED) #sslKey= # If murmur is started as root, which user should it switch to? # This option is ignored if murmur isn't started with root privileges. uname=mum ### - CHANGE TO THE NAME OF YOUR FILE IN INIT.D # If this options is enabled, only clients which have a certificate are allowed # to connect. #certrequired=False # You can configure any of the configuration options for Ice here. We recommend # leave the defaults as they are. # Please note that this section has to be last in the configuration file. # [Ice] Ice.Warn.UnknownProperties=1 Ice.MessageSizeMax=65536

If you have any input on how to setup the ini files, please direct it to the forum site.

From what I know Mumble has no limitation.

Modifying your Script File

Next will be to create script file so you can load the service from CLI or later in the webgui.

You need to run the service in order for it to create some files, including the .log file.

Copy the text below into a script file

Location of the file

/etc/rc.d/init.d/

Name the script file

mum

Enter the following information into the script file.

You can do this many ways, either by nano in the CLI (Command Line Interface) or use WinSCP to create the edit the file.

Yes, I used a modified ventrilo script again. Hey I like seeing the little green “OK” when my server starts!

#!/bin/bash
#
# Mumble This shell script takes care of starting and stopping
# the Mumble subsystem (Mum).
#
# chkconfig: - 90 10
# description: Mumble Chat Interface.
# processname: mum
# config: /do_not_remove/murmur.ini
# pidfile: /do_not_remove/murmur_server.pid
# Source function library.
. /etc/rc.d/init.d/functions

# CONFIG
prog="Mumble Server"
vent_path=/home/mum/server				# <----  Replace with the path to your /ventsrv directory
vent_user=mum						# <----  Replace with sudo user
vent_bin=$vent_path/
vent_server=murmur.x86
vent_log=$vent_path/murmur.log
vent_pid=$vent_path/murmur_server
# Startup ventrilo servers.
start(){
sudo -u $vent_user $vent_path/$vent_server
ret=0
if [ $ret -eq 0 ]; then
STARTTIMEOUT=30
while [ $STARTTIMEOUT -gt 0 ]; do
RESPONSE=`ls -al murmur_server.pid 2>&1` && break
echo "$RESPONSE" | grep -q "root" && break
break
sleep 1
let STARTTIMEOUT=${STARTTIMEOUT}-1
done
if [ $STARTTIMEOUT -eq 0 ]; then
echo "Timeout error occurred trying to start $prog Daemon."
action $"Starting $prog: " /bin/false
else
action $"Starting $prog: " /bin/true
fi
else
action $"Starting $prog: " /bin/false
fi

return $ret
}
stop(){
VENTPID=`cat "$vent_pid" 2>/dev/null `
if [ -n "$VENTPID" ]; then
/bin/kill "$VENTPID" >/dev/null 2>&1
ret=$?
if [ $ret -eq 0 ]; then
STOPTIMEOUT=60
while [ $STOPTIMEOUT -gt 0 ]; do
/bin/kill -0 "$VENTPID" >/dev/null 2>&1 || break
sleep 1
let STOPTIMEOUT=${STOPTIMEOUT}-1
done
if [ $STOPTIMEOUT -eq 0 ]; then
echo "Timeout error occurred trying to stop $prog Daemon."
ret=1
action $"Stopping $prog: " /bin/false
else
action $"Stopping $prog: " /bin/true
fi
else
action $"Stopping $prog: " /bin/false
fi
else
ret=1
action $"Stopping $prog: " /bin/false
fi
return $ret
}
restart(){
stop
start
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status vent
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac

Copy the same text above into a file and put it under

Type:  chown -R mum:allusers /etc/rc.d/init.d/mum
Type:  chmod +xw /etc/rc.d/init.d/mum
Type: chkconfig --add mum
Type: chkconfig --levels 345 mum on && chkconfig --list mum

Now you can start your server

Type: service mum start

If the service does start. You make need to modify the mum file be executable.  You can do this by this command. 
chmod +xw /etc/rc.d/init.d/mum

“chmod: cannot access `/home/mum/server/murmur.log': No such file or directory”

ignore it, because the file is not there, as you just created it. Then you should see the system come back as “OK” in green.

service mum restart
service mum stop

Almost Done

Next we need to create a link file under the /var/log so we can view it via the webgui.

Type: mkdir /var/log/mum
Type: cd /home/mum/server/
Type: cp murmur.log /var/log/mum/murmur.log
Type: rm murmur.log 
then Y
Type: chown -R mum:allusers /var/log/mum/murmur.log
Type: ln -s /var/log/mum/murmur.log murmur.log

Now restart the webconfig service

Type: service webconfig restart 

Now you should be able to access your log menu and see

mum/murmur.log

Next we'll want to add the necessary changes to the webgui in order to see the server as a service.

You need to locate the following file.

/var/webconfig/api/daemon.inc.php

And insert this line.

"mum"     => array("httpd",        "murmur.x86",     "no",  "Mumble Chat Server",     "no",  null),

Restart the webconfig

Type:  service webconfig restart

You should be all done!!!

content/en_us/kb_howtos_mumble_open_source_voip_client_and_server.txt · Last modified: 2015/02/11 10:22 (external edit)

https://clearos.com/dokuwiki2/lib/exe/indexer.php?id=content%3Aen_us%3Akb_howtos_mumble_open_source_voip_client_and_server&1710825709