Difference between revisions of "Protocol"
m (Update docs uri) |
|||
(5 intermediate revisions by 2 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:/ | + | [https://mumble-protocol.readthedocs.org/en/latest/ readthedocs.org]. |
= 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 the request and the response packets are formatted in Big Endian. |
− | + | The ping request packet contains the following data: | |
− | |||
− | |||
− | |||
− | |||
− | An example script can be found at [ | + | {| |
+ | !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]. A modified version of the script that also supports IPv6 is used by [[K-10]] for the mmping command, and can be found [https://bitbucket.org/Svedrin/k10-plugins/src/tip/BwCalc/plugin.py#cl-120 in Svedrin's BitBucket repository]. | ||
+ | |||
+ | |||
+ | [[Category:Development]] |
Revision as of 19:38, 21 June 2015
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 |
An example script can be found at mumble-ping.py. A modified version of the script that also supports IPv6 is used by K-10 for the mmping command, and can be found in Svedrin's BitBucket repository.