Difference between revisions of "Mod Murmur"

From Mumble Wiki
Jump to: navigation, search
(Added big-ass warning box.)
(Formatting, reversed bias.)
Line 1: Line 1:
Before starting this how-to-setup-a-channel-viewer, a few definitions are required.  First 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. 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.
+
To set up a channel viewer for Mumble, the officially supported method is the [http://www.zeroc.com/ ZeroC Ice (Internet communication engine)] interface. Using Ice requires a setup like this:
  
= Introduction =
+
[[Image:Murmur_ICE_channel_viewer_diagram.png|none|thumb|300px|Communication method for Murmur]]
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 [[3rd_Party_Applications | all the channel viewer applications]], except for one, currently use the ICE protocol.  Using ICE requires a setup like this:[[Image:Murmur_ICE_channel_viewer_diagram.png|none|thumb|300px|Figure 1. Communication method for Murmur]]
+
The details of setting up and using the interface are documented on the [[Ice]] page. The interface provided by Murmur is described in the [http://mumble.sourceforge.net/slice/?title=slice generated documentation]. Server information is provided in the [[Channel Viewer Protocol]] format as JSON or XML.
** 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'').  Even if the admin can install ICE, 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 your host as possible (See ''Note Two'')
 
*** ''Note One'' - PHP 5.3 does have the ability to add modules without root access using a "phprc" file, however, ICE relies on other libraries, like the mcpp which is also not installed on most webhosts.
 
*** ''Note Two'' - This doesn't apply for commercial hosts of Mumble who run whole servers dedicated to just Mumble hosting.  And ICE can be used to administrate a Mumble server.
 
* '''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, but it is commonly found standard on most web hosts like Dreamhost running PHP 5.3.
 
  
= Use ICE =
+
= Reading the Database Directly =
 +
{{Warning
 +
|message=Interacting with the database for any reason but recovering from a corrupt database is ''highly discouraged!'' Doing so may lead to undesired results. In the best case (only reading from the file), you may get outdated or inconsistent data.
 +
}}
 +
{{Warning
 +
|message=Do ''not'' make your database file accessible over the internet. It contains sensitive user information.
 +
}}
  
* First install [[ICE]] which requires a bunch of dependencies, root SSH access to your webhost, maintence, etc.
 
* Install one of the multiple channel viewers built for ICE - one of the best is [[Mumble_PHP_Interface | MumPI]]
 
* Then install a [[3rd_Party_Applications | channel viewer]]
 
 
= Or the Direct Method =
 
<div>
 
{| style="text-align:center; background-color: #FCC; border: 1px solid }; padding: 0px; margin: 0 auto 2em auto; width: 80%;"
 
|-
 
|'''The instructions provided below are unsupported and not recommended for reasons mentioned on the [[Talk:Setting_Up_A_Channel_Viewer | discussion page]].'''<br>
 
<span style="font-size:1.1em; text-decoration:blink;">''Support for these instructions is '''not available'''.''</span><br />
 
<span style="font-size:1.5em">'''''We seriously aren't kidding about this.'''''</span><br />
 
<span style"font-size:0.2em">(the code does, however, work)</span>
 
|}
 
</div>
 
 
* First check to see if your server has the SQLite3 PHP library installed.  You can do this by putting a <?php phpinfo() ?> in a file and loading it on the server and searching for "SQLite3".
 
* First check to see if your server has the SQLite3 PHP library installed.  You can do this by putting a <?php phpinfo() ?> in a file and loading it on the server and searching for "SQLite3".
** If so, you are golden, if not, see if your host can install it.
 
 
* Get the "[http://www.fsxtools.de/j/downloadslink 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 [http://www.fsxtools.de/j/component/kunena/14-coding/11261-murmur-channel-viewer-installation-faq?Itemid=0#11261 here]:
 
* Get the "[http://www.fsxtools.de/j/downloadslink 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 [http://www.fsxtools.de/j/component/kunena/14-coding/11261-murmur-channel-viewer-installation-faq?Itemid=0#11261 here]:
<blockquote>
+
 
Then you only need the mod_murmur.php file (unzip the .zip). Edit it and replace this manually (note the ending slashes!):<br/>
+
Then you only need the mod_murmur.php file (unzip the .zip). Edit it and replace this manually (note the ending slashes!):
<blockquote>
+
 
$whatpath = "<nowiki>http://path.to/unzippedimages/</nowiki>";<br/>
+
$whatpath = "<nowiki>http://path.to/unzippedimages/</nowiki>";<
$whatname = "MyServer";<br/>
+
$whatname = "MyServer";
$dbhost = "/path/to/murmur"; // This is the path where it will look for the murmur.sqlite db!<br/>
+
$dbhost = "/path/to/murmur"; // This is the path where it will look for the murmur.sqlite db!
</blockquote>
+
 
</blockquote>
 
'''For Security reasons''' - make sure your Mumble database is in a directory that cannot be downloaded from.  For example put the murmur server in "/home/<username>/murmur" and the mod_murmur script in "/home/<username>/website.com/mod_murmur.php".
 
 
* Mod_murmur has been tested against v1.2.3 of Murmur
 
* Mod_murmur has been tested against v1.2.3 of Murmur

Revision as of 21:36, 25 July 2011

To set up a channel viewer for Mumble, the officially supported method is the ZeroC Ice (Internet communication engine) interface. Using Ice requires a setup like this:

Communication method for Murmur

The details of setting up and using the interface are documented on the Ice page. The interface provided by Murmur is described in the generated documentation. Server information is provided in the Channel Viewer Protocol format as JSON or XML.

Reading the Database Directly

Icons oxygen 48x48 status task-attention.png
Warning: Interacting with the database for any reason but recovering from a corrupt database is highly discouraged! Doing so may lead to undesired results. In the best case (only reading from the file), you may get outdated or inconsistent data.
Icons oxygen 48x48 status task-attention.png
Warning: Do not make your database file accessible over the internet. It contains sensitive user information.


  • First check to see if your server has the SQLite3 PHP library installed. You can do this 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!
  • Mod_murmur has been tested against v1.2.3 of Murmur