Difference between revisions of "Protocol"

From Mumble Wiki
Jump to: navigation, search
(UDP Ping packet: improve the documentation on the packet format; link to gitorious instead of pr.0xy.org.)
Line 8: Line 8:
 
= UDP Ping packet =
 
= UDP Ping packet =
  
Mumble supports querying the following data by sending a ping packet to the target server:
+
Mumble supports querying the following data by sending a ping packet to the target server. Both packets have to be formatted in Big Endian.
  
# Version
+
The ping request packet contains the following data:
# Timestamp (for measuring the ping)
 
# Currently connected users
 
# Maximum users (slot count)
 
# Allowed bandwidth
 
  
An example script can be found at [http://0xy.org/mumble-ping.py mumble-ping.py].
+
{|
 +
!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
 +
|}
 +
 
 +
An example script can be found at [https://gitorious.org/mumble-scripts/mumble-scripts/blobs/master/Non-RPC/mumble-ping.py mumble-ping.py].

Revision as of 22:38, 9 August 2011

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 mumble-protocol.pdf.

UDP Ping packet

Mumble supports querying the following data by sending a ping packet to the target server. Both packets have to be 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

An example script can be found at mumble-ping.py.