Mumble

From DreamHost
Jump to: navigation, search

Mumble is a voice server application like Teamspeak and Ventrilo, however it is open source and built for minimum latency and clear voice. Mumble is split into two parts, the client side app called "Mumble" and the server side binary called "Murmur" which the client side apps log into.

Contents

Setting up Murmur

You can only run Murmur on Dreamhost Virtual Private Servers, as it will be automatically killed on shared hosting accounts. Installing the Murmur is easiest if done from SSH, but it could be done by uploading the executable and support files with FTP and using a cronjob to start it. You can get further instructions on running Murmur on the Mumble wiki.

Once you have Murmur running, then you will likely want to setup a channel viewer.

Setting Up a Channel Viewer

A "Channel Viewer" is any code that runs separate from Murmur and allows a user to view who is currently logged into the murmur server. Most channel viewers are used on websites and take the form of PHP, perl, javascript or various other web code.

Introduction

There are two ways to setup a channel viewer for Murmur, one is officially supported and the other is not.

  • ICE - The officially supported method is by using "ICE" or the "Internet Communication Engine", a third-party PHP library built by ZeroC. Almost all the channel viewer applications, except for one, currently use the ICE protocol.
    • Unfortunately using ICE complicates things. Mumble works best on servers that are connected via Mbit connections not your home DSL line. Most Mbit connected servers are commercial and that means the admin doesn't likely have root access to install ZeroC's ICE (see Note One). If you have a VPS, you are given sudo control and could install the PHP ICE library, however, most smart server admins would not because of security and upgrade issues. It is much better to leave as much of a production web server untouched and under the control of Dreamhost as possible.
      • Note One - PHP 5.3 does have the ability to add modules without root access using a "phprc" file (see PHP.ini), however, ICE relies on other libraries, like mcpp which is not installed by Dreamhost.
  • Direct - The other method is to directly access the log file and SQLite3 database that Murmur uses.
    • Although not officially supported, this is the simplest method because all it requires is one PHP script running on the same server as Mumble. Because the Murmur database file is in SQLite3 format, this method still requires the SQLite3 PHP library which is automatically included on Dreamhost when running PHP 5.3.

Use ICE

  • First install ICE which requires a bunch of dependencies, root SSH access, maintenance, etc.
  • Install one of the multiple channel viewers built for ICE - one of the best is MumPI
  • Then install a channel viewer

Or the Direct Method

  • For Dreamhost, make sure you are using PHP 5.3 FastCGI for your particular domain and the SQLite3 PHP library is already included. You can check by putting a <?php phpinfo() ?> in a file and loading it on the server and searching for "SQLite3".
  • Get the "Mod_murmur.php" PHP script and if you are like most, you will want to setup a stand alone install and the instructions below are copied from here:
Then you only need the mod_murmur.php file (unzip the .zip). Edit it and replace this manually (note the ending slashes!):
$whatpath = "http://path.to/unzippedimages/";
$whatname = "MyServer";
$dbhost = "/path/to/murmur"; // This is the path where it will look for the murmur.sqlite db!

How to host the viewer on a different server than murmur is running on ...
The script and architecture of SQLite DBs expect normally that the webpage with the Mod_Murmur viewer is hosted on the same machine as the Murmur server. That is because it needs to access the local SQLite DB (murmur.sqlite).
You still can access Murmur SQLite DBs remotely, using a simple trick:
Download the murmur.sqlite first, then access this local copy. All you need to do is add this line to mod_murmur.php:

copy("http: // www .url.to/murmur-static_x86-1.2.3/murmur.sqlite","murmur.sqlite");

So, in your mod_murmur.php:

...
copy("http://www.url.to/murmur-static_x86-1.2.3/murmur.sqlite","murmur.sqlite");
$dbhandle = new SQLite3('murmur.sqlite');
...

This will locally copy the sqlite db so your viewer can access it. Keep an eye on the path to the DB ($dbhost) settings ... the path should point to the directory where you downloaded the murmur.sqlite to. Leave it blank as a first guess ...
Also you understand that this method is requiring that the murmur.sqlite is accessible via web (http) ... if the murmur hosting machine is not configured like that this workaround won't work.

Personal tools