summaryrefslogtreecommitdiff
path: root/src/mumble.proto
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2011-05-23 18:03:39 +0200
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2011-05-23 18:03:39 +0200
commit1f5b997daf6019cb5c4c0de831792cd96ac02a35 (patch)
treeb72978e307ce24a9926186ae1764f23a0fe2342c /src/mumble.proto
downloadcmumble-1f5b997daf6019cb5c4c0de831792cd96ac02a35.tar.gz
cmumble-1f5b997daf6019cb5c4c0de831792cd96ac02a35.tar.bz2
cmumble-1f5b997daf6019cb5c4c0de831792cd96ac02a35.zip
initial commit
Diffstat (limited to 'src/mumble.proto')
-rw-r--r--src/mumble.proto287
1 files changed, 287 insertions, 0 deletions
diff --git a/src/mumble.proto b/src/mumble.proto
new file mode 100644
index 0000000..d2d3c66
--- /dev/null
+++ b/src/mumble.proto
@@ -0,0 +1,287 @@
+package MumbleProto;
+
+option optimize_for = SPEED;
+
+message Version {
+ optional uint32 version = 1;
+ optional string release = 2;
+ optional string os = 3;
+ optional string os_version = 4;
+}
+
+message UDPTunnel {
+ required bytes packet = 1;
+}
+
+message Authenticate {
+ optional string username = 1;
+ optional string password = 2;
+ repeated string tokens = 3;
+ repeated int32 celt_versions = 4;
+}
+
+message Ping {
+ optional uint64 timestamp = 1;
+ optional uint32 good = 2;
+ optional uint32 late = 3;
+ optional uint32 lost = 4;
+ optional uint32 resync = 5;
+ optional uint32 udp_packets = 6;
+ optional uint32 tcp_packets = 7;
+ optional float udp_ping_avg = 8;
+ optional float udp_ping_var = 9;
+ optional float tcp_ping_avg = 10;
+ optional float tcp_ping_var = 11;
+}
+
+message Reject {
+ enum RejectType {
+ None = 0;
+ WrongVersion = 1;
+ InvalidUsername = 2;
+ WrongUserPW = 3;
+ WrongServerPW = 4;
+ UsernameInUse = 5;
+ ServerFull = 6;
+ NoCertificate = 7;
+ }
+ optional RejectType type = 1;
+ optional string reason = 2;
+}
+
+message ServerConfig {
+ optional uint32 max_bandwidth = 1;
+ optional string welcome_text = 2;
+ optional bool allow_html = 3;
+ optional uint32 message_length = 4;
+ optional uint32 image_message_length = 5;
+}
+
+message ServerSync {
+ optional uint32 session = 1;
+ optional uint32 max_bandwidth = 2;
+ optional string welcome_text = 3;
+ optional uint64 permissions = 4;
+}
+
+message ChannelRemove {
+ required uint32 channel_id = 1;
+}
+
+message ChannelState {
+ optional uint32 channel_id = 1;
+ optional uint32 parent = 2;
+ optional string name = 3;
+ repeated uint32 links = 4;
+ optional string description = 5;
+ repeated uint32 links_add = 6;
+ repeated uint32 links_remove = 7;
+ optional bool temporary = 8 [default = false];
+ optional int32 position = 9 [default = 0];
+ optional bytes description_hash = 10;
+}
+
+message UserRemove {
+ required uint32 session = 1;
+ optional uint32 actor = 2;
+ optional string reason = 3;
+ optional bool ban = 4;
+}
+
+message UserState {
+ optional uint32 session = 1;
+ optional uint32 actor = 2;
+ optional string name = 3;
+ optional uint32 user_id = 4;
+ optional uint32 channel_id = 5;
+ optional bool mute = 6;
+ optional bool deaf = 7;
+ optional bool suppress = 8;
+ optional bool self_mute = 9;
+ optional bool self_deaf = 10;
+ optional bytes texture = 11;
+ optional bytes plugin_context = 12;
+ optional string plugin_identity = 13;
+ optional string comment = 14;
+ optional string hash = 15;
+ optional bytes comment_hash = 16;
+ optional bytes texture_hash = 17;
+ optional bool priority_speaker = 18;
+ optional bool recording = 19;
+}
+
+message BanList {
+ message BanEntry {
+ required bytes address = 1;
+ required uint32 mask = 2;
+ optional string name = 3;
+ optional string hash = 4;
+ optional string reason = 5;
+ optional string start = 6;
+ optional uint32 duration = 7;
+ }
+ repeated BanEntry bans = 1;
+ optional bool query = 2 [default = false];
+}
+
+message TextMessage {
+ optional uint32 actor = 1;
+ repeated uint32 session = 2;
+ repeated uint32 channel_id = 3;
+ repeated uint32 tree_id = 4;
+ required string message = 5;
+}
+
+message PermissionDenied {
+ enum DenyType {
+ Text = 0;
+ Permission = 1;
+ SuperUser = 2;
+ ChannelName = 3;
+ TextTooLong = 4;
+ H9K = 5;
+ TemporaryChannel = 6;
+ MissingCertificate = 7;
+ UserName = 8;
+ ChannelFull = 9;
+ }
+ optional uint32 permission = 1;
+ optional uint32 channel_id = 2;
+ optional uint32 session = 3;
+ optional string reason = 4;
+ optional DenyType type = 5;
+ optional string name = 6;
+}
+
+message ACL {
+ message ChanGroup {
+ required string name = 1;
+ optional bool inherited = 2 [default = true];
+ optional bool inherit = 3 [default = true];
+ optional bool inheritable = 4 [default = true];
+ repeated uint32 add = 5;
+ repeated uint32 remove = 6;
+ repeated uint32 inherited_members = 7;
+ }
+ message ChanACL {
+ optional bool apply_here = 1 [default = true];
+ optional bool apply_subs = 2 [default = true];
+ optional bool inherited = 3 [default = true];
+ optional uint32 user_id = 4;
+ optional string group = 5;
+ optional uint32 grant = 6;
+ optional uint32 deny = 7;
+ }
+ required uint32 channel_id = 1;
+ optional bool inherit_acls = 2 [default = true];
+ repeated ChanGroup groups = 3;
+ repeated ChanACL acls = 4;
+ optional bool query = 5 [default = false];
+}
+
+message QueryUsers {
+ repeated uint32 ids = 1;
+ repeated string names = 2;
+}
+
+message CryptSetup {
+ optional bytes key = 1;
+ optional bytes client_nonce = 2;
+ optional bytes server_nonce = 3;
+}
+
+message ContextActionModify {
+ enum Context {
+ Server = 0x01;
+ Channel = 0x02;
+ User = 0x04;
+ }
+ enum Operation {
+ Add = 0;
+ Remove = 1;
+ }
+ required string action = 1;
+ optional string text = 2;
+ optional uint32 context = 3;
+ optional Operation operation = 4;
+}
+
+message ContextAction {
+ optional uint32 session = 1;
+ optional uint32 channel_id = 2;
+ required string action = 3;
+}
+
+message UserList {
+ message User {
+ required uint32 user_id = 1;
+ optional string name = 2;
+ }
+ repeated User users = 1;
+}
+
+message VoiceTarget {
+ message Target {
+ repeated uint32 session = 1;
+ optional uint32 channel_id = 2;
+ optional string group = 3;
+ optional bool links = 4 [default = false];
+ optional bool children = 5 [default = false];
+ }
+ optional uint32 id = 1;
+ repeated Target targets = 2;
+}
+
+message PermissionQuery {
+ optional uint32 channel_id = 1;
+ optional uint32 permissions = 2;
+ optional bool flush = 3 [default = false];
+}
+
+message CodecVersion {
+ required int32 alpha = 1;
+ required int32 beta = 2;
+ required bool prefer_alpha = 3 [default = true];
+}
+
+message UserStats {
+ message Stats {
+ optional uint32 good = 1;
+ optional uint32 late = 2;
+ optional uint32 lost = 3;
+ optional uint32 resync = 4;
+ }
+
+ optional uint32 session = 1;
+ optional bool stats_only = 2 [default = false];
+ repeated bytes certificates = 3;
+ optional Stats from_client = 4;
+ optional Stats from_server = 5;
+
+ optional uint32 udp_packets = 6;
+ optional uint32 tcp_packets = 7;
+ optional float udp_ping_avg = 8;
+ optional float udp_ping_var = 9;
+ optional float tcp_ping_avg = 10;
+ optional float tcp_ping_var = 11;
+
+ optional Version version = 12;
+ repeated int32 celt_versions = 13;
+ optional bytes address = 14;
+ optional uint32 bandwidth = 15;
+ optional uint32 onlinesecs = 16;
+ optional uint32 idlesecs = 17;
+ optional bool strong_certificate = 18 [default = false];
+}
+
+message SuggestConfig {
+ optional uint32 version = 1;
+ optional bool positional = 2;
+ optional bool push_to_talk = 3;
+}
+
+message RequestBlob {
+ repeated uint32 session_texture = 1;
+ repeated uint32 session_comment = 2;
+ repeated uint32 channel_description = 3;
+}