Giter Site home page Giter Site logo

pymumble's Introduction

PYMUMBLE python library

Description

This library is a fork of a fork of a fork (initial from https://github.com/Robert904/pymumble). But we will try to make pymumble better. So I consider this fork (the @Azlux one) the current fork alive of pymumble.

The wiki/API explanation is HERE.

The Python 2 version is available in the master branch. It's working! But since we have moved on to Python 3, the Python 2 version will not receive future improvements.

List of applications using pymumble

For a client application example, you can check this list :

Status

  • Compatible with Mumble 1.2.4 and normally 1.2.3 and 1.2.2
  • Support OPUS. Speex is not supported
  • Receive and send audio, get users and channels status
  • Set properties for users (mute, comments, etc.) and go to a specific channel
  • Callback mechanism to react on server events
  • Manage the blobs (images, long comments, etc.)
  • Can send text messages to user and channel
  • Ping statistics

What is missing:

I don't need those features, so if you want one, open an issue and I will work on it.
  • UDP media. Currently it works only in TCP tunneling mode (the standard fallback of Mumble when UDP is not working)
  • basically server management (user creation and registration, ACLs, groups, bans, etc.)
  • Positioning is not managed, but it should be easy to add
  • Audio targets (whisper, etc.) is not managed in outgoing audio, and has very basic support in incoming
  • Probably a lot of other small features

Architecture

The library is based on the Mumble object, which is basically a thread. When started, it will try to connect to the server and start exchange the connections messages with the server. This thread is in a loop that take care of the pings, send the commands to the server, check for incoming messages including audio and check for audio to be sent. The rate of that loop is controlled by how long it will wait for an incoming message before going further.

You can now check if the thread is alive with mumble_object.isAlive(). The Mumble object will stop itself if it is disconnected from the server. Useful if you need to restart it with a loop are a supervisor.

Requirements/installation

Check the requirement.txt to know the versions of opuslib and protobuf needed. You need pip3 because it's a Python 3 library (apt-get install python3-pip) to install dependencies (pip3 install -r requirements.txt).

Thanks

  • @raylu for making pymumble speak into channels
  • @schlarpc for fixes on buffer

License

Copyright Robert Hendrickx [email protected] - 2014

pymumble is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

pymumble's People

Contributors

azlux avatar evansloan avatar grandpa-g avatar lamantal avatar lartza avatar ranomier avatar raylu avatar robert904 avatar schlarpc avatar suyooo avatar wyattporter avatar xefir avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.