Difference between revisions of "Mumo"

From Mumble Wiki
Jump to: navigation, search
(Add readme as initial page)
 
m (3rd Party Modules)
(27 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
=mumo - The Mumble moderator=
 
=mumo - The Mumble moderator=
  
Mumo is meant to provide a platform on which python based Mumble server
+
Mumo is meant to provide a platform on which Python based Mumble server
 
plugins can be built upon. The goal is to reduce the boilerplate needed
 
plugins can be built upon. The goal is to reduce the boilerplate needed
 
to interact with the Mumble server to a minimum.
 
to interact with the Mumble server to a minimum.
  
To achieve this goal tasks like Ice interface setup, basic error
+
To achieve this goal tasks like [[Ice]] interface setup, basic error
 
handling, configuration management, logging and more are provided
 
handling, configuration management, logging and more are provided
 
by mumo. Developers can focus on their specific functionality instead.
 
by mumo. Developers can focus on their specific functionality instead.
  
Currently mumo comes with the following modules:
+
==Currently mumo comes with the following modules==
 +
===bf2===
 +
Battlefield 2 game management plugin that can dynamically
 +
move players into appropriate channels and groups to fit
 +
the in-game command structure. This is achieved by using
 +
data gathered from Mumble's positional audio system and does
 +
not require cooperation by the game server.
  
* bf2: Battlefield 2 game management plugin that can dynamically
+
===idlemove===
        move players into appropriate channels and groups to fit
+
Plugin for moving players that have been idle for
        the in-game command structure. This is achieved by using
+
a configurable amount of time into a idle channel. Optionally
        data gathered from Mumble's positional audio system and does
+
the players can be muted/deafened on move.
        not require cooperation by the game server.  
 
  
* idlemove: Plugin for moving players that have been idle for
+
===seen===
        a configurable amount of time into a idle channel. Optionally
+
Makes the server listen for a configurable keyword to ask for
        the players can be muted/deafened on move.
+
the last time a specific nick was seen on the server.
  
* onjoin: Moves players into a specific channel on connect regardless
+
===[[mumo_source|source]]===
        of which channel they were in when they left last time.
+
Source game management plugin that can dynamically move
 +
players into on-the-fly created channel structures representing
 +
in-game team setup. This is achieved by using data gathered from
 +
Mumble's positional audio system and does not require cooperation
 +
by the game server. Currently the following source engine based
 +
games are supported: Team Fortress 2, Day of Defeat: Source,
 +
Counter-Strike: Source, Half-Life 2: Deathmatch.
  
* seen: Makes the server listen for a configurable keyword to ask for
+
For more information on how to configure and use the source plugin see [[mumo_source|here]].
        the last time a specific nick was seen on the server.
 
  
* source: Source game management plugin that can dynamically move
+
===test===
        players into on-the-fly created channel structures representing
+
A debugging plugin that registers for all possible events and
        in-game team setup. This is achieved by using data gathered from
+
outputs every call with parameters into the debug log.
        Mumble's positional uadio system and does not require cooperation
 
        by the game server. Currently the following source engine based
 
        games are supported: Team Fortress 2, Day of Defeat: Source,
 
        CounterStrike: Source, Half Life 2: Death Match.
 
  
* test: A debugging plugin that registers for all possible events and
+
== 3rd Party Modules ==
        outputs every call with parameters into the debug log.
+
=== Image Injection Modules ===
 +
==== URL to image ====
 +
[https://github.com/aciid/urltoimg-for-mumo urltoimg on GitHub]
  
 +
If you send an image URL to the channel, the server fetches it and sends the image instead of the image link to the current channel.
 +
 +
==== Chat Img ====
 +
[https://github.com/aselus-hub/chatimg-mumo chatimg on GitHub]
 +
 +
A more full featured implementation of the same functionality as Url to Image. Allows injection of photos into chat, re-sizing them if they are larger then the size accepted by the mumble protocol and allowing the server admin to set a max width/height for the image so that it is scaled through html or thumbnailing to never be larger then prescribed. Allows the conversion of images within regular chat messages w/o bang commands as an option. Finally the injection of any number of images present after the bang or within a message.
 +
 +
=== Message forwarder ===
 +
[https://github.com/Natenom/mumblemoderator-module-collection/tree/master/messageforwarder messageforwarder on GitHub]
 +
 +
Forwards messages to all linked channels.
 +
 +
=== Wrong Version ===
 +
[https://github.com/Natenom/mumblemoderator-module-collection/tree/master/wrongversion wrongversion on GitHub]
 +
 +
Users with older Mumble versions will get a message (triggering version is configurable).
 +
 +
=== Lowbw ===
 +
[https://github.com/Natenom/mumblemoderator-module-collection/tree/master/lowbandwidth-channel lowbandwidth-channel on GitHub]
 +
 +
Creates a Low bw channel whenever a member of group "bots" enters a room and removes it later if empty...
 +
 +
=== Videoinfo ===
 +
[https://github.com/while-loop/mumo-videoinfo mumo-videoinfo on GitHub]
 +
 +
Mumo plugin to provide YouTube video information to Mumble.
 +
 +
=== Set Status ===
 +
[https://github.com/Natenom/mumblemoderator-module-collection/tree/master/setstatus setstatus on GitHub]
 +
 +
Users can add a temporary status to your username via chat command.
 +
 +
=== Deaf to AFK ===
 +
[https://github.com/Natenom/mumblemoderator-module-collection/tree/master/deaftoafk deaftoafk on GitHub]
 +
 +
Moves deafened users into an AFK channel.
 +
 +
=== Anti recording ===
 +
* [https://github.com/Natenom/mumblemoderator-module-collection/tree/master/antirec-contextmenu antirec with contextmenus on GitHub]
 +
 +
If a user starts to record in Mumble he will be deafened or kicked from the server.
 +
 +
=== Max users ===
 +
[https://github.com/ExplodingFist/mumo-maxusers/ mumo-maxusers on GitHub]
 +
 +
This is a MuMo module to provide an administrator the capability of enforcing granular user limits by channel in mumble.
 +
 +
=== Opcommand ===
 +
[https://github.com/ExplodingFist/mumo-opcommand mumo-opcommand on GitHub]
 +
 +
Temporarily add user or remove user to/from a group via GUI command line.
 +
 +
=== Sticky ===
 +
* [https://github.com/Natenom/mumblemoderator-module-collection/tree/master/sticky-contextmenu sticky with contextmenus on GitHub]
 +
 +
A user who gets the sticky status can't do more than sitting in one special channel. Even admins will loose their permissions while sticked.
 +
 +
=== AntiFlood ===
 +
[https://github.com/Natenom/mumblemoderator-module-collection/tree/master/antiflood antiflood on GitHub]
 +
 +
If a user exceeds a limit of actions within a timeframe (both can be changed) he will be kicked from the server.
 +
 +
=== GetSupport ===
 +
[https://github.com/Natenom/mumblemoderator-module-collection/tree/master/getsupport getsupport on GitHub]
 +
 +
A user can write for example "!helpme support message up to 160 characters..." to a channel/user/himself and everyone on the server who is member of a special group gets a notification.
 +
 +
=== OS-Suffixes ===
 +
[https://github.com/Natenom/mumblemoderator-module-collection/tree/master/os-suffixes os-suffixes on GitHub]
 +
 +
Adds suffixes to user names based on operating system.
 +
 +
=== mumo-password ===
 +
[https://github.com/Betriebsrat/mumo-password mumo-password on GitHub]
 +
 +
=== mumo-chatlogger ===
 +
[https://github.com/braandl/chatlogger-for-mumo mumo-chatlogger on GitHub]
 +
 +
"Generates a random password for mumble which expires in 30 minutes."
 +
 +
=== mumo-registerusers-contextmenu ===
 +
[https://github.com/Natenom/mumblemoderator-module-collection/tree/master/registerusers-contextmenu registerusers-contextmenu on GitHub]
 +
 +
"Ability to define one or more groups whose users are able to register new users on a server by right clicking them."
 +
 +
=== mumo-welcomemessage ===
 +
[https://github.com/Natenom/mumblemoderator-module-collection/tree/master/welcomemessage welcomemessage on GitHub]
 +
 +
"Displays a welcome message depending on registration, new user ..."
 +
 +
==Contributions==
 
If you have a module that you would like to see shipped with mumo or
 
If you have a module that you would like to see shipped with mumo or
 
have any improvements or suggestions please contact us. Whether you
 
have any improvements or suggestions please contact us. Whether you
 
prefer a pull request, visiting us in IRC in #mumble on Freenode or
 
prefer a pull request, visiting us in IRC in #mumble on Freenode or
starting a thread in our forums at http://sourceforge.net/apps/phpbb/mumble/ is up to you.
+
starting a thread in our forums at http://forums.mumble.info is up to you.
  
 +
==Configuration==
 
To configure and run mumo take a look at the mumo.ini and the module
 
To configure and run mumo take a look at the mumo.ini and the module
 
specific configurations in modules-available folder. Enabling modules
 
specific configurations in modules-available folder. Enabling modules
Line 48: Line 148:
 
modules-enabled folder.
 
modules-enabled folder.
  
 +
==Requirements==
 
mumo requires:
 
mumo requires:
 
  - python 2.7*
 
  - python 2.7*
 
  - python-zeroc-ice
 
  - python-zeroc-ice
 
  - murmur >=1.2.3*
 
  - murmur >=1.2.3*
 +
- murmur >=1.2.4 if you want to use a module which needs user interaction via text commands
  
 
* Not tested with lower versions yet
 
* Not tested with lower versions yet
 +
 +
=Installing mumo=
 +
The newest version of mumo is always available from our mumo repository at https://github.com/mumble-voip/mumo .
 +
 +
==Ubuntu 12.04==
 +
''Note:'' This guide only shows the basic steps for trying out mumo. For a more permanent setup you'll want to run mumo with its own user and a startup script.
 +
 +
* Make sure you are running a recent Murmur release (1.2.4 or later). Ice should be enabled and a writesecret must be set (see configuration file).
 +
* Install dependencies
 +
sudo apt-get install python-zeroc-ice python-daemon git
 +
* Clone repository
 +
cd ~/
 +
git clone https://github.com/mumble-voip/mumo.git
 +
* Adjust configuration
 +
cd mumo
 +
nano mumo.ini
 +
In the editor set your server's Ice writesecret as the secret variable so mumo can control your server.
 +
secret = mysecretwritesecret
 +
Close and save by pressing Ctrl + X followed by Y and Enter.
 +
* Configure the modules you want to use by editing their ini file in the modules-available folder
 +
* Enable modules by linking their config file into the modules-enabled folder
 +
cd modules-enabled
 +
ln -s ../modules-available/moduleyouwanttouse.ini
 +
* Run mumo
 +
./mumo.py
 +
 +
Mumo should now be working with your mumble server. If it doesn't work check the ''mumo.log'' file for more information.
 +
 +
[[Category:3rd Party]]

Revision as of 09:30, 19 February 2018

mumo - The Mumble moderator

Mumo is meant to provide a platform on which Python based Mumble server plugins can be built upon. The goal is to reduce the boilerplate needed to interact with the Mumble server to a minimum.

To achieve this goal tasks like Ice interface setup, basic error handling, configuration management, logging and more are provided by mumo. Developers can focus on their specific functionality instead.

Currently mumo comes with the following modules

bf2

Battlefield 2 game management plugin that can dynamically move players into appropriate channels and groups to fit the in-game command structure. This is achieved by using data gathered from Mumble's positional audio system and does not require cooperation by the game server.

idlemove

Plugin for moving players that have been idle for a configurable amount of time into a idle channel. Optionally the players can be muted/deafened on move.

seen

Makes the server listen for a configurable keyword to ask for the last time a specific nick was seen on the server.

source

Source game management plugin that can dynamically move players into on-the-fly created channel structures representing in-game team setup. This is achieved by using data gathered from Mumble's positional audio system and does not require cooperation by the game server. Currently the following source engine based games are supported: Team Fortress 2, Day of Defeat: Source, Counter-Strike: Source, Half-Life 2: Deathmatch.

For more information on how to configure and use the source plugin see here.

test

A debugging plugin that registers for all possible events and outputs every call with parameters into the debug log.

3rd Party Modules

Image Injection Modules

URL to image

urltoimg on GitHub

If you send an image URL to the channel, the server fetches it and sends the image instead of the image link to the current channel.

Chat Img

chatimg on GitHub

A more full featured implementation of the same functionality as Url to Image. Allows injection of photos into chat, re-sizing them if they are larger then the size accepted by the mumble protocol and allowing the server admin to set a max width/height for the image so that it is scaled through html or thumbnailing to never be larger then prescribed. Allows the conversion of images within regular chat messages w/o bang commands as an option. Finally the injection of any number of images present after the bang or within a message.

Message forwarder

messageforwarder on GitHub

Forwards messages to all linked channels.

Wrong Version

wrongversion on GitHub

Users with older Mumble versions will get a message (triggering version is configurable).

Lowbw

lowbandwidth-channel on GitHub

Creates a Low bw channel whenever a member of group "bots" enters a room and removes it later if empty...

Videoinfo

mumo-videoinfo on GitHub

Mumo plugin to provide YouTube video information to Mumble.

Set Status

setstatus on GitHub

Users can add a temporary status to your username via chat command.

Deaf to AFK

deaftoafk on GitHub

Moves deafened users into an AFK channel.

Anti recording

If a user starts to record in Mumble he will be deafened or kicked from the server.

Max users

mumo-maxusers on GitHub

This is a MuMo module to provide an administrator the capability of enforcing granular user limits by channel in mumble.

Opcommand

mumo-opcommand on GitHub

Temporarily add user or remove user to/from a group via GUI command line.

Sticky

A user who gets the sticky status can't do more than sitting in one special channel. Even admins will loose their permissions while sticked.

AntiFlood

antiflood on GitHub

If a user exceeds a limit of actions within a timeframe (both can be changed) he will be kicked from the server.

GetSupport

getsupport on GitHub

A user can write for example "!helpme support message up to 160 characters..." to a channel/user/himself and everyone on the server who is member of a special group gets a notification.

OS-Suffixes

os-suffixes on GitHub

Adds suffixes to user names based on operating system.

mumo-password

mumo-password on GitHub

mumo-chatlogger

mumo-chatlogger on GitHub

"Generates a random password for mumble which expires in 30 minutes."

mumo-registerusers-contextmenu

registerusers-contextmenu on GitHub

"Ability to define one or more groups whose users are able to register new users on a server by right clicking them."

mumo-welcomemessage

welcomemessage on GitHub

"Displays a welcome message depending on registration, new user ..."

Contributions

If you have a module that you would like to see shipped with mumo or have any improvements or suggestions please contact us. Whether you prefer a pull request, visiting us in IRC in #mumble on Freenode or starting a thread in our forums at http://forums.mumble.info is up to you.

Configuration

To configure and run mumo take a look at the mumo.ini and the module specific configurations in modules-available folder. Enabling modules is done by linking the configuration in modules-available to the modules-enabled folder.

Requirements

mumo requires:

- python 2.7*
- python-zeroc-ice
- murmur >=1.2.3*
- murmur >=1.2.4 if you want to use a module which needs user interaction via text commands
  • Not tested with lower versions yet

Installing mumo

The newest version of mumo is always available from our mumo repository at https://github.com/mumble-voip/mumo .

Ubuntu 12.04

Note: This guide only shows the basic steps for trying out mumo. For a more permanent setup you'll want to run mumo with its own user and a startup script.

  • Make sure you are running a recent Murmur release (1.2.4 or later). Ice should be enabled and a writesecret must be set (see configuration file).
  • Install dependencies
sudo apt-get install python-zeroc-ice python-daemon git
  • Clone repository
cd ~/
git clone https://github.com/mumble-voip/mumo.git
  • Adjust configuration
cd mumo
nano mumo.ini

In the editor set your server's Ice writesecret as the secret variable so mumo can control your server.

secret = mysecretwritesecret

Close and save by pressing Ctrl + X followed by Y and Enter.

  • Configure the modules you want to use by editing their ini file in the modules-available folder
  • Enable modules by linking their config file into the modules-enabled folder
cd modules-enabled
ln -s ../modules-available/moduleyouwanttouse.ini
  • Run mumo
./mumo.py

Mumo should now be working with your mumble server. If it doesn't work check the mumo.log file for more information.