base on Mumble is an open-source, low-latency, high quality voice chat software. ![Mumble screenshot](screenshots/Mumble.png) # Mumble - Open Source voice-chat software [![https://www.mumble.info](https://img.shields.io/badge/Website-https%3A%2F%2Fwww.mumble.info-blue?style=for-the-badge)](https://www.mumble.info) [![#mumble:matrix.org](https://img.shields.io/matrix/mumble:matrix.org?label=%23mumble:matrix.org&style=for-the-badge)](https://matrix.to/#/#mumble:matrix.org) [![Codacy](https://img.shields.io/codacy/grade/262a5e20c83a40599050e22e700d8a3e?label=Codacy&style=for-the-badge)](https://app.codacy.com/manual/mumble-voip/mumble) [![Azure](https://img.shields.io/azure-devops/build/Mumble-VoIP/c819eb06-7b22-4ef3-bbcd-860094454eb3/1?label=Azure&style=for-the-badge)](https://dev.azure.com/Mumble-VoIP/Mumble) [![Cirrus CI](https://img.shields.io/cirrus/github/mumble-voip/mumble?label=Cirrus%20CI&style=for-the-badge)](https://cirrus-ci.com/github/mumble-voip/mumble) [![Travis CI](https://img.shields.io/travis/com/mumble-voip/mumble?label=Travis%20CI&style=for-the-badge)](https://travis-ci.com/mumble-voip/mumble) Mumble is an Open Source, low-latency and high-quality voice-chat program written on top of Qt and Opus. There are two modules in Mumble; the client (mumble) and the server (mumble-server formerly known as murmur). The client works on Windows, Linux, FreeBSD, OpenBSD, and macOS, while the server should work on anything Qt can be installed on. The documentation of the project can be found on [the website](https://www.mumble.info/documentation/). ## Contributing We always welcome contributions to the project. If you have some code that you would like to contribute, please go ahead and create a PR. While doing so, please try to make sure that you follow our [commit guidelines](COMMIT_GUIDELINES.md). If you are new to the Mumble project, you may want to check out the general [introduction to the Mumble source code](docs/dev/TheMumbleSourceCode.md). ### Translating Mumble supports various languages. We are always looking for qualified people to contribute translations. We are using Weblate as a translation platform. [Register on Weblate](https://hosted.weblate.org/accounts/register/), and join [our translation project](https://hosted.weblate.org/projects/mumble/). ### Writing plugins Mumble supports general-purpose plugins that can provide functionality that is not implemented in the main Mumble application. You can find more information on how this works and how these have to be created in the [plugin documentation](docs/dev/plugins/README.md). ## Building For information on how to build Mumble, check out [the dedicated documentation](docs/dev/build-instructions/README.md). Make sure to switch to the appropriate branch in this repository to get the correct build documentation. The current ``master`` branch contains the unstable code for a future release of Mumble. If you want to build an already released stable version of Mumble, e.g. ``1.5.735``, select the corresponding branch, e.g. ``1.5.x``, in the dropdown menu above. Alternatively, use the documentation in the respective release tarball. ## Reporting issues If you want to report a bug or create a feature request, you can open a new issue (after you have checked that there is none already) on [GitHub](https://github.com/mumble-voip/mumble/issues/new/choose). ## Code Signing We graciously acknowledge that this program uses free code signing provided by [SignPath.io](https://signpath.io?utm_source=foundation&utm_medium=github&utm_campaign=mumble), and a free code signing certificate by the [SignPath Foundation](https://signpath.org?utm_source=foundation&utm_medium=github&utm_campaign=mumble). ## Windows ### Running Mumble After installation, you should have a new Mumble folder in your Start Menu, from which you can start Mumble. ### Running Mumble-Server Double-click the icon to start ``mumble-server``. There will be a small icon on your taskbar from which you can view the log. To set the superuser password, run ``mumble-server`` with the parameters `-supw <password>`. ## MacOS ### Running Mumble To install Mumble, drag the application from the downloaded disk image into your `/Applications` folder. ### Running Mumble-Server ``mumble-server`` is distributed separately from the Mumble client on MacOS. It is called Static OS X Server and can be downloaded from the main webpage. Once downloaded it can be run in the same way as on any other Unix-like system. For more information please see the "Running mumble-server" in the Linux/Unix section below. ## Linux/Unix ### Running Mumble If you have installed Mumble through your distribution package repository, you should be able to find Mumble in your start menu. No additional steps are necessary. ### Running Mumble-Server ``mumble-server`` should be run from the command line, so start a shell (command prompt) and go to wherever you installed Mumble. Run ``mumble-server`` as ``` mumble-server [-supw <password>] [-ini <inifile>] [-fg] [v] -supw Set a new password for the user SuperUser, which is hardcoded to bypass ACLs. Keep this password safe. Until you set a password, the SuperUser is disabled. If you use this option, mumble-server will set the password in the database and then exit. -ini Use an inifile other than mumble-server.ini, use this to run several instances of mumble-server from the same directory. Make sure each instance is using a separate database. -fg Run in the foreground, logging to standard output. -v More verbose logging. ``` #### Docker image Our official Docker image along with instructions on how to use it can be found at https://github.com/mumble-voip/mumble-docker ### Server configuration You can find an up-to-date ``mumble-server`` configuration template in [this repository](auxiliary_files/mumble-server.ini). Further server configuration documentation can be found [on the project website](https://www.mumble.info/documentation/administration/). ### OpenGL Overlay The OpenGL overlay works by intercepting the call to switch buffers, and just before the buffer switch, we draw our nice GUI. To load a game with the overlay enabled, start the game like this: ```bash LD_PRELOAD=/path/to/libmumble.so.1.1 gamename ``` If you have Mumble installed through the binary packages, this can be done by simply typing: ```bash mumble-overlay gamename ``` ", Assign "at most 3 tags" to the expected json: {"id":"2837","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"