From bde1802664ba534c27a4200a9bb85aa7ab3f80da Mon Sep 17 00:00:00 2001 From: Sean DuBois Date: Wed, 8 Nov 2023 10:01:02 -0500 Subject: [PATCH] Add SIP RPC --- livekit/livekit_sip.pb.go | 789 +++++++++++++++++++++-------------- livekit/livekit_sip.twirp.go | 117 +++--- livekit_sip.proto | 36 +- magefile.go | 1 + rpc/agent.psrpc.go | 2 +- rpc/egress.psrpc.go | 2 +- rpc/ingress.psrpc.go | 2 +- rpc/io.pb.go | 482 ++++++++++++++++++--- rpc/io.proto | 45 ++ rpc/io.psrpc.go | 107 +++-- rpc/participant.psrpc.go | 4 +- rpc/room.psrpc.go | 4 +- rpc/signal.psrpc.go | 4 +- rpc/sip.pb.go | 214 ++++++++++ rpc/sip.proto | 31 ++ rpc/sip.psrpc.go | 136 ++++++ rpc/sip_client.go | 42 ++ utils/id.go | 25 +- 18 files changed, 1556 insertions(+), 487 deletions(-) create mode 100644 rpc/sip.pb.go create mode 100644 rpc/sip.proto create mode 100644 rpc/sip.psrpc.go create mode 100644 rpc/sip_client.go diff --git a/livekit/livekit_sip.pb.go b/livekit/livekit_sip.pb.go index a3a366b14..58ab39a46 100644 --- a/livekit/livekit_sip.pb.go +++ b/livekit/livekit_sip.pb.go @@ -41,14 +41,19 @@ type CreateSIPTrunkRequest struct { // CIDR or IPs that traffic is accepted from // An empty list means all inbound traffic is accepted. - Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // `To` value that will be used when making a call - To string `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` + InboundAddresses []string `protobuf:"bytes,1,rep,name=inbound_addresses,json=inboundAddresses,proto3" json:"inbound_addresses,omitempty"` + // IP that SIP INVITE is sent too + OutboundAddress string `protobuf:"bytes,2,opt,name=outbound_address,json=outboundAddress,proto3" json:"outbound_address,omitempty"` + // Number used to make outbound calls + OutboundNumber string `protobuf:"bytes,3,opt,name=outbound_number,json=outboundNumber,proto3" json:"outbound_number,omitempty"` // Accepted `To` values. This Trunk will only accept a call made to // these numbers. This allows you to have distinct Trunks for different phone // numbers at the same provider. - // An empty list means all dialed numbers are accepted. - AllowedDestinationsRegex []string `protobuf:"bytes,3,rep,name=allowed_destinations_regex,json=allowedDestinationsRegex,proto3" json:"allowed_destinations_regex,omitempty"` + InboundNumbersRegex []string `protobuf:"bytes,4,rep,name=inbound_numbers_regex,json=inboundNumbersRegex,proto3" json:"inbound_numbers_regex,omitempty"` + // Username and password used to authenticate SIP invites + // May be empty to have no Authentication + Username string `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"` + Password string `protobuf:"bytes,6,opt,name=password,proto3" json:"password,omitempty"` } func (x *CreateSIPTrunkRequest) Reset() { @@ -83,33 +88,57 @@ func (*CreateSIPTrunkRequest) Descriptor() ([]byte, []int) { return file_livekit_sip_proto_rawDescGZIP(), []int{0} } -func (x *CreateSIPTrunkRequest) GetAddresses() []string { +func (x *CreateSIPTrunkRequest) GetInboundAddresses() []string { if x != nil { - return x.Addresses + return x.InboundAddresses } return nil } -func (x *CreateSIPTrunkRequest) GetTo() string { +func (x *CreateSIPTrunkRequest) GetOutboundAddress() string { if x != nil { - return x.To + return x.OutboundAddress } return "" } -func (x *CreateSIPTrunkRequest) GetAllowedDestinationsRegex() []string { +func (x *CreateSIPTrunkRequest) GetOutboundNumber() string { if x != nil { - return x.AllowedDestinationsRegex + return x.OutboundNumber + } + return "" +} + +func (x *CreateSIPTrunkRequest) GetInboundNumbersRegex() []string { + if x != nil { + return x.InboundNumbersRegex } return nil } +func (x *CreateSIPTrunkRequest) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *CreateSIPTrunkRequest) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + type SIPTrunkInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SipTrunkId string `protobuf:"bytes,1,opt,name=sip_trunk_id,json=sipTrunkId,proto3" json:"sip_trunk_id,omitempty"` + SipTrunkId string `protobuf:"bytes,1,opt,name=sip_trunk_id,json=sipTrunkId,proto3" json:"sip_trunk_id,omitempty"` + Addresses []string `protobuf:"bytes,2,rep,name=addresses,proto3" json:"addresses,omitempty"` + To string `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"` + AllowedDestinationsRegex []string `protobuf:"bytes,4,rep,name=allowed_destinations_regex,json=allowedDestinationsRegex,proto3" json:"allowed_destinations_regex,omitempty"` } func (x *SIPTrunkInfo) Reset() { @@ -151,6 +180,27 @@ func (x *SIPTrunkInfo) GetSipTrunkId() string { return "" } +func (x *SIPTrunkInfo) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +func (x *SIPTrunkInfo) GetTo() string { + if x != nil { + return x.To + } + return "" +} + +func (x *SIPTrunkInfo) GetAllowedDestinationsRegex() []string { + if x != nil { + return x.AllowedDestinationsRegex + } + return nil +} + type ListSIPTrunkRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -454,27 +504,21 @@ func (x *SIPDispatchRuleIndividual) GetPin() string { return "" } -type CreateSIPDispatchRuleRequest struct { +type SIPDispatchRule struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Instrument: + // Types that are assignable to Rule: // - // *CreateSIPDispatchRuleRequest_DispatchRuleDirect - // *CreateSIPDispatchRuleRequest_DispatchRulePin - // *CreateSIPDispatchRuleRequest_DispatchRuleIndividual - Instrument isCreateSIPDispatchRuleRequest_Instrument `protobuf_oneof:"instrument"` - // What trunks are accepted for this dispatch rule - // If empty all trunks will match this dispatch rule - TrunkIds []string `protobuf:"bytes,4,rep,name=trunk_ids,json=trunkIds,proto3" json:"trunk_ids,omitempty"` - // By default the From value (Phone number) is used as the participant identity - // If true a random value will be used instead - HidePhoneNumber bool `protobuf:"varint,6,opt,name=hide_phone_number,json=hidePhoneNumber,proto3" json:"hide_phone_number,omitempty"` + // *SIPDispatchRule_DispatchRuleDirect + // *SIPDispatchRule_DispatchRulePin + // *SIPDispatchRule_DispatchRuleIndividual + Rule isSIPDispatchRule_Rule `protobuf_oneof:"rule"` } -func (x *CreateSIPDispatchRuleRequest) Reset() { - *x = CreateSIPDispatchRuleRequest{} +func (x *SIPDispatchRule) Reset() { + *x = SIPDispatchRule{} if protoimpl.UnsafeEnabled { mi := &file_livekit_sip_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -482,13 +526,13 @@ func (x *CreateSIPDispatchRuleRequest) Reset() { } } -func (x *CreateSIPDispatchRuleRequest) String() string { +func (x *SIPDispatchRule) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateSIPDispatchRuleRequest) ProtoMessage() {} +func (*SIPDispatchRule) ProtoMessage() {} -func (x *CreateSIPDispatchRuleRequest) ProtoReflect() protoreflect.Message { +func (x *SIPDispatchRule) ProtoReflect() protoreflect.Message { mi := &file_livekit_sip_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -500,80 +544,132 @@ func (x *CreateSIPDispatchRuleRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateSIPDispatchRuleRequest.ProtoReflect.Descriptor instead. -func (*CreateSIPDispatchRuleRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use SIPDispatchRule.ProtoReflect.Descriptor instead. +func (*SIPDispatchRule) Descriptor() ([]byte, []int) { return file_livekit_sip_proto_rawDescGZIP(), []int{8} } -func (m *CreateSIPDispatchRuleRequest) GetInstrument() isCreateSIPDispatchRuleRequest_Instrument { +func (m *SIPDispatchRule) GetRule() isSIPDispatchRule_Rule { if m != nil { - return m.Instrument + return m.Rule } return nil } -func (x *CreateSIPDispatchRuleRequest) GetDispatchRuleDirect() *SIPDispatchRuleDirect { - if x, ok := x.GetInstrument().(*CreateSIPDispatchRuleRequest_DispatchRuleDirect); ok { +func (x *SIPDispatchRule) GetDispatchRuleDirect() *SIPDispatchRuleDirect { + if x, ok := x.GetRule().(*SIPDispatchRule_DispatchRuleDirect); ok { return x.DispatchRuleDirect } return nil } -func (x *CreateSIPDispatchRuleRequest) GetDispatchRulePin() *SIPDispatchRulePin { - if x, ok := x.GetInstrument().(*CreateSIPDispatchRuleRequest_DispatchRulePin); ok { +func (x *SIPDispatchRule) GetDispatchRulePin() *SIPDispatchRulePin { + if x, ok := x.GetRule().(*SIPDispatchRule_DispatchRulePin); ok { return x.DispatchRulePin } return nil } -func (x *CreateSIPDispatchRuleRequest) GetDispatchRuleIndividual() *SIPDispatchRuleIndividual { - if x, ok := x.GetInstrument().(*CreateSIPDispatchRuleRequest_DispatchRuleIndividual); ok { +func (x *SIPDispatchRule) GetDispatchRuleIndividual() *SIPDispatchRuleIndividual { + if x, ok := x.GetRule().(*SIPDispatchRule_DispatchRuleIndividual); ok { return x.DispatchRuleIndividual } return nil } -func (x *CreateSIPDispatchRuleRequest) GetTrunkIds() []string { - if x != nil { - return x.TrunkIds - } - return nil -} - -func (x *CreateSIPDispatchRuleRequest) GetHidePhoneNumber() bool { - if x != nil { - return x.HidePhoneNumber - } - return false -} - -type isCreateSIPDispatchRuleRequest_Instrument interface { - isCreateSIPDispatchRuleRequest_Instrument() +type isSIPDispatchRule_Rule interface { + isSIPDispatchRule_Rule() } -type CreateSIPDispatchRuleRequest_DispatchRuleDirect struct { +type SIPDispatchRule_DispatchRuleDirect struct { // SIPDispatchRuleDirect is a `SIP Dispatch Rule` that puts a user directly into a room // This places users into an existing room. Optionally you can require a pin before a user can // enter the room DispatchRuleDirect *SIPDispatchRuleDirect `protobuf:"bytes,1,opt,name=dispatch_rule_direct,json=dispatchRuleDirect,proto3,oneof"` } -type CreateSIPDispatchRuleRequest_DispatchRulePin struct { +type SIPDispatchRule_DispatchRulePin struct { // SIPDispatchRulePin is a `SIP Dispatch Rule` that allows a user to choose between multiple rooms. // The user is prompted for a pin and then can enter a individual room. DispatchRulePin *SIPDispatchRulePin `protobuf:"bytes,2,opt,name=dispatch_rule_pin,json=dispatchRulePin,proto3,oneof"` } -type CreateSIPDispatchRuleRequest_DispatchRuleIndividual struct { +type SIPDispatchRule_DispatchRuleIndividual struct { // SIPDispatchRuleIndividual is a `SIP Dispatch Rule` that creates a new room for each caller. DispatchRuleIndividual *SIPDispatchRuleIndividual `protobuf:"bytes,3,opt,name=dispatch_rule_individual,json=dispatchRuleIndividual,proto3,oneof"` } -func (*CreateSIPDispatchRuleRequest_DispatchRuleDirect) isCreateSIPDispatchRuleRequest_Instrument() {} +func (*SIPDispatchRule_DispatchRuleDirect) isSIPDispatchRule_Rule() {} + +func (*SIPDispatchRule_DispatchRulePin) isSIPDispatchRule_Rule() {} + +func (*SIPDispatchRule_DispatchRuleIndividual) isSIPDispatchRule_Rule() {} -func (*CreateSIPDispatchRuleRequest_DispatchRulePin) isCreateSIPDispatchRuleRequest_Instrument() {} +type CreateSIPDispatchRuleRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (*CreateSIPDispatchRuleRequest_DispatchRuleIndividual) isCreateSIPDispatchRuleRequest_Instrument() { + Rule *SIPDispatchRule `protobuf:"bytes,1,opt,name=rule,proto3" json:"rule,omitempty"` + // What trunks are accepted for this dispatch rule + // If empty all trunks will match this dispatch rule + TrunkIds []string `protobuf:"bytes,2,rep,name=trunk_ids,json=trunkIds,proto3" json:"trunk_ids,omitempty"` + // By default the From value (Phone number) is used as the participant identity + // If true a random value will be used instead + HidePhoneNumber bool `protobuf:"varint,3,opt,name=hide_phone_number,json=hidePhoneNumber,proto3" json:"hide_phone_number,omitempty"` +} + +func (x *CreateSIPDispatchRuleRequest) Reset() { + *x = CreateSIPDispatchRuleRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_sip_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSIPDispatchRuleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSIPDispatchRuleRequest) ProtoMessage() {} + +func (x *CreateSIPDispatchRuleRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_sip_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateSIPDispatchRuleRequest.ProtoReflect.Descriptor instead. +func (*CreateSIPDispatchRuleRequest) Descriptor() ([]byte, []int) { + return file_livekit_sip_proto_rawDescGZIP(), []int{9} +} + +func (x *CreateSIPDispatchRuleRequest) GetRule() *SIPDispatchRule { + if x != nil { + return x.Rule + } + return nil +} + +func (x *CreateSIPDispatchRuleRequest) GetTrunkIds() []string { + if x != nil { + return x.TrunkIds + } + return nil +} + +func (x *CreateSIPDispatchRuleRequest) GetHidePhoneNumber() bool { + if x != nil { + return x.HidePhoneNumber + } + return false } type SIPDispatchRuleInfo struct { @@ -581,13 +677,16 @@ type SIPDispatchRuleInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SipDispatchRuleId string `protobuf:"bytes,1,opt,name=sip_dispatch_rule_id,json=sipDispatchRuleId,proto3" json:"sip_dispatch_rule_id,omitempty"` + SipDispatchRuleId string `protobuf:"bytes,1,opt,name=sip_dispatch_rule_id,json=sipDispatchRuleId,proto3" json:"sip_dispatch_rule_id,omitempty"` + Rule *SIPDispatchRule `protobuf:"bytes,2,opt,name=rule,proto3" json:"rule,omitempty"` + TrunkIds []string `protobuf:"bytes,3,rep,name=trunk_ids,json=trunkIds,proto3" json:"trunk_ids,omitempty"` + HidePhoneNumber bool `protobuf:"varint,4,opt,name=hide_phone_number,json=hidePhoneNumber,proto3" json:"hide_phone_number,omitempty"` } func (x *SIPDispatchRuleInfo) Reset() { *x = SIPDispatchRuleInfo{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[9] + mi := &file_livekit_sip_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -600,7 +699,7 @@ func (x *SIPDispatchRuleInfo) String() string { func (*SIPDispatchRuleInfo) ProtoMessage() {} func (x *SIPDispatchRuleInfo) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[9] + mi := &file_livekit_sip_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -613,7 +712,7 @@ func (x *SIPDispatchRuleInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SIPDispatchRuleInfo.ProtoReflect.Descriptor instead. func (*SIPDispatchRuleInfo) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{9} + return file_livekit_sip_proto_rawDescGZIP(), []int{10} } func (x *SIPDispatchRuleInfo) GetSipDispatchRuleId() string { @@ -623,6 +722,27 @@ func (x *SIPDispatchRuleInfo) GetSipDispatchRuleId() string { return "" } +func (x *SIPDispatchRuleInfo) GetRule() *SIPDispatchRule { + if x != nil { + return x.Rule + } + return nil +} + +func (x *SIPDispatchRuleInfo) GetTrunkIds() []string { + if x != nil { + return x.TrunkIds + } + return nil +} + +func (x *SIPDispatchRuleInfo) GetHidePhoneNumber() bool { + if x != nil { + return x.HidePhoneNumber + } + return false +} + type ListSIPDispatchRuleRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -632,7 +752,7 @@ type ListSIPDispatchRuleRequest struct { func (x *ListSIPDispatchRuleRequest) Reset() { *x = ListSIPDispatchRuleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[10] + mi := &file_livekit_sip_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -645,7 +765,7 @@ func (x *ListSIPDispatchRuleRequest) String() string { func (*ListSIPDispatchRuleRequest) ProtoMessage() {} func (x *ListSIPDispatchRuleRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[10] + mi := &file_livekit_sip_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -658,7 +778,7 @@ func (x *ListSIPDispatchRuleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSIPDispatchRuleRequest.ProtoReflect.Descriptor instead. func (*ListSIPDispatchRuleRequest) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{10} + return file_livekit_sip_proto_rawDescGZIP(), []int{11} } type ListSIPDispatchRuleResponse struct { @@ -672,7 +792,7 @@ type ListSIPDispatchRuleResponse struct { func (x *ListSIPDispatchRuleResponse) Reset() { *x = ListSIPDispatchRuleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[11] + mi := &file_livekit_sip_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -685,7 +805,7 @@ func (x *ListSIPDispatchRuleResponse) String() string { func (*ListSIPDispatchRuleResponse) ProtoMessage() {} func (x *ListSIPDispatchRuleResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[11] + mi := &file_livekit_sip_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -698,7 +818,7 @@ func (x *ListSIPDispatchRuleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSIPDispatchRuleResponse.ProtoReflect.Descriptor instead. func (*ListSIPDispatchRuleResponse) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{11} + return file_livekit_sip_proto_rawDescGZIP(), []int{12} } func (x *ListSIPDispatchRuleResponse) GetItems() []*SIPDispatchRuleInfo { @@ -719,7 +839,7 @@ type DeleteSIPDispatchRuleRequest struct { func (x *DeleteSIPDispatchRuleRequest) Reset() { *x = DeleteSIPDispatchRuleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[12] + mi := &file_livekit_sip_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -732,7 +852,7 @@ func (x *DeleteSIPDispatchRuleRequest) String() string { func (*DeleteSIPDispatchRuleRequest) ProtoMessage() {} func (x *DeleteSIPDispatchRuleRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[12] + mi := &file_livekit_sip_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -745,7 +865,7 @@ func (x *DeleteSIPDispatchRuleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteSIPDispatchRuleRequest.ProtoReflect.Descriptor instead. func (*DeleteSIPDispatchRuleRequest) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{12} + return file_livekit_sip_proto_rawDescGZIP(), []int{13} } func (x *DeleteSIPDispatchRuleRequest) GetSipDispatchRuleId() string { @@ -771,7 +891,7 @@ type CreateSIPParticipantRequest struct { func (x *CreateSIPParticipantRequest) Reset() { *x = CreateSIPParticipantRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[13] + mi := &file_livekit_sip_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -784,7 +904,7 @@ func (x *CreateSIPParticipantRequest) String() string { func (*CreateSIPParticipantRequest) ProtoMessage() {} func (x *CreateSIPParticipantRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[13] + mi := &file_livekit_sip_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -797,7 +917,7 @@ func (x *CreateSIPParticipantRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateSIPParticipantRequest.ProtoReflect.Descriptor instead. func (*CreateSIPParticipantRequest) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{13} + return file_livekit_sip_proto_rawDescGZIP(), []int{14} } func (x *CreateSIPParticipantRequest) GetRoomName() string { @@ -825,7 +945,7 @@ type SIPParticipantInfo struct { func (x *SIPParticipantInfo) Reset() { *x = SIPParticipantInfo{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[14] + mi := &file_livekit_sip_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -838,7 +958,7 @@ func (x *SIPParticipantInfo) String() string { func (*SIPParticipantInfo) ProtoMessage() {} func (x *SIPParticipantInfo) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[14] + mi := &file_livekit_sip_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -851,7 +971,7 @@ func (x *SIPParticipantInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SIPParticipantInfo.ProtoReflect.Descriptor instead. func (*SIPParticipantInfo) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{14} + return file_livekit_sip_proto_rawDescGZIP(), []int{15} } func (x *SIPParticipantInfo) GetSipParticipantId() string { @@ -876,7 +996,7 @@ type SendSIPParticipantDTMFRequest struct { func (x *SendSIPParticipantDTMFRequest) Reset() { *x = SendSIPParticipantDTMFRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[15] + mi := &file_livekit_sip_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -889,7 +1009,7 @@ func (x *SendSIPParticipantDTMFRequest) String() string { func (*SendSIPParticipantDTMFRequest) ProtoMessage() {} func (x *SendSIPParticipantDTMFRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[15] + mi := &file_livekit_sip_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -902,7 +1022,7 @@ func (x *SendSIPParticipantDTMFRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendSIPParticipantDTMFRequest.ProtoReflect.Descriptor instead. func (*SendSIPParticipantDTMFRequest) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{15} + return file_livekit_sip_proto_rawDescGZIP(), []int{16} } func (x *SendSIPParticipantDTMFRequest) GetSipParticipantId() string { @@ -930,7 +1050,7 @@ type SIPParticipantDTMFInfo struct { func (x *SIPParticipantDTMFInfo) Reset() { *x = SIPParticipantDTMFInfo{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[16] + mi := &file_livekit_sip_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -943,7 +1063,7 @@ func (x *SIPParticipantDTMFInfo) String() string { func (*SIPParticipantDTMFInfo) ProtoMessage() {} func (x *SIPParticipantDTMFInfo) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[16] + mi := &file_livekit_sip_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -956,7 +1076,7 @@ func (x *SIPParticipantDTMFInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SIPParticipantDTMFInfo.ProtoReflect.Descriptor instead. func (*SIPParticipantDTMFInfo) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{16} + return file_livekit_sip_proto_rawDescGZIP(), []int{17} } func (x *SIPParticipantDTMFInfo) GetSipParticipantId() string { @@ -975,7 +1095,7 @@ type ListSIPParticipantRequest struct { func (x *ListSIPParticipantRequest) Reset() { *x = ListSIPParticipantRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[17] + mi := &file_livekit_sip_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -988,7 +1108,7 @@ func (x *ListSIPParticipantRequest) String() string { func (*ListSIPParticipantRequest) ProtoMessage() {} func (x *ListSIPParticipantRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[17] + mi := &file_livekit_sip_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1001,7 +1121,7 @@ func (x *ListSIPParticipantRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSIPParticipantRequest.ProtoReflect.Descriptor instead. func (*ListSIPParticipantRequest) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{17} + return file_livekit_sip_proto_rawDescGZIP(), []int{18} } type ListSIPParticipantResponse struct { @@ -1015,7 +1135,7 @@ type ListSIPParticipantResponse struct { func (x *ListSIPParticipantResponse) Reset() { *x = ListSIPParticipantResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[18] + mi := &file_livekit_sip_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1028,7 +1148,7 @@ func (x *ListSIPParticipantResponse) String() string { func (*ListSIPParticipantResponse) ProtoMessage() {} func (x *ListSIPParticipantResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[18] + mi := &file_livekit_sip_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1041,7 +1161,7 @@ func (x *ListSIPParticipantResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSIPParticipantResponse.ProtoReflect.Descriptor instead. func (*ListSIPParticipantResponse) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{18} + return file_livekit_sip_proto_rawDescGZIP(), []int{19} } func (x *ListSIPParticipantResponse) GetItems() []*SIPParticipantInfo { @@ -1062,7 +1182,7 @@ type DeleteSIPParticipantRequest struct { func (x *DeleteSIPParticipantRequest) Reset() { *x = DeleteSIPParticipantRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[19] + mi := &file_livekit_sip_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1075,7 +1195,7 @@ func (x *DeleteSIPParticipantRequest) String() string { func (*DeleteSIPParticipantRequest) ProtoMessage() {} func (x *DeleteSIPParticipantRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[19] + mi := &file_livekit_sip_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1088,7 +1208,7 @@ func (x *DeleteSIPParticipantRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteSIPParticipantRequest.ProtoReflect.Descriptor instead. func (*DeleteSIPParticipantRequest) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{19} + return file_livekit_sip_proto_rawDescGZIP(), []int{20} } func (x *DeleteSIPParticipantRequest) GetSipParticipantId() string { @@ -1102,176 +1222,202 @@ var File_livekit_sip_proto protoreflect.FileDescriptor var file_livekit_sip_proto_rawDesc = []byte{ 0x0a, 0x11, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x5f, 0x73, 0x69, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x22, 0x83, 0x01, 0x0a, + 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x22, 0x84, 0x02, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x10, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, + 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x22, 0x9c, 0x01, 0x0a, 0x0c, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, + 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, + 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x3c, 0x0a, 0x1a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x67, - 0x65, 0x78, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x65, 0x78, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x67, - 0x65, 0x78, 0x22, 0x30, 0x0a, 0x0c, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, - 0x6e, 0x6b, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, - 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x14, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, - 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x22, 0x39, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, - 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, - 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x15, 0x53, - 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x70, 0x69, 0x6e, 0x22, 0x43, 0x0a, 0x12, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x50, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, - 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, - 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x4e, 0x0a, 0x19, 0x53, 0x49, 0x50, 0x44, - 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x76, - 0x69, 0x64, 0x75, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x6f, 0x6f, 0x6d, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0xf4, 0x02, 0x0a, 0x1c, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x14, 0x64, 0x69, 0x73, - 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, - 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x12, 0x64, 0x69, 0x73, 0x70, 0x61, - 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x49, 0x0a, - 0x11, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x70, - 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x65, 0x78, 0x22, 0x15, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x14, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, + 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x39, + 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, + 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x15, 0x53, 0x49, 0x50, + 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, + 0x6e, 0x22, 0x43, 0x0a, 0x12, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x75, 0x6c, 0x65, 0x50, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x4e, 0x0a, 0x19, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, + 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, + 0x75, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x6f, 0x6f, 0x6d, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x22, 0x98, 0x02, 0x0a, 0x0f, 0x53, 0x49, 0x50, 0x44, 0x69, + 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x52, 0x0a, 0x14, 0x64, 0x69, + 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, - 0x6c, 0x65, 0x50, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x75, 0x6c, 0x65, 0x50, 0x69, 0x6e, 0x12, 0x5e, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x70, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, - 0x64, 0x75, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x69, 0x76, - 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x48, 0x00, - 0x52, 0x16, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, - 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x75, 0x6e, - 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x75, - 0x6e, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0f, 0x68, 0x69, 0x64, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x46, 0x0a, 0x13, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, - 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x69, 0x70, 0x5f, 0x64, 0x69, - 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x69, 0x70, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, - 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, + 0x6c, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x12, 0x64, 0x69, 0x73, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x49, + 0x0a, 0x11, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x70, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x75, 0x6c, 0x65, 0x50, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x50, 0x69, 0x6e, 0x12, 0x5e, 0x0a, 0x18, 0x64, 0x69, 0x73, + 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x76, + 0x69, 0x64, 0x75, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x48, + 0x00, 0x52, 0x16, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, + 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x72, 0x75, 0x6c, + 0x65, 0x22, 0x95, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, + 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, + 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, + 0x11, 0x68, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x69, 0x64, 0x65, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x4f, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x69, 0x70, 0x5f, - 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x69, 0x70, 0x44, 0x69, 0x73, 0x70, 0x61, - 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x1b, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, - 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, - 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, - 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x49, 0x50, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, - 0x12, 0x73, 0x69, 0x70, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x69, 0x70, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x1d, 0x53, - 0x65, 0x6e, 0x64, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x44, 0x54, 0x4d, 0x46, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, - 0x73, 0x69, 0x70, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x69, 0x70, 0x50, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, - 0x67, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x69, - 0x74, 0x73, 0x22, 0x46, 0x0a, 0x16, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x44, 0x54, 0x4d, 0x46, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x12, - 0x73, 0x69, 0x70, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x69, 0x70, 0x50, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x4c, 0x69, + 0x6f, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x69, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x11, 0x73, 0x69, 0x70, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, + 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, + 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, + 0x11, 0x68, 0x69, 0x64, 0x65, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x69, 0x64, 0x65, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x4f, 0x0a, 0x1c, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x69, + 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x69, 0x70, 0x44, 0x69, 0x73, + 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x1b, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, + 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, + 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x49, 0x50, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x2c, 0x0a, 0x12, 0x73, 0x69, 0x70, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x69, 0x70, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x65, 0x0a, + 0x1d, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x44, 0x54, 0x4d, 0x46, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, + 0x0a, 0x12, 0x73, 0x69, 0x70, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x69, 0x70, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x64, 0x69, 0x67, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, + 0x67, 0x69, 0x74, 0x73, 0x22, 0x46, 0x0a, 0x16, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x44, 0x54, 0x4d, 0x46, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, + 0x0a, 0x12, 0x73, 0x69, 0x70, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x69, 0x70, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x1b, 0x0a, 0x19, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x1a, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x4b, 0x0a, 0x1b, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x69, 0x70, + 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x69, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x32, 0xfa, 0x06, 0x0a, 0x03, 0x53, 0x49, 0x50, 0x12, + 0x47, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, + 0x6b, 0x12, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x54, + 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, + 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, + 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x60, 0x0a, 0x13, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x75, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, + 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x14, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, + 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x61, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x53, + 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x44, 0x54, 0x4d, + 0x46, 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x44, 0x54, + 0x4d, 0x46, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x44, 0x54, 0x4d, 0x46, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, - 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x4b, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, + 0x12, 0x22, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x12, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x69, 0x70, 0x5f, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x69, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x49, 0x64, 0x32, 0xfa, 0x06, 0x0a, 0x03, 0x53, 0x49, 0x50, 0x12, 0x47, 0x0a, - 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, - 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, - 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, - 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, - 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x15, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x60, 0x0a, 0x13, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, - 0x65, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x14, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x61, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x49, 0x50, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x44, 0x54, 0x4d, 0x46, 0x12, - 0x26, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x49, - 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x44, 0x54, 0x4d, 0x46, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x44, 0x54, 0x4d, 0x46, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x22, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, - 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x42, 0x46, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, - 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, - 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x46, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, + 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, + 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1286,7 +1432,7 @@ func file_livekit_sip_proto_rawDescGZIP() []byte { return file_livekit_sip_proto_rawDescData } -var file_livekit_sip_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_livekit_sip_proto_msgTypes = make([]protoimpl.MessageInfo, 21) var file_livekit_sip_proto_goTypes = []interface{}{ (*CreateSIPTrunkRequest)(nil), // 0: livekit.CreateSIPTrunkRequest (*SIPTrunkInfo)(nil), // 1: livekit.SIPTrunkInfo @@ -1296,51 +1442,54 @@ var file_livekit_sip_proto_goTypes = []interface{}{ (*SIPDispatchRuleDirect)(nil), // 5: livekit.SIPDispatchRuleDirect (*SIPDispatchRulePin)(nil), // 6: livekit.SIPDispatchRulePin (*SIPDispatchRuleIndividual)(nil), // 7: livekit.SIPDispatchRuleIndividual - (*CreateSIPDispatchRuleRequest)(nil), // 8: livekit.CreateSIPDispatchRuleRequest - (*SIPDispatchRuleInfo)(nil), // 9: livekit.SIPDispatchRuleInfo - (*ListSIPDispatchRuleRequest)(nil), // 10: livekit.ListSIPDispatchRuleRequest - (*ListSIPDispatchRuleResponse)(nil), // 11: livekit.ListSIPDispatchRuleResponse - (*DeleteSIPDispatchRuleRequest)(nil), // 12: livekit.DeleteSIPDispatchRuleRequest - (*CreateSIPParticipantRequest)(nil), // 13: livekit.CreateSIPParticipantRequest - (*SIPParticipantInfo)(nil), // 14: livekit.SIPParticipantInfo - (*SendSIPParticipantDTMFRequest)(nil), // 15: livekit.SendSIPParticipantDTMFRequest - (*SIPParticipantDTMFInfo)(nil), // 16: livekit.SIPParticipantDTMFInfo - (*ListSIPParticipantRequest)(nil), // 17: livekit.ListSIPParticipantRequest - (*ListSIPParticipantResponse)(nil), // 18: livekit.ListSIPParticipantResponse - (*DeleteSIPParticipantRequest)(nil), // 19: livekit.DeleteSIPParticipantRequest + (*SIPDispatchRule)(nil), // 8: livekit.SIPDispatchRule + (*CreateSIPDispatchRuleRequest)(nil), // 9: livekit.CreateSIPDispatchRuleRequest + (*SIPDispatchRuleInfo)(nil), // 10: livekit.SIPDispatchRuleInfo + (*ListSIPDispatchRuleRequest)(nil), // 11: livekit.ListSIPDispatchRuleRequest + (*ListSIPDispatchRuleResponse)(nil), // 12: livekit.ListSIPDispatchRuleResponse + (*DeleteSIPDispatchRuleRequest)(nil), // 13: livekit.DeleteSIPDispatchRuleRequest + (*CreateSIPParticipantRequest)(nil), // 14: livekit.CreateSIPParticipantRequest + (*SIPParticipantInfo)(nil), // 15: livekit.SIPParticipantInfo + (*SendSIPParticipantDTMFRequest)(nil), // 16: livekit.SendSIPParticipantDTMFRequest + (*SIPParticipantDTMFInfo)(nil), // 17: livekit.SIPParticipantDTMFInfo + (*ListSIPParticipantRequest)(nil), // 18: livekit.ListSIPParticipantRequest + (*ListSIPParticipantResponse)(nil), // 19: livekit.ListSIPParticipantResponse + (*DeleteSIPParticipantRequest)(nil), // 20: livekit.DeleteSIPParticipantRequest } var file_livekit_sip_proto_depIdxs = []int32{ 1, // 0: livekit.ListSIPTrunkResponse.items:type_name -> livekit.SIPTrunkInfo - 5, // 1: livekit.CreateSIPDispatchRuleRequest.dispatch_rule_direct:type_name -> livekit.SIPDispatchRuleDirect - 6, // 2: livekit.CreateSIPDispatchRuleRequest.dispatch_rule_pin:type_name -> livekit.SIPDispatchRulePin - 7, // 3: livekit.CreateSIPDispatchRuleRequest.dispatch_rule_individual:type_name -> livekit.SIPDispatchRuleIndividual - 9, // 4: livekit.ListSIPDispatchRuleResponse.items:type_name -> livekit.SIPDispatchRuleInfo - 14, // 5: livekit.ListSIPParticipantResponse.items:type_name -> livekit.SIPParticipantInfo - 0, // 6: livekit.SIP.CreateSIPTrunk:input_type -> livekit.CreateSIPTrunkRequest - 2, // 7: livekit.SIP.ListSIPTrunk:input_type -> livekit.ListSIPTrunkRequest - 4, // 8: livekit.SIP.DeleteSIPTrunk:input_type -> livekit.DeleteSIPTrunkRequest - 8, // 9: livekit.SIP.CreateSIPDispatchRule:input_type -> livekit.CreateSIPDispatchRuleRequest - 10, // 10: livekit.SIP.ListSIPDispatchRule:input_type -> livekit.ListSIPDispatchRuleRequest - 12, // 11: livekit.SIP.DeleteSIPDispatchRule:input_type -> livekit.DeleteSIPDispatchRuleRequest - 13, // 12: livekit.SIP.CreateSIPParticipant:input_type -> livekit.CreateSIPParticipantRequest - 15, // 13: livekit.SIP.SendSIPParticipantDTMF:input_type -> livekit.SendSIPParticipantDTMFRequest - 17, // 14: livekit.SIP.ListSIPParticipant:input_type -> livekit.ListSIPParticipantRequest - 19, // 15: livekit.SIP.DeleteSIPParticipant:input_type -> livekit.DeleteSIPParticipantRequest - 1, // 16: livekit.SIP.CreateSIPTrunk:output_type -> livekit.SIPTrunkInfo - 3, // 17: livekit.SIP.ListSIPTrunk:output_type -> livekit.ListSIPTrunkResponse - 1, // 18: livekit.SIP.DeleteSIPTrunk:output_type -> livekit.SIPTrunkInfo - 9, // 19: livekit.SIP.CreateSIPDispatchRule:output_type -> livekit.SIPDispatchRuleInfo - 11, // 20: livekit.SIP.ListSIPDispatchRule:output_type -> livekit.ListSIPDispatchRuleResponse - 9, // 21: livekit.SIP.DeleteSIPDispatchRule:output_type -> livekit.SIPDispatchRuleInfo - 14, // 22: livekit.SIP.CreateSIPParticipant:output_type -> livekit.SIPParticipantInfo - 16, // 23: livekit.SIP.SendSIPParticipantDTMF:output_type -> livekit.SIPParticipantDTMFInfo - 18, // 24: livekit.SIP.ListSIPParticipant:output_type -> livekit.ListSIPParticipantResponse - 14, // 25: livekit.SIP.DeleteSIPParticipant:output_type -> livekit.SIPParticipantInfo - 16, // [16:26] is the sub-list for method output_type - 6, // [6:16] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 5, // 1: livekit.SIPDispatchRule.dispatch_rule_direct:type_name -> livekit.SIPDispatchRuleDirect + 6, // 2: livekit.SIPDispatchRule.dispatch_rule_pin:type_name -> livekit.SIPDispatchRulePin + 7, // 3: livekit.SIPDispatchRule.dispatch_rule_individual:type_name -> livekit.SIPDispatchRuleIndividual + 8, // 4: livekit.CreateSIPDispatchRuleRequest.rule:type_name -> livekit.SIPDispatchRule + 8, // 5: livekit.SIPDispatchRuleInfo.rule:type_name -> livekit.SIPDispatchRule + 10, // 6: livekit.ListSIPDispatchRuleResponse.items:type_name -> livekit.SIPDispatchRuleInfo + 15, // 7: livekit.ListSIPParticipantResponse.items:type_name -> livekit.SIPParticipantInfo + 0, // 8: livekit.SIP.CreateSIPTrunk:input_type -> livekit.CreateSIPTrunkRequest + 2, // 9: livekit.SIP.ListSIPTrunk:input_type -> livekit.ListSIPTrunkRequest + 4, // 10: livekit.SIP.DeleteSIPTrunk:input_type -> livekit.DeleteSIPTrunkRequest + 9, // 11: livekit.SIP.CreateSIPDispatchRule:input_type -> livekit.CreateSIPDispatchRuleRequest + 11, // 12: livekit.SIP.ListSIPDispatchRule:input_type -> livekit.ListSIPDispatchRuleRequest + 13, // 13: livekit.SIP.DeleteSIPDispatchRule:input_type -> livekit.DeleteSIPDispatchRuleRequest + 14, // 14: livekit.SIP.CreateSIPParticipant:input_type -> livekit.CreateSIPParticipantRequest + 16, // 15: livekit.SIP.SendSIPParticipantDTMF:input_type -> livekit.SendSIPParticipantDTMFRequest + 18, // 16: livekit.SIP.ListSIPParticipant:input_type -> livekit.ListSIPParticipantRequest + 20, // 17: livekit.SIP.DeleteSIPParticipant:input_type -> livekit.DeleteSIPParticipantRequest + 1, // 18: livekit.SIP.CreateSIPTrunk:output_type -> livekit.SIPTrunkInfo + 3, // 19: livekit.SIP.ListSIPTrunk:output_type -> livekit.ListSIPTrunkResponse + 1, // 20: livekit.SIP.DeleteSIPTrunk:output_type -> livekit.SIPTrunkInfo + 10, // 21: livekit.SIP.CreateSIPDispatchRule:output_type -> livekit.SIPDispatchRuleInfo + 12, // 22: livekit.SIP.ListSIPDispatchRule:output_type -> livekit.ListSIPDispatchRuleResponse + 10, // 23: livekit.SIP.DeleteSIPDispatchRule:output_type -> livekit.SIPDispatchRuleInfo + 15, // 24: livekit.SIP.CreateSIPParticipant:output_type -> livekit.SIPParticipantInfo + 17, // 25: livekit.SIP.SendSIPParticipantDTMF:output_type -> livekit.SIPParticipantDTMFInfo + 19, // 26: livekit.SIP.ListSIPParticipant:output_type -> livekit.ListSIPParticipantResponse + 15, // 27: livekit.SIP.DeleteSIPParticipant:output_type -> livekit.SIPParticipantInfo + 18, // [18:28] is the sub-list for method output_type + 8, // [8:18] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_livekit_sip_proto_init() } @@ -1446,7 +1595,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateSIPDispatchRuleRequest); i { + switch v := v.(*SIPDispatchRule); i { case 0: return &v.state case 1: @@ -1458,7 +1607,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SIPDispatchRuleInfo); i { + switch v := v.(*CreateSIPDispatchRuleRequest); i { case 0: return &v.state case 1: @@ -1470,7 +1619,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSIPDispatchRuleRequest); i { + switch v := v.(*SIPDispatchRuleInfo); i { case 0: return &v.state case 1: @@ -1482,7 +1631,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSIPDispatchRuleResponse); i { + switch v := v.(*ListSIPDispatchRuleRequest); i { case 0: return &v.state case 1: @@ -1494,7 +1643,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteSIPDispatchRuleRequest); i { + switch v := v.(*ListSIPDispatchRuleResponse); i { case 0: return &v.state case 1: @@ -1506,7 +1655,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateSIPParticipantRequest); i { + switch v := v.(*DeleteSIPDispatchRuleRequest); i { case 0: return &v.state case 1: @@ -1518,7 +1667,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SIPParticipantInfo); i { + switch v := v.(*CreateSIPParticipantRequest); i { case 0: return &v.state case 1: @@ -1530,7 +1679,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendSIPParticipantDTMFRequest); i { + switch v := v.(*SIPParticipantInfo); i { case 0: return &v.state case 1: @@ -1542,7 +1691,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SIPParticipantDTMFInfo); i { + switch v := v.(*SendSIPParticipantDTMFRequest); i { case 0: return &v.state case 1: @@ -1554,7 +1703,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSIPParticipantRequest); i { + switch v := v.(*SIPParticipantDTMFInfo); i { case 0: return &v.state case 1: @@ -1566,7 +1715,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSIPParticipantResponse); i { + switch v := v.(*ListSIPParticipantRequest); i { case 0: return &v.state case 1: @@ -1578,6 +1727,18 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSIPParticipantResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_sip_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteSIPParticipantRequest); i { case 0: return &v.state @@ -1591,9 +1752,9 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[8].OneofWrappers = []interface{}{ - (*CreateSIPDispatchRuleRequest_DispatchRuleDirect)(nil), - (*CreateSIPDispatchRuleRequest_DispatchRulePin)(nil), - (*CreateSIPDispatchRuleRequest_DispatchRuleIndividual)(nil), + (*SIPDispatchRule_DispatchRuleDirect)(nil), + (*SIPDispatchRule_DispatchRulePin)(nil), + (*SIPDispatchRule_DispatchRuleIndividual)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -1601,7 +1762,7 @@ func file_livekit_sip_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_livekit_sip_proto_rawDesc, NumEnums: 0, - NumMessages: 20, + NumMessages: 21, NumExtensions: 0, NumServices: 1, }, diff --git a/livekit/livekit_sip.twirp.go b/livekit/livekit_sip.twirp.go index a0fec9822..90c24505a 100644 --- a/livekit/livekit_sip.twirp.go +++ b/livekit/livekit_sip.twirp.go @@ -3028,59 +3028,66 @@ func (s *sIPServer) PathPrefix() string { } var twirpFileDescriptor3 = []byte{ - // 854 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcf, 0x73, 0xdb, 0x44, - 0x14, 0x8e, 0x6d, 0x08, 0xf1, 0x4b, 0x70, 0xeb, 0xad, 0xed, 0x51, 0x6d, 0x97, 0x7a, 0x94, 0xc2, - 0x64, 0x80, 0x71, 0xc0, 0x9c, 0xe8, 0x70, 0x4a, 0x3c, 0x6e, 0x3c, 0x29, 0xa9, 0x90, 0x7b, 0x29, - 0x13, 0x10, 0x8a, 0x77, 0x13, 0xef, 0x54, 0x5e, 0x09, 0xed, 0x2a, 0xf4, 0xce, 0x7f, 0xc3, 0x9f, - 0xc6, 0x99, 0x13, 0x27, 0x46, 0xf2, 0xea, 0xf7, 0x5a, 0x19, 0x73, 0xb3, 0xde, 0xbe, 0xfd, 0xf6, - 0xbd, 0x6f, 0xbf, 0x6f, 0x9f, 0xa1, 0xed, 0xd0, 0x7b, 0xf2, 0x9e, 0x0a, 0x8b, 0x53, 0x6f, 0xec, - 0xf9, 0xae, 0x70, 0xd1, 0x27, 0x32, 0xa4, 0xff, 0x59, 0x83, 0xee, 0xb9, 0x4f, 0x6c, 0x41, 0x16, - 0x73, 0xe3, 0xad, 0x1f, 0xb0, 0xf7, 0x26, 0xf9, 0x3d, 0x20, 0x5c, 0xa0, 0x21, 0x34, 0x6d, 0x8c, - 0x7d, 0xc2, 0x39, 0xe1, 0x5a, 0x6d, 0xd4, 0x38, 0x69, 0x9a, 0x69, 0x00, 0xb5, 0xa0, 0x2e, 0x5c, - 0xad, 0x3e, 0xaa, 0x9d, 0x34, 0xcd, 0xba, 0x70, 0xd1, 0x0f, 0xd0, 0xb7, 0x1d, 0xc7, 0xfd, 0x83, - 0x60, 0x0b, 0x13, 0x2e, 0x28, 0xb3, 0x05, 0x75, 0x19, 0xb7, 0x7c, 0x72, 0x47, 0x3e, 0x68, 0x8d, - 0x68, 0xbb, 0x26, 0x33, 0xa6, 0x99, 0x04, 0x33, 0x5c, 0xd7, 0xbf, 0x81, 0xa3, 0xf8, 0xf8, 0x39, - 0xbb, 0x75, 0xd1, 0x08, 0x8e, 0x38, 0xf5, 0x2c, 0x11, 0x06, 0x2c, 0x8a, 0xb5, 0x5a, 0x74, 0x0e, - 0x70, 0xea, 0x6d, 0x72, 0xb0, 0xde, 0x85, 0x27, 0xaf, 0x29, 0x17, 0x85, 0xa2, 0xf5, 0x73, 0xe8, - 0xe4, 0xc3, 0xdc, 0x73, 0x19, 0x27, 0xe8, 0x2b, 0xf8, 0x98, 0x0a, 0xb2, 0xde, 0x34, 0x72, 0x38, - 0xe9, 0x8e, 0x65, 0xff, 0xe3, 0xec, 0xb1, 0xe6, 0x26, 0x47, 0xff, 0x1e, 0xba, 0x53, 0xe2, 0x90, - 0x32, 0x25, 0x0f, 0x97, 0x35, 0x83, 0xee, 0x62, 0x6e, 0x4c, 0x29, 0xf7, 0x6c, 0xb1, 0x5c, 0x99, - 0x81, 0x43, 0xa6, 0xd4, 0x27, 0x4b, 0x81, 0x06, 0xd0, 0xf4, 0x5d, 0x77, 0x6d, 0x31, 0x7b, 0x4d, - 0xe4, 0xbe, 0x83, 0x30, 0x70, 0x65, 0xaf, 0x09, 0x7a, 0x0c, 0x0d, 0x8f, 0x32, 0xc9, 0x66, 0xf8, - 0x53, 0x3f, 0x07, 0x54, 0xc0, 0x31, 0x28, 0xdb, 0x15, 0xe4, 0x0a, 0x9e, 0x16, 0x40, 0xe6, 0x0c, - 0xd3, 0x7b, 0x8a, 0x03, 0xdb, 0x41, 0xcf, 0xe1, 0x30, 0xc2, 0xf2, 0x7c, 0x72, 0x4b, 0x3f, 0xc4, - 0xad, 0x84, 0x21, 0x23, 0x8a, 0x28, 0xf0, 0xfe, 0xa9, 0xc3, 0x30, 0xd1, 0x4a, 0x16, 0x36, 0xe6, - 0xc7, 0x84, 0x0e, 0x96, 0x61, 0xcb, 0x0f, 0x1c, 0x62, 0xe1, 0xa8, 0xf9, 0x08, 0xfc, 0x70, 0xf2, - 0x59, 0x96, 0xf4, 0x32, 0x45, 0x17, 0x7b, 0x26, 0xc2, 0x65, 0xe2, 0xe6, 0xd0, 0xce, 0x63, 0xc6, - 0x45, 0x1d, 0x4e, 0x06, 0xdb, 0x00, 0x0d, 0xca, 0x2e, 0xf6, 0xcc, 0x47, 0xb8, 0x40, 0xdf, 0xaf, - 0xa0, 0xe5, 0xa1, 0x68, 0x42, 0x87, 0xd6, 0x88, 0x10, 0xf5, 0x6d, 0x88, 0x29, 0x71, 0x17, 0x7b, - 0x66, 0x0f, 0xab, 0x29, 0x1d, 0x40, 0x33, 0x96, 0x06, 0xd7, 0x3e, 0x8a, 0x24, 0x7f, 0x20, 0x36, - 0xc2, 0xe0, 0xe8, 0x4b, 0x68, 0xaf, 0x28, 0x26, 0x96, 0xb7, 0x72, 0x19, 0xb1, 0x58, 0xb0, 0xbe, - 0x21, 0xbe, 0xb6, 0x3f, 0xaa, 0x9d, 0x1c, 0x98, 0x8f, 0xc2, 0x05, 0x23, 0x8c, 0x5f, 0x45, 0xe1, - 0xb3, 0x23, 0x00, 0xca, 0xb8, 0xf0, 0x83, 0x35, 0x61, 0x42, 0x9f, 0xc1, 0x93, 0x52, 0x35, 0xb7, - 0x2e, 0x3a, 0x85, 0x4e, 0x28, 0xc6, 0x42, 0x47, 0xb1, 0x28, 0xdb, 0x9c, 0x7a, 0xb9, 0x2d, 0x58, - 0x1f, 0x42, 0x5f, 0x7a, 0x43, 0x71, 0x77, 0xfa, 0x4f, 0x30, 0x50, 0xae, 0x4a, 0x03, 0x4d, 0xf2, - 0x06, 0x1a, 0x6e, 0x27, 0x2a, 0xf5, 0xd1, 0x1b, 0x18, 0x26, 0x3e, 0x52, 0xc9, 0x65, 0xe7, 0x0e, - 0xae, 0x61, 0x90, 0xe8, 0xcf, 0xb0, 0x7d, 0x41, 0x97, 0xd4, 0xb3, 0x99, 0x88, 0xf1, 0x2a, 0xed, - 0x51, 0xf4, 0x6e, 0xbd, 0xe4, 0xdd, 0xb3, 0xc8, 0x73, 0x19, 0xdc, 0x88, 0xe6, 0xaf, 0x01, 0x85, - 0xfb, 0xbc, 0x34, 0x9c, 0x96, 0xf8, 0x98, 0x53, 0x2f, 0x9b, 0x8f, 0x75, 0x02, 0xcf, 0x16, 0x84, - 0xe1, 0x3c, 0xce, 0xf4, 0xed, 0x8f, 0xb3, 0xb8, 0xc6, 0x9d, 0xe0, 0x50, 0x0f, 0xf6, 0x31, 0xbd, - 0xa3, 0x82, 0xcb, 0x72, 0xe5, 0x97, 0x3e, 0x83, 0x5e, 0xf9, 0x88, 0xff, 0x51, 0xee, 0x00, 0x9e, - 0xca, 0x4b, 0x2f, 0xd3, 0xa9, 0xbf, 0x49, 0xf4, 0x92, 0x5b, 0x94, 0x82, 0xf8, 0x36, 0x2f, 0x88, - 0x9c, 0x17, 0x0b, 0x1c, 0xc6, 0x7a, 0xb8, 0x84, 0x41, 0xa2, 0x07, 0xc5, 0xf5, 0xed, 0x54, 0xfa, - 0xe4, 0xdf, 0x7d, 0x68, 0x2c, 0xe6, 0x06, 0x7a, 0x05, 0xad, 0xfc, 0xfc, 0x42, 0xe9, 0x3b, 0xa3, - 0x1c, 0x6c, 0x7d, 0xf5, 0xe3, 0x8f, 0x2e, 0xe1, 0x28, 0x3b, 0x3a, 0x50, 0x2a, 0x71, 0xc5, 0xa0, - 0xe9, 0x3f, 0xdb, 0xb2, 0x2a, 0xd9, 0x79, 0x05, 0xad, 0xfc, 0x08, 0xc9, 0x54, 0xa5, 0x9c, 0x2d, - 0xdb, 0xaa, 0xba, 0xce, 0x8c, 0xe7, 0xac, 0x1b, 0xd0, 0xe7, 0xe5, 0x2e, 0x15, 0x1e, 0xeb, 0x57, - 0x1a, 0x15, 0xfd, 0x96, 0x4c, 0xd1, 0x1c, 0xf6, 0x71, 0xb1, 0x39, 0x15, 0xf2, 0x8b, 0xea, 0x24, - 0x49, 0xc4, 0x75, 0x66, 0x96, 0x6e, 0xa9, 0xbf, 0xea, 0x8d, 0x78, 0xa0, 0xfe, 0x77, 0xd0, 0x51, - 0x3d, 0x08, 0xe8, 0x45, 0x99, 0x9c, 0xb2, 0xe0, 0xfa, 0x55, 0x9a, 0x45, 0x36, 0xf4, 0xd4, 0x4e, - 0x46, 0x5f, 0xa4, 0xdb, 0xaa, 0xac, 0xde, 0x7f, 0xbe, 0x05, 0x3e, 0xf1, 0xea, 0x2f, 0x80, 0xca, - 0x06, 0x43, 0x7a, 0x91, 0x57, 0x45, 0xe5, 0xc7, 0x95, 0x39, 0x92, 0xfa, 0x77, 0xd0, 0x51, 0xd9, - 0x2d, 0x43, 0x4e, 0x85, 0x1b, 0x2b, 0xc9, 0x39, 0x9b, 0xfd, 0x7c, 0x7c, 0x47, 0xc5, 0x2a, 0xb8, - 0x19, 0x2f, 0xdd, 0xf5, 0xa9, 0x4c, 0x3c, 0x8d, 0xfe, 0x5a, 0x2e, 0x5d, 0x27, 0x0e, 0xfc, 0x55, - 0xff, 0xf4, 0x35, 0xbd, 0x27, 0x97, 0x54, 0x8c, 0x8d, 0x70, 0xe9, 0xef, 0x7a, 0x4b, 0x7e, 0xbf, - 0x7c, 0x19, 0x05, 0x6e, 0xf6, 0xa3, 0x2d, 0xdf, 0xfd, 0x17, 0x00, 0x00, 0xff, 0xff, 0xae, 0xde, - 0xad, 0xbb, 0xa2, 0x0a, 0x00, 0x00, + // 975 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x72, 0xdb, 0x44, + 0x14, 0x8e, 0xe5, 0xd4, 0x24, 0xc7, 0xc1, 0x89, 0x37, 0x76, 0x46, 0xb5, 0x5d, 0x9a, 0x51, 0x0a, + 0x14, 0xda, 0x71, 0x06, 0x73, 0x45, 0x87, 0x1b, 0x12, 0x4f, 0x1a, 0x4f, 0x4a, 0x6a, 0x94, 0xde, + 0x94, 0x09, 0x08, 0xc5, 0xbb, 0x49, 0x76, 0x6a, 0x4b, 0x42, 0xbb, 0x4a, 0xfb, 0x00, 0xbc, 0x02, + 0x33, 0x5c, 0xf0, 0x04, 0xbc, 0x03, 0x2f, 0xc4, 0x23, 0x70, 0xc5, 0x68, 0xb5, 0xfa, 0x5f, 0xab, + 0xb8, 0x77, 0xde, 0x73, 0xce, 0x7e, 0x3e, 0xfb, 0x9d, 0xef, 0x9c, 0x23, 0x68, 0xcf, 0xe9, 0x1d, + 0x79, 0x43, 0xb9, 0xc5, 0xa8, 0x37, 0xf4, 0x7c, 0x97, 0xbb, 0xe8, 0x23, 0x69, 0x32, 0x7e, 0xd3, + 0xa0, 0x7b, 0xec, 0x13, 0x9b, 0x93, 0x8b, 0xc9, 0xf4, 0x95, 0x1f, 0x38, 0x6f, 0x4c, 0xf2, 0x6b, + 0x40, 0x18, 0x47, 0x4f, 0xa0, 0x4d, 0x9d, 0x2b, 0x37, 0x70, 0xb0, 0x65, 0x63, 0xec, 0x13, 0xc6, + 0x08, 0xd3, 0x6b, 0xfb, 0xf5, 0xc7, 0x9b, 0xe6, 0x8e, 0x74, 0x7c, 0x17, 0xdb, 0xd1, 0x17, 0xb0, + 0xe3, 0x06, 0x3c, 0x17, 0xad, 0x6b, 0xfb, 0xb5, 0xc7, 0x9b, 0xe6, 0x76, 0x6c, 0x97, 0xc1, 0xe8, + 0x73, 0x48, 0x4c, 0x96, 0x13, 0x2c, 0xae, 0x88, 0xaf, 0xd7, 0x45, 0x64, 0x2b, 0x36, 0x9f, 0x0b, + 0x2b, 0x1a, 0x41, 0x37, 0x4e, 0x20, 0x8a, 0x63, 0x96, 0x4f, 0x6e, 0xc8, 0x3b, 0x7d, 0x5d, 0x24, + 0xb1, 0x2b, 0x9d, 0x51, 0x34, 0x33, 0x43, 0x17, 0xea, 0xc1, 0x46, 0xc0, 0x88, 0xef, 0xd8, 0x0b, + 0xa2, 0xdf, 0x13, 0xa8, 0xc9, 0x39, 0xf4, 0x79, 0x36, 0x63, 0x6f, 0x5d, 0x1f, 0xeb, 0x8d, 0xc8, + 0x17, 0x9f, 0x8d, 0x3f, 0x6b, 0xb0, 0x15, 0x13, 0x30, 0x71, 0xae, 0x5d, 0xb4, 0x0f, 0x5b, 0x8c, + 0x7a, 0x16, 0x0f, 0x0d, 0x16, 0xc5, 0x7a, 0x4d, 0x5c, 0x00, 0x46, 0xbd, 0x28, 0x06, 0xa3, 0x01, + 0x6c, 0xa6, 0xbc, 0x68, 0x22, 0xa5, 0xd4, 0x80, 0x5a, 0xa0, 0x71, 0x57, 0x3e, 0x4c, 0xe3, 0x2e, + 0xfa, 0x16, 0x7a, 0xf6, 0x7c, 0xee, 0xbe, 0x25, 0xd8, 0xc2, 0x84, 0x71, 0xea, 0xd8, 0x9c, 0xba, + 0x4e, 0xfe, 0x45, 0xba, 0x8c, 0x18, 0x67, 0x02, 0xc4, 0xb3, 0x8c, 0x2e, 0xec, 0xbe, 0xa0, 0x8c, + 0x17, 0x4a, 0x64, 0x1c, 0x43, 0x27, 0x6f, 0x66, 0x9e, 0xeb, 0x30, 0x82, 0x9e, 0xc0, 0x3d, 0xca, + 0xc9, 0x22, 0x2a, 0x57, 0x73, 0xd4, 0x1d, 0xca, 0x6a, 0x0f, 0xb3, 0x4f, 0x34, 0xa3, 0x18, 0xe3, + 0x1b, 0xe8, 0x8e, 0xc9, 0x9c, 0x94, 0x05, 0xf0, 0x5e, 0x0a, 0x8c, 0x13, 0xe8, 0x5e, 0x4c, 0xa6, + 0x63, 0xca, 0x3c, 0x9b, 0xcf, 0x6e, 0xcd, 0x60, 0x4e, 0xc6, 0xd4, 0x27, 0x33, 0x8e, 0xfa, 0xb0, + 0xe9, 0xbb, 0xee, 0xc2, 0x12, 0x75, 0x88, 0xee, 0x6d, 0x84, 0x86, 0xf3, 0xb0, 0x0e, 0x3b, 0x50, + 0xf7, 0xa8, 0x23, 0xe5, 0x11, 0xfe, 0x34, 0x8e, 0x01, 0x15, 0x70, 0xa6, 0xd4, 0x59, 0x15, 0xe4, + 0x1c, 0xee, 0x17, 0x40, 0x26, 0x0e, 0xa6, 0x77, 0x14, 0x07, 0xf6, 0x1c, 0x3d, 0x84, 0xa6, 0xc0, + 0xf2, 0x7c, 0x72, 0x4d, 0xdf, 0xc5, 0x4f, 0x09, 0x4d, 0x53, 0x61, 0x51, 0xe0, 0xfd, 0xa1, 0xc1, + 0x76, 0x01, 0x10, 0x99, 0xd0, 0xc1, 0xf2, 0x6c, 0xf9, 0xc1, 0x9c, 0x58, 0x58, 0xbc, 0x57, 0xe0, + 0x35, 0x47, 0x9f, 0x64, 0x79, 0x2e, 0xb3, 0x72, 0xba, 0x66, 0x22, 0x5c, 0xe6, 0x6a, 0x02, 0xed, + 0x3c, 0x66, 0x9c, 0x47, 0x73, 0xd4, 0x5f, 0x06, 0x38, 0xa5, 0xce, 0xe9, 0x9a, 0xb9, 0x8d, 0x0b, + 0x8c, 0xfd, 0x0c, 0x7a, 0x1e, 0x8a, 0x26, 0x0c, 0x08, 0x29, 0x36, 0x47, 0xc6, 0x32, 0xc4, 0x94, + 0xab, 0xd3, 0x35, 0x73, 0x0f, 0x2b, 0x3d, 0x47, 0x0d, 0x58, 0x0f, 0x61, 0x8d, 0xdf, 0x6b, 0x30, + 0x48, 0x86, 0x46, 0x16, 0x25, 0x96, 0xce, 0xd3, 0x28, 0x50, 0xf2, 0xa2, 0x2f, 0xfb, 0x53, 0x53, + 0x44, 0x85, 0x85, 0x8e, 0x45, 0x16, 0x77, 0xd2, 0x06, 0x8f, 0x24, 0xc6, 0xd0, 0x97, 0xd0, 0xbe, + 0xa5, 0x98, 0x58, 0xde, 0xad, 0xeb, 0x90, 0xec, 0xc0, 0xd8, 0x30, 0xb7, 0x43, 0xc7, 0x34, 0xb4, + 0x47, 0x33, 0xc0, 0xf8, 0xbb, 0x06, 0xbb, 0xa5, 0x77, 0x5d, 0xbb, 0xe8, 0x10, 0x3a, 0xa1, 0x92, + 0x0b, 0xdc, 0xc4, 0x8a, 0x6e, 0x33, 0xea, 0xe5, 0xae, 0xe0, 0x24, 0x7f, 0x6d, 0xf5, 0xfc, 0xeb, + 0xff, 0x27, 0xff, 0x75, 0x75, 0xfe, 0x03, 0xe8, 0xc9, 0x7e, 0x56, 0x90, 0x6a, 0xfc, 0x00, 0x7d, + 0xa5, 0x57, 0x36, 0xfd, 0x28, 0xdf, 0xf4, 0x83, 0xe5, 0x95, 0x4e, 0x7b, 0xff, 0x25, 0x0c, 0x92, + 0xde, 0x57, 0xd5, 0x71, 0x55, 0xe2, 0x8c, 0x4b, 0xe8, 0x27, 0xc2, 0x98, 0xda, 0x3e, 0xa7, 0x33, + 0xea, 0xd9, 0x0e, 0x8f, 0xf1, 0x2a, 0x5b, 0xba, 0x38, 0x6f, 0xb4, 0xd2, 0xbc, 0x39, 0x12, 0x73, + 0x22, 0x83, 0x2b, 0xaa, 0xfb, 0x14, 0x50, 0x78, 0xcf, 0x4b, 0xcd, 0x69, 0x8a, 0x3b, 0x8c, 0x7a, + 0xd9, 0x78, 0x6c, 0x10, 0x78, 0x70, 0x41, 0x1c, 0x9c, 0xc7, 0x19, 0xbf, 0xfa, 0xfe, 0x24, 0xd5, + 0xee, 0x0a, 0x70, 0x68, 0x0f, 0x1a, 0x98, 0xde, 0x50, 0x1e, 0xaf, 0x3b, 0x79, 0x32, 0x4e, 0x60, + 0xaf, 0xfc, 0x17, 0x1f, 0x90, 0x6e, 0x1f, 0xee, 0xcb, 0xa2, 0x97, 0xe9, 0x34, 0x5e, 0x26, 0x7a, + 0xc9, 0x39, 0xa5, 0x20, 0xbe, 0xca, 0x0b, 0x22, 0x37, 0x4c, 0x0a, 0x1c, 0xc6, 0x7a, 0x38, 0x83, + 0x7e, 0xa2, 0x07, 0x45, 0xf9, 0x56, 0x4a, 0x7d, 0xf4, 0x6f, 0x03, 0xea, 0x17, 0x93, 0x29, 0x7a, + 0x0e, 0xad, 0xfc, 0x17, 0x06, 0x4a, 0x07, 0xa5, 0xf2, 0xd3, 0xa3, 0xa7, 0x5e, 0x58, 0xe8, 0x0c, + 0xb6, 0xb2, 0xeb, 0x0e, 0xa5, 0x12, 0x57, 0x2c, 0xc7, 0xde, 0x83, 0x25, 0x5e, 0xc9, 0xce, 0x73, + 0x68, 0xe5, 0xd7, 0x5e, 0x26, 0x2b, 0xe5, 0x3e, 0x5c, 0x96, 0xd5, 0x65, 0xe6, 0x03, 0x2a, 0xb7, + 0x2c, 0x3e, 0x2d, 0xbf, 0x52, 0xd1, 0x63, 0xbd, 0xca, 0x46, 0x45, 0xbf, 0x24, 0x9b, 0x3f, 0x87, + 0x7d, 0x50, 0x7c, 0x9c, 0x0a, 0xf9, 0x51, 0x75, 0x90, 0x24, 0xe2, 0x32, 0xb3, 0xff, 0x97, 0xe4, + 0x5f, 0x35, 0x23, 0xde, 0x93, 0xff, 0x6b, 0xe8, 0xa8, 0x06, 0x02, 0x7a, 0x54, 0x26, 0xa7, 0x2c, + 0xb8, 0x5e, 0x95, 0x66, 0x91, 0x0d, 0x7b, 0xea, 0x4e, 0x46, 0x9f, 0xa5, 0xd7, 0xaa, 0x5a, 0xbd, + 0xf7, 0x70, 0x09, 0x7c, 0xd2, 0xab, 0x3f, 0x01, 0x2a, 0x37, 0x18, 0x32, 0x8a, 0xbc, 0x2a, 0x32, + 0x3f, 0xa8, 0x8c, 0x91, 0xd4, 0xbf, 0x86, 0x8e, 0xaa, 0xdd, 0x32, 0xe4, 0x54, 0x74, 0x63, 0x25, + 0x39, 0x47, 0x27, 0x3f, 0x1e, 0xdc, 0x50, 0x7e, 0x1b, 0x5c, 0x0d, 0x67, 0xee, 0xe2, 0x50, 0x06, + 0x1e, 0x8a, 0x8f, 0xff, 0x99, 0x3b, 0x8f, 0x0d, 0x7f, 0x69, 0x1f, 0xbf, 0xa0, 0x77, 0xe4, 0x8c, + 0xf2, 0xe1, 0x34, 0x74, 0xfd, 0xa3, 0xb5, 0xe4, 0xf9, 0xd9, 0x33, 0x61, 0xb8, 0x6a, 0x88, 0x2b, + 0x5f, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0xc0, 0xec, 0x33, 0x1b, 0x44, 0x0c, 0x00, 0x00, } diff --git a/livekit_sip.proto b/livekit_sip.proto index 601f5e18e..77744efce 100644 --- a/livekit_sip.proto +++ b/livekit_sip.proto @@ -66,20 +66,31 @@ service SIP { message CreateSIPTrunkRequest { // CIDR or IPs that traffic is accepted from // An empty list means all inbound traffic is accepted. - repeated string addresses = 1; + repeated string inbound_addresses = 1; - // `To` value that will be used when making a call - string to = 2; + // IP that SIP INVITE is sent too + string outbound_address = 2; + + // Number used to make outbound calls + string outbound_number = 3; // Accepted `To` values. This Trunk will only accept a call made to // these numbers. This allows you to have distinct Trunks for different phone // numbers at the same provider. - // An empty list means all dialed numbers are accepted. - repeated string allowed_destinations_regex = 3; + repeated string inbound_numbers_regex = 4; + + // Username and password used to authenticate SIP invites + // May be empty to have no Authentication + string username = 5; + string password = 6; } message SIPTrunkInfo { string sip_trunk_id = 1; + + repeated string addresses = 2; + string to = 3; + repeated string allowed_destinations_regex = 4; } message ListSIPTrunkRequest { @@ -117,8 +128,8 @@ message SIPDispatchRuleIndividual { string pin = 2; } -message CreateSIPDispatchRuleRequest { - oneof instrument { +message SIPDispatchRule { + oneof rule { // SIPDispatchRuleDirect is a `SIP Dispatch Rule` that puts a user directly into a room // This places users into an existing room. Optionally you can require a pin before a user can // enter the room @@ -131,18 +142,25 @@ message CreateSIPDispatchRuleRequest { // SIPDispatchRuleIndividual is a `SIP Dispatch Rule` that creates a new room for each caller. SIPDispatchRuleIndividual dispatch_rule_individual = 3; } +} + +message CreateSIPDispatchRuleRequest { + SIPDispatchRule rule = 1; // What trunks are accepted for this dispatch rule // If empty all trunks will match this dispatch rule - repeated string trunk_ids = 4; + repeated string trunk_ids = 2; // By default the From value (Phone number) is used as the participant identity // If true a random value will be used instead - bool hide_phone_number = 6; + bool hide_phone_number = 3; } message SIPDispatchRuleInfo { string sip_dispatch_rule_id = 1; + SIPDispatchRule rule = 2; + repeated string trunk_ids = 3; + bool hide_phone_number = 4; } message ListSIPDispatchRuleRequest { diff --git a/magefile.go b/magefile.go index 8f568bb10..cf0133804 100644 --- a/magefile.go +++ b/magefile.go @@ -63,6 +63,7 @@ func Proto() error { "rpc/agent.proto", "rpc/egress.proto", "rpc/ingress.proto", + "rpc/sip.proto", "rpc/io.proto", "rpc/room.proto", "rpc/participant.proto", diff --git a/rpc/agent.psrpc.go b/rpc/agent.psrpc.go index 2c153a1a0..921a07df3 100644 --- a/rpc/agent.psrpc.go +++ b/rpc/agent.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. // source: rpc/agent.proto package rpc diff --git a/rpc/egress.psrpc.go b/rpc/egress.psrpc.go index e4fd6b94a..189e74b09 100644 --- a/rpc/egress.psrpc.go +++ b/rpc/egress.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. // source: rpc/egress.proto package rpc diff --git a/rpc/ingress.psrpc.go b/rpc/ingress.psrpc.go index ae2574bec..c6d97adba 100644 --- a/rpc/ingress.psrpc.go +++ b/rpc/ingress.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. // source: rpc/ingress.proto package rpc diff --git a/rpc/io.pb.go b/rpc/io.pb.go index 348dcb577..67683029b 100644 --- a/rpc/io.pb.go +++ b/rpc/io.pb.go @@ -258,6 +258,268 @@ func (x *UpdateIngressStateRequest) GetState() *livekit.IngressState { return nil } +type GetSIPTrunkAuthenticationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // What Number is calling + From string `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"` + // What Number was called + To string `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"` + // What is the IP address of the called number + SrcAddress string `protobuf:"bytes,4,opt,name=src_address,json=srcAddress,proto3" json:"src_address,omitempty"` +} + +func (x *GetSIPTrunkAuthenticationRequest) Reset() { + *x = GetSIPTrunkAuthenticationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_io_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSIPTrunkAuthenticationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSIPTrunkAuthenticationRequest) ProtoMessage() {} + +func (x *GetSIPTrunkAuthenticationRequest) ProtoReflect() protoreflect.Message { + mi := &file_rpc_io_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSIPTrunkAuthenticationRequest.ProtoReflect.Descriptor instead. +func (*GetSIPTrunkAuthenticationRequest) Descriptor() ([]byte, []int) { + return file_rpc_io_proto_rawDescGZIP(), []int{4} +} + +func (x *GetSIPTrunkAuthenticationRequest) GetFrom() string { + if x != nil { + return x.From + } + return "" +} + +func (x *GetSIPTrunkAuthenticationRequest) GetTo() string { + if x != nil { + return x.To + } + return "" +} + +func (x *GetSIPTrunkAuthenticationRequest) GetSrcAddress() string { + if x != nil { + return x.SrcAddress + } + return "" +} + +type GetSIPTrunkAuthenticationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Expected username and password + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` + Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` +} + +func (x *GetSIPTrunkAuthenticationResponse) Reset() { + *x = GetSIPTrunkAuthenticationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_io_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSIPTrunkAuthenticationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSIPTrunkAuthenticationResponse) ProtoMessage() {} + +func (x *GetSIPTrunkAuthenticationResponse) ProtoReflect() protoreflect.Message { + mi := &file_rpc_io_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSIPTrunkAuthenticationResponse.ProtoReflect.Descriptor instead. +func (*GetSIPTrunkAuthenticationResponse) Descriptor() ([]byte, []int) { + return file_rpc_io_proto_rawDescGZIP(), []int{5} +} + +func (x *GetSIPTrunkAuthenticationResponse) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *GetSIPTrunkAuthenticationResponse) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type EvaluateSIPDispatchRulesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SipParticipantId string `protobuf:"bytes,1,opt,name=sip_participant_id,json=sipParticipantId,proto3" json:"sip_participant_id,omitempty"` + // What Number is calling + From string `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"` + // What Number was called + To string `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"` + // What is the IP address of the called number + SrcAddress string `protobuf:"bytes,4,opt,name=src_address,json=srcAddress,proto3" json:"src_address,omitempty"` +} + +func (x *EvaluateSIPDispatchRulesRequest) Reset() { + *x = EvaluateSIPDispatchRulesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_io_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EvaluateSIPDispatchRulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EvaluateSIPDispatchRulesRequest) ProtoMessage() {} + +func (x *EvaluateSIPDispatchRulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_rpc_io_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EvaluateSIPDispatchRulesRequest.ProtoReflect.Descriptor instead. +func (*EvaluateSIPDispatchRulesRequest) Descriptor() ([]byte, []int) { + return file_rpc_io_proto_rawDescGZIP(), []int{6} +} + +func (x *EvaluateSIPDispatchRulesRequest) GetSipParticipantId() string { + if x != nil { + return x.SipParticipantId + } + return "" +} + +func (x *EvaluateSIPDispatchRulesRequest) GetFrom() string { + if x != nil { + return x.From + } + return "" +} + +func (x *EvaluateSIPDispatchRulesRequest) GetTo() string { + if x != nil { + return x.To + } + return "" +} + +func (x *EvaluateSIPDispatchRulesRequest) GetSrcAddress() string { + if x != nil { + return x.SrcAddress + } + return "" +} + +type EvaluateSIPDispatchRulesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // non-empty string if SIPParticipant should be placed a room + RoomName string `protobuf:"bytes,1,opt,name=room_name,json=roomName,proto3" json:"room_name,omitempty"` + // What should be used for the LiveKit identity + ParticipantIdentity string `protobuf:"bytes,2,opt,name=participant_identity,json=participantIdentity,proto3" json:"participant_identity,omitempty"` + // Pin should be requested from SIPParticipant + RequestPin bool `protobuf:"varint,3,opt,name=request_pin,json=requestPin,proto3" json:"request_pin,omitempty"` +} + +func (x *EvaluateSIPDispatchRulesResponse) Reset() { + *x = EvaluateSIPDispatchRulesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_io_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EvaluateSIPDispatchRulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EvaluateSIPDispatchRulesResponse) ProtoMessage() {} + +func (x *EvaluateSIPDispatchRulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_rpc_io_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EvaluateSIPDispatchRulesResponse.ProtoReflect.Descriptor instead. +func (*EvaluateSIPDispatchRulesResponse) Descriptor() ([]byte, []int) { + return file_rpc_io_proto_rawDescGZIP(), []int{7} +} + +func (x *EvaluateSIPDispatchRulesResponse) GetRoomName() string { + if x != nil { + return x.RoomName + } + return "" +} + +func (x *EvaluateSIPDispatchRulesResponse) GetParticipantIdentity() string { + if x != nil { + return x.ParticipantIdentity + } + return "" +} + +func (x *EvaluateSIPDispatchRulesResponse) GetRequestPin() bool { + if x != nil { + return x.RequestPin + } + return false +} + var File_rpc_io_proto protoreflect.FileDescriptor var file_rpc_io_proto_rawDesc = []byte{ @@ -288,37 +550,81 @@ var file_rpc_io_proto_rawDesc = []byte{ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x49, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x32, - 0x9b, 0x03, 0x0a, 0x06, 0x49, 0x4f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0c, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x2e, 0x6c, 0x69, 0x76, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x67, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, + 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, + 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x5b, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x53, + 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x1f, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x69, 0x70, + 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x69, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, + 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x93, 0x01, 0x0a, + 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, + 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x69, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, + 0x69, 0x6e, 0x32, 0xf0, 0x04, 0x0a, 0x06, 0x49, 0x4f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, + 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x2e, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x0c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x15, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, - 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, - 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x2c, 0x5a, - 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x6b, 0x67, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x15, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x45, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, + 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, 0x72, 0x70, 0x63, 0x2e, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x6a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, + 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x18, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, + 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, + 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, + 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -333,39 +639,47 @@ func file_rpc_io_proto_rawDescGZIP() []byte { return file_rpc_io_proto_rawDescData } -var file_rpc_io_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_rpc_io_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_rpc_io_proto_goTypes = []interface{}{ - (*GetEgressRequest)(nil), // 0: rpc.GetEgressRequest - (*GetIngressInfoRequest)(nil), // 1: rpc.GetIngressInfoRequest - (*GetIngressInfoResponse)(nil), // 2: rpc.GetIngressInfoResponse - (*UpdateIngressStateRequest)(nil), // 3: rpc.UpdateIngressStateRequest - (*livekit.IngressInfo)(nil), // 4: livekit.IngressInfo - (*livekit.IngressState)(nil), // 5: livekit.IngressState - (*livekit.EgressInfo)(nil), // 6: livekit.EgressInfo - (*livekit.ListEgressRequest)(nil), // 7: livekit.ListEgressRequest - (*emptypb.Empty)(nil), // 8: google.protobuf.Empty - (*livekit.ListEgressResponse)(nil), // 9: livekit.ListEgressResponse + (*GetEgressRequest)(nil), // 0: rpc.GetEgressRequest + (*GetIngressInfoRequest)(nil), // 1: rpc.GetIngressInfoRequest + (*GetIngressInfoResponse)(nil), // 2: rpc.GetIngressInfoResponse + (*UpdateIngressStateRequest)(nil), // 3: rpc.UpdateIngressStateRequest + (*GetSIPTrunkAuthenticationRequest)(nil), // 4: rpc.GetSIPTrunkAuthenticationRequest + (*GetSIPTrunkAuthenticationResponse)(nil), // 5: rpc.GetSIPTrunkAuthenticationResponse + (*EvaluateSIPDispatchRulesRequest)(nil), // 6: rpc.EvaluateSIPDispatchRulesRequest + (*EvaluateSIPDispatchRulesResponse)(nil), // 7: rpc.EvaluateSIPDispatchRulesResponse + (*livekit.IngressInfo)(nil), // 8: livekit.IngressInfo + (*livekit.IngressState)(nil), // 9: livekit.IngressState + (*livekit.EgressInfo)(nil), // 10: livekit.EgressInfo + (*livekit.ListEgressRequest)(nil), // 11: livekit.ListEgressRequest + (*emptypb.Empty)(nil), // 12: google.protobuf.Empty + (*livekit.ListEgressResponse)(nil), // 13: livekit.ListEgressResponse } var file_rpc_io_proto_depIdxs = []int32{ - 4, // 0: rpc.GetIngressInfoResponse.info:type_name -> livekit.IngressInfo - 5, // 1: rpc.UpdateIngressStateRequest.state:type_name -> livekit.IngressState - 6, // 2: rpc.IOInfo.CreateEgress:input_type -> livekit.EgressInfo - 6, // 3: rpc.IOInfo.UpdateEgress:input_type -> livekit.EgressInfo - 0, // 4: rpc.IOInfo.GetEgress:input_type -> rpc.GetEgressRequest - 7, // 5: rpc.IOInfo.ListEgress:input_type -> livekit.ListEgressRequest - 1, // 6: rpc.IOInfo.GetIngressInfo:input_type -> rpc.GetIngressInfoRequest - 3, // 7: rpc.IOInfo.UpdateIngressState:input_type -> rpc.UpdateIngressStateRequest - 8, // 8: rpc.IOInfo.CreateEgress:output_type -> google.protobuf.Empty - 8, // 9: rpc.IOInfo.UpdateEgress:output_type -> google.protobuf.Empty - 6, // 10: rpc.IOInfo.GetEgress:output_type -> livekit.EgressInfo - 9, // 11: rpc.IOInfo.ListEgress:output_type -> livekit.ListEgressResponse - 2, // 12: rpc.IOInfo.GetIngressInfo:output_type -> rpc.GetIngressInfoResponse - 8, // 13: rpc.IOInfo.UpdateIngressState:output_type -> google.protobuf.Empty - 8, // [8:14] is the sub-list for method output_type - 2, // [2:8] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name + 8, // 0: rpc.GetIngressInfoResponse.info:type_name -> livekit.IngressInfo + 9, // 1: rpc.UpdateIngressStateRequest.state:type_name -> livekit.IngressState + 10, // 2: rpc.IOInfo.CreateEgress:input_type -> livekit.EgressInfo + 10, // 3: rpc.IOInfo.UpdateEgress:input_type -> livekit.EgressInfo + 0, // 4: rpc.IOInfo.GetEgress:input_type -> rpc.GetEgressRequest + 11, // 5: rpc.IOInfo.ListEgress:input_type -> livekit.ListEgressRequest + 1, // 6: rpc.IOInfo.GetIngressInfo:input_type -> rpc.GetIngressInfoRequest + 3, // 7: rpc.IOInfo.UpdateIngressState:input_type -> rpc.UpdateIngressStateRequest + 4, // 8: rpc.IOInfo.GetSIPTrunkAuthentication:input_type -> rpc.GetSIPTrunkAuthenticationRequest + 6, // 9: rpc.IOInfo.EvaluateSIPDispatchRules:input_type -> rpc.EvaluateSIPDispatchRulesRequest + 12, // 10: rpc.IOInfo.CreateEgress:output_type -> google.protobuf.Empty + 12, // 11: rpc.IOInfo.UpdateEgress:output_type -> google.protobuf.Empty + 10, // 12: rpc.IOInfo.GetEgress:output_type -> livekit.EgressInfo + 13, // 13: rpc.IOInfo.ListEgress:output_type -> livekit.ListEgressResponse + 2, // 14: rpc.IOInfo.GetIngressInfo:output_type -> rpc.GetIngressInfoResponse + 12, // 15: rpc.IOInfo.UpdateIngressState:output_type -> google.protobuf.Empty + 5, // 16: rpc.IOInfo.GetSIPTrunkAuthentication:output_type -> rpc.GetSIPTrunkAuthenticationResponse + 7, // 17: rpc.IOInfo.EvaluateSIPDispatchRules:output_type -> rpc.EvaluateSIPDispatchRulesResponse + 10, // [10:18] is the sub-list for method output_type + 2, // [2:10] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name } func init() { file_rpc_io_proto_init() } @@ -422,6 +736,54 @@ func file_rpc_io_proto_init() { return nil } } + file_rpc_io_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSIPTrunkAuthenticationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rpc_io_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSIPTrunkAuthenticationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rpc_io_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvaluateSIPDispatchRulesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rpc_io_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvaluateSIPDispatchRulesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -429,7 +791,7 @@ func file_rpc_io_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rpc_io_proto_rawDesc, NumEnums: 0, - NumMessages: 4, + NumMessages: 8, NumExtensions: 0, NumServices: 1, }, diff --git a/rpc/io.proto b/rpc/io.proto index 100e80bc3..610e648bb 100644 --- a/rpc/io.proto +++ b/rpc/io.proto @@ -32,6 +32,10 @@ service IOInfo { // ingress rpc GetIngressInfo(GetIngressInfoRequest) returns (GetIngressInfoResponse); rpc UpdateIngressState(UpdateIngressStateRequest) returns (google.protobuf.Empty); + + // sip + rpc GetSIPTrunkAuthentication(GetSIPTrunkAuthenticationRequest) returns (GetSIPTrunkAuthenticationResponse); + rpc EvaluateSIPDispatchRules(EvaluateSIPDispatchRulesRequest) returns (EvaluateSIPDispatchRulesResponse); } message GetEgressRequest { @@ -55,3 +59,44 @@ message UpdateIngressStateRequest { string ingress_id = 1; livekit.IngressState state = 2; } + +message GetSIPTrunkAuthenticationRequest { + // What Number is calling + string from = 2; + + // What Number was called + string to = 3; + + // What is the IP address of the called number + string src_address = 4; +} + +message GetSIPTrunkAuthenticationResponse { + // Expected username and password + string username = 1; + string password = 2; +} + +message EvaluateSIPDispatchRulesRequest { + string sip_participant_id = 1; + + // What Number is calling + string from = 2; + + // What Number was called + string to = 3; + + // What is the IP address of the called number + string src_address = 4; +} + +message EvaluateSIPDispatchRulesResponse { + // non-empty string if SIPParticipant should be placed a room + string room_name = 1; + + // What should be used for the LiveKit identity + string participant_identity = 2; + + // Pin should be requested from SIPParticipant + bool request_pin = 3; +} diff --git a/rpc/io.psrpc.go b/rpc/io.psrpc.go index 5d0cc74b2..c31320235 100644 --- a/rpc/io.psrpc.go +++ b/rpc/io.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. // source: rpc/io.proto package rpc @@ -36,6 +36,11 @@ type IOInfoClient interface { GetIngressInfo(ctx context.Context, req *GetIngressInfoRequest, opts ...psrpc.RequestOption) (*GetIngressInfoResponse, error) UpdateIngressState(ctx context.Context, req *UpdateIngressStateRequest, opts ...psrpc.RequestOption) (*google_protobuf.Empty, error) + + // sip + GetSIPTrunkAuthentication(ctx context.Context, req *GetSIPTrunkAuthenticationRequest, opts ...psrpc.RequestOption) (*GetSIPTrunkAuthenticationResponse, error) + + EvaluateSIPDispatchRules(ctx context.Context, req *EvaluateSIPDispatchRulesRequest, opts ...psrpc.RequestOption) (*EvaluateSIPDispatchRulesResponse, error) } // =========================== @@ -56,6 +61,11 @@ type IOInfoServerImpl interface { GetIngressInfo(context.Context, *GetIngressInfoRequest) (*GetIngressInfoResponse, error) UpdateIngressState(context.Context, *UpdateIngressStateRequest) (*google_protobuf.Empty, error) + + // sip + GetSIPTrunkAuthentication(context.Context, *GetSIPTrunkAuthenticationRequest) (*GetSIPTrunkAuthenticationResponse, error) + + EvaluateSIPDispatchRules(context.Context, *EvaluateSIPDispatchRulesRequest) (*EvaluateSIPDispatchRulesResponse, error) } // ======================= @@ -92,6 +102,8 @@ func NewIOInfoClient(bus psrpc.MessageBus, opts ...psrpc.ClientOption) (IOInfoCl sd.RegisterMethod("ListEgress", false, false, true, true) sd.RegisterMethod("GetIngressInfo", false, false, true, true) sd.RegisterMethod("UpdateIngressState", false, false, true, true) + sd.RegisterMethod("GetSIPTrunkAuthentication", false, false, true, true) + sd.RegisterMethod("EvaluateSIPDispatchRules", false, false, true, true) rpcClient, err := client.NewRPCClient(sd, bus, opts...) if err != nil { @@ -127,6 +139,14 @@ func (c *iOInfoClient) UpdateIngressState(ctx context.Context, req *UpdateIngres return client.RequestSingle[*google_protobuf.Empty](ctx, c.client, "UpdateIngressState", nil, req, opts...) } +func (c *iOInfoClient) GetSIPTrunkAuthentication(ctx context.Context, req *GetSIPTrunkAuthenticationRequest, opts ...psrpc.RequestOption) (*GetSIPTrunkAuthenticationResponse, error) { + return client.RequestSingle[*GetSIPTrunkAuthenticationResponse](ctx, c.client, "GetSIPTrunkAuthentication", nil, req, opts...) +} + +func (c *iOInfoClient) EvaluateSIPDispatchRules(ctx context.Context, req *EvaluateSIPDispatchRulesRequest, opts ...psrpc.RequestOption) (*EvaluateSIPDispatchRulesResponse, error) { + return client.RequestSingle[*EvaluateSIPDispatchRulesResponse](ctx, c.client, "EvaluateSIPDispatchRules", nil, req, opts...) +} + // ============= // IOInfo Server // ============= @@ -189,6 +209,20 @@ func NewIOInfoServer(svc IOInfoServerImpl, bus psrpc.MessageBus, opts ...psrpc.S return nil, err } + sd.RegisterMethod("GetSIPTrunkAuthentication", false, false, true, true) + err = server.RegisterHandler(s, "GetSIPTrunkAuthentication", nil, svc.GetSIPTrunkAuthentication, nil) + if err != nil { + s.Close(false) + return nil, err + } + + sd.RegisterMethod("EvaluateSIPDispatchRules", false, false, true, true) + err = server.RegisterHandler(s, "EvaluateSIPDispatchRules", nil, svc.EvaluateSIPDispatchRules, nil) + if err != nil { + s.Close(false) + return nil, err + } + return &iOInfoServer{ svc: svc, rpc: s, @@ -203,32 +237,47 @@ func (s *iOInfoServer) Kill() { s.rpc.Close(true) } -var psrpcFileDescriptor3 = []byte{ - // 410 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x52, 0x4f, 0x8b, 0xd3, 0x40, - 0x14, 0x67, 0xad, 0x5b, 0xcc, 0xdb, 0x45, 0x64, 0x6c, 0x96, 0x9a, 0xa0, 0x48, 0x4e, 0x8b, 0xca, - 0x04, 0xea, 0xc1, 0x83, 0x37, 0x25, 0x2c, 0xc1, 0x05, 0x61, 0xa5, 0x17, 0x2f, 0x21, 0x4d, 0x5e, - 0xe3, 0x90, 0x34, 0x33, 0xce, 0x4c, 0x5a, 0xfa, 0x59, 0xfc, 0xb2, 0x92, 0xcc, 0x24, 0xad, 0xfd, - 0x03, 0xb2, 0xa7, 0x30, 0xbf, 0x7f, 0xf3, 0xde, 0xfc, 0x02, 0xd7, 0x52, 0x64, 0x21, 0xe3, 0x54, - 0x48, 0xae, 0x39, 0x19, 0x49, 0x91, 0x79, 0x93, 0x8a, 0xad, 0xb1, 0x64, 0x3a, 0xc1, 0x42, 0xa2, - 0x52, 0x86, 0xf2, 0xdc, 0x1e, 0x65, 0xf5, 0x3e, 0xec, 0x17, 0x9c, 0x17, 0x15, 0x86, 0xdd, 0x69, - 0xd1, 0x2c, 0x43, 0x5c, 0x09, 0xbd, 0x35, 0x64, 0x10, 0xc2, 0x8b, 0x3b, 0xd4, 0x51, 0xa7, 0x7f, - 0xc0, 0xdf, 0x0d, 0x2a, 0x4d, 0x7c, 0x70, 0x4c, 0x6e, 0xc2, 0xf2, 0xe9, 0xc5, 0xdb, 0x8b, 0x5b, - 0xe7, 0xe1, 0x99, 0x01, 0xe2, 0x3c, 0x98, 0x83, 0x7b, 0x87, 0x3a, 0x36, 0x37, 0xc4, 0xf5, 0x92, - 0xf7, 0xae, 0xd7, 0x00, 0xf6, 0xde, 0x9d, 0xcd, 0xb1, 0x48, 0x9c, 0xb7, 0xb4, 0xd2, 0x12, 0xd3, - 0x55, 0x52, 0xe2, 0x76, 0xfa, 0xc4, 0xd0, 0x06, 0xf9, 0x86, 0xdb, 0x80, 0xc3, 0xcd, 0x61, 0xac, - 0x12, 0xbc, 0x56, 0x48, 0x6e, 0xe1, 0x29, 0xab, 0x97, 0xbc, 0x4b, 0xbc, 0x9a, 0x4d, 0xa8, 0x5d, - 0x92, 0xee, 0x6b, 0x3b, 0x05, 0x99, 0xc0, 0xa5, 0xe6, 0x25, 0xd6, 0x36, 0xdd, 0x1c, 0x88, 0x0b, - 0xe3, 0x8d, 0x4a, 0x1a, 0x59, 0x4d, 0x47, 0x06, 0xde, 0xa8, 0xb9, 0xac, 0x82, 0x02, 0x5e, 0xcd, - 0x45, 0x9e, 0x6a, 0xb4, 0x39, 0x3f, 0x74, 0xaa, 0xf1, 0x3f, 0x77, 0x79, 0x0f, 0x97, 0xaa, 0x95, - 0x77, 0x17, 0x5d, 0xcd, 0xdc, 0xc3, 0x99, 0x4c, 0x96, 0xd1, 0xcc, 0xfe, 0x8c, 0x60, 0x1c, 0x7f, - 0x6f, 0xc7, 0x24, 0x9f, 0xe1, 0xfa, 0xab, 0xc4, 0x54, 0xa3, 0x79, 0x6f, 0xf2, 0x72, 0x30, 0x46, - 0xc3, 0x2e, 0xde, 0x0d, 0x35, 0x7d, 0xd1, 0xbe, 0x2f, 0x1a, 0xb5, 0x7d, 0xb5, 0x66, 0x33, 0xf0, - 0x63, 0xcc, 0x9f, 0xc0, 0x19, 0x6a, 0x26, 0x2e, 0x95, 0x22, 0xa3, 0x87, 0xb5, 0x7b, 0xa7, 0x02, - 0x49, 0x04, 0x70, 0xcf, 0x54, 0xef, 0xf4, 0x06, 0xc9, 0x0e, 0xec, 0xed, 0xfe, 0x49, 0xce, 0x96, - 0x18, 0xc3, 0xf3, 0x7f, 0xeb, 0x25, 0x5e, 0x3f, 0xc4, 0xf1, 0xaf, 0xe4, 0xf9, 0x27, 0x39, 0x1b, - 0x75, 0x0f, 0xe4, 0xb8, 0x38, 0xf2, 0xa6, 0xb3, 0x9c, 0x6d, 0xf4, 0xdc, 0xc3, 0x7c, 0xf9, 0xf0, - 0xf3, 0x5d, 0xc1, 0xf4, 0xaf, 0x66, 0x41, 0x33, 0xbe, 0x0a, 0xed, 0x06, 0xc3, 0x57, 0x94, 0x45, - 0xa8, 0x50, 0xae, 0x59, 0x86, 0xa1, 0x14, 0xd9, 0x62, 0xdc, 0xb9, 0x3f, 0xfe, 0x0d, 0x00, 0x00, - 0xff, 0xff, 0xcb, 0x9b, 0xd6, 0xcd, 0x93, 0x03, 0x00, 0x00, +var psrpcFileDescriptor4 = []byte{ + // 649 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xcd, 0x4e, 0xdb, 0x4c, + 0x14, 0x55, 0x20, 0x20, 0x72, 0x41, 0x08, 0x0d, 0x09, 0x0a, 0x8e, 0xbe, 0x0f, 0x6a, 0x95, 0x0a, + 0xb5, 0xc8, 0x56, 0xe9, 0xa2, 0x8b, 0xae, 0x68, 0x1b, 0x21, 0xab, 0xa8, 0x8d, 0x42, 0xd9, 0xb4, + 0x0b, 0x6b, 0xb0, 0x6f, 0xcc, 0x34, 0xb1, 0x67, 0x3a, 0x33, 0x06, 0xf1, 0x1c, 0xed, 0x83, 0xf6, + 0x11, 0x2a, 0x7b, 0xc6, 0x4e, 0xf8, 0x09, 0x54, 0x55, 0x57, 0x30, 0xe7, 0xdc, 0x9f, 0x73, 0xaf, + 0xef, 0x09, 0xac, 0x49, 0x11, 0xf9, 0x8c, 0x7b, 0x42, 0x72, 0xcd, 0xc9, 0xa2, 0x14, 0x91, 0xd3, + 0x9e, 0xb0, 0x4b, 0x1c, 0x33, 0x1d, 0x62, 0x22, 0x51, 0x29, 0x43, 0x39, 0x9d, 0x0a, 0x65, 0xd9, + 0x2c, 0xdc, 0x4b, 0x38, 0x4f, 0x26, 0xe8, 0x97, 0xaf, 0xf3, 0x7c, 0xe4, 0x63, 0x2a, 0xf4, 0xb5, + 0x21, 0x5d, 0x1f, 0x36, 0x8e, 0x51, 0xf7, 0xcb, 0xf8, 0x21, 0x7e, 0xcf, 0x51, 0x69, 0xd2, 0x83, + 0x96, 0xa9, 0x1b, 0xb2, 0xb8, 0xdb, 0xd8, 0x6d, 0xec, 0xb7, 0x86, 0x2b, 0x06, 0x08, 0x62, 0xf7, + 0x0c, 0x3a, 0xc7, 0xa8, 0x03, 0xd3, 0x21, 0xc8, 0x46, 0xbc, 0xca, 0xfa, 0x0f, 0xc0, 0xf6, 0x9d, + 0xa6, 0xb5, 0x2c, 0x12, 0xc4, 0x05, 0xad, 0xb4, 0x44, 0x9a, 0x86, 0x63, 0xbc, 0xee, 0x2e, 0x18, + 0xda, 0x20, 0x1f, 0xf0, 0xda, 0xe5, 0xb0, 0x75, 0xbb, 0xac, 0x12, 0x3c, 0x53, 0x48, 0xf6, 0xa1, + 0xc9, 0xb2, 0x11, 0x2f, 0x2b, 0xae, 0x1e, 0xb6, 0x3d, 0x3b, 0xa4, 0x37, 0x1b, 0x5b, 0x46, 0x90, + 0x36, 0x2c, 0x69, 0x3e, 0xc6, 0xcc, 0x56, 0x37, 0x0f, 0xd2, 0x81, 0xe5, 0x2b, 0x15, 0xe6, 0x72, + 0xd2, 0x5d, 0x34, 0xf0, 0x95, 0x3a, 0x93, 0x13, 0x37, 0x81, 0xed, 0x33, 0x11, 0x53, 0x8d, 0xb6, + 0xce, 0xa9, 0xa6, 0x1a, 0xff, 0x70, 0x96, 0x17, 0xb0, 0xa4, 0x8a, 0xf0, 0xb2, 0xd1, 0xea, 0x61, + 0xe7, 0xb6, 0x26, 0x53, 0xcb, 0xc4, 0xb8, 0x09, 0xec, 0x1e, 0xa3, 0x3e, 0x0d, 0x06, 0x9f, 0x65, + 0x9e, 0x8d, 0x8f, 0x72, 0x7d, 0x81, 0x99, 0x66, 0x11, 0xd5, 0x8c, 0x67, 0x55, 0x3f, 0x02, 0xcd, + 0x91, 0xe4, 0xa9, 0x15, 0x5e, 0xfe, 0x4f, 0xd6, 0x61, 0x41, 0x73, 0xab, 0x79, 0x41, 0x73, 0xb2, + 0x03, 0xab, 0x4a, 0x46, 0x21, 0x8d, 0xe3, 0xa2, 0x45, 0xb7, 0x59, 0x12, 0xa0, 0x64, 0x74, 0x64, + 0x10, 0xf7, 0x2b, 0x3c, 0x79, 0xa0, 0x91, 0xdd, 0xa6, 0x03, 0x2b, 0xb9, 0x42, 0x99, 0xd1, 0x14, + 0xab, 0x4f, 0x5b, 0xbd, 0x0b, 0x4e, 0x50, 0xa5, 0xae, 0xb8, 0x8c, 0xad, 0x92, 0xfa, 0xed, 0xfe, + 0x6c, 0xc0, 0x4e, 0xff, 0x92, 0x4e, 0x72, 0xaa, 0xf1, 0x34, 0x18, 0xbc, 0x67, 0x4a, 0x50, 0x1d, + 0x5d, 0x0c, 0xf3, 0x09, 0xd6, 0x77, 0x73, 0x00, 0x44, 0x31, 0x11, 0x0a, 0x2a, 0x35, 0x8b, 0x98, + 0xa0, 0x99, 0x9e, 0x6e, 0x6f, 0x43, 0x31, 0x31, 0x98, 0x12, 0x41, 0xfc, 0x6f, 0x66, 0xfe, 0xd1, + 0x80, 0xdd, 0xf9, 0xb2, 0xec, 0xcc, 0x3d, 0x68, 0x49, 0xce, 0xd3, 0x70, 0x76, 0xe8, 0x02, 0xf8, + 0x58, 0x0c, 0xfd, 0x12, 0xda, 0x37, 0x05, 0x17, 0x4b, 0xd3, 0xd5, 0x85, 0x6e, 0x8a, 0x59, 0xcd, + 0x86, 0x2a, 0x54, 0x49, 0x33, 0x72, 0x28, 0x58, 0x56, 0xca, 0x5d, 0x19, 0x82, 0x85, 0x06, 0x2c, + 0x3b, 0xfc, 0xd5, 0x84, 0xe5, 0xe0, 0x53, 0x71, 0x99, 0xe4, 0x0d, 0xac, 0xbd, 0x93, 0x48, 0x35, + 0x1a, 0x8b, 0x91, 0xcd, 0xfa, 0x56, 0xfa, 0xf5, 0xf9, 0x3a, 0x5b, 0x9e, 0xb1, 0xa8, 0x57, 0x59, + 0xd4, 0xeb, 0x17, 0x16, 0x2d, 0x92, 0xcd, 0x8d, 0xfe, 0x4d, 0xf2, 0x6b, 0x68, 0xd5, 0xce, 0x26, + 0x1d, 0x4f, 0x8a, 0xc8, 0xbb, 0xed, 0x74, 0xe7, 0xbe, 0x82, 0xa4, 0x0f, 0x70, 0xc2, 0x54, 0x95, + 0xe9, 0xd4, 0x21, 0x53, 0xb0, 0x4a, 0xef, 0xdd, 0xcb, 0xd9, 0xad, 0x07, 0xb0, 0x7e, 0xd3, 0xd1, + 0xc4, 0xa9, 0x44, 0xdc, 0xfd, 0xf5, 0x70, 0x7a, 0xf7, 0x72, 0xb6, 0xd4, 0x09, 0x90, 0xbb, 0x5e, + 0x25, 0xff, 0x97, 0x29, 0x73, 0x4d, 0x3c, 0x77, 0x31, 0xdf, 0x60, 0x7b, 0xae, 0x4f, 0xc8, 0x5e, + 0xa5, 0xe3, 0x41, 0xc3, 0x3a, 0xcf, 0x1e, 0x0b, 0xb3, 0xca, 0x13, 0xe8, 0xce, 0x3b, 0x4f, 0xf2, + 0xb4, 0xac, 0xf1, 0x88, 0xa9, 0x9c, 0xbd, 0x47, 0xa2, 0x4c, 0xa3, 0xb7, 0x07, 0x5f, 0x9e, 0x27, + 0x4c, 0x5f, 0xe4, 0xe7, 0x5e, 0xc4, 0x53, 0xdf, 0x7e, 0x96, 0xfa, 0xaf, 0x18, 0x27, 0xbe, 0x42, + 0x79, 0xc9, 0x22, 0xf4, 0xa5, 0x88, 0xce, 0x97, 0xcb, 0x95, 0xbc, 0xfa, 0x1d, 0x00, 0x00, 0xff, + 0xff, 0xd6, 0x3d, 0x2f, 0x30, 0x5b, 0x06, 0x00, 0x00, } diff --git a/rpc/participant.psrpc.go b/rpc/participant.psrpc.go index 2b92710c1..6e3354d7c 100644 --- a/rpc/participant.psrpc.go +++ b/rpc/participant.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. // source: rpc/participant.proto package rpc @@ -201,7 +201,7 @@ func (s *participantServer[ParticipantTopicType]) Kill() { s.rpc.Close(true) } -var psrpcFileDescriptor5 = []byte{ +var psrpcFileDescriptor6 = []byte{ // 299 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xcf, 0x4a, 0xc3, 0x40, 0x10, 0xc6, 0x09, 0x8a, 0x87, 0x2d, 0x82, 0x5d, 0x15, 0x4a, 0x50, 0xa9, 0xb5, 0x27, 0x91, 0x04, diff --git a/rpc/room.psrpc.go b/rpc/room.psrpc.go index c3378c8f6..d85cea79d 100644 --- a/rpc/room.psrpc.go +++ b/rpc/room.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. // source: rpc/room.proto package rpc @@ -180,7 +180,7 @@ func (s *roomServer[RoomTopicType]) Kill() { s.rpc.Close(true) } -var psrpcFileDescriptor4 = []byte{ +var psrpcFileDescriptor5 = []byte{ // 237 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2b, 0x2a, 0x48, 0xd6, 0x2f, 0xca, 0xcf, 0xcf, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x2e, 0x2a, 0x48, 0x96, diff --git a/rpc/signal.psrpc.go b/rpc/signal.psrpc.go index 348f59114..3a62768ae 100644 --- a/rpc/signal.psrpc.go +++ b/rpc/signal.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. // source: rpc/signal.proto package rpc @@ -120,7 +120,7 @@ func (s *signalServer[NodeIdTopicType]) Kill() { s.rpc.Close(true) } -var psrpcFileDescriptor6 = []byte{ +var psrpcFileDescriptor7 = []byte{ // 313 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0xcf, 0x4e, 0x02, 0x31, 0x10, 0xc6, 0x53, 0x17, 0x10, 0x8b, 0x24, 0x58, 0x14, 0x9a, 0x3d, 0x6d, 0x38, 0x6d, 0x8c, 0xe9, diff --git a/rpc/sip.pb.go b/rpc/sip.pb.go new file mode 100644 index 000000000..6fb85540b --- /dev/null +++ b/rpc/sip.pb.go @@ -0,0 +1,214 @@ +// Copyright 2023 LiveKit, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.4 +// source: rpc/sip.proto + +package rpc + +import ( + _ "github.com/livekit/psrpc/protoc-gen-psrpc/options" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type InternalUpdateSIPParticipantRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *InternalUpdateSIPParticipantRequest) Reset() { + *x = InternalUpdateSIPParticipantRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_sip_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InternalUpdateSIPParticipantRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InternalUpdateSIPParticipantRequest) ProtoMessage() {} + +func (x *InternalUpdateSIPParticipantRequest) ProtoReflect() protoreflect.Message { + mi := &file_rpc_sip_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InternalUpdateSIPParticipantRequest.ProtoReflect.Descriptor instead. +func (*InternalUpdateSIPParticipantRequest) Descriptor() ([]byte, []int) { + return file_rpc_sip_proto_rawDescGZIP(), []int{0} +} + +type InternalUpdateSIPParticipantResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *InternalUpdateSIPParticipantResponse) Reset() { + *x = InternalUpdateSIPParticipantResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_rpc_sip_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InternalUpdateSIPParticipantResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InternalUpdateSIPParticipantResponse) ProtoMessage() {} + +func (x *InternalUpdateSIPParticipantResponse) ProtoReflect() protoreflect.Message { + mi := &file_rpc_sip_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InternalUpdateSIPParticipantResponse.ProtoReflect.Descriptor instead. +func (*InternalUpdateSIPParticipantResponse) Descriptor() ([]byte, []int) { + return file_rpc_sip_proto_rawDescGZIP(), []int{1} +} + +var File_rpc_sip_proto protoreflect.FileDescriptor + +var file_rpc_sip_proto_rawDesc = []byte{ + 0x0a, 0x0d, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x69, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x03, 0x72, 0x70, 0x63, 0x1a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x25, 0x0a, 0x23, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x26, 0x0a, 0x24, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x32, 0x82, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x12, 0x73, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x72, 0x70, 0x63, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x06, 0xb2, 0x89, 0x01, 0x02, 0x30, 0x01, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2f, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_rpc_sip_proto_rawDescOnce sync.Once + file_rpc_sip_proto_rawDescData = file_rpc_sip_proto_rawDesc +) + +func file_rpc_sip_proto_rawDescGZIP() []byte { + file_rpc_sip_proto_rawDescOnce.Do(func() { + file_rpc_sip_proto_rawDescData = protoimpl.X.CompressGZIP(file_rpc_sip_proto_rawDescData) + }) + return file_rpc_sip_proto_rawDescData +} + +var file_rpc_sip_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_rpc_sip_proto_goTypes = []interface{}{ + (*InternalUpdateSIPParticipantRequest)(nil), // 0: rpc.InternalUpdateSIPParticipantRequest + (*InternalUpdateSIPParticipantResponse)(nil), // 1: rpc.InternalUpdateSIPParticipantResponse +} +var file_rpc_sip_proto_depIdxs = []int32{ + 0, // 0: rpc.SIPInternal.UpdateSIPParticipant:input_type -> rpc.InternalUpdateSIPParticipantRequest + 1, // 1: rpc.SIPInternal.UpdateSIPParticipant:output_type -> rpc.InternalUpdateSIPParticipantResponse + 1, // [1:2] is the sub-list for method output_type + 0, // [0:1] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_rpc_sip_proto_init() } +func file_rpc_sip_proto_init() { + if File_rpc_sip_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_rpc_sip_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InternalUpdateSIPParticipantRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rpc_sip_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InternalUpdateSIPParticipantResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_rpc_sip_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_rpc_sip_proto_goTypes, + DependencyIndexes: file_rpc_sip_proto_depIdxs, + MessageInfos: file_rpc_sip_proto_msgTypes, + }.Build() + File_rpc_sip_proto = out.File + file_rpc_sip_proto_rawDesc = nil + file_rpc_sip_proto_goTypes = nil + file_rpc_sip_proto_depIdxs = nil +} diff --git a/rpc/sip.proto b/rpc/sip.proto new file mode 100644 index 000000000..f31cc4b11 --- /dev/null +++ b/rpc/sip.proto @@ -0,0 +1,31 @@ +// Copyright 2023 LiveKit, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package rpc; + +option go_package = "github.com/livekit/livekit/pkg/service/rpc"; + +import "options.proto"; + +service SIPInternal { + rpc UpdateSIPParticipant(InternalUpdateSIPParticipantRequest) returns (InternalUpdateSIPParticipantResponse) { + option (psrpc.options).affinity_func = true; + } +} + +message InternalUpdateSIPParticipantRequest {} + +message InternalUpdateSIPParticipantResponse {} diff --git a/rpc/sip.psrpc.go b/rpc/sip.psrpc.go new file mode 100644 index 000000000..3c15082f9 --- /dev/null +++ b/rpc/sip.psrpc.go @@ -0,0 +1,136 @@ +// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. +// source: rpc/sip.proto + +package rpc + +import ( + "context" + + "github.com/livekit/psrpc" + "github.com/livekit/psrpc/pkg/client" + "github.com/livekit/psrpc/pkg/info" + "github.com/livekit/psrpc/pkg/rand" + "github.com/livekit/psrpc/pkg/server" + "github.com/livekit/psrpc/version" +) + +var _ = version.PsrpcVersion_0_5 + +// ============================ +// SIPInternal Client Interface +// ============================ + +type SIPInternalClient interface { + UpdateSIPParticipant(ctx context.Context, req *InternalUpdateSIPParticipantRequest, opts ...psrpc.RequestOption) (*InternalUpdateSIPParticipantResponse, error) +} + +// ================================ +// SIPInternal ServerImpl Interface +// ================================ + +type SIPInternalServerImpl interface { + UpdateSIPParticipant(context.Context, *InternalUpdateSIPParticipantRequest) (*InternalUpdateSIPParticipantResponse, error) + UpdateSIPParticipantAffinity(context.Context, *InternalUpdateSIPParticipantRequest) float32 +} + +// ============================ +// SIPInternal Server Interface +// ============================ + +type SIPInternalServer interface { + + // Close and wait for pending RPCs to complete + Shutdown() + + // Close immediately, without waiting for pending RPCs + Kill() +} + +// ================== +// SIPInternal Client +// ================== + +type sIPInternalClient struct { + client *client.RPCClient +} + +// NewSIPInternalClient creates a psrpc client that implements the SIPInternalClient interface. +func NewSIPInternalClient(bus psrpc.MessageBus, opts ...psrpc.ClientOption) (SIPInternalClient, error) { + sd := &info.ServiceDefinition{ + Name: "SIPInternal", + ID: rand.NewClientID(), + } + + sd.RegisterMethod("UpdateSIPParticipant", true, false, true, false) + + rpcClient, err := client.NewRPCClient(sd, bus, opts...) + if err != nil { + return nil, err + } + + return &sIPInternalClient{ + client: rpcClient, + }, nil +} + +func (c *sIPInternalClient) UpdateSIPParticipant(ctx context.Context, req *InternalUpdateSIPParticipantRequest, opts ...psrpc.RequestOption) (*InternalUpdateSIPParticipantResponse, error) { + return client.RequestSingle[*InternalUpdateSIPParticipantResponse](ctx, c.client, "UpdateSIPParticipant", nil, req, opts...) +} + +// ================== +// SIPInternal Server +// ================== + +type sIPInternalServer struct { + svc SIPInternalServerImpl + rpc *server.RPCServer +} + +// NewSIPInternalServer builds a RPCServer that will route requests +// to the corresponding method in the provided svc implementation. +func NewSIPInternalServer(svc SIPInternalServerImpl, bus psrpc.MessageBus, opts ...psrpc.ServerOption) (SIPInternalServer, error) { + sd := &info.ServiceDefinition{ + Name: "SIPInternal", + ID: rand.NewServerID(), + } + + s := server.NewRPCServer(sd, bus, opts...) + + sd.RegisterMethod("UpdateSIPParticipant", true, false, true, false) + var err error + err = server.RegisterHandler(s, "UpdateSIPParticipant", nil, svc.UpdateSIPParticipant, svc.UpdateSIPParticipantAffinity) + if err != nil { + s.Close(false) + return nil, err + } + + return &sIPInternalServer{ + svc: svc, + rpc: s, + }, nil +} + +func (s *sIPInternalServer) Shutdown() { + s.rpc.Close(false) +} + +func (s *sIPInternalServer) Kill() { + s.rpc.Close(true) +} + +var psrpcFileDescriptor3 = []byte{ + // 193 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2d, 0x2a, 0x48, 0xd6, + 0x2f, 0xce, 0x2c, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x2e, 0x2a, 0x48, 0x96, 0xe2, + 0xcd, 0x2f, 0x28, 0xc9, 0xcc, 0xcf, 0x2b, 0x86, 0x88, 0x29, 0xa9, 0x72, 0x29, 0x7b, 0xe6, 0x95, + 0xa4, 0x16, 0xe5, 0x25, 0xe6, 0x84, 0x16, 0xa4, 0x24, 0x96, 0xa4, 0x06, 0x7b, 0x06, 0x04, 0x24, + 0x16, 0x95, 0x64, 0x26, 0x67, 0x16, 0x24, 0xe6, 0x95, 0x04, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, + 0x28, 0xa9, 0x71, 0xa9, 0xe0, 0x57, 0x56, 0x5c, 0x90, 0x9f, 0x57, 0x9c, 0x6a, 0xd4, 0xc2, 0xc8, + 0xc5, 0x1d, 0xec, 0x19, 0x00, 0x53, 0x2b, 0x54, 0xca, 0x25, 0x82, 0x4d, 0xbd, 0x90, 0x86, 0x5e, + 0x51, 0x41, 0xb2, 0x1e, 0x11, 0x36, 0x4b, 0x69, 0x12, 0xa1, 0x12, 0x62, 0xb9, 0x12, 0xc7, 0xa6, + 0x4e, 0x46, 0x16, 0x07, 0x46, 0x03, 0x46, 0x27, 0x9d, 0x28, 0xad, 0xf4, 0xcc, 0x92, 0x8c, 0xd2, + 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0xfd, 0x9c, 0xcc, 0xb2, 0xd4, 0xec, 0xcc, 0x12, 0x38, 0x5d, 0x90, + 0x9d, 0xae, 0x5f, 0x9c, 0x5a, 0x54, 0x96, 0x99, 0x9c, 0xaa, 0x5f, 0x54, 0x90, 0x9c, 0xc4, 0x06, + 0x0e, 0x0a, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6d, 0xf3, 0xf6, 0x44, 0x2f, 0x01, 0x00, + 0x00, +} diff --git a/rpc/sip_client.go b/rpc/sip_client.go new file mode 100644 index 000000000..3536fecde --- /dev/null +++ b/rpc/sip_client.go @@ -0,0 +1,42 @@ +// Copyright 2023 LiveKit, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package rpc + +import ( + "github.com/livekit/psrpc" +) + +type SIPClient interface { + SIPInternalClient +} + +type sipClient struct { + SIPInternalClient +} + +func NewSIPClient(bus psrpc.MessageBus) (SIPClient, error) { + if bus == nil { + return nil, nil + } + + internalClient, err := NewSIPInternalClient(bus) + if err != nil { + return nil, err + } + + return &sipClient{ + SIPInternalClient: internalClient, + }, nil +} diff --git a/utils/id.go b/utils/id.go index e68bcadc7..3d4f01b04 100644 --- a/utils/id.go +++ b/utils/id.go @@ -28,17 +28,20 @@ import ( const GuidSize = 12 const ( - RoomPrefix = "RM_" - NodePrefix = "ND_" - ParticipantPrefix = "PA_" - TrackPrefix = "TR_" - APIKeyPrefix = "API" - EgressPrefix = "EG_" - IngressPrefix = "IN_" - RPCPrefix = "RPC_" - WHIPResourcePrefix = "WH_" - RTMPResourcePrefix = "RT_" - URLResourcePrefix = "UR_" + RoomPrefix = "RM_" + NodePrefix = "ND_" + ParticipantPrefix = "PA_" + TrackPrefix = "TR_" + APIKeyPrefix = "API" + EgressPrefix = "EG_" + IngressPrefix = "IN_" + SIPTrunkPrefix = "ST_" + SIPDispatchRulePrefix = "SDR_" + SIPParticipantPrefix = "SP_" + RPCPrefix = "RPC_" + WHIPResourcePrefix = "WH_" + RTMPResourcePrefix = "RT_" + URLResourcePrefix = "UR_" ) func NewGuid(prefix string) string {