Difference between revisions of "Protocol"

From Mumble Wiki
Jump to: navigation, search
m (UDP Ping packet: rephrase endianness)
m
 
(6 intermediate revisions by 3 users not shown)
Line 4: Line 4:
  
 
A complete documentation about the protocol can be found at  
 
A complete documentation about the protocol can be found at  
[https://github.com/mumble-voip/mumble/raw/master/doc/mumble-protocol.pdf mumble-protocol.pdf].
+
[https://mumble-protocol.readthedocs.org/en/latest/ readthedocs.org].
  
 
= UDP Ping packet =
 
= UDP Ping packet =
Line 63: Line 63:
 
|}
 
|}
  
An example script can be found at [https://gitorious.org/mumble-scripts/mumble-scripts/blobs/master/Non-RPC/mumble-ping.py mumble-ping.py].
+
Example implementations of pinging:
 +
 
 +
* The official python script [https://raw.githubusercontent.com/mumble-voip/mumble-scripts/master/Non-RPC/mumble-ping.py mumble-ping.py]
 +
* The IRC bot [[K-10]]’s [https://bitbucket.org/Svedrin/k10-plugins/src/tip/BwCalc/plugin.py#cl-120 extension of that script] that adds IPv6 support
 +
* The C#/.NET Core [https://github.com/Kissaki/mumble-ping mumble-ping application]
 +
 
 +
 
 +
[[Category:Development]]

Latest revision as of 19:09, 23 November 2019

The Mumble Protocol is Open Source, just like Mumble itself. The source code for the current version can be found in the Git repository in the file Mumble.proto.

Protocol documentation

A complete documentation about the protocol can be found at readthedocs.org.

UDP Ping packet

Mumble supports querying the following data by sending a ping packet to the target server. Both the request and the response packets are formatted in Big Endian.

The ping request packet contains the following data:

Width Data type Value Comment
4 bytes int 0 Denotes the request type
8 bytes long long ident Used to identify the reponse.


The response will then contain the following data:

Width Data type Value Comment
4 bytes int Version e.g., \x0\x1\x2\x3 for 1.2.3. Can be interpreted as one single int or four signed chars.
8 bytes long long ident the ident value sent with the request
4 bytes int Currently connected users count
4 bytes int Maximum users (slot count)
4 bytes int Allowed bandwidth

Example implementations of pinging: