From 851aaab0b4c47ddbbd62dea350b03076d4bd336d Mon Sep 17 00:00:00 2001 From: Sean DuBois Date: Wed, 8 Nov 2023 10:01:02 -0500 Subject: [PATCH] Add SIP RPC --- infra/link.pb.go | 2 +- infra/link_grpc.pb.go | 2 +- livekit/livekit_agent.pb.go | 2 +- livekit/livekit_analytics.pb.go | 2 +- livekit/livekit_analytics_grpc.pb.go | 2 +- livekit/livekit_egress.pb.go | 2 +- livekit/livekit_ingress.pb.go | 2 +- livekit/livekit_internal.pb.go | 2 +- livekit/livekit_models.pb.go | 2 +- livekit/livekit_room.pb.go | 2 +- livekit/livekit_rtc.pb.go | 2 +- livekit/livekit_sip.pb.go | 697 ++++++++++++++++----------- livekit/livekit_sip.twirp.go | 113 ++--- livekit/livekit_webhook.pb.go | 2 +- livekit_sip.proto | 19 +- magefile.go | 1 + rpc/agent.pb.go | 2 +- rpc/egress.pb.go | 2 +- rpc/ingress.pb.go | 2 +- rpc/io.pb.go | 313 +++++++++--- rpc/io.proto | 27 ++ rpc/io.psrpc.go | 84 ++-- rpc/participant.pb.go | 2 +- rpc/participant.psrpc.go | 2 +- rpc/room.pb.go | 2 +- rpc/room.psrpc.go | 2 +- rpc/signal.pb.go | 2 +- rpc/signal.psrpc.go | 2 +- rpc/sip.pb.go | 214 ++++++++ rpc/sip.proto | 31 ++ rpc/sip.psrpc.go | 136 ++++++ rpc/sip_client.go | 42 ++ utils/id.go | 25 +- 33 files changed, 1280 insertions(+), 464 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/infra/link.pb.go b/infra/link.pb.go index d5d033a41..059150f08 100644 --- a/infra/link.pb.go +++ b/infra/link.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: infra/link.proto package infra diff --git a/infra/link_grpc.pb.go b/infra/link_grpc.pb.go index a7d8284ed..6b1a20101 100644 --- a/infra/link_grpc.pb.go +++ b/infra/link_grpc.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.4 +// - protoc v4.24.4 // source: infra/link.proto package infra diff --git a/livekit/livekit_agent.pb.go b/livekit/livekit_agent.pb.go index a527a56bd..2c56ca356 100644 --- a/livekit/livekit_agent.pb.go +++ b/livekit/livekit_agent.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: livekit_agent.proto package livekit diff --git a/livekit/livekit_analytics.pb.go b/livekit/livekit_analytics.pb.go index 44525de78..a6d7b7f4c 100644 --- a/livekit/livekit_analytics.pb.go +++ b/livekit/livekit_analytics.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: livekit_analytics.proto package livekit diff --git a/livekit/livekit_analytics_grpc.pb.go b/livekit/livekit_analytics_grpc.pb.go index 7fdbbe64b..778b50901 100644 --- a/livekit/livekit_analytics_grpc.pb.go +++ b/livekit/livekit_analytics_grpc.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.4 +// - protoc v4.24.4 // source: livekit_analytics.proto package livekit diff --git a/livekit/livekit_egress.pb.go b/livekit/livekit_egress.pb.go index 1d4f43f88..f61abfbd9 100644 --- a/livekit/livekit_egress.pb.go +++ b/livekit/livekit_egress.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: livekit_egress.proto package livekit diff --git a/livekit/livekit_ingress.pb.go b/livekit/livekit_ingress.pb.go index 0b2861085..2f6c3741e 100644 --- a/livekit/livekit_ingress.pb.go +++ b/livekit/livekit_ingress.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: livekit_ingress.proto package livekit diff --git a/livekit/livekit_internal.pb.go b/livekit/livekit_internal.pb.go index b557334a1..91b2bac75 100644 --- a/livekit/livekit_internal.pb.go +++ b/livekit/livekit_internal.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: livekit_internal.proto package livekit diff --git a/livekit/livekit_models.pb.go b/livekit/livekit_models.pb.go index 6f92e7e10..22fc8a8e3 100644 --- a/livekit/livekit_models.pb.go +++ b/livekit/livekit_models.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: livekit_models.proto package livekit diff --git a/livekit/livekit_room.pb.go b/livekit/livekit_room.pb.go index 487fe826a..21baf163f 100644 --- a/livekit/livekit_room.pb.go +++ b/livekit/livekit_room.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: livekit_room.proto package livekit diff --git a/livekit/livekit_rtc.pb.go b/livekit/livekit_rtc.pb.go index cff98c889..dd2cb33cf 100644 --- a/livekit/livekit_rtc.pb.go +++ b/livekit/livekit_rtc.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: livekit_rtc.proto package livekit diff --git a/livekit/livekit_sip.pb.go b/livekit/livekit_sip.pb.go index a3a366b14..b64ec8d2f 100644 --- a/livekit/livekit_sip.pb.go +++ b/livekit/livekit_sip.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: livekit_sip.proto package livekit @@ -109,7 +109,10 @@ type SIPTrunkInfo struct { 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 +154,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 +478,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 +500,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 +518,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 (*CreateSIPDispatchRuleRequest_DispatchRulePin) isCreateSIPDispatchRuleRequest_Instrument() {} +func (*SIPDispatchRule_DispatchRulePin) isSIPDispatchRule_Rule() {} -func (*CreateSIPDispatchRuleRequest_DispatchRuleIndividual) isCreateSIPDispatchRuleRequest_Instrument() { +func (*SIPDispatchRule_DispatchRuleIndividual) isSIPDispatchRule_Rule() {} + +type CreateSIPDispatchRuleRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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 +651,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 +673,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 +686,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 +696,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 +726,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 +739,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 +752,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 +766,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 +779,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 +792,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 +813,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 +826,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 +839,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 +865,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 +878,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 +891,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 +919,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 +932,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 +945,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 +970,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 +983,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 +996,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 +1024,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 +1037,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 +1050,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 +1069,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 +1082,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 +1095,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 +1109,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 +1122,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 +1135,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 +1156,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 +1169,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 +1182,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 { @@ -1111,35 +1205,41 @@ var file_livekit_sip_proto_rawDesc = []byte{ 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, 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, + 0x65, 0x78, 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, 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, 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, @@ -1155,123 +1255,135 @@ var file_livekit_sip_proto_rawDesc = []byte{ 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, - 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, + 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, + 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, 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, 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, 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, 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, + 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, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 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, 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, + 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, 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, } var ( @@ -1286,7 +1398,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 +1408,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 +1561,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 +1573,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 +1585,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 +1597,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 +1609,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 +1621,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 +1633,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 +1645,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 +1657,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 +1669,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 +1681,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 +1693,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 +1718,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 +1728,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..e95cfc532 100644 --- a/livekit/livekit_sip.twirp.go +++ b/livekit/livekit_sip.twirp.go @@ -3028,59 +3028,62 @@ 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, + // 897 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x72, 0xdb, 0x44, + 0x14, 0x8e, 0xe5, 0x60, 0xe2, 0xe3, 0xe0, 0xd4, 0x5b, 0xdb, 0xe3, 0xda, 0x2e, 0xcd, 0x28, 0x85, + 0xe9, 0x40, 0xc7, 0x19, 0xcc, 0x15, 0x1d, 0xae, 0x12, 0x8f, 0x1b, 0x4f, 0x4a, 0x2a, 0xe4, 0xde, + 0x94, 0x09, 0x08, 0xc5, 0xbb, 0x89, 0x77, 0x2a, 0x4b, 0x42, 0xbb, 0x0e, 0xb9, 0xe7, 0x19, 0x98, + 0xe1, 0x82, 0x27, 0xe0, 0x1d, 0x78, 0x21, 0x1e, 0x81, 0x2b, 0x46, 0xf2, 0xea, 0x7f, 0xa5, 0xc4, + 0xdc, 0x59, 0x67, 0xcf, 0x7e, 0xfb, 0xed, 0xb7, 0xe7, 0x3b, 0xc7, 0xd0, 0xb2, 0xe8, 0x2d, 0xf9, + 0x40, 0xb9, 0xc1, 0xa8, 0x3b, 0x72, 0x3d, 0x87, 0x3b, 0xe8, 0x63, 0x11, 0x52, 0x7f, 0xab, 0x40, + 0xe7, 0xd4, 0x23, 0x26, 0x27, 0xf3, 0x99, 0xf6, 0xce, 0x5b, 0xdb, 0x1f, 0x74, 0xf2, 0xcb, 0x9a, + 0x30, 0x8e, 0x86, 0x50, 0x37, 0x31, 0xf6, 0x08, 0x63, 0x84, 0xf5, 0x2a, 0x87, 0xd5, 0x17, 0x75, + 0x3d, 0x0e, 0xa0, 0x26, 0x28, 0xdc, 0xe9, 0x29, 0x87, 0x95, 0x17, 0x75, 0x5d, 0xe1, 0x0e, 0xfa, + 0x16, 0xfa, 0xa6, 0x65, 0x39, 0xbf, 0x12, 0x6c, 0x60, 0xc2, 0x38, 0xb5, 0x4d, 0x4e, 0x1d, 0x9b, + 0x19, 0x1e, 0xb9, 0x21, 0x77, 0xbd, 0x6a, 0xb0, 0xbd, 0x27, 0x32, 0x26, 0x89, 0x04, 0xdd, 0x5f, + 0x57, 0xff, 0xac, 0xc0, 0x7e, 0x78, 0xfe, 0xcc, 0xbe, 0x76, 0xd0, 0x21, 0xec, 0x33, 0xea, 0x1a, + 0xdc, 0x0f, 0x18, 0x14, 0xf7, 0x2a, 0xc1, 0x41, 0xc0, 0xa8, 0xbb, 0xc9, 0xc1, 0x69, 0x7a, 0x8a, + 0x9c, 0x5e, 0xf5, 0x81, 0xf4, 0x76, 0xef, 0xa1, 0xd7, 0x81, 0xc7, 0x6f, 0x28, 0xe3, 0x19, 0x85, + 0xd4, 0x53, 0x68, 0xa7, 0xc3, 0xcc, 0x75, 0x6c, 0x46, 0xd0, 0x97, 0xf0, 0x11, 0xe5, 0x64, 0xb5, + 0x51, 0xad, 0x31, 0xee, 0x8c, 0x84, 0xd8, 0xa3, 0xe4, 0x15, 0xf5, 0x4d, 0x8e, 0xfa, 0x0d, 0x74, + 0x26, 0xc4, 0x22, 0x79, 0xfd, 0xef, 0x95, 0x40, 0x9d, 0x42, 0x67, 0x3e, 0xd3, 0x26, 0x94, 0xb9, + 0x26, 0x5f, 0x2c, 0xf5, 0xb5, 0x45, 0x26, 0xd4, 0x23, 0x0b, 0x8e, 0x06, 0x50, 0xf7, 0x1c, 0x67, + 0x65, 0xd8, 0xe6, 0x8a, 0x88, 0x7d, 0x7b, 0x7e, 0xe0, 0xc2, 0x5c, 0x11, 0xf4, 0x08, 0xaa, 0x2e, + 0xb5, 0xc5, 0xd3, 0xf9, 0x3f, 0xd5, 0x53, 0x40, 0x19, 0x1c, 0x8d, 0xda, 0xdb, 0x82, 0x5c, 0xc0, + 0x93, 0x0c, 0xc8, 0xcc, 0xc6, 0xf4, 0x96, 0xe2, 0xb5, 0x69, 0xa1, 0x67, 0xd0, 0x08, 0xb0, 0x5c, + 0x8f, 0x5c, 0xd3, 0xbb, 0xf0, 0x2a, 0x7e, 0x48, 0x0b, 0x22, 0x12, 0xbc, 0x3f, 0x14, 0x38, 0xc8, + 0x00, 0x22, 0x1d, 0xda, 0x58, 0x7c, 0x1b, 0xde, 0xda, 0x22, 0x06, 0x0e, 0xee, 0x1b, 0xe0, 0x35, + 0xc6, 0x9f, 0x26, 0x75, 0xce, 0xab, 0x72, 0xb6, 0xa3, 0x23, 0x9c, 0xd7, 0x6a, 0x06, 0xad, 0x34, + 0x66, 0xc8, 0xa3, 0x31, 0x1e, 0x14, 0x01, 0x6a, 0xd4, 0x3e, 0xdb, 0xd1, 0x0f, 0x70, 0x46, 0xb1, + 0x9f, 0xa0, 0x97, 0x86, 0xa2, 0x91, 0x02, 0x41, 0x29, 0x36, 0xc6, 0x6a, 0x11, 0x62, 0xac, 0xd5, + 0xd9, 0x8e, 0xde, 0xc5, 0xd2, 0x95, 0x93, 0x1a, 0xec, 0xfa, 0xb0, 0xea, 0xef, 0x15, 0x18, 0x46, + 0x9e, 0x4d, 0xa2, 0x84, 0xa5, 0xf3, 0x72, 0x93, 0x28, 0x74, 0xe9, 0x15, 0x1d, 0xaa, 0x07, 0x59, + 0xfe, 0x43, 0x87, 0x45, 0x16, 0x3a, 0x69, 0x8f, 0x6f, 0x4a, 0x8c, 0xa1, 0x2f, 0xa0, 0xb5, 0xa4, + 0x98, 0x18, 0xee, 0xd2, 0xb1, 0x89, 0x61, 0xaf, 0x57, 0x57, 0xc4, 0x0b, 0x2e, 0xb3, 0xa7, 0x1f, + 0xf8, 0x0b, 0x9a, 0x1f, 0xbf, 0x08, 0xc2, 0xea, 0xdf, 0x15, 0x78, 0x9c, 0xbb, 0xd7, 0xb5, 0x83, + 0x8e, 0xa1, 0xed, 0x57, 0x72, 0x46, 0x9b, 0xb0, 0xa2, 0x5b, 0x8c, 0xba, 0xa9, 0x2d, 0x38, 0xe2, + 0xaf, 0x6c, 0xcf, 0xbf, 0xfa, 0x10, 0xfe, 0xbb, 0x72, 0xfe, 0x43, 0xe8, 0x0b, 0x3f, 0x4b, 0x44, + 0x55, 0xbf, 0x87, 0x81, 0x74, 0x55, 0x98, 0x7e, 0x9c, 0x36, 0xfd, 0xb0, 0xf8, 0xa5, 0x63, 0xef, + 0xbf, 0x85, 0x61, 0xe4, 0x7d, 0xd9, 0x3b, 0x6e, 0x2b, 0x9c, 0x7a, 0x09, 0x83, 0xa8, 0x30, 0x34, + 0xd3, 0xe3, 0x74, 0x41, 0x5d, 0xd3, 0xe6, 0x21, 0x5e, 0xa9, 0xa5, 0xb3, 0xfd, 0x46, 0xc9, 0xf5, + 0x9b, 0x93, 0xa0, 0x4f, 0x24, 0x70, 0x83, 0xd7, 0x7d, 0x09, 0xc8, 0xdf, 0xe7, 0xc6, 0xe1, 0x98, + 0xe2, 0x23, 0x46, 0xdd, 0x64, 0x3e, 0x56, 0x09, 0x3c, 0x9d, 0x13, 0x1b, 0xa7, 0x71, 0x26, 0xef, + 0xbe, 0x9b, 0xc6, 0xb5, 0xbb, 0x05, 0x1c, 0xea, 0x42, 0x0d, 0xd3, 0x1b, 0xca, 0x99, 0xa0, 0x2b, + 0xbe, 0xd4, 0x29, 0x74, 0xf3, 0x47, 0xfc, 0x0f, 0xba, 0x03, 0x78, 0x22, 0x1e, 0x3d, 0x2f, 0xa7, + 0xfa, 0x36, 0xaa, 0x97, 0xd4, 0xa2, 0x28, 0x88, 0xaf, 0xd2, 0x05, 0x91, 0x6a, 0x26, 0x19, 0x0d, + 0xc3, 0x7a, 0x38, 0x87, 0x41, 0x54, 0x0f, 0x92, 0xe7, 0xdb, 0x8a, 0xfa, 0xf8, 0xdf, 0x1a, 0x54, + 0xe7, 0x33, 0x0d, 0xbd, 0x86, 0x66, 0x7a, 0xc0, 0xa3, 0xb8, 0x51, 0x4a, 0x27, 0x7f, 0x5f, 0x3e, + 0xb0, 0xd0, 0x39, 0xec, 0x27, 0xc7, 0x1d, 0x8a, 0x4b, 0x5c, 0x32, 0x1c, 0xfb, 0x4f, 0x0b, 0x56, + 0x85, 0x3a, 0xaf, 0xa1, 0x99, 0x1e, 0x7b, 0x09, 0x56, 0xd2, 0x79, 0x58, 0xc4, 0xea, 0x32, 0xf1, + 0xff, 0x25, 0x35, 0x2c, 0x3e, 0xcb, 0xdf, 0x52, 0xe2, 0xb1, 0x7e, 0xa9, 0x51, 0xd1, 0xcf, 0xd1, + 0xe4, 0x4f, 0x61, 0x1f, 0x65, 0x2f, 0x27, 0x43, 0x7e, 0x5e, 0x9e, 0x24, 0x84, 0xb8, 0x4c, 0xcc, + 0xff, 0x02, 0xfe, 0x65, 0x3d, 0xe2, 0x1e, 0xfe, 0xef, 0xa1, 0x2d, 0x6b, 0x08, 0xe8, 0x79, 0x5e, + 0x9c, 0x7c, 0xc1, 0xf5, 0xcb, 0x6a, 0x16, 0x99, 0xd0, 0x95, 0x3b, 0x19, 0x7d, 0x1e, 0x6f, 0x2b, + 0xb3, 0x7a, 0xff, 0x59, 0x01, 0x7c, 0xe4, 0xd5, 0x1f, 0x01, 0xe5, 0x0d, 0x86, 0xd4, 0xac, 0xae, + 0x12, 0xe6, 0x47, 0xa5, 0x39, 0x42, 0xfa, 0xf7, 0xd0, 0x96, 0xd9, 0x2d, 0x21, 0x4e, 0x89, 0x1b, + 0x4b, 0xc5, 0x39, 0x99, 0xfe, 0x70, 0x74, 0x43, 0xf9, 0x72, 0x7d, 0x35, 0x5a, 0x38, 0xab, 0x63, + 0x91, 0x78, 0x1c, 0xfc, 0xf7, 0x5e, 0x38, 0x56, 0x18, 0xf8, 0x4b, 0xf9, 0xe4, 0x0d, 0xbd, 0x25, + 0xe7, 0x94, 0x8f, 0x34, 0x7f, 0xe9, 0x1f, 0xa5, 0x29, 0xbe, 0x5f, 0xbd, 0x0a, 0x02, 0x57, 0xb5, + 0x60, 0xcb, 0xd7, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x69, 0x2a, 0xac, 0x52, 0xc3, 0x0b, 0x00, + 0x00, } diff --git a/livekit/livekit_webhook.pb.go b/livekit/livekit_webhook.pb.go index 5b330c83a..4692b5ebe 100644 --- a/livekit/livekit_webhook.pb.go +++ b/livekit/livekit_webhook.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: livekit_webhook.proto package livekit diff --git a/livekit_sip.proto b/livekit_sip.proto index 601f5e18e..53af00a56 100644 --- a/livekit_sip.proto +++ b/livekit_sip.proto @@ -80,6 +80,10 @@ message CreateSIPTrunkRequest { message SIPTrunkInfo { string sip_trunk_id = 1; + + repeated string addresses = 2; + string to = 3; + repeated string allowed_destinations_regex = 4; } message ListSIPTrunkRequest { @@ -117,8 +121,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 +135,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.pb.go b/rpc/agent.pb.go index 1872ebc0a..c13d95171 100644 --- a/rpc/agent.pb.go +++ b/rpc/agent.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: rpc/agent.proto package rpc diff --git a/rpc/egress.pb.go b/rpc/egress.pb.go index 2eb36a9d3..5d07fc3f7 100644 --- a/rpc/egress.pb.go +++ b/rpc/egress.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: rpc/egress.proto package rpc diff --git a/rpc/ingress.pb.go b/rpc/ingress.pb.go index f00b198c3..f0da1fd52 100644 --- a/rpc/ingress.pb.go +++ b/rpc/ingress.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: rpc/ingress.proto package rpc diff --git a/rpc/io.pb.go b/rpc/io.pb.go index 348dcb577..acd21d813 100644 --- a/rpc/io.pb.go +++ b/rpc/io.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: rpc/io.proto package rpc @@ -258,6 +258,146 @@ func (x *UpdateIngressStateRequest) GetState() *livekit.IngressState { return nil } +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[4] + 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[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 EvaluateSIPDispatchRulesRequest.ProtoReflect.Descriptor instead. +func (*EvaluateSIPDispatchRulesRequest) Descriptor() ([]byte, []int) { + return file_rpc_io_proto_rawDescGZIP(), []int{4} +} + +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[5] + 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[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 EvaluateSIPDispatchRulesResponse.ProtoReflect.Descriptor instead. +func (*EvaluateSIPDispatchRulesResponse) Descriptor() ([]byte, []int) { + return file_rpc_io_proto_rawDescGZIP(), []int{5} +} + +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 +428,62 @@ 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, 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, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 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, 0x84, 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, 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, + 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, 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 +498,43 @@ 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, 6) 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 + (*EvaluateSIPDispatchRulesRequest)(nil), // 4: rpc.EvaluateSIPDispatchRulesRequest + (*EvaluateSIPDispatchRulesResponse)(nil), // 5: rpc.EvaluateSIPDispatchRulesResponse + (*livekit.IngressInfo)(nil), // 6: livekit.IngressInfo + (*livekit.IngressState)(nil), // 7: livekit.IngressState + (*livekit.EgressInfo)(nil), // 8: livekit.EgressInfo + (*livekit.ListEgressRequest)(nil), // 9: livekit.ListEgressRequest + (*emptypb.Empty)(nil), // 10: google.protobuf.Empty + (*livekit.ListEgressResponse)(nil), // 11: 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 + 6, // 0: rpc.GetIngressInfoResponse.info:type_name -> livekit.IngressInfo + 7, // 1: rpc.UpdateIngressStateRequest.state:type_name -> livekit.IngressState + 8, // 2: rpc.IOInfo.CreateEgress:input_type -> livekit.EgressInfo + 8, // 3: rpc.IOInfo.UpdateEgress:input_type -> livekit.EgressInfo + 0, // 4: rpc.IOInfo.GetEgress:input_type -> rpc.GetEgressRequest + 9, // 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.EvaluateSIPDispatchRules:input_type -> rpc.EvaluateSIPDispatchRulesRequest + 10, // 9: rpc.IOInfo.CreateEgress:output_type -> google.protobuf.Empty + 10, // 10: rpc.IOInfo.UpdateEgress:output_type -> google.protobuf.Empty + 8, // 11: rpc.IOInfo.GetEgress:output_type -> livekit.EgressInfo + 11, // 12: rpc.IOInfo.ListEgress:output_type -> livekit.ListEgressResponse + 2, // 13: rpc.IOInfo.GetIngressInfo:output_type -> rpc.GetIngressInfoResponse + 10, // 14: rpc.IOInfo.UpdateIngressState:output_type -> google.protobuf.Empty + 5, // 15: rpc.IOInfo.EvaluateSIPDispatchRules:output_type -> rpc.EvaluateSIPDispatchRulesResponse + 9, // [9:16] is the sub-list for method output_type + 2, // [2:9] 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 +591,30 @@ func file_rpc_io_proto_init() { return nil } } + file_rpc_io_proto_msgTypes[4].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[5].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 +622,7 @@ func file_rpc_io_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rpc_io_proto_rawDesc, NumEnums: 0, - NumMessages: 4, + NumMessages: 6, NumExtensions: 0, NumServices: 1, }, diff --git a/rpc/io.proto b/rpc/io.proto index 100e80bc3..26465cd0a 100644 --- a/rpc/io.proto +++ b/rpc/io.proto @@ -32,6 +32,9 @@ service IOInfo { // ingress rpc GetIngressInfo(GetIngressInfoRequest) returns (GetIngressInfoResponse); rpc UpdateIngressState(UpdateIngressStateRequest) returns (google.protobuf.Empty); + + // sip + rpc EvaluateSIPDispatchRules(EvaluateSIPDispatchRulesRequest) returns (EvaluateSIPDispatchRulesResponse); } message GetEgressRequest { @@ -55,3 +58,27 @@ message UpdateIngressStateRequest { string ingress_id = 1; livekit.IngressState state = 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..3619ddbff 100644 --- a/rpc/io.psrpc.go +++ b/rpc/io.psrpc.go @@ -36,6 +36,9 @@ 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 + EvaluateSIPDispatchRules(ctx context.Context, req *EvaluateSIPDispatchRulesRequest, opts ...psrpc.RequestOption) (*EvaluateSIPDispatchRulesResponse, error) } // =========================== @@ -56,6 +59,9 @@ type IOInfoServerImpl interface { GetIngressInfo(context.Context, *GetIngressInfoRequest) (*GetIngressInfoResponse, error) UpdateIngressState(context.Context, *UpdateIngressStateRequest) (*google_protobuf.Empty, error) + + // sip + EvaluateSIPDispatchRules(context.Context, *EvaluateSIPDispatchRulesRequest) (*EvaluateSIPDispatchRulesResponse, error) } // ======================= @@ -92,6 +98,7 @@ 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("EvaluateSIPDispatchRules", false, false, true, true) rpcClient, err := client.NewRPCClient(sd, bus, opts...) if err != nil { @@ -127,6 +134,10 @@ 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) 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 +200,13 @@ func NewIOInfoServer(svc IOInfoServerImpl, bus psrpc.MessageBus, opts ...psrpc.S 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 +221,42 @@ 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{ + // 576 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x53, 0x5d, 0x4f, 0xdb, 0x30, + 0x14, 0x55, 0xa1, 0x20, 0x7a, 0x41, 0x08, 0x99, 0x16, 0x75, 0xa9, 0x36, 0x50, 0xb4, 0x49, 0x68, + 0x43, 0x89, 0xc6, 0x1e, 0xf6, 0xb0, 0xa7, 0x7d, 0x54, 0x28, 0x1a, 0xda, 0x50, 0x11, 0x2f, 0x7b, + 0x89, 0x4c, 0x72, 0x1b, 0xac, 0x26, 0xb1, 0x67, 0x3b, 0x45, 0x7d, 0xdf, 0x3f, 0xd8, 0x7e, 0xf0, + 0x94, 0xd8, 0x49, 0x4b, 0x69, 0xc5, 0xb4, 0xa7, 0x36, 0xe7, 0xdc, 0x7b, 0x7c, 0xee, 0xf5, 0x31, + 0xec, 0x49, 0x11, 0xf9, 0x8c, 0x7b, 0x42, 0x72, 0xcd, 0xc9, 0xa6, 0x14, 0x91, 0xd3, 0x4d, 0xd9, + 0x14, 0x27, 0x4c, 0x87, 0x98, 0x48, 0x54, 0xca, 0x50, 0x4e, 0xaf, 0x46, 0x59, 0xbe, 0x08, 0x0f, + 0x12, 0xce, 0x93, 0x14, 0xfd, 0xea, 0xeb, 0xb6, 0x18, 0xfb, 0x98, 0x09, 0x3d, 0x33, 0xa4, 0xeb, + 0xc3, 0xc1, 0x05, 0xea, 0x61, 0x55, 0x3f, 0xc2, 0x9f, 0x05, 0x2a, 0x4d, 0x06, 0xd0, 0x31, 0xba, + 0x21, 0x8b, 0xfb, 0xad, 0x93, 0xd6, 0x69, 0x67, 0xb4, 0x63, 0x80, 0x20, 0x76, 0x6f, 0xa0, 0x77, + 0x81, 0x3a, 0x30, 0x27, 0x04, 0xf9, 0x98, 0xd7, 0x5d, 0xcf, 0x01, 0xec, 0xb9, 0xf3, 0xb6, 0x8e, + 0x45, 0x82, 0xb8, 0xa4, 0x95, 0x96, 0x48, 0xb3, 0x70, 0x82, 0xb3, 0xfe, 0x86, 0xa1, 0x0d, 0xf2, + 0x15, 0x67, 0x2e, 0x87, 0xa3, 0x65, 0x59, 0x25, 0x78, 0xae, 0x90, 0x9c, 0x42, 0x9b, 0xe5, 0x63, + 0x5e, 0x29, 0xee, 0x9e, 0x77, 0x3d, 0x3b, 0xa4, 0xb7, 0x58, 0x5b, 0x55, 0x90, 0x2e, 0x6c, 0x69, + 0x3e, 0xc1, 0xdc, 0xaa, 0x9b, 0x0f, 0xd2, 0x83, 0xed, 0x7b, 0x15, 0x16, 0x32, 0xed, 0x6f, 0x1a, + 0xf8, 0x5e, 0xdd, 0xc8, 0xd4, 0x4d, 0xe0, 0xd9, 0x8d, 0x88, 0xa9, 0x46, 0xab, 0x73, 0xad, 0xa9, + 0xc6, 0x7f, 0x9c, 0xe5, 0x0d, 0x6c, 0xa9, 0xb2, 0xbc, 0x3a, 0x68, 0xf7, 0xbc, 0xb7, 0xec, 0xc9, + 0x68, 0x99, 0x1a, 0xf7, 0x4f, 0x0b, 0x8e, 0x87, 0x53, 0x9a, 0x16, 0x54, 0xe3, 0x75, 0x70, 0xf5, + 0x85, 0x29, 0x41, 0x75, 0x74, 0x37, 0x2a, 0x52, 0x6c, 0x36, 0x7e, 0x06, 0x44, 0x31, 0x11, 0x0a, + 0x2a, 0x35, 0x8b, 0x98, 0xa0, 0xb9, 0x9e, 0x9f, 0x7b, 0xa0, 0x98, 0xb8, 0x9a, 0x13, 0x41, 0x4c, + 0x08, 0xb4, 0xc7, 0x92, 0x67, 0x76, 0xcc, 0xea, 0x3f, 0xd9, 0x87, 0x0d, 0xcd, 0xed, 0x84, 0x1b, + 0x9a, 0x93, 0x63, 0xd8, 0x55, 0x32, 0x0a, 0x69, 0x1c, 0x97, 0x86, 0xfa, 0xed, 0x8a, 0x00, 0x25, + 0xa3, 0x8f, 0x06, 0x71, 0x7f, 0xb7, 0xe0, 0x64, 0xbd, 0x2d, 0xbb, 0xfb, 0x01, 0x74, 0x24, 0xe7, + 0x59, 0x98, 0xd3, 0x0c, 0xeb, 0x24, 0x94, 0xc0, 0x37, 0x9a, 0x21, 0x79, 0x0b, 0xdd, 0x87, 0x86, + 0x31, 0xd7, 0x4c, 0xd7, 0x77, 0x7b, 0x28, 0x16, 0x3d, 0x1b, 0xaa, 0x74, 0x25, 0xcd, 0xc8, 0xa1, + 0x60, 0x79, 0x65, 0x77, 0x67, 0x04, 0x16, 0xba, 0x62, 0xf9, 0xf9, 0xaf, 0x36, 0x6c, 0x07, 0xdf, + 0xcb, 0x3b, 0x25, 0x1f, 0x60, 0xef, 0xb3, 0x44, 0xaa, 0xd1, 0x84, 0x93, 0x1c, 0x36, 0x5b, 0x1e, + 0x36, 0x17, 0xef, 0x1c, 0x79, 0x26, 0xdc, 0x5e, 0x1d, 0x6e, 0x6f, 0x58, 0x86, 0xbb, 0x6c, 0x36, + 0xb7, 0xfb, 0x3f, 0xcd, 0xef, 0xa1, 0xd3, 0xbc, 0x09, 0xd2, 0xf3, 0xa4, 0x88, 0xbc, 0xe5, 0x37, + 0xe2, 0xac, 0x12, 0x24, 0x43, 0x80, 0x4b, 0xa6, 0xea, 0x4e, 0xa7, 0x29, 0x99, 0x83, 0x75, 0xfb, + 0x60, 0x25, 0x67, 0xb7, 0x1e, 0xc0, 0xfe, 0xc3, 0xb7, 0x40, 0x9c, 0xda, 0xc4, 0xe3, 0x77, 0xe7, + 0x0c, 0x56, 0x72, 0x56, 0xea, 0x12, 0xc8, 0xe3, 0x94, 0x93, 0x17, 0x55, 0xcb, 0xda, 0xf8, 0xaf, + 0x5d, 0x4c, 0x02, 0xfd, 0x75, 0x91, 0x21, 0x2f, 0x2b, 0xcd, 0x27, 0x82, 0xee, 0xbc, 0x7a, 0xa2, + 0xca, 0xd8, 0xfe, 0x74, 0xf6, 0xe3, 0x75, 0xc2, 0xf4, 0x5d, 0x71, 0xeb, 0x45, 0x3c, 0xf3, 0xed, + 0xaa, 0x9a, 0x5f, 0x31, 0x49, 0x7c, 0x85, 0x72, 0xca, 0x22, 0xf4, 0xa5, 0x88, 0x6e, 0xb7, 0x2b, + 0x9b, 0xef, 0xfe, 0x06, 0x00, 0x00, 0xff, 0xff, 0xb0, 0x84, 0x51, 0x94, 0x29, 0x05, 0x00, 0x00, } diff --git a/rpc/participant.pb.go b/rpc/participant.pb.go index 6c121e580..98857341c 100644 --- a/rpc/participant.pb.go +++ b/rpc/participant.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: rpc/participant.proto package rpc diff --git a/rpc/participant.psrpc.go b/rpc/participant.psrpc.go index 2b92710c1..224feec60 100644 --- a/rpc/participant.psrpc.go +++ b/rpc/participant.psrpc.go @@ -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.pb.go b/rpc/room.pb.go index b9b24c67a..18c99c655 100644 --- a/rpc/room.pb.go +++ b/rpc/room.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: rpc/room.proto package rpc diff --git a/rpc/room.psrpc.go b/rpc/room.psrpc.go index c3378c8f6..75e671430 100644 --- a/rpc/room.psrpc.go +++ b/rpc/room.psrpc.go @@ -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.pb.go b/rpc/signal.pb.go index f7a95aaf6..8a5730d8a 100644 --- a/rpc/signal.pb.go +++ b/rpc/signal.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.4 // source: rpc/signal.proto package rpc diff --git a/rpc/signal.psrpc.go b/rpc/signal.psrpc.go index 348f59114..73da675a6 100644 --- a/rpc/signal.psrpc.go +++ b/rpc/signal.psrpc.go @@ -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..89eb198f3 --- /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.24.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..52c37a61d --- /dev/null +++ b/rpc/sip.psrpc.go @@ -0,0 +1,136 @@ +// Code generated by protoc-gen-psrpc v0.5.0, 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 {