Inhaltsverzeichnis

Interconnect-Bot von dafoxia auf Basis von Mumble-Ruby

Eine sehr viel umständlichere Anleitung auf Basis von normalen Mumble-Clienten gibt es hier.

Der Interconnect-Bot von dafoxia basiert auf mumble-ruby und nutzt den erst kürzlich hinzugefügten Rückkanal.

Diese Anleitung wurde für ein aktuelles Debian 7 „Wheezy“ geschrieben.

Ziel der Anleitung

Es sollen zwei Kanäle von zwei Mumble-Servern mit dem Interconnect-Bot von dafoxia verbunden werden.

Demonstration der Funktion

Ein Beispielvideo

In diesem Video wurde der Ton auf Server2 aufgenommen.

Das Video: https://f.natenom.de/nidx/shv/mumble/2014-08_demo_interconnectbot-dafoxia.mp4

Screenshot

Und so sieht es dann aus, wenn auf jeden Server je ein Benutzer mit im Kanal sitzt:

Systemabhängigkeiten installieren

apt-get install curl libyaml-dev git libopus-dev build-essential zlib1g zlib1g-dev

Neuen Benutzer erstellen

Der Sauberkeit halber wird ein neuer Benutzer erstellt:

adduser interconnect

Als neuer Benutzer anmelden

su - interconnect

Alle weiteren Kommandos werden mit dieser Benutzerkennung durchgeführt.

Ruby installieren

cd
curl -L https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm autolibs disable
rvm install 2.1.1
rvm --create use @interconnect

Benötigte Projekte installieren

opus-ruby installieren

cd
git clone https://github.com/dafoxia/opus-ruby.git
cd opus-ruby/
rvm use @interconnect
gem build opus-ruby.gemspec
rvm @interconnect do gem install opus-ruby-*.gem 
cd ..

celt-ruby von dafoxia installieren

cd
git clone https://github.com/dafoxia/celt-ruby.git
cd celt-ruby/
rvm use @interconnect
gem build celt-ruby.gemspec
rvm @interconnect do gem install celt-ruby-*.gem 
cd ..

mumble-ruby von dafoxia installieren

Es kann nicht das normale mumble-ruby Repository verwendet werden, da in diesem etwas Funktionalität fehlt, die bei dafoxia drin ist.

cd
git clone https://github.com/dafoxia/mumble-ruby.git
cd mumble-ruby
rvm use @interconnect
gem build mumble-ruby.gemspec
rvm @interconnect do gem install mumble-ruby-*.gem
cd ..

rumble-bots installieren

Dies ist der eigentliche Interconnect-Bot.

cd
git clone https://github.com/dafoxia/rumble-bots.git
cd rumble-bots
rvm use @interconnect

Interconnect-Bot und Kanalstruktur auf beiden Mumble-Servern einrichten

Konfiguration des Bots

Man öffnet die Datei Interconnect.rb im Verzeichnis ~/rumble-bots mit einem beliebigen Editor.

Hier findet man im unteren Bereich die folgenden Einstellungen;, die man für seine Zwecke anpassen muss. Hier eine Konfiguration, die den Server von dafoxia mit dem Natemologie-Zentrum verbindet.

#----------------------------------------------------------
#   connection configuation
#----------------------------------------------------------
@server1_name = "soa.chickenkiller.com"
@server1_port = 64739
@server1_bitrate = 72000
@server1_channel = "Interconnect Room"
@server1_awaychan = "Interconnect Away"
@server1_time2away = 20
@server1_time2disconnect = 50
@server1_BotName = "IC_Server1"
@server2_name = "mumble.natenom.com"
@server2_port = 64738
@server2_bitrate = 72000
@server2_channel = "Interconnect Room"
@server2_awaychan = "Interconnect Away"
@server2_time2away = 20
@server2_time2disconnect = 50
@server2_BotName = "IC_Server2"

#----------------------------------------------------------
#   ensure that all names are allowed on the server and 
#   all channels exists!
#   otherwise the bot will stutter or stop to work!
#----------------------------------------------------------

Kanalstruktur auf beiden Mumble-Servern

Damit die hier verwendete Konfiguration greift, müssen beide Server wie folgt strukturiert sein:

Wo genau sich die Kanalstruktur befindet, ist egal, die Kanäle werden auf dem gesamten Server vom Bot gefunden. Es muss lediglich sichergestellt werden, dass unregistrierte Benutzer die beiden Kanäle betreten können.

Script ausführen

cd
cd rumble-bots
rvm use @interconnect
ruby Interconnect.rb

Spätestens beim nächsten Login muss die erste Zeile wieder ausgeführt werden können, damit ruby die notwendige Umgebung zur Verfügung gestellt bekommt.