VORSICHT! die Seite ist nicht aktuell ..

[Howto] Mumble ( murmur ) Server mit mySQL aufsetzten

Voraussetzungen:

  • Beliebigen SSH Clienten bedienen können ( z.B. Putty )
  • ca. 5-10 min Zeit
  • Linux System ( Debian, Ubuntu ... )
  • Das Paket unlzma muss zum Entpacken installiert sein

Hinweise:

Das Tutorial wurde getestet unter Ubuntu 8.04 sollte aber unter anderen Ubuntu und Debian Distributionen funktionieren.
Ob es auch bei anderen Systemen klappt kann ich nicht sagen ...
( Sollte aber zumindest als Leitfaden zu gebrauchen sein. )

Ich übernehme auch keine Haftung für eventuelle Schäden ;P


Wenn ich von Mumble rede meine ich eigentlich Murmur ( Serverkomponente von Mumble ).

[Step #1] Mumble Benutzer erstellen

Als root ( sudo ) ausführen:

Code:
1.
adduser mumble
 

Ausgabe:

Code:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
root@server:~# adduser mumble
Adding user `mumble' ...
Adding new group `mumble' (1004) ...
Adding new user `mumble' (1005) with group `mumble' ...
Creating home directory `/home/mumble' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for mumble
Enter the new value, or press ENTER for the default
        Full Name []: 
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 
Is the information correct? [y/N] y
root@server:~# 
 

[Step #2] Mumble downloaden & entpacken

Als erstes loggen wir uns mit dem neuen Benutzer mumble per SSH ein. Auf SourceForge / Mumble die neueste ( bzw. gewünschte ) Version ( hier 1.2.0 ) mit wget Downloaden.( die static *.tar.lzma Version )
Das Archiv mit unlzma murmur-static_x86-*.tar.lzma && tar xvf murmur-static_x86-*.tar entpacken. Das ganze sieht dann ( gekürzt ) ca. so aus:

Code:
1.
2.
3.
4.
5.
mumble@server:~# wget http://downloads.sourceforge.net/.../murmur-static_x86-1.2.0.tar.lzma
{ ... }
mumble@server:~# unlzma murmur-static_x86-*.tar.lzma && tar xvf murmur-static_x86-*.tar

{ ... }
mumble@server:~# cd murmur-static_x86-*
 

[Step #3] mySQL Tabelle anlegen


Wir loggen uns also per SSH oder phpMyAdmin in die MySQL Datenbank ein, und führen folgenden SQL Code aus:
( GEHEIM_PASSWORT muss durch ein von dir gewähltes, sicheres Passwort erstezt werden. )
( Die Datenbank heisst hier murmur, genau wie der Benutzer )

Code:
1.
2.
3.
4.
5.
CREATE USER 'murmur'@'localhost' IDENTIFIED BY 'GEHEIM_PASSWORT';
GRANT USAGE ON * . * TO 'murmur'@'localhost' IDENTIFIED BY 'GEHEIM_PASSWORT' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS `murmur` ;
GRANT ALL PRIVILEGES ON `murmur` . * TO 'murmur'@'localhost';
 

[Step #4] Mumble .ini bearbeiten

Zum bearbeiten von solchen Sachen benutze ich nano. Ihr könnt aber auch gerne vi(m) oder sonst was benutzen ;P
Die Datei heisst ( welch Wunder ); murmur.ini .

Im Großen und Ganzen kann man die config so lassen ...
Sich aber alle Befehle mal durchzuschauen und evtl. auf seine Bedürfnisse anzupassen kann aber nie schaden!

Ein Paar wichtige Dinge müssen aber geändert werden, da wir Mumble ja mit Hilfe einer mySQL DatenBank betreiben wollen:

Code:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
# 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
 

Wird geändert zu:
Vorsicht: das dbPassword muss in Anführungszeichen stehen!

Code:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.

# Path to database. If blank, will search for
# murmur.sqlite in default locations or create it if not found.
database=murmur

# 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=murmur
dbPassword="GEHEIM_PASSWORT"
dbHost=localhost
#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
dbus=system

# Alternate service name. Only use if you are running distinct
# murmurd processes connected to the same D-Bus daemon.
dbusservice=net.sourceforge.mumble.murmur
 

[Step #5] Murmur starten

Dazu reicht ein simples:
Vorsicht: Es sollte nach dem start unbedingt noch das SuperUser Passwort geändert werden. Wie steht im nächsten Absatz.

Code:
1.
mumble@server:~# ./murmur.x86
 


[Step #6] Murmur Verwalten ( per DBus )

Zu beachten:

  • [UserID] ist durch eure userID zu erstezen
  • [ServerID] ist durch eure ServerID zu ersetzten

Server verwalten:

# Neuen ( virtuellen ) Server erstellen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.newServer

# Server ( virtuellen ) starten
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.start int32:[ServerId]

# Server ( virtuellen ) stoppen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.stop int32:[ServerId]

# Channel abfragen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call /[ServerId] net.sourceforge.mumble.Murmur.getChannels

# Default Channel für ( virtuellen ) Server setzten
# [ChannelId] = eure Channel ID
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setConf int32:[ServerId] string:"defaultchannel" string:"[ChannelId]"

# .ini Konfiguration abfragen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.getDefaultConf

# Konfiguration von virtuellem Server abfragen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.getAllConf int32:[ServerId]

# Allgemeiner Befehl zum festlegen von Werten in der Konfiguration
# [KEY] = key ( z.b. users ); [VALUE] = Wert ( z.b. 10 )
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setConf int32:[ServerId] string:"[KEY]" string:"[VALUE]"

# Slotanzahl für ( virtuellen ) Server festlegen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setConf int32:[ServerId] string:"users" string:"15"

# Port für ( virtuellen ) Server festlegen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setConf int32:[ServerId] string:"port" string:"64738"

# Willkommens-Nachricht für ( virtuellen ) Server festlegen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setConf int32:[ServerId] string:"welcometext" string:"HTML Text ohne öäüß"

# Bandbreite für ( virtuellen ) Server festlegen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setConf int32:[ServerId] string:"bandwidth" string:"75000"

# Servername für den Clienten
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setConf int32:[ServerId] string:"registername" string:"Server Name"

Benutzer verwalten:

# SuperUser Passwort festlegen
# [Passwort] mit dem gewählten Passwort erstetzen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setSuperUserPassword int32:[ServerId] string:"[Passwort]"

# Neuen Benutzer registrieren
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call /[ServerId] net.sourceforge.mumble.Murmur.registerPlayer string:"UserName"

# Benutzer bearbeiten
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call /[ServerId] net.sourceforge.mumble.Murmur.setRegistration int32:[userID] string:"UserName" string:"e-Mail" string:"password"

# Benutzer Informationen abfragen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call /[ServerId] net.sourceforge.mumble.Murmur.getRegistration int32:[userID]

# Benutzer Status abfragen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call /[ServerId] net.sourceforge.mumble.Murmur.getRegisteredPlayers string:"UserName"

# Alle Benutzer auf ( virtuellem ) Server auflisten
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call /[ServerId] net.sourceforge.mumble.Murmur.getPlayers

Anwendungsbeispiel:

Angenommen wir wollen den Standardserver ( ID 1 ) mit dem Standardport stoppen und einen Neuen ( ID 2 ) erstellen, dann sollte das ganze wie folgt ablaufen;

# Den default Server stoppen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.stop int32:1

# Neuen Server anlegen
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.newServer

# Slotanzahl für den neuen Server angeben
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setConf int32:2 string:"users" string:"50"

# Den Port für den neuen Server angeben
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setConf int32:2 string:"port" string:"64740"

# Die neue Willkommensnachricht
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setConf int32:2 string:"welcometext" string:"Nach dem Tut von matthis-brugger.de - Willkommen =]"

# Bandbreite ( zur Zeit das höchstmögliche )
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.setConf int32:2 string:"bandwidth" string:"110000"

# Und zum Schluss den Serve starten
dbus-send --system --print-reply --dest=net.sourceforge.mumble.murmur --type=method_call / net.sourceforge.mumble.Meta.start int32:2

Schlusswort

Ich hoffe ihr habt das Tutorial verstanden. Ich bitte um Kommentare und Bewertungen =]
Gruß Matthis