https://wiki.mumble.info/api.php?action=feedcontributions&user=Ilumos&feedformat=atomMumble Wiki - User contributions [en]2024-03-28T21:04:58ZUser contributionsMediaWiki 1.31.0https://wiki.mumble.info/index.php?title=3rd_Party_Applications&diff=92243rd Party Applications2016-03-10T22:14:47Z<p>Ilumos: /* Channel Viewers */ Corrected flask status</p>
<hr />
<div>'''Please edit this page if you created or found an application you think should be included. Note that you must register with the wiki in order to be able to edit it.'''<br />
<br />
<br />
= Libraries =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable" width="100%"<br />
! Name<br />
! Technology<br />
! Comment<br />
! License<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''gumble'''<br />
| Go<br />
| -<br />
| MPL 2.0<br />
| [https://github.com/layeh/gumble/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''Jumble'''<br />
| Java (Android)<br />
| Used for [[Plumble]]<br />
| GPLv3<br />
| [https://github.com/Morlunk/Jumble]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''MumbleKit'''<br />
| Objective-C<br />
| -<br />
| BSD3<br />
| [https://github.com/mumble-voip/mumblekit]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''MumbleSharp'''<br />
| C#<br />
| -<br />
| MIT<br />
| [https://github.com/martindevans/MumbleSharp]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''node-mumble'''<br />
| JavaScript (Node.js)<br />
| -<br />
| MIT<br />
| [https://github.com/Rantanen/node-mumble]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumlib'''<br />
| C++, boost::asio<br />
| Basic functionality, no ACL<br />
| LGPLv3<br />
| [https://github.com/slomkowski/mumlib]<br />
|}<br />
<br />
= Web-Interfaces =<br />
<br />
There are several browser based interfaces which can be used to administrate the Murmur server. If you need something very basic or want to create your own interface you should take a look at Murmur's [https://github.com/mumble-voip/mumble/tree/master/scripts/server script folder] which contains some basic web-interface examples which use [[Ice]] or [[DBus]] (we recommend using Ice, as DBus is kept for backwards compatibility, and is not being extended for quite some time).<br />
Additionally the following table contains a collection of more elaborate Web-Interfaces:<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Technology<br />
! License<br />
! Current Version<br />
! Last Release<br />
! [[DBus]]<br />
! [[Ice]]<br />
! 1.2.x<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| [http://php.net/ PHP]<br />
| {{GPLv3}}<br />
| V2.5.2<br />
| 2013-02-24<br />
| bgcolor=#ddffdd | Yes <br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Serverhosting; Permissionssystem; Webinterface to manage Server User, Plugin User and virtual Servers; request function for Server Users; uses DBUS or Slice or nothing; Channelviewer for own homepage; Logging functions; German, English, Frensh; Template functions and more! DBUS is supported in all Versions <= V2.2.1!<br />
| [http://www.mumb1e.de/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble-Django]]<br />
| [http://www.python.org Python] + [http://www.djangoproject.com Django]<br />
| {{GPLv3}}<br />
| V2.7<br />
| 2012-03-31<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Channel viewer (internal and support for others), admin panel, IPv6, [[Channel Viewer Protocol]], Munin plugin, CLI, supports multiple servers and instances, user registration, textures, gravatar, translated to English, German, French, Italian and Japanese<br />
| [http://mumble-django.org]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| [http://php.net/ PHP]<br />
| {{LGPLv3}}<br />
| V2.2.6<br />
| 2015-12-09<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Admin and User functionality; multiserver (start, stop, add, remove, edit virtual servers), registration & online user management, interface admin, admin-group and permission system, serverviewer<br />
| [http://github.com/Kissaki/MumPI/wiki]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| PHP Mumble Admin<br />
| [http://php.net/ PHP]<br />
| {{GPLv3}}<br />
| V0.4.3<br />
| 2013-02-07<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Complete administration control panel for Murmur designed for multiple virtual server. [http://sourceforge.net/projects/phpmumbleadmin/ Website]<br />
| [http://sourceforge.net/projects/phpmumbleadmin/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumbled Webinterface<br />
| [http://php.net/ PHP]<br />
| {{GPLv3}}<br />
| V0.2<br />
| 2010-01-22 (Inactive)<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| visit: http://mumbled.de/content/238/mumbled-phpice-webinterface<br />
| [http://sourceforge.net/projects/mumbled/]<br />
|<br />
<br />
|-bgcolor="#f8f8ff"<br />
| MyMumb-Panel<br />
| [http://php.net/ PHP]<br />
| {{GPLv3}}<br />
| V0.1<br />
| 2014-09-18<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Multi-server management, Users Managment and soon channel viewer.<br />
| [https://github.com/dieonar/MyMumb-Panel/]<br />
|}<br />
<br />
<br />
<small>Note: We recommend using a preferably [[Ice]] or at least [[DBus]] capable interface.</small><br />
<br />
= {{anchor|Standalone Applications}}Desktop Applications (GUI) =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Murmur Admin Console<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Add, edit and delete users over SSH<br />
| [http://bograt.com/Murmur/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [http://yulli.cleanvoice.ru/ Yulli Mur]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Add, remove and control virtual servers remotely (supports SSH)<br />
| [http://yulli.cleanvoice.ru]<br />
|}<br />
<br />
= Commandline-Interfaces =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mice]]<br />
| multi-platform<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Helper script written in [http://www.python.org Python]<br />
| [https://github.com/mumble-voip/mumble-scripts/raw/master/Helpers/mice.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| RegMum<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Bat script<br />
| [[DBus_scripts#Windows|DBus_scripts]]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| mmctl<br />
| [http://www.python.org Python]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| 1.1.8 - Easy to use script for managing servers and adding users locally<br />
| [http://github.com/mbr/mmctl]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur-manager]]<br />
| Ruby<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| 1.2.1<br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|}<br />
<br />
= Bots =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Description<br />
! Programming language<br />
! Comment<br />
! License<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''Calico'''<br />
| A Mumble bot that connects to an SQL server and responds to text commands with audio / text responses. Built with [[piepan]].<br />
| Lua<br />
| -<br />
| MIT<br />
| [https://github.com/Oka-/calico]<br />
|-bgcolor="#f8f8ff"<br />
| '''Eve-Bot'''<br />
| From the website: This bot is written for online multiplayer communities playing games like TF2 or CSS, where the spectator's view of the game is sometimes delayed to prevent collusion.<br />
| Python<br />
| -<br />
| {{BSD3}}<br />
| [http://frymaster.127001.org/mumble/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumble-bots'''<br />
| Several bot scripts based on [[Mumble Ruby]].<br />
| Ruby<br />
| -<br />
|<br />
| [https://github.com/SuperTux88/mumble-bots]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumble-dicebot'''<br />
| Connects as a user to a [[Mumble Server]] and listens for dice commands.<br />
| Ruby<br />
| -<br />
| [https://en.wikipedia.org/wiki/WTFPL WTF]<br />
| [https://github.com/vaxr/mumble-dicebot/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumble-ruby'''<br />
| A headless [[Mumble client]] which can send audio from a named pipe into a [[Mumble server]]. Further information is available [[Mumble Ruby|here]].<br />
| Ruby<br />
| -<br />
| MIT License<br />
| [https://github.com/perrym5/mumble-ruby]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumblebot'''<br />
| Connects as a user to a server and listens for text commands. Among others it has a soundboard. Based on [[Mumble Ruby]]<br />
| Ruby<br />
| -<br />
|<br />
| [https://github.com/erulabs/mumblebot/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumblebot'''<br />
| Connects as a user to a [[Mumble Server]] and can run local scripts to interact with the server.<br />
| Python<br />
| -<br />
| {{BSD3}}<br />
| [http://code.google.com/p/mumblebot/wiki/About]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumblecop'''<br />
| Connects to a [[Mumble Server]] and listens for commands which trigger plugins. Several plugins included already, including ones for streaming youtube audio, rolling dice, and displaying a countdown. More plugins can easily be added. Uses [[Mumble Ruby]]<br />
| Ruby<br />
| -<br />
| MIT<br />
| [https://bitbucket.org/Flandoo/mumblecop]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumblerecbot'''<br />
| Connects as a user to a server and records the audio stream as a file. Is based on [[PyMumble]].<br />
| Python<br />
| -<br />
| {{GPLv3}}<br />
| [https://github.com/Robert904/mumblerecbot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''piepan'''<br />
| An easy to use framework for writing Mumble bots using Lua<br />
| Lua<br />
| -<br />
| MPL 2.0<br />
| [https://github.com/layeh/piepan]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''sftmumblebot'''<br />
| A chat bridge between IRC and a [[Mumble Server]].<br />
| Python<br />
| -<br />
| {{GPLv3}}<br />
| [https://github.com/SFTtech/sftmumblebot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
|'''MumbleDJ'''<br />
| A Mumble bot that lets friends listen to music together via YouTube.<br />
| Go<br />
| -<br />
| MIT<br />
| [https://github.com/matthieugrieger/mumbledj]<br />
<br />
|-bgcolor="#f8f8ff"<br />
|'''Mumble-Ruby-Pluginbot'''<br />
| Mumble-Ruby-Pluginbot is an audio bot that can be controlled through text messages in the Mumble client, can download music from Youtube and other online sources. It offers many commands to control the MPD session which feeds the bot, for example to change the volume, display and load playlis(s), and many more.<br />
| Ruby<br />
| -<br />
| -<br />
| [http://wiki.natenom.com/w/Mumble-Ruby-Pluginbot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
|'''Ultros'''<br />
| Extensible, multi-protocol, general-purpose bot. <br />
| Python<br />
| -<br />
| [http://opensource.org/licenses/Artistic-2.0 Artistic-2.0]<br />
| [https://github.com/UltrosBot/Ultros]<br />
<br />
|-bgcolor="#f8f8ff"<br />
|'''Mumsi'''<br />
| SIP to Mumble gateway based on PJSIP stack and Mumlib library. Enables the user to participate in Mumble conference using SIP client or perhaps ordinary telephone, by VoIP provider.<br />
| C++<br />
| -<br />
| [http://opensource.org/licenses/Apache-2.0 Apache-2.0]<br />
| [https://github.com/slomkowski/mumsi]<br />
<br />
|}<br />
<br />
= Channel Viewers =<br />
<br />
We encourage anyone developing a viewer to use the open and documented [[Channel Viewer Protocol]] to ensure inter-operability and compatibility.<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Provides CVP<br />
! Reads CVP<br />
! Proprietary (Non-CVP)<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble.com<br />
| Web<br />
| Javascript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| Enter the URL to the JSON encoded Channel Viewer Protocol provided by your Mumble host to create a unique channel viewer. Requires a CVP provider to query the Mumble server and generate the JSON.<br />
| [http://www.mumble.com/mumble-server-status.php Mumble.com Status Tool]<br />
<br />
<br />
|-bgcolor="#f8f8f8"<br />
| FlaskCVP<br />
| Web<br />
| Python, [http://flask.pocoo.org/ Flask]<br />
| '''Yes'''<br />
| No<br />
| No<br />
| A minimalistic CVP provider written using Mumble-Django's connection library and the Flask framework.<br />
| [https://bitbucket.org/Svedrin/mumble-django/src/tip/pyweb/flaskcvp.py flaskcvp.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| GTMurmur<br />
| Web<br />
| Binary<br />
| '''Yes'''<br />
| No<br />
| '''Yes'''<br />
| Server-side binary for Murmur which adds support for GameTracker.com queries. Also provides CVP via socket which can be used by other channel viewers. <br />
| [http://www.gametracker.com/downloads/gtmurmurplugin.php GameTracker.com]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| MurmurQuery<br />
| Web<br />
| PHP<br />
| No<br />
| '''Yes'''<br />
| No<br />
| PHP class that reads CVP JSON data from the GTMurmur Plugin and displays users and channels in HTML.<br />
| [http://github.com/edmundask/MurmurQuery GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| Web<br />
| PHP<br />
| No<br />
| No<br />
| '''Yes'''<br />
| Full channel viewer controlling and editing in MAP! You can also include this CV via Iframe in your homepage. And you can edit your whole server using the functions of MAP!<br />
| [http://www.mumb1e.de/ Mumb1e.de]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Murmur-manager]]<br />
| Web<br />
| Ruby<br />
| No<br />
| No<br />
| '''Yes'''<br />
| <br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble reader]]<br />
| Web<br />
| PHP/Javascript<br />
| '''Yes'''<br />
| '''Yes'''<br />
| No<br />
| JS Viewer which uses PHP with Ice 3.3 to query a Mumble server. Does not support the latest version of Ice (3.4) but the clean JS front-end can be used with other CVP providers.<br />
| [http://mumble.rko.nu/ Webpage]<br />
[http://code.google.com/p/mumblereader/ GoogleCode]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| Web<br />
| PHP/Javascript<br />
| '''Yes'''<br />
| '''Yes'''<br />
| '''Yes'''<br />
| JS-Viewer uses own protocoll/calls to MumPI.<br />
MumPI provides JSON-Channel Viewer Protocol-webservice for other viewers.<br />
| [http://github.com/Kissaki/MumPI/wiki @Github]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| MView<br />
| Web<br />
| Javascript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| JS-Viewer injecting HTML (no evil iframes etc necessary!).<br />
| [https://github.com/Kissaki/MView MView @Github]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumble Watcher<br />
| Desktop<br />
| QT/KDE<br />
| No<br />
| '''Yes'''<br />
| No<br />
| Useful if you want to see who's online in a Desktop app without actually connecting, e.g. because you're on a PC without a proper headset.<br />
| [http://bitbucket.org/Svedrin/mumble-watcher/ BitBucket]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Mumble-Django]]<br />
| Web<br />
| JavaScript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| An ExtJS component that inherits Ext.tree.TreeView to build a channel viewer.<br />
| [http://mumble-django.org/bb/src/tip/pyweb/mumble/media/js/channelviewer.js BitBucket] [http://mumble-django.org/docs/api/channelviewer.html Documentation]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble-widget<br />
| Web<br />
| JavaScript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| A CVP compatible web-based channel viewer widget to display active users on your Mumble server. Easy setup, just copy and paste snippet of code to your website.<br />
| [http://mumble-widget.guildbit.com/ Website] [https://github.com/alfg/mumble-widget Github] [http://jsfiddle.net/alfg/3m86purL/ JSFiddle Example]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Command Channel<br />
| Web<br />
| PHP/JavaScript/EQdkp-Plus/Joomla!/WordPress<br />
| No<br />
| '''Yes'''<br />
| No<br />
| A robust channel viewer that has been packaged into several different formats for popular Content Management Systems. You can easily change the icons and colors used.<br />
| [http://commandchannel.com/Downloads/eqdkp-plus/mumbleviewer.zip Module for EQdkp-Plus]<br />
<br />
[http://extensions.joomla.org/extensions/sports-a-games/game-servers/16358 Extension for Joomla!]<br />
<br />
[http://wordpress.org/extend/plugins/mumble-channel-viewer/ Plugin for WordPress]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-php.zip PHP only]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-javascript.zip JavaScript only]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer/wiki JavaScript Documentation]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer Source code]<br />
<br />
[http://github.com/ClusterFCK/Drupal-Mumble-Viewer Module for Drupal 7 (Based on the above)]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| PHP Mumble Viewer<br />
| Web<br />
| PHP<br />
| '''Yes'''<br />
| '''Yes'''<br />
| No<br />
| Project abandoned.<br />
| [http://phpmumbleviewer.coolcow.org/ phpmumbleviewer.coolcow.org]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Voice Comms Viewer]]<br />
| Web<br />
| JavaScript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| A site that creates Channel Viewers for Mumble, Teamspeak & Ventrilo using the Channel Viewer Protocol<br />
| [http://commsviewer.com/ commsviewer.com]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble Channel Viewer<br />
| Web<br />
| JavaScript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| Chrome extension that reads CVP JSON or XML data and displays channels and users.<br />
| [https://chrome.google.com/webstore/detail/mumble-channel-viewer/delalapmnpndmfopplmjegencdnddfcc Chrome Web Store]<br />
<br />
[https://github.com/nunof07/chrome-mumble GitHub]<br />
<br />
|}<br />
<br />
= Miscellaneous Scripts =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Evebot<br />
| Bot<br />
| Python<br />
| Mumble client<br />
| Relays comms from one channel to another with a delay (to synchronise comms for time-delayed game spectators, for example)<br />
| [http://frymaster.127001.org/mumble/ Evebot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumo]]<br />
| Bot<br />
| Python<br />
| ICE<br />
| Highly extensible script that can use external events (such as gamestate changes) to dynamically shuffle users into channels and groups. Support for various user states and the game "Battlefield 2".<br />
| [https://github.com/mumble-voip/mumo mumo]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Murmur-Munin<br />
| Statistics<br />
| Python<br />
| ICE<br />
| A plugin for Munin to create statistics for your Mumble-Server.<br />
| [https://github.com/Natenom/munin-plugins/blob/master/murmur-munin.py Murmur-Munin]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Murmur-REST<br />
| RESTful API<br />
| Python<br />
| ICE<br />
| A RESTful API for administering virtual Mumble servers. Built with Flask and Ice.<br />
| [https://github.com/alfg/murmur-rest Murmur-REST]<br />
<br />
|}<br />
<br />
= Server Software =<br />
<br />
With our Mumble Server - often called “Murmur” - we provide an official, stable and efficient server software. Unlike some other software, we encourage alternative implementations by documenting our protocol in an open way. From the community some server software projects are available, providing you alternatives to the official server. Be aware though that they may lack some of the newer features - so if that is important to you check that.<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! State<br />
! Source-Language<br />
! License<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| uMurmur<br />
| Stable<br />
| C<br />
| {{BSD3}}<br />
| uMurmur is a minimalistic Mumble server primarily targeted to run on routers with an open OS like OpenWRT. The server part of Mumble is called Murmur, hence the name uMurmur.<br />
| [https://code.google.com/p/umurmur/ Project page on code.google.com],<br />
[https://github.com/fatbob313/umurmur Project page and sources on github.com]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Grumble<br />
| Experimental<br />
| [http://golang.org Go]<br />
| {{BSD3}}<br />
| Alternative Mumble server written in Go<br />
| [https://github.com/mkrautz/grumble Project page and source on github.com]<br />
<br />
|}<br />
<br />
[[Category:3rd Party]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=3rd_Party_Applications&diff=92233rd Party Applications2016-03-10T22:08:07Z<p>Ilumos: /* Channel Viewers */ Clarified which projects provide and/or read CVP</p>
<hr />
<div>'''Please edit this page if you created or found an application you think should be included. Note that you must register with the wiki in order to be able to edit it.'''<br />
<br />
<br />
= Libraries =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable" width="100%"<br />
! Name<br />
! Technology<br />
! Comment<br />
! License<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''gumble'''<br />
| Go<br />
| -<br />
| MPL 2.0<br />
| [https://github.com/layeh/gumble/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''Jumble'''<br />
| Java (Android)<br />
| Used for [[Plumble]]<br />
| GPLv3<br />
| [https://github.com/Morlunk/Jumble]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''MumbleKit'''<br />
| Objective-C<br />
| -<br />
| BSD3<br />
| [https://github.com/mumble-voip/mumblekit]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''MumbleSharp'''<br />
| C#<br />
| -<br />
| MIT<br />
| [https://github.com/martindevans/MumbleSharp]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''node-mumble'''<br />
| JavaScript (Node.js)<br />
| -<br />
| MIT<br />
| [https://github.com/Rantanen/node-mumble]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumlib'''<br />
| C++, boost::asio<br />
| Basic functionality, no ACL<br />
| LGPLv3<br />
| [https://github.com/slomkowski/mumlib]<br />
|}<br />
<br />
= Web-Interfaces =<br />
<br />
There are several browser based interfaces which can be used to administrate the Murmur server. If you need something very basic or want to create your own interface you should take a look at Murmur's [https://github.com/mumble-voip/mumble/tree/master/scripts/server script folder] which contains some basic web-interface examples which use [[Ice]] or [[DBus]] (we recommend using Ice, as DBus is kept for backwards compatibility, and is not being extended for quite some time).<br />
Additionally the following table contains a collection of more elaborate Web-Interfaces:<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Technology<br />
! License<br />
! Current Version<br />
! Last Release<br />
! [[DBus]]<br />
! [[Ice]]<br />
! 1.2.x<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| [http://php.net/ PHP]<br />
| {{GPLv3}}<br />
| V2.5.2<br />
| 2013-02-24<br />
| bgcolor=#ddffdd | Yes <br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Serverhosting; Permissionssystem; Webinterface to manage Server User, Plugin User and virtual Servers; request function for Server Users; uses DBUS or Slice or nothing; Channelviewer for own homepage; Logging functions; German, English, Frensh; Template functions and more! DBUS is supported in all Versions <= V2.2.1!<br />
| [http://www.mumb1e.de/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble-Django]]<br />
| [http://www.python.org Python] + [http://www.djangoproject.com Django]<br />
| {{GPLv3}}<br />
| V2.7<br />
| 2012-03-31<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Channel viewer (internal and support for others), admin panel, IPv6, [[Channel Viewer Protocol]], Munin plugin, CLI, supports multiple servers and instances, user registration, textures, gravatar, translated to English, German, French, Italian and Japanese<br />
| [http://mumble-django.org]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| [http://php.net/ PHP]<br />
| {{LGPLv3}}<br />
| V2.2.6<br />
| 2015-12-09<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Admin and User functionality; multiserver (start, stop, add, remove, edit virtual servers), registration & online user management, interface admin, admin-group and permission system, serverviewer<br />
| [http://github.com/Kissaki/MumPI/wiki]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| PHP Mumble Admin<br />
| [http://php.net/ PHP]<br />
| {{GPLv3}}<br />
| V0.4.3<br />
| 2013-02-07<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Complete administration control panel for Murmur designed for multiple virtual server. [http://sourceforge.net/projects/phpmumbleadmin/ Website]<br />
| [http://sourceforge.net/projects/phpmumbleadmin/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumbled Webinterface<br />
| [http://php.net/ PHP]<br />
| {{GPLv3}}<br />
| V0.2<br />
| 2010-01-22 (Inactive)<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| visit: http://mumbled.de/content/238/mumbled-phpice-webinterface<br />
| [http://sourceforge.net/projects/mumbled/]<br />
|<br />
<br />
|-bgcolor="#f8f8ff"<br />
| MyMumb-Panel<br />
| [http://php.net/ PHP]<br />
| {{GPLv3}}<br />
| V0.1<br />
| 2014-09-18<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Multi-server management, Users Managment and soon channel viewer.<br />
| [https://github.com/dieonar/MyMumb-Panel/]<br />
|}<br />
<br />
<br />
<small>Note: We recommend using a preferably [[Ice]] or at least [[DBus]] capable interface.</small><br />
<br />
= {{anchor|Standalone Applications}}Desktop Applications (GUI) =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Murmur Admin Console<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Add, edit and delete users over SSH<br />
| [http://bograt.com/Murmur/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [http://yulli.cleanvoice.ru/ Yulli Mur]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Add, remove and control virtual servers remotely (supports SSH)<br />
| [http://yulli.cleanvoice.ru]<br />
|}<br />
<br />
= Commandline-Interfaces =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mice]]<br />
| multi-platform<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Helper script written in [http://www.python.org Python]<br />
| [https://github.com/mumble-voip/mumble-scripts/raw/master/Helpers/mice.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| RegMum<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Bat script<br />
| [[DBus_scripts#Windows|DBus_scripts]]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| mmctl<br />
| [http://www.python.org Python]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| 1.1.8 - Easy to use script for managing servers and adding users locally<br />
| [http://github.com/mbr/mmctl]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur-manager]]<br />
| Ruby<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| 1.2.1<br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|}<br />
<br />
= Bots =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Description<br />
! Programming language<br />
! Comment<br />
! License<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''Calico'''<br />
| A Mumble bot that connects to an SQL server and responds to text commands with audio / text responses. Built with [[piepan]].<br />
| Lua<br />
| -<br />
| MIT<br />
| [https://github.com/Oka-/calico]<br />
|-bgcolor="#f8f8ff"<br />
| '''Eve-Bot'''<br />
| From the website: This bot is written for online multiplayer communities playing games like TF2 or CSS, where the spectator's view of the game is sometimes delayed to prevent collusion.<br />
| Python<br />
| -<br />
| {{BSD3}}<br />
| [http://frymaster.127001.org/mumble/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumble-bots'''<br />
| Several bot scripts based on [[Mumble Ruby]].<br />
| Ruby<br />
| -<br />
|<br />
| [https://github.com/SuperTux88/mumble-bots]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumble-dicebot'''<br />
| Connects as a user to a [[Mumble Server]] and listens for dice commands.<br />
| Ruby<br />
| -<br />
| [https://en.wikipedia.org/wiki/WTFPL WTF]<br />
| [https://github.com/vaxr/mumble-dicebot/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumble-ruby'''<br />
| A headless [[Mumble client]] which can send audio from a named pipe into a [[Mumble server]]. Further information is available [[Mumble Ruby|here]].<br />
| Ruby<br />
| -<br />
| MIT License<br />
| [https://github.com/perrym5/mumble-ruby]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumblebot'''<br />
| Connects as a user to a server and listens for text commands. Among others it has a soundboard. Based on [[Mumble Ruby]]<br />
| Ruby<br />
| -<br />
|<br />
| [https://github.com/erulabs/mumblebot/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumblebot'''<br />
| Connects as a user to a [[Mumble Server]] and can run local scripts to interact with the server.<br />
| Python<br />
| -<br />
| {{BSD3}}<br />
| [http://code.google.com/p/mumblebot/wiki/About]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumblecop'''<br />
| Connects to a [[Mumble Server]] and listens for commands which trigger plugins. Several plugins included already, including ones for streaming youtube audio, rolling dice, and displaying a countdown. More plugins can easily be added. Uses [[Mumble Ruby]]<br />
| Ruby<br />
| -<br />
| MIT<br />
| [https://bitbucket.org/Flandoo/mumblecop]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''mumblerecbot'''<br />
| Connects as a user to a server and records the audio stream as a file. Is based on [[PyMumble]].<br />
| Python<br />
| -<br />
| {{GPLv3}}<br />
| [https://github.com/Robert904/mumblerecbot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''piepan'''<br />
| An easy to use framework for writing Mumble bots using Lua<br />
| Lua<br />
| -<br />
| MPL 2.0<br />
| [https://github.com/layeh/piepan]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| '''sftmumblebot'''<br />
| A chat bridge between IRC and a [[Mumble Server]].<br />
| Python<br />
| -<br />
| {{GPLv3}}<br />
| [https://github.com/SFTtech/sftmumblebot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
|'''MumbleDJ'''<br />
| A Mumble bot that lets friends listen to music together via YouTube.<br />
| Go<br />
| -<br />
| MIT<br />
| [https://github.com/matthieugrieger/mumbledj]<br />
<br />
|-bgcolor="#f8f8ff"<br />
|'''Mumble-Ruby-Pluginbot'''<br />
| Mumble-Ruby-Pluginbot is an audio bot that can be controlled through text messages in the Mumble client, can download music from Youtube and other online sources. It offers many commands to control the MPD session which feeds the bot, for example to change the volume, display and load playlis(s), and many more.<br />
| Ruby<br />
| -<br />
| -<br />
| [http://wiki.natenom.com/w/Mumble-Ruby-Pluginbot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
|'''Ultros'''<br />
| Extensible, multi-protocol, general-purpose bot. <br />
| Python<br />
| -<br />
| [http://opensource.org/licenses/Artistic-2.0 Artistic-2.0]<br />
| [https://github.com/UltrosBot/Ultros]<br />
<br />
|-bgcolor="#f8f8ff"<br />
|'''Mumsi'''<br />
| SIP to Mumble gateway based on PJSIP stack and Mumlib library. Enables the user to participate in Mumble conference using SIP client or perhaps ordinary telephone, by VoIP provider.<br />
| C++<br />
| -<br />
| [http://opensource.org/licenses/Apache-2.0 Apache-2.0]<br />
| [https://github.com/slomkowski/mumsi]<br />
<br />
|}<br />
<br />
= Channel Viewers =<br />
<br />
We encourage anyone developing a viewer to use the open and documented [[Channel Viewer Protocol]] to ensure inter-operability and compatibility.<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Provides CVP<br />
! Reads CVP<br />
! Proprietary (Non-CVP)<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble.com<br />
| Web<br />
| Javascript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| Enter the URL to the JSON encoded Channel Viewer Protocol provided by your Mumble host to create a unique channel viewer. Requires a CVP provider to query the Mumble server and generate the JSON.<br />
| [http://www.mumble.com/mumble-server-status.php Mumble.com Status Tool]<br />
<br />
<br />
|-bgcolor="#f8f8f8"<br />
| FlaskCVP<br />
| Web<br />
| Python, [http://flask.pocoo.org/ Flask]<br />
| No<br />
| '''Yes'''<br />
| No<br />
| A minimalistic CVP provider written using Mumble-Django's connection library and the Flask framework.<br />
| [https://bitbucket.org/Svedrin/mumble-django/src/tip/pyweb/flaskcvp.py flaskcvp.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| GTMurmur<br />
| Web<br />
| Binary<br />
| '''Yes'''<br />
| No<br />
| '''Yes'''<br />
| Server-side binary for Murmur which adds support for GameTracker.com queries. Also provides CVP via socket which can be used by other channel viewers. <br />
| [http://www.gametracker.com/downloads/gtmurmurplugin.php GameTracker.com]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| MurmurQuery<br />
| Web<br />
| PHP<br />
| No<br />
| '''Yes'''<br />
| No<br />
| PHP class that reads CVP JSON data from the GTMurmur Plugin and displays users and channels in HTML.<br />
| [http://github.com/edmundask/MurmurQuery GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| Web<br />
| PHP<br />
| No<br />
| No<br />
| '''Yes'''<br />
| Full channel viewer controlling and editing in MAP! You can also include this CV via Iframe in your homepage. And you can edit your whole server using the functions of MAP!<br />
| [http://www.mumb1e.de/ Mumb1e.de]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Murmur-manager]]<br />
| Web<br />
| Ruby<br />
| No<br />
| No<br />
| '''Yes'''<br />
| <br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble reader]]<br />
| Web<br />
| PHP/Javascript<br />
| '''Yes'''<br />
| '''Yes'''<br />
| No<br />
| JS Viewer which uses PHP with Ice 3.3 to query a Mumble server. Does not support the latest version of Ice (3.4) but the clean JS front-end can be used with other CVP providers.<br />
| [http://mumble.rko.nu/ Webpage]<br />
[http://code.google.com/p/mumblereader/ GoogleCode]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| Web<br />
| PHP/Javascript<br />
| '''Yes'''<br />
| '''Yes'''<br />
| '''Yes'''<br />
| JS-Viewer uses own protocoll/calls to MumPI.<br />
MumPI provides JSON-Channel Viewer Protocol-webservice for other viewers.<br />
| [http://github.com/Kissaki/MumPI/wiki @Github]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| MView<br />
| Web<br />
| Javascript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| JS-Viewer injecting HTML (no evil iframes etc necessary!).<br />
| [https://github.com/Kissaki/MView MView @Github]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumble Watcher<br />
| Desktop<br />
| QT/KDE<br />
| No<br />
| '''Yes'''<br />
| No<br />
| Useful if you want to see who's online in a Desktop app without actually connecting, e.g. because you're on a PC without a proper headset.<br />
| [http://bitbucket.org/Svedrin/mumble-watcher/ BitBucket]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Mumble-Django]]<br />
| Web<br />
| JavaScript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| An ExtJS component that inherits Ext.tree.TreeView to build a channel viewer.<br />
| [http://mumble-django.org/bb/src/tip/pyweb/mumble/media/js/channelviewer.js BitBucket] [http://mumble-django.org/docs/api/channelviewer.html Documentation]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble-widget<br />
| Web<br />
| JavaScript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| A CVP compatible web-based channel viewer widget to display active users on your Mumble server. Easy setup, just copy and paste snippet of code to your website.<br />
| [http://mumble-widget.guildbit.com/ Website] [https://github.com/alfg/mumble-widget Github] [http://jsfiddle.net/alfg/3m86purL/ JSFiddle Example]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Command Channel<br />
| Web<br />
| PHP/JavaScript/EQdkp-Plus/Joomla!/WordPress<br />
| No<br />
| '''Yes'''<br />
| No<br />
| A robust channel viewer that has been packaged into several different formats for popular Content Management Systems. You can easily change the icons and colors used.<br />
| [http://commandchannel.com/Downloads/eqdkp-plus/mumbleviewer.zip Module for EQdkp-Plus]<br />
<br />
[http://extensions.joomla.org/extensions/sports-a-games/game-servers/16358 Extension for Joomla!]<br />
<br />
[http://wordpress.org/extend/plugins/mumble-channel-viewer/ Plugin for WordPress]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-php.zip PHP only]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-javascript.zip JavaScript only]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer/wiki JavaScript Documentation]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer Source code]<br />
<br />
[http://github.com/ClusterFCK/Drupal-Mumble-Viewer Module for Drupal 7 (Based on the above)]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| PHP Mumble Viewer<br />
| Web<br />
| PHP<br />
| '''Yes'''<br />
| '''Yes'''<br />
| No<br />
| Project abandoned.<br />
| [http://phpmumbleviewer.coolcow.org/ phpmumbleviewer.coolcow.org]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Voice Comms Viewer]]<br />
| Web<br />
| JavaScript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| A site that creates Channel Viewers for Mumble, Teamspeak & Ventrilo using the Channel Viewer Protocol<br />
| [http://commsviewer.com/ commsviewer.com]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble Channel Viewer<br />
| Web<br />
| JavaScript<br />
| No<br />
| '''Yes'''<br />
| No<br />
| Chrome extension that reads CVP JSON or XML data and displays channels and users.<br />
| [https://chrome.google.com/webstore/detail/mumble-channel-viewer/delalapmnpndmfopplmjegencdnddfcc Chrome Web Store]<br />
<br />
[https://github.com/nunof07/chrome-mumble GitHub]<br />
<br />
|}<br />
<br />
= Miscellaneous Scripts =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Evebot<br />
| Bot<br />
| Python<br />
| Mumble client<br />
| Relays comms from one channel to another with a delay (to synchronise comms for time-delayed game spectators, for example)<br />
| [http://frymaster.127001.org/mumble/ Evebot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumo]]<br />
| Bot<br />
| Python<br />
| ICE<br />
| Highly extensible script that can use external events (such as gamestate changes) to dynamically shuffle users into channels and groups. Support for various user states and the game "Battlefield 2".<br />
| [https://github.com/mumble-voip/mumo mumo]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Murmur-Munin<br />
| Statistics<br />
| Python<br />
| ICE<br />
| A plugin for Munin to create statistics for your Mumble-Server.<br />
| [https://github.com/Natenom/munin-plugins/blob/master/murmur-munin.py Murmur-Munin]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Murmur-REST<br />
| RESTful API<br />
| Python<br />
| ICE<br />
| A RESTful API for administering virtual Mumble servers. Built with Flask and Ice.<br />
| [https://github.com/alfg/murmur-rest Murmur-REST]<br />
<br />
|}<br />
<br />
= Server Software =<br />
<br />
With our Mumble Server - often called “Murmur” - we provide an official, stable and efficient server software. Unlike some other software, we encourage alternative implementations by documenting our protocol in an open way. From the community some server software projects are available, providing you alternatives to the official server. Be aware though that they may lack some of the newer features - so if that is important to you check that.<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! State<br />
! Source-Language<br />
! License<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| uMurmur<br />
| Stable<br />
| C<br />
| {{BSD3}}<br />
| uMurmur is a minimalistic Mumble server primarily targeted to run on routers with an open OS like OpenWRT. The server part of Mumble is called Murmur, hence the name uMurmur.<br />
| [https://code.google.com/p/umurmur/ Project page on code.google.com],<br />
[https://github.com/fatbob313/umurmur Project page and sources on github.com]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Grumble<br />
| Experimental<br />
| [http://golang.org Go]<br />
| {{BSD3}}<br />
| Alternative Mumble server written in Go<br />
| [https://github.com/mkrautz/grumble Project page and source on github.com]<br />
<br />
|}<br />
<br />
[[Category:3rd Party]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=Ice&diff=6150Ice2012-03-23T00:47:11Z<p>Ilumos: /* How to setup Ice for PHP with Apache on Linux (general) */</p>
<hr />
<div>Murmur supports remote scripting using [http://www.zeroc.com/ ZeroC Ice], a RPC mechanism. There are bindings for C++, Java, .NET, Python, PHP and Ruby, and this is supported on all our platforms (Win32, Linux and OSX). Ice also works over a network, meaning you can create a web application that interfaces with a Murmur process running on another machine. <br />
<br />
'''All hosters note: local ICE connections have now been secured, without having to use Glacier, in Murmur 1.2.2. Simply use the icesecret= parameter in your ''murmur.ini''. [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=scripts/murmur.ini;hb=5cd6a1be959005191423372847bb7f3dcd7c5c59 Here] is the latest ''murmur.ini'' describing the icesecret setting. Note you must also have Murmur 1.2.2 or greater as well.'''<br />
<br />
= Getting ready to use Ice =<br />
<br />
To enable the Ice interface in your ''murmur.ini'' configuration file, first disable [[DBus]] by commenting out:<br />
dbus=session<br />
Then enable Ice for localhost on port 6502 by adding or un-commenting:<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
<br />
<br />
To check if Ice in fact does listen, on UNIX type:<br />
netstat -apn | grep 6502<br />
Or on Windows type:<br />
netstat -an <br />
and look for the process listening on port 6502<br />
<br />
= End User Howtos =<br />
<br />
Note that after you have ICE set up on your machine, you can install a [[3rd_Party_Applications#Web-Interfaces|web interface]]. [[MAP_-_Mumb1e_Admin_Plugin|Mumb1e Admin Plugin]] or [[Mumble_PHP_Interface|MumPI]] are webinterfaces that requires minimal server configuration and are easy to use.<br />
<br />
== How to setup Ice 3.4 for PHP with Apache on Linux (general) ==<br />
If your Linux distribution offers a binary packet for Ice with PHP (usually the name contains Ice and php) you can skip everything but naming the Murmur.ice slice file in the php.ini (see below). If there is no prepared package you'll have to try to find binaries for your system or [[Ice#Compiling_Ice|compile]] Ice yourself and add the extension to PHP and tell PHP where to find the Murmur.ice file.<br />
<br />
To add the IcePHP extension to PHP, first check that the file IcePHP.so for linux is in your php extensions folder specified in your php.ini as <br />
extension_dir = /usr/lib/php5/extensions<br />
If it is not, get the correspoding files from [http://www.zeroc.com/download.html ZeroC's downloads page].<br />
<br />
Then either in your php.ini file or in your /etc/php.d or /etc/php5/conf.d folder in ice.ini, add the line<br />
extension=IcePHP.so<br />
At least the Linux RPMs will do this automatically, so check that you're not doing it a second time.<br />
<br />
Second, you have to tell the PHP parser where to find the slice ('''S'''pecification '''L'''anguage for '''Ice''') file.<br />
Add<br />
ice.slice = /path/to/Murmur.ice<br />
to your php.ini or other config file (e.g. ice.ini).<br />
<br />
=== Troubleshooting ===<br />
If you encounter problems, check your Apache log.<br />
<br />
If it tells you the PHP extension was compiled on an older api, you have to compile the IcePHP.so from source.<br />
<br />
Download Ice-3.4.2.tar.gz from [http://www.zeroc.com/download.html ZeroCs downloads page], untar, cd into PHP, as written in the INSTALL file export ICE_HOME environment variable pointing to your Ice install dir. If you installed it with an RPM, type<br />
export ICE_HOME=/usr<br />
then make, and in the lib folder, there'll be your IcePHP.so file.<br />
<br />
<br />
One common error is<br />
PHP Warning: PHP Startup: skipping dictionary ::Murmur::UserInfoMap - unsupported key type in Unknown on line 0<br />
This is caused because the .ice is slightly incompatible with older versions of php-ice - edit the Murmur.ice file and find the following lines<br />
/** User information map.<br />
* Older versions of ice-php can't handle enums as keys. If you are using one of these, replace 'UserInfo' with 'byte'.<br />
*/<br />
and perform the substitution mentioned.<br />
<br />
== How to Setup Ice 3.4 for PHP with Apache on Debian/Ubuntu ==<br />
<br />
This tutorial is an example. Use at your own risk.<br />
<br />
'''This guide was tested on Ubuntu 11.10 (oneiric) -last updated 23-03-2012-'''<br />
<br />
I assume you already have a working Apache2 and PHP environment, and have a working install of Murmur.<br />
<br />
<br />
'''Prerequisites'''<br />
<br />
First we need to install the Ice library for PHP. Execute the following in a root shell:<br />
<br />
apt-get update<br />
<br />
apt-get install php-zeroc-ice<br />
<br />
<br />
''' Step 1 - Murmur Setup'''<br />
<br />
Optional: To run Murmur at every startup change the config value in /etc/default/mumble-server acordingly with a editor of your choice.<br />
<br />
Now open the file ''/etc/mumble-server.ini'' for editing:<br />
vim /etc/mumble-server.ini<br />
OR:<br />
nano -w /etc/mumble-server.ini <br />
Comment the following line to disable [[DBus]]:<br />
#dbus=system<br />
Uncomment or paste the following line to enable the Ice interface:<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
After restarting the daemon Murmur will now listen for Ice requests.<br />
<br />
<br />
<br />
''' Step 2 - PHP Setup '''<br />
<br />
Now we need to tell PHP to load the IcePHP extension.<br />
Open the file ''/etc/php5/apache2/php.ini'' for editing:<br />
vim /etc/php5/apache2/php.ini<br />
OR:<br />
nano -w /etc/php5/apache2/php.ini<br />
Paste the folowing in the dynamic extensions section of the file:<br />
extension=IcePHP.so <br />
<br />
<br />
''' Step 3 - Reload and Check '''<br />
<br />
Everything should be set up so let's restart the servers so they load the updated config files.<br />
<br />
Restart your Apache2 daemon:<br />
/etc/init.d/apache2 restart<br />
Restart your Mumble server:<br />
/etc/init.d/mumble-server restart<br />
Make a file named phpinfo.php in your web root and paste the following:<br />
<?php phpinfo(); ?><br />
Open the page in your browser, you should be greeted with PHP's information page. Search the page for "Ice version" to verify that the IcePHP extension has loaded. If you don't see IcePHP's version and config info on this page, verify that the file IcePHP.so exists in PHP's ''extension_dir'' (this will also be in your PHP info page. Once you're sure that the IcePHP extension has loaded, delete the phpinfo.php file for security reasons.<br />
<br />
Now we will take a look in the mumble-server log to see if Murmur's Ice interface is listening:<br />
tail -n10 /var/log/mumble-server/mumble-server.log<br />
If you find a line similar to the following everything is fine and you can now communicate to Murmur via its Ice interface.<br />
...<br />
<W>2012-03-24 13:37:11.316 MurmurIce: Endpoint "tcp -h 127.0.0.1 -p 6502" running<br />
...<br />
<br />
Now you can install and use any of the PHP based [[3rd Party Applications]] compatible with IcePHP version 3.4.<br />
<br />
== How to setup Ice for PHP with Apache on Windows ==<br />
<br />
These are example scripts. Use at your own risk. These scripts are not intended for production machines. These are examples of what Ice can do. Note that if you already have a web server installed on the server you can adapt this guide to use it instead of installing Apache.<br />
<br />
First install [http://apache.mirror.facebook.com/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi Apache]. Install it to ''C:\apache\''. <br />
<br />
Now install [http://www.php.net/get/php-5.2.8-win32-installer.msi/from/us.php.net/mirror PHP]. Tell PHP to install to ''C:\PHP5\''. In the installer on the "Web Server Setup" window select Apache 2.2.x Module. When you get to "Select Apache Configuration Directory" put ''C:\apache\conf\''. Proceed through the installer. Install the defaults, you do not need to install the extensions for PHP. <br />
<br />
Now [http://zeroc.com/download.html download] and install Ice-''x.x.x''-VC60.msi. Go to ''C:\Ice-3.3.1-VC60\bin\'' and copy <br />
bzip2.dll <br />
ice33.dll <br />
iceutil33.dll <br />
msvcp60.dll <br />
msvcrt.dll <br />
php_ice.dll <br />
slice33.dll <br />
stlport_vc646.dll <br />
to ''C:\apache\bin'' . Now open ''C:\PHP5\php.ini'' and add the following two lines to the bottom of the file: <br />
extension=php_ice.dll<br />
ice.slice=C:\PHP5\Murmur.ice<br />
<br />
Now save and exit php.ini.<br />
<br />
After you have done all that, download [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/src/murmur/Murmur.ice?view=log Murmur.ice], [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=log icedemo.php], and [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/weblist.php?view=log weblist.php] (Click the links, and on the Sourceforge page right click on "(download)" and select "Save Link As...".) Put Murmur.ice in ''C:\PHP5''. Put icedemo.php and weblist.php in ''C:\apache\htdocs''. <br />
<br />
Double click the Apache icon in the system tray and select "Restart".<br />
<br />
You now need at least one running Murmur server. Go to C:\Program Files\Mumble and double click murmur.exe and the server will start.<br />
<br />
You should now be able to go to http://<your IP or Domain>/icedemo.php (or weblist.php). Make SURE that you have icedemo.php protected so that only YOU can access it. If you do not want to use icedemo.php, [http://mumble.sourceforge.net/Running_Murmur#Web-Interfaces here] is a list of other web interfaces you can use.<br />
<br />
== How to setup Ice for PHP with XAMPP on Windows - or the right way to use Ice on Windows ==<br />
<br />
=== pre Setup ===<br />
Download and install the following packages:<br />
* XAMPP for Windows http://www.apachefriends.org<br />
* ZeroC Ice http://zeroc.com/download.html#win32_msi<br />
Now configure and start XAMMP.<br />
<br />
=== Create developer environment for Windows ===<br />
* Open System in Control Panel ( On Windows VISTA/7 Systems select advanced )<br />
* On the Advanced tab, click Environment Variables<br />
* Add the Ice Path to %PATH%<br />
Select the name PATH on user variables and edit. If the name PATH does not exist, select new. Enter now the PATH to your Ice installation dir.<br />
<br />
Sample for 32Bit:<br />
%PROGRAMFILES%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Sample for Windows x64:<br />
%PROGRAMFILES(x86)%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Now logout from Windows or restart. After reboot check if included Ice in our environment. Open the CMD and try<br />
slice2php<br />
The Output return the slice2php help. If not check http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/environment_variables.mspx?mfr=true<br />
<br />
=== Configure XAMPP/PHP ===<br />
Copy the File php_ice.dll from <your path>\ZeroC\Ice-3.4.0\bin to <your_path>\xampplite\php\ext<br />
Edit the php.ini in <your_path>\xampplite\php and add<br />
extension=php_ice.dll<br />
ice.slice=<mumble_path>\Murmur.ice<br />
<br />
Now start XAMMP and check the phpinfo().<br />
<br />
== Using different ice.slice on same host ==<br />
Sometimes you run two servers of mumble on the same host and you cannot load two slices with different mumble versions on the same time.<br />
The solution is to use ICE profiles, that will require extra files and unfortunately modification of scripts that run the default profile.<br />
Description on Debian etch with apache2, PHP as fcgid and cli.<br />
===Creating profiles===<br />
* Lets create profile directory (as root/superuser user), I have created mine at<br />
/etc/php5/ice/<br />
* Then create directories per profile (it will make life easier later)<br />
/etc/php5/ice/murmur.1.1.x<br />
/etc/php5/ice/murmur.1.2.x<br />
* To each of the corresponding directory I have placed the Murmur.ice file provided with the installs. You will notice that later upgrades will just consit of copying new files (instead of renaming).<br />
* time to make profiles.ini file that ICE will use:<br />
vi /etc/php5/ice/profiles.ini<br />
* Insert there below code:<br />
<code><pre><br />
[Murmur11x]<br />
slice=/etc/php5/ice/murmur.1.1.x/Murmur.ice<br />
<br />
[Murmur12x]<br />
slice=/etc/php5/ice/murmur.1.2.x/Murmur.ice<br />
</pre></code><br />
<br />
* This way you got two profiles, first (Murmur11x) is loading slice file for older murmur setups, and the other (Murmurm12x) loads newer slices. Below example of directory structure:<br />
/etc/php5/ice<br />
|-- murmur.1.1.x<br />
| `-- Murmur.ice<br />
|-- murmur.1.2.x<br />
| `-- Murmur.ice<br />
`-- profiles.ini<br />
<br />
===IcePHP.ini===<br />
* Now time to alter /etc/php5/cgi/conf.d/IcePHP.ini, so it will look like this<br />
<code><pre><br />
extension = IcePHP.so<br />
ice.profiles=/etc/php5/ice/profiles.ini<br />
</pre></code><br />
*Notice that we are adding ice.profile setting, so that ice knows where to search for profiles.<br />
*Default profile is named __default__ and you better avoid to make it.<br />
*I got no idea about setting up default ice.slice entry (experience told me to force editing php files anyway, read below)<br />
<br />
====Changing PHP scripts====<br />
* Next alter the source code of the php scripts you use. It consists of just altering the one function that tells ICE to load profile. By default the function is ran without paramter, and it looks like below:<br />
Ice_loadProfile();<br />
* Now we will tell that function to load specific profile that it was designed for. Below example modifications to load different profiles for given ice profile:<br />
for older mumble:<br />
Ice_loadProfile('Murmur11x'); // load profile for scripts that talk with murmur 1.1.x<br />
or for new mumble:<br />
Ice_loadProfile('Murmur12x'); // load profile for scripts that talk with murmur 1.2.x<br />
* Notice that single quotes are required.<br />
<br />
===Checking out if it works===<br />
* Remember to restart apache (your configuration may require it)<br />
* See php/apache error logs when something goes wrong.<br />
* If you get erro like ''unknown operation getUsers invoked on proxy of type ::Murmur::Server'' then it means you use old Murmur.ice file. This happens whne you try to connect using Murmur.ice from version 1.1.x to Murmur server 1.2.x, which require Murmur.ice 1.2.x. Update Murmur.ice on web server and restart it and then it should work.<br />
<br />
===Further steps===<br />
* I suggest you do the same with /etc/php5/cli/conf.d file and scripts that you run from console (crontab)<br />
* Altering php.ini error_reporting is advised to disable generating massive amount of warning messages:<br />
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING<br />
* You can also set up config files for those profile - more info at http://www.zeroc.com/doc/Ice-3.3.1/manual/IcePHP.29.3.html<br />
<br />
= Developing for the Murmur Ice interface =<br />
How to use Ice differs from language to language. The parameters and method names will remain the same, but the syntax will naturally be different. Murmur will, by default, open up an adapter on port 6502 (or 10000 for homedir installs), which has a single accessible object named "Meta". This is the Meta server, and from it you can retrieve adapters for any configured server.<br />
<br />
The ice interface is fully documented, and you can browse the [http://mumble.sourceforge.net/slice generated documentation].<br />
<br />
== PHP ==<br />
With ''IcePHP'' establishing the connection to the interface '''differs''' between the Ice versions 3.3 and prior and 3.4 and later.<br />
<br />
=== Ice <= 3.3 ===<br />
There's an example script using the '''Ice 3.3''' approach (defining the ice.slice directive in the PHP settings) included in the source; have a look at [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=markup icedemo.php].<br />
<br />
The establishing, minimum code, is:<br />
Ice_loadProfile();<br />
// initialize ice connection<br />
global $ICE;<br />
$base = $ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502');<br />
$meta = $base->ice_checkedCast("::Murmur::Meta");<br />
<br />
=== Ice >= 3.4 ===<br />
For '''Ice 3.4''' and later you’ll have to do a different approach.<br />
<br />
First, you’ll have to '''generate PHP code''' from the slice definitions .ice file. >=Ice 3.4 installed, use the '''slice2php executable''' to generate it.<br />
<br />
For your PHP code, you’ll have to have the Ice.php and other libs (scripts provided by zeroc) in your PHPs include path to include them.<br />
require_once 'Ice.php';<br />
require_once 'Murmur.php';<br />
$ICE = Ice_initialize();<br />
$meta = Murmur_MetaPrxHelper::checkedCast($ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502'));<br />
Where ''Murmur.php'' is the generated file.<br />
<br />
= Using Glacier2 =<br />
<br />
Glacier2 is a Ice '''routing and firewall utility''', and allows you to securely run the server on one machine and murmur on another. Note that if both server and client are on a secure LAN, you can just use iptables to protect the Ice port, which is a lot easier than setting up Glacier2. Also, '''since Mumble 1.2.2 you an set an icesecret''' in your murmur.ini and use it as a password. '''This is a lot easier to set up''' and use than Glacier2.<br />
<br />
The examples here assume that 1.2.3.4 is the public IP address of the server running Murmur. We're going to use the username "magic" with the password "pink".<br />
<br />
== Configuring Glacier2 ==<br />
<br />
Create a config file called config.glacier2 and put the following in it:<br />
Glacier2.Client.Endpoints=tcp -h 1.2.3.4 -p 4063<br />
Glacier2.SessionTimeout=60<br />
Glacier2.CryptPasswords=passwords.txt<br />
<br />
Your endpoint host should be the public IP that you are running Glacier on. If you don't specify a client via -h, then Glacier will bind to all listening interfaces.<br />
<br />
Then, create a password hash using the OpenSSL utility.<br />
openssl passwd pink<br />
this will spit out a hash, which looks something like CTThafhdv9Lz2<br />
<br />
Create a file called passwords.txt containing:<br />
magic CTThafhdv9Lz2<br />
<br />
Start glacier2 as this:<br />
glacier2router --Ice.Config=config.glacier2<br />
<br />
You will need to have Ice installed - http://zeroc.com/download.html glacier2router is a binary that is located in ''<location_of_Ice_installation>/bin/glacier2router.exe.''<br />
<br />
== Configuring Murmur ==<br />
<br />
There's nothing to do in murmur. Seriously. Leave the default setting of binding to 127.0.0.1 alone.<br />
<br />
== Configuring Client (PHP) ==<br />
<br />
This is where it starts getting slightly ugly. Note that this requires Ice >= 3.3.1, as Ice 3.3.0 has a bug in it which prevents this from working. The following is the adaptation necessary to weblist.php to get it to work:<br />
<br />
<pre><br />
try {<br />
$router = $ICE->stringToProxy("Glacier2/router:tcp -p 4063 -h 1.2.3.4");<br />
$router = $router->ice_uncheckedCast("::Glacier2::Router")->ice_router(null);<br />
$session = $router->createSession("magic", "pink");<br />
$base = $ICE->stringToProxy("Meta:tcp -h 127.0.0.1 -p 6502")->ice_router($router);<br />
$meta = $base->ice_checkedCast("::Murmur::Meta")->ice_router($router);<br />
<br />
...<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from $meta->getServer), you need to add ->ice_router($router)<br />
<br />
== Configuring Client (Ruby) ==<br />
There is a set of classes for easily working with Ice directly and through Glacier available at [http://github.com/cheald/murmur-manager/tree/master/interfaces/ GitHub]. However, if you want to do it manually, it's not too hard.<br />
<br />
<pre><br />
glacierHost = "yourhost.com"<br />
glacierPort = 1234<br />
user = "glacieruser"<br />
pass = "glacierpass"<br />
server_id = 1<br />
<br />
prx = ic.stringToProxy("Glacier2/router:tcp -h #{glacierHost} -p #{glacierPort}")<br />
router = ::Glacier2::RouterPrx::uncheckedCast(prx).ice_router(nil)<br />
router.createSession(user, pass)<br />
meta = Murmur::MetaPrx::checkedCast(ic.stringToProxy("Meta:tcp -h #{host} -p #{port}")).ice_router(router)<br />
server = meta.getServer(server_id).ice_router(router)<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from Murmur::MetaPrx::getServer), you need to add #ice_router(router)<br />
<br />
= Compiling Ice =<br />
On some platforms there are no officially supported binaries available. In that case you will either have to change your platform or compile Ice yourself.<br />
<br />
== Building Ice on Redhat/CentOS machines ==<br />
'''Note:''' 3.3.1 is no longer the current version of Ice. Feel free to try this guide with the new version and update it if it works, or fix it if it does not.<br />
<br />
1. Download and unpack ICE<br />
wget http://www.zeroc.com/download/Ice/3.3/Ice-3.3.1.tar.gz<br />
tar -xzf Ice-3.3.1.tar.gz<br />
<br />
2. Compile the ICE CPP bindings (these are required for all other bindings)<br />
You will need mcpp-devel from the Zeroc website installed to compile.<br />
http://www.zeroc.com/download.html - Ctrl-F and look for "mcpp-devel". There is a big package of various Ice RPMs to download. You will install a few dependencies, along with the mcpp-devel package. <br />
<br />
cd Ice-3.3.1/cpp<br />
make<br />
(wait 20 minutes)<br />
sudo make install<br />
<br />
3. Compile and install the Ice bindings for your preferred language. For example, to install Ruby bindings:<br />
cd ../rb<br />
make<br />
sudo make install<br />
<br />
4. Export the paths for your newly-installed libraries. These will be different for each language - check the INSTALL or README files in each language's subdirectory for exact instructions.<br />
<br />
For Ruby:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
If you don't want to always have to keep running those export lines, also add them to your ~/.bashrc:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
4. At this point, Ice should be available to your language (in this case, Ruby):<br />
<br />
$ irb<br />
irb(main):001:0> require 'Ice'<br />
=> true<br />
<br />
5. Generate the Slice file for your language.<br />
<br />
To generate it for ruby, we use the slice2rb program, which is in the Ice/cpp/bin directory. Similar binaries for your language of choice will be there, too.<br />
<br />
wget -O Murmur.ice "http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=src/murmur/Murmur.ice;hb=HEAD"<br />
../cpp/bin/slice2rb Murmur.ice<br />
<br />
cp Murmur.rb #{MANAGER_ROOT}/vendor/ice<br />
<br />
Congrats! Ice should be set up and fully functional.<br />
<br />
<br />
<br />
[[Category:Documentation]]<br />
[[Category:Documentation English]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=Ice&diff=6149Ice2012-03-23T00:46:15Z<p>Ilumos: /* How to Setup Ice for PHP with Apache on Debian/Ubuntu */</p>
<hr />
<div>Murmur supports remote scripting using [http://www.zeroc.com/ ZeroC Ice], a RPC mechanism. There are bindings for C++, Java, .NET, Python, PHP and Ruby, and this is supported on all our platforms (Win32, Linux and OSX). Ice also works over a network, meaning you can create a web application that interfaces with a Murmur process running on another machine. <br />
<br />
'''All hosters note: local ICE connections have now been secured, without having to use Glacier, in Murmur 1.2.2. Simply use the icesecret= parameter in your ''murmur.ini''. [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=scripts/murmur.ini;hb=5cd6a1be959005191423372847bb7f3dcd7c5c59 Here] is the latest ''murmur.ini'' describing the icesecret setting. Note you must also have Murmur 1.2.2 or greater as well.'''<br />
<br />
= Getting ready to use Ice =<br />
<br />
To enable the Ice interface in your ''murmur.ini'' configuration file, first disable [[DBus]] by commenting out:<br />
dbus=session<br />
Then enable Ice for localhost on port 6502 by adding or un-commenting:<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
<br />
<br />
To check if Ice in fact does listen, on UNIX type:<br />
netstat -apn | grep 6502<br />
Or on Windows type:<br />
netstat -an <br />
and look for the process listening on port 6502<br />
<br />
= End User Howtos =<br />
<br />
Note that after you have ICE set up on your machine, you can install a [[3rd_Party_Applications#Web-Interfaces|web interface]]. [[MAP_-_Mumb1e_Admin_Plugin|Mumb1e Admin Plugin]] or [[Mumble_PHP_Interface|MumPI]] are webinterfaces that requires minimal server configuration and are easy to use.<br />
<br />
== How to setup Ice for PHP with Apache on Linux (general) ==<br />
If your Linux distribution offers a binary packet for Ice with PHP (usually the name contains Ice and php) you can skip everything but naming the Murmur.ice slice file in the php.ini (see below). If there is no prepared package you'll have to try to find binaries for your system or [[Ice#Compiling_Ice|compile]] Ice yourself and add the extension to PHP and tell PHP where to find the Murmur.ice file.<br />
<br />
To add the IcePHP extension to PHP, first check that the file IcePHP.so for linux is in your php extensions folder specified in your php.ini as <br />
extension_dir = /usr/lib/php5/extensions<br />
If it is not, get the correspoding files from [http://www.zeroc.com/download.html ZeroC's downloads page].<br />
<br />
Then either in your php.ini file or in your /etc/php.d or /etc/php5/conf.d folder in ice.ini, add the line<br />
extension=IcePHP.so<br />
At least the Linux RPMs will do this automatically, so check that you're not doing it a second time.<br />
<br />
Second, you have to tell the PHP parser where to find the slice ('''S'''pecification '''L'''anguage for '''Ice''') file.<br />
Add<br />
ice.slice = /path/to/Murmur.ice<br />
to your php.ini or other config file (e.g. ice.ini).<br />
<br />
=== Troubleshooting ===<br />
If you encounter problems, check your Apache log.<br />
<br />
If it tells you the PHP extension was compiled on an older api, you have to compile the IcePHP.so from source.<br />
<br />
Download Ice-3.4.2.tar.gz from [http://www.zeroc.com/download.html ZeroCs downloads page], untar, cd into PHP, as written in the INSTALL file export ICE_HOME environment variable pointing to your Ice install dir. If you installed it with an RPM, type<br />
export ICE_HOME=/usr<br />
then make, and in the lib folder, there'll be your IcePHP.so file.<br />
<br />
<br />
One common error is<br />
PHP Warning: PHP Startup: skipping dictionary ::Murmur::UserInfoMap - unsupported key type in Unknown on line 0<br />
This is caused because the .ice is slightly incompatible with older versions of php-ice - edit the Murmur.ice file and find the following lines<br />
/** User information map.<br />
* Older versions of ice-php can't handle enums as keys. If you are using one of these, replace 'UserInfo' with 'byte'.<br />
*/<br />
and perform the substitution mentioned.<br />
<br />
== How to Setup Ice 3.4 for PHP with Apache on Debian/Ubuntu ==<br />
<br />
This tutorial is an example. Use at your own risk.<br />
<br />
'''This guide was tested on Ubuntu 11.10 (oneiric) -last updated 23-03-2012-'''<br />
<br />
I assume you already have a working Apache2 and PHP environment, and have a working install of Murmur.<br />
<br />
<br />
'''Prerequisites'''<br />
<br />
First we need to install the Ice library for PHP. Execute the following in a root shell:<br />
<br />
apt-get update<br />
<br />
apt-get install php-zeroc-ice<br />
<br />
<br />
''' Step 1 - Murmur Setup'''<br />
<br />
Optional: To run Murmur at every startup change the config value in /etc/default/mumble-server acordingly with a editor of your choice.<br />
<br />
Now open the file ''/etc/mumble-server.ini'' for editing:<br />
vim /etc/mumble-server.ini<br />
OR:<br />
nano -w /etc/mumble-server.ini <br />
Comment the following line to disable [[DBus]]:<br />
#dbus=system<br />
Uncomment or paste the following line to enable the Ice interface:<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
After restarting the daemon Murmur will now listen for Ice requests.<br />
<br />
<br />
<br />
''' Step 2 - PHP Setup '''<br />
<br />
Now we need to tell PHP to load the IcePHP extension.<br />
Open the file ''/etc/php5/apache2/php.ini'' for editing:<br />
vim /etc/php5/apache2/php.ini<br />
OR:<br />
nano -w /etc/php5/apache2/php.ini<br />
Paste the folowing in the dynamic extensions section of the file:<br />
extension=IcePHP.so <br />
<br />
<br />
''' Step 3 - Reload and Check '''<br />
<br />
Everything should be set up so let's restart the servers so they load the updated config files.<br />
<br />
Restart your Apache2 daemon:<br />
/etc/init.d/apache2 restart<br />
Restart your Mumble server:<br />
/etc/init.d/mumble-server restart<br />
Make a file named phpinfo.php in your web root and paste the following:<br />
<?php phpinfo(); ?><br />
Open the page in your browser, you should be greeted with PHP's information page. Search the page for "Ice version" to verify that the IcePHP extension has loaded. If you don't see IcePHP's version and config info on this page, verify that the file IcePHP.so exists in PHP's ''extension_dir'' (this will also be in your PHP info page. Once you're sure that the IcePHP extension has loaded, delete the phpinfo.php file for security reasons.<br />
<br />
Now we will take a look in the mumble-server log to see if Murmur's Ice interface is listening:<br />
tail -n10 /var/log/mumble-server/mumble-server.log<br />
If you find a line similar to the following everything is fine and you can now communicate to Murmur via its Ice interface.<br />
...<br />
<W>2012-03-24 13:37:11.316 MurmurIce: Endpoint "tcp -h 127.0.0.1 -p 6502" running<br />
...<br />
<br />
Now you can install and use any of the PHP based [[3rd Party Applications]] compatible with IcePHP version 3.4.<br />
<br />
== How to setup Ice for PHP with Apache on Windows ==<br />
<br />
These are example scripts. Use at your own risk. These scripts are not intended for production machines. These are examples of what Ice can do. Note that if you already have a web server installed on the server you can adapt this guide to use it instead of installing Apache.<br />
<br />
First install [http://apache.mirror.facebook.com/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi Apache]. Install it to ''C:\apache\''. <br />
<br />
Now install [http://www.php.net/get/php-5.2.8-win32-installer.msi/from/us.php.net/mirror PHP]. Tell PHP to install to ''C:\PHP5\''. In the installer on the "Web Server Setup" window select Apache 2.2.x Module. When you get to "Select Apache Configuration Directory" put ''C:\apache\conf\''. Proceed through the installer. Install the defaults, you do not need to install the extensions for PHP. <br />
<br />
Now [http://zeroc.com/download.html download] and install Ice-''x.x.x''-VC60.msi. Go to ''C:\Ice-3.3.1-VC60\bin\'' and copy <br />
bzip2.dll <br />
ice33.dll <br />
iceutil33.dll <br />
msvcp60.dll <br />
msvcrt.dll <br />
php_ice.dll <br />
slice33.dll <br />
stlport_vc646.dll <br />
to ''C:\apache\bin'' . Now open ''C:\PHP5\php.ini'' and add the following two lines to the bottom of the file: <br />
extension=php_ice.dll<br />
ice.slice=C:\PHP5\Murmur.ice<br />
<br />
Now save and exit php.ini.<br />
<br />
After you have done all that, download [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/src/murmur/Murmur.ice?view=log Murmur.ice], [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=log icedemo.php], and [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/weblist.php?view=log weblist.php] (Click the links, and on the Sourceforge page right click on "(download)" and select "Save Link As...".) Put Murmur.ice in ''C:\PHP5''. Put icedemo.php and weblist.php in ''C:\apache\htdocs''. <br />
<br />
Double click the Apache icon in the system tray and select "Restart".<br />
<br />
You now need at least one running Murmur server. Go to C:\Program Files\Mumble and double click murmur.exe and the server will start.<br />
<br />
You should now be able to go to http://<your IP or Domain>/icedemo.php (or weblist.php). Make SURE that you have icedemo.php protected so that only YOU can access it. If you do not want to use icedemo.php, [http://mumble.sourceforge.net/Running_Murmur#Web-Interfaces here] is a list of other web interfaces you can use.<br />
<br />
== How to setup Ice for PHP with XAMPP on Windows - or the right way to use Ice on Windows ==<br />
<br />
=== pre Setup ===<br />
Download and install the following packages:<br />
* XAMPP for Windows http://www.apachefriends.org<br />
* ZeroC Ice http://zeroc.com/download.html#win32_msi<br />
Now configure and start XAMMP.<br />
<br />
=== Create developer environment for Windows ===<br />
* Open System in Control Panel ( On Windows VISTA/7 Systems select advanced )<br />
* On the Advanced tab, click Environment Variables<br />
* Add the Ice Path to %PATH%<br />
Select the name PATH on user variables and edit. If the name PATH does not exist, select new. Enter now the PATH to your Ice installation dir.<br />
<br />
Sample for 32Bit:<br />
%PROGRAMFILES%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Sample for Windows x64:<br />
%PROGRAMFILES(x86)%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Now logout from Windows or restart. After reboot check if included Ice in our environment. Open the CMD and try<br />
slice2php<br />
The Output return the slice2php help. If not check http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/environment_variables.mspx?mfr=true<br />
<br />
=== Configure XAMPP/PHP ===<br />
Copy the File php_ice.dll from <your path>\ZeroC\Ice-3.4.0\bin to <your_path>\xampplite\php\ext<br />
Edit the php.ini in <your_path>\xampplite\php and add<br />
extension=php_ice.dll<br />
ice.slice=<mumble_path>\Murmur.ice<br />
<br />
Now start XAMMP and check the phpinfo().<br />
<br />
== Using different ice.slice on same host ==<br />
Sometimes you run two servers of mumble on the same host and you cannot load two slices with different mumble versions on the same time.<br />
The solution is to use ICE profiles, that will require extra files and unfortunately modification of scripts that run the default profile.<br />
Description on Debian etch with apache2, PHP as fcgid and cli.<br />
===Creating profiles===<br />
* Lets create profile directory (as root/superuser user), I have created mine at<br />
/etc/php5/ice/<br />
* Then create directories per profile (it will make life easier later)<br />
/etc/php5/ice/murmur.1.1.x<br />
/etc/php5/ice/murmur.1.2.x<br />
* To each of the corresponding directory I have placed the Murmur.ice file provided with the installs. You will notice that later upgrades will just consit of copying new files (instead of renaming).<br />
* time to make profiles.ini file that ICE will use:<br />
vi /etc/php5/ice/profiles.ini<br />
* Insert there below code:<br />
<code><pre><br />
[Murmur11x]<br />
slice=/etc/php5/ice/murmur.1.1.x/Murmur.ice<br />
<br />
[Murmur12x]<br />
slice=/etc/php5/ice/murmur.1.2.x/Murmur.ice<br />
</pre></code><br />
<br />
* This way you got two profiles, first (Murmur11x) is loading slice file for older murmur setups, and the other (Murmurm12x) loads newer slices. Below example of directory structure:<br />
/etc/php5/ice<br />
|-- murmur.1.1.x<br />
| `-- Murmur.ice<br />
|-- murmur.1.2.x<br />
| `-- Murmur.ice<br />
`-- profiles.ini<br />
<br />
===IcePHP.ini===<br />
* Now time to alter /etc/php5/cgi/conf.d/IcePHP.ini, so it will look like this<br />
<code><pre><br />
extension = IcePHP.so<br />
ice.profiles=/etc/php5/ice/profiles.ini<br />
</pre></code><br />
*Notice that we are adding ice.profile setting, so that ice knows where to search for profiles.<br />
*Default profile is named __default__ and you better avoid to make it.<br />
*I got no idea about setting up default ice.slice entry (experience told me to force editing php files anyway, read below)<br />
<br />
====Changing PHP scripts====<br />
* Next alter the source code of the php scripts you use. It consists of just altering the one function that tells ICE to load profile. By default the function is ran without paramter, and it looks like below:<br />
Ice_loadProfile();<br />
* Now we will tell that function to load specific profile that it was designed for. Below example modifications to load different profiles for given ice profile:<br />
for older mumble:<br />
Ice_loadProfile('Murmur11x'); // load profile for scripts that talk with murmur 1.1.x<br />
or for new mumble:<br />
Ice_loadProfile('Murmur12x'); // load profile for scripts that talk with murmur 1.2.x<br />
* Notice that single quotes are required.<br />
<br />
===Checking out if it works===<br />
* Remember to restart apache (your configuration may require it)<br />
* See php/apache error logs when something goes wrong.<br />
* If you get erro like ''unknown operation getUsers invoked on proxy of type ::Murmur::Server'' then it means you use old Murmur.ice file. This happens whne you try to connect using Murmur.ice from version 1.1.x to Murmur server 1.2.x, which require Murmur.ice 1.2.x. Update Murmur.ice on web server and restart it and then it should work.<br />
<br />
===Further steps===<br />
* I suggest you do the same with /etc/php5/cli/conf.d file and scripts that you run from console (crontab)<br />
* Altering php.ini error_reporting is advised to disable generating massive amount of warning messages:<br />
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING<br />
* You can also set up config files for those profile - more info at http://www.zeroc.com/doc/Ice-3.3.1/manual/IcePHP.29.3.html<br />
<br />
= Developing for the Murmur Ice interface =<br />
How to use Ice differs from language to language. The parameters and method names will remain the same, but the syntax will naturally be different. Murmur will, by default, open up an adapter on port 6502 (or 10000 for homedir installs), which has a single accessible object named "Meta". This is the Meta server, and from it you can retrieve adapters for any configured server.<br />
<br />
The ice interface is fully documented, and you can browse the [http://mumble.sourceforge.net/slice generated documentation].<br />
<br />
== PHP ==<br />
With ''IcePHP'' establishing the connection to the interface '''differs''' between the Ice versions 3.3 and prior and 3.4 and later.<br />
<br />
=== Ice <= 3.3 ===<br />
There's an example script using the '''Ice 3.3''' approach (defining the ice.slice directive in the PHP settings) included in the source; have a look at [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=markup icedemo.php].<br />
<br />
The establishing, minimum code, is:<br />
Ice_loadProfile();<br />
// initialize ice connection<br />
global $ICE;<br />
$base = $ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502');<br />
$meta = $base->ice_checkedCast("::Murmur::Meta");<br />
<br />
=== Ice >= 3.4 ===<br />
For '''Ice 3.4''' and later you’ll have to do a different approach.<br />
<br />
First, you’ll have to '''generate PHP code''' from the slice definitions .ice file. >=Ice 3.4 installed, use the '''slice2php executable''' to generate it.<br />
<br />
For your PHP code, you’ll have to have the Ice.php and other libs (scripts provided by zeroc) in your PHPs include path to include them.<br />
require_once 'Ice.php';<br />
require_once 'Murmur.php';<br />
$ICE = Ice_initialize();<br />
$meta = Murmur_MetaPrxHelper::checkedCast($ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502'));<br />
Where ''Murmur.php'' is the generated file.<br />
<br />
= Using Glacier2 =<br />
<br />
Glacier2 is a Ice '''routing and firewall utility''', and allows you to securely run the server on one machine and murmur on another. Note that if both server and client are on a secure LAN, you can just use iptables to protect the Ice port, which is a lot easier than setting up Glacier2. Also, '''since Mumble 1.2.2 you an set an icesecret''' in your murmur.ini and use it as a password. '''This is a lot easier to set up''' and use than Glacier2.<br />
<br />
The examples here assume that 1.2.3.4 is the public IP address of the server running Murmur. We're going to use the username "magic" with the password "pink".<br />
<br />
== Configuring Glacier2 ==<br />
<br />
Create a config file called config.glacier2 and put the following in it:<br />
Glacier2.Client.Endpoints=tcp -h 1.2.3.4 -p 4063<br />
Glacier2.SessionTimeout=60<br />
Glacier2.CryptPasswords=passwords.txt<br />
<br />
Your endpoint host should be the public IP that you are running Glacier on. If you don't specify a client via -h, then Glacier will bind to all listening interfaces.<br />
<br />
Then, create a password hash using the OpenSSL utility.<br />
openssl passwd pink<br />
this will spit out a hash, which looks something like CTThafhdv9Lz2<br />
<br />
Create a file called passwords.txt containing:<br />
magic CTThafhdv9Lz2<br />
<br />
Start glacier2 as this:<br />
glacier2router --Ice.Config=config.glacier2<br />
<br />
You will need to have Ice installed - http://zeroc.com/download.html glacier2router is a binary that is located in ''<location_of_Ice_installation>/bin/glacier2router.exe.''<br />
<br />
== Configuring Murmur ==<br />
<br />
There's nothing to do in murmur. Seriously. Leave the default setting of binding to 127.0.0.1 alone.<br />
<br />
== Configuring Client (PHP) ==<br />
<br />
This is where it starts getting slightly ugly. Note that this requires Ice >= 3.3.1, as Ice 3.3.0 has a bug in it which prevents this from working. The following is the adaptation necessary to weblist.php to get it to work:<br />
<br />
<pre><br />
try {<br />
$router = $ICE->stringToProxy("Glacier2/router:tcp -p 4063 -h 1.2.3.4");<br />
$router = $router->ice_uncheckedCast("::Glacier2::Router")->ice_router(null);<br />
$session = $router->createSession("magic", "pink");<br />
$base = $ICE->stringToProxy("Meta:tcp -h 127.0.0.1 -p 6502")->ice_router($router);<br />
$meta = $base->ice_checkedCast("::Murmur::Meta")->ice_router($router);<br />
<br />
...<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from $meta->getServer), you need to add ->ice_router($router)<br />
<br />
== Configuring Client (Ruby) ==<br />
There is a set of classes for easily working with Ice directly and through Glacier available at [http://github.com/cheald/murmur-manager/tree/master/interfaces/ GitHub]. However, if you want to do it manually, it's not too hard.<br />
<br />
<pre><br />
glacierHost = "yourhost.com"<br />
glacierPort = 1234<br />
user = "glacieruser"<br />
pass = "glacierpass"<br />
server_id = 1<br />
<br />
prx = ic.stringToProxy("Glacier2/router:tcp -h #{glacierHost} -p #{glacierPort}")<br />
router = ::Glacier2::RouterPrx::uncheckedCast(prx).ice_router(nil)<br />
router.createSession(user, pass)<br />
meta = Murmur::MetaPrx::checkedCast(ic.stringToProxy("Meta:tcp -h #{host} -p #{port}")).ice_router(router)<br />
server = meta.getServer(server_id).ice_router(router)<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from Murmur::MetaPrx::getServer), you need to add #ice_router(router)<br />
<br />
= Compiling Ice =<br />
On some platforms there are no officially supported binaries available. In that case you will either have to change your platform or compile Ice yourself.<br />
<br />
== Building Ice on Redhat/CentOS machines ==<br />
'''Note:''' 3.3.1 is no longer the current version of Ice. Feel free to try this guide with the new version and update it if it works, or fix it if it does not.<br />
<br />
1. Download and unpack ICE<br />
wget http://www.zeroc.com/download/Ice/3.3/Ice-3.3.1.tar.gz<br />
tar -xzf Ice-3.3.1.tar.gz<br />
<br />
2. Compile the ICE CPP bindings (these are required for all other bindings)<br />
You will need mcpp-devel from the Zeroc website installed to compile.<br />
http://www.zeroc.com/download.html - Ctrl-F and look for "mcpp-devel". There is a big package of various Ice RPMs to download. You will install a few dependencies, along with the mcpp-devel package. <br />
<br />
cd Ice-3.3.1/cpp<br />
make<br />
(wait 20 minutes)<br />
sudo make install<br />
<br />
3. Compile and install the Ice bindings for your preferred language. For example, to install Ruby bindings:<br />
cd ../rb<br />
make<br />
sudo make install<br />
<br />
4. Export the paths for your newly-installed libraries. These will be different for each language - check the INSTALL or README files in each language's subdirectory for exact instructions.<br />
<br />
For Ruby:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
If you don't want to always have to keep running those export lines, also add them to your ~/.bashrc:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
4. At this point, Ice should be available to your language (in this case, Ruby):<br />
<br />
$ irb<br />
irb(main):001:0> require 'Ice'<br />
=> true<br />
<br />
5. Generate the Slice file for your language.<br />
<br />
To generate it for ruby, we use the slice2rb program, which is in the Ice/cpp/bin directory. Similar binaries for your language of choice will be there, too.<br />
<br />
wget -O Murmur.ice "http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=src/murmur/Murmur.ice;hb=HEAD"<br />
../cpp/bin/slice2rb Murmur.ice<br />
<br />
cp Murmur.rb #{MANAGER_ROOT}/vendor/ice<br />
<br />
Congrats! Ice should be set up and fully functional.<br />
<br />
<br />
<br />
[[Category:Documentation]]<br />
[[Category:Documentation English]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=Ice&diff=6148Ice2012-03-23T00:45:20Z<p>Ilumos: Rewritten and updated 3 year outdated IcePHP tutorial which caused me many hours of grief!</p>
<hr />
<div>Murmur supports remote scripting using [http://www.zeroc.com/ ZeroC Ice], a RPC mechanism. There are bindings for C++, Java, .NET, Python, PHP and Ruby, and this is supported on all our platforms (Win32, Linux and OSX). Ice also works over a network, meaning you can create a web application that interfaces with a Murmur process running on another machine. <br />
<br />
'''All hosters note: local ICE connections have now been secured, without having to use Glacier, in Murmur 1.2.2. Simply use the icesecret= parameter in your ''murmur.ini''. [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=scripts/murmur.ini;hb=5cd6a1be959005191423372847bb7f3dcd7c5c59 Here] is the latest ''murmur.ini'' describing the icesecret setting. Note you must also have Murmur 1.2.2 or greater as well.'''<br />
<br />
= Getting ready to use Ice =<br />
<br />
To enable the Ice interface in your ''murmur.ini'' configuration file, first disable [[DBus]] by commenting out:<br />
dbus=session<br />
Then enable Ice for localhost on port 6502 by adding or un-commenting:<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
<br />
<br />
To check if Ice in fact does listen, on UNIX type:<br />
netstat -apn | grep 6502<br />
Or on Windows type:<br />
netstat -an <br />
and look for the process listening on port 6502<br />
<br />
= End User Howtos =<br />
<br />
Note that after you have ICE set up on your machine, you can install a [[3rd_Party_Applications#Web-Interfaces|web interface]]. [[MAP_-_Mumb1e_Admin_Plugin|Mumb1e Admin Plugin]] or [[Mumble_PHP_Interface|MumPI]] are webinterfaces that requires minimal server configuration and are easy to use.<br />
<br />
== How to setup Ice for PHP with Apache on Linux (general) ==<br />
If your Linux distribution offers a binary packet for Ice with PHP (usually the name contains Ice and php) you can skip everything but naming the Murmur.ice slice file in the php.ini (see below). If there is no prepared package you'll have to try to find binaries for your system or [[Ice#Compiling_Ice|compile]] Ice yourself and add the extension to PHP and tell PHP where to find the Murmur.ice file.<br />
<br />
To add the IcePHP extension to PHP, first check that the file IcePHP.so for linux is in your php extensions folder specified in your php.ini as <br />
extension_dir = /usr/lib/php5/extensions<br />
If it is not, get the correspoding files from [http://www.zeroc.com/download.html ZeroC's downloads page].<br />
<br />
Then either in your php.ini file or in your /etc/php.d or /etc/php5/conf.d folder in ice.ini, add the line<br />
extension=IcePHP.so<br />
At least the Linux RPMs will do this automatically, so check that you're not doing it a second time.<br />
<br />
Second, you have to tell the PHP parser where to find the slice ('''S'''pecification '''L'''anguage for '''Ice''') file.<br />
Add<br />
ice.slice = /path/to/Murmur.ice<br />
to your php.ini or other config file (e.g. ice.ini).<br />
<br />
=== Troubleshooting ===<br />
If you encounter problems, check your Apache log.<br />
<br />
If it tells you the PHP extension was compiled on an older api, you have to compile the IcePHP.so from source.<br />
<br />
Download Ice-3.4.2.tar.gz from [http://www.zeroc.com/download.html ZeroCs downloads page], untar, cd into PHP, as written in the INSTALL file export ICE_HOME environment variable pointing to your Ice install dir. If you installed it with an RPM, type<br />
export ICE_HOME=/usr<br />
then make, and in the lib folder, there'll be your IcePHP.so file.<br />
<br />
<br />
One common error is<br />
PHP Warning: PHP Startup: skipping dictionary ::Murmur::UserInfoMap - unsupported key type in Unknown on line 0<br />
This is caused because the .ice is slightly incompatible with older versions of php-ice - edit the Murmur.ice file and find the following lines<br />
/** User information map.<br />
* Older versions of ice-php can't handle enums as keys. If you are using one of these, replace 'UserInfo' with 'byte'.<br />
*/<br />
and perform the substitution mentioned.<br />
<br />
== How to Setup Ice for PHP with Apache on Debian/Ubuntu ==<br />
<br />
This tutorial is an example. Use at your own risk.<br />
<br />
'''This guide was tested on Ubuntu 11.10 (oneiric) -last updated 23-03-2012-'''<br />
<br />
I assume you already have a working Apache2 and PHP environment, and have a working install of Murmur.<br />
<br />
<br />
'''Prerequisites'''<br />
<br />
First we need to install the Ice library for PHP. Execute the following in a root shell:<br />
<br />
apt-get update<br />
<br />
apt-get install php-zeroc-ice<br />
<br />
<br />
''' Step 1 - Murmur Setup'''<br />
<br />
Optional: To run Murmur at every startup change the config value in /etc/default/mumble-server acordingly with a editor of your choice.<br />
<br />
Now open the file ''/etc/mumble-server.ini'' for editing:<br />
vim /etc/mumble-server.ini<br />
OR:<br />
nano -w /etc/mumble-server.ini <br />
Comment the following line to disable [[DBus]]:<br />
#dbus=system<br />
Uncomment or paste the following line to enable the Ice interface:<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
After restarting the daemon Murmur will now listen for Ice requests.<br />
<br />
<br />
<br />
''' Step 2 - PHP Setup '''<br />
<br />
Now we need to tell PHP to load the IcePHP extension.<br />
Open the file ''/etc/php5/apache2/php.ini'' for editing:<br />
vim /etc/php5/apache2/php.ini<br />
OR:<br />
nano -w /etc/php5/apache2/php.ini<br />
Paste the folowing in the dynamic extensions section of the file:<br />
extension=IcePHP.so <br />
<br />
<br />
''' Step 3 - Reload and Check '''<br />
<br />
Everything should be set up so let's restart the servers so they load the updated config files.<br />
<br />
Restart your Apache2 daemon:<br />
/etc/init.d/apache2 restart<br />
Restart your Mumble server:<br />
/etc/init.d/mumble-server restart<br />
Make a file named phpinfo.php in your web root and paste the following:<br />
<?php phpinfo(); ?><br />
Open the page in your browser, you should be greeted with PHP's information page. Search the page for "Ice version" to verify that the IcePHP extension has loaded. If you don't see IcePHP's version and config info on this page, verify that the file IcePHP.so exists in PHP's ''extension_dir'' (this will also be in your PHP info page. Once you're sure that the IcePHP extension has loaded, delete the phpinfo.php file for security reasons.<br />
<br />
Now we will take a look in the mumble-server log to see if Murmur's Ice interface is listening:<br />
tail -n10 /var/log/mumble-server/mumble-server.log<br />
If you find a line similar to the following everything is fine and you can now communicate to Murmur via its Ice interface.<br />
...<br />
<W>2012-03-24 13:37:11.316 MurmurIce: Endpoint "tcp -h 127.0.0.1 -p 6502" running<br />
...<br />
<br />
Now you can install and use any of the PHP based [[3rd Party Applications]] compatible with IcePHP version 3.4.<br />
<br />
== How to setup Ice for PHP with Apache on Windows ==<br />
<br />
These are example scripts. Use at your own risk. These scripts are not intended for production machines. These are examples of what Ice can do. Note that if you already have a web server installed on the server you can adapt this guide to use it instead of installing Apache.<br />
<br />
First install [http://apache.mirror.facebook.com/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi Apache]. Install it to ''C:\apache\''. <br />
<br />
Now install [http://www.php.net/get/php-5.2.8-win32-installer.msi/from/us.php.net/mirror PHP]. Tell PHP to install to ''C:\PHP5\''. In the installer on the "Web Server Setup" window select Apache 2.2.x Module. When you get to "Select Apache Configuration Directory" put ''C:\apache\conf\''. Proceed through the installer. Install the defaults, you do not need to install the extensions for PHP. <br />
<br />
Now [http://zeroc.com/download.html download] and install Ice-''x.x.x''-VC60.msi. Go to ''C:\Ice-3.3.1-VC60\bin\'' and copy <br />
bzip2.dll <br />
ice33.dll <br />
iceutil33.dll <br />
msvcp60.dll <br />
msvcrt.dll <br />
php_ice.dll <br />
slice33.dll <br />
stlport_vc646.dll <br />
to ''C:\apache\bin'' . Now open ''C:\PHP5\php.ini'' and add the following two lines to the bottom of the file: <br />
extension=php_ice.dll<br />
ice.slice=C:\PHP5\Murmur.ice<br />
<br />
Now save and exit php.ini.<br />
<br />
After you have done all that, download [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/src/murmur/Murmur.ice?view=log Murmur.ice], [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=log icedemo.php], and [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/weblist.php?view=log weblist.php] (Click the links, and on the Sourceforge page right click on "(download)" and select "Save Link As...".) Put Murmur.ice in ''C:\PHP5''. Put icedemo.php and weblist.php in ''C:\apache\htdocs''. <br />
<br />
Double click the Apache icon in the system tray and select "Restart".<br />
<br />
You now need at least one running Murmur server. Go to C:\Program Files\Mumble and double click murmur.exe and the server will start.<br />
<br />
You should now be able to go to http://<your IP or Domain>/icedemo.php (or weblist.php). Make SURE that you have icedemo.php protected so that only YOU can access it. If you do not want to use icedemo.php, [http://mumble.sourceforge.net/Running_Murmur#Web-Interfaces here] is a list of other web interfaces you can use.<br />
<br />
== How to setup Ice for PHP with XAMPP on Windows - or the right way to use Ice on Windows ==<br />
<br />
=== pre Setup ===<br />
Download and install the following packages:<br />
* XAMPP for Windows http://www.apachefriends.org<br />
* ZeroC Ice http://zeroc.com/download.html#win32_msi<br />
Now configure and start XAMMP.<br />
<br />
=== Create developer environment for Windows ===<br />
* Open System in Control Panel ( On Windows VISTA/7 Systems select advanced )<br />
* On the Advanced tab, click Environment Variables<br />
* Add the Ice Path to %PATH%<br />
Select the name PATH on user variables and edit. If the name PATH does not exist, select new. Enter now the PATH to your Ice installation dir.<br />
<br />
Sample for 32Bit:<br />
%PROGRAMFILES%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Sample for Windows x64:<br />
%PROGRAMFILES(x86)%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Now logout from Windows or restart. After reboot check if included Ice in our environment. Open the CMD and try<br />
slice2php<br />
The Output return the slice2php help. If not check http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/environment_variables.mspx?mfr=true<br />
<br />
=== Configure XAMPP/PHP ===<br />
Copy the File php_ice.dll from <your path>\ZeroC\Ice-3.4.0\bin to <your_path>\xampplite\php\ext<br />
Edit the php.ini in <your_path>\xampplite\php and add<br />
extension=php_ice.dll<br />
ice.slice=<mumble_path>\Murmur.ice<br />
<br />
Now start XAMMP and check the phpinfo().<br />
<br />
== Using different ice.slice on same host ==<br />
Sometimes you run two servers of mumble on the same host and you cannot load two slices with different mumble versions on the same time.<br />
The solution is to use ICE profiles, that will require extra files and unfortunately modification of scripts that run the default profile.<br />
Description on Debian etch with apache2, PHP as fcgid and cli.<br />
===Creating profiles===<br />
* Lets create profile directory (as root/superuser user), I have created mine at<br />
/etc/php5/ice/<br />
* Then create directories per profile (it will make life easier later)<br />
/etc/php5/ice/murmur.1.1.x<br />
/etc/php5/ice/murmur.1.2.x<br />
* To each of the corresponding directory I have placed the Murmur.ice file provided with the installs. You will notice that later upgrades will just consit of copying new files (instead of renaming).<br />
* time to make profiles.ini file that ICE will use:<br />
vi /etc/php5/ice/profiles.ini<br />
* Insert there below code:<br />
<code><pre><br />
[Murmur11x]<br />
slice=/etc/php5/ice/murmur.1.1.x/Murmur.ice<br />
<br />
[Murmur12x]<br />
slice=/etc/php5/ice/murmur.1.2.x/Murmur.ice<br />
</pre></code><br />
<br />
* This way you got two profiles, first (Murmur11x) is loading slice file for older murmur setups, and the other (Murmurm12x) loads newer slices. Below example of directory structure:<br />
/etc/php5/ice<br />
|-- murmur.1.1.x<br />
| `-- Murmur.ice<br />
|-- murmur.1.2.x<br />
| `-- Murmur.ice<br />
`-- profiles.ini<br />
<br />
===IcePHP.ini===<br />
* Now time to alter /etc/php5/cgi/conf.d/IcePHP.ini, so it will look like this<br />
<code><pre><br />
extension = IcePHP.so<br />
ice.profiles=/etc/php5/ice/profiles.ini<br />
</pre></code><br />
*Notice that we are adding ice.profile setting, so that ice knows where to search for profiles.<br />
*Default profile is named __default__ and you better avoid to make it.<br />
*I got no idea about setting up default ice.slice entry (experience told me to force editing php files anyway, read below)<br />
<br />
====Changing PHP scripts====<br />
* Next alter the source code of the php scripts you use. It consists of just altering the one function that tells ICE to load profile. By default the function is ran without paramter, and it looks like below:<br />
Ice_loadProfile();<br />
* Now we will tell that function to load specific profile that it was designed for. Below example modifications to load different profiles for given ice profile:<br />
for older mumble:<br />
Ice_loadProfile('Murmur11x'); // load profile for scripts that talk with murmur 1.1.x<br />
or for new mumble:<br />
Ice_loadProfile('Murmur12x'); // load profile for scripts that talk with murmur 1.2.x<br />
* Notice that single quotes are required.<br />
<br />
===Checking out if it works===<br />
* Remember to restart apache (your configuration may require it)<br />
* See php/apache error logs when something goes wrong.<br />
* If you get erro like ''unknown operation getUsers invoked on proxy of type ::Murmur::Server'' then it means you use old Murmur.ice file. This happens whne you try to connect using Murmur.ice from version 1.1.x to Murmur server 1.2.x, which require Murmur.ice 1.2.x. Update Murmur.ice on web server and restart it and then it should work.<br />
<br />
===Further steps===<br />
* I suggest you do the same with /etc/php5/cli/conf.d file and scripts that you run from console (crontab)<br />
* Altering php.ini error_reporting is advised to disable generating massive amount of warning messages:<br />
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING<br />
* You can also set up config files for those profile - more info at http://www.zeroc.com/doc/Ice-3.3.1/manual/IcePHP.29.3.html<br />
<br />
= Developing for the Murmur Ice interface =<br />
How to use Ice differs from language to language. The parameters and method names will remain the same, but the syntax will naturally be different. Murmur will, by default, open up an adapter on port 6502 (or 10000 for homedir installs), which has a single accessible object named "Meta". This is the Meta server, and from it you can retrieve adapters for any configured server.<br />
<br />
The ice interface is fully documented, and you can browse the [http://mumble.sourceforge.net/slice generated documentation].<br />
<br />
== PHP ==<br />
With ''IcePHP'' establishing the connection to the interface '''differs''' between the Ice versions 3.3 and prior and 3.4 and later.<br />
<br />
=== Ice <= 3.3 ===<br />
There's an example script using the '''Ice 3.3''' approach (defining the ice.slice directive in the PHP settings) included in the source; have a look at [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=markup icedemo.php].<br />
<br />
The establishing, minimum code, is:<br />
Ice_loadProfile();<br />
// initialize ice connection<br />
global $ICE;<br />
$base = $ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502');<br />
$meta = $base->ice_checkedCast("::Murmur::Meta");<br />
<br />
=== Ice >= 3.4 ===<br />
For '''Ice 3.4''' and later you’ll have to do a different approach.<br />
<br />
First, you’ll have to '''generate PHP code''' from the slice definitions .ice file. >=Ice 3.4 installed, use the '''slice2php executable''' to generate it.<br />
<br />
For your PHP code, you’ll have to have the Ice.php and other libs (scripts provided by zeroc) in your PHPs include path to include them.<br />
require_once 'Ice.php';<br />
require_once 'Murmur.php';<br />
$ICE = Ice_initialize();<br />
$meta = Murmur_MetaPrxHelper::checkedCast($ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502'));<br />
Where ''Murmur.php'' is the generated file.<br />
<br />
= Using Glacier2 =<br />
<br />
Glacier2 is a Ice '''routing and firewall utility''', and allows you to securely run the server on one machine and murmur on another. Note that if both server and client are on a secure LAN, you can just use iptables to protect the Ice port, which is a lot easier than setting up Glacier2. Also, '''since Mumble 1.2.2 you an set an icesecret''' in your murmur.ini and use it as a password. '''This is a lot easier to set up''' and use than Glacier2.<br />
<br />
The examples here assume that 1.2.3.4 is the public IP address of the server running Murmur. We're going to use the username "magic" with the password "pink".<br />
<br />
== Configuring Glacier2 ==<br />
<br />
Create a config file called config.glacier2 and put the following in it:<br />
Glacier2.Client.Endpoints=tcp -h 1.2.3.4 -p 4063<br />
Glacier2.SessionTimeout=60<br />
Glacier2.CryptPasswords=passwords.txt<br />
<br />
Your endpoint host should be the public IP that you are running Glacier on. If you don't specify a client via -h, then Glacier will bind to all listening interfaces.<br />
<br />
Then, create a password hash using the OpenSSL utility.<br />
openssl passwd pink<br />
this will spit out a hash, which looks something like CTThafhdv9Lz2<br />
<br />
Create a file called passwords.txt containing:<br />
magic CTThafhdv9Lz2<br />
<br />
Start glacier2 as this:<br />
glacier2router --Ice.Config=config.glacier2<br />
<br />
You will need to have Ice installed - http://zeroc.com/download.html glacier2router is a binary that is located in ''<location_of_Ice_installation>/bin/glacier2router.exe.''<br />
<br />
== Configuring Murmur ==<br />
<br />
There's nothing to do in murmur. Seriously. Leave the default setting of binding to 127.0.0.1 alone.<br />
<br />
== Configuring Client (PHP) ==<br />
<br />
This is where it starts getting slightly ugly. Note that this requires Ice >= 3.3.1, as Ice 3.3.0 has a bug in it which prevents this from working. The following is the adaptation necessary to weblist.php to get it to work:<br />
<br />
<pre><br />
try {<br />
$router = $ICE->stringToProxy("Glacier2/router:tcp -p 4063 -h 1.2.3.4");<br />
$router = $router->ice_uncheckedCast("::Glacier2::Router")->ice_router(null);<br />
$session = $router->createSession("magic", "pink");<br />
$base = $ICE->stringToProxy("Meta:tcp -h 127.0.0.1 -p 6502")->ice_router($router);<br />
$meta = $base->ice_checkedCast("::Murmur::Meta")->ice_router($router);<br />
<br />
...<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from $meta->getServer), you need to add ->ice_router($router)<br />
<br />
== Configuring Client (Ruby) ==<br />
There is a set of classes for easily working with Ice directly and through Glacier available at [http://github.com/cheald/murmur-manager/tree/master/interfaces/ GitHub]. However, if you want to do it manually, it's not too hard.<br />
<br />
<pre><br />
glacierHost = "yourhost.com"<br />
glacierPort = 1234<br />
user = "glacieruser"<br />
pass = "glacierpass"<br />
server_id = 1<br />
<br />
prx = ic.stringToProxy("Glacier2/router:tcp -h #{glacierHost} -p #{glacierPort}")<br />
router = ::Glacier2::RouterPrx::uncheckedCast(prx).ice_router(nil)<br />
router.createSession(user, pass)<br />
meta = Murmur::MetaPrx::checkedCast(ic.stringToProxy("Meta:tcp -h #{host} -p #{port}")).ice_router(router)<br />
server = meta.getServer(server_id).ice_router(router)<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from Murmur::MetaPrx::getServer), you need to add #ice_router(router)<br />
<br />
= Compiling Ice =<br />
On some platforms there are no officially supported binaries available. In that case you will either have to change your platform or compile Ice yourself.<br />
<br />
== Building Ice on Redhat/CentOS machines ==<br />
'''Note:''' 3.3.1 is no longer the current version of Ice. Feel free to try this guide with the new version and update it if it works, or fix it if it does not.<br />
<br />
1. Download and unpack ICE<br />
wget http://www.zeroc.com/download/Ice/3.3/Ice-3.3.1.tar.gz<br />
tar -xzf Ice-3.3.1.tar.gz<br />
<br />
2. Compile the ICE CPP bindings (these are required for all other bindings)<br />
You will need mcpp-devel from the Zeroc website installed to compile.<br />
http://www.zeroc.com/download.html - Ctrl-F and look for "mcpp-devel". There is a big package of various Ice RPMs to download. You will install a few dependencies, along with the mcpp-devel package. <br />
<br />
cd Ice-3.3.1/cpp<br />
make<br />
(wait 20 minutes)<br />
sudo make install<br />
<br />
3. Compile and install the Ice bindings for your preferred language. For example, to install Ruby bindings:<br />
cd ../rb<br />
make<br />
sudo make install<br />
<br />
4. Export the paths for your newly-installed libraries. These will be different for each language - check the INSTALL or README files in each language's subdirectory for exact instructions.<br />
<br />
For Ruby:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
If you don't want to always have to keep running those export lines, also add them to your ~/.bashrc:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
4. At this point, Ice should be available to your language (in this case, Ruby):<br />
<br />
$ irb<br />
irb(main):001:0> require 'Ice'<br />
=> true<br />
<br />
5. Generate the Slice file for your language.<br />
<br />
To generate it for ruby, we use the slice2rb program, which is in the Ice/cpp/bin directory. Similar binaries for your language of choice will be there, too.<br />
<br />
wget -O Murmur.ice "http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=src/murmur/Murmur.ice;hb=HEAD"<br />
../cpp/bin/slice2rb Murmur.ice<br />
<br />
cp Murmur.rb #{MANAGER_ROOT}/vendor/ice<br />
<br />
Congrats! Ice should be set up and fully functional.<br />
<br />
<br />
<br />
[[Category:Documentation]]<br />
[[Category:Documentation English]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=Ice&diff=6147Ice2012-03-22T23:47:10Z<p>Ilumos: Capitalised acronyms, changed reference from Ice 3.3 to 3.4</p>
<hr />
<div>Murmur supports remote scripting using [http://www.zeroc.com/ ZeroC Ice], a RPC mechanism. There are bindings for C++, Java, .NET, Python, PHP and Ruby, and this is supported on all our platforms (Win32, Linux and OSX). Ice also works over a network, meaning you can create a web application that interfaces with a Murmur process running on another machine. <br />
<br />
'''All hosters note: local ICE connections have now been secured, without having to use Glacier, in Murmur 1.2.2. Simply use the icesecret= parameter in your ''murmur.ini''. [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=scripts/murmur.ini;hb=5cd6a1be959005191423372847bb7f3dcd7c5c59 Here] is the latest ''murmur.ini'' describing the icesecret setting. Note you must also have Murmur 1.2.2 or greater as well.'''<br />
<br />
= Getting ready to use Ice =<br />
<br />
To enable the Ice interface in your ''murmur.ini'' configuration file, first disable [[DBus]] by commenting out:<br />
dbus=session<br />
Then enable Ice for localhost on port 6502 by adding or un-commenting:<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
<br />
<br />
To check if Ice in fact does listen, on UNIX type:<br />
netstat -apn | grep 6502<br />
Or on Windows type:<br />
netstat -an <br />
and look for the process listening on port 6502<br />
<br />
= End User Howtos =<br />
<br />
Note that after you have ICE set up on your machine, you can install a [[3rd_Party_Applications#Web-Interfaces|web interface]]. [[MAP_-_Mumb1e_Admin_Plugin|Mumb1e Admin Plugin]] or [[Mumble_PHP_Interface|MumPI]] are webinterfaces that requires minimal server configuration and are easy to use.<br />
<br />
== How to setup Ice for PHP with Apache on Linux (general) ==<br />
If your Linux distribution offers a binary packet for Ice with PHP (usually the name contains Ice and php) you can skip everything but naming the Murmur.ice slice file in the php.ini (see below). If there is no prepared package you'll have to try to find binaries for your system or [[Ice#Compiling_Ice|compile]] Ice yourself and add the extension to PHP and tell PHP where to find the Murmur.ice file.<br />
<br />
To add the IcePHP extension to PHP, first check that the file IcePHP.so for linux is in your php extensions folder specified in your php.ini as <br />
extension_dir = /usr/lib/php5/extensions<br />
If it is not, get the correspoding files from [http://www.zeroc.com/download.html ZeroC's downloads page].<br />
<br />
Then either in your php.ini file or in your /etc/php.d or /etc/php5/conf.d folder in ice.ini, add the line<br />
extension=IcePHP.so<br />
At least the Linux RPMs will do this automatically, so check that you're not doing it a second time.<br />
<br />
Second, you have to tell the PHP parser where to find the slice ('''S'''pecification '''L'''anguage for '''Ice''') file.<br />
Add<br />
ice.slice = /path/to/Murmur.ice<br />
to your php.ini or other config file (e.g. ice.ini).<br />
<br />
=== Troubleshooting ===<br />
If you encounter problems, check your Apache log.<br />
<br />
If it tells you the PHP extension was compiled on an older api, you have to compile the IcePHP.so from source.<br />
<br />
Download Ice-3.4.2.tar.gz from [http://www.zeroc.com/download.html ZeroCs downloads page], untar, cd into PHP, as written in the INSTALL file export ICE_HOME environment variable pointing to your Ice install dir. If you installed it with an RPM, type<br />
export ICE_HOME=/usr<br />
then make, and in the lib folder, there'll be your IcePHP.so file.<br />
<br />
<br />
One common error is<br />
PHP Warning: PHP Startup: skipping dictionary ::Murmur::UserInfoMap - unsupported key type in Unknown on line 0<br />
This is caused because the .ice is slightly incompatible with older versions of php-ice - edit the Murmur.ice file and find the following lines<br />
/** User information map.<br />
* Older versions of ice-php can't handle enums as keys. If you are using one of these, replace 'UserInfo' with 'byte'.<br />
*/<br />
and perform the substitution mentioned.<br />
<br />
== How to setup Ice for PHP with Apache on Debian ==<br />
<br />
These are example scripts. Use at your own risk.<br />
<br />
'''This guide is for debian 5.0 (lenny) -upgraded to date 06.04.2009-'''<br />
<br />
I assume you already have a working apache2 and php environment.<br />
<br />
<br />
'''Prerequisites'''<br />
<br />
First we need some essentials to aquire these execute the following in a root shell<br />
<br />
apt-get update<br />
<br />
apt-get install mumble-server icecpp libzeroc-ice32 php-zeroc-ice lzma<br />
<br />
These are namely the Mumble server himself (mumble-server), ZeroC Ice himself (icecpp), the ZeroC-Ice C++ runtime Library (libzeroc-ice32), the Ice PHP extension (php-zeroc-ice) and the lzma extractor.<br />
Be aware that this installs a older server version WITHOUT Ice support. We will fix this later on.<br />
<br />
Additionally we need the current Murmur, thats what the Mumble server is called, release.<br />
<br />
Go to http://mumble.sourceforge.net/ and download the latest stable Static Linux Server. I suggest your home directory for that.<br />
cd ~<br />
wget http://switch.dl.sourceforge.net/sourceforge/mumble/murmur-static_x86-1.1.8.tar.lzma<br />
unlzma -v murmur-static_x86-1.1.8.tar.lzma<br />
tar xfv murmur-static_x86-1.1.8.tar<br />
<br />
<br />
''' Step 1 - Murmur Setup'''<br />
<br />
OPTIONAL: To run Murmur at every startup change the config value in /etc/default/mumble-server acordingly with a editor of your choice.<br />
<br />
Now open the file /etc/mumble-server.ini<br />
vim /etc/mumble-server.ini<br />
OR<br />
nano -w /etc/mumble-server.ini <br />
Uncomemnt the line that starts with dbus=<br />
#dbus=system<br />
Create a new line and paste<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
Murmur now knows that he should listen for Ice requests.<br />
<br />
<br />
''' Step 2 - Manual update Murmur '''<br />
<br />
First of all why did we installed a old version first to replace it now?<br />
<br />
It's easy, we have much less to do. Anyway there is a downside.<br />
<br />
When the package is updated in the repository you will probably break your Ice support. But i think thats the best way and you can easily fix that just with replacing the murmurd binary again.<br />
<br />
You alread extracted the Static Linux Server to your home directory. Now we need some files from there.<br />
<br />
First replace the repository binary with the manually downloaded one.<br />
cd ~/murmur-static_x86-1.1.8<br />
chmod +x ./murmur.x86<br />
cp murmur.x86 /usr/sbin/murmurd<br />
Now copy the Ice specification for murmur.<br />
cp Murmur.ice /var/lib/mumble-server/Murmur.ice<br />
<br />
<br />
''' Step 3 - PHP Setup '''<br />
Now we need to tell the PHP-Ice Extension where the Ice specification file can be found.<br />
You should already have a file /etc/php5/conf.d/IcePHP.ini from your PHP module install.<br />
Open it with a editor.<br />
vim /etc/php5/conf.d/IcePHP.ini<br />
OR<br />
nano -w /etc/php5/conf.d/IcePHP.ini<br />
Paste the folowing in a new line at the end of the file<br />
ice.slice = /var/lib/mumble-server/Murmur.ice<br />
<br />
<br />
''' Step 4 - Reload and Check '''<br />
<br />
Everything needed should be done now let us populate your new settings.<br />
<br />
Restart your apache2.<br />
/etc/init.d/apache2 restart<br />
And start your Mumble server<br />
/etc/init.d/mumble-server start<br />
Now we will take a look in the mumble-server log to see if everything is fine.<br />
tail -n10 /var/log/mumble-server/mumble-server.log<br />
If you find a line similar to the following <br />
...<br />
<W>2009-04-06 13:37:11.316 MurmurIce: Endpoint "tcp -h 127.0.0.1 -p 6502" running<br />
...<br />
everything is fine and you can now comunicate to Murmur over the IcePHP extension.<br />
<br />
''' Again be aware of that you can break your Ice support when the package gets an update in the repository! '''<br />
<br />
--[[User:xenonR|xenonR]] 13:02, 06 April 2009 (UTC)<br />
<br />
== How to setup Ice for PHP with Apache on Windows ==<br />
<br />
These are example scripts. Use at your own risk. These scripts are not intended for production machines. These are examples of what Ice can do. Note that if you already have a web server installed on the server you can adapt this guide to use it instead of installing Apache.<br />
<br />
First install [http://apache.mirror.facebook.com/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi Apache]. Install it to ''C:\apache\''. <br />
<br />
Now install [http://www.php.net/get/php-5.2.8-win32-installer.msi/from/us.php.net/mirror PHP]. Tell PHP to install to ''C:\PHP5\''. In the installer on the "Web Server Setup" window select Apache 2.2.x Module. When you get to "Select Apache Configuration Directory" put ''C:\apache\conf\''. Proceed through the installer. Install the defaults, you do not need to install the extensions for PHP. <br />
<br />
Now [http://zeroc.com/download.html download] and install Ice-''x.x.x''-VC60.msi. Go to ''C:\Ice-3.3.1-VC60\bin\'' and copy <br />
bzip2.dll <br />
ice33.dll <br />
iceutil33.dll <br />
msvcp60.dll <br />
msvcrt.dll <br />
php_ice.dll <br />
slice33.dll <br />
stlport_vc646.dll <br />
to ''C:\apache\bin'' . Now open ''C:\PHP5\php.ini'' and add the following two lines to the bottom of the file: <br />
extension=php_ice.dll<br />
ice.slice=C:\PHP5\Murmur.ice<br />
<br />
Now save and exit php.ini.<br />
<br />
After you have done all that, download [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/src/murmur/Murmur.ice?view=log Murmur.ice], [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=log icedemo.php], and [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/weblist.php?view=log weblist.php] (Click the links, and on the Sourceforge page right click on "(download)" and select "Save Link As...".) Put Murmur.ice in ''C:\PHP5''. Put icedemo.php and weblist.php in ''C:\apache\htdocs''. <br />
<br />
Double click the Apache icon in the system tray and select "Restart".<br />
<br />
You now need at least one running Murmur server. Go to C:\Program Files\Mumble and double click murmur.exe and the server will start.<br />
<br />
You should now be able to go to http://<your IP or Domain>/icedemo.php (or weblist.php). Make SURE that you have icedemo.php protected so that only YOU can access it. If you do not want to use icedemo.php, [http://mumble.sourceforge.net/Running_Murmur#Web-Interfaces here] is a list of other web interfaces you can use.<br />
<br />
== How to setup Ice for PHP with XAMPP on Windows - or the right way to use Ice on Windows ==<br />
<br />
=== pre Setup ===<br />
Download and install the following packages:<br />
* XAMPP for Windows http://www.apachefriends.org<br />
* ZeroC Ice http://zeroc.com/download.html#win32_msi<br />
Now configure and start XAMMP.<br />
<br />
=== Create developer environment for Windows ===<br />
* Open System in Control Panel ( On Windows VISTA/7 Systems select advanced )<br />
* On the Advanced tab, click Environment Variables<br />
* Add the Ice Path to %PATH%<br />
Select the name PATH on user variables and edit. If the name PATH does not exist, select new. Enter now the PATH to your Ice installation dir.<br />
<br />
Sample for 32Bit:<br />
%PROGRAMFILES%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Sample for Windows x64:<br />
%PROGRAMFILES(x86)%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Now logout from Windows or restart. After reboot check if included Ice in our environment. Open the CMD and try<br />
slice2php<br />
The Output return the slice2php help. If not check http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/environment_variables.mspx?mfr=true<br />
<br />
=== Configure XAMPP/PHP ===<br />
Copy the File php_ice.dll from <your path>\ZeroC\Ice-3.4.0\bin to <your_path>\xampplite\php\ext<br />
Edit the php.ini in <your_path>\xampplite\php and add<br />
extension=php_ice.dll<br />
ice.slice=<mumble_path>\Murmur.ice<br />
<br />
Now start XAMMP and check the phpinfo().<br />
<br />
== Using different ice.slice on same host ==<br />
Sometimes you run two servers of mumble on the same host and you cannot load two slices with different mumble versions on the same time.<br />
The solution is to use ICE profiles, that will require extra files and unfortunately modification of scripts that run the default profile.<br />
Description on Debian etch with apache2, PHP as fcgid and cli.<br />
===Creating profiles===<br />
* Lets create profile directory (as root/superuser user), I have created mine at<br />
/etc/php5/ice/<br />
* Then create directories per profile (it will make life easier later)<br />
/etc/php5/ice/murmur.1.1.x<br />
/etc/php5/ice/murmur.1.2.x<br />
* To each of the corresponding directory I have placed the Murmur.ice file provided with the installs. You will notice that later upgrades will just consit of copying new files (instead of renaming).<br />
* time to make profiles.ini file that ICE will use:<br />
vi /etc/php5/ice/profiles.ini<br />
* Insert there below code:<br />
<code><pre><br />
[Murmur11x]<br />
slice=/etc/php5/ice/murmur.1.1.x/Murmur.ice<br />
<br />
[Murmur12x]<br />
slice=/etc/php5/ice/murmur.1.2.x/Murmur.ice<br />
</pre></code><br />
<br />
* This way you got two profiles, first (Murmur11x) is loading slice file for older murmur setups, and the other (Murmurm12x) loads newer slices. Below example of directory structure:<br />
/etc/php5/ice<br />
|-- murmur.1.1.x<br />
| `-- Murmur.ice<br />
|-- murmur.1.2.x<br />
| `-- Murmur.ice<br />
`-- profiles.ini<br />
<br />
===IcePHP.ini===<br />
* Now time to alter /etc/php5/cgi/conf.d/IcePHP.ini, so it will look like this<br />
<code><pre><br />
extension = IcePHP.so<br />
ice.profiles=/etc/php5/ice/profiles.ini<br />
</pre></code><br />
*Notice that we are adding ice.profile setting, so that ice knows where to search for profiles.<br />
*Default profile is named __default__ and you better avoid to make it.<br />
*I got no idea about setting up default ice.slice entry (experience told me to force editing php files anyway, read below)<br />
<br />
====Changing PHP scripts====<br />
* Next alter the source code of the php scripts you use. It consists of just altering the one function that tells ICE to load profile. By default the function is ran without paramter, and it looks like below:<br />
Ice_loadProfile();<br />
* Now we will tell that function to load specific profile that it was designed for. Below example modifications to load different profiles for given ice profile:<br />
for older mumble:<br />
Ice_loadProfile('Murmur11x'); // load profile for scripts that talk with murmur 1.1.x<br />
or for new mumble:<br />
Ice_loadProfile('Murmur12x'); // load profile for scripts that talk with murmur 1.2.x<br />
* Notice that single quotes are required.<br />
<br />
===Checking out if it works===<br />
* Remember to restart apache (your configuration may require it)<br />
* See php/apache error logs when something goes wrong.<br />
* If you get erro like ''unknown operation getUsers invoked on proxy of type ::Murmur::Server'' then it means you use old Murmur.ice file. This happens whne you try to connect using Murmur.ice from version 1.1.x to Murmur server 1.2.x, which require Murmur.ice 1.2.x. Update Murmur.ice on web server and restart it and then it should work.<br />
<br />
===Further steps===<br />
* I suggest you do the same with /etc/php5/cli/conf.d file and scripts that you run from console (crontab)<br />
* Altering php.ini error_reporting is advised to disable generating massive amount of warning messages:<br />
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING<br />
* You can also set up config files for those profile - more info at http://www.zeroc.com/doc/Ice-3.3.1/manual/IcePHP.29.3.html<br />
<br />
= Developing for the Murmur Ice interface =<br />
How to use Ice differs from language to language. The parameters and method names will remain the same, but the syntax will naturally be different. Murmur will, by default, open up an adapter on port 6502 (or 10000 for homedir installs), which has a single accessible object named "Meta". This is the Meta server, and from it you can retrieve adapters for any configured server.<br />
<br />
The ice interface is fully documented, and you can browse the [http://mumble.sourceforge.net/slice generated documentation].<br />
<br />
== PHP ==<br />
With ''IcePHP'' establishing the connection to the interface '''differs''' between the Ice versions 3.3 and prior and 3.4 and later.<br />
<br />
=== Ice <= 3.3 ===<br />
There's an example script using the '''Ice 3.3''' approach (defining the ice.slice directive in the PHP settings) included in the source; have a look at [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=markup icedemo.php].<br />
<br />
The establishing, minimum code, is:<br />
Ice_loadProfile();<br />
// initialize ice connection<br />
global $ICE;<br />
$base = $ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502');<br />
$meta = $base->ice_checkedCast("::Murmur::Meta");<br />
<br />
=== Ice >= 3.4 ===<br />
For '''Ice 3.4''' and later you’ll have to do a different approach.<br />
<br />
First, you’ll have to '''generate PHP code''' from the slice definitions .ice file. >=Ice 3.4 installed, use the '''slice2php executable''' to generate it.<br />
<br />
For your PHP code, you’ll have to have the Ice.php and other libs (scripts provided by zeroc) in your PHPs include path to include them.<br />
require_once 'Ice.php';<br />
require_once 'Murmur.php';<br />
$ICE = Ice_initialize();<br />
$meta = Murmur_MetaPrxHelper::checkedCast($ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502'));<br />
Where ''Murmur.php'' is the generated file.<br />
<br />
= Using Glacier2 =<br />
<br />
Glacier2 is a Ice '''routing and firewall utility''', and allows you to securely run the server on one machine and murmur on another. Note that if both server and client are on a secure LAN, you can just use iptables to protect the Ice port, which is a lot easier than setting up Glacier2. Also, '''since Mumble 1.2.2 you an set an icesecret''' in your murmur.ini and use it as a password. '''This is a lot easier to set up''' and use than Glacier2.<br />
<br />
The examples here assume that 1.2.3.4 is the public IP address of the server running Murmur. We're going to use the username "magic" with the password "pink".<br />
<br />
== Configuring Glacier2 ==<br />
<br />
Create a config file called config.glacier2 and put the following in it:<br />
Glacier2.Client.Endpoints=tcp -h 1.2.3.4 -p 4063<br />
Glacier2.SessionTimeout=60<br />
Glacier2.CryptPasswords=passwords.txt<br />
<br />
Your endpoint host should be the public IP that you are running Glacier on. If you don't specify a client via -h, then Glacier will bind to all listening interfaces.<br />
<br />
Then, create a password hash using the OpenSSL utility.<br />
openssl passwd pink<br />
this will spit out a hash, which looks something like CTThafhdv9Lz2<br />
<br />
Create a file called passwords.txt containing:<br />
magic CTThafhdv9Lz2<br />
<br />
Start glacier2 as this:<br />
glacier2router --Ice.Config=config.glacier2<br />
<br />
You will need to have Ice installed - http://zeroc.com/download.html glacier2router is a binary that is located in ''<location_of_Ice_installation>/bin/glacier2router.exe.''<br />
<br />
== Configuring Murmur ==<br />
<br />
There's nothing to do in murmur. Seriously. Leave the default setting of binding to 127.0.0.1 alone.<br />
<br />
== Configuring Client (PHP) ==<br />
<br />
This is where it starts getting slightly ugly. Note that this requires Ice >= 3.3.1, as Ice 3.3.0 has a bug in it which prevents this from working. The following is the adaptation necessary to weblist.php to get it to work:<br />
<br />
<pre><br />
try {<br />
$router = $ICE->stringToProxy("Glacier2/router:tcp -p 4063 -h 1.2.3.4");<br />
$router = $router->ice_uncheckedCast("::Glacier2::Router")->ice_router(null);<br />
$session = $router->createSession("magic", "pink");<br />
$base = $ICE->stringToProxy("Meta:tcp -h 127.0.0.1 -p 6502")->ice_router($router);<br />
$meta = $base->ice_checkedCast("::Murmur::Meta")->ice_router($router);<br />
<br />
...<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from $meta->getServer), you need to add ->ice_router($router)<br />
<br />
== Configuring Client (Ruby) ==<br />
There is a set of classes for easily working with Ice directly and through Glacier available at [http://github.com/cheald/murmur-manager/tree/master/interfaces/ GitHub]. However, if you want to do it manually, it's not too hard.<br />
<br />
<pre><br />
glacierHost = "yourhost.com"<br />
glacierPort = 1234<br />
user = "glacieruser"<br />
pass = "glacierpass"<br />
server_id = 1<br />
<br />
prx = ic.stringToProxy("Glacier2/router:tcp -h #{glacierHost} -p #{glacierPort}")<br />
router = ::Glacier2::RouterPrx::uncheckedCast(prx).ice_router(nil)<br />
router.createSession(user, pass)<br />
meta = Murmur::MetaPrx::checkedCast(ic.stringToProxy("Meta:tcp -h #{host} -p #{port}")).ice_router(router)<br />
server = meta.getServer(server_id).ice_router(router)<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from Murmur::MetaPrx::getServer), you need to add #ice_router(router)<br />
<br />
= Compiling Ice =<br />
On some platforms there are no officially supported binaries available. In that case you will either have to change your platform or compile Ice yourself.<br />
<br />
== Building Ice on Redhat/CentOS machines ==<br />
'''Note:''' 3.3.1 is no longer the current version of Ice. Feel free to try this guide with the new version and update it if it works, or fix it if it does not.<br />
<br />
1. Download and unpack ICE<br />
wget http://www.zeroc.com/download/Ice/3.3/Ice-3.3.1.tar.gz<br />
tar -xzf Ice-3.3.1.tar.gz<br />
<br />
2. Compile the ICE CPP bindings (these are required for all other bindings)<br />
You will need mcpp-devel from the Zeroc website installed to compile.<br />
http://www.zeroc.com/download.html - Ctrl-F and look for "mcpp-devel". There is a big package of various Ice RPMs to download. You will install a few dependencies, along with the mcpp-devel package. <br />
<br />
cd Ice-3.3.1/cpp<br />
make<br />
(wait 20 minutes)<br />
sudo make install<br />
<br />
3. Compile and install the Ice bindings for your preferred language. For example, to install Ruby bindings:<br />
cd ../rb<br />
make<br />
sudo make install<br />
<br />
4. Export the paths for your newly-installed libraries. These will be different for each language - check the INSTALL or README files in each language's subdirectory for exact instructions.<br />
<br />
For Ruby:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
If you don't want to always have to keep running those export lines, also add them to your ~/.bashrc:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
4. At this point, Ice should be available to your language (in this case, Ruby):<br />
<br />
$ irb<br />
irb(main):001:0> require 'Ice'<br />
=> true<br />
<br />
5. Generate the Slice file for your language.<br />
<br />
To generate it for ruby, we use the slice2rb program, which is in the Ice/cpp/bin directory. Similar binaries for your language of choice will be there, too.<br />
<br />
wget -O Murmur.ice "http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=src/murmur/Murmur.ice;hb=HEAD"<br />
../cpp/bin/slice2rb Murmur.ice<br />
<br />
cp Murmur.rb #{MANAGER_ROOT}/vendor/ice<br />
<br />
Congrats! Ice should be set up and fully functional.<br />
<br />
<br />
<br />
[[Category:Documentation]]<br />
[[Category:Documentation English]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=Ice&diff=6146Ice2012-03-22T23:41:33Z<p>Ilumos: Fixed Windows instructions</p>
<hr />
<div>Murmur supports remote scripting using [http://www.zeroc.com/ ZeroC Ice], a RPC mechanism. There are bindings for C++, Java, .NET, Python, PHP and Ruby, and this is supported on all our platforms (Win32, Linux and OSX). Ice also works over a network, meaning you can create a web application that interfaces with a Murmur process running on another machine. <br />
<br />
'''All hosters note: local ICE connections have now been secured, without having to use Glacier, in Murmur 1.2.2. Simply use the icesecret= parameter in your ''murmur.ini''. [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=scripts/murmur.ini;hb=5cd6a1be959005191423372847bb7f3dcd7c5c59 Here] is the latest ''murmur.ini'' describing the icesecret setting. Note you must also have Murmur 1.2.2 or greater as well.'''<br />
<br />
= Getting ready to use Ice =<br />
<br />
To enable the Ice interface in your ''murmur.ini'' configuration file, first disable [[DBus]] by commenting out:<br />
dbus=session<br />
Then enable Ice for localhost on port 6502 by adding or un-commenting:<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
<br />
<br />
To check if Ice in fact does listen, on UNIX type:<br />
netstat -apn | grep 6502<br />
Or on Windows type:<br />
netstat -an <br />
and look for the process listening on port 6502<br />
<br />
= End User Howtos =<br />
<br />
Note that after you have ICE set up on your machine, you can install a [[3rd_Party_Applications#Web-Interfaces|web interface]]. [[MAP_-_Mumb1e_Admin_Plugin|Mumb1e Admin Plugin]] or [[Mumble_PHP_Interface|MumPI]] are webinterfaces that requires minimal server configuration and are easy to use.<br />
<br />
== How to setup Ice for PHP with Apache on Linux (general) ==<br />
If your Linux distribution offers a binary packet for Ice with php (usually the name contains Ice and php) you can skip everything but naming the Murmur.ice slicer file in the php.ini (see below). If there is no prepared package you'll have to try to find binaries for your system or [[Ice#Compiling_Ice|compile]] Ice yourself and add the extension to php and tell php where to find the Murmur.ice file.<br />
<br />
To add the IcePHP extension to php, first check that the file IcePHP.so for linux is in your php extensions folder specified in your php.ini as <br />
extension_dir = /usr/lib/php5/extensions<br />
If it is not, get the correspoding files from [http://www.zeroc.com/download.html ZeroCs downloads page].<br />
<br />
Then either in your php.ini file or in your /etc/php.d or /etc/php5/conf.d folder in ice.ini, add the line<br />
extension=IcePHP.so<br />
At least the linux rpms will do this automatically, so check that you're not doing it a second time.<br />
<br />
Second, you have to tell the PHP parser where to find the slice ('''S'''pecification '''L'''anguage for '''Ice''') file.<br />
Add<br />
ice.slice = /path/to/Murmur.ice<br />
to your php.ini or other config file (ice.ini).<br />
<br />
=== Troubleshooting ===<br />
If you encounter problems, check your apache log.<br />
<br />
If it tells you the php extension was compiled on an older api, you have to compile the IcePHP.so from source.<br />
<br />
Download Ice-3.3.0.tar.gz from [http://www.zeroc.com/download.html ZeroCs downloads page], untar, cd, cd into php, as written in the INSTALL file export ICE_HOME environment variable pointing to your ice install dir. If you installed it with an rpm, type<br />
export ICE_HOME=/usr<br />
then make, and in the lib folder, there'll be your IcePHP.so file.<br />
<br />
<br />
One common error is<br />
PHP Warning: PHP Startup: skipping dictionary ::Murmur::UserInfoMap - unsupported key type in Unknown on line 0<br />
This is caused because the .ice is slightly incompatible with older versions of php-ice - edit the Murmur.ice file and find the following lines<br />
/** User information map.<br />
* Older versions of ice-php can't handle enums as keys. If you are using one of these, replace 'UserInfo' with 'byte'.<br />
*/<br />
and perform the substitution mentioned.<br />
<br />
== How to setup Ice for PHP with Apache on Debian ==<br />
<br />
These are example scripts. Use at your own risk.<br />
<br />
'''This guide is for debian 5.0 (lenny) -upgraded to date 06.04.2009-'''<br />
<br />
I assume you already have a working apache2 and php environment.<br />
<br />
<br />
'''Prerequisites'''<br />
<br />
First we need some essentials to aquire these execute the following in a root shell<br />
<br />
apt-get update<br />
<br />
apt-get install mumble-server icecpp libzeroc-ice32 php-zeroc-ice lzma<br />
<br />
These are namely the Mumble server himself (mumble-server), ZeroC Ice himself (icecpp), the ZeroC-Ice C++ runtime Library (libzeroc-ice32), the Ice PHP extension (php-zeroc-ice) and the lzma extractor.<br />
Be aware that this installs a older server version WITHOUT Ice support. We will fix this later on.<br />
<br />
Additionally we need the current Murmur, thats what the Mumble server is called, release.<br />
<br />
Go to http://mumble.sourceforge.net/ and download the latest stable Static Linux Server. I suggest your home directory for that.<br />
cd ~<br />
wget http://switch.dl.sourceforge.net/sourceforge/mumble/murmur-static_x86-1.1.8.tar.lzma<br />
unlzma -v murmur-static_x86-1.1.8.tar.lzma<br />
tar xfv murmur-static_x86-1.1.8.tar<br />
<br />
<br />
''' Step 1 - Murmur Setup'''<br />
<br />
OPTIONAL: To run Murmur at every startup change the config value in /etc/default/mumble-server acordingly with a editor of your choice.<br />
<br />
Now open the file /etc/mumble-server.ini<br />
vim /etc/mumble-server.ini<br />
OR<br />
nano -w /etc/mumble-server.ini <br />
Uncomemnt the line that starts with dbus=<br />
#dbus=system<br />
Create a new line and paste<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
Murmur now knows that he should listen for Ice requests.<br />
<br />
<br />
''' Step 2 - Manual update Murmur '''<br />
<br />
First of all why did we installed a old version first to replace it now?<br />
<br />
It's easy, we have much less to do. Anyway there is a downside.<br />
<br />
When the package is updated in the repository you will probably break your Ice support. But i think thats the best way and you can easily fix that just with replacing the murmurd binary again.<br />
<br />
You alread extracted the Static Linux Server to your home directory. Now we need some files from there.<br />
<br />
First replace the repository binary with the manually downloaded one.<br />
cd ~/murmur-static_x86-1.1.8<br />
chmod +x ./murmur.x86<br />
cp murmur.x86 /usr/sbin/murmurd<br />
Now copy the Ice specification for murmur.<br />
cp Murmur.ice /var/lib/mumble-server/Murmur.ice<br />
<br />
<br />
''' Step 3 - PHP Setup '''<br />
Now we need to tell the PHP-Ice Extension where the Ice specification file can be found.<br />
You should already have a file /etc/php5/conf.d/IcePHP.ini from your PHP module install.<br />
Open it with a editor.<br />
vim /etc/php5/conf.d/IcePHP.ini<br />
OR<br />
nano -w /etc/php5/conf.d/IcePHP.ini<br />
Paste the folowing in a new line at the end of the file<br />
ice.slice = /var/lib/mumble-server/Murmur.ice<br />
<br />
<br />
''' Step 4 - Reload and Check '''<br />
<br />
Everything needed should be done now let us populate your new settings.<br />
<br />
Restart your apache2.<br />
/etc/init.d/apache2 restart<br />
And start your Mumble server<br />
/etc/init.d/mumble-server start<br />
Now we will take a look in the mumble-server log to see if everything is fine.<br />
tail -n10 /var/log/mumble-server/mumble-server.log<br />
If you find a line similar to the following <br />
...<br />
<W>2009-04-06 13:37:11.316 MurmurIce: Endpoint "tcp -h 127.0.0.1 -p 6502" running<br />
...<br />
everything is fine and you can now comunicate to Murmur over the IcePHP extension.<br />
<br />
''' Again be aware of that you can break your Ice support when the package gets an update in the repository! '''<br />
<br />
--[[User:xenonR|xenonR]] 13:02, 06 April 2009 (UTC)<br />
<br />
== How to setup Ice for PHP with Apache on Windows ==<br />
<br />
These are example scripts. Use at your own risk. These scripts are not intended for production machines. These are examples of what Ice can do. Note that if you already have a web server installed on the server you can adapt this guide to use it instead of installing Apache.<br />
<br />
First install [http://apache.mirror.facebook.com/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi Apache]. Install it to ''C:\apache\''. <br />
<br />
Now install [http://www.php.net/get/php-5.2.8-win32-installer.msi/from/us.php.net/mirror PHP]. Tell PHP to install to ''C:\PHP5\''. In the installer on the "Web Server Setup" window select Apache 2.2.x Module. When you get to "Select Apache Configuration Directory" put ''C:\apache\conf\''. Proceed through the installer. Install the defaults, you do not need to install the extensions for PHP. <br />
<br />
Now [http://zeroc.com/download.html download] and install Ice-''x.x.x''-VC60.msi. Go to ''C:\Ice-3.3.1-VC60\bin\'' and copy <br />
bzip2.dll <br />
ice33.dll <br />
iceutil33.dll <br />
msvcp60.dll <br />
msvcrt.dll <br />
php_ice.dll <br />
slice33.dll <br />
stlport_vc646.dll <br />
to ''C:\apache\bin'' . Now open ''C:\PHP5\php.ini'' and add the following two lines to the bottom of the file: <br />
extension=php_ice.dll<br />
ice.slice=C:\PHP5\Murmur.ice<br />
<br />
Now save and exit php.ini.<br />
<br />
After you have done all that, download [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/src/murmur/Murmur.ice?view=log Murmur.ice], [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=log icedemo.php], and [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/weblist.php?view=log weblist.php] (Click the links, and on the Sourceforge page right click on "(download)" and select "Save Link As...".) Put Murmur.ice in ''C:\PHP5''. Put icedemo.php and weblist.php in ''C:\apache\htdocs''. <br />
<br />
Double click the Apache icon in the system tray and select "Restart".<br />
<br />
You now need at least one running Murmur server. Go to C:\Program Files\Mumble and double click murmur.exe and the server will start.<br />
<br />
You should now be able to go to http://<your IP or Domain>/icedemo.php (or weblist.php). Make SURE that you have icedemo.php protected so that only YOU can access it. If you do not want to use icedemo.php, [http://mumble.sourceforge.net/Running_Murmur#Web-Interfaces here] is a list of other web interfaces you can use.<br />
<br />
== How to setup Ice for PHP with XAMPP on Windows - or the right way to use Ice on Windows ==<br />
<br />
=== pre Setup ===<br />
Download and install the following packages:<br />
* XAMPP for Windows http://www.apachefriends.org<br />
* ZeroC Ice http://zeroc.com/download.html#win32_msi<br />
Now configure and start XAMMP.<br />
<br />
=== Create developer environment for Windows ===<br />
* Open System in Control Panel ( On Windows VISTA/7 Systems select advanced )<br />
* On the Advanced tab, click Environment Variables<br />
* Add the Ice Path to %PATH%<br />
Select the name PATH on user variables and edit. If the name PATH does not exist, select new. Enter now the PATH to your Ice installation dir.<br />
<br />
Sample for 32Bit:<br />
%PROGRAMFILES%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Sample for Windows x64:<br />
%PROGRAMFILES(x86)%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Now logout from Windows or restart. After reboot check if included Ice in our environment. Open the CMD and try<br />
slice2php<br />
The Output return the slice2php help. If not check http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/environment_variables.mspx?mfr=true<br />
<br />
=== Configure XAMPP/PHP ===<br />
Copy the File php_ice.dll from <your path>\ZeroC\Ice-3.4.0\bin to <your_path>\xampplite\php\ext<br />
Edit the php.ini in <your_path>\xampplite\php and add<br />
extension=php_ice.dll<br />
ice.slice=<mumble_path>\Murmur.ice<br />
<br />
Now start XAMMP and check the phpinfo().<br />
<br />
== Using different ice.slice on same host ==<br />
Sometimes you run two servers of mumble on the same host and you cannot load two slices with different mumble versions on the same time.<br />
The solution is to use ICE profiles, that will require extra files and unfortunately modification of scripts that run the default profile.<br />
Description on Debian etch with apache2, PHP as fcgid and cli.<br />
===Creating profiles===<br />
* Lets create profile directory (as root/superuser user), I have created mine at<br />
/etc/php5/ice/<br />
* Then create directories per profile (it will make life easier later)<br />
/etc/php5/ice/murmur.1.1.x<br />
/etc/php5/ice/murmur.1.2.x<br />
* To each of the corresponding directory I have placed the Murmur.ice file provided with the installs. You will notice that later upgrades will just consit of copying new files (instead of renaming).<br />
* time to make profiles.ini file that ICE will use:<br />
vi /etc/php5/ice/profiles.ini<br />
* Insert there below code:<br />
<code><pre><br />
[Murmur11x]<br />
slice=/etc/php5/ice/murmur.1.1.x/Murmur.ice<br />
<br />
[Murmur12x]<br />
slice=/etc/php5/ice/murmur.1.2.x/Murmur.ice<br />
</pre></code><br />
<br />
* This way you got two profiles, first (Murmur11x) is loading slice file for older murmur setups, and the other (Murmurm12x) loads newer slices. Below example of directory structure:<br />
/etc/php5/ice<br />
|-- murmur.1.1.x<br />
| `-- Murmur.ice<br />
|-- murmur.1.2.x<br />
| `-- Murmur.ice<br />
`-- profiles.ini<br />
<br />
===IcePHP.ini===<br />
* Now time to alter /etc/php5/cgi/conf.d/IcePHP.ini, so it will look like this<br />
<code><pre><br />
extension = IcePHP.so<br />
ice.profiles=/etc/php5/ice/profiles.ini<br />
</pre></code><br />
*Notice that we are adding ice.profile setting, so that ice knows where to search for profiles.<br />
*Default profile is named __default__ and you better avoid to make it.<br />
*I got no idea about setting up default ice.slice entry (experience told me to force editing php files anyway, read below)<br />
<br />
====Changing PHP scripts====<br />
* Next alter the source code of the php scripts you use. It consists of just altering the one function that tells ICE to load profile. By default the function is ran without paramter, and it looks like below:<br />
Ice_loadProfile();<br />
* Now we will tell that function to load specific profile that it was designed for. Below example modifications to load different profiles for given ice profile:<br />
for older mumble:<br />
Ice_loadProfile('Murmur11x'); // load profile for scripts that talk with murmur 1.1.x<br />
or for new mumble:<br />
Ice_loadProfile('Murmur12x'); // load profile for scripts that talk with murmur 1.2.x<br />
* Notice that single quotes are required.<br />
<br />
===Checking out if it works===<br />
* Remember to restart apache (your configuration may require it)<br />
* See php/apache error logs when something goes wrong.<br />
* If you get erro like ''unknown operation getUsers invoked on proxy of type ::Murmur::Server'' then it means you use old Murmur.ice file. This happens whne you try to connect using Murmur.ice from version 1.1.x to Murmur server 1.2.x, which require Murmur.ice 1.2.x. Update Murmur.ice on web server and restart it and then it should work.<br />
<br />
===Further steps===<br />
* I suggest you do the same with /etc/php5/cli/conf.d file and scripts that you run from console (crontab)<br />
* Altering php.ini error_reporting is advised to disable generating massive amount of warning messages:<br />
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING<br />
* You can also set up config files for those profile - more info at http://www.zeroc.com/doc/Ice-3.3.1/manual/IcePHP.29.3.html<br />
<br />
= Developing for the Murmur Ice interface =<br />
How to use Ice differs from language to language. The parameters and method names will remain the same, but the syntax will naturally be different. Murmur will, by default, open up an adapter on port 6502 (or 10000 for homedir installs), which has a single accessible object named "Meta". This is the Meta server, and from it you can retrieve adapters for any configured server.<br />
<br />
The ice interface is fully documented, and you can browse the [http://mumble.sourceforge.net/slice generated documentation].<br />
<br />
== PHP ==<br />
With ''IcePHP'' establishing the connection to the interface '''differs''' between the Ice versions 3.3 and prior and 3.4 and later.<br />
<br />
=== Ice <= 3.3 ===<br />
There's an example script using the '''Ice 3.3''' approach (defining the ice.slice directive in the PHP settings) included in the source; have a look at [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=markup icedemo.php].<br />
<br />
The establishing, minimum code, is:<br />
Ice_loadProfile();<br />
// initialize ice connection<br />
global $ICE;<br />
$base = $ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502');<br />
$meta = $base->ice_checkedCast("::Murmur::Meta");<br />
<br />
=== Ice >= 3.4 ===<br />
For '''Ice 3.4''' and later you’ll have to do a different approach.<br />
<br />
First, you’ll have to '''generate PHP code''' from the slice definitions .ice file. >=Ice 3.4 installed, use the '''slice2php executable''' to generate it.<br />
<br />
For your PHP code, you’ll have to have the Ice.php and other libs (scripts provided by zeroc) in your PHPs include path to include them.<br />
require_once 'Ice.php';<br />
require_once 'Murmur.php';<br />
$ICE = Ice_initialize();<br />
$meta = Murmur_MetaPrxHelper::checkedCast($ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502'));<br />
Where ''Murmur.php'' is the generated file.<br />
<br />
= Using Glacier2 =<br />
<br />
Glacier2 is a Ice '''routing and firewall utility''', and allows you to securely run the server on one machine and murmur on another. Note that if both server and client are on a secure LAN, you can just use iptables to protect the Ice port, which is a lot easier than setting up Glacier2. Also, '''since Mumble 1.2.2 you an set an icesecret''' in your murmur.ini and use it as a password. '''This is a lot easier to set up''' and use than Glacier2.<br />
<br />
The examples here assume that 1.2.3.4 is the public IP address of the server running Murmur. We're going to use the username "magic" with the password "pink".<br />
<br />
== Configuring Glacier2 ==<br />
<br />
Create a config file called config.glacier2 and put the following in it:<br />
Glacier2.Client.Endpoints=tcp -h 1.2.3.4 -p 4063<br />
Glacier2.SessionTimeout=60<br />
Glacier2.CryptPasswords=passwords.txt<br />
<br />
Your endpoint host should be the public IP that you are running Glacier on. If you don't specify a client via -h, then Glacier will bind to all listening interfaces.<br />
<br />
Then, create a password hash using the OpenSSL utility.<br />
openssl passwd pink<br />
this will spit out a hash, which looks something like CTThafhdv9Lz2<br />
<br />
Create a file called passwords.txt containing:<br />
magic CTThafhdv9Lz2<br />
<br />
Start glacier2 as this:<br />
glacier2router --Ice.Config=config.glacier2<br />
<br />
You will need to have Ice installed - http://zeroc.com/download.html glacier2router is a binary that is located in ''<location_of_Ice_installation>/bin/glacier2router.exe.''<br />
<br />
== Configuring Murmur ==<br />
<br />
There's nothing to do in murmur. Seriously. Leave the default setting of binding to 127.0.0.1 alone.<br />
<br />
== Configuring Client (PHP) ==<br />
<br />
This is where it starts getting slightly ugly. Note that this requires Ice >= 3.3.1, as Ice 3.3.0 has a bug in it which prevents this from working. The following is the adaptation necessary to weblist.php to get it to work:<br />
<br />
<pre><br />
try {<br />
$router = $ICE->stringToProxy("Glacier2/router:tcp -p 4063 -h 1.2.3.4");<br />
$router = $router->ice_uncheckedCast("::Glacier2::Router")->ice_router(null);<br />
$session = $router->createSession("magic", "pink");<br />
$base = $ICE->stringToProxy("Meta:tcp -h 127.0.0.1 -p 6502")->ice_router($router);<br />
$meta = $base->ice_checkedCast("::Murmur::Meta")->ice_router($router);<br />
<br />
...<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from $meta->getServer), you need to add ->ice_router($router)<br />
<br />
== Configuring Client (Ruby) ==<br />
There is a set of classes for easily working with Ice directly and through Glacier available at [http://github.com/cheald/murmur-manager/tree/master/interfaces/ GitHub]. However, if you want to do it manually, it's not too hard.<br />
<br />
<pre><br />
glacierHost = "yourhost.com"<br />
glacierPort = 1234<br />
user = "glacieruser"<br />
pass = "glacierpass"<br />
server_id = 1<br />
<br />
prx = ic.stringToProxy("Glacier2/router:tcp -h #{glacierHost} -p #{glacierPort}")<br />
router = ::Glacier2::RouterPrx::uncheckedCast(prx).ice_router(nil)<br />
router.createSession(user, pass)<br />
meta = Murmur::MetaPrx::checkedCast(ic.stringToProxy("Meta:tcp -h #{host} -p #{port}")).ice_router(router)<br />
server = meta.getServer(server_id).ice_router(router)<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from Murmur::MetaPrx::getServer), you need to add #ice_router(router)<br />
<br />
= Compiling Ice =<br />
On some platforms there are no officially supported binaries available. In that case you will either have to change your platform or compile Ice yourself.<br />
<br />
== Building Ice on Redhat/CentOS machines ==<br />
'''Note:''' 3.3.1 is no longer the current version of Ice. Feel free to try this guide with the new version and update it if it works, or fix it if it does not.<br />
<br />
1. Download and unpack ICE<br />
wget http://www.zeroc.com/download/Ice/3.3/Ice-3.3.1.tar.gz<br />
tar -xzf Ice-3.3.1.tar.gz<br />
<br />
2. Compile the ICE CPP bindings (these are required for all other bindings)<br />
You will need mcpp-devel from the Zeroc website installed to compile.<br />
http://www.zeroc.com/download.html - Ctrl-F and look for "mcpp-devel". There is a big package of various Ice RPMs to download. You will install a few dependencies, along with the mcpp-devel package. <br />
<br />
cd Ice-3.3.1/cpp<br />
make<br />
(wait 20 minutes)<br />
sudo make install<br />
<br />
3. Compile and install the Ice bindings for your preferred language. For example, to install Ruby bindings:<br />
cd ../rb<br />
make<br />
sudo make install<br />
<br />
4. Export the paths for your newly-installed libraries. These will be different for each language - check the INSTALL or README files in each language's subdirectory for exact instructions.<br />
<br />
For Ruby:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
If you don't want to always have to keep running those export lines, also add them to your ~/.bashrc:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
4. At this point, Ice should be available to your language (in this case, Ruby):<br />
<br />
$ irb<br />
irb(main):001:0> require 'Ice'<br />
=> true<br />
<br />
5. Generate the Slice file for your language.<br />
<br />
To generate it for ruby, we use the slice2rb program, which is in the Ice/cpp/bin directory. Similar binaries for your language of choice will be there, too.<br />
<br />
wget -O Murmur.ice "http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=src/murmur/Murmur.ice;hb=HEAD"<br />
../cpp/bin/slice2rb Murmur.ice<br />
<br />
cp Murmur.rb #{MANAGER_ROOT}/vendor/ice<br />
<br />
Congrats! Ice should be set up and fully functional.<br />
<br />
<br />
<br />
[[Category:Documentation]]<br />
[[Category:Documentation English]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=Ice&diff=6145Ice2012-03-22T23:38:48Z<p>Ilumos: Made instructions clearer</p>
<hr />
<div>Murmur supports remote scripting using [http://www.zeroc.com/ ZeroC Ice], a RPC mechanism. There are bindings for C++, Java, .NET, Python, PHP and Ruby, and this is supported on all our platforms (Win32, Linux and OSX). Ice also works over a network, meaning you can create a web application that interfaces with a Murmur process running on another machine. <br />
<br />
'''All hosters note: local ICE connections have now been secured, without having to use Glacier, in Murmur 1.2.2. Simply use the icesecret= parameter in your ''murmur.ini''. [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=scripts/murmur.ini;hb=5cd6a1be959005191423372847bb7f3dcd7c5c59 Here] is the latest ''murmur.ini'' describing the icesecret setting. Note you must also have Murmur 1.2.2 or greater as well.'''<br />
<br />
= Getting ready to use Ice =<br />
<br />
To enable the Ice interface in your ''murmur.ini'' configuration file, first disable [[DBus]] by commenting out:<br />
dbus=session<br />
Then enable Ice for localhost on port 6502 by adding or un-commenting:<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
<br />
<br />
To check if Ice in fact does listen, on UNIX type:<br />
netstat -apn | grep 6502<br />
Or on Windows type:<br />
netstat -an | grep 6502<br />
<br />
= End User Howtos =<br />
<br />
Note that after you have ICE set up on your machine, you can install a [[3rd_Party_Applications#Web-Interfaces|web interface]]. [[MAP_-_Mumb1e_Admin_Plugin|Mumb1e Admin Plugin]] or [[Mumble_PHP_Interface|MumPI]] are webinterfaces that requires minimal server configuration and are easy to use.<br />
<br />
== How to setup Ice for PHP with Apache on Linux (general) ==<br />
If your Linux distribution offers a binary packet for Ice with php (usually the name contains Ice and php) you can skip everything but naming the Murmur.ice slicer file in the php.ini (see below). If there is no prepared package you'll have to try to find binaries for your system or [[Ice#Compiling_Ice|compile]] Ice yourself and add the extension to php and tell php where to find the Murmur.ice file.<br />
<br />
To add the IcePHP extension to php, first check that the file IcePHP.so for linux is in your php extensions folder specified in your php.ini as <br />
extension_dir = /usr/lib/php5/extensions<br />
If it is not, get the correspoding files from [http://www.zeroc.com/download.html ZeroCs downloads page].<br />
<br />
Then either in your php.ini file or in your /etc/php.d or /etc/php5/conf.d folder in ice.ini, add the line<br />
extension=IcePHP.so<br />
At least the linux rpms will do this automatically, so check that you're not doing it a second time.<br />
<br />
Second, you have to tell the PHP parser where to find the slice ('''S'''pecification '''L'''anguage for '''Ice''') file.<br />
Add<br />
ice.slice = /path/to/Murmur.ice<br />
to your php.ini or other config file (ice.ini).<br />
<br />
=== Troubleshooting ===<br />
If you encounter problems, check your apache log.<br />
<br />
If it tells you the php extension was compiled on an older api, you have to compile the IcePHP.so from source.<br />
<br />
Download Ice-3.3.0.tar.gz from [http://www.zeroc.com/download.html ZeroCs downloads page], untar, cd, cd into php, as written in the INSTALL file export ICE_HOME environment variable pointing to your ice install dir. If you installed it with an rpm, type<br />
export ICE_HOME=/usr<br />
then make, and in the lib folder, there'll be your IcePHP.so file.<br />
<br />
<br />
One common error is<br />
PHP Warning: PHP Startup: skipping dictionary ::Murmur::UserInfoMap - unsupported key type in Unknown on line 0<br />
This is caused because the .ice is slightly incompatible with older versions of php-ice - edit the Murmur.ice file and find the following lines<br />
/** User information map.<br />
* Older versions of ice-php can't handle enums as keys. If you are using one of these, replace 'UserInfo' with 'byte'.<br />
*/<br />
and perform the substitution mentioned.<br />
<br />
== How to setup Ice for PHP with Apache on Debian ==<br />
<br />
These are example scripts. Use at your own risk.<br />
<br />
'''This guide is for debian 5.0 (lenny) -upgraded to date 06.04.2009-'''<br />
<br />
I assume you already have a working apache2 and php environment.<br />
<br />
<br />
'''Prerequisites'''<br />
<br />
First we need some essentials to aquire these execute the following in a root shell<br />
<br />
apt-get update<br />
<br />
apt-get install mumble-server icecpp libzeroc-ice32 php-zeroc-ice lzma<br />
<br />
These are namely the Mumble server himself (mumble-server), ZeroC Ice himself (icecpp), the ZeroC-Ice C++ runtime Library (libzeroc-ice32), the Ice PHP extension (php-zeroc-ice) and the lzma extractor.<br />
Be aware that this installs a older server version WITHOUT Ice support. We will fix this later on.<br />
<br />
Additionally we need the current Murmur, thats what the Mumble server is called, release.<br />
<br />
Go to http://mumble.sourceforge.net/ and download the latest stable Static Linux Server. I suggest your home directory for that.<br />
cd ~<br />
wget http://switch.dl.sourceforge.net/sourceforge/mumble/murmur-static_x86-1.1.8.tar.lzma<br />
unlzma -v murmur-static_x86-1.1.8.tar.lzma<br />
tar xfv murmur-static_x86-1.1.8.tar<br />
<br />
<br />
''' Step 1 - Murmur Setup'''<br />
<br />
OPTIONAL: To run Murmur at every startup change the config value in /etc/default/mumble-server acordingly with a editor of your choice.<br />
<br />
Now open the file /etc/mumble-server.ini<br />
vim /etc/mumble-server.ini<br />
OR<br />
nano -w /etc/mumble-server.ini <br />
Uncomemnt the line that starts with dbus=<br />
#dbus=system<br />
Create a new line and paste<br />
ice="tcp -h 127.0.0.1 -p 6502"<br />
Murmur now knows that he should listen for Ice requests.<br />
<br />
<br />
''' Step 2 - Manual update Murmur '''<br />
<br />
First of all why did we installed a old version first to replace it now?<br />
<br />
It's easy, we have much less to do. Anyway there is a downside.<br />
<br />
When the package is updated in the repository you will probably break your Ice support. But i think thats the best way and you can easily fix that just with replacing the murmurd binary again.<br />
<br />
You alread extracted the Static Linux Server to your home directory. Now we need some files from there.<br />
<br />
First replace the repository binary with the manually downloaded one.<br />
cd ~/murmur-static_x86-1.1.8<br />
chmod +x ./murmur.x86<br />
cp murmur.x86 /usr/sbin/murmurd<br />
Now copy the Ice specification for murmur.<br />
cp Murmur.ice /var/lib/mumble-server/Murmur.ice<br />
<br />
<br />
''' Step 3 - PHP Setup '''<br />
Now we need to tell the PHP-Ice Extension where the Ice specification file can be found.<br />
You should already have a file /etc/php5/conf.d/IcePHP.ini from your PHP module install.<br />
Open it with a editor.<br />
vim /etc/php5/conf.d/IcePHP.ini<br />
OR<br />
nano -w /etc/php5/conf.d/IcePHP.ini<br />
Paste the folowing in a new line at the end of the file<br />
ice.slice = /var/lib/mumble-server/Murmur.ice<br />
<br />
<br />
''' Step 4 - Reload and Check '''<br />
<br />
Everything needed should be done now let us populate your new settings.<br />
<br />
Restart your apache2.<br />
/etc/init.d/apache2 restart<br />
And start your Mumble server<br />
/etc/init.d/mumble-server start<br />
Now we will take a look in the mumble-server log to see if everything is fine.<br />
tail -n10 /var/log/mumble-server/mumble-server.log<br />
If you find a line similar to the following <br />
...<br />
<W>2009-04-06 13:37:11.316 MurmurIce: Endpoint "tcp -h 127.0.0.1 -p 6502" running<br />
...<br />
everything is fine and you can now comunicate to Murmur over the IcePHP extension.<br />
<br />
''' Again be aware of that you can break your Ice support when the package gets an update in the repository! '''<br />
<br />
--[[User:xenonR|xenonR]] 13:02, 06 April 2009 (UTC)<br />
<br />
== How to setup Ice for PHP with Apache on Windows ==<br />
<br />
These are example scripts. Use at your own risk. These scripts are not intended for production machines. These are examples of what Ice can do. Note that if you already have a web server installed on the server you can adapt this guide to use it instead of installing Apache.<br />
<br />
First install [http://apache.mirror.facebook.com/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi Apache]. Install it to ''C:\apache\''. <br />
<br />
Now install [http://www.php.net/get/php-5.2.8-win32-installer.msi/from/us.php.net/mirror PHP]. Tell PHP to install to ''C:\PHP5\''. In the installer on the "Web Server Setup" window select Apache 2.2.x Module. When you get to "Select Apache Configuration Directory" put ''C:\apache\conf\''. Proceed through the installer. Install the defaults, you do not need to install the extensions for PHP. <br />
<br />
Now [http://zeroc.com/download.html download] and install Ice-''x.x.x''-VC60.msi. Go to ''C:\Ice-3.3.1-VC60\bin\'' and copy <br />
bzip2.dll <br />
ice33.dll <br />
iceutil33.dll <br />
msvcp60.dll <br />
msvcrt.dll <br />
php_ice.dll <br />
slice33.dll <br />
stlport_vc646.dll <br />
to ''C:\apache\bin'' . Now open ''C:\PHP5\php.ini'' and add the following two lines to the bottom of the file: <br />
extension=php_ice.dll<br />
ice.slice=C:\PHP5\Murmur.ice<br />
<br />
Now save and exit php.ini.<br />
<br />
After you have done all that, download [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/src/murmur/Murmur.ice?view=log Murmur.ice], [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=log icedemo.php], and [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/weblist.php?view=log weblist.php] (Click the links, and on the Sourceforge page right click on "(download)" and select "Save Link As...".) Put Murmur.ice in ''C:\PHP5''. Put icedemo.php and weblist.php in ''C:\apache\htdocs''. <br />
<br />
Double click the Apache icon in the system tray and select "Restart".<br />
<br />
You now need at least one running Murmur server. Go to C:\Program Files\Mumble and double click murmur.exe and the server will start.<br />
<br />
You should now be able to go to http://<your IP or Domain>/icedemo.php (or weblist.php). Make SURE that you have icedemo.php protected so that only YOU can access it. If you do not want to use icedemo.php, [http://mumble.sourceforge.net/Running_Murmur#Web-Interfaces here] is a list of other web interfaces you can use.<br />
<br />
== How to setup Ice for PHP with XAMPP on Windows - or the right way to use Ice on Windows ==<br />
<br />
=== pre Setup ===<br />
Download and install the following packages:<br />
* XAMPP for Windows http://www.apachefriends.org<br />
* ZeroC Ice http://zeroc.com/download.html#win32_msi<br />
Now configure and start XAMMP.<br />
<br />
=== Create developer environment for Windows ===<br />
* Open System in Control Panel ( On Windows VISTA/7 Systems select advanced )<br />
* On the Advanced tab, click Environment Variables<br />
* Add the Ice Path to %PATH%<br />
Select the name PATH on user variables and edit. If the name PATH does not exist, select new. Enter now the PATH to your Ice installation dir.<br />
<br />
Sample for 32Bit:<br />
%PROGRAMFILES%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Sample for Windows x64:<br />
%PROGRAMFILES(x86)%\ZeroC\Ice-3.4.0\bin;%PATH%<br />
Now logout from Windows or restart. After reboot check if included Ice in our environment. Open the CMD and try<br />
slice2php<br />
The Output return the slice2php help. If not check http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/environment_variables.mspx?mfr=true<br />
<br />
=== Configure XAMPP/PHP ===<br />
Copy the File php_ice.dll from <your path>\ZeroC\Ice-3.4.0\bin to <your_path>\xampplite\php\ext<br />
Edit the php.ini in <your_path>\xampplite\php and add<br />
extension=php_ice.dll<br />
ice.slice=<mumble_path>\Murmur.ice<br />
<br />
Now start XAMMP and check the phpinfo().<br />
<br />
== Using different ice.slice on same host ==<br />
Sometimes you run two servers of mumble on the same host and you cannot load two slices with different mumble versions on the same time.<br />
The solution is to use ICE profiles, that will require extra files and unfortunately modification of scripts that run the default profile.<br />
Description on Debian etch with apache2, PHP as fcgid and cli.<br />
===Creating profiles===<br />
* Lets create profile directory (as root/superuser user), I have created mine at<br />
/etc/php5/ice/<br />
* Then create directories per profile (it will make life easier later)<br />
/etc/php5/ice/murmur.1.1.x<br />
/etc/php5/ice/murmur.1.2.x<br />
* To each of the corresponding directory I have placed the Murmur.ice file provided with the installs. You will notice that later upgrades will just consit of copying new files (instead of renaming).<br />
* time to make profiles.ini file that ICE will use:<br />
vi /etc/php5/ice/profiles.ini<br />
* Insert there below code:<br />
<code><pre><br />
[Murmur11x]<br />
slice=/etc/php5/ice/murmur.1.1.x/Murmur.ice<br />
<br />
[Murmur12x]<br />
slice=/etc/php5/ice/murmur.1.2.x/Murmur.ice<br />
</pre></code><br />
<br />
* This way you got two profiles, first (Murmur11x) is loading slice file for older murmur setups, and the other (Murmurm12x) loads newer slices. Below example of directory structure:<br />
/etc/php5/ice<br />
|-- murmur.1.1.x<br />
| `-- Murmur.ice<br />
|-- murmur.1.2.x<br />
| `-- Murmur.ice<br />
`-- profiles.ini<br />
<br />
===IcePHP.ini===<br />
* Now time to alter /etc/php5/cgi/conf.d/IcePHP.ini, so it will look like this<br />
<code><pre><br />
extension = IcePHP.so<br />
ice.profiles=/etc/php5/ice/profiles.ini<br />
</pre></code><br />
*Notice that we are adding ice.profile setting, so that ice knows where to search for profiles.<br />
*Default profile is named __default__ and you better avoid to make it.<br />
*I got no idea about setting up default ice.slice entry (experience told me to force editing php files anyway, read below)<br />
<br />
====Changing PHP scripts====<br />
* Next alter the source code of the php scripts you use. It consists of just altering the one function that tells ICE to load profile. By default the function is ran without paramter, and it looks like below:<br />
Ice_loadProfile();<br />
* Now we will tell that function to load specific profile that it was designed for. Below example modifications to load different profiles for given ice profile:<br />
for older mumble:<br />
Ice_loadProfile('Murmur11x'); // load profile for scripts that talk with murmur 1.1.x<br />
or for new mumble:<br />
Ice_loadProfile('Murmur12x'); // load profile for scripts that talk with murmur 1.2.x<br />
* Notice that single quotes are required.<br />
<br />
===Checking out if it works===<br />
* Remember to restart apache (your configuration may require it)<br />
* See php/apache error logs when something goes wrong.<br />
* If you get erro like ''unknown operation getUsers invoked on proxy of type ::Murmur::Server'' then it means you use old Murmur.ice file. This happens whne you try to connect using Murmur.ice from version 1.1.x to Murmur server 1.2.x, which require Murmur.ice 1.2.x. Update Murmur.ice on web server and restart it and then it should work.<br />
<br />
===Further steps===<br />
* I suggest you do the same with /etc/php5/cli/conf.d file and scripts that you run from console (crontab)<br />
* Altering php.ini error_reporting is advised to disable generating massive amount of warning messages:<br />
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING<br />
* You can also set up config files for those profile - more info at http://www.zeroc.com/doc/Ice-3.3.1/manual/IcePHP.29.3.html<br />
<br />
= Developing for the Murmur Ice interface =<br />
How to use Ice differs from language to language. The parameters and method names will remain the same, but the syntax will naturally be different. Murmur will, by default, open up an adapter on port 6502 (or 10000 for homedir installs), which has a single accessible object named "Meta". This is the Meta server, and from it you can retrieve adapters for any configured server.<br />
<br />
The ice interface is fully documented, and you can browse the [http://mumble.sourceforge.net/slice generated documentation].<br />
<br />
== PHP ==<br />
With ''IcePHP'' establishing the connection to the interface '''differs''' between the Ice versions 3.3 and prior and 3.4 and later.<br />
<br />
=== Ice <= 3.3 ===<br />
There's an example script using the '''Ice 3.3''' approach (defining the ice.slice directive in the PHP settings) included in the source; have a look at [http://mumble.svn.sourceforge.net/viewvc/mumble/trunk/scripts/icedemo.php?view=markup icedemo.php].<br />
<br />
The establishing, minimum code, is:<br />
Ice_loadProfile();<br />
// initialize ice connection<br />
global $ICE;<br />
$base = $ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502');<br />
$meta = $base->ice_checkedCast("::Murmur::Meta");<br />
<br />
=== Ice >= 3.4 ===<br />
For '''Ice 3.4''' and later you’ll have to do a different approach.<br />
<br />
First, you’ll have to '''generate PHP code''' from the slice definitions .ice file. >=Ice 3.4 installed, use the '''slice2php executable''' to generate it.<br />
<br />
For your PHP code, you’ll have to have the Ice.php and other libs (scripts provided by zeroc) in your PHPs include path to include them.<br />
require_once 'Ice.php';<br />
require_once 'Murmur.php';<br />
$ICE = Ice_initialize();<br />
$meta = Murmur_MetaPrxHelper::checkedCast($ICE->stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502'));<br />
Where ''Murmur.php'' is the generated file.<br />
<br />
= Using Glacier2 =<br />
<br />
Glacier2 is a Ice '''routing and firewall utility''', and allows you to securely run the server on one machine and murmur on another. Note that if both server and client are on a secure LAN, you can just use iptables to protect the Ice port, which is a lot easier than setting up Glacier2. Also, '''since Mumble 1.2.2 you an set an icesecret''' in your murmur.ini and use it as a password. '''This is a lot easier to set up''' and use than Glacier2.<br />
<br />
The examples here assume that 1.2.3.4 is the public IP address of the server running Murmur. We're going to use the username "magic" with the password "pink".<br />
<br />
== Configuring Glacier2 ==<br />
<br />
Create a config file called config.glacier2 and put the following in it:<br />
Glacier2.Client.Endpoints=tcp -h 1.2.3.4 -p 4063<br />
Glacier2.SessionTimeout=60<br />
Glacier2.CryptPasswords=passwords.txt<br />
<br />
Your endpoint host should be the public IP that you are running Glacier on. If you don't specify a client via -h, then Glacier will bind to all listening interfaces.<br />
<br />
Then, create a password hash using the OpenSSL utility.<br />
openssl passwd pink<br />
this will spit out a hash, which looks something like CTThafhdv9Lz2<br />
<br />
Create a file called passwords.txt containing:<br />
magic CTThafhdv9Lz2<br />
<br />
Start glacier2 as this:<br />
glacier2router --Ice.Config=config.glacier2<br />
<br />
You will need to have Ice installed - http://zeroc.com/download.html glacier2router is a binary that is located in ''<location_of_Ice_installation>/bin/glacier2router.exe.''<br />
<br />
== Configuring Murmur ==<br />
<br />
There's nothing to do in murmur. Seriously. Leave the default setting of binding to 127.0.0.1 alone.<br />
<br />
== Configuring Client (PHP) ==<br />
<br />
This is where it starts getting slightly ugly. Note that this requires Ice >= 3.3.1, as Ice 3.3.0 has a bug in it which prevents this from working. The following is the adaptation necessary to weblist.php to get it to work:<br />
<br />
<pre><br />
try {<br />
$router = $ICE->stringToProxy("Glacier2/router:tcp -p 4063 -h 1.2.3.4");<br />
$router = $router->ice_uncheckedCast("::Glacier2::Router")->ice_router(null);<br />
$session = $router->createSession("magic", "pink");<br />
$base = $ICE->stringToProxy("Meta:tcp -h 127.0.0.1 -p 6502")->ice_router($router);<br />
$meta = $base->ice_checkedCast("::Murmur::Meta")->ice_router($router);<br />
<br />
...<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from $meta->getServer), you need to add ->ice_router($router)<br />
<br />
== Configuring Client (Ruby) ==<br />
There is a set of classes for easily working with Ice directly and through Glacier available at [http://github.com/cheald/murmur-manager/tree/master/interfaces/ GitHub]. However, if you want to do it manually, it's not too hard.<br />
<br />
<pre><br />
glacierHost = "yourhost.com"<br />
glacierPort = 1234<br />
user = "glacieruser"<br />
pass = "glacierpass"<br />
server_id = 1<br />
<br />
prx = ic.stringToProxy("Glacier2/router:tcp -h #{glacierHost} -p #{glacierPort}")<br />
router = ::Glacier2::RouterPrx::uncheckedCast(prx).ice_router(nil)<br />
router.createSession(user, pass)<br />
meta = Murmur::MetaPrx::checkedCast(ic.stringToProxy("Meta:tcp -h #{host} -p #{port}")).ice_router(router)<br />
server = meta.getServer(server_id).ice_router(router)<br />
</pre><br />
<br />
For each object you get a proxy to (including the return from Murmur::MetaPrx::getServer), you need to add #ice_router(router)<br />
<br />
= Compiling Ice =<br />
On some platforms there are no officially supported binaries available. In that case you will either have to change your platform or compile Ice yourself.<br />
<br />
== Building Ice on Redhat/CentOS machines ==<br />
'''Note:''' 3.3.1 is no longer the current version of Ice. Feel free to try this guide with the new version and update it if it works, or fix it if it does not.<br />
<br />
1. Download and unpack ICE<br />
wget http://www.zeroc.com/download/Ice/3.3/Ice-3.3.1.tar.gz<br />
tar -xzf Ice-3.3.1.tar.gz<br />
<br />
2. Compile the ICE CPP bindings (these are required for all other bindings)<br />
You will need mcpp-devel from the Zeroc website installed to compile.<br />
http://www.zeroc.com/download.html - Ctrl-F and look for "mcpp-devel". There is a big package of various Ice RPMs to download. You will install a few dependencies, along with the mcpp-devel package. <br />
<br />
cd Ice-3.3.1/cpp<br />
make<br />
(wait 20 minutes)<br />
sudo make install<br />
<br />
3. Compile and install the Ice bindings for your preferred language. For example, to install Ruby bindings:<br />
cd ../rb<br />
make<br />
sudo make install<br />
<br />
4. Export the paths for your newly-installed libraries. These will be different for each language - check the INSTALL or README files in each language's subdirectory for exact instructions.<br />
<br />
For Ruby:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
If you don't want to always have to keep running those export lines, also add them to your ~/.bashrc:<br />
<br />
export RUBYLIB=/opt/Ice-3.3.1/ruby:$RUBYLIB<br />
export LD_LIBRARY_PATH=/opt/Ice-3.3.1/lib:LD_LIBRARY_PATH<br />
<br />
4. At this point, Ice should be available to your language (in this case, Ruby):<br />
<br />
$ irb<br />
irb(main):001:0> require 'Ice'<br />
=> true<br />
<br />
5. Generate the Slice file for your language.<br />
<br />
To generate it for ruby, we use the slice2rb program, which is in the Ice/cpp/bin directory. Similar binaries for your language of choice will be there, too.<br />
<br />
wget -O Murmur.ice "http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=src/murmur/Murmur.ice;hb=HEAD"<br />
../cpp/bin/slice2rb Murmur.ice<br />
<br />
cp Murmur.rb #{MANAGER_ROOT}/vendor/ice<br />
<br />
Congrats! Ice should be set up and fully functional.<br />
<br />
<br />
<br />
[[Category:Documentation]]<br />
[[Category:Documentation English]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=Channel_Viewer_Protocol&diff=6144Channel Viewer Protocol2012-03-22T23:31:52Z<p>Ilumos: Made Mumble reader's compatibility and support much more obvious.</p>
<hr />
<div>People often wish to have a view on their Mumble servers without needing to actually<br />
run the client. This is mostly accomplished using a web based channel viewer which<br />
retrieves channel and user data from a web server, which in turn queries it from<br />
Murmur, and then using techniques like JavaScript to render that data into a nice<br />
tree structure.<br />
<br />
As multiple channel viewers started to arise, developers found the consensus that<br />
using a standardized format for data retrieval yields multiple advantages, the most<br />
important of which is interoperability: The need for using a specific server and<br />
viewer does not arise when all servers and viewers use a shared data format, thus<br />
allowing for both parts to be exchanged easily and independent from one another.<br />
<br />
A good example implementation is [[Mumble reader]], written in PHP and JQuery. It uses IcePHP to query Murmur via [[Ice]] and generate the Channel Viewer Protocol JSON data, which the JQuery front-end reads and formats into the channel viewer itself. The Ice query code only works with IcePHP versions earlier than 3.4, although other query services can be read by its JQuery front-end.<br />
<br />
== General notes ==<br />
<br />
=== Data integrity ===<br />
<br />
The data format should generally be aimed towards delivering information retrieved<br />
from Murmur unaltered. That means that any field that exists in Murmur should be<br />
exposed by the server (unless there is a really good reason not to do so, like for<br />
passwords and the like), and it should not alter any fields that exist in Murmur<br />
to prevent confusion.<br />
<br />
=== Custom data fields ===<br />
<br />
If the implementer of the protocol chooses to add extra information that does not<br />
originate from Murmur itself, these fields should be prefixed with "x_" in order<br />
to prevent name clashes (so for example, a custom field named "coolstuff" should<br />
be named "x_coolstuff" instead).<br />
<br />
If a client encounters a field which it does not understand, it must ignore that<br />
field.<br />
<br />
=== Empty fields ===<br />
<br />
In general, empty fields should be treated as if they would not have been set at<br />
all. This means that a client should not rely on that a field that exists actually<br />
has a usable value.<br />
<br />
=== Encoding ===<br />
<br />
The documents, be it JSON or XML, should be encoded in UTF-8 in order to be as<br />
easily usable as possible. Servers must set their encoding headers correctly to<br />
prevent encoding issues.<br />
<br />
=== The Address field ===<br />
<br />
The address field in the user records requires special attention for multiple reasons.<br />
<br />
* To respect users' privacy, user records should generally not contain the address if the request does not provide any means of authentication. What kind of authentication the client needs to provide is a bit hard to say; a compromise between security and ease of implementation (both client- and server side) is to accept both...<br />
** the standard authentication means of the platform the server is implemented in; that means if your server implementation uses a web framework, its built-in authentication (e.g. through cookies) should be accepted. This way, web based clients will support authentication without any further modification.<br />
** HTTP Basic auth if no other authentication data has been provided, to enable non-web-based clients to retrieve the address information if they need to.<br />
* To ease client implementation, the server should set the "x_addrstr" field to a string that contains either...<br />
** a fully qualified domain name: "somewhere.example.com".<br />
** an IPv4 address in dotted quad notation: "192.168.0.1".<br />
** an IPv6 address in colon notation: "2001:6f8:108f:1:21f:3cff:wx:yz".<br />
<br />
Note however that in most cases, the users' addresses will not even be needed by the<br />
client, so most of this shouldn't even apply to most clients.<br />
<br />
If a server does not support delivering users' addresses at all, it should just ignore<br />
any authentication data the client may have sent.<br />
<br />
<br />
== Example Channel tree ==<br />
<br />
All examples are based on the following channel structure:<br />
<br />
* test server<br />
** newtesting<br />
** testing<br />
*** htmlsubtesting - This channel has HTML elements in its description<br />
**** subsubtesting<br />
*** plainsubtesting - This channel has HTML elements in its description which are escaped and should NOT be evaluated<br />
**** subsubtesting<br />
<br />
<br />
== JSON ==<br />
<br />
To expose the full channel tree using JSON, start with the root channel and<br />
recursively add the users and data to it.<br />
<br />
In order to make cross-site requests easier, the server must implement<br />
[http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/ JSONP].<br />
The name for the request parameter that holds the callback name must be<br />
"callback". If this parameter is not specified, the server must not wrap<br />
the JSON in parenthesis to ensure compatibility with e.g. Python's<br />
simplejson.<br />
<br />
=== Server format ===<br />
<br />
The root object of the tree must always be the server itself, which has<br />
the following properties:<br />
<br />
'id': 1, // The ID of this server instance<br />
'name': 'some name', // The server's name<br />
'root': {...}, // The root channel object<br />
<br />
And may optionally have:<br />
<br />
'x_connecturl': 'mumble://somewhere/'<br />
'x_uptime': 7156 // The number of seconds this server has been running<br />
<br />
=== Channel format ===<br />
<br />
A Channel entry must at least contain the following fields:<br />
<br />
'description': '',<br />
'id': 0,<br />
'links': [], // A list of IDs that name linked channels<br />
'name': 'Root',<br />
'parent': -1,<br />
'users': [], // A list of users in this channel<br />
'position': 0,<br />
'channels': [], // A list of subchannels<br />
'temporary': false<br />
<br />
And may optionally contain:<br />
<br />
'x_connecturl': 'mumble://somewhere/somechannel'<br />
<br />
=== User format ===<br />
<br />
A User entry must at least contain the following fields:<br />
<br />
'channel': 40,<br />
'deaf': false,<br />
'mute': false,<br />
'name': 'Yps0',<br />
'selfDeaf': false,<br />
'selfMute': false,<br />
'session': 143,<br />
'suppress': false,<br />
'userid': 4,<br />
<br />
And may optionally contain:<br />
<br />
'address': (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 192, 168, 0, 10),<br />
'x_addrstring': '192.168.0.10', // A nicely formatted version of the IP address (hostname, dotted quad, IPv6 notation)<br />
'recording': false,<br />
'bytespersec': 6580,<br />
'comment': '',<br />
'context': '',<br />
'identity': '',<br />
'idlesecs': 0,<br />
'onlinesecs': 161,<br />
'os': 'Win',<br />
'osversion': '5.1.2600.1',<br />
'prioritySpeaker': false,<br />
'release': '02071e',<br />
'tcponly': false,<br />
'x_texture': 'http://shotgunfun.de/mumble/1/4/texture.png', // A URL to retrieve the texture/avatar from<br />
'version': 66051<br />
<br />
Which fields to expose may depend on the user of the channel viewer, e.g. the IP adress<br />
may be shown to certain logged-in users only.<br />
<br />
=== Full Example: JSON ===<br />
<br />
Serializing the aforementioned channel structure as JSON, we will get:<br />
{<br />
"x_connecturl": "mumble://kuunavang.funzt-halt.net?version=1.2.2", <br />
"x_uptime": 53289, <br />
"root": {<br />
"channels": [<br />
{<br />
"channels": [], <br />
"x_connecturl": "mumble://kuunavang.funzt-halt.net/newtesting?version=1.2.2", <br />
"temporary": false, <br />
"description": "", <br />
"parent": 0, <br />
"position": 0, <br />
"users": [], <br />
"name": "newtesting", <br />
"links": [], <br />
"id": 6<br />
}, <br />
{<br />
"channels": [<br />
{<br />
"channels": [<br />
{<br />
"channels": [], <br />
"x_connecturl": "mumble://kuunavang.funzt-halt.net/testing/htmlsubtesting%20%C3%B6%C3%A4%C3%BC/subsubtesting?version=1.2.2", <br />
"temporary": false, <br />
"description": "", <br />
"parent": 4, <br />
"position": 0, <br />
"users": [], <br />
"name": "subsubtesting", <br />
"links": [], <br />
"id": 5<br />
}<br />
], <br />
"x_connecturl": "mumble://kuunavang.funzt-halt.net/testing/htmlsubtesting%20%C3%B6%C3%A4%C3%BC?version=1.2.2", <br />
"temporary": false, <br />
"description": "This channel has <i>HTML</i> elements in its description that are evaluated as <span style=\"color:#ff0000\">red </span><b><span style=\"color:#ff0000\">bold</span></b> Fonts!", <br />
"parent": 1, <br />
"position": 0, <br />
"users": [<br />
{<br />
"comment": "", <br />
"mute": false, <br />
"suppress": false, <br />
"selfDeaf": false, <br />
"x_addrstring": "2001:6f8:108f:1:21f:3cff:wx:yz", <br />
"deaf": false, <br />
"selfMute": true, <br />
"bytespersec": 0, <br />
"session": 1, <br />
"tcponly": false, <br />
"address": [ 32, 1, 6, 248, 16, 143, 0, 1, 2, 31, 60, 255, w, x, y, z ], <br />
"idlesecs": 33, <br />
"identity": "", <br />
"name": "svedrin", <br />
"userid": 1, <br />
"version": 66050, <br />
"context": "", <br />
"release": "1.2.2-2", <br />
"osversion": "Debian GNU/Linux unstable (sid)", <br />
"os": "X11", <br />
"onlinesecs": 35, <br />
"channel": 4<br />
}<br />
], <br />
"name": "htmlsubtesting \u00f6\u00e4\u00fc", <br />
"links": [<br />
2<br />
], <br />
"id": 4<br />
}, <br />
{<br />
"channels": [<br />
{<br />
"channels": [], <br />
"x_connecturl": "mumble://kuunavang.funzt-halt.net/testing/plainsubtesting/subsubtesting?version=1.2.2", <br />
"temporary": false, <br />
"description": "", <br />
"parent": 2, <br />
"position": 0, <br />
"users": [], <br />
"name": "subsubtesting", <br />
"links": [], <br />
"id": 3<br />
}<br />
], <br />
"x_connecturl": "mumble://kuunavang.funzt-halt.net/testing/plainsubtesting?version=1.2.2", <br />
"temporary": false, <br />
"description": "This channel has &lt;i&gt;HTML&lt;/i&gt; elements in its description that are not evaluated as &lt;span style=&quot;color: red&quot;&gt;red &lt;b&gt;bold&lt;/b&gt;&lt;/span&gt; Fonts!", <br />
"parent": 1, <br />
"position": 0, <br />
"users": [], <br />
"name": "plainsubtesting", <br />
"links": [<br />
4<br />
], <br />
"id": 2<br />
}<br />
], <br />
"x_connecturl": "mumble://kuunavang.funzt-halt.net/testing?version=1.2.2", <br />
"temporary": false, <br />
"description": "", <br />
"parent": 0, <br />
"position": 0, <br />
"users": [], <br />
"name": "testing", <br />
"links": [], <br />
"id": 1<br />
}<br />
], <br />
"x_connecturl": "mumble://kuunavang.funzt-halt.net?version=1.2.2", <br />
"temporary": false, <br />
"description": "", <br />
"parent": -1, <br />
"position": 0, <br />
"users": [], <br />
"name": "Root", <br />
"links": [], <br />
"id": 0<br />
}, <br />
"name": "test server", <br />
"id": 1<br />
}<br />
<br />
== XML ==<br />
<br />
For XML, the same principles apply as for JSON, along with the following encoding principles:<br />
<br />
* Boolean values are represented as "true" or "false"<br />
* Lists (e.g. for the players' IP addresses or the channel links) are space-separated numbers<br />
<br />
The root element (<tt><server></tt>) should set the following namespace attributes:<br />
<br />
* xmlns="http://mumble.sourceforge.net/Channel_Viewer_Protocol"<br />
* xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance<br />
* xsi:schemaLocation="http://bitbucket.org/Svedrin/mumble-django/wiki/channel-viewer-protocol_murmur-X-Y-Z.xsd" with X.Y.Z being the version of Murmur that the data in this document originates from.<br />
<br />
As XML Schema Definitions need to be adapted to match the fields returned by Murmur,<br />
including the correct Murmur version in the URL is important to enable a correct<br />
validation. Currently, the following XSD documents are available:<br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
! Murmur Version<br />
! XSD URL<br />
|- <br />
| 1.2.2<br />
| http://bitbucket.org/Svedrin/mumble-django/wiki/channel-viewer-protocol_murmur-1-2-2.xsd<br />
|- <br />
| 1.2.3<br />
| http://bitbucket.org/Svedrin/mumble-django/wiki/channel-viewer-protocol_murmur-1-2-3.xsd<br />
|}<br />
<br />
<br />
<br />
=== Server Format ===<br />
<br />
A server is represented using the <tt><server /></tt> tag.<br />
<br />
=== Channel Format ===<br />
<br />
A channel is represented using the <tt><channel /></tt> tag.<br />
<br />
=== User Format ===<br />
<br />
A user is represented using the <tt><user /></tt> tag.<br />
<br />
'''Warning''': Mumble includes NULL bytes in the ''context'' field, so the context field - if not empty - must be base64 encoded.<br />
<br />
=== Full Example: XML ===<br />
<br />
<?xml version="1.0" encoding="UTF-8" ?><br />
<server<br />
xmlns="http://mumble.sourceforge.net/Channel_Viewer_Protocol"<br />
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance<br />
xsi:schemaLocation="http://bitbucket.org/Svedrin/mumble-django/wiki/channel-viewer-protocol_murmur-1-2-3.xsd"<br />
id="1"<br />
name="test server"<br />
x_connecturl="mumble://kuunavang.funzt-halt.net?version=1.2.2"><br />
<channel<br />
description=""<br />
id="0"<br />
links=""<br />
name="Root"<br />
parent="-1"<br />
position="0"<br />
temporary="false"<br />
x_connecturl="mumble://kuunavang.funzt-halt.net?version=1.2.2"><br />
<channel<br />
description=""<br />
id="6"<br />
links=""<br />
name="newtesting"<br />
parent="0"<br />
position="0"<br />
temporary="false"<br />
x_connecturl="mumble://kuunavang.funzt-halt.net/newtesting?version=1.2.2" /><br />
<channel<br />
description=""<br />
id="1"<br />
links=""<br />
name="testing"<br />
parent="0"<br />
position="0"<br />
temporary="false"<br />
x_connecturl="mumble://kuunavang.funzt-halt.net/testing?version=1.2.2"><br />
<channel<br />
description="This channel has &lt;i&gt;HTML&lt;/i&gt; elements in its description that are evaluated as &lt;span style=&amp;quot;color:#ff0000&amp;quot;&gt;red &lt;/span&gt;&lt;b&gt;&lt;span style=&amp;quot;color:#ff0000&amp;quot;&gt;bold&lt;/span&gt;&lt;/b&gt; Fonts!"<br />
id="4"<br />
links="2"<br />
name="htmlsubtesting"<br />
parent="1"<br />
position="0"<br />
temporary="false"<br />
x_connecturl="mumble://kuunavang.funzt-halt.net/testing/htmlsubtesting?version=1.2.2"><br />
<channel<br />
description=""<br />
id="5"<br />
links=""<br />
name="subsubtesting"<br />
parent="4"<br />
position="0"<br />
temporary="false"<br />
x_connecturl="mumble://kuunavang.funzt-halt.net/testing/htmlsubtesting/subsubtesting?version=1.2.2" /><br />
<user<br />
address="32 1 6 248 16 143 0 1 2 31 60 255 w x y z"<br />
bytespersec="0"<br />
channel="4"<br />
comment=""<br />
context="QmF0dGxlZmllbGQgQmFkIENvbXBhbnkgMgA= "<br />
deaf="false"<br />
identity=""<br />
idlesecs="1693"<br />
mute="false"<br />
name="svedrin"<br />
onlinesecs="2943"<br />
os="X11"<br />
osversion="Debian GNU/Linux unstable (sid)"<br />
release="1.2.2-2"<br />
selfDeaf="false"<br />
selfMute="false"<br />
session="7"<br />
suppress="false"<br />
tcponly="false"<br />
userid="1"<br />
version="66050"<br />
x_addrstring="2001:6f8:108f:1:21f:3cff:wx:yz" /><br />
</channel><br />
<channel<br />
description="This channel has &amp;lt;i&amp;gt;HTML&amp;lt;/i&amp;gt; elements in its description that are not evaluated as &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;red &amp;lt;b&amp;gt;bold&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; Fonts!"<br />
id="2"<br />
links="4"<br />
name="plainsubtesting"<br />
parent="1"<br />
position="0"<br />
temporary="false"<br />
x_connecturl="mumble://kuunavang.funzt-halt.net/testing/plainsubtesting?version=1.2.2"><br />
<channel<br />
description=""<br />
id="3"<br />
links=""<br />
name="subsubtesting"<br />
parent="2"<br />
position="0"<br />
temporary="false"<br />
x_connecturl="mumble://kuunavang.funzt-halt.net/testing/plainsubtesting/subsubtesting?version=1.2.2" /><br />
</channel><br />
</channel><br />
</channel><br />
</server><br />
<br />
== Existing Implementations ==<br />
<br />
A number of implementations exist already, which one you choose depends mostly on your needs. If you only want a channel viewer and no administration capabilities, you might want to go with [http://code.google.com/p/mumblereader/ MumbleReader]. For a full-featured web administration interface that also features CVP, check out [[Mumble-Django]] or [[Mumble_PHP_Interface|MumPI]].<br />
<br />
More information is to be found on the [[3rd Party Applications#Channel_Viewers|3rd Party Applications]] page.<br />
<br />
== Authors and Contact ==<br />
<br />
This standard has been written based on the consensus made on [[IRC]]: #mumble on irc.freenode.net.<br />
<br />
Main authors:<br />
* Michael "Svedrin" Ziegler <diese-addy@funzt-halt.net><br />
* Pimmetje<br />
* S_Roach<br />
<br />
If you wish to discuss parts of this standard or help maintaining it, you should join the [[IRC]]<br />
channel or send a mail to Svedrin.<br />
<br />
[[Category:Documentation]]<br />
[[Category:Documentation English]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=3rd_Party_Applications&diff=61433rd Party Applications2012-03-22T23:23:30Z<p>Ilumos: Made it clearer which CVs read and/or provide CVP so that users can use a combination of readers and providers of CVP.</p>
<hr />
<div>'''Please edit this page if you find a feature or step you think should be included; it's a wiki for a reason! Note you must register and wait about 3 days in order to be able to edit.'''<br />
<br />
= Web-Interfaces =<br />
<br />
There are several browser based interfaces which can be used to administrate the Murmur server. If you need something very basic or want to create your own interface you should take a look at Murmur's [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=tree;f=scripts script folder] which contains some basic web-interface examples which use [[Ice]] or [[DBus]].<br />
Additionally the following table contains a collection of more elaborate Web-Interfaces:<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Technology<br />
! License<br />
! Current Version<br />
! Last Release<br />
! [[DBus]]<br />
! [[Ice]]<br />
! 1.1.x<br />
! 1.2.x<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4.3<br />
| 2011-12-23<br />
| bgcolor=#ddffdd | Yes <br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Serverhosting; Permissionssystem; Webinterface to manage Server User, Plugin User and virtual Servers; request function for Server Users; uses DBUS or Slice or nothing; Channelviewer for own homepage; Logging functions; German, English, Frensh; Template functions and more! DBUS is supported in all Versions <= V2.2.1!<br />
| [http://www.mumb1e.de/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble-Django]]<br />
| [http://www.python.org Python] + [http://www.djangoproject.com Django]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4<br />
| 2010-11-14<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Channel viewer (internal and support for others), admin panel, IPv6, [[Channel Viewer Protocol]], Munin plugin, CLI, supports multiple servers and instances, user registration, textures, gravatar, translated to English, German, French, Italian and Japanese<br />
| [http://mumble-django.org]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/lgpl-3.0.html LGPLv3]<br />
| V2.2.3<br />
| 2010-12-05<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Admin and User functionality; multiserver (start, stop, add, remove, edit virtual servers), registration & online user management, interface admin, admin-group and permission system, serverviewer<br />
| [http://github.com/Kissaki/MumPI/wiki]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[PHP Mumble Admin]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V0.4.0<br />
| 2011-10-04<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Complet administration panel control for murmur designed for multiple virtual server. [http://sourceforge.net/projects/phpmumbleadmin/ Website]<br />
| [http://sourceforge.net/projects/phpmumbleadmin/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumbled Admin]]<br />
| [http://php.net/ PHP]<br />
| --<br />
| V0.2<br />
| 2010-01-22<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| visit: http://mumbled.de/content/238/mumbled-phpice-webinterface<br />
| [http://sourceforge.net/projects/mumbled/]<br />
|}<br />
<br />
<small>Note: We recommend using a preferably [[Ice]] or at least [[DBus]] capable interface.</small><br />
<br />
= Standalone Applications =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur Admin Console]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Add, edit and delete users over SSH<br />
| [http://bograt.com/Murmur/]<br />
|<br />
|-bgcolor="#f8f8ff"<br />
| [[http://yulli.cleanvoice.ru/ YuLLi]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Add, remove and control virtual servers remotely (supports SSH)<br />
| [http://yulli.cleanvoice.ru]<br />
|}<br />
<br />
= Commandline-Interfaces =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mice]]<br />
| multi-platform<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Helper script written in [http://www.python.org Python]<br />
| [http://gitorious.org/mumble-scripts/mumble-scripts/blobs/raw/master/Helpers/mice.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[RegMum]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Bat script<br />
| [http://mumble.sourceforge.net/DBus_scripts#Windows]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mmctl]]<br />
| [http://www.python.org Python]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| 1.1.8 - Easy to use script for managing servers and adding users locally<br />
| [http://github.com/mbr/mmctl]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur-manager]]<br />
| Ruby<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| 1.2.1<br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|}<br />
<br />
= Channel Viewers =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble.com<br />
| Web<br />
| Javascript<br />
| Reads [[Channel Viewer Protocol]]<br />
| Enter the URL to the JSON encoded Channel Viewer Protocol provided by your Mumble host to create a unique channel viewer. Requires a CVP provider to query the Mumble server and generate the JSON.<br />
| [http://www.mumble.com/mumble-server-status.php Mumble.com Status Tool]<br />
<br />
<br />
|-bgcolor="#f8f8f8"<br />
| FlaskCVP<br />
| Web<br />
| Python, [http://flask.pocoo.org/ Flask]<br />
| [[Channel Viewer Protocol]]<br />
| A minimalistic CVP provider written using Mumble-Django's connection library and the Flask framework.<br />
| [https://bitbucket.org/Svedrin/mumble-django/src/tip/pyweb/flaskcvp.py flaskcvp.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| GTMurmur<br />
| Web<br />
| Binary<br />
| Proprietary + Provides [[Channel Viewer Protocol]]<br />
| Server-side binary for Murmur which adds support for GameTracker.com queries. Also provides CVP via socket which can be used by other channel viewers. <br />
| [http://www.gametracker.com/downloads/gtmurmurplugin.php GameTracker.com]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| MurmurQuery<br />
| Web<br />
| PHP<br />
| Reads [[Channel Viewer Protocol]]<br />
| PHP class that reads CVP JSON data from the GTMurmur Plugin and displays users and channels in HTML.<br />
| [http://github.com/edmundask/MurmurQuery GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| Web<br />
| PHP<br />
| Proprietary<br />
| Full channel viewer controlling and editing in MAP! You can also include this CV via Iframe in your homepage. And you can edit your whole server using the functions of MAP!<br />
| [http://www.mumb1e.de/ Mumb1e.de]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Murmur-manager]]<br />
| Web<br />
| Ruby<br />
| Proprietary<br />
| <br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble reader]]<br />
| Web<br />
| PHP/Javascript<br />
| Provides & Reads [[Channel Viewer Protocol]]<br />
| JS Viewer which uses PHP with Ice 3.3 to query a Mumble server. Does not support the latest version of Ice (3.4) but the clean JS front-end can be used with other CVP providers.<br />
| [http://mumble.rko.nu/ Webpage]<br />
[http://code.google.com/p/mumblereader/ GoogleCode]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| Web<br />
| PHP/Javascript<br />
| Proprietary + Provides & Reads [[Channel Viewer Protocol]]<br />
| JS-Viewer uses own protocoll/calls to MumPI.<br />
MumPI provides JSON-Channel Viewer Protocol-webservice for other viewers.<br />
| [http://github.com/Kissaki/MumPI/wiki @Github]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| MView<br />
| Web<br />
| Javascript<br />
| [[Channel Viewer Protocol]]<br />
| JS-Viewer injecting HTML (no evil iframes etc necessary!).<br />
| [https://github.com/Kissaki/MView MView @Github]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumble Watcher<br />
| Desktop<br />
| QT/KDE<br />
| [[Channel Viewer Protocol]]<br />
| Useful if you want to see who's online in a Desktop app without actually connecting, e.g. because you're on a PC without a proper headset.<br />
| [http://bitbucket.org/Svedrin/mumble-watcher/ BitBucket]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Mumble-Django]]<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| An ExtJS component that inherits Ext.tree.TreeView to build a channel viewer.<br />
| [http://mumble-django.org/bb/src/tip/pyweb/mumble/media/js/channelviewer.js BitBucket] [http://mumble-django.org/docs/api/channelviewer.html Documentation]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Command Channel]]<br />
| Web<br />
| PHP/JavaScript/EQdkp-Plus/Joomla!/WordPress<br />
| [[Channel Viewer Protocol]]<br />
| A robust channel viewer that has been packaged into several different formats for popular Content Management Systems. You can easily change the icons and colors used.<br />
| [http://commandchannel.com/Downloads/eqdkp-plus/mumbleviewer.zip Module for EQdkp-Plus]<br />
<br />
[http://extensions.joomla.org/extensions/sports-a-games/game-servers/16358 Extension for Joomla!]<br />
<br />
[http://wordpress.org/extend/plugins/mumble-channel-viewer/ Plugin for WordPress]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-php.zip PHP only]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-javascript.zip JavaScript only]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer/wiki JavaScript Documentation]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer Source code]<br />
<br />
[http://github.com/ClusterFCK/Drupal-Mumble-Viewer Module for Drupal 7 (Based on the above)]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| PHP Mumble Viewer<br />
| Web<br />
| PHP<br />
| Ice<br />
| Project abandoned.<br />
| [http://phpmumbleviewer.coolcow.org/ phpmumbleviewer.coolcow.org]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Voice Comms Viewer]]<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| A site that creates Channel Viewers for Mumble, Teamspeak & Ventrilo using the Channel Viewer Protocol<br />
| [http://commsviewer.com/ commsviewer.com]<br />
<br />
|}<br />
<br />
= Miscellaneous Scripts =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Evebot<br />
| Bot<br />
| Python<br />
| Mumble client<br />
| Relays comms from one channel to another with a delay (to synchronise comms for time-delayed game spectators, for example)<br />
| [http://frymaster.127001.org/mumble/ Evebot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumo<br />
| Bot<br />
| Python<br />
| ICE<br />
| Highly extensible script that can use external events (such as gamestate changes) to dynamically shuffle users into channels and groups. Support for various user states and the game "Battlefield 2".<br />
| [http://gitorious.org/mumble-scripts/mumo MuMo]<br />
<br />
|}</div>Ilumoshttps://wiki.mumble.info/index.php?title=3rd_Party_Applications&diff=61423rd Party Applications2012-03-22T23:14:34Z<p>Ilumos: /* Web-Interfaces */</p>
<hr />
<div>'''Please edit this page if you find a feature or step you think should be included; it's a wiki for a reason! Note you must register and wait about 3 days in order to be able to edit.'''<br />
<br />
= Web-Interfaces =<br />
<br />
There are several browser based interfaces which can be used to administrate the Murmur server. If you need something very basic or want to create your own interface you should take a look at Murmur's [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=tree;f=scripts script folder] which contains some basic web-interface examples which use [[Ice]] or [[DBus]].<br />
Additionally the following table contains a collection of more elaborate Web-Interfaces:<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Technology<br />
! License<br />
! Current Version<br />
! Last Release<br />
! [[DBus]]<br />
! [[Ice]]<br />
! 1.1.x<br />
! 1.2.x<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4.3<br />
| 2011-12-23<br />
| bgcolor=#ddffdd | Yes <br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Serverhosting; Permissionssystem; Webinterface to manage Server User, Plugin User and virtual Servers; request function for Server Users; uses DBUS or Slice or nothing; Channelviewer for own homepage; Logging functions; German, English, Frensh; Template functions and more! DBUS is supported in all Versions <= V2.2.1!<br />
| [http://www.mumb1e.de/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble-Django]]<br />
| [http://www.python.org Python] + [http://www.djangoproject.com Django]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4<br />
| 2010-11-14<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Channel viewer (internal and support for others), admin panel, IPv6, [[Channel Viewer Protocol]], Munin plugin, CLI, supports multiple servers and instances, user registration, textures, gravatar, translated to English, German, French, Italian and Japanese<br />
| [http://mumble-django.org]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/lgpl-3.0.html LGPLv3]<br />
| V2.2.3<br />
| 2010-12-05<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Admin and User functionality; multiserver (start, stop, add, remove, edit virtual servers), registration & online user management, interface admin, admin-group and permission system, serverviewer<br />
| [http://github.com/Kissaki/MumPI/wiki]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[PHP Mumble Admin]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V0.4.0<br />
| 2011-10-04<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Complet administration panel control for murmur designed for multiple virtual server. [http://sourceforge.net/projects/phpmumbleadmin/ Website]<br />
| [http://sourceforge.net/projects/phpmumbleadmin/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumbled Admin]]<br />
| [http://php.net/ PHP]<br />
| --<br />
| V0.2<br />
| 2010-01-22<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| visit: http://mumbled.de/content/238/mumbled-phpice-webinterface<br />
| [http://sourceforge.net/projects/mumbled/]<br />
|}<br />
<br />
<small>Note: We recommend using a preferably [[Ice]] or at least [[DBus]] capable interface.</small><br />
<br />
= Standalone Applications =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur Admin Console]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Add, edit and delete users over SSH<br />
| [http://bograt.com/Murmur/]<br />
|<br />
|-bgcolor="#f8f8ff"<br />
| [[http://yulli.cleanvoice.ru/ YuLLi]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Add, remove and control virtual servers remotely (supports SSH)<br />
| [http://yulli.cleanvoice.ru]<br />
|}<br />
<br />
= Commandline-Interfaces =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mice]]<br />
| multi-platform<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Helper script written in [http://www.python.org Python]<br />
| [http://gitorious.org/mumble-scripts/mumble-scripts/blobs/raw/master/Helpers/mice.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[RegMum]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Bat script<br />
| [http://mumble.sourceforge.net/DBus_scripts#Windows]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mmctl]]<br />
| [http://www.python.org Python]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| 1.1.8 - Easy to use script for managing servers and adding users locally<br />
| [http://github.com/mbr/mmctl]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur-manager]]<br />
| Ruby<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| 1.2.1<br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|}<br />
<br />
= Channel Viewers =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble.com<br />
| Web<br />
| Javascript<br />
| [[Channel Viewer Protocol]]<br />
| Enter the URL to the JSON encoded Channel Viewer Protocol provided by your Mumble host to create a unique channel viewer. Requires a CVP provider to query the Mumble server and generate the JSON.<br />
| [http://www.mumble.com/mumble-server-status.php Mumble.com Status Tool]<br />
<br />
<br />
|-bgcolor="#f8f8f8"<br />
| FlaskCVP<br />
| Web<br />
| Python, [http://flask.pocoo.org/ Flask]<br />
| [[Channel Viewer Protocol]]<br />
| A minimalistic CVP provider written using Mumble-Django's connection library and the Flask framework.<br />
| [https://bitbucket.org/Svedrin/mumble-django/src/tip/pyweb/flaskcvp.py flaskcvp.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| GTMurmur<br />
| Web<br />
| Binary<br />
| Proprietary + [[Channel Viewer Protocol]]<br />
| Server-side binary for Murmur which adds support for GameTracker.com queries. Also provides CVP via socket which can be used by other channel viewers. <br />
| [http://www.gametracker.com/downloads/gtmurmurplugin.php GameTracker.com]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| MurmurQuery<br />
| Web<br />
| PHP<br />
| Proprietary + [[Channel Viewer Protocol]]<br />
| MurmurQuery is a PHP class based on GT Murmur Plugin & used for querying Murmur servers.<br />
| [http://github.com/edmundask/MurmurQuery GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| Web<br />
| PHP<br />
| Proprietary<br />
| Full channel viewer controlling and editing in MAP! You can also include this CV via Iframe in your homepage. And you can edit your whole server using the functions of MAP!<br />
| [http://www.mumb1e.de/ Mumb1e.de]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Murmur-manager]]<br />
| Web<br />
| Ruby<br />
| Proprietary<br />
| <br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble reader]]<br />
| Web<br />
| PHP/Javascript<br />
| [[Channel Viewer Protocol]]<br />
| JS Viewer which uses PHP with Ice 3.3 to query a Mumble server. Does not support the latest version of Ice (3.4) but the clean JS front-end can be used with other CVP providers.<br />
| [http://mumble.rko.nu/ Webpage]<br />
[http://code.google.com/p/mumblereader/ GoogleCode]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| Web<br />
| PHP/Javascript<br />
| Proprietary<br />
provides [[Channel Viewer Protocol]]<br />
| JS-Viewer uses own protocoll/calls to MumPI.<br />
MumPI provides JSON-Channel Viewer Protocol-webservice for other viewers.<br />
| [http://github.com/Kissaki/MumPI/wiki @Github]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| MView<br />
| Web<br />
| Javascript<br />
| [[Channel Viewer Protocol]]<br />
| JS-Viewer injecting HTML (no evil iframes etc necessary!).<br />
| [https://github.com/Kissaki/MView MView @Github]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumble Watcher<br />
| Desktop<br />
| QT/KDE<br />
| [[Channel Viewer Protocol]]<br />
| Useful if you want to see who's online in a Desktop app without actually connecting, e.g. because you're on a PC without a proper headset.<br />
| [http://bitbucket.org/Svedrin/mumble-watcher/ BitBucket]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble-Django<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| An ExtJS component that inherits Ext.tree.TreeView to build a channel viewer.<br />
| [http://mumble-django.org/bb/src/tip/pyweb/mumble/media/js/channelviewer.js BitBucket] [http://mumble-django.org/docs/api/channelviewer.html Documentation]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| <br />
| Web<br />
| PHP/JavaScript/EQdkp-Plus/Joomla!/WordPress<br />
| [[Channel Viewer Protocol]]<br />
| A robust channel viewer that has been packaged into several different formats for popular Content Management Systems. You can easily change the icons and colors used.<br />
| [http://commandchannel.com/Downloads/eqdkp-plus/mumbleviewer.zip Module for EQdkp-Plus]<br />
<br />
[http://extensions.joomla.org/extensions/sports-a-games/game-servers/16358 Extension for Joomla!]<br />
<br />
[http://wordpress.org/extend/plugins/mumble-channel-viewer/ Plugin for WordPress]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-php.zip PHP only]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-javascript.zip JavaScript only]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer/wiki JavaScript Documentation]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer Source code]<br />
<br />
[http://github.com/ClusterFCK/Drupal-Mumble-Viewer Module for Drupal 7 (Based on the above)]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| PHP Mumble Viewer<br />
| Web<br />
| PHP<br />
| Ice<br />
| <br />
| [http://phpmumbleviewer.coolcow.org/ phpmumbleviewer.coolcow.org]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Voice Comms Viewer]]<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| A site that creates Channel Viewers for Mumble, Teamspeak & Ventrilo using the Channel Viewer Protocol<br />
| [http://commsviewer.com/ commsviewer.com]<br />
<br />
|}<br />
<br />
= Miscellaneous Scripts =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Evebot<br />
| Bot<br />
| Python<br />
| Mumble client<br />
| Relays comms from one channel to another with a delay (to synchronise comms for time-delayed game spectators, for example)<br />
| [http://frymaster.127001.org/mumble/ Evebot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumo<br />
| Bot<br />
| Python<br />
| ICE<br />
| Highly extensible script that can use external events (such as gamestate changes) to dynamically shuffle users into channels and groups. Support for various user states and the game "Battlefield 2".<br />
| [http://gitorious.org/mumble-scripts/mumo MuMo]<br />
<br />
|}</div>Ilumoshttps://wiki.mumble.info/index.php?title=3rd_Party_Applications&diff=61413rd Party Applications2012-03-22T23:13:59Z<p>Ilumos: Changing MAP title for consistency with other tables</p>
<hr />
<div>'''Please edit this page if you find a feature or step you think should be included; it's a wiki for a reason! Note you must register and wait about 3 days in order to be able to edit.'''<br />
<br />
= Web-Interfaces =<br />
<br />
There are several browser based interfaces which can be used to administrate the Murmur server. If you need something very basic or want to create your own interface you should take a look at Murmur's [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=tree;f=scripts script folder] which contains some basic web-interface examples which use [[Ice]] or [[DBus]].<br />
Additionally the following table contains a collection of more elaborate Web-Interfaces:<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Technology<br />
! License<br />
! Current Version<br />
! Last Release<br />
! [[DBus]]<br />
! [[Ice]]<br />
! 1.1.x<br />
! 1.2.x<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin|MAP]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4.3<br />
| 2011-12-23<br />
| bgcolor=#ddffdd | Yes <br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Serverhosting; Permissionssystem; Webinterface to manage Server User, Plugin User and virtual Servers; request function for Server Users; uses DBUS or Slice or nothing; Channelviewer for own homepage; Logging functions; German, English, Frensh; Template functions and more! DBUS is supported in all Versions <= V2.2.1!<br />
| [http://www.mumb1e.de/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble-Django]]<br />
| [http://www.python.org Python] + [http://www.djangoproject.com Django]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4<br />
| 2010-11-14<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Channel viewer (internal and support for others), admin panel, IPv6, [[Channel Viewer Protocol]], Munin plugin, CLI, supports multiple servers and instances, user registration, textures, gravatar, translated to English, German, French, Italian and Japanese<br />
| [http://mumble-django.org]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/lgpl-3.0.html LGPLv3]<br />
| V2.2.3<br />
| 2010-12-05<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Admin and User functionality; multiserver (start, stop, add, remove, edit virtual servers), registration & online user management, interface admin, admin-group and permission system, serverviewer<br />
| [http://github.com/Kissaki/MumPI/wiki]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[PHP Mumble Admin]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V0.4.0<br />
| 2011-10-04<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Complet administration panel control for murmur designed for multiple virtual server. [http://sourceforge.net/projects/phpmumbleadmin/ Website]<br />
| [http://sourceforge.net/projects/phpmumbleadmin/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumbled Admin]]<br />
| [http://php.net/ PHP]<br />
| --<br />
| V0.2<br />
| 2010-01-22<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| visit: http://mumbled.de/content/238/mumbled-phpice-webinterface<br />
| [http://sourceforge.net/projects/mumbled/]<br />
|}<br />
<br />
<small>Note: We recommend using a preferably [[Ice]] or at least [[DBus]] capable interface.</small><br />
<br />
= Standalone Applications =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur Admin Console]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Add, edit and delete users over SSH<br />
| [http://bograt.com/Murmur/]<br />
|<br />
|-bgcolor="#f8f8ff"<br />
| [[http://yulli.cleanvoice.ru/ YuLLi]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Add, remove and control virtual servers remotely (supports SSH)<br />
| [http://yulli.cleanvoice.ru]<br />
|}<br />
<br />
= Commandline-Interfaces =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mice]]<br />
| multi-platform<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Helper script written in [http://www.python.org Python]<br />
| [http://gitorious.org/mumble-scripts/mumble-scripts/blobs/raw/master/Helpers/mice.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[RegMum]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Bat script<br />
| [http://mumble.sourceforge.net/DBus_scripts#Windows]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mmctl]]<br />
| [http://www.python.org Python]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| 1.1.8 - Easy to use script for managing servers and adding users locally<br />
| [http://github.com/mbr/mmctl]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur-manager]]<br />
| Ruby<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| 1.2.1<br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|}<br />
<br />
= Channel Viewers =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble.com<br />
| Web<br />
| Javascript<br />
| [[Channel Viewer Protocol]]<br />
| Enter the URL to the JSON encoded Channel Viewer Protocol provided by your Mumble host to create a unique channel viewer. Requires a CVP provider to query the Mumble server and generate the JSON.<br />
| [http://www.mumble.com/mumble-server-status.php Mumble.com Status Tool]<br />
<br />
<br />
|-bgcolor="#f8f8f8"<br />
| FlaskCVP<br />
| Web<br />
| Python, [http://flask.pocoo.org/ Flask]<br />
| [[Channel Viewer Protocol]]<br />
| A minimalistic CVP provider written using Mumble-Django's connection library and the Flask framework.<br />
| [https://bitbucket.org/Svedrin/mumble-django/src/tip/pyweb/flaskcvp.py flaskcvp.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| GTMurmur<br />
| Web<br />
| Binary<br />
| Proprietary + [[Channel Viewer Protocol]]<br />
| Server-side binary for Murmur which adds support for GameTracker.com queries. Also provides CVP via socket which can be used by other channel viewers. <br />
| [http://www.gametracker.com/downloads/gtmurmurplugin.php GameTracker.com]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| MurmurQuery<br />
| Web<br />
| PHP<br />
| Proprietary + [[Channel Viewer Protocol]]<br />
| MurmurQuery is a PHP class based on GT Murmur Plugin & used for querying Murmur servers.<br />
| [http://github.com/edmundask/MurmurQuery GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| Web<br />
| PHP<br />
| Proprietary<br />
| Full channel viewer controlling and editing in MAP! You can also include this CV via Iframe in your homepage. And you can edit your whole server using the functions of MAP!<br />
| [http://www.mumb1e.de/ Mumb1e.de]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Murmur-manager]]<br />
| Web<br />
| Ruby<br />
| Proprietary<br />
| <br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble reader]]<br />
| Web<br />
| PHP/Javascript<br />
| [[Channel Viewer Protocol]]<br />
| JS Viewer which uses PHP with Ice 3.3 to query a Mumble server. Does not support the latest version of Ice (3.4) but the clean JS front-end can be used with other CVP providers.<br />
| [http://mumble.rko.nu/ Webpage]<br />
[http://code.google.com/p/mumblereader/ GoogleCode]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| Web<br />
| PHP/Javascript<br />
| Proprietary<br />
provides [[Channel Viewer Protocol]]<br />
| JS-Viewer uses own protocoll/calls to MumPI.<br />
MumPI provides JSON-Channel Viewer Protocol-webservice for other viewers.<br />
| [http://github.com/Kissaki/MumPI/wiki @Github]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| MView<br />
| Web<br />
| Javascript<br />
| [[Channel Viewer Protocol]]<br />
| JS-Viewer injecting HTML (no evil iframes etc necessary!).<br />
| [https://github.com/Kissaki/MView MView @Github]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumble Watcher<br />
| Desktop<br />
| QT/KDE<br />
| [[Channel Viewer Protocol]]<br />
| Useful if you want to see who's online in a Desktop app without actually connecting, e.g. because you're on a PC without a proper headset.<br />
| [http://bitbucket.org/Svedrin/mumble-watcher/ BitBucket]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble-Django<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| An ExtJS component that inherits Ext.tree.TreeView to build a channel viewer.<br />
| [http://mumble-django.org/bb/src/tip/pyweb/mumble/media/js/channelviewer.js BitBucket] [http://mumble-django.org/docs/api/channelviewer.html Documentation]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| <br />
| Web<br />
| PHP/JavaScript/EQdkp-Plus/Joomla!/WordPress<br />
| [[Channel Viewer Protocol]]<br />
| A robust channel viewer that has been packaged into several different formats for popular Content Management Systems. You can easily change the icons and colors used.<br />
| [http://commandchannel.com/Downloads/eqdkp-plus/mumbleviewer.zip Module for EQdkp-Plus]<br />
<br />
[http://extensions.joomla.org/extensions/sports-a-games/game-servers/16358 Extension for Joomla!]<br />
<br />
[http://wordpress.org/extend/plugins/mumble-channel-viewer/ Plugin for WordPress]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-php.zip PHP only]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-javascript.zip JavaScript only]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer/wiki JavaScript Documentation]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer Source code]<br />
<br />
[http://github.com/ClusterFCK/Drupal-Mumble-Viewer Module for Drupal 7 (Based on the above)]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| PHP Mumble Viewer<br />
| Web<br />
| PHP<br />
| Ice<br />
| <br />
| [http://phpmumbleviewer.coolcow.org/ phpmumbleviewer.coolcow.org]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Voice Comms Viewer]]<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| A site that creates Channel Viewers for Mumble, Teamspeak & Ventrilo using the Channel Viewer Protocol<br />
| [http://commsviewer.com/ commsviewer.com]<br />
<br />
|}<br />
<br />
= Miscellaneous Scripts =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Evebot<br />
| Bot<br />
| Python<br />
| Mumble client<br />
| Relays comms from one channel to another with a delay (to synchronise comms for time-delayed game spectators, for example)<br />
| [http://frymaster.127001.org/mumble/ Evebot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumo<br />
| Bot<br />
| Python<br />
| ICE<br />
| Highly extensible script that can use external events (such as gamestate changes) to dynamically shuffle users into channels and groups. Support for various user states and the game "Battlefield 2".<br />
| [http://gitorious.org/mumble-scripts/mumo MuMo]<br />
<br />
|}</div>Ilumoshttps://wiki.mumble.info/index.php?title=3rd_Party_Applications&diff=61403rd Party Applications2012-03-22T23:01:10Z<p>Ilumos: Tidied up text</p>
<hr />
<div>'''Please edit this page if you find a feature or step you think should be included; it's a wiki for a reason! Note you must register and wait about 3 days in order to be able to edit.'''<br />
<br />
= Web-Interfaces =<br />
<br />
There are several browser based interfaces which can be used to administrate the Murmur server. If you need something very basic or want to create your own interface you should take a look at Murmur's [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=tree;f=scripts script folder] which contains some basic web-interface examples which use [[Ice]] or [[DBus]].<br />
Additionally the following table contains a collection of more elaborate Web-Interfaces:<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Technology<br />
! License<br />
! Current Version<br />
! Last Release<br />
! [[DBus]]<br />
! [[Ice]]<br />
! 1.1.x<br />
! 1.2.x<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin|MAP]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4.3<br />
| 2011-12-23<br />
| bgcolor=#ddffdd | Yes <br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Serverhosting; Permissionssystem; Webinterface to manage Server User, Plugin User and virtual Servers; request function for Server Users; uses DBUS or Slice or nothing; Channelviewer for own homepage; Logging functions; German, English, Frensh; Template functions and more! DBUS is supported in all Versions <= V2.2.1!<br />
| [http://www.mumb1e.de/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble-Django]]<br />
| [http://www.python.org Python] + [http://www.djangoproject.com Django]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4<br />
| 2010-11-14<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Channel viewer (internal and support for others), admin panel, IPv6, [[Channel Viewer Protocol]], Munin plugin, CLI, supports multiple servers and instances, user registration, textures, gravatar, translated to English, German, French, Italian and Japanese<br />
| [http://mumble-django.org]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/lgpl-3.0.html LGPLv3]<br />
| V2.2.3<br />
| 2010-12-05<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Admin and User functionality; multiserver (start, stop, add, remove, edit virtual servers), registration & online user management, interface admin, admin-group and permission system, serverviewer<br />
| [http://github.com/Kissaki/MumPI/wiki]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[PHP Mumble Admin]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V0.4.0<br />
| 2011-10-04<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Complet administration panel control for murmur designed for multiple virtual server. [http://sourceforge.net/projects/phpmumbleadmin/ Website]<br />
| [http://sourceforge.net/projects/phpmumbleadmin/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumbled Admin]]<br />
| [http://php.net/ PHP]<br />
| --<br />
| V0.2<br />
| 2010-01-22<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| visit: http://mumbled.de/content/238/mumbled-phpice-webinterface<br />
| [http://sourceforge.net/projects/mumbled/]<br />
|}<br />
<br />
<small>Note: We recommend using a preferably [[Ice]] or at least [[DBus]] capable interface.</small><br />
<br />
= Standalone Applications =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur Admin Console]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Add, edit and delete users over SSH<br />
| [http://bograt.com/Murmur/]<br />
|<br />
|-bgcolor="#f8f8ff"<br />
| [[http://yulli.cleanvoice.ru/ YuLLi]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Add, remove and control virtual servers remotely (supports SSH)<br />
| [http://yulli.cleanvoice.ru]<br />
|}<br />
<br />
= Commandline-Interfaces =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mice]]<br />
| multi-platform<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Helper script written in [http://www.python.org Python]<br />
| [http://gitorious.org/mumble-scripts/mumble-scripts/blobs/raw/master/Helpers/mice.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[RegMum]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Bat script<br />
| [http://mumble.sourceforge.net/DBus_scripts#Windows]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mmctl]]<br />
| [http://www.python.org Python]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| 1.1.8 - Easy to use script for managing servers and adding users locally<br />
| [http://github.com/mbr/mmctl]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur-manager]]<br />
| Ruby<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| 1.2.1<br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|}<br />
<br />
= Channel Viewers =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble.com<br />
| Web<br />
| Javascript<br />
| [[Channel Viewer Protocol]]<br />
| Enter the URL to the JSON encoded Channel Viewer Protocol provided by your Mumble host to create a unique channel viewer.<br />
| [http://www.mumble.com/mumble-server-status.php Mumble.com Status Tool]<br />
<br />
<br />
|-bgcolor="#f8f8f8"<br />
| FlaskCVP<br />
| Web<br />
| Python, [http://flask.pocoo.org/ Flask]<br />
| [[Channel Viewer Protocol]]<br />
| A minimalistic CVP provider written using Mumble-Django's connection library and the Flask framework.<br />
| [https://bitbucket.org/Svedrin/mumble-django/src/tip/pyweb/flaskcvp.py flaskcvp.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| GTMurmur<br />
| Web<br />
| Binary<br />
| Proprietary + [[Channel Viewer Protocol]]<br />
| Server-side binary for Murmur which adds support for GameTracker.com queries.<br />
| [http://www.gametracker.com/downloads/gtmurmurplugin.php GameTracker.com]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| MurmurQuery<br />
| Web<br />
| PHP<br />
| Proprietary + [[Channel Viewer Protocol]]<br />
| MurmurQuery is a PHP class based on GT Murmur Plugin & used for querying Murmur servers.<br />
| [http://github.com/edmundask/MurmurQuery GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| Web<br />
| PHP<br />
| Proprietary<br />
| Full Channelviewer controlling and editing in MAP! You can also include this CV by iframe into your homepage. And you can edit your whole server by all the functions of MAP!<br />
| [http://www.mumb1e.de/ Mumb1e.de]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Murmur-manager]]<br />
| Web<br />
| Ruby<br />
| Proprietary<br />
| <br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble reader]]<br />
| Web<br />
| PHP/Javascript<br />
| [[Channel Viewer Protocol]]<br />
| JS Viewer which uses PHP with Ice 3.3 to query a Mumble server. Does not support the latest version of Ice (3.4) but the clean JS front-end can be used with other CVP providers<br />
| [http://mumble.rko.nu/ Webpage]<br />
[http://code.google.com/p/mumblereader/ GoogleCode]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| Web<br />
| PHP/Javascript<br />
| Proprietary<br />
provides [[Channel Viewer Protocol]]<br />
| JS-Viewer uses own protocoll/calls to MumPI.<br />
MumPI provides JSON-Channel Viewer Protocol-webservice for other viewers.<br />
| [http://github.com/Kissaki/MumPI/wiki @Github]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| MView<br />
| Web<br />
| Javascript<br />
| [[Channel Viewer Protocol]]<br />
| JS-Viewer injecting HTML (no evil iframes etc necessary!).<br />
| [https://github.com/Kissaki/MView MView @Github]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumble Watcher<br />
| Desktop<br />
| QT/KDE<br />
| [[Channel Viewer Protocol]]<br />
| Useful if you want to see who's online in a Desktop app without actually connecting, e.g. because you're on a PC without a proper headset.<br />
| [http://bitbucket.org/Svedrin/mumble-watcher/ BitBucket]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble-Django<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| An ExtJS component that inherits Ext.tree.TreeView to build a channel viewer.<br />
| [http://mumble-django.org/bb/src/tip/pyweb/mumble/media/js/channelviewer.js BitBucket] [http://mumble-django.org/docs/api/channelviewer.html Documentation]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| <br />
| Web<br />
| PHP/JavaScript/EQdkp-Plus/Joomla!/WordPress<br />
| [[Channel Viewer Protocol]]<br />
| A robust channel viewer that has been packaged into several different formats for popular Content Management Systems. You can easily change the icons and colors used.<br />
| [http://commandchannel.com/Downloads/eqdkp-plus/mumbleviewer.zip Module for EQdkp-Plus]<br />
<br />
[http://extensions.joomla.org/extensions/sports-a-games/game-servers/16358 Extension for Joomla!]<br />
<br />
[http://wordpress.org/extend/plugins/mumble-channel-viewer/ Plugin for WordPress]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-php.zip PHP only]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-javascript.zip JavaScript only]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer/wiki JavaScript Documentation]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer Source code]<br />
<br />
[http://github.com/ClusterFCK/Drupal-Mumble-Viewer Module for Drupal 7 (Based on the above)]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| PHP Mumble Viewer<br />
| Web<br />
| PHP<br />
| Ice<br />
| <br />
| [http://phpmumbleviewer.coolcow.org/ phpmumbleviewer.coolcow.org]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Voice Comms Viewer]]<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| A site that creates Channel Viewers for Mumble, Teamspeak & Ventrilo using the Channel Viewer Protocol<br />
| [http://commsviewer.com/ commsviewer.com]<br />
<br />
|}<br />
<br />
= Miscellaneous Scripts =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Evebot<br />
| Bot<br />
| Python<br />
| Mumble client<br />
| Relays comms from one channel to another with a delay (to synchronise comms for time-delayed game spectators, for example)<br />
| [http://frymaster.127001.org/mumble/ Evebot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumo<br />
| Bot<br />
| Python<br />
| ICE<br />
| Highly extensible script that can use external events (such as gamestate changes) to dynamically shuffle users into channels and groups. Support for various user states and the game "Battlefield 2".<br />
| [http://gitorious.org/mumble-scripts/mumo MuMo]<br />
<br />
|}</div>Ilumoshttps://wiki.mumble.info/index.php?title=Mumble_PHP_Interface&diff=6139Mumble PHP Interface2012-03-22T22:58:35Z<p>Ilumos: </p>
<hr />
<div>MumPI is an open source PHP Web-Interface under LGPL, using Ice to talk to mumble. Thus you will need a webserver with PHP and the Ice extension set up.<br />
<br />
'''Tested and compatible with''' Mumble 1.2.3, PHP < v5.3 & PHP-Ice < v3.4 '''OR''' PHP >= v5.3 & PHP-Ice >= v3.4.<br />
<br />
The '''Mumble PHP Interface''' – '''MumPI''' for short – features<br />
*Administration<br />
**Create, start, stop and delete virtual servers<br />
**edit configurations (of virtual servers)<br />
**name virtual servers for the interface<br />
**create and delete admin accounts<br />
**view and kick online Users<br />
**view, edit and remove registrations<br />
**view channel tree<br />
**Admin Accounts<br />
***admin accounts<br />
***admin groups<br />
****with specific permissions<br />
****associated to specific servers<br />
*Server-Viewer<br />
**PHP-includeable file and class<br />
**embeddable html/js via <object> or <embed><br />
**JavaScript/AJAX<br />
**can provide Channel Viewer Protocol<br />
*User Registration<br />
**with or without captcha<br />
**with or without email authentification<br />
**on specific virtual servers<br />
*User Profile<br />
**Log in with your mumble account<br />
**edit your details (email, password, username)<br />
**upload a user texture (visible in the overlay)<br />
**Retrieve lost data (login, new password) via E-Mail<br />
<br />
<br />
[http://github.com/Kissaki/MumPI github project page, wiki, issue-tracker, downloads]<br />
<br />
[https://sourceforge.net/projects/mumpi/files/ Downloads] @SF<br />
<br />
[https://github.com/Kissaki/MumPI/wiki/Installation Installation Guide], [https://github.com/Kissaki/MumPI/wiki/FAQ FAQ]<br />
<br />
Hosted [http://github.com/Kissaki/MumPI on GitHub] [https://sourceforge.net/projects/mumpi/ and sourceforge].<br />
<br />
<br />
[[Category:3rd Party]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=Mumble_PHP_Interface&diff=6138Mumble PHP Interface2012-03-22T22:57:39Z<p>Ilumos: Made software version combinations more obvious</p>
<hr />
<div>MumPI is an open source PHP Web-Interface under LGPL, using Ice to talk to mumble. Thus you will need a webserver with PHP and the Ice extension set up.<br />
<br />
'''Tested and working with''' Mumble 1.2.3, PHP < 5.3 & PHP-Ice < 3.4 or PHP >= 5.3 & PHP-Ice >= 3.4.<br />
<br />
The '''Mumble PHP Interface''' – '''MumPI''' for short – features<br />
*Administration<br />
**Create, start, stop and delete virtual servers<br />
**edit configurations (of virtual servers)<br />
**name virtual servers for the interface<br />
**create and delete admin accounts<br />
**view and kick online Users<br />
**view, edit and remove registrations<br />
**view channel tree<br />
**Admin Accounts<br />
***admin accounts<br />
***admin groups<br />
****with specific permissions<br />
****associated to specific servers<br />
*Server-Viewer<br />
**PHP-includeable file and class<br />
**embeddable html/js via <object> or <embed><br />
**JavaScript/AJAX<br />
**can provide Channel Viewer Protocol<br />
*User Registration<br />
**with or without captcha<br />
**with or without email authentification<br />
**on specific virtual servers<br />
*User Profile<br />
**Log in with your mumble account<br />
**edit your details (email, password, username)<br />
**upload a user texture (visible in the overlay)<br />
**Retrieve lost data (login, new password) via E-Mail<br />
<br />
<br />
[http://github.com/Kissaki/MumPI github project page, wiki, issue-tracker, downloads]<br />
<br />
[https://sourceforge.net/projects/mumpi/files/ Downloads] @SF<br />
<br />
[https://github.com/Kissaki/MumPI/wiki/Installation Installation Guide], [https://github.com/Kissaki/MumPI/wiki/FAQ FAQ]<br />
<br />
Hosted [http://github.com/Kissaki/MumPI on GitHub] [https://sourceforge.net/projects/mumpi/ and sourceforge].<br />
<br />
<br />
[[Category:3rd Party]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=Mumble_reader&diff=6137Mumble reader2012-03-22T22:55:56Z<p>Ilumos: Minor grammatical changes</p>
<hr />
<div>Mumble Reader is a JQuery/Javascript tool which can read [[Channel Viewer Protocol]]. It can also generate CVP using [http://www.zeroc.com/icephp.html ZeroC IcePHP] version 3.3. Currently Mumble Reader's back-end querying tool will not work with the latest version of ZeroC IcePHP (version 3.4), although you can use another CVP provider such as [[Mumble PHP Interface]] which does support IcePHP version 3.4. <br />
<br />
Mumble Reader is hosted on [http://code.google.com/p/mumblereader Google Code]<br />
<br />
[[Category:3rd Party]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=Mumble_reader&diff=6136Mumble reader2012-03-22T22:55:01Z<p>Ilumos: Adding info about support and compatibility</p>
<hr />
<div>Mumble Reader is a JQuery/Javascript tool which can read [[Channel_Viewer_Protocol]]. It can also generate CVP using [http://www.zeroc.com/icephp.html ZeroC IcePHP] version 3.3. Currently Mumble Reader's back-end querying tool will not work with the latest version of ZeroC IcePHP (version 3.4), although you can use another CVP provider such as [[Mumble PHP Interface]] which does support the latest version of IcePHP. <br />
<br />
Mumble Reader is hosted on [http://code.google.com/p/mumblereader Google Code]<br />
<br />
[[Category:3rd Party]]</div>Ilumoshttps://wiki.mumble.info/index.php?title=3rd_Party_Applications&diff=61353rd Party Applications2012-03-22T22:35:51Z<p>Ilumos: Correcting Mumble reader internal link</p>
<hr />
<div>'''Please edit this page if you find a feature or step you think should be included; it's a wiki for a reason! Note you must register and wait about 3 days in order to be able to edit.'''<br />
<br />
= Web-Interfaces =<br />
<br />
There are several browser based interfaces which can be used to administrate the Murmur server. If you need something very basic or want to create your own interface you should take a look at Murmur's [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=tree;f=scripts script folder] which contains some basic web-interface examples which use [[Ice]] or [[DBus]].<br />
Additionally the following table contains a collection of more elaborate Web-Interfaces:<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Technology<br />
! License<br />
! Current Version<br />
! Last Release<br />
! [[DBus]]<br />
! [[Ice]]<br />
! 1.1.x<br />
! 1.2.x<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin|MAP]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4.3<br />
| 2011-12-23<br />
| bgcolor=#ddffdd | Yes <br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Serverhosting; Permissionssystem; Webinterface to manage Server User, Plugin User and virtual Servers; request function for Server Users; uses DBUS or Slice or nothing; Channelviewer for own homepage; Logging functions; German, English, Frensh; Template functions and more! DBUS is supported in all Versions <= V2.2.1!<br />
| [http://www.mumb1e.de/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble-Django]]<br />
| [http://www.python.org Python] + [http://www.djangoproject.com Django]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4<br />
| 2010-11-14<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Channel viewer (internal and support for others), admin panel, IPv6, [[Channel Viewer Protocol]], Munin plugin, CLI, supports multiple servers and instances, user registration, textures, gravatar, translated to English, German, French, Italian and Japanese<br />
| [http://mumble-django.org]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/lgpl-3.0.html LGPLv3]<br />
| V2.2.3<br />
| 2010-12-05<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Admin and User functionality; multiserver (start, stop, add, remove, edit virtual servers), registration & online user management, interface admin, admin-group and permission system, serverviewer<br />
| [http://github.com/Kissaki/MumPI/wiki]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[PHP Mumble Admin]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V0.4.0<br />
| 2011-10-04<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Complet administration panel control for murmur designed for multiple virtual server. [http://sourceforge.net/projects/phpmumbleadmin/ Website]<br />
| [http://sourceforge.net/projects/phpmumbleadmin/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumbled Admin]]<br />
| [http://php.net/ PHP]<br />
| --<br />
| V0.2<br />
| 2010-01-22<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| visit: http://mumbled.de/content/238/mumbled-phpice-webinterface<br />
| [http://sourceforge.net/projects/mumbled/]<br />
|}<br />
<br />
<small>Note: We recommend using a preferably [[Ice]] or at least [[DBus]] capable interface.</small><br />
<br />
= Standalone Applications =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur Admin Console]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Addaa, edit and delete players over SSH<br />
| [http://bograt.com/Murmur/]<br />
|<br />
|-bgcolor="#f8f8ff"<br />
| [[http://yulli.cleanvoice.ru/ YuLLi]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Add/Remove/Control virtual servers remotely (supports SSH)<br />
| [http://yulli.cleanvoice.ru]<br />
|}<br />
<br />
= Commandline-Interfaces =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mice]]<br />
| multi-platform<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Helper script written in [http://www.python.org Python]<br />
| [http://gitorious.org/mumble-scripts/mumble-scripts/blobs/raw/master/Helpers/mice.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[RegMum]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Bat script<br />
| [http://mumble.sourceforge.net/DBus_scripts#Windows]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mmctl]]<br />
| [http://www.python.org Python]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| 1.1.8 - Easy to use script for managing servers and adding users locally<br />
| [http://github.com/mbr/mmctl]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur-manager]]<br />
| Ruby<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| 1.2.1<br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|}<br />
<br />
= Channel Viewers =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble.com<br />
| Web<br />
| Javascript<br />
| [[Channel Viewer Protocol]]<br />
| Enter the URL to the JSON encoded Channel Viewer Protocol provided by your Mumble host to create a unique channel viewer.<br />
| [http://www.mumble.com/mumble-server-status.php Mumble.com Status Tool]<br />
<br />
<br />
|-bgcolor="#f8f8f8"<br />
| FlaskCVP<br />
| Web<br />
| Python, [http://flask.pocoo.org/ Flask]<br />
| [[Channel Viewer Protocol]]<br />
| A minimalistic CVP provider written using Mumble-Django's connection library and the Flask framework.<br />
| [https://bitbucket.org/Svedrin/mumble-django/src/tip/pyweb/flaskcvp.py flaskcvp.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| GTMurmur<br />
| Web<br />
| Binary<br />
| Proprietary + [[Channel Viewer Protocol]]<br />
| Server-side binary for Murmur which adds support for GameTracker.com queries.<br />
| [http://www.gametracker.com/downloads/gtmurmurplugin.php GameTracker.com]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| MurmurQuery<br />
| Web<br />
| PHP<br />
| Proprietary + [[Channel Viewer Protocol]]<br />
| MurmurQuery is a PHP class based on GT Murmur Plugin & used for querying Murmur servers.<br />
| [http://github.com/edmundask/MurmurQuery GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| Web<br />
| PHP<br />
| Proprietary<br />
| Full Channelviewer controlling and editing in MAP! You can also include this CV by iframe into your homepage. And you can edit your whole server by all the functions of MAP!<br />
| [http://www.mumb1e.de/ Mumb1e.de]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Murmur-manager]]<br />
| Web<br />
| Ruby<br />
| Proprietary<br />
| <br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble reader]]<br />
| Web<br />
| PHP/Javascript<br />
| [[Channel Viewer Protocol]]<br />
| JS Viewer which uses PHP with Ice 3.3 to query a Mumble server. Does not support the latest version of Ice (3.4) but the clean JS front-end can be used with other CVP providers<br />
| [http://mumble.rko.nu/ Webpage]<br />
[http://code.google.com/p/mumblereader/ GoogleCode]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| Web<br />
| PHP/Javascript<br />
| Proprietary<br />
provides [[Channel Viewer Protocol]]<br />
| JS-Viewer uses own protocoll/calls to MumPI.<br />
MumPI provides JSON-Channel Viewer Protocol-webservice for other viewers.<br />
| [http://github.com/Kissaki/MumPI/wiki @Github]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| MView<br />
| Web<br />
| Javascript<br />
| [[Channel Viewer Protocol]]<br />
| JS-Viewer injecting HTML (no evil iframes etc necessary!).<br />
| [https://github.com/Kissaki/MView MView @Github]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumble Watcher<br />
| Desktop<br />
| QT/KDE<br />
| [[Channel Viewer Protocol]]<br />
| Useful if you want to see who's online in a Desktop app without actually connecting, e.g. because you're on a PC without a proper headset.<br />
| [http://bitbucket.org/Svedrin/mumble-watcher/ BitBucket]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble-Django<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| An ExtJS component that inherits Ext.tree.TreeView to build a channel viewer.<br />
| [http://mumble-django.org/bb/src/tip/pyweb/mumble/media/js/channelviewer.js BitBucket] [http://mumble-django.org/docs/api/channelviewer.html Documentation]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| <br />
| Web<br />
| PHP/JavaScript/EQdkp-Plus/Joomla!/WordPress<br />
| [[Channel Viewer Protocol]]<br />
| A robust channel viewer that has been packaged into several different formats for popular Content Management Systems. You can easily change the icons and colors used.<br />
| [http://commandchannel.com/Downloads/eqdkp-plus/mumbleviewer.zip Module for EQdkp-Plus]<br />
<br />
[http://extensions.joomla.org/extensions/sports-a-games/game-servers/16358 Extension for Joomla!]<br />
<br />
[http://wordpress.org/extend/plugins/mumble-channel-viewer/ Plugin for WordPress]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-php.zip PHP only]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-javascript.zip JavaScript only]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer/wiki JavaScript Documentation]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer Source code]<br />
<br />
[http://github.com/ClusterFCK/Drupal-Mumble-Viewer Module for Drupal 7 (Based on the above)]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| PHP Mumble Viewer<br />
| Web<br />
| PHP<br />
| Ice<br />
| <br />
| [http://phpmumbleviewer.coolcow.org/ phpmumbleviewer.coolcow.org]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Voice Comms Viewer]]<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| A site that creates Channel Viewers for Mumble, Teamspeak & Ventrilo using the Channel Viewer Protocol<br />
| [http://commsviewer.com/ commsviewer.com]<br />
<br />
|}<br />
<br />
= Miscellaneous Scripts =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Evebot<br />
| Bot<br />
| Python<br />
| Mumble client<br />
| Relays comms from one channel to another with a delay (to synchronise comms for time-delayed game spectators, for example)<br />
| [http://frymaster.127001.org/mumble/ Evebot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumo<br />
| Bot<br />
| Python<br />
| ICE<br />
| Highly extensible script that can use external events (such as gamestate changes) to dynamically shuffle users into channels and groups. Support for various user states and the game "Battlefield 2".<br />
| [http://gitorious.org/mumble-scripts/mumo MuMo]<br />
<br />
|}</div>Ilumoshttps://wiki.mumble.info/index.php?title=3rd_Party_Applications&diff=61343rd Party Applications2012-03-22T22:34:47Z<p>Ilumos: Giving detail to Mumble Reader's compatibility and support.</p>
<hr />
<div>'''Please edit this page if you find a feature or step you think should be included; it's a wiki for a reason! Note you must register and wait about 3 days in order to be able to edit.'''<br />
<br />
= Web-Interfaces =<br />
<br />
There are several browser based interfaces which can be used to administrate the Murmur server. If you need something very basic or want to create your own interface you should take a look at Murmur's [http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=tree;f=scripts script folder] which contains some basic web-interface examples which use [[Ice]] or [[DBus]].<br />
Additionally the following table contains a collection of more elaborate Web-Interfaces:<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Technology<br />
! License<br />
! Current Version<br />
! Last Release<br />
! [[DBus]]<br />
! [[Ice]]<br />
! 1.1.x<br />
! 1.2.x<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin|MAP]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4.3<br />
| 2011-12-23<br />
| bgcolor=#ddffdd | Yes <br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Serverhosting; Permissionssystem; Webinterface to manage Server User, Plugin User and virtual Servers; request function for Server Users; uses DBUS or Slice or nothing; Channelviewer for own homepage; Logging functions; German, English, Frensh; Template functions and more! DBUS is supported in all Versions <= V2.2.1!<br />
| [http://www.mumb1e.de/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble-Django]]<br />
| [http://www.python.org Python] + [http://www.djangoproject.com Django]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V2.4<br />
| 2010-11-14<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Channel viewer (internal and support for others), admin panel, IPv6, [[Channel Viewer Protocol]], Munin plugin, CLI, supports multiple servers and instances, user registration, textures, gravatar, translated to English, German, French, Italian and Japanese<br />
| [http://mumble-django.org]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/lgpl-3.0.html LGPLv3]<br />
| V2.2.3<br />
| 2010-12-05<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| Admin and User functionality; multiserver (start, stop, add, remove, edit virtual servers), registration & online user management, interface admin, admin-group and permission system, serverviewer<br />
| [http://github.com/Kissaki/MumPI/wiki]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[PHP Mumble Admin]]<br />
| [http://php.net/ PHP]<br />
| [http://www.gnu.org/licenses/gpl.html GPLv3]<br />
| V0.4.0<br />
| 2011-10-04<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Complet administration panel control for murmur designed for multiple virtual server. [http://sourceforge.net/projects/phpmumbleadmin/ Website]<br />
| [http://sourceforge.net/projects/phpmumbleadmin/]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumbled Admin]]<br />
| [http://php.net/ PHP]<br />
| --<br />
| V0.2<br />
| 2010-01-22<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| visit: http://mumbled.de/content/238/mumbled-phpice-webinterface<br />
| [http://sourceforge.net/projects/mumbled/]<br />
|}<br />
<br />
<small>Note: We recommend using a preferably [[Ice]] or at least [[DBus]] capable interface.</small><br />
<br />
= Standalone Applications =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur Admin Console]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Addaa, edit and delete players over SSH<br />
| [http://bograt.com/Murmur/]<br />
|<br />
|-bgcolor="#f8f8ff"<br />
| [[http://yulli.cleanvoice.ru/ YuLLi]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Add/Remove/Control virtual servers remotely (supports SSH)<br />
| [http://yulli.cleanvoice.ru]<br />
|}<br />
<br />
= Commandline-Interfaces =<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! OS<br />
! [[DBus]]<br />
! [[Ice]]<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mice]]<br />
| multi-platform<br />
| bgcolor=#ffdddd | No<br />
| bgcolor=#ddffdd | Yes<br />
| Helper script written in [http://www.python.org Python]<br />
| [http://gitorious.org/mumble-scripts/mumble-scripts/blobs/raw/master/Helpers/mice.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[RegMum]]<br />
| [http://de.wikipedia.org/wiki/Microsoft_Windows Windows]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| Bat script<br />
| [http://mumble.sourceforge.net/DBus_scripts#Windows]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[mmctl]]<br />
| [http://www.python.org Python]<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ffdddd | No<br />
| 1.1.8 - Easy to use script for managing servers and adding users locally<br />
| [http://github.com/mbr/mmctl]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Murmur-manager]]<br />
| Ruby<br />
| bgcolor=#ddffdd | Yes<br />
| bgcolor=#ddffdd | Yes<br />
| 1.2.1<br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|}<br />
<br />
= Channel Viewers =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble.com<br />
| Web<br />
| Javascript<br />
| [[Channel Viewer Protocol]]<br />
| Enter the URL to the JSON encoded Channel Viewer Protocol provided by your Mumble host to create a unique channel viewer.<br />
| [http://www.mumble.com/mumble-server-status.php Mumble.com Status Tool]<br />
<br />
<br />
|-bgcolor="#f8f8f8"<br />
| FlaskCVP<br />
| Web<br />
| Python, [http://flask.pocoo.org/ Flask]<br />
| [[Channel Viewer Protocol]]<br />
| A minimalistic CVP provider written using Mumble-Django's connection library and the Flask framework.<br />
| [https://bitbucket.org/Svedrin/mumble-django/src/tip/pyweb/flaskcvp.py flaskcvp.py]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| GTMurmur<br />
| Web<br />
| Binary<br />
| Proprietary + [[Channel Viewer Protocol]]<br />
| Server-side binary for Murmur which adds support for GameTracker.com queries.<br />
| [http://www.gametracker.com/downloads/gtmurmurplugin.php GameTracker.com]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| MurmurQuery<br />
| Web<br />
| PHP<br />
| Proprietary + [[Channel Viewer Protocol]]<br />
| MurmurQuery is a PHP class based on GT Murmur Plugin & used for querying Murmur servers.<br />
| [http://github.com/edmundask/MurmurQuery GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[MAP - Mumb1e Admin Plugin]]<br />
| Web<br />
| PHP<br />
| Proprietary<br />
| Full Channelviewer controlling and editing in MAP! You can also include this CV by iframe into your homepage. And you can edit your whole server by all the functions of MAP!<br />
| [http://www.mumb1e.de/ Mumb1e.de]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Murmur-manager]]<br />
| Web<br />
| Ruby<br />
| Proprietary<br />
| <br />
| [http://github.com/cheald/Murmur-manager/ GitHub]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| [[Mumble Reader]]<br />
| Web<br />
| PHP/Javascript<br />
| [[Channel Viewer Protocol]]<br />
| JS Viewer which uses PHP with Ice 3.3 to query a Mumble server. Does not support the latest version of Ice (3.4) but the clean JS front-end can be used with other CVP providers<br />
| [http://mumble.rko.nu/ Webpage]<br />
[http://code.google.com/p/mumblereader/ GoogleCode]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Mumble PHP Interface|MumPI]]<br />
| Web<br />
| PHP/Javascript<br />
| Proprietary<br />
provides [[Channel Viewer Protocol]]<br />
| JS-Viewer uses own protocoll/calls to MumPI.<br />
MumPI provides JSON-Channel Viewer Protocol-webservice for other viewers.<br />
| [http://github.com/Kissaki/MumPI/wiki @Github]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| MView<br />
| Web<br />
| Javascript<br />
| [[Channel Viewer Protocol]]<br />
| JS-Viewer injecting HTML (no evil iframes etc necessary!).<br />
| [https://github.com/Kissaki/MView MView @Github]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumble Watcher<br />
| Desktop<br />
| QT/KDE<br />
| [[Channel Viewer Protocol]]<br />
| Useful if you want to see who's online in a Desktop app without actually connecting, e.g. because you're on a PC without a proper headset.<br />
| [http://bitbucket.org/Svedrin/mumble-watcher/ BitBucket]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| Mumble-Django<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| An ExtJS component that inherits Ext.tree.TreeView to build a channel viewer.<br />
| [http://mumble-django.org/bb/src/tip/pyweb/mumble/media/js/channelviewer.js BitBucket] [http://mumble-django.org/docs/api/channelviewer.html Documentation]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| <br />
| Web<br />
| PHP/JavaScript/EQdkp-Plus/Joomla!/WordPress<br />
| [[Channel Viewer Protocol]]<br />
| A robust channel viewer that has been packaged into several different formats for popular Content Management Systems. You can easily change the icons and colors used.<br />
| [http://commandchannel.com/Downloads/eqdkp-plus/mumbleviewer.zip Module for EQdkp-Plus]<br />
<br />
[http://extensions.joomla.org/extensions/sports-a-games/game-servers/16358 Extension for Joomla!]<br />
<br />
[http://wordpress.org/extend/plugins/mumble-channel-viewer/ Plugin for WordPress]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-php.zip PHP only]<br />
<br />
[http://commandchannel.com/Downloads/mumble-channel-viewer-javascript.zip JavaScript only]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer/wiki JavaScript Documentation]<br />
<br />
[http://github.com/CommandChannel/Mumble-Channel-Viewer Source code]<br />
<br />
[http://github.com/ClusterFCK/Drupal-Mumble-Viewer Module for Drupal 7 (Based on the above)]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| PHP Mumble Viewer<br />
| Web<br />
| PHP<br />
| Ice<br />
| <br />
| [http://phpmumbleviewer.coolcow.org/ phpmumbleviewer.coolcow.org]<br />
<br />
|-bgcolor="#f8f8f8"<br />
| [[Voice Comms Viewer]]<br />
| Web<br />
| JavaScript<br />
| [[Channel Viewer Protocol]]<br />
| A site that creates Channel Viewers for Mumble, Teamspeak & Ventrilo using the Channel Viewer Protocol<br />
| [http://commsviewer.com/ commsviewer.com]<br />
<br />
|}<br />
<br />
= Miscellaneous Scripts =<br />
<br />
{|border="0" cellpadding="2" cellspacing="1" style="background:#e2e2e2;" class="sortable"<br />
! Name<br />
! Type<br />
! Platform<br />
! Protocol<br />
! Comment<br />
! Weblink<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Evebot<br />
| Bot<br />
| Python<br />
| Mumble client<br />
| Relays comms from one channel to another with a delay (to synchronise comms for time-delayed game spectators, for example)<br />
| [http://frymaster.127001.org/mumble/ Evebot]<br />
<br />
|-bgcolor="#f8f8ff"<br />
| Mumo<br />
| Bot<br />
| Python<br />
| ICE<br />
| Highly extensible script that can use external events (such as gamestate changes) to dynamically shuffle users into channels and groups. Support for various user states and the game "Battlefield 2".<br />
| [http://gitorious.org/mumble-scripts/mumo MuMo]<br />
<br />
|}</div>Ilumos