Difference between revisions of "Mod Murmur"

From Mumble Wiki
Jump to: navigation, search
(Genesis - Added a description of how to setup a channel viewer via ICE or other)
(Cull to valid information, make a small link hub.)
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.
= Introduction =
= Introduction =
There are two ways to setup a channel viewer for Murmur, one is officially supported and the other is not.
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:
* '''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]]
** 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 =
* First install [[ICE]] which requires a bunch of dependencies, root SSH access to your webhost, maintence, etc.
[[Image:Murmur_ICE_channel_viewer_diagram.png|none|thumb|300px|Communication method for Murmur]]
* 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 =
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.
* 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 "[[3rd_Party_Applications | 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]:
Then you only need the mod_murmur.php file (unzip the .zip). Edit it and replace this manually (note the ending slashes!):<br/>
$whatpath = "http://path.to/unzippedimages/";<br/>
$whatname = "MyServer";<br/>
$dbhost = "/path/to/murmur"; // This is the path where it will look for the murmur.sqlite db!<br/>
'''How to host the viewer on a different server than murmur is running on ...'''<br/>
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).<br/>
You still can access Murmur SQLite DBs remotely, using a simple trick:<br/>
Download the murmur.sqlite first, then access this local copy. All you need to do is add this line to mod_murmur.php:<br/>
copy("http: // www .url.to/murmur-static_x86-1.2.3/murmur.sqlite","murmur.sqlite");<br/>
So, in your mod_murmur.php:<br/>
$dbhandle = new SQLite3('murmur.sqlite');<br/>
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 ...<br/>
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.

Revision as of 09:21, 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.