syntax = "proto3"; package livekit;option go_package = "github.com/livekit/protocol/livekit";option csharp_namespace = "LiveKit.Proto";option ruby_package = "LiveKit::Proto"; // internal protos, not exposed to clientsimport "livekit_models.proto";import "livekit_rtc.proto";import "livekit_room.proto"; enum NodeType { SERVER = 0; CONTROLLER = 1; MEDIA = 2; TURN = 4;} enum NodeState { STARTING_UP = 0; SERVING = 1; SHUTTING_DOWN = 2;} message Node { string id = 1; string ip = 2; uint32 num_cpus = 3; NodeStats stats = 4; NodeType type = 5; NodeState state = 6; string region = 7;} message NodeStats { // when server was started int64 started_at = 1; // when server last reported its status int64 updated_at = 2; // room int32 num_rooms = 3; int32 num_clients = 4; int32 num_tracks_in = 5; int32 num_tracks_out = 6; // packet uint64 bytes_in = 7; uint64 bytes_out = 8; uint64 packets_in = 9; uint64 packets_out = 10; uint64 nack_total = 11; float bytes_in_per_sec = 12; float bytes_out_per_sec = 13; float packets_in_per_sec = 14; float packets_out_per_sec = 15; float nack_per_sec = 16; // system uint32 num_cpus = 17; float load_avg_last1min = 18; float load_avg_last5min = 19; float load_avg_last15min = 20; float cpu_load = 21; uint32 sys_packets_out = 28; uint32 sys_packets_dropped = 29; float sys_packets_out_per_sec = 30; float sys_packets_dropped_per_sec = 31; float sys_packets_dropped_pct_per_sec = 32; // retransmissions uint64 retransmit_bytes_out = 22; uint64 retransmit_packets_out = 23; float retransmit_bytes_out_per_sec = 24; float retransmit_packets_out_per_sec = 25; // participant joins uint64 participant_join = 26; float participant_join_per_sec = 27;} // message to RTC nodesmessage RTCNodeMessage { string participant_key = 1; int64 sender_time = 11; string connection_id = 13; oneof message { StartSession start_session = 2; SignalRequest request = 3; // internal messages RoomParticipantIdentity remove_participant = 4; MuteRoomTrackRequest mute_track = 5; UpdateParticipantRequest update_participant = 6; DeleteRoomRequest delete_room = 7; UpdateSubscriptionsRequest update_subscriptions = 8; SendDataRequest send_data = 9; UpdateRoomMetadataRequest update_room_metadata = 10; KeepAlive keep_alive = 12; }} // message to Signal nodesmessage SignalNodeMessage { string connection_id = 1; oneof message { SignalResponse response = 2; EndSession end_session = 3; }} message StartSession { string room_name = 1; string identity = 2; string connection_id = 3; // if a client is reconnecting (i.e. resume instead of restart) bool reconnect = 4; bool auto_subscribe = 9; bool hidden = 10; ClientInfo client = 11; bool recorder = 12; string name = 13; // A user's ClaimGrants serialized in JSON string grants_json = 14; bool adaptive_stream = 15; //if reconnect, client will set current sid string participant_id = 16; } message EndSession {} message RemoveParticipant { string participant_id = 1;} message KeepAlive {}
syntax = "proto3";
package livekit;
option go_package = "github.com/livekit/protocol/livekit";
option csharp_namespace = "LiveKit.Proto";
option ruby_package = "LiveKit::Proto";
// internal protos, not exposed to clients
import "livekit_models.proto";
import "livekit_rtc.proto";
import "livekit_room.proto";
enum NodeType {
SERVER = 0;
CONTROLLER = 1;
MEDIA = 2;
TURN = 4;
}
enum NodeState {
STARTING_UP = 0;
SERVING = 1;
SHUTTING_DOWN = 2;
}
message Node {
string id = 1;
string ip = 2;
uint32 num_cpus = 3;
NodeStats stats = 4;
NodeType type = 5;
NodeState state = 6;
string region = 7;
}
message NodeStats {
// when server was started
int64 started_at = 1;
// when server last reported its status
int64 updated_at = 2;
// room
int32 num_rooms = 3;
int32 num_clients = 4;
int32 num_tracks_in = 5;
int32 num_tracks_out = 6;
// packet
uint64 bytes_in = 7;
uint64 bytes_out = 8;
uint64 packets_in = 9;
uint64 packets_out = 10;
uint64 nack_total = 11;
float bytes_in_per_sec = 12;
float bytes_out_per_sec = 13;
float packets_in_per_sec = 14;
float packets_out_per_sec = 15;
float nack_per_sec = 16;
// system
uint32 num_cpus = 17;
float load_avg_last1min = 18;
float load_avg_last5min = 19;
float load_avg_last15min = 20;
float cpu_load = 21;
uint32 sys_packets_out = 28;
uint32 sys_packets_dropped = 29;
float sys_packets_out_per_sec = 30;
float sys_packets_dropped_per_sec = 31;
float sys_packets_dropped_pct_per_sec = 32;
// retransmissions
uint64 retransmit_bytes_out = 22;
uint64 retransmit_packets_out = 23;
float retransmit_bytes_out_per_sec = 24;
float retransmit_packets_out_per_sec = 25;
// participant joins
uint64 participant_join = 26;
float participant_join_per_sec = 27;
}
// message to RTC nodes
message RTCNodeMessage {
string participant_key = 1;
int64 sender_time = 11;
string connection_id = 13;
oneof message {
StartSession start_session = 2;
SignalRequest request = 3;
// internal messages
RoomParticipantIdentity remove_participant = 4;
MuteRoomTrackRequest mute_track = 5;
UpdateParticipantRequest update_participant = 6;
DeleteRoomRequest delete_room = 7;
UpdateSubscriptionsRequest update_subscriptions = 8;
SendDataRequest send_data = 9;
UpdateRoomMetadataRequest update_room_metadata = 10;
KeepAlive keep_alive = 12;
}
}
// message to Signal nodes
message SignalNodeMessage {
string connection_id = 1;
oneof message {
SignalResponse response = 2;
EndSession end_session = 3;
}
}
message StartSession {
string room_name = 1;
string identity = 2;
string connection_id = 3;
// if a client is reconnecting (i.e. resume instead of restart)
bool reconnect = 4;
bool auto_subscribe = 9;
bool hidden = 10;
ClientInfo client = 11;
bool recorder = 12;
string name = 13;
// A user's ClaimGrants serialized in JSON
string grants_json = 14;
bool adaptive_stream = 15;
//if reconnect, client will set current sid
string participant_id = 16;
}
message EndSession {
}
message RemoveParticipant {
string participant_id = 1;
}
message KeepAlive {
}