From 1f5de7d620c4747f1b302a7efde3da2ee1328cdd Mon Sep 17 00:00:00 2001 From: Denys Smirnov Date: Fri, 13 Sep 2024 10:45:25 +0300 Subject: [PATCH] Update SIP protocol (#805) * Update SIP protocol. Pass headers and project ID. * generated protobuf --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/few-tigers-live.md | 6 + livekit/livekit_sip.pb.go | 1057 ++++++++++++++++++++++----------- livekit/livekit_sip.twirp.go | 805 +++++++++++++++++++++---- livekit/sip.go | 94 +++ protobufs/livekit_sip.proto | 30 + protobufs/rpc/io.proto | 18 +- protobufs/rpc/sip.proto | 13 +- replay/cloud_replay.pb.go | 20 +- rpc/io.pb.go | 400 ++++++++----- rpc/io.psrpc.go | 155 ++--- rpc/sip.go | 37 +- rpc/sip.pb.go | 230 ++++--- rpc/sip.psrpc.go | 78 +-- rpc/sip_test.go | 10 +- sip/sip.go | 17 +- sip/sip_test.go | 7 +- 16 files changed, 2122 insertions(+), 855 deletions(-) create mode 100644 .changeset/few-tigers-live.md diff --git a/.changeset/few-tigers-live.md b/.changeset/few-tigers-live.md new file mode 100644 index 00000000..6cdfc46f --- /dev/null +++ b/.changeset/few-tigers-live.md @@ -0,0 +1,6 @@ +--- +"@livekit/protocol": minor +"github.com/livekit/protocol": minor +--- + +Update SIP protocol. Pass headers, project ID and hostname. diff --git a/livekit/livekit_sip.pb.go b/livekit/livekit_sip.pb.go index 51dd78a4..72a50232 100644 --- a/livekit/livekit_sip.pb.go +++ b/livekit/livekit_sip.pb.go @@ -512,6 +512,10 @@ type SIPInboundTrunkInfo struct { // May be empty to have no authentication. AuthUsername string `protobuf:"bytes,7,opt,name=auth_username,json=authUsername,proto3" json:"auth_username,omitempty"` AuthPassword string `protobuf:"bytes,8,opt,name=auth_password,json=authPassword,proto3" json:"auth_password,omitempty"` + // Include these SIP X-* headers in 200 OK responses. + Headers map[string]string `protobuf:"bytes,9,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Map SIP X-* headers from INVITE to SIP participant attributes. + HeadersToAttributes map[string]string `protobuf:"bytes,10,rep,name=headers_to_attributes,json=headersToAttributes,proto3" json:"headers_to_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *SIPInboundTrunkInfo) Reset() { @@ -602,6 +606,20 @@ func (x *SIPInboundTrunkInfo) GetAuthPassword() string { return "" } +func (x *SIPInboundTrunkInfo) GetHeaders() map[string]string { + if x != nil { + return x.Headers + } + return nil +} + +func (x *SIPInboundTrunkInfo) GetHeadersToAttributes() map[string]string { + if x != nil { + return x.HeadersToAttributes + } + return nil +} + type CreateSIPOutboundTrunkRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -670,6 +688,12 @@ type SIPOutboundTrunkInfo struct { // May be empty to have no authentication. AuthUsername string `protobuf:"bytes,7,opt,name=auth_username,json=authUsername,proto3" json:"auth_username,omitempty"` AuthPassword string `protobuf:"bytes,8,opt,name=auth_password,json=authPassword,proto3" json:"auth_password,omitempty"` + // Include these SIP X-* headers in INVITE request. + // These headers are sent as-is and may help identify this call as coming from LiveKit for the other SIP endpoint. + Headers map[string]string `protobuf:"bytes,9,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Map SIP X-* headers from 200 OK to SIP participant attributes. + // Keys are the names of X-* headers and values are the names of attributes they will be mapped to. + HeadersToAttributes map[string]string `protobuf:"bytes,10,rep,name=headers_to_attributes,json=headersToAttributes,proto3" json:"headers_to_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *SIPOutboundTrunkInfo) Reset() { @@ -760,6 +784,208 @@ func (x *SIPOutboundTrunkInfo) GetAuthPassword() string { return "" } +func (x *SIPOutboundTrunkInfo) GetHeaders() map[string]string { + if x != nil { + return x.Headers + } + return nil +} + +func (x *SIPOutboundTrunkInfo) GetHeadersToAttributes() map[string]string { + if x != nil { + return x.HeadersToAttributes + } + return nil +} + +type GetSIPInboundTrunkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SipTrunkId string `protobuf:"bytes,1,opt,name=sip_trunk_id,json=sipTrunkId,proto3" json:"sip_trunk_id,omitempty"` +} + +func (x *GetSIPInboundTrunkRequest) Reset() { + *x = GetSIPInboundTrunkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_sip_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSIPInboundTrunkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSIPInboundTrunkRequest) ProtoMessage() {} + +func (x *GetSIPInboundTrunkRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_sip_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSIPInboundTrunkRequest.ProtoReflect.Descriptor instead. +func (*GetSIPInboundTrunkRequest) Descriptor() ([]byte, []int) { + return file_livekit_sip_proto_rawDescGZIP(), []int{6} +} + +func (x *GetSIPInboundTrunkRequest) GetSipTrunkId() string { + if x != nil { + return x.SipTrunkId + } + return "" +} + +type GetSIPInboundTrunkResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Trunk *SIPInboundTrunkInfo `protobuf:"bytes,1,opt,name=trunk,proto3" json:"trunk,omitempty"` +} + +func (x *GetSIPInboundTrunkResponse) Reset() { + *x = GetSIPInboundTrunkResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_sip_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSIPInboundTrunkResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSIPInboundTrunkResponse) ProtoMessage() {} + +func (x *GetSIPInboundTrunkResponse) ProtoReflect() protoreflect.Message { + mi := &file_livekit_sip_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSIPInboundTrunkResponse.ProtoReflect.Descriptor instead. +func (*GetSIPInboundTrunkResponse) Descriptor() ([]byte, []int) { + return file_livekit_sip_proto_rawDescGZIP(), []int{7} +} + +func (x *GetSIPInboundTrunkResponse) GetTrunk() *SIPInboundTrunkInfo { + if x != nil { + return x.Trunk + } + return nil +} + +type GetSIPOutboundTrunkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SipTrunkId string `protobuf:"bytes,1,opt,name=sip_trunk_id,json=sipTrunkId,proto3" json:"sip_trunk_id,omitempty"` +} + +func (x *GetSIPOutboundTrunkRequest) Reset() { + *x = GetSIPOutboundTrunkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_sip_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSIPOutboundTrunkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSIPOutboundTrunkRequest) ProtoMessage() {} + +func (x *GetSIPOutboundTrunkRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_sip_proto_msgTypes[8] + 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 GetSIPOutboundTrunkRequest.ProtoReflect.Descriptor instead. +func (*GetSIPOutboundTrunkRequest) Descriptor() ([]byte, []int) { + return file_livekit_sip_proto_rawDescGZIP(), []int{8} +} + +func (x *GetSIPOutboundTrunkRequest) GetSipTrunkId() string { + if x != nil { + return x.SipTrunkId + } + return "" +} + +type GetSIPOutboundTrunkResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Trunk *SIPOutboundTrunkInfo `protobuf:"bytes,1,opt,name=trunk,proto3" json:"trunk,omitempty"` +} + +func (x *GetSIPOutboundTrunkResponse) Reset() { + *x = GetSIPOutboundTrunkResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_sip_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSIPOutboundTrunkResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSIPOutboundTrunkResponse) ProtoMessage() {} + +func (x *GetSIPOutboundTrunkResponse) 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 GetSIPOutboundTrunkResponse.ProtoReflect.Descriptor instead. +func (*GetSIPOutboundTrunkResponse) Descriptor() ([]byte, []int) { + return file_livekit_sip_proto_rawDescGZIP(), []int{9} +} + +func (x *GetSIPOutboundTrunkResponse) GetTrunk() *SIPOutboundTrunkInfo { + if x != nil { + return x.Trunk + } + return nil +} + // Deprecated: Marked as deprecated in livekit_sip.proto. type ListSIPTrunkRequest struct { state protoimpl.MessageState @@ -770,7 +996,7 @@ type ListSIPTrunkRequest struct { func (x *ListSIPTrunkRequest) Reset() { *x = ListSIPTrunkRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[6] + mi := &file_livekit_sip_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -783,7 +1009,7 @@ func (x *ListSIPTrunkRequest) String() string { func (*ListSIPTrunkRequest) ProtoMessage() {} func (x *ListSIPTrunkRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[6] + mi := &file_livekit_sip_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -796,7 +1022,7 @@ func (x *ListSIPTrunkRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSIPTrunkRequest.ProtoReflect.Descriptor instead. func (*ListSIPTrunkRequest) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{6} + return file_livekit_sip_proto_rawDescGZIP(), []int{10} } // Deprecated: Marked as deprecated in livekit_sip.proto. @@ -811,7 +1037,7 @@ type ListSIPTrunkResponse struct { func (x *ListSIPTrunkResponse) Reset() { *x = ListSIPTrunkResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[7] + mi := &file_livekit_sip_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -824,7 +1050,7 @@ func (x *ListSIPTrunkResponse) String() string { func (*ListSIPTrunkResponse) ProtoMessage() {} func (x *ListSIPTrunkResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[7] + mi := &file_livekit_sip_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -837,7 +1063,7 @@ func (x *ListSIPTrunkResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSIPTrunkResponse.ProtoReflect.Descriptor instead. func (*ListSIPTrunkResponse) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{7} + return file_livekit_sip_proto_rawDescGZIP(), []int{11} } func (x *ListSIPTrunkResponse) GetItems() []*SIPTrunkInfo { @@ -856,7 +1082,7 @@ type ListSIPInboundTrunkRequest struct { func (x *ListSIPInboundTrunkRequest) Reset() { *x = ListSIPInboundTrunkRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[8] + mi := &file_livekit_sip_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -869,7 +1095,7 @@ func (x *ListSIPInboundTrunkRequest) String() string { func (*ListSIPInboundTrunkRequest) ProtoMessage() {} func (x *ListSIPInboundTrunkRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[8] + mi := &file_livekit_sip_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -882,7 +1108,7 @@ func (x *ListSIPInboundTrunkRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSIPInboundTrunkRequest.ProtoReflect.Descriptor instead. func (*ListSIPInboundTrunkRequest) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{8} + return file_livekit_sip_proto_rawDescGZIP(), []int{12} } type ListSIPInboundTrunkResponse struct { @@ -896,7 +1122,7 @@ type ListSIPInboundTrunkResponse struct { func (x *ListSIPInboundTrunkResponse) Reset() { *x = ListSIPInboundTrunkResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[9] + mi := &file_livekit_sip_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -909,7 +1135,7 @@ func (x *ListSIPInboundTrunkResponse) String() string { func (*ListSIPInboundTrunkResponse) ProtoMessage() {} func (x *ListSIPInboundTrunkResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[9] + mi := &file_livekit_sip_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -922,7 +1148,7 @@ func (x *ListSIPInboundTrunkResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSIPInboundTrunkResponse.ProtoReflect.Descriptor instead. func (*ListSIPInboundTrunkResponse) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{9} + return file_livekit_sip_proto_rawDescGZIP(), []int{13} } func (x *ListSIPInboundTrunkResponse) GetItems() []*SIPInboundTrunkInfo { @@ -941,7 +1167,7 @@ type ListSIPOutboundTrunkRequest struct { func (x *ListSIPOutboundTrunkRequest) Reset() { *x = ListSIPOutboundTrunkRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[10] + mi := &file_livekit_sip_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -954,7 +1180,7 @@ func (x *ListSIPOutboundTrunkRequest) String() string { func (*ListSIPOutboundTrunkRequest) ProtoMessage() {} func (x *ListSIPOutboundTrunkRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[10] + mi := &file_livekit_sip_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -967,7 +1193,7 @@ func (x *ListSIPOutboundTrunkRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSIPOutboundTrunkRequest.ProtoReflect.Descriptor instead. func (*ListSIPOutboundTrunkRequest) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{10} + return file_livekit_sip_proto_rawDescGZIP(), []int{14} } type ListSIPOutboundTrunkResponse struct { @@ -981,7 +1207,7 @@ type ListSIPOutboundTrunkResponse struct { func (x *ListSIPOutboundTrunkResponse) Reset() { *x = ListSIPOutboundTrunkResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[11] + mi := &file_livekit_sip_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -994,7 +1220,7 @@ func (x *ListSIPOutboundTrunkResponse) String() string { func (*ListSIPOutboundTrunkResponse) ProtoMessage() {} func (x *ListSIPOutboundTrunkResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[11] + mi := &file_livekit_sip_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1007,7 +1233,7 @@ func (x *ListSIPOutboundTrunkResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSIPOutboundTrunkResponse.ProtoReflect.Descriptor instead. func (*ListSIPOutboundTrunkResponse) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{11} + return file_livekit_sip_proto_rawDescGZIP(), []int{15} } func (x *ListSIPOutboundTrunkResponse) GetItems() []*SIPOutboundTrunkInfo { @@ -1028,7 +1254,7 @@ type DeleteSIPTrunkRequest struct { func (x *DeleteSIPTrunkRequest) Reset() { *x = DeleteSIPTrunkRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[12] + mi := &file_livekit_sip_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1041,7 +1267,7 @@ func (x *DeleteSIPTrunkRequest) String() string { func (*DeleteSIPTrunkRequest) ProtoMessage() {} func (x *DeleteSIPTrunkRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[12] + mi := &file_livekit_sip_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1054,7 +1280,7 @@ func (x *DeleteSIPTrunkRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteSIPTrunkRequest.ProtoReflect.Descriptor instead. func (*DeleteSIPTrunkRequest) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{12} + return file_livekit_sip_proto_rawDescGZIP(), []int{16} } func (x *DeleteSIPTrunkRequest) GetSipTrunkId() string { @@ -1078,7 +1304,7 @@ type SIPDispatchRuleDirect struct { func (x *SIPDispatchRuleDirect) Reset() { *x = SIPDispatchRuleDirect{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[13] + mi := &file_livekit_sip_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1091,7 +1317,7 @@ func (x *SIPDispatchRuleDirect) String() string { func (*SIPDispatchRuleDirect) ProtoMessage() {} func (x *SIPDispatchRuleDirect) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[13] + mi := &file_livekit_sip_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1104,7 +1330,7 @@ func (x *SIPDispatchRuleDirect) ProtoReflect() protoreflect.Message { // Deprecated: Use SIPDispatchRuleDirect.ProtoReflect.Descriptor instead. func (*SIPDispatchRuleDirect) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{13} + return file_livekit_sip_proto_rawDescGZIP(), []int{17} } func (x *SIPDispatchRuleDirect) GetRoomName() string { @@ -1135,7 +1361,7 @@ type SIPDispatchRuleIndividual struct { func (x *SIPDispatchRuleIndividual) Reset() { *x = SIPDispatchRuleIndividual{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[14] + mi := &file_livekit_sip_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1148,7 +1374,7 @@ func (x *SIPDispatchRuleIndividual) String() string { func (*SIPDispatchRuleIndividual) ProtoMessage() {} func (x *SIPDispatchRuleIndividual) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[14] + mi := &file_livekit_sip_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1161,7 +1387,7 @@ func (x *SIPDispatchRuleIndividual) ProtoReflect() protoreflect.Message { // Deprecated: Use SIPDispatchRuleIndividual.ProtoReflect.Descriptor instead. func (*SIPDispatchRuleIndividual) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{14} + return file_livekit_sip_proto_rawDescGZIP(), []int{18} } func (x *SIPDispatchRuleIndividual) GetRoomPrefix() string { @@ -1194,7 +1420,7 @@ type SIPDispatchRuleCallee struct { func (x *SIPDispatchRuleCallee) Reset() { *x = SIPDispatchRuleCallee{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[15] + mi := &file_livekit_sip_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1207,7 +1433,7 @@ func (x *SIPDispatchRuleCallee) String() string { func (*SIPDispatchRuleCallee) ProtoMessage() {} func (x *SIPDispatchRuleCallee) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[15] + mi := &file_livekit_sip_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1220,7 +1446,7 @@ func (x *SIPDispatchRuleCallee) ProtoReflect() protoreflect.Message { // Deprecated: Use SIPDispatchRuleCallee.ProtoReflect.Descriptor instead. func (*SIPDispatchRuleCallee) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{15} + return file_livekit_sip_proto_rawDescGZIP(), []int{19} } func (x *SIPDispatchRuleCallee) GetRoomPrefix() string { @@ -1260,7 +1486,7 @@ type SIPDispatchRule struct { func (x *SIPDispatchRule) Reset() { *x = SIPDispatchRule{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[16] + mi := &file_livekit_sip_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1273,7 +1499,7 @@ func (x *SIPDispatchRule) String() string { func (*SIPDispatchRule) ProtoMessage() {} func (x *SIPDispatchRule) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[16] + mi := &file_livekit_sip_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1286,7 +1512,7 @@ func (x *SIPDispatchRule) ProtoReflect() protoreflect.Message { // Deprecated: Use SIPDispatchRule.ProtoReflect.Descriptor instead. func (*SIPDispatchRule) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{16} + return file_livekit_sip_proto_rawDescGZIP(), []int{20} } func (m *SIPDispatchRule) GetRule() isSIPDispatchRule_Rule { @@ -1371,7 +1597,7 @@ type CreateSIPDispatchRuleRequest struct { func (x *CreateSIPDispatchRuleRequest) Reset() { *x = CreateSIPDispatchRuleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[17] + mi := &file_livekit_sip_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1384,7 +1610,7 @@ func (x *CreateSIPDispatchRuleRequest) String() string { func (*CreateSIPDispatchRuleRequest) ProtoMessage() {} func (x *CreateSIPDispatchRuleRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[17] + mi := &file_livekit_sip_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1397,7 +1623,7 @@ func (x *CreateSIPDispatchRuleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateSIPDispatchRuleRequest.ProtoReflect.Descriptor instead. func (*CreateSIPDispatchRuleRequest) Descriptor() ([]byte, []int) { - return file_livekit_sip_proto_rawDescGZIP(), []int{17} + return file_livekit_sip_proto_rawDescGZIP(), []int{21} } func (x *CreateSIPDispatchRuleRequest) GetRule() *SIPDispatchRule { @@ -1473,7 +1699,7 @@ type SIPDispatchRuleInfo struct { func (x *SIPDispatchRuleInfo) Reset() { *x = SIPDispatchRuleInfo{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[18] + mi := &file_livekit_sip_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1486,7 +1712,7 @@ func (x *SIPDispatchRuleInfo) String() string { func (*SIPDispatchRuleInfo) ProtoMessage() {} func (x *SIPDispatchRuleInfo) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[18] + mi := &file_livekit_sip_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1499,7 +1725,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{18} + return file_livekit_sip_proto_rawDescGZIP(), []int{22} } func (x *SIPDispatchRuleInfo) GetSipDispatchRuleId() string { @@ -1567,7 +1793,7 @@ type ListSIPDispatchRuleRequest struct { func (x *ListSIPDispatchRuleRequest) Reset() { *x = ListSIPDispatchRuleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[19] + mi := &file_livekit_sip_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1580,7 +1806,7 @@ func (x *ListSIPDispatchRuleRequest) String() string { func (*ListSIPDispatchRuleRequest) ProtoMessage() {} func (x *ListSIPDispatchRuleRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[19] + mi := &file_livekit_sip_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1593,7 +1819,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{19} + return file_livekit_sip_proto_rawDescGZIP(), []int{23} } type ListSIPDispatchRuleResponse struct { @@ -1607,7 +1833,7 @@ type ListSIPDispatchRuleResponse struct { func (x *ListSIPDispatchRuleResponse) Reset() { *x = ListSIPDispatchRuleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[20] + mi := &file_livekit_sip_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1620,7 +1846,7 @@ func (x *ListSIPDispatchRuleResponse) String() string { func (*ListSIPDispatchRuleResponse) ProtoMessage() {} func (x *ListSIPDispatchRuleResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[20] + mi := &file_livekit_sip_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1633,7 +1859,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{20} + return file_livekit_sip_proto_rawDescGZIP(), []int{24} } func (x *ListSIPDispatchRuleResponse) GetItems() []*SIPDispatchRuleInfo { @@ -1654,7 +1880,7 @@ type DeleteSIPDispatchRuleRequest struct { func (x *DeleteSIPDispatchRuleRequest) Reset() { *x = DeleteSIPDispatchRuleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[21] + mi := &file_livekit_sip_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1667,7 +1893,7 @@ func (x *DeleteSIPDispatchRuleRequest) String() string { func (*DeleteSIPDispatchRuleRequest) ProtoMessage() {} func (x *DeleteSIPDispatchRuleRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[21] + mi := &file_livekit_sip_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1680,7 +1906,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{21} + return file_livekit_sip_proto_rawDescGZIP(), []int{25} } func (x *DeleteSIPDispatchRuleRequest) GetSipDispatchRuleId() string { @@ -1724,7 +1950,7 @@ type CreateSIPParticipantRequest struct { func (x *CreateSIPParticipantRequest) Reset() { *x = CreateSIPParticipantRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[22] + mi := &file_livekit_sip_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1737,7 +1963,7 @@ func (x *CreateSIPParticipantRequest) String() string { func (*CreateSIPParticipantRequest) ProtoMessage() {} func (x *CreateSIPParticipantRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[22] + mi := &file_livekit_sip_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1750,7 +1976,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{22} + return file_livekit_sip_proto_rawDescGZIP(), []int{26} } func (x *CreateSIPParticipantRequest) GetSipTrunkId() string { @@ -1837,7 +2063,7 @@ type SIPParticipantInfo struct { func (x *SIPParticipantInfo) Reset() { *x = SIPParticipantInfo{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_sip_proto_msgTypes[23] + mi := &file_livekit_sip_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1850,7 +2076,7 @@ func (x *SIPParticipantInfo) String() string { func (*SIPParticipantInfo) ProtoMessage() {} func (x *SIPParticipantInfo) ProtoReflect() protoreflect.Message { - mi := &file_livekit_sip_proto_msgTypes[23] + mi := &file_livekit_sip_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1863,7 +2089,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{23} + return file_livekit_sip_proto_rawDescGZIP(), []int{27} } func (x *SIPParticipantInfo) GetParticipantId() string { @@ -1976,7 +2202,7 @@ var file_livekit_sip_proto_rawDesc = []byte{ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x05, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x22, 0xa1, 0x02, 0x0a, 0x13, 0x53, 0x49, + 0x66, 0x6f, 0x52, 0x05, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x22, 0xd5, 0x04, 0x0a, 0x13, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 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, @@ -1994,228 +2220,297 @@ var file_livekit_sip_proto_rawDesc = []byte{ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x61, 0x75, 0x74, 0x68, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x54, 0x0a, - 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, - 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, - 0x0a, 0x05, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x72, - 0x75, 0x6e, 0x6b, 0x22, 0x9b, 0x02, 0x0a, 0x14, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 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, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x61, 0x75, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x22, 0x19, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x47, 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, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x1c, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, - 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 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, 0x49, - 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, - 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, - 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, - 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 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, 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, 0x68, 0x0a, - 0x15, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, - 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x65, 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, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x22, 0xa1, 0x02, 0x0a, 0x0f, 0x53, 0x49, 0x50, 0x44, - 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x52, 0x0a, 0x14, 0x64, - 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x75, 0x6c, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x12, 0x64, 0x69, 0x73, - 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, - 0x5e, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, - 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, - 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x76, - 0x69, 0x64, 0x75, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x16, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x12, - 0x52, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, - 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, - 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x48, 0x00, 0x52, - 0x12, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x61, 0x6c, - 0x6c, 0x65, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x84, 0x03, 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, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x55, 0x0a, 0x0a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x35, 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, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0xa3, 0x03, 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, + 0x0c, 0x61, 0x75, 0x74, 0x68, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x43, 0x0a, + 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x69, 0x0a, 0x15, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, + 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x49, + 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x2e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3a, 0x0a, + 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x54, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x4f, 0x75, + 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x33, 0x0a, 0x05, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x4f, + 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x05, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x22, 0xd1, 0x04, 0x0a, 0x14, 0x53, 0x49, 0x50, 0x4f, + 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 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, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x09, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, + 0x75, 0x74, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x44, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, + 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x6a, 0x0a, 0x15, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6c, 0x69, 0x76, + 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x13, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3d, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 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, 0x50, 0x0a, 0x1a, 0x47, 0x65, + 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x72, 0x75, 0x6e, + 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, + 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x22, 0x3e, 0x0a, 0x1a, + 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 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, 0x52, 0x0a, 0x1b, + 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, + 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x74, + 0x72, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x69, 0x76, + 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x72, 0x75, 0x6e, 0x6b, + 0x22, 0x19, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x47, 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, + 0x3a, 0x02, 0x18, 0x01, 0x22, 0x1c, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, + 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x51, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 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, 0x49, 0x6e, + 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, + 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x4f, + 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, + 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 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, 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, 0x68, 0x0a, 0x15, + 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x43, + 0x61, 0x6c, 0x6c, 0x65, 0x65, 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, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x22, 0xa1, 0x02, 0x0a, 0x0f, 0x53, 0x49, 0x50, 0x44, 0x69, + 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x52, 0x0a, 0x14, 0x64, 0x69, + 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, + 0x6c, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x12, 0x64, 0x69, 0x73, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x5e, + 0x0a, 0x18, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, + 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, + 0x64, 0x75, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x16, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x12, 0x52, + 0x0a, 0x14, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x65, 0x48, 0x00, 0x52, 0x12, + 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x43, 0x61, 0x6c, 0x6c, + 0x65, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x84, 0x03, 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, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, + 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, 0x04, 0x20, 0x01, 0x28, + 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, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x62, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4c, 0x0a, 0x0a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2c, 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, 0x2e, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1c, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x55, 0x0a, 0x0a, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x35, 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, 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, 0xb4, 0x04, 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, 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, 0x1e, 0x0a, 0x0b, - 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x12, 0x1b, 0x0a, 0x09, - 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 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, 0x04, 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, 0x29, 0x0a, 0x10, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x76, 0x0a, 0x16, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 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, - 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x74, 0x6d, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x64, 0x74, 0x6d, 0x66, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x72, - 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, - 0x6c, 0x61, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x68, - 0x69, 0x64, 0x65, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x69, 0x64, 0x65, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x48, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0xab, 0x01, 0x0a, 0x12, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 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, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x2a, - 0x6b, 0x0a, 0x0c, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, - 0x16, 0x0a, 0x12, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, 0x44, 0x50, 0x10, 0x01, 0x12, 0x15, - 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x54, 0x43, 0x50, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x4c, 0x53, 0x10, 0x03, 0x32, 0xed, 0x07, 0x0a, - 0x03, 0x53, 0x49, 0x50, 0x12, 0x4c, 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, 0x22, 0x03, 0x88, - 0x02, 0x01, 0x12, 0x50, 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, 0x22, - 0x03, 0x88, 0x02, 0x01, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, - 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x25, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, - 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, - 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x5f, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x4f, - 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x26, 0x2e, 0x6c, + 0x01, 0x22, 0xa3, 0x03, 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, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4c, 0x0a, 0x0a, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, + 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, 0x2e, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 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, 0xb4, 0x04, 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, 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, 0x1e, 0x0a, 0x0b, 0x73, + 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x72, + 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 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, 0x04, 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, 0x29, 0x0a, 0x10, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x76, 0x0a, 0x16, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 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, 0x2e, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x74, 0x6d, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x64, 0x74, 0x6d, 0x66, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x72, 0x69, + 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x6c, + 0x61, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x69, + 0x64, 0x65, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x69, 0x64, 0x65, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x48, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0xab, 0x01, 0x0a, 0x12, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 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, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, + 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x2a, 0x6b, + 0x0a, 0x0c, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, + 0x0a, 0x12, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, 0x44, 0x50, 0x10, 0x01, 0x12, 0x15, 0x0a, + 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, + 0x43, 0x50, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x4c, 0x53, 0x10, 0x03, 0x32, 0xae, 0x09, 0x0a, 0x03, + 0x53, 0x49, 0x50, 0x12, 0x4c, 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, 0x22, 0x03, 0x88, 0x02, + 0x01, 0x12, 0x50, 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, 0x22, 0x03, + 0x88, 0x02, 0x01, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, + 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, - 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, - 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x60, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, + 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, + 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x5f, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x4f, 0x75, + 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x26, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x4f, + 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, + 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x22, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x60, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, + 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, @@ -2276,7 +2571,7 @@ func file_livekit_sip_proto_rawDescGZIP() []byte { } var file_livekit_sip_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_livekit_sip_proto_msgTypes = make([]protoimpl.MessageInfo, 27) +var file_livekit_sip_proto_msgTypes = make([]protoimpl.MessageInfo, 35) var file_livekit_sip_proto_goTypes = []any{ (SIPTransport)(0), // 0: livekit.SIPTransport (SIPTrunkInfo_TrunkKind)(0), // 1: livekit.SIPTrunkInfo.TrunkKind @@ -2286,73 +2581,91 @@ var file_livekit_sip_proto_goTypes = []any{ (*SIPInboundTrunkInfo)(nil), // 5: livekit.SIPInboundTrunkInfo (*CreateSIPOutboundTrunkRequest)(nil), // 6: livekit.CreateSIPOutboundTrunkRequest (*SIPOutboundTrunkInfo)(nil), // 7: livekit.SIPOutboundTrunkInfo - (*ListSIPTrunkRequest)(nil), // 8: livekit.ListSIPTrunkRequest - (*ListSIPTrunkResponse)(nil), // 9: livekit.ListSIPTrunkResponse - (*ListSIPInboundTrunkRequest)(nil), // 10: livekit.ListSIPInboundTrunkRequest - (*ListSIPInboundTrunkResponse)(nil), // 11: livekit.ListSIPInboundTrunkResponse - (*ListSIPOutboundTrunkRequest)(nil), // 12: livekit.ListSIPOutboundTrunkRequest - (*ListSIPOutboundTrunkResponse)(nil), // 13: livekit.ListSIPOutboundTrunkResponse - (*DeleteSIPTrunkRequest)(nil), // 14: livekit.DeleteSIPTrunkRequest - (*SIPDispatchRuleDirect)(nil), // 15: livekit.SIPDispatchRuleDirect - (*SIPDispatchRuleIndividual)(nil), // 16: livekit.SIPDispatchRuleIndividual - (*SIPDispatchRuleCallee)(nil), // 17: livekit.SIPDispatchRuleCallee - (*SIPDispatchRule)(nil), // 18: livekit.SIPDispatchRule - (*CreateSIPDispatchRuleRequest)(nil), // 19: livekit.CreateSIPDispatchRuleRequest - (*SIPDispatchRuleInfo)(nil), // 20: livekit.SIPDispatchRuleInfo - (*ListSIPDispatchRuleRequest)(nil), // 21: livekit.ListSIPDispatchRuleRequest - (*ListSIPDispatchRuleResponse)(nil), // 22: livekit.ListSIPDispatchRuleResponse - (*DeleteSIPDispatchRuleRequest)(nil), // 23: livekit.DeleteSIPDispatchRuleRequest - (*CreateSIPParticipantRequest)(nil), // 24: livekit.CreateSIPParticipantRequest - (*SIPParticipantInfo)(nil), // 25: livekit.SIPParticipantInfo - nil, // 26: livekit.CreateSIPDispatchRuleRequest.AttributesEntry - nil, // 27: livekit.SIPDispatchRuleInfo.AttributesEntry - nil, // 28: livekit.CreateSIPParticipantRequest.ParticipantAttributesEntry + (*GetSIPInboundTrunkRequest)(nil), // 8: livekit.GetSIPInboundTrunkRequest + (*GetSIPInboundTrunkResponse)(nil), // 9: livekit.GetSIPInboundTrunkResponse + (*GetSIPOutboundTrunkRequest)(nil), // 10: livekit.GetSIPOutboundTrunkRequest + (*GetSIPOutboundTrunkResponse)(nil), // 11: livekit.GetSIPOutboundTrunkResponse + (*ListSIPTrunkRequest)(nil), // 12: livekit.ListSIPTrunkRequest + (*ListSIPTrunkResponse)(nil), // 13: livekit.ListSIPTrunkResponse + (*ListSIPInboundTrunkRequest)(nil), // 14: livekit.ListSIPInboundTrunkRequest + (*ListSIPInboundTrunkResponse)(nil), // 15: livekit.ListSIPInboundTrunkResponse + (*ListSIPOutboundTrunkRequest)(nil), // 16: livekit.ListSIPOutboundTrunkRequest + (*ListSIPOutboundTrunkResponse)(nil), // 17: livekit.ListSIPOutboundTrunkResponse + (*DeleteSIPTrunkRequest)(nil), // 18: livekit.DeleteSIPTrunkRequest + (*SIPDispatchRuleDirect)(nil), // 19: livekit.SIPDispatchRuleDirect + (*SIPDispatchRuleIndividual)(nil), // 20: livekit.SIPDispatchRuleIndividual + (*SIPDispatchRuleCallee)(nil), // 21: livekit.SIPDispatchRuleCallee + (*SIPDispatchRule)(nil), // 22: livekit.SIPDispatchRule + (*CreateSIPDispatchRuleRequest)(nil), // 23: livekit.CreateSIPDispatchRuleRequest + (*SIPDispatchRuleInfo)(nil), // 24: livekit.SIPDispatchRuleInfo + (*ListSIPDispatchRuleRequest)(nil), // 25: livekit.ListSIPDispatchRuleRequest + (*ListSIPDispatchRuleResponse)(nil), // 26: livekit.ListSIPDispatchRuleResponse + (*DeleteSIPDispatchRuleRequest)(nil), // 27: livekit.DeleteSIPDispatchRuleRequest + (*CreateSIPParticipantRequest)(nil), // 28: livekit.CreateSIPParticipantRequest + (*SIPParticipantInfo)(nil), // 29: livekit.SIPParticipantInfo + nil, // 30: livekit.SIPInboundTrunkInfo.HeadersEntry + nil, // 31: livekit.SIPInboundTrunkInfo.HeadersToAttributesEntry + nil, // 32: livekit.SIPOutboundTrunkInfo.HeadersEntry + nil, // 33: livekit.SIPOutboundTrunkInfo.HeadersToAttributesEntry + nil, // 34: livekit.CreateSIPDispatchRuleRequest.AttributesEntry + nil, // 35: livekit.SIPDispatchRuleInfo.AttributesEntry + nil, // 36: livekit.CreateSIPParticipantRequest.ParticipantAttributesEntry } var file_livekit_sip_proto_depIdxs = []int32{ 1, // 0: livekit.SIPTrunkInfo.kind:type_name -> livekit.SIPTrunkInfo.TrunkKind 0, // 1: livekit.SIPTrunkInfo.transport:type_name -> livekit.SIPTransport 5, // 2: livekit.CreateSIPInboundTrunkRequest.trunk:type_name -> livekit.SIPInboundTrunkInfo - 7, // 3: livekit.CreateSIPOutboundTrunkRequest.trunk:type_name -> livekit.SIPOutboundTrunkInfo - 0, // 4: livekit.SIPOutboundTrunkInfo.transport:type_name -> livekit.SIPTransport - 3, // 5: livekit.ListSIPTrunkResponse.items:type_name -> livekit.SIPTrunkInfo - 5, // 6: livekit.ListSIPInboundTrunkResponse.items:type_name -> livekit.SIPInboundTrunkInfo - 7, // 7: livekit.ListSIPOutboundTrunkResponse.items:type_name -> livekit.SIPOutboundTrunkInfo - 15, // 8: livekit.SIPDispatchRule.dispatch_rule_direct:type_name -> livekit.SIPDispatchRuleDirect - 16, // 9: livekit.SIPDispatchRule.dispatch_rule_individual:type_name -> livekit.SIPDispatchRuleIndividual - 17, // 10: livekit.SIPDispatchRule.dispatch_rule_callee:type_name -> livekit.SIPDispatchRuleCallee - 18, // 11: livekit.CreateSIPDispatchRuleRequest.rule:type_name -> livekit.SIPDispatchRule - 26, // 12: livekit.CreateSIPDispatchRuleRequest.attributes:type_name -> livekit.CreateSIPDispatchRuleRequest.AttributesEntry - 18, // 13: livekit.SIPDispatchRuleInfo.rule:type_name -> livekit.SIPDispatchRule - 27, // 14: livekit.SIPDispatchRuleInfo.attributes:type_name -> livekit.SIPDispatchRuleInfo.AttributesEntry - 20, // 15: livekit.ListSIPDispatchRuleResponse.items:type_name -> livekit.SIPDispatchRuleInfo - 28, // 16: livekit.CreateSIPParticipantRequest.participant_attributes:type_name -> livekit.CreateSIPParticipantRequest.ParticipantAttributesEntry - 2, // 17: livekit.SIP.CreateSIPTrunk:input_type -> livekit.CreateSIPTrunkRequest - 8, // 18: livekit.SIP.ListSIPTrunk:input_type -> livekit.ListSIPTrunkRequest - 4, // 19: livekit.SIP.CreateSIPInboundTrunk:input_type -> livekit.CreateSIPInboundTrunkRequest - 6, // 20: livekit.SIP.CreateSIPOutboundTrunk:input_type -> livekit.CreateSIPOutboundTrunkRequest - 10, // 21: livekit.SIP.ListSIPInboundTrunk:input_type -> livekit.ListSIPInboundTrunkRequest - 12, // 22: livekit.SIP.ListSIPOutboundTrunk:input_type -> livekit.ListSIPOutboundTrunkRequest - 14, // 23: livekit.SIP.DeleteSIPTrunk:input_type -> livekit.DeleteSIPTrunkRequest - 19, // 24: livekit.SIP.CreateSIPDispatchRule:input_type -> livekit.CreateSIPDispatchRuleRequest - 21, // 25: livekit.SIP.ListSIPDispatchRule:input_type -> livekit.ListSIPDispatchRuleRequest - 23, // 26: livekit.SIP.DeleteSIPDispatchRule:input_type -> livekit.DeleteSIPDispatchRuleRequest - 24, // 27: livekit.SIP.CreateSIPParticipant:input_type -> livekit.CreateSIPParticipantRequest - 3, // 28: livekit.SIP.CreateSIPTrunk:output_type -> livekit.SIPTrunkInfo - 9, // 29: livekit.SIP.ListSIPTrunk:output_type -> livekit.ListSIPTrunkResponse - 5, // 30: livekit.SIP.CreateSIPInboundTrunk:output_type -> livekit.SIPInboundTrunkInfo - 7, // 31: livekit.SIP.CreateSIPOutboundTrunk:output_type -> livekit.SIPOutboundTrunkInfo - 11, // 32: livekit.SIP.ListSIPInboundTrunk:output_type -> livekit.ListSIPInboundTrunkResponse - 13, // 33: livekit.SIP.ListSIPOutboundTrunk:output_type -> livekit.ListSIPOutboundTrunkResponse - 3, // 34: livekit.SIP.DeleteSIPTrunk:output_type -> livekit.SIPTrunkInfo - 20, // 35: livekit.SIP.CreateSIPDispatchRule:output_type -> livekit.SIPDispatchRuleInfo - 22, // 36: livekit.SIP.ListSIPDispatchRule:output_type -> livekit.ListSIPDispatchRuleResponse - 20, // 37: livekit.SIP.DeleteSIPDispatchRule:output_type -> livekit.SIPDispatchRuleInfo - 25, // 38: livekit.SIP.CreateSIPParticipant:output_type -> livekit.SIPParticipantInfo - 28, // [28:39] is the sub-list for method output_type - 17, // [17:28] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 30, // 3: livekit.SIPInboundTrunkInfo.headers:type_name -> livekit.SIPInboundTrunkInfo.HeadersEntry + 31, // 4: livekit.SIPInboundTrunkInfo.headers_to_attributes:type_name -> livekit.SIPInboundTrunkInfo.HeadersToAttributesEntry + 7, // 5: livekit.CreateSIPOutboundTrunkRequest.trunk:type_name -> livekit.SIPOutboundTrunkInfo + 0, // 6: livekit.SIPOutboundTrunkInfo.transport:type_name -> livekit.SIPTransport + 32, // 7: livekit.SIPOutboundTrunkInfo.headers:type_name -> livekit.SIPOutboundTrunkInfo.HeadersEntry + 33, // 8: livekit.SIPOutboundTrunkInfo.headers_to_attributes:type_name -> livekit.SIPOutboundTrunkInfo.HeadersToAttributesEntry + 5, // 9: livekit.GetSIPInboundTrunkResponse.trunk:type_name -> livekit.SIPInboundTrunkInfo + 7, // 10: livekit.GetSIPOutboundTrunkResponse.trunk:type_name -> livekit.SIPOutboundTrunkInfo + 3, // 11: livekit.ListSIPTrunkResponse.items:type_name -> livekit.SIPTrunkInfo + 5, // 12: livekit.ListSIPInboundTrunkResponse.items:type_name -> livekit.SIPInboundTrunkInfo + 7, // 13: livekit.ListSIPOutboundTrunkResponse.items:type_name -> livekit.SIPOutboundTrunkInfo + 19, // 14: livekit.SIPDispatchRule.dispatch_rule_direct:type_name -> livekit.SIPDispatchRuleDirect + 20, // 15: livekit.SIPDispatchRule.dispatch_rule_individual:type_name -> livekit.SIPDispatchRuleIndividual + 21, // 16: livekit.SIPDispatchRule.dispatch_rule_callee:type_name -> livekit.SIPDispatchRuleCallee + 22, // 17: livekit.CreateSIPDispatchRuleRequest.rule:type_name -> livekit.SIPDispatchRule + 34, // 18: livekit.CreateSIPDispatchRuleRequest.attributes:type_name -> livekit.CreateSIPDispatchRuleRequest.AttributesEntry + 22, // 19: livekit.SIPDispatchRuleInfo.rule:type_name -> livekit.SIPDispatchRule + 35, // 20: livekit.SIPDispatchRuleInfo.attributes:type_name -> livekit.SIPDispatchRuleInfo.AttributesEntry + 24, // 21: livekit.ListSIPDispatchRuleResponse.items:type_name -> livekit.SIPDispatchRuleInfo + 36, // 22: livekit.CreateSIPParticipantRequest.participant_attributes:type_name -> livekit.CreateSIPParticipantRequest.ParticipantAttributesEntry + 2, // 23: livekit.SIP.CreateSIPTrunk:input_type -> livekit.CreateSIPTrunkRequest + 12, // 24: livekit.SIP.ListSIPTrunk:input_type -> livekit.ListSIPTrunkRequest + 4, // 25: livekit.SIP.CreateSIPInboundTrunk:input_type -> livekit.CreateSIPInboundTrunkRequest + 6, // 26: livekit.SIP.CreateSIPOutboundTrunk:input_type -> livekit.CreateSIPOutboundTrunkRequest + 8, // 27: livekit.SIP.GetSIPInboundTrunk:input_type -> livekit.GetSIPInboundTrunkRequest + 10, // 28: livekit.SIP.GetSIPOutboundTrunk:input_type -> livekit.GetSIPOutboundTrunkRequest + 14, // 29: livekit.SIP.ListSIPInboundTrunk:input_type -> livekit.ListSIPInboundTrunkRequest + 16, // 30: livekit.SIP.ListSIPOutboundTrunk:input_type -> livekit.ListSIPOutboundTrunkRequest + 18, // 31: livekit.SIP.DeleteSIPTrunk:input_type -> livekit.DeleteSIPTrunkRequest + 23, // 32: livekit.SIP.CreateSIPDispatchRule:input_type -> livekit.CreateSIPDispatchRuleRequest + 25, // 33: livekit.SIP.ListSIPDispatchRule:input_type -> livekit.ListSIPDispatchRuleRequest + 27, // 34: livekit.SIP.DeleteSIPDispatchRule:input_type -> livekit.DeleteSIPDispatchRuleRequest + 28, // 35: livekit.SIP.CreateSIPParticipant:input_type -> livekit.CreateSIPParticipantRequest + 3, // 36: livekit.SIP.CreateSIPTrunk:output_type -> livekit.SIPTrunkInfo + 13, // 37: livekit.SIP.ListSIPTrunk:output_type -> livekit.ListSIPTrunkResponse + 5, // 38: livekit.SIP.CreateSIPInboundTrunk:output_type -> livekit.SIPInboundTrunkInfo + 7, // 39: livekit.SIP.CreateSIPOutboundTrunk:output_type -> livekit.SIPOutboundTrunkInfo + 9, // 40: livekit.SIP.GetSIPInboundTrunk:output_type -> livekit.GetSIPInboundTrunkResponse + 11, // 41: livekit.SIP.GetSIPOutboundTrunk:output_type -> livekit.GetSIPOutboundTrunkResponse + 15, // 42: livekit.SIP.ListSIPInboundTrunk:output_type -> livekit.ListSIPInboundTrunkResponse + 17, // 43: livekit.SIP.ListSIPOutboundTrunk:output_type -> livekit.ListSIPOutboundTrunkResponse + 3, // 44: livekit.SIP.DeleteSIPTrunk:output_type -> livekit.SIPTrunkInfo + 24, // 45: livekit.SIP.CreateSIPDispatchRule:output_type -> livekit.SIPDispatchRuleInfo + 26, // 46: livekit.SIP.ListSIPDispatchRule:output_type -> livekit.ListSIPDispatchRuleResponse + 24, // 47: livekit.SIP.DeleteSIPDispatchRule:output_type -> livekit.SIPDispatchRuleInfo + 29, // 48: livekit.SIP.CreateSIPParticipant:output_type -> livekit.SIPParticipantInfo + 36, // [36:49] is the sub-list for method output_type + 23, // [23:36] is the sub-list for method input_type + 23, // [23:23] is the sub-list for extension type_name + 23, // [23:23] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name } func init() { file_livekit_sip_proto_init() } @@ -2434,7 +2747,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*ListSIPTrunkRequest); i { + switch v := v.(*GetSIPInboundTrunkRequest); i { case 0: return &v.state case 1: @@ -2446,7 +2759,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*ListSIPTrunkResponse); i { + switch v := v.(*GetSIPInboundTrunkResponse); i { case 0: return &v.state case 1: @@ -2458,7 +2771,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*ListSIPInboundTrunkRequest); i { + switch v := v.(*GetSIPOutboundTrunkRequest); i { case 0: return &v.state case 1: @@ -2470,7 +2783,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*ListSIPInboundTrunkResponse); i { + switch v := v.(*GetSIPOutboundTrunkResponse); i { case 0: return &v.state case 1: @@ -2482,7 +2795,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*ListSIPOutboundTrunkRequest); i { + switch v := v.(*ListSIPTrunkRequest); i { case 0: return &v.state case 1: @@ -2494,7 +2807,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*ListSIPOutboundTrunkResponse); i { + switch v := v.(*ListSIPTrunkResponse); i { case 0: return &v.state case 1: @@ -2506,7 +2819,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*DeleteSIPTrunkRequest); i { + switch v := v.(*ListSIPInboundTrunkRequest); i { case 0: return &v.state case 1: @@ -2518,7 +2831,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*SIPDispatchRuleDirect); i { + switch v := v.(*ListSIPInboundTrunkResponse); i { case 0: return &v.state case 1: @@ -2530,7 +2843,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*SIPDispatchRuleIndividual); i { + switch v := v.(*ListSIPOutboundTrunkRequest); i { case 0: return &v.state case 1: @@ -2542,7 +2855,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*SIPDispatchRuleCallee); i { + switch v := v.(*ListSIPOutboundTrunkResponse); i { case 0: return &v.state case 1: @@ -2554,7 +2867,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*SIPDispatchRule); i { + switch v := v.(*DeleteSIPTrunkRequest); i { case 0: return &v.state case 1: @@ -2566,7 +2879,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*CreateSIPDispatchRuleRequest); i { + switch v := v.(*SIPDispatchRuleDirect); i { case 0: return &v.state case 1: @@ -2578,7 +2891,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*SIPDispatchRuleInfo); i { + switch v := v.(*SIPDispatchRuleIndividual); i { case 0: return &v.state case 1: @@ -2590,7 +2903,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*ListSIPDispatchRuleRequest); i { + switch v := v.(*SIPDispatchRuleCallee); i { case 0: return &v.state case 1: @@ -2602,7 +2915,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*ListSIPDispatchRuleResponse); i { + switch v := v.(*SIPDispatchRule); i { case 0: return &v.state case 1: @@ -2614,7 +2927,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*DeleteSIPDispatchRuleRequest); i { + switch v := v.(*CreateSIPDispatchRuleRequest); i { case 0: return &v.state case 1: @@ -2626,7 +2939,7 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*CreateSIPParticipantRequest); i { + switch v := v.(*SIPDispatchRuleInfo); i { case 0: return &v.state case 1: @@ -2638,6 +2951,54 @@ func file_livekit_sip_proto_init() { } } file_livekit_sip_proto_msgTypes[23].Exporter = func(v any, i int) any { + switch v := v.(*ListSIPDispatchRuleRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_sip_proto_msgTypes[24].Exporter = func(v any, i int) any { + switch v := v.(*ListSIPDispatchRuleResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_sip_proto_msgTypes[25].Exporter = func(v any, i int) any { + switch v := v.(*DeleteSIPDispatchRuleRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_sip_proto_msgTypes[26].Exporter = func(v any, i int) any { + switch v := v.(*CreateSIPParticipantRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_sip_proto_msgTypes[27].Exporter = func(v any, i int) any { switch v := v.(*SIPParticipantInfo); i { case 0: return &v.state @@ -2650,7 +3011,7 @@ func file_livekit_sip_proto_init() { } } } - file_livekit_sip_proto_msgTypes[16].OneofWrappers = []any{ + file_livekit_sip_proto_msgTypes[20].OneofWrappers = []any{ (*SIPDispatchRule_DispatchRuleDirect)(nil), (*SIPDispatchRule_DispatchRuleIndividual)(nil), (*SIPDispatchRule_DispatchRuleCallee)(nil), @@ -2661,7 +3022,7 @@ func file_livekit_sip_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_livekit_sip_proto_rawDesc, NumEnums: 2, - NumMessages: 27, + NumMessages: 35, NumExtensions: 0, NumServices: 1, }, diff --git a/livekit/livekit_sip.twirp.go b/livekit/livekit_sip.twirp.go index 63b0ac03..47bb17ed 100644 --- a/livekit/livekit_sip.twirp.go +++ b/livekit/livekit_sip.twirp.go @@ -35,6 +35,10 @@ type SIP interface { CreateSIPOutboundTrunk(context.Context, *CreateSIPOutboundTrunkRequest) (*SIPOutboundTrunkInfo, error) + GetSIPInboundTrunk(context.Context, *GetSIPInboundTrunkRequest) (*GetSIPInboundTrunkResponse, error) + + GetSIPOutboundTrunk(context.Context, *GetSIPOutboundTrunkRequest) (*GetSIPOutboundTrunkResponse, error) + ListSIPInboundTrunk(context.Context, *ListSIPInboundTrunkRequest) (*ListSIPInboundTrunkResponse, error) ListSIPOutboundTrunk(context.Context, *ListSIPOutboundTrunkRequest) (*ListSIPOutboundTrunkResponse, error) @@ -56,7 +60,7 @@ type SIP interface { type sIPProtobufClient struct { client HTTPClient - urls [11]string + urls [13]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -84,11 +88,13 @@ func NewSIPProtobufClient(baseURL string, client HTTPClient, opts ...twirp.Clien // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "livekit", "SIP") - urls := [11]string{ + urls := [13]string{ serviceURL + "CreateSIPTrunk", serviceURL + "ListSIPTrunk", serviceURL + "CreateSIPInboundTrunk", serviceURL + "CreateSIPOutboundTrunk", + serviceURL + "GetSIPInboundTrunk", + serviceURL + "GetSIPOutboundTrunk", serviceURL + "ListSIPInboundTrunk", serviceURL + "ListSIPOutboundTrunk", serviceURL + "DeleteSIPTrunk", @@ -290,6 +296,98 @@ func (c *sIPProtobufClient) callCreateSIPOutboundTrunk(ctx context.Context, in * return out, nil } +func (c *sIPProtobufClient) GetSIPInboundTrunk(ctx context.Context, in *GetSIPInboundTrunkRequest) (*GetSIPInboundTrunkResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "SIP") + ctx = ctxsetters.WithMethodName(ctx, "GetSIPInboundTrunk") + caller := c.callGetSIPInboundTrunk + if c.interceptor != nil { + caller = func(ctx context.Context, req *GetSIPInboundTrunkRequest) (*GetSIPInboundTrunkResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetSIPInboundTrunkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetSIPInboundTrunkRequest) when calling interceptor") + } + return c.callGetSIPInboundTrunk(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetSIPInboundTrunkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetSIPInboundTrunkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *sIPProtobufClient) callGetSIPInboundTrunk(ctx context.Context, in *GetSIPInboundTrunkRequest) (*GetSIPInboundTrunkResponse, error) { + out := new(GetSIPInboundTrunkResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[4], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *sIPProtobufClient) GetSIPOutboundTrunk(ctx context.Context, in *GetSIPOutboundTrunkRequest) (*GetSIPOutboundTrunkResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "SIP") + ctx = ctxsetters.WithMethodName(ctx, "GetSIPOutboundTrunk") + caller := c.callGetSIPOutboundTrunk + if c.interceptor != nil { + caller = func(ctx context.Context, req *GetSIPOutboundTrunkRequest) (*GetSIPOutboundTrunkResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetSIPOutboundTrunkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetSIPOutboundTrunkRequest) when calling interceptor") + } + return c.callGetSIPOutboundTrunk(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetSIPOutboundTrunkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetSIPOutboundTrunkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *sIPProtobufClient) callGetSIPOutboundTrunk(ctx context.Context, in *GetSIPOutboundTrunkRequest) (*GetSIPOutboundTrunkResponse, error) { + out := new(GetSIPOutboundTrunkResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[5], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + func (c *sIPProtobufClient) ListSIPInboundTrunk(ctx context.Context, in *ListSIPInboundTrunkRequest) (*ListSIPInboundTrunkResponse, error) { ctx = ctxsetters.WithPackageName(ctx, "livekit") ctx = ctxsetters.WithServiceName(ctx, "SIP") @@ -321,7 +419,7 @@ func (c *sIPProtobufClient) ListSIPInboundTrunk(ctx context.Context, in *ListSIP func (c *sIPProtobufClient) callListSIPInboundTrunk(ctx context.Context, in *ListSIPInboundTrunkRequest) (*ListSIPInboundTrunkResponse, error) { out := new(ListSIPInboundTrunkResponse) - ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[4], in, out) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[6], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -367,7 +465,7 @@ func (c *sIPProtobufClient) ListSIPOutboundTrunk(ctx context.Context, in *ListSI func (c *sIPProtobufClient) callListSIPOutboundTrunk(ctx context.Context, in *ListSIPOutboundTrunkRequest) (*ListSIPOutboundTrunkResponse, error) { out := new(ListSIPOutboundTrunkResponse) - ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[5], in, out) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[7], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -413,7 +511,7 @@ func (c *sIPProtobufClient) DeleteSIPTrunk(ctx context.Context, in *DeleteSIPTru func (c *sIPProtobufClient) callDeleteSIPTrunk(ctx context.Context, in *DeleteSIPTrunkRequest) (*SIPTrunkInfo, error) { out := new(SIPTrunkInfo) - ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[6], in, out) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[8], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -459,7 +557,7 @@ func (c *sIPProtobufClient) CreateSIPDispatchRule(ctx context.Context, in *Creat func (c *sIPProtobufClient) callCreateSIPDispatchRule(ctx context.Context, in *CreateSIPDispatchRuleRequest) (*SIPDispatchRuleInfo, error) { out := new(SIPDispatchRuleInfo) - ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[7], in, out) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[9], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -505,7 +603,7 @@ func (c *sIPProtobufClient) ListSIPDispatchRule(ctx context.Context, in *ListSIP func (c *sIPProtobufClient) callListSIPDispatchRule(ctx context.Context, in *ListSIPDispatchRuleRequest) (*ListSIPDispatchRuleResponse, error) { out := new(ListSIPDispatchRuleResponse) - ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[8], in, out) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[10], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -551,7 +649,7 @@ func (c *sIPProtobufClient) DeleteSIPDispatchRule(ctx context.Context, in *Delet func (c *sIPProtobufClient) callDeleteSIPDispatchRule(ctx context.Context, in *DeleteSIPDispatchRuleRequest) (*SIPDispatchRuleInfo, error) { out := new(SIPDispatchRuleInfo) - ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[9], in, out) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[11], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -597,7 +695,7 @@ func (c *sIPProtobufClient) CreateSIPParticipant(ctx context.Context, in *Create func (c *sIPProtobufClient) callCreateSIPParticipant(ctx context.Context, in *CreateSIPParticipantRequest) (*SIPParticipantInfo, error) { out := new(SIPParticipantInfo) - ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[10], in, out) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[12], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -618,7 +716,7 @@ func (c *sIPProtobufClient) callCreateSIPParticipant(ctx context.Context, in *Cr type sIPJSONClient struct { client HTTPClient - urls [11]string + urls [13]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -646,11 +744,13 @@ func NewSIPJSONClient(baseURL string, client HTTPClient, opts ...twirp.ClientOpt // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "livekit", "SIP") - urls := [11]string{ + urls := [13]string{ serviceURL + "CreateSIPTrunk", serviceURL + "ListSIPTrunk", serviceURL + "CreateSIPInboundTrunk", serviceURL + "CreateSIPOutboundTrunk", + serviceURL + "GetSIPInboundTrunk", + serviceURL + "GetSIPOutboundTrunk", serviceURL + "ListSIPInboundTrunk", serviceURL + "ListSIPOutboundTrunk", serviceURL + "DeleteSIPTrunk", @@ -852,6 +952,98 @@ func (c *sIPJSONClient) callCreateSIPOutboundTrunk(ctx context.Context, in *Crea return out, nil } +func (c *sIPJSONClient) GetSIPInboundTrunk(ctx context.Context, in *GetSIPInboundTrunkRequest) (*GetSIPInboundTrunkResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "SIP") + ctx = ctxsetters.WithMethodName(ctx, "GetSIPInboundTrunk") + caller := c.callGetSIPInboundTrunk + if c.interceptor != nil { + caller = func(ctx context.Context, req *GetSIPInboundTrunkRequest) (*GetSIPInboundTrunkResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetSIPInboundTrunkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetSIPInboundTrunkRequest) when calling interceptor") + } + return c.callGetSIPInboundTrunk(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetSIPInboundTrunkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetSIPInboundTrunkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *sIPJSONClient) callGetSIPInboundTrunk(ctx context.Context, in *GetSIPInboundTrunkRequest) (*GetSIPInboundTrunkResponse, error) { + out := new(GetSIPInboundTrunkResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[4], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *sIPJSONClient) GetSIPOutboundTrunk(ctx context.Context, in *GetSIPOutboundTrunkRequest) (*GetSIPOutboundTrunkResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "SIP") + ctx = ctxsetters.WithMethodName(ctx, "GetSIPOutboundTrunk") + caller := c.callGetSIPOutboundTrunk + if c.interceptor != nil { + caller = func(ctx context.Context, req *GetSIPOutboundTrunkRequest) (*GetSIPOutboundTrunkResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetSIPOutboundTrunkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetSIPOutboundTrunkRequest) when calling interceptor") + } + return c.callGetSIPOutboundTrunk(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetSIPOutboundTrunkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetSIPOutboundTrunkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *sIPJSONClient) callGetSIPOutboundTrunk(ctx context.Context, in *GetSIPOutboundTrunkRequest) (*GetSIPOutboundTrunkResponse, error) { + out := new(GetSIPOutboundTrunkResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[5], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + func (c *sIPJSONClient) ListSIPInboundTrunk(ctx context.Context, in *ListSIPInboundTrunkRequest) (*ListSIPInboundTrunkResponse, error) { ctx = ctxsetters.WithPackageName(ctx, "livekit") ctx = ctxsetters.WithServiceName(ctx, "SIP") @@ -883,7 +1075,7 @@ func (c *sIPJSONClient) ListSIPInboundTrunk(ctx context.Context, in *ListSIPInbo func (c *sIPJSONClient) callListSIPInboundTrunk(ctx context.Context, in *ListSIPInboundTrunkRequest) (*ListSIPInboundTrunkResponse, error) { out := new(ListSIPInboundTrunkResponse) - ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[4], in, out) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[6], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -929,7 +1121,7 @@ func (c *sIPJSONClient) ListSIPOutboundTrunk(ctx context.Context, in *ListSIPOut func (c *sIPJSONClient) callListSIPOutboundTrunk(ctx context.Context, in *ListSIPOutboundTrunkRequest) (*ListSIPOutboundTrunkResponse, error) { out := new(ListSIPOutboundTrunkResponse) - ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[5], in, out) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[7], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -975,7 +1167,7 @@ func (c *sIPJSONClient) DeleteSIPTrunk(ctx context.Context, in *DeleteSIPTrunkRe func (c *sIPJSONClient) callDeleteSIPTrunk(ctx context.Context, in *DeleteSIPTrunkRequest) (*SIPTrunkInfo, error) { out := new(SIPTrunkInfo) - ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[6], in, out) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[8], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -1021,7 +1213,7 @@ func (c *sIPJSONClient) CreateSIPDispatchRule(ctx context.Context, in *CreateSIP func (c *sIPJSONClient) callCreateSIPDispatchRule(ctx context.Context, in *CreateSIPDispatchRuleRequest) (*SIPDispatchRuleInfo, error) { out := new(SIPDispatchRuleInfo) - ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[7], in, out) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[9], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -1067,7 +1259,7 @@ func (c *sIPJSONClient) ListSIPDispatchRule(ctx context.Context, in *ListSIPDisp func (c *sIPJSONClient) callListSIPDispatchRule(ctx context.Context, in *ListSIPDispatchRuleRequest) (*ListSIPDispatchRuleResponse, error) { out := new(ListSIPDispatchRuleResponse) - ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[8], in, out) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[10], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -1113,7 +1305,7 @@ func (c *sIPJSONClient) DeleteSIPDispatchRule(ctx context.Context, in *DeleteSIP func (c *sIPJSONClient) callDeleteSIPDispatchRule(ctx context.Context, in *DeleteSIPDispatchRuleRequest) (*SIPDispatchRuleInfo, error) { out := new(SIPDispatchRuleInfo) - ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[9], in, out) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[11], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -1159,7 +1351,7 @@ func (c *sIPJSONClient) CreateSIPParticipant(ctx context.Context, in *CreateSIPP func (c *sIPJSONClient) callCreateSIPParticipant(ctx context.Context, in *CreateSIPParticipantRequest) (*SIPParticipantInfo, error) { out := new(SIPParticipantInfo) - ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[10], in, out) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[12], in, out) if err != nil { twerr, ok := err.(twirp.Error) if !ok { @@ -1283,6 +1475,12 @@ func (s *sIPServer) ServeHTTP(resp http.ResponseWriter, req *http.Request) { case "CreateSIPOutboundTrunk": s.serveCreateSIPOutboundTrunk(ctx, resp, req) return + case "GetSIPInboundTrunk": + s.serveGetSIPInboundTrunk(ctx, resp, req) + return + case "GetSIPOutboundTrunk": + s.serveGetSIPOutboundTrunk(ctx, resp, req) + return case "ListSIPInboundTrunk": s.serveListSIPInboundTrunk(ctx, resp, req) return @@ -2031,6 +2229,366 @@ func (s *sIPServer) serveCreateSIPOutboundTrunkProtobuf(ctx context.Context, res callResponseSent(ctx, s.hooks) } +func (s *sIPServer) serveGetSIPInboundTrunk(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveGetSIPInboundTrunkJSON(ctx, resp, req) + case "application/protobuf": + s.serveGetSIPInboundTrunkProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *sIPServer) serveGetSIPInboundTrunkJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "GetSIPInboundTrunk") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(GetSIPInboundTrunkRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.SIP.GetSIPInboundTrunk + if s.interceptor != nil { + handler = func(ctx context.Context, req *GetSIPInboundTrunkRequest) (*GetSIPInboundTrunkResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetSIPInboundTrunkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetSIPInboundTrunkRequest) when calling interceptor") + } + return s.SIP.GetSIPInboundTrunk(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetSIPInboundTrunkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetSIPInboundTrunkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *GetSIPInboundTrunkResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *GetSIPInboundTrunkResponse and nil error while calling GetSIPInboundTrunk. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *sIPServer) serveGetSIPInboundTrunkProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "GetSIPInboundTrunk") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(GetSIPInboundTrunkRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.SIP.GetSIPInboundTrunk + if s.interceptor != nil { + handler = func(ctx context.Context, req *GetSIPInboundTrunkRequest) (*GetSIPInboundTrunkResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetSIPInboundTrunkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetSIPInboundTrunkRequest) when calling interceptor") + } + return s.SIP.GetSIPInboundTrunk(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetSIPInboundTrunkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetSIPInboundTrunkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *GetSIPInboundTrunkResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *GetSIPInboundTrunkResponse and nil error while calling GetSIPInboundTrunk. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *sIPServer) serveGetSIPOutboundTrunk(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveGetSIPOutboundTrunkJSON(ctx, resp, req) + case "application/protobuf": + s.serveGetSIPOutboundTrunkProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *sIPServer) serveGetSIPOutboundTrunkJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "GetSIPOutboundTrunk") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(GetSIPOutboundTrunkRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.SIP.GetSIPOutboundTrunk + if s.interceptor != nil { + handler = func(ctx context.Context, req *GetSIPOutboundTrunkRequest) (*GetSIPOutboundTrunkResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetSIPOutboundTrunkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetSIPOutboundTrunkRequest) when calling interceptor") + } + return s.SIP.GetSIPOutboundTrunk(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetSIPOutboundTrunkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetSIPOutboundTrunkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *GetSIPOutboundTrunkResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *GetSIPOutboundTrunkResponse and nil error while calling GetSIPOutboundTrunk. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *sIPServer) serveGetSIPOutboundTrunkProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "GetSIPOutboundTrunk") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(GetSIPOutboundTrunkRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.SIP.GetSIPOutboundTrunk + if s.interceptor != nil { + handler = func(ctx context.Context, req *GetSIPOutboundTrunkRequest) (*GetSIPOutboundTrunkResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetSIPOutboundTrunkRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetSIPOutboundTrunkRequest) when calling interceptor") + } + return s.SIP.GetSIPOutboundTrunk(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetSIPOutboundTrunkResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetSIPOutboundTrunkResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *GetSIPOutboundTrunkResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *GetSIPOutboundTrunkResponse and nil error while calling GetSIPOutboundTrunk. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + func (s *sIPServer) serveListSIPInboundTrunk(ctx context.Context, resp http.ResponseWriter, req *http.Request) { header := req.Header.Get("Content-Type") i := strings.Index(header, ";") @@ -3307,105 +3865,114 @@ func (s *sIPServer) PathPrefix() string { } var twirpFileDescriptor4 = []byte{ - // 1588 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xdb, 0x6e, 0xdb, 0x46, - 0x13, 0xb6, 0x8e, 0x96, 0xc6, 0xb6, 0x2c, 0xaf, 0x0f, 0x60, 0x64, 0x3b, 0x31, 0x98, 0xf8, 0x4f, - 0xfe, 0xfc, 0x81, 0x82, 0xdf, 0x46, 0x8b, 0xd6, 0x40, 0x51, 0xf8, 0x90, 0x83, 0x10, 0xd7, 0x56, - 0x69, 0xf9, 0x22, 0x45, 0x50, 0x96, 0x36, 0xd7, 0xf1, 0xc2, 0x12, 0xc9, 0x92, 0x94, 0x13, 0xf7, - 0xba, 0x17, 0x7d, 0x87, 0x5e, 0x15, 0x05, 0x7a, 0xd1, 0xde, 0xf6, 0x75, 0xfa, 0x02, 0x05, 0xfa, - 0x0e, 0xc5, 0x2e, 0x77, 0xe9, 0x5d, 0x6a, 0x25, 0xcb, 0x45, 0x73, 0x47, 0x7e, 0x33, 0x3b, 0x3b, - 0x3b, 0xf3, 0xcd, 0xec, 0x90, 0x30, 0xd7, 0x25, 0x97, 0xf8, 0x82, 0xc4, 0x76, 0x44, 0x82, 0x66, - 0x10, 0xfa, 0xb1, 0x8f, 0x26, 0x39, 0x64, 0xfe, 0x51, 0x80, 0xc5, 0xdd, 0x10, 0x3b, 0x31, 0x3e, - 0x6a, 0xb5, 0x3b, 0x61, 0xdf, 0xbb, 0xb0, 0xf0, 0xb7, 0x7d, 0x1c, 0xc5, 0xe8, 0x7f, 0x30, 0x47, - 0xbc, 0x13, 0xbf, 0xef, 0xb9, 0xb6, 0xe3, 0xba, 0x21, 0x8e, 0x22, 0x1c, 0x19, 0xb9, 0xb5, 0xc2, - 0xa3, 0xaa, 0x55, 0xe7, 0x82, 0x6d, 0x81, 0xa3, 0xff, 0x42, 0xdd, 0xef, 0xc7, 0x8a, 0xb6, 0x91, - 0x5f, 0xcb, 0x3d, 0xaa, 0x5a, 0xb3, 0x02, 0xe7, 0xca, 0xe8, 0x21, 0xa4, 0x90, 0xed, 0xf5, 0x7b, - 0x27, 0x38, 0x34, 0x0a, 0x4c, 0xb3, 0x26, 0xe0, 0x03, 0x86, 0xa2, 0x8f, 0x61, 0x51, 0x38, 0x90, - 0xe8, 0x45, 0x76, 0x88, 0xdf, 0xe2, 0xf7, 0x46, 0x91, 0x3a, 0xb1, 0x93, 0x37, 0x72, 0xd6, 0x3c, - 0x57, 0x48, 0x56, 0x44, 0x16, 0x15, 0xd3, 0x0d, 0x32, 0xeb, 0x8c, 0x2a, 0x73, 0xbb, 0xa6, 0x6a, - 0x53, 0xa7, 0x85, 0x62, 0x3f, 0xc2, 0xa1, 0xe7, 0xf4, 0xb0, 0x51, 0x4a, 0x9c, 0xe6, 0xf8, 0x31, - 0x87, 0x65, 0xd5, 0xc0, 0x89, 0xa2, 0x77, 0x7e, 0xe8, 0x1a, 0x65, 0x45, 0xb5, 0xcd, 0x61, 0x1a, - 0xb7, 0xf4, 0x7c, 0xa9, 0xd9, 0x49, 0xa6, 0x9b, 0xc6, 0x28, 0xb5, 0x2b, 0x2b, 0xa7, 0x86, 0x2b, - 0xaa, 0x72, 0x6a, 0x19, 0x41, 0x91, 0x19, 0x03, 0x26, 0x67, 0xcf, 0xa8, 0x01, 0x95, 0x1e, 0x8e, - 0x1d, 0xd7, 0x89, 0x1d, 0x63, 0x8a, 0xe1, 0xe9, 0xfb, 0x56, 0xde, 0xc8, 0x99, 0xbf, 0x94, 0x60, - 0x5a, 0x64, 0xb6, 0xe5, 0x9d, 0xf9, 0x68, 0x0d, 0xa6, 0x23, 0x12, 0xd8, 0x31, 0x05, 0x6c, 0xe2, - 0x1a, 0x39, 0xb6, 0x08, 0x22, 0x12, 0x24, 0x3a, 0x2e, 0xda, 0x84, 0xe2, 0x05, 0xf1, 0x5c, 0xa3, - 0xb6, 0x96, 0x7b, 0x54, 0xdb, 0xb8, 0xd7, 0xe4, 0x54, 0x69, 0xca, 0x66, 0x9a, 0xec, 0xe9, 0x15, - 0xf1, 0x5c, 0x8b, 0x29, 0xeb, 0xd9, 0x92, 0xbf, 0x05, 0x5b, 0x0a, 0x63, 0xb3, 0xa5, 0xa8, 0x65, - 0xcb, 0x26, 0x54, 0xe3, 0xd0, 0xf1, 0xa2, 0xc0, 0x0f, 0x63, 0x63, 0x86, 0xb9, 0xbe, 0xa8, 0xba, - 0xce, 0x85, 0xd6, 0xb5, 0xde, 0x70, 0x8a, 0x95, 0x6e, 0x4d, 0x31, 0x18, 0x9b, 0x62, 0xe5, 0xf1, - 0x29, 0x36, 0x79, 0x0b, 0x8a, 0x55, 0x6e, 0x43, 0xb1, 0xea, 0x0d, 0x14, 0x9b, 0x1a, 0x42, 0xb1, - 0x69, 0x95, 0x62, 0xe6, 0x1e, 0x54, 0x53, 0x26, 0xa0, 0x3a, 0x4c, 0x77, 0xac, 0xe3, 0x83, 0x57, - 0xf6, 0xfe, 0xb3, 0x17, 0xdb, 0xbb, 0xaf, 0xeb, 0x13, 0x68, 0x0e, 0x66, 0x12, 0xa4, 0x75, 0xb0, - 0x73, 0x78, 0x7c, 0xb0, 0x57, 0xcf, 0x21, 0x04, 0xb5, 0x04, 0x3a, 0x3c, 0xee, 0x24, 0x58, 0x9e, - 0x11, 0xd5, 0x82, 0x95, 0xb4, 0x0f, 0xb5, 0x92, 0xf3, 0x2a, 0xed, 0x68, 0x03, 0x4a, 0x8c, 0xb3, - 0x8c, 0xb0, 0x53, 0x1b, 0x2b, 0x72, 0x6e, 0x65, 0x7d, 0xca, 0x4e, 0x2b, 0x51, 0x35, 0x7f, 0xca, - 0xc3, 0xbc, 0x46, 0x3c, 0x46, 0x0d, 0x88, 0x38, 0xe4, 0x87, 0xc4, 0xa1, 0xa0, 0xc6, 0x01, 0x19, - 0x30, 0x29, 0x88, 0xc0, 0xba, 0x93, 0x25, 0x5e, 0x69, 0xf8, 0x9d, 0x6e, 0xd7, 0x7f, 0x87, 0xe5, - 0xc2, 0x28, 0x25, 0x85, 0xc1, 0x05, 0xd7, 0x85, 0xf1, 0x10, 0x66, 0x85, 0xb2, 0x30, 0x57, 0x4e, - 0x78, 0xc5, 0x61, 0xc1, 0xab, 0xfb, 0x30, 0xe3, 0xf4, 0xe3, 0xf3, 0x6c, 0x83, 0x99, 0xa6, 0x60, - 0x9a, 0x79, 0xa1, 0x94, 0x69, 0x2c, 0x4c, 0x49, 0x64, 0xdc, 0xec, 0xc0, 0x6a, 0x1a, 0xf7, 0x43, - 0x4e, 0x07, 0x25, 0xf0, 0x9b, 0x6a, 0xe0, 0x57, 0xe5, 0xc0, 0x2b, 0x0b, 0xe4, 0xc8, 0xff, 0x98, - 0x87, 0x05, 0x9d, 0xfc, 0xc3, 0x84, 0x5e, 0xf4, 0x90, 0xa4, 0x33, 0x88, 0x57, 0xb5, 0x25, 0x94, - 0xc6, 0x6c, 0x09, 0x52, 0x26, 0xcb, 0x6a, 0x26, 0xff, 0xbd, 0x98, 0xdf, 0x81, 0xf9, 0x7d, 0x12, - 0xc5, 0x99, 0x1b, 0x97, 0x95, 0xc1, 0x0b, 0x58, 0x50, 0x45, 0x51, 0xe0, 0x7b, 0x11, 0xad, 0xe2, - 0x12, 0x89, 0x71, 0x2f, 0xb9, 0x81, 0xa7, 0xb2, 0xe7, 0x48, 0xa3, 0xcf, 0x74, 0x98, 0xa1, 0x15, - 0x68, 0x70, 0x43, 0x9a, 0x6a, 0x32, 0xbf, 0x84, 0x65, 0xad, 0x94, 0xef, 0xb6, 0xa1, 0xee, 0x76, - 0x43, 0xb1, 0x31, 0x55, 0x73, 0x35, 0x35, 0xa9, 0xa3, 0x91, 0x79, 0x04, 0x2b, 0x7a, 0x31, 0xdf, - 0x72, 0x53, 0xdd, 0xf2, 0x26, 0x9a, 0x25, 0x7b, 0x7e, 0x0a, 0x8b, 0x7b, 0xb8, 0x8b, 0x07, 0x87, - 0x97, 0x1b, 0x69, 0x66, 0x3e, 0x87, 0xc5, 0xa3, 0x56, 0x7b, 0x8f, 0x44, 0x81, 0x13, 0x9f, 0x9e, - 0x5b, 0xfd, 0x2e, 0xde, 0x23, 0x21, 0x3e, 0x8d, 0xd1, 0x32, 0x54, 0x43, 0xdf, 0xef, 0xd9, 0x2c, - 0xc5, 0xc9, 0xba, 0x0a, 0x05, 0x0e, 0x68, 0x7a, 0xeb, 0x50, 0x08, 0x88, 0xc7, 0xb9, 0x49, 0x1f, - 0xcd, 0x03, 0xb8, 0x93, 0xb1, 0xd3, 0xf2, 0x5c, 0x72, 0x49, 0xdc, 0xbe, 0xd3, 0x45, 0xf7, 0x60, - 0x8a, 0xd9, 0x0a, 0x42, 0x7c, 0x46, 0xde, 0x0b, 0x2f, 0x28, 0xd4, 0x66, 0x88, 0xc6, 0xde, 0xf9, - 0x80, 0x5f, 0xbb, 0x4e, 0xb7, 0x8b, 0xf1, 0x3f, 0xb0, 0x85, 0x56, 0xa0, 0x1a, 0x3a, 0x9e, 0xeb, - 0xf7, 0xc8, 0x77, 0x98, 0xd5, 0x4d, 0xc5, 0xba, 0x06, 0x68, 0x77, 0x9c, 0xcd, 0x6c, 0x85, 0x2c, - 0x58, 0x70, 0xf9, 0xbb, 0x1d, 0xf6, 0xbb, 0xd8, 0x76, 0x59, 0x50, 0x78, 0xed, 0xdf, 0x95, 0x93, - 0x32, 0x18, 0xba, 0x97, 0x13, 0x16, 0x72, 0x07, 0x03, 0xfa, 0x35, 0x18, 0xaa, 0x4d, 0x92, 0x06, - 0x88, 0x39, 0x3b, 0xb5, 0x61, 0x0e, 0xb3, 0x7b, 0x1d, 0xca, 0x97, 0x13, 0xd6, 0x92, 0xab, 0x0f, - 0xf2, 0x80, 0xcf, 0xa7, 0x2c, 0x60, 0xec, 0xc0, 0x23, 0x7c, 0x4e, 0xc2, 0x9a, 0xf5, 0x39, 0x41, - 0x77, 0xca, 0x50, 0xa4, 0xa6, 0xcc, 0xef, 0x0b, 0xd2, 0xb5, 0x24, 0xaf, 0x16, 0x44, 0x7b, 0x92, - 0x28, 0xf2, 0x00, 0x19, 0xc3, 0x36, 0xb3, 0x98, 0x16, 0xe5, 0x96, 0xa0, 0xa4, 0x98, 0x8e, 0x2a, - 0x71, 0x42, 0xc8, 0x08, 0x3d, 0x86, 0xb9, 0x73, 0xe2, 0x62, 0x3b, 0x38, 0xf7, 0x3d, 0x2c, 0x8f, - 0xc6, 0x15, 0x6b, 0x96, 0x0a, 0xda, 0x14, 0xe7, 0xd3, 0x8e, 0x66, 0x00, 0x29, 0x6b, 0x07, 0x10, - 0xd1, 0x4d, 0x8b, 0x43, 0xba, 0x69, 0x29, 0xd3, 0x4d, 0x8f, 0x01, 0x9c, 0x38, 0x0e, 0xc9, 0x49, - 0x3f, 0xc6, 0x91, 0x31, 0xc9, 0x6a, 0xf1, 0xa3, 0xf4, 0x54, 0xa3, 0x42, 0xd1, 0xdc, 0x4e, 0xd7, - 0x3d, 0xf3, 0xe2, 0xf0, 0xca, 0x92, 0x0c, 0x35, 0x3e, 0x83, 0xd9, 0x8c, 0x98, 0xd2, 0xf5, 0x02, - 0x5f, 0x71, 0x1e, 0xd3, 0x47, 0xb4, 0x00, 0xa5, 0x4b, 0xa7, 0xdb, 0x17, 0xad, 0x3f, 0x79, 0xd9, - 0xca, 0x7f, 0x92, 0x33, 0x7f, 0x2e, 0xb0, 0x8b, 0x5c, 0xa5, 0xc6, 0x99, 0x8f, 0x9e, 0xc2, 0x02, - 0x2d, 0xf3, 0x0c, 0xbd, 0x44, 0xb9, 0xcf, 0x45, 0x24, 0x50, 0x96, 0xb8, 0x69, 0xba, 0xf2, 0xb7, - 0x4f, 0x57, 0x61, 0x9c, 0x74, 0x15, 0xc7, 0x4e, 0xd7, 0xe4, 0xc8, 0x74, 0x95, 0x86, 0xa4, 0xab, - 0x9c, 0x49, 0xd7, 0xbe, 0x92, 0xae, 0x0a, 0x4b, 0xd7, 0x93, 0xe1, 0xd5, 0x74, 0xe6, 0x7f, 0xc8, - 0x2c, 0x5d, 0x5f, 0x39, 0x1a, 0x7a, 0x48, 0x57, 0x8e, 0x2a, 0x1d, 0xe3, 0xca, 0xc9, 0x1e, 0x42, - 0xb4, 0xff, 0x43, 0x58, 0x49, 0xdb, 0xbf, 0xae, 0x38, 0x6f, 0x4b, 0x0f, 0xf3, 0xf7, 0x22, 0x2c, - 0xa7, 0x1c, 0x6f, 0x3b, 0x61, 0x4c, 0x4e, 0x49, 0xe0, 0x78, 0xf1, 0xd8, 0xd7, 0x0a, 0xba, 0x0b, - 0x53, 0x54, 0x83, 0xb6, 0x20, 0x3b, 0xf6, 0x79, 0x8c, 0xaa, 0x11, 0x09, 0x68, 0x63, 0xe9, 0xf8, - 0xea, 0xed, 0x52, 0xc8, 0xdc, 0x2e, 0xff, 0x87, 0x85, 0xe0, 0x7a, 0x53, 0x9b, 0xb8, 0xd8, 0x8b, - 0x49, 0x7c, 0xc5, 0x8b, 0x77, 0x5e, 0x92, 0xb5, 0xb8, 0x88, 0x7e, 0x35, 0xc8, 0x4b, 0xa4, 0xb9, - 0x64, 0x56, 0xc2, 0x75, 0xd6, 0x53, 0x4e, 0x55, 0x06, 0xac, 0x7f, 0x21, 0xe8, 0x75, 0x09, 0x4b, - 0xf2, 0x12, 0x89, 0x6a, 0x55, 0x96, 0xa5, 0xcf, 0x07, 0x3b, 0xc3, 0x60, 0xd4, 0x9a, 0x12, 0x94, - 0x65, 0xdf, 0x62, 0xa0, 0x93, 0xd1, 0x32, 0x70, 0xe3, 0xde, 0x99, 0x28, 0x03, 0xfa, 0x4c, 0x27, - 0xab, 0xa0, 0xeb, 0x5c, 0xd9, 0x21, 0xf1, 0xde, 0xc6, 0xbe, 0x97, 0x7c, 0x47, 0x55, 0xac, 0x69, - 0x0a, 0x5a, 0x1c, 0xd3, 0x17, 0x25, 0x68, 0x8b, 0xb2, 0xf1, 0x12, 0x1a, 0xc3, 0x3d, 0xbb, 0x15, - 0xf1, 0x7f, 0xcb, 0x01, 0x52, 0x8f, 0xce, 0xba, 0xd3, 0x3a, 0xd4, 0xd4, 0x74, 0x72, 0x6b, 0x33, - 0x4a, 0x22, 0x87, 0x66, 0x3d, 0x3f, 0x3c, 0xeb, 0x23, 0x59, 0x24, 0x53, 0x90, 0xb8, 0x9c, 0x3c, - 0x82, 0x82, 0x2d, 0xf7, 0xf1, 0x05, 0xff, 0x23, 0x20, 0x26, 0xde, 0x25, 0xe6, 0xbc, 0xdd, 0xb1, - 0xb6, 0x0f, 0x8e, 0xda, 0x87, 0x56, 0xc7, 0xde, 0x3e, 0xee, 0x1c, 0xd6, 0x27, 0xd0, 0x22, 0xcc, - 0xa9, 0xf8, 0xf1, 0x5e, 0xbb, 0x9e, 0x1b, 0x84, 0x3b, 0xbb, 0xed, 0x7a, 0x5e, 0x03, 0xef, 0x1f, - 0xd5, 0x0b, 0x1b, 0x7f, 0x4d, 0x42, 0xe1, 0xa8, 0xd5, 0x46, 0xfb, 0x50, 0x53, 0x7f, 0x33, 0xa1, - 0xbb, 0x83, 0xdc, 0x91, 0x47, 0xb8, 0x86, 0x7e, 0xc4, 0x35, 0x0b, 0x3f, 0xe4, 0x73, 0xa8, 0x0d, - 0xd3, 0xf2, 0x94, 0x8c, 0xae, 0xbb, 0x85, 0x66, 0xae, 0x6e, 0xac, 0x0e, 0x91, 0x26, 0x9d, 0x27, - 0xb1, 0xf8, 0x46, 0xfa, 0x0d, 0x26, 0x4f, 0xb8, 0x68, 0x7d, 0xd0, 0x4d, 0xcd, 0x40, 0xdd, 0x18, - 0x39, 0x22, 0x23, 0x1b, 0x96, 0xf4, 0x1f, 0x59, 0xe8, 0x3f, 0x83, 0xe6, 0x75, 0xe3, 0x73, 0x63, - 0xf4, 0x3c, 0x8c, 0xbe, 0x49, 0xbf, 0x28, 0x14, 0xe7, 0xef, 0x67, 0x4f, 0xae, 0x73, 0xfd, 0xc1, - 0x68, 0x25, 0xde, 0x9f, 0x4f, 0xd3, 0x0f, 0x13, 0xf5, 0x00, 0x03, 0xab, 0xb5, 0xee, 0xaf, 0xdf, - 0xa0, 0xc5, 0x37, 0x79, 0x01, 0x35, 0x75, 0x9e, 0x97, 0x58, 0xa2, 0x1d, 0xf4, 0x87, 0xb0, 0x44, - 0x49, 0xa7, 0x32, 0xe0, 0xae, 0x8f, 0x35, 0xcb, 0x34, 0x46, 0x5e, 0x3f, 0x52, 0xb4, 0x15, 0xdb, - 0x03, 0xd1, 0xd6, 0x59, 0x7e, 0x30, 0x5a, 0x89, 0x07, 0xe2, 0x8d, 0xf4, 0x61, 0x33, 0xc4, 0xff, - 0x51, 0x37, 0xdf, 0x0d, 0xfe, 0xbf, 0x86, 0x05, 0x5d, 0xbf, 0x96, 0x72, 0x39, 0xa2, 0x9d, 0x37, - 0x96, 0x65, 0xdb, 0x99, 0x9e, 0xb7, 0xf3, 0xfc, 0xab, 0xfb, 0x6f, 0x49, 0x7c, 0xde, 0x3f, 0x69, - 0x9e, 0xfa, 0xbd, 0xa7, 0x5c, 0xf1, 0x29, 0xfb, 0xe9, 0x7c, 0xea, 0x77, 0x05, 0xf0, 0x6b, 0x7e, - 0x66, 0x9f, 0x5c, 0xe2, 0x57, 0x24, 0x6e, 0xb6, 0xa9, 0xe8, 0xcf, 0x7c, 0x8d, 0xbf, 0x6f, 0x6d, - 0x31, 0xe0, 0xa4, 0xcc, 0x96, 0x6c, 0xfe, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x17, 0x27, 0xbd, - 0xbc, 0x16, 0x00, 0x00, + // 1737 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0x4f, 0x6f, 0xdb, 0xca, + 0x11, 0xb7, 0xfe, 0x5a, 0x1a, 0xc9, 0xb2, 0xbc, 0xb6, 0x0c, 0x46, 0xb6, 0x13, 0x43, 0x89, 0x9b, + 0xbf, 0x50, 0x50, 0x1b, 0x0d, 0x5a, 0x03, 0x69, 0xe1, 0x3f, 0x89, 0x2d, 0xc4, 0xb5, 0x55, 0x5a, + 0x3e, 0xa4, 0x48, 0xcb, 0xd2, 0xe6, 0x3a, 0xda, 0x5a, 0x22, 0x59, 0x92, 0x72, 0xe2, 0x9e, 0x7b, + 0xe8, 0xd7, 0x28, 0x0a, 0xf4, 0xd0, 0x02, 0x3d, 0xf5, 0x8b, 0xf4, 0xf0, 0x8e, 0xef, 0x0b, 0xbc, + 0x4f, 0xf1, 0xc0, 0xe5, 0x92, 0x5a, 0x92, 0x4b, 0x4a, 0xca, 0x7b, 0x39, 0xbc, 0x1b, 0x39, 0x33, + 0x3b, 0x3b, 0x9c, 0xf9, 0xcd, 0x3f, 0x09, 0x96, 0x06, 0xe4, 0x16, 0xdf, 0x10, 0x47, 0xb1, 0x89, + 0xd9, 0x36, 0x2d, 0xc3, 0x31, 0xd0, 0x3c, 0x23, 0xb5, 0xbe, 0xcd, 0x41, 0xe3, 0xc0, 0xc2, 0xaa, + 0x83, 0xcf, 0x3b, 0xdd, 0x9e, 0x35, 0xd2, 0x6f, 0x64, 0xfc, 0x97, 0x11, 0xb6, 0x1d, 0xf4, 0x1c, + 0x96, 0x88, 0x7e, 0x69, 0x8c, 0x74, 0x4d, 0x51, 0x35, 0xcd, 0xc2, 0xb6, 0x8d, 0x6d, 0x29, 0xb3, + 0x99, 0x7b, 0x52, 0x96, 0xeb, 0x8c, 0xb1, 0xe7, 0xd3, 0xd1, 0x53, 0xa8, 0x1b, 0x23, 0x27, 0x24, + 0x2d, 0x65, 0x37, 0x33, 0x4f, 0xca, 0xf2, 0xa2, 0x4f, 0x67, 0xc2, 0xe8, 0x31, 0x04, 0x24, 0x45, + 0x1f, 0x0d, 0x2f, 0xb1, 0x25, 0xe5, 0xa8, 0x64, 0xcd, 0x27, 0x9f, 0x52, 0x2a, 0x7a, 0x05, 0x0d, + 0xdf, 0x00, 0x4f, 0xce, 0x56, 0x2c, 0xfc, 0x11, 0x7f, 0x96, 0xf2, 0xae, 0x11, 0xfb, 0x59, 0x29, + 0x23, 0x2f, 0x33, 0x01, 0xef, 0x84, 0x2d, 0xbb, 0x6c, 0xf7, 0x82, 0xc8, 0x39, 0xa9, 0x4c, 0xcd, + 0xae, 0x85, 0xa5, 0x5d, 0xa3, 0x7d, 0xc1, 0x91, 0x8d, 0x2d, 0x5d, 0x1d, 0x62, 0xa9, 0xe0, 0x19, + 0xcd, 0xe8, 0x17, 0x8c, 0xcc, 0x8b, 0x9a, 0xaa, 0x6d, 0x7f, 0x32, 0x2c, 0x4d, 0x2a, 0x86, 0x44, + 0xbb, 0x8c, 0xec, 0xfa, 0x2d, 0xf8, 0xbe, 0x40, 0xed, 0x3c, 0x95, 0x0d, 0x7c, 0x14, 0xe8, 0xe5, + 0x85, 0x03, 0xc5, 0xa5, 0xb0, 0x70, 0xa0, 0x19, 0x41, 0x9e, 0x2a, 0x03, 0xca, 0xa7, 0xcf, 0xa8, + 0x09, 0xa5, 0x21, 0x76, 0x54, 0x4d, 0x75, 0x54, 0xa9, 0x42, 0xe9, 0xc1, 0xfb, 0x6e, 0x56, 0xca, + 0xb4, 0xfe, 0x55, 0x80, 0xaa, 0x1f, 0xd9, 0x8e, 0x7e, 0x6d, 0xa0, 0x4d, 0xa8, 0xda, 0xc4, 0x54, + 0x1c, 0x97, 0xa0, 0x10, 0x4d, 0xca, 0xd0, 0x43, 0x60, 0x13, 0xd3, 0x93, 0xd1, 0xd0, 0x0e, 0xe4, + 0x6f, 0x88, 0xae, 0x49, 0xb5, 0xcd, 0xcc, 0x93, 0xda, 0xf6, 0x83, 0x36, 0x83, 0x4a, 0x9b, 0x57, + 0xd3, 0xa6, 0x4f, 0xef, 0x88, 0xae, 0xc9, 0x54, 0x58, 0x8c, 0x96, 0xec, 0x0c, 0x68, 0xc9, 0x4d, + 0x8d, 0x96, 0xbc, 0x10, 0x2d, 0x3b, 0x50, 0x76, 0x2c, 0x55, 0xb7, 0x4d, 0xc3, 0x72, 0xa4, 0x05, + 0x6a, 0x7a, 0x23, 0x6c, 0x3a, 0x63, 0xca, 0x63, 0xb9, 0x64, 0x88, 0x15, 0x66, 0x86, 0x18, 0x4c, + 0x0d, 0xb1, 0xe2, 0xf4, 0x10, 0x9b, 0x9f, 0x01, 0x62, 0xa5, 0x59, 0x20, 0x56, 0x9e, 0x00, 0xb1, + 0x4a, 0x02, 0xc4, 0xaa, 0x61, 0x88, 0xb5, 0x0e, 0xa1, 0x1c, 0x20, 0x01, 0xd5, 0xa1, 0xda, 0x93, + 0x2f, 0x4e, 0xdf, 0x29, 0x27, 0x6f, 0x8e, 0xf6, 0x0e, 0xde, 0xd7, 0xe7, 0xd0, 0x12, 0x2c, 0x78, + 0x94, 0xce, 0xe9, 0xfe, 0xd9, 0xc5, 0xe9, 0x61, 0x3d, 0x83, 0x10, 0xd4, 0x3c, 0xd2, 0xd9, 0x45, + 0xcf, 0xa3, 0x65, 0x29, 0x50, 0x65, 0x58, 0x0f, 0xea, 0x50, 0xc7, 0xfb, 0xde, 0x50, 0x39, 0xda, + 0x86, 0x02, 0xc5, 0x2c, 0x05, 0x6c, 0x65, 0x7b, 0x9d, 0x8f, 0x2d, 0x2f, 0xef, 0xa2, 0x53, 0xf6, + 0x44, 0x5b, 0xdf, 0xe4, 0x61, 0x59, 0xc0, 0x9e, 0x22, 0x07, 0x7c, 0x3f, 0x64, 0x13, 0xfc, 0x90, + 0x0b, 0xfb, 0x01, 0x49, 0x30, 0xef, 0x03, 0x81, 0x56, 0x27, 0xd9, 0x7f, 0x75, 0xdd, 0xaf, 0x0e, + 0x06, 0xc6, 0x27, 0xcc, 0x27, 0x46, 0xc1, 0x4b, 0x0c, 0xc6, 0x18, 0x27, 0xc6, 0x63, 0x58, 0xf4, + 0x85, 0x7d, 0x75, 0x45, 0x0f, 0x57, 0x8c, 0xec, 0xe3, 0xea, 0x21, 0x2c, 0xa8, 0x23, 0xa7, 0x1f, + 0x2d, 0x30, 0x55, 0x97, 0x18, 0x44, 0xde, 0x17, 0x8a, 0x14, 0x16, 0x2a, 0x14, 0x44, 0xfc, 0x00, + 0xe6, 0xfb, 0x58, 0xd5, 0xfc, 0x2a, 0x59, 0xd9, 0x7e, 0x9a, 0xe6, 0xd9, 0xf6, 0xb1, 0x27, 0xfb, + 0x46, 0x77, 0xac, 0x3b, 0xd9, 0x3f, 0x89, 0x08, 0x34, 0xd8, 0xa3, 0xe2, 0x18, 0x8a, 0xea, 0x38, + 0x16, 0xb9, 0x1c, 0x39, 0xd8, 0xcb, 0x8a, 0xca, 0xf6, 0x2f, 0xa6, 0x51, 0xd9, 0x33, 0xf6, 0x82, + 0x73, 0x9e, 0xfa, 0xe5, 0x7e, 0x9c, 0xd3, 0xdc, 0x85, 0x2a, 0x6f, 0x03, 0xaa, 0x43, 0xee, 0x06, + 0xdf, 0xb1, 0x10, 0xba, 0x8f, 0x68, 0x05, 0x0a, 0xb7, 0xea, 0x60, 0xe4, 0x07, 0xcf, 0x7b, 0xd9, + 0xcd, 0xfe, 0x32, 0xd3, 0x7c, 0x0b, 0x52, 0xd2, 0x65, 0xb3, 0xe8, 0x69, 0xf5, 0x60, 0x23, 0xc0, + 0xea, 0x19, 0x4b, 0xa1, 0x10, 0x58, 0x77, 0xc2, 0x60, 0xdd, 0xe0, 0xbf, 0x3f, 0x74, 0x80, 0x47, + 0xeb, 0xff, 0xf3, 0xb0, 0x22, 0xe2, 0x7f, 0x1d, 0xb8, 0xfa, 0x75, 0xd7, 0xab, 0xa6, 0xfe, 0x6b, + 0xb8, 0x8c, 0x16, 0xa6, 0x2c, 0xa3, 0x1c, 0xfa, 0x8b, 0x61, 0xf4, 0xff, 0x78, 0x38, 0x3d, 0x8c, + 0xe2, 0xf4, 0x59, 0xaa, 0x53, 0x13, 0x80, 0xfa, 0xe7, 0x74, 0xa0, 0xbe, 0x9a, 0x4a, 0xe7, 0x4f, + 0x08, 0xa9, 0xaf, 0xe1, 0xde, 0x11, 0x76, 0x12, 0x4a, 0xea, 0x44, 0x5c, 0xb5, 0xba, 0xd0, 0x14, + 0x1d, 0xb7, 0x4d, 0x43, 0xb7, 0xf1, 0x17, 0x95, 0xe4, 0x5f, 0xfb, 0x1a, 0x85, 0x79, 0x33, 0xd9, + 0x22, 0x19, 0xd6, 0x84, 0xe7, 0x99, 0x49, 0x5f, 0x94, 0x78, 0xf7, 0x60, 0xf9, 0x84, 0xd8, 0x4e, + 0x64, 0x00, 0xa6, 0x5d, 0xe9, 0x08, 0x56, 0xc2, 0x2c, 0x76, 0xcf, 0x73, 0x28, 0x10, 0x07, 0x0f, + 0xbd, 0x81, 0xb8, 0x12, 0x4d, 0x91, 0x40, 0x3f, 0x95, 0xa1, 0x8a, 0xd6, 0xa1, 0xc9, 0x14, 0x09, + 0x22, 0xd1, 0xfa, 0x1d, 0xac, 0x09, 0xb9, 0x63, 0x47, 0xf3, 0xb7, 0x4d, 0x70, 0x34, 0x15, 0x6d, + 0x6d, 0x04, 0x2a, 0x45, 0x9e, 0x6e, 0x9d, 0xc3, 0xba, 0x98, 0x3d, 0x76, 0x24, 0x7f, 0xe5, 0x24, + 0x47, 0x7a, 0x77, 0xfe, 0x0a, 0x1a, 0x87, 0x78, 0x80, 0xe3, 0xbb, 0xc4, 0xe4, 0xb8, 0xbe, 0x85, + 0xc6, 0x79, 0xa7, 0x7b, 0x48, 0x6c, 0x53, 0x75, 0xae, 0xfa, 0xf2, 0x68, 0x80, 0x0f, 0x89, 0x85, + 0xaf, 0x1c, 0xb4, 0x06, 0x65, 0xcb, 0x30, 0x86, 0x0a, 0xad, 0x1e, 0xde, 0xb9, 0x92, 0x4b, 0x38, + 0x75, 0x2b, 0x47, 0x1d, 0x72, 0x26, 0xd1, 0x19, 0xec, 0xdd, 0xc7, 0xd6, 0x29, 0xdc, 0x8b, 0xe8, + 0xe9, 0xe8, 0x1a, 0xb9, 0x25, 0xda, 0x48, 0x1d, 0xa0, 0x07, 0x50, 0xa1, 0xba, 0x4c, 0x0b, 0x5f, + 0x93, 0xcf, 0xbe, 0x15, 0x2e, 0xa9, 0x4b, 0x29, 0x02, 0x7d, 0xfd, 0x98, 0x5d, 0x07, 0xea, 0x60, + 0x80, 0xf1, 0x17, 0xe8, 0x42, 0xeb, 0x50, 0xb6, 0x54, 0x5d, 0x33, 0x86, 0xe4, 0xaf, 0x98, 0x96, + 0xe4, 0x92, 0x3c, 0x26, 0xb4, 0xfe, 0x91, 0x85, 0xc5, 0xc8, 0x55, 0x48, 0x86, 0x15, 0x8d, 0xbd, + 0x2b, 0xd6, 0x68, 0x80, 0x15, 0x8d, 0x3a, 0x85, 0xa1, 0xfb, 0x3e, 0x1f, 0x94, 0xb8, 0xeb, 0x8e, + 0xe7, 0x64, 0xa4, 0xc5, 0x1d, 0xfa, 0x47, 0x90, 0xc2, 0x3a, 0x49, 0xe0, 0x20, 0x6a, 0x6c, 0x65, + 0xbb, 0x95, 0xa4, 0x77, 0xec, 0xca, 0xe3, 0x39, 0x79, 0x55, 0x13, 0x3b, 0x39, 0x66, 0xf3, 0x15, + 0x75, 0x18, 0xfd, 0xe0, 0x14, 0x9b, 0x3d, 0xb7, 0x46, 0x6d, 0xf6, 0xa8, 0xfb, 0x45, 0xc8, 0xbb, + 0xaa, 0x5a, 0x7f, 0xcb, 0x71, 0x53, 0x22, 0x7f, 0xda, 0x07, 0xda, 0x0b, 0x4f, 0x90, 0x39, 0x48, + 0x4a, 0xba, 0x4c, 0xa6, 0x52, 0x2e, 0xb6, 0x7c, 0x48, 0xfa, 0xcb, 0x4a, 0xc9, 0xf1, 0x00, 0x69, + 0xa3, 0x67, 0xb0, 0xd4, 0x27, 0x1a, 0x56, 0xcc, 0xbe, 0xa1, 0x63, 0x7e, 0x53, 0x2d, 0xc9, 0x8b, + 0x2e, 0xa3, 0xeb, 0xd2, 0xd9, 0xf2, 0x21, 0xd8, 0x07, 0x8a, 0xc2, 0x7d, 0xc0, 0x6f, 0xd4, 0xf9, + 0x84, 0x46, 0x5d, 0x88, 0x34, 0xea, 0x0b, 0x00, 0xae, 0x49, 0xcd, 0x47, 0xa6, 0xa9, 0x34, 0x57, + 0xb4, 0xa3, 0x3d, 0x8a, 0x53, 0xd4, 0x7c, 0x0d, 0x8b, 0x3f, 0xa4, 0xab, 0xfc, 0x33, 0x47, 0xe7, + 0xea, 0x30, 0x34, 0xae, 0x0d, 0xf4, 0x12, 0x56, 0xdc, 0x34, 0x8f, 0xc0, 0xcb, 0x4f, 0xf7, 0x25, + 0x9b, 0x98, 0xa1, 0x23, 0x5a, 0x10, 0xae, 0xec, 0xec, 0xe1, 0xca, 0x4d, 0x13, 0xae, 0xfc, 0xd4, + 0xe1, 0x9a, 0x4f, 0x0d, 0x57, 0x21, 0x21, 0x5c, 0xc5, 0x48, 0xb8, 0x4e, 0x42, 0xe1, 0x2a, 0xd1, + 0x70, 0xbd, 0x48, 0xce, 0xa6, 0x6b, 0xe3, 0x6b, 0x46, 0x69, 0xdc, 0x72, 0x04, 0xf0, 0xe0, 0x5a, + 0x4e, 0x98, 0x3b, 0x45, 0xcb, 0x89, 0x7e, 0x84, 0x5f, 0xfe, 0xcf, 0x60, 0x3d, 0x28, 0xff, 0xa2, + 0xe4, 0x9c, 0x15, 0x1e, 0xad, 0xff, 0xe5, 0x61, 0x2d, 0xc0, 0x78, 0x57, 0xb5, 0x1c, 0x72, 0x45, + 0x4c, 0x55, 0x77, 0xa6, 0x6e, 0x2b, 0xe8, 0x3e, 0x54, 0x5c, 0x09, 0xb7, 0x04, 0x29, 0x8e, 0xc1, + 0x7c, 0x54, 0xb6, 0x89, 0xe9, 0x16, 0x96, 0x9e, 0x11, 0xee, 0x2e, 0xb9, 0x48, 0x77, 0xf9, 0x39, + 0xac, 0x98, 0xe3, 0x4b, 0x15, 0xa2, 0x61, 0xdd, 0x21, 0xce, 0x1d, 0x4b, 0xde, 0x65, 0x8e, 0xd7, + 0x61, 0x2c, 0x77, 0x89, 0xe7, 0x8f, 0x70, 0x23, 0xef, 0x22, 0x47, 0x17, 0x69, 0x0f, 0x30, 0x55, + 0x8a, 0x69, 0xff, 0xad, 0x0f, 0xaf, 0x5b, 0x58, 0xe5, 0x8f, 0x70, 0x50, 0xf3, 0x46, 0xe2, 0xdf, + 0xc4, 0x2b, 0x43, 0xdc, 0x6b, 0x6d, 0x8e, 0x14, 0x45, 0x5f, 0xc3, 0x14, 0xf1, 0xdc, 0x34, 0xd0, + 0x9c, 0xe1, 0xb5, 0x9f, 0x06, 0xee, 0xb3, 0x3b, 0xb4, 0x9b, 0x03, 0xf5, 0x4e, 0xb1, 0x88, 0xfe, + 0xd1, 0x31, 0x74, 0xef, 0x67, 0x8d, 0x92, 0x5c, 0x75, 0x89, 0x32, 0xa3, 0x89, 0x93, 0x12, 0x84, + 0x49, 0xd9, 0x3c, 0x86, 0x66, 0xb2, 0x65, 0x33, 0x01, 0xff, 0x3f, 0x19, 0x40, 0xe1, 0x4f, 0xa7, + 0xd5, 0x69, 0x0b, 0x6a, 0xe1, 0x70, 0x32, 0x6d, 0x0b, 0xa1, 0x40, 0x26, 0x46, 0x3d, 0x9b, 0x1c, + 0xf5, 0x54, 0x14, 0xf1, 0x10, 0x24, 0x1a, 0x03, 0x8f, 0x0f, 0xc1, 0x8e, 0xf6, 0xec, 0x86, 0xfd, + 0x40, 0xe7, 0x2f, 0x53, 0xab, 0xd4, 0x78, 0xa5, 0x27, 0xef, 0x9d, 0x9e, 0x77, 0xcf, 0xe4, 0x9e, + 0xb2, 0x77, 0xd1, 0x3b, 0xab, 0xcf, 0xa1, 0x06, 0x2c, 0x85, 0xe9, 0x17, 0x87, 0xdd, 0x7a, 0x26, + 0x4e, 0xee, 0x1d, 0x74, 0xeb, 0x59, 0x01, 0xf9, 0xe4, 0xbc, 0x9e, 0xdb, 0xfe, 0x6f, 0x19, 0x72, + 0xe7, 0x9d, 0x2e, 0x3a, 0x81, 0x5a, 0xf8, 0x57, 0x5f, 0x74, 0x3f, 0x8e, 0x1d, 0x7e, 0x84, 0x6b, + 0x8a, 0x47, 0xdc, 0x56, 0xee, 0xef, 0xd9, 0x0c, 0xea, 0x42, 0x95, 0x9f, 0x92, 0xd1, 0xb8, 0x5a, + 0x08, 0xe6, 0xea, 0xe6, 0x46, 0x02, 0xd7, 0xab, 0x3c, 0x9e, 0xc6, 0x0f, 0xdc, 0xaf, 0xd2, 0xfc, + 0x84, 0x8b, 0xb6, 0xe2, 0x66, 0x0a, 0x06, 0xea, 0x66, 0xea, 0x88, 0x8c, 0x14, 0x58, 0x15, 0xef, + 0xef, 0xe8, 0x67, 0x71, 0xf5, 0xa2, 0xf1, 0xb9, 0x99, 0x3e, 0x0f, 0xa3, 0x3f, 0x00, 0x8a, 0xef, + 0x4d, 0x68, 0x3c, 0x57, 0x25, 0xee, 0x64, 0xcd, 0x87, 0xa9, 0x32, 0xac, 0x38, 0xff, 0x09, 0x96, + 0x05, 0x4b, 0x10, 0x8a, 0x9e, 0x15, 0x5a, 0xfe, 0x28, 0x5d, 0x68, 0x7c, 0x83, 0x60, 0x21, 0xe1, + 0x6e, 0x48, 0x5e, 0x66, 0xb8, 0x1b, 0xd2, 0x76, 0x9a, 0xab, 0x60, 0xb3, 0x0a, 0x7f, 0x44, 0xec, + 0xb4, 0xf0, 0x2b, 0xb6, 0x26, 0x48, 0xb1, 0x4b, 0x8e, 0xa0, 0x16, 0x5e, 0x48, 0x38, 0x98, 0x0b, + 0x37, 0x95, 0x04, 0x98, 0x87, 0xf0, 0x18, 0x9a, 0xd0, 0xb7, 0xa6, 0x1a, 0xc6, 0x9a, 0xa9, 0xfd, + 0x93, 0xf3, 0x76, 0x48, 0x77, 0xcc, 0xdb, 0x22, 0xcd, 0x8f, 0xd2, 0x85, 0x98, 0x23, 0x3e, 0x70, + 0x9b, 0x59, 0x82, 0xfd, 0x69, 0xad, 0x7b, 0x82, 0xfd, 0xef, 0x61, 0x45, 0xd4, 0x70, 0xb8, 0x58, + 0xa6, 0xf4, 0xa3, 0xe6, 0x1a, 0xaf, 0x3b, 0x52, 0xb4, 0xf7, 0xdf, 0xfe, 0xfe, 0xe1, 0x47, 0xe2, + 0xf4, 0x47, 0x97, 0xed, 0x2b, 0x63, 0xf8, 0x92, 0x09, 0xbe, 0xa4, 0x7f, 0x62, 0x5d, 0x19, 0x03, + 0x9f, 0xf0, 0xef, 0xec, 0xc2, 0x09, 0xb9, 0xc5, 0xef, 0x88, 0xd3, 0xee, 0xba, 0xac, 0xef, 0xb2, + 0x35, 0xf6, 0xbe, 0xbb, 0x4b, 0x09, 0x97, 0x45, 0x7a, 0x64, 0xe7, 0xfb, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x49, 0x50, 0x14, 0x2a, 0x0c, 0x1b, 0x00, 0x00, } diff --git a/livekit/sip.go b/livekit/sip.go index 840a2b90..e2871bf9 100644 --- a/livekit/sip.go +++ b/livekit/sip.go @@ -1,5 +1,11 @@ package livekit +import ( + "errors" + "fmt" + "strings" +) + // ToProto implements DataPacket in Go SDK. func (p *SipDTMF) ToProto() *DataPacket { return &DataPacket{ @@ -94,3 +100,91 @@ func (p *SIPOutboundTrunkInfo) AsTrunkInfo() *SIPTrunkInfo { OutboundPassword: p.AuthPassword, } } + +func validateHeaders(headers map[string]string) error { + for k := range headers { + k = strings.ToLower(k) + if !strings.HasPrefix(k, "x-") { + return fmt.Errorf("only X-* headers are allowed: %s", k) + } + } + return nil +} + +func (p *SIPTrunkInfo) Validate() error { + if len(p.InboundNumbersRegex) != 0 { + return fmt.Errorf("trunks with InboundNumbersRegex are deprecated") + } + return nil +} + +func (p *CreateSIPOutboundTrunkRequest) Validate() error { + if p.Trunk == nil { + return errors.New("missing trunk") + } + if err := p.Trunk.Validate(); err != nil { + return err + } + return nil +} + +func (p *CreateSIPInboundTrunkRequest) Validate() error { + if p.Trunk == nil { + return errors.New("missing trunk") + } + if err := p.Trunk.Validate(); err != nil { + return err + } + return nil +} + +func (p *SIPInboundTrunkInfo) Validate() error { + if len(p.Numbers) == 0 { + return errors.New("no trunk numbers specified") + } + if err := validateHeaders(p.Headers); err != nil { + return err + } + if err := validateHeaders(p.HeadersToAttributes); err != nil { + return err + } + return nil +} + +func (p *SIPOutboundTrunkInfo) Validate() error { + if len(p.Numbers) == 0 { + return errors.New("no trunk numbers specified") + } + if p.Address == "" { + return errors.New("no outbound address specified") + } else if strings.Contains(p.Address, "@") { + return errors.New("trunk address should be a hostname or IP, not SIP URI") + } + if err := validateHeaders(p.Headers); err != nil { + return err + } + if err := validateHeaders(p.HeadersToAttributes); err != nil { + return err + } + return nil +} + +func (p *CreateSIPDispatchRuleRequest) Validate() error { + if p.Rule == nil { + return errors.New("missing rule") + } + return nil +} + +func (p *CreateSIPParticipantRequest) Validate() error { + if p.SipTrunkId == "" { + return errors.New("missing sip trunk id") + } + if p.SipCallTo == "" { + return errors.New("missing sip callee number") + } + if p.RoomName == "" { + return errors.New("missing room name") + } + return nil +} diff --git a/protobufs/livekit_sip.proto b/protobufs/livekit_sip.proto index 792f6bef..f6a2f407 100644 --- a/protobufs/livekit_sip.proto +++ b/protobufs/livekit_sip.proto @@ -52,6 +52,8 @@ service SIP { rpc CreateSIPInboundTrunk(CreateSIPInboundTrunkRequest) returns (SIPInboundTrunkInfo); rpc CreateSIPOutboundTrunk(CreateSIPOutboundTrunkRequest) returns (SIPOutboundTrunkInfo); + rpc GetSIPInboundTrunk(GetSIPInboundTrunkRequest) returns (GetSIPInboundTrunkResponse); + rpc GetSIPOutboundTrunk(GetSIPOutboundTrunkRequest) returns (GetSIPOutboundTrunkResponse); rpc ListSIPInboundTrunk(ListSIPInboundTrunkRequest) returns (ListSIPInboundTrunkResponse); rpc ListSIPOutboundTrunk(ListSIPOutboundTrunkRequest) returns (ListSIPOutboundTrunkResponse); rpc DeleteSIPTrunk(DeleteSIPTrunkRequest) returns (SIPTrunkInfo); @@ -178,6 +180,11 @@ message SIPInboundTrunkInfo { // May be empty to have no authentication. string auth_username = 7; string auth_password = 8; + + // Include these SIP X-* headers in 200 OK responses. + map headers = 9; + // Map SIP X-* headers from INVITE to SIP participant attributes. + map headers_to_attributes = 10; } message CreateSIPOutboundTrunkRequest { @@ -206,6 +213,29 @@ message SIPOutboundTrunkInfo { // May be empty to have no authentication. string auth_username = 7; string auth_password = 8; + + // Include these SIP X-* headers in INVITE request. + // These headers are sent as-is and may help identify this call as coming from LiveKit for the other SIP endpoint. + map headers = 9; + // Map SIP X-* headers from 200 OK to SIP participant attributes. + // Keys are the names of X-* headers and values are the names of attributes they will be mapped to. + map headers_to_attributes = 10; +} + +message GetSIPInboundTrunkRequest { + string sip_trunk_id = 1; +} + +message GetSIPInboundTrunkResponse { + SIPInboundTrunkInfo trunk = 1; +} + +message GetSIPOutboundTrunkRequest { + string sip_trunk_id = 1; +} + +message GetSIPOutboundTrunkResponse { + SIPOutboundTrunkInfo trunk = 1; } message ListSIPTrunkRequest { diff --git a/protobufs/rpc/io.proto b/protobufs/rpc/io.proto index 511cafd4..9580ee56 100644 --- a/protobufs/rpc/io.proto +++ b/protobufs/rpc/io.proto @@ -93,11 +93,15 @@ message GetSIPTrunkAuthenticationResponse { bool drop = 3; // Trunk used to fulfill this request string sip_trunk_id = 4; + // Used in Cloud only + string project_id = 5; } message EvaluateSIPDispatchRulesRequest { string sip_call_id = 8; string sip_participant_id = 1 [deprecated=true]; + // Trunk from the auth response, if any + string sip_trunk_id = 10; // What Number is calling string calling_number = 2; @@ -121,7 +125,7 @@ message EvaluateSIPDispatchRulesRequest { // Usually include provider-specific metadata. map extra_attributes = 9; - // NEXT ID: 10 + // NEXT ID: 11 } message EvaluateSIPDispatchRulesResponse { @@ -151,7 +155,17 @@ message EvaluateSIPDispatchRulesResponse { string sip_trunk_id = 9; // Dispatch Rule used to fulfill this request string sip_dispatch_rule_id = 10; - // NEXT ID: 12 + + // Used in Cloud only + string project_id = 12; + + // Include these SIP X-* headers in 200 OK response to INVITE. + // These headers are included as-is and may help identify triggered LiveKit Dispatch Rule for the other SIP endpoint. + map headers = 13; + // Map SIP X-* headers from INVITE to SIP participant attributes. + // Keys are the names of X-* headers and values are the names of attributes they will be mapped to. + map headers_to_attributes = 14; + // NEXT ID: 15 } enum SIPDispatchResult { diff --git a/protobufs/rpc/sip.proto b/protobufs/rpc/sip.proto index a2276978..32773d86 100644 --- a/protobufs/rpc/sip.proto +++ b/protobufs/rpc/sip.proto @@ -29,9 +29,15 @@ service SIPInternal { } message InternalCreateSIPParticipantRequest { + // Used in Cloud only + string project_id = 18; + string sip_call_id = 13; - // IP that SIP INVITE is sent too + string sip_trunk_id = 19; + // IP or hostname that SIP INVITE is sent too string address = 2; + // Hostname for the 'From' SIP address in INVITE + string hostname = 20; livekit.SIPTransport transport = 16; // Number used to make the call @@ -62,7 +68,10 @@ message InternalCreateSIPParticipantRequest { // Optionally play ringtone in the room as an audible indicator for existing participants bool play_ringtone = 12; - // NEXT ID: 18 + map headers = 21; + map headers_to_attributes = 22; + + // NEXT ID: 23 } message InternalCreateSIPParticipantResponse { diff --git a/replay/cloud_replay.pb.go b/replay/cloud_replay.pb.go index d725274a..c3873a95 100644 --- a/replay/cloud_replay.pb.go +++ b/replay/cloud_replay.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 +// protoc-gen-go v1.34.2 // protoc v4.24.3 // source: cloud_replay.proto @@ -491,7 +491,7 @@ func file_cloud_replay_proto_rawDescGZIP() []byte { } var file_cloud_replay_proto_msgTypes = make([]protoimpl.MessageInfo, 8) -var file_cloud_replay_proto_goTypes = []interface{}{ +var file_cloud_replay_proto_goTypes = []any{ (*ListReplaysRequest)(nil), // 0: replay.ListReplaysRequest (*ListReplaysResponse)(nil), // 1: replay.ListReplaysResponse (*ReplayInfo)(nil), // 2: replay.ReplayInfo @@ -527,7 +527,7 @@ func file_cloud_replay_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_cloud_replay_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*ListReplaysRequest); i { case 0: return &v.state @@ -539,7 +539,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ListReplaysResponse); i { case 0: return &v.state @@ -551,7 +551,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ReplayInfo); i { case 0: return &v.state @@ -563,7 +563,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*LoadReplayRequest); i { case 0: return &v.state @@ -575,7 +575,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*LoadReplayResponse); i { case 0: return &v.state @@ -587,7 +587,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*RoomSeekRequest); i { case 0: return &v.state @@ -599,7 +599,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*CloseReplayRequest); i { case 0: return &v.state @@ -611,7 +611,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*DeleteReplayRequest); i { case 0: return &v.state diff --git a/rpc/io.pb.go b/rpc/io.pb.go index f143253c..d7c4e0b5 100644 --- a/rpc/io.pb.go +++ b/rpc/io.pb.go @@ -478,6 +478,8 @@ type GetSIPTrunkAuthenticationResponse struct { Drop bool `protobuf:"varint,3,opt,name=drop,proto3" json:"drop,omitempty"` // Trunk used to fulfill this request SipTrunkId string `protobuf:"bytes,4,opt,name=sip_trunk_id,json=sipTrunkId,proto3" json:"sip_trunk_id,omitempty"` + // Used in Cloud only + ProjectId string `protobuf:"bytes,5,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` } func (x *GetSIPTrunkAuthenticationResponse) Reset() { @@ -540,6 +542,13 @@ func (x *GetSIPTrunkAuthenticationResponse) GetSipTrunkId() string { return "" } +func (x *GetSIPTrunkAuthenticationResponse) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + type EvaluateSIPDispatchRulesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -548,6 +557,8 @@ type EvaluateSIPDispatchRulesRequest struct { SipCallId string `protobuf:"bytes,8,opt,name=sip_call_id,json=sipCallId,proto3" json:"sip_call_id,omitempty"` // Deprecated: Marked as deprecated in rpc/io.proto. SipParticipantId string `protobuf:"bytes,1,opt,name=sip_participant_id,json=sipParticipantId,proto3" json:"sip_participant_id,omitempty"` + // Trunk from the auth response, if any + SipTrunkId string `protobuf:"bytes,10,opt,name=sip_trunk_id,json=sipTrunkId,proto3" json:"sip_trunk_id,omitempty"` // What Number is calling CallingNumber string `protobuf:"bytes,2,opt,name=calling_number,json=callingNumber,proto3" json:"calling_number,omitempty"` // What Number was called @@ -612,6 +623,13 @@ func (x *EvaluateSIPDispatchRulesRequest) GetSipParticipantId() string { return "" } +func (x *EvaluateSIPDispatchRulesRequest) GetSipTrunkId() string { + if x != nil { + return x.SipTrunkId + } + return "" +} + func (x *EvaluateSIPDispatchRulesRequest) GetCallingNumber() string { if x != nil { return x.CallingNumber @@ -686,7 +704,15 @@ type EvaluateSIPDispatchRulesResponse struct { // Trunk used to fulfill this request SipTrunkId string `protobuf:"bytes,9,opt,name=sip_trunk_id,json=sipTrunkId,proto3" json:"sip_trunk_id,omitempty"` // Dispatch Rule used to fulfill this request - SipDispatchRuleId string `protobuf:"bytes,10,opt,name=sip_dispatch_rule_id,json=sipDispatchRuleId,proto3" json:"sip_dispatch_rule_id,omitempty"` // NEXT ID: 12 + SipDispatchRuleId string `protobuf:"bytes,10,opt,name=sip_dispatch_rule_id,json=sipDispatchRuleId,proto3" json:"sip_dispatch_rule_id,omitempty"` + // Used in Cloud only + ProjectId string `protobuf:"bytes,12,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + // Include these SIP X-* headers in 200 OK response to INVITE. + // These headers are included as-is and may help identify triggered LiveKit Dispatch Rule for the other SIP endpoint. + Headers map[string]string `protobuf:"bytes,13,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Map SIP X-* headers from INVITE to SIP participant attributes. + // Keys are the names of X-* headers and values are the names of attributes they will be mapped to. + HeadersToAttributes map[string]string `protobuf:"bytes,14,rep,name=headers_to_attributes,json=headersToAttributes,proto3" json:"headers_to_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // NEXT ID: 15 } func (x *EvaluateSIPDispatchRulesResponse) Reset() { @@ -799,6 +825,27 @@ func (x *EvaluateSIPDispatchRulesResponse) GetSipDispatchRuleId() string { return "" } +func (x *EvaluateSIPDispatchRulesResponse) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *EvaluateSIPDispatchRulesResponse) GetHeaders() map[string]string { + if x != nil { + return x.Headers + } + return nil +} + +func (x *EvaluateSIPDispatchRulesResponse) GetHeadersToAttributes() map[string]string { + if x != nil { + return x.HeadersToAttributes + } + return nil +} + var File_rpc_io_proto protoreflect.FileDescriptor var file_rpc_io_proto_rawDesc = []byte{ @@ -858,7 +905,7 @@ var file_rpc_io_proto_rawDesc = []byte{ 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, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x74, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x53, 0x49, + 0x74, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x22, 0xb0, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, @@ -867,131 +914,158 @@ var file_rpc_io_proto_rawDesc = []byte{ 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x72, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x72, 0x6f, 0x70, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x22, 0xd4, 0x03, 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, 0x1e, - 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x30, - 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, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, - 0x73, 0x69, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x65, - 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 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, 0x12, 0x10, 0x0a, - 0x03, 0x70, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, 0x12, - 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x05, 0x6e, 0x6f, 0x50, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, - 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6c, - 0x6c, 0x65, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x64, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x72, 0x61, - 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x39, 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, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x65, 0x78, - 0x74, 0x72, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x42, 0x0a, - 0x14, 0x45, 0x78, 0x74, 0x72, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0xe8, 0x04, 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, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x77, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 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, 0x2e, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, - 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, - 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x77, 0x73, 0x5f, 0x75, - 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x73, 0x55, 0x72, 0x6c, 0x12, - 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x16, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, - 0x64, 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, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x11, 0x73, 0x69, 0x70, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, - 0x49, 0x64, 0x1a, 0x48, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x60, 0x0a, 0x11, - 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x41, 0x43, 0x43, 0x45, - 0x50, 0x54, 0x5f, 0x4f, 0x52, 0x5f, 0x50, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, - 0x43, 0x43, 0x45, 0x50, 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x51, 0x55, 0x45, - 0x53, 0x54, 0x5f, 0x50, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4a, 0x45, - 0x43, 0x54, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x04, 0x32, 0xf3, - 0x05, 0x0a, 0x06, 0x49, 0x4f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0c, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 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, 0x42, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x12, 0x19, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 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, 0x3d, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2e, 0x49, 0x6e, 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, 0x49, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, - 0x6a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, - 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, - 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, - 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x18, 0x45, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, + 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0xf6, 0x03, 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, 0x1a, 0x25, 0x2e, + 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x30, 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, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x73, + 0x69, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x61, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6c, 0x6c, + 0x65, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 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, 0x12, 0x10, + 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x6e, + 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x6e, 0x6f, 0x50, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x65, + 0x64, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, + 0x6c, 0x6c, 0x65, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x64, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x39, 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, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x42, + 0x0a, 0x14, 0x45, 0x78, 0x74, 0x72, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0xcd, 0x07, 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, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x77, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 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, 0x2e, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x23, + 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x50, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x77, 0x73, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x73, 0x55, 0x72, 0x6c, + 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x16, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, + 0x49, 0x64, 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, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x73, 0x69, 0x70, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, + 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x32, 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, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x72, 0x0a, 0x15, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3e, 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, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x13, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x1a, 0x48, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, + 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x2a, 0x60, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x45, 0x47, 0x41, 0x43, + 0x59, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x5f, 0x4f, 0x52, 0x5f, 0x50, 0x49, 0x4e, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, + 0x0b, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x50, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x52, + 0x4f, 0x50, 0x10, 0x04, 0x32, 0xf3, 0x05, 0x0a, 0x06, 0x49, 0x4f, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x3b, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x0c, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x2e, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 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, 0x42, 0x0a, 0x0d, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x19, 0x2e, 0x72, 0x70, 0x63, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 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, 0x3d, 0x0a, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x49, 0x6e, 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, 0x49, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, + 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x72, 0x70, 0x63, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x6a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, + 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, + 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x70, 0x63, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x67, 0x0a, 0x18, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, + 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, - 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x21, 0x5a, 0x1f, 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, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 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, 0x21, 0x5a, 0x1f, 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, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1007,7 +1081,7 @@ func file_rpc_io_proto_rawDescGZIP() []byte { } var file_rpc_io_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_rpc_io_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_rpc_io_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_rpc_io_proto_goTypes = []any{ (SIPDispatchResult)(0), // 0: rpc.SIPDispatchResult (*GetEgressRequest)(nil), // 1: rpc.GetEgressRequest @@ -1022,46 +1096,50 @@ var file_rpc_io_proto_goTypes = []any{ nil, // 10: rpc.GetIngressInfoResponse.LoggingFieldsEntry nil, // 11: rpc.EvaluateSIPDispatchRulesRequest.ExtraAttributesEntry nil, // 12: rpc.EvaluateSIPDispatchRulesResponse.ParticipantAttributesEntry - (*livekit.EgressInfo)(nil), // 13: livekit.EgressInfo - (*livekit.IngressInfo)(nil), // 14: livekit.IngressInfo - (*livekit.IngressState)(nil), // 15: livekit.IngressState - (*livekit.ListEgressRequest)(nil), // 16: livekit.ListEgressRequest - (*emptypb.Empty)(nil), // 17: google.protobuf.Empty - (*livekit.ListEgressResponse)(nil), // 18: livekit.ListEgressResponse + nil, // 13: rpc.EvaluateSIPDispatchRulesResponse.HeadersEntry + nil, // 14: rpc.EvaluateSIPDispatchRulesResponse.HeadersToAttributesEntry + (*livekit.EgressInfo)(nil), // 15: livekit.EgressInfo + (*livekit.IngressInfo)(nil), // 16: livekit.IngressInfo + (*livekit.IngressState)(nil), // 17: livekit.IngressState + (*livekit.ListEgressRequest)(nil), // 18: livekit.ListEgressRequest + (*emptypb.Empty)(nil), // 19: google.protobuf.Empty + (*livekit.ListEgressResponse)(nil), // 20: livekit.ListEgressResponse } var file_rpc_io_proto_depIdxs = []int32{ - 13, // 0: rpc.UpdateMetricsRequest.info:type_name -> livekit.EgressInfo - 14, // 1: rpc.GetIngressInfoResponse.info:type_name -> livekit.IngressInfo + 15, // 0: rpc.UpdateMetricsRequest.info:type_name -> livekit.EgressInfo + 16, // 1: rpc.GetIngressInfoResponse.info:type_name -> livekit.IngressInfo 10, // 2: rpc.GetIngressInfoResponse.logging_fields:type_name -> rpc.GetIngressInfoResponse.LoggingFieldsEntry - 15, // 3: rpc.UpdateIngressStateRequest.state:type_name -> livekit.IngressState + 17, // 3: rpc.UpdateIngressStateRequest.state:type_name -> livekit.IngressState 11, // 4: rpc.EvaluateSIPDispatchRulesRequest.extra_attributes:type_name -> rpc.EvaluateSIPDispatchRulesRequest.ExtraAttributesEntry 12, // 5: rpc.EvaluateSIPDispatchRulesResponse.participant_attributes:type_name -> rpc.EvaluateSIPDispatchRulesResponse.ParticipantAttributesEntry 0, // 6: rpc.EvaluateSIPDispatchRulesResponse.result:type_name -> rpc.SIPDispatchResult - 13, // 7: rpc.IOInfo.CreateEgress:input_type -> livekit.EgressInfo - 13, // 8: rpc.IOInfo.UpdateEgress:input_type -> livekit.EgressInfo - 1, // 9: rpc.IOInfo.GetEgress:input_type -> rpc.GetEgressRequest - 16, // 10: rpc.IOInfo.ListEgress:input_type -> livekit.ListEgressRequest - 2, // 11: rpc.IOInfo.UpdateMetrics:input_type -> rpc.UpdateMetricsRequest - 14, // 12: rpc.IOInfo.CreateIngress:input_type -> livekit.IngressInfo - 3, // 13: rpc.IOInfo.GetIngressInfo:input_type -> rpc.GetIngressInfoRequest - 5, // 14: rpc.IOInfo.UpdateIngressState:input_type -> rpc.UpdateIngressStateRequest - 6, // 15: rpc.IOInfo.GetSIPTrunkAuthentication:input_type -> rpc.GetSIPTrunkAuthenticationRequest - 8, // 16: rpc.IOInfo.EvaluateSIPDispatchRules:input_type -> rpc.EvaluateSIPDispatchRulesRequest - 17, // 17: rpc.IOInfo.CreateEgress:output_type -> google.protobuf.Empty - 17, // 18: rpc.IOInfo.UpdateEgress:output_type -> google.protobuf.Empty - 13, // 19: rpc.IOInfo.GetEgress:output_type -> livekit.EgressInfo - 18, // 20: rpc.IOInfo.ListEgress:output_type -> livekit.ListEgressResponse - 17, // 21: rpc.IOInfo.UpdateMetrics:output_type -> google.protobuf.Empty - 17, // 22: rpc.IOInfo.CreateIngress:output_type -> google.protobuf.Empty - 4, // 23: rpc.IOInfo.GetIngressInfo:output_type -> rpc.GetIngressInfoResponse - 17, // 24: rpc.IOInfo.UpdateIngressState:output_type -> google.protobuf.Empty - 7, // 25: rpc.IOInfo.GetSIPTrunkAuthentication:output_type -> rpc.GetSIPTrunkAuthenticationResponse - 9, // 26: rpc.IOInfo.EvaluateSIPDispatchRules:output_type -> rpc.EvaluateSIPDispatchRulesResponse - 17, // [17:27] is the sub-list for method output_type - 7, // [7:17] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 13, // 7: rpc.EvaluateSIPDispatchRulesResponse.headers:type_name -> rpc.EvaluateSIPDispatchRulesResponse.HeadersEntry + 14, // 8: rpc.EvaluateSIPDispatchRulesResponse.headers_to_attributes:type_name -> rpc.EvaluateSIPDispatchRulesResponse.HeadersToAttributesEntry + 15, // 9: rpc.IOInfo.CreateEgress:input_type -> livekit.EgressInfo + 15, // 10: rpc.IOInfo.UpdateEgress:input_type -> livekit.EgressInfo + 1, // 11: rpc.IOInfo.GetEgress:input_type -> rpc.GetEgressRequest + 18, // 12: rpc.IOInfo.ListEgress:input_type -> livekit.ListEgressRequest + 2, // 13: rpc.IOInfo.UpdateMetrics:input_type -> rpc.UpdateMetricsRequest + 16, // 14: rpc.IOInfo.CreateIngress:input_type -> livekit.IngressInfo + 3, // 15: rpc.IOInfo.GetIngressInfo:input_type -> rpc.GetIngressInfoRequest + 5, // 16: rpc.IOInfo.UpdateIngressState:input_type -> rpc.UpdateIngressStateRequest + 6, // 17: rpc.IOInfo.GetSIPTrunkAuthentication:input_type -> rpc.GetSIPTrunkAuthenticationRequest + 8, // 18: rpc.IOInfo.EvaluateSIPDispatchRules:input_type -> rpc.EvaluateSIPDispatchRulesRequest + 19, // 19: rpc.IOInfo.CreateEgress:output_type -> google.protobuf.Empty + 19, // 20: rpc.IOInfo.UpdateEgress:output_type -> google.protobuf.Empty + 15, // 21: rpc.IOInfo.GetEgress:output_type -> livekit.EgressInfo + 20, // 22: rpc.IOInfo.ListEgress:output_type -> livekit.ListEgressResponse + 19, // 23: rpc.IOInfo.UpdateMetrics:output_type -> google.protobuf.Empty + 19, // 24: rpc.IOInfo.CreateIngress:output_type -> google.protobuf.Empty + 4, // 25: rpc.IOInfo.GetIngressInfo:output_type -> rpc.GetIngressInfoResponse + 19, // 26: rpc.IOInfo.UpdateIngressState:output_type -> google.protobuf.Empty + 7, // 27: rpc.IOInfo.GetSIPTrunkAuthentication:output_type -> rpc.GetSIPTrunkAuthenticationResponse + 9, // 28: rpc.IOInfo.EvaluateSIPDispatchRules:output_type -> rpc.EvaluateSIPDispatchRulesResponse + 19, // [19:29] is the sub-list for method output_type + 9, // [9:19] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name } func init() { file_rpc_io_proto_init() } @@ -1185,7 +1263,7 @@ func file_rpc_io_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rpc_io_proto_rawDesc, NumEnums: 1, - NumMessages: 12, + NumMessages: 14, NumExtensions: 0, NumServices: 1, }, diff --git a/rpc/io.psrpc.go b/rpc/io.psrpc.go index 3283ba9c..693e0b9d 100644 --- a/rpc/io.psrpc.go +++ b/rpc/io.psrpc.go @@ -271,79 +271,84 @@ func (s *iOInfoServer) Kill() { } var psrpcFileDescriptor4 = []byte{ - // 1178 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdb, 0x72, 0xdb, 0x44, - 0x18, 0xc6, 0xc7, 0xc6, 0xbf, 0x93, 0xd4, 0xdd, 0x3a, 0xc1, 0x55, 0x86, 0x36, 0x75, 0x29, 0x04, - 0x98, 0x91, 0x21, 0x5c, 0x70, 0x1a, 0x66, 0x9a, 0xb8, 0x26, 0x15, 0xa4, 0xad, 0x51, 0x92, 0x0b, - 0xb8, 0x11, 0x1b, 0x69, 0xe3, 0x2c, 0x91, 0xb5, 0x62, 0x77, 0x95, 0x34, 0x4f, 0x00, 0xb7, 0xbc, - 0x01, 0x0f, 0xc5, 0x43, 0x70, 0xcf, 0x0b, 0x30, 0x7b, 0x90, 0xa3, 0x24, 0x72, 0xd3, 0x72, 0xa7, - 0xfd, 0xfe, 0x83, 0xbe, 0xff, 0xb4, 0xfb, 0xc3, 0x22, 0x4f, 0xc3, 0x01, 0x65, 0x6e, 0xca, 0x99, - 0x64, 0xa8, 0xc6, 0xd3, 0xd0, 0xe9, 0xc6, 0xf4, 0x94, 0x9c, 0x50, 0x19, 0x90, 0x09, 0x27, 0x42, - 0x18, 0x91, 0xb3, 0x92, 0xa3, 0x34, 0x29, 0xc2, 0x6b, 0x13, 0xc6, 0x26, 0x31, 0x19, 0xe8, 0xd3, - 0x61, 0x76, 0x34, 0x20, 0xd3, 0x54, 0x9e, 0x1b, 0x61, 0x7f, 0x00, 0x9d, 0x1d, 0x22, 0x47, 0x5a, - 0xdf, 0x27, 0xbf, 0x65, 0x44, 0x48, 0xb4, 0x06, 0x2d, 0xe3, 0x37, 0xa0, 0x51, 0xaf, 0xb2, 0x5e, - 0xd9, 0x68, 0xf9, 0x0b, 0x06, 0xf0, 0xa2, 0xfe, 0xef, 0x15, 0xe8, 0x1e, 0xa4, 0x11, 0x96, 0xe4, - 0x39, 0x91, 0x9c, 0x86, 0x33, 0xab, 0x0f, 0xa1, 0x4e, 0x93, 0x23, 0xa6, 0x0d, 0xda, 0x9b, 0x77, - 0x5d, 0x4b, 0xc6, 0x35, 0xbe, 0xbd, 0xe4, 0x88, 0xf9, 0x5a, 0x01, 0xf5, 0x61, 0x09, 0x9f, 0x4e, - 0x82, 0x30, 0xcd, 0x82, 0x4c, 0xe0, 0x09, 0xe9, 0xd5, 0xd6, 0x2b, 0x1b, 0x55, 0xbf, 0x8d, 0x4f, - 0x27, 0xc3, 0x34, 0x3b, 0x50, 0x90, 0xd2, 0x99, 0xe2, 0x57, 0x05, 0x9d, 0xba, 0xd1, 0x99, 0xe2, - 0x57, 0xb9, 0x4e, 0xff, 0x00, 0x56, 0x76, 0x88, 0xf4, 0x92, 0x0b, 0xff, 0x96, 0xc9, 0x7b, 0x00, - 0x36, 0x03, 0x17, 0x01, 0xb4, 0x2c, 0xe2, 0x45, 0x4a, 0x2c, 0x24, 0x27, 0x78, 0x1a, 0x9c, 0x90, - 0xf3, 0x5e, 0xd5, 0x88, 0x0d, 0xf2, 0x03, 0x39, 0xef, 0xff, 0x51, 0x85, 0xd5, 0xab, 0x7e, 0x45, - 0xca, 0x12, 0x41, 0xd0, 0xc6, 0xa5, 0x10, 0xbb, 0xb3, 0x10, 0x8b, 0xba, 0x26, 0xc6, 0x2e, 0x34, - 0x24, 0x3b, 0x21, 0x89, 0x75, 0x6f, 0x0e, 0x68, 0x05, 0x9a, 0x67, 0x22, 0xc8, 0x78, 0xac, 0x43, - 0x6e, 0xf9, 0x8d, 0x33, 0x71, 0xc0, 0x63, 0x74, 0x00, 0xcb, 0x31, 0x9b, 0x4c, 0x68, 0x32, 0x09, - 0x8e, 0x28, 0x89, 0x23, 0xd1, 0xab, 0xaf, 0xd7, 0x36, 0xda, 0x9b, 0xae, 0xcb, 0xd3, 0xd0, 0x2d, - 0xe7, 0xe2, 0xee, 0x1a, 0x8b, 0xef, 0xb4, 0xc1, 0x28, 0x91, 0xfc, 0xdc, 0x5f, 0x8a, 0x8b, 0x98, - 0xf3, 0x04, 0xd0, 0x75, 0x25, 0xd4, 0x81, 0x9a, 0x0a, 0xdb, 0x64, 0x45, 0x7d, 0x2a, 0xae, 0xa7, - 0x38, 0xce, 0x48, 0xce, 0x55, 0x1f, 0xbe, 0xae, 0x7e, 0x59, 0xe9, 0x4f, 0xe0, 0x9e, 0x29, 0xb5, - 0x25, 0xb0, 0x27, 0xb1, 0x24, 0x6f, 0x98, 0xe5, 0x4f, 0xa0, 0x21, 0x94, 0xba, 0xf6, 0xda, 0xde, - 0x5c, 0xb9, 0x9a, 0x2c, 0xe3, 0xcb, 0xe8, 0xf4, 0xff, 0xaa, 0xc0, 0xfa, 0x0e, 0x91, 0x7b, 0xde, - 0x78, 0x9f, 0x67, 0xc9, 0xc9, 0x56, 0x26, 0x8f, 0x49, 0x22, 0x69, 0x88, 0x25, 0x65, 0x49, 0xfe, - 0xc3, 0xfb, 0xd0, 0x16, 0x34, 0x0d, 0x42, 0x1c, 0xc7, 0xea, 0x8f, 0x4d, 0x5b, 0x38, 0x9a, 0x0e, - 0x71, 0x1c, 0x7b, 0x11, 0x42, 0x50, 0x3f, 0xe2, 0x6c, 0x6a, 0xc3, 0xd0, 0xdf, 0x68, 0x19, 0xaa, - 0x92, 0xd9, 0x6c, 0x57, 0x25, 0x43, 0x0f, 0xa0, 0x2d, 0x78, 0x18, 0xe0, 0x28, 0x52, 0x1c, 0x74, - 0x57, 0xb5, 0x7c, 0x10, 0x3c, 0xdc, 0x32, 0x08, 0x7a, 0x17, 0x6e, 0x49, 0x16, 0x1c, 0x33, 0x21, - 0x7b, 0x0d, 0x2d, 0x6c, 0x4a, 0xf6, 0x8c, 0x09, 0xd9, 0xff, 0xb3, 0x02, 0x0f, 0x5f, 0x43, 0xd1, - 0x76, 0x88, 0x03, 0x0b, 0x99, 0x20, 0x3c, 0xc1, 0x53, 0x92, 0x4f, 0x4e, 0x7e, 0x56, 0xb2, 0x14, - 0x0b, 0x71, 0xc6, 0x78, 0x64, 0x39, 0xce, 0xce, 0x8a, 0x7b, 0xc4, 0x59, 0xaa, 0x99, 0x2e, 0xf8, - 0xfa, 0x1b, 0xad, 0xc3, 0xa2, 0x8a, 0x57, 0xaa, 0xdf, 0xa9, 0x80, 0x73, 0xb2, 0x34, 0xd5, 0x0c, - 0xbc, 0xa8, 0xff, 0x77, 0x0d, 0x1e, 0x8c, 0x54, 0xb9, 0xb0, 0x24, 0x7b, 0xde, 0xf8, 0x29, 0x15, - 0x29, 0x96, 0xe1, 0xb1, 0x9f, 0xc5, 0x44, 0xcc, 0xc9, 0xda, 0xc2, 0xd5, 0xac, 0x7d, 0x0a, 0x48, - 0xc9, 0x53, 0xcc, 0x25, 0x0d, 0x69, 0x8a, 0x13, 0x39, 0x2b, 0xe7, 0x76, 0xb5, 0x57, 0xf1, 0x3b, - 0x82, 0xa6, 0xe3, 0x0b, 0xa1, 0x17, 0xa1, 0xc7, 0xb0, 0xac, 0xbc, 0xa9, 0x76, 0x4d, 0xb2, 0xe9, - 0x21, 0xe1, 0x36, 0x9a, 0x25, 0x8b, 0xbe, 0xd0, 0x20, 0x7a, 0x04, 0x1a, 0x20, 0x51, 0xae, 0x65, - 0xaa, 0xb0, 0x68, 0x40, 0xab, 0x74, 0x63, 0x3d, 0x3a, 0x50, 0x4b, 0x69, 0x62, 0x6b, 0xa1, 0x3e, - 0xd5, 0x10, 0x25, 0x2c, 0x50, 0x60, 0x53, 0x27, 0xab, 0x91, 0xb0, 0x31, 0x4d, 0x94, 0x27, 0xfb, - 0x3b, 0x5d, 0xbc, 0x5b, 0xc6, 0x93, 0x81, 0x54, 0x01, 0x51, 0x04, 0x1d, 0xf2, 0x4a, 0x72, 0x1c, - 0x60, 0x29, 0x39, 0x3d, 0xcc, 0x24, 0x11, 0xbd, 0x96, 0x9e, 0xb3, 0xaf, 0xf4, 0x9c, 0xdd, 0x90, - 0x48, 0x77, 0xa4, 0x8c, 0xb7, 0x66, 0xb6, 0x66, 0xe4, 0x6e, 0x93, 0xcb, 0xa8, 0xb3, 0x0d, 0xdd, - 0x32, 0xc5, 0xb7, 0x1a, 0xbb, 0x7f, 0xea, 0xb0, 0x3e, 0x9f, 0x8d, 0xed, 0xb4, 0x35, 0x68, 0x71, - 0xc6, 0xa6, 0x41, 0xb1, 0xd5, 0x14, 0xf0, 0x42, 0xb5, 0xda, 0x67, 0xd0, 0xbd, 0x5c, 0x50, 0xd5, - 0xaa, 0x32, 0xbf, 0xec, 0xee, 0xa6, 0xc5, 0x7a, 0x1a, 0x11, 0xfa, 0x08, 0x3a, 0x45, 0x13, 0xed, - 0xd6, 0x24, 0xf1, 0x76, 0x01, 0x2f, 0xf3, 0x3e, 0x25, 0x12, 0x47, 0x58, 0x62, 0xdb, 0x5b, 0x45, - 0xef, 0xcf, 0xad, 0x08, 0x9d, 0xc1, 0x6a, 0xd1, 0xa4, 0x50, 0x82, 0xb6, 0x2e, 0xc1, 0x93, 0x1b, - 0x4a, 0x60, 0x2f, 0xbd, 0x42, 0x23, 0x5e, 0xad, 0xc4, 0x4a, 0x5a, 0x26, 0x43, 0x8f, 0xa0, 0xcd, - 0x4d, 0x01, 0x75, 0xcb, 0xe8, 0xf9, 0xd2, 0x7d, 0x0d, 0x16, 0x56, 0xbd, 0x33, 0xbb, 0xad, 0xeb, - 0xe5, 0xb7, 0x75, 0xa3, 0x78, 0x5b, 0xbb, 0xd0, 0xe4, 0x44, 0x64, 0xb1, 0xd4, 0xfd, 0xb7, 0xbc, - 0xb9, 0xaa, 0xa9, 0x17, 0x29, 0x6b, 0xa9, 0x6f, 0xb5, 0xae, 0x8d, 0x71, 0xeb, 0xea, 0x18, 0xa3, - 0x01, 0x74, 0x95, 0x46, 0x64, 0xed, 0x03, 0x9e, 0xc5, 0x44, 0x69, 0x82, 0xd6, 0xbc, 0x23, 0x68, - 0x5a, 0xcc, 0x86, 0x17, 0x39, 0xcf, 0xc0, 0x99, 0x9f, 0x89, 0xb7, 0x69, 0xb5, 0x8f, 0x7f, 0x81, - 0x3b, 0xd7, 0x98, 0xa3, 0x1e, 0x74, 0x77, 0x47, 0x3b, 0x5b, 0xc3, 0x9f, 0x82, 0xad, 0xe1, 0x70, - 0x34, 0xde, 0x0f, 0x5e, 0xfa, 0xc1, 0xd8, 0x7b, 0xd1, 0x79, 0x07, 0x01, 0x34, 0x0d, 0xd4, 0xa9, - 0xa0, 0xdb, 0xd0, 0xf6, 0x47, 0x3f, 0x1e, 0x8c, 0xf6, 0xf6, 0xb5, 0xb0, 0xaa, 0x84, 0xfe, 0xe8, - 0xfb, 0xd1, 0x70, 0xbf, 0x53, 0x43, 0x0b, 0x50, 0x7f, 0xea, 0xbf, 0x1c, 0x77, 0xea, 0x9b, 0xff, - 0x36, 0xa0, 0xe9, 0xbd, 0x54, 0x4f, 0x17, 0xfa, 0x06, 0x16, 0x87, 0x9c, 0x60, 0x49, 0xcc, 0x4a, - 0x80, 0xca, 0x76, 0x04, 0x67, 0xd5, 0x35, 0xeb, 0x8a, 0x9b, 0xaf, 0x2b, 0xee, 0x48, 0xad, 0x2b, - 0xca, 0xd8, 0xbc, 0x45, 0xff, 0xc7, 0xf8, 0x0b, 0x68, 0xcd, 0xb6, 0x1c, 0xb4, 0x92, 0x3f, 0xab, - 0x97, 0xb6, 0x1e, 0xa7, 0xcc, 0x21, 0x1a, 0x01, 0xec, 0x52, 0x91, 0x5b, 0x3a, 0x33, 0x95, 0x0b, - 0x30, 0x37, 0x5f, 0x2b, 0x95, 0xd9, 0x61, 0xdd, 0x86, 0xa5, 0x4b, 0x3b, 0x13, 0xba, 0xa7, 0x39, - 0x94, 0xed, 0x51, 0x73, 0x63, 0xf8, 0x16, 0x96, 0x4c, 0xf6, 0xec, 0x03, 0x8a, 0x4a, 0xf7, 0x8f, - 0xb9, 0xe6, 0x1e, 0x2c, 0x5f, 0xde, 0x24, 0x90, 0x53, 0xba, 0x5e, 0xe4, 0xd1, 0xcc, 0x5f, 0x3d, - 0xd0, 0x2e, 0xa0, 0xeb, 0x6b, 0x01, 0xba, 0x5f, 0x08, 0xa9, 0x64, 0x5f, 0x98, 0x4b, 0xec, 0x57, - 0xb8, 0x37, 0xf7, 0x5d, 0x45, 0x8f, 0x73, 0x1e, 0xaf, 0x5d, 0x0d, 0x9c, 0x0f, 0x6e, 0x52, 0xb3, - 0xcc, 0x27, 0xd0, 0x9b, 0x77, 0xc7, 0xa0, 0xf7, 0xdf, 0xe4, 0x15, 0x70, 0x1e, 0xbf, 0xd1, 0x45, - 0xb5, 0xfd, 0xf0, 0xe7, 0x07, 0x13, 0x2a, 0x8f, 0xb3, 0x43, 0x37, 0x64, 0xd3, 0x81, 0xad, 0x93, - 0xd9, 0xc0, 0x43, 0x16, 0x0f, 0x78, 0x1a, 0x1e, 0x36, 0xf5, 0xe9, 0xf3, 0xff, 0x02, 0x00, 0x00, - 0xff, 0xff, 0x72, 0xad, 0xd4, 0x68, 0xdf, 0x0b, 0x00, 0x00, + // 1260 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xdb, 0x72, 0xdb, 0x44, + 0x18, 0xc6, 0xc7, 0xc4, 0xbf, 0x93, 0xd4, 0xdd, 0xda, 0xc1, 0x55, 0x86, 0x36, 0x75, 0x29, 0x04, + 0x98, 0x91, 0x21, 0x5c, 0x00, 0x65, 0x60, 0x9a, 0xb8, 0x6e, 0x6a, 0x48, 0x5b, 0xa3, 0x24, 0x17, + 0x70, 0x23, 0x36, 0xd2, 0xc6, 0x51, 0x23, 0x6b, 0xc5, 0xee, 0x2a, 0x87, 0x27, 0x80, 0xc7, 0xe0, + 0x11, 0x78, 0x11, 0x9e, 0x86, 0x19, 0xae, 0x99, 0x3d, 0xc8, 0x51, 0x6c, 0xb9, 0x49, 0xb8, 0xd3, + 0xfe, 0xa7, 0xfd, 0xfe, 0xd3, 0xfa, 0x33, 0x2c, 0xb1, 0xd8, 0xeb, 0x06, 0xd4, 0x8e, 0x19, 0x15, + 0x14, 0x95, 0x58, 0xec, 0x59, 0xcd, 0x30, 0x38, 0x25, 0x27, 0x81, 0x70, 0xc9, 0x88, 0x11, 0xce, + 0xb5, 0xca, 0x6a, 0xa5, 0xd2, 0x20, 0xca, 0x8a, 0xd7, 0x46, 0x94, 0x8e, 0x42, 0xd2, 0x55, 0xa7, + 0xc3, 0xe4, 0xa8, 0x4b, 0xc6, 0xb1, 0xb8, 0xd0, 0xca, 0x4e, 0x17, 0x1a, 0x3b, 0x44, 0xf4, 0x95, + 0xbd, 0x43, 0x7e, 0x4b, 0x08, 0x17, 0x68, 0x0d, 0x6a, 0x3a, 0xae, 0x1b, 0xf8, 0xed, 0xc2, 0x7a, + 0x61, 0xa3, 0xe6, 0x2c, 0x6a, 0xc1, 0xc0, 0xef, 0xfc, 0x5e, 0x80, 0xe6, 0x41, 0xec, 0x63, 0x41, + 0x5e, 0x11, 0xc1, 0x02, 0x6f, 0xe2, 0xf5, 0x31, 0x94, 0x83, 0xe8, 0x88, 0x2a, 0x87, 0xfa, 0xe6, + 0x3d, 0xdb, 0x80, 0xb1, 0x75, 0xec, 0x41, 0x74, 0x44, 0x1d, 0x65, 0x80, 0x3a, 0xb0, 0x8c, 0x4f, + 0x47, 0xae, 0x17, 0x27, 0x6e, 0xc2, 0xf1, 0x88, 0xb4, 0x4b, 0xeb, 0x85, 0x8d, 0xa2, 0x53, 0xc7, + 0xa7, 0xa3, 0x5e, 0x9c, 0x1c, 0x48, 0x91, 0xb4, 0x19, 0xe3, 0xf3, 0x8c, 0x4d, 0x59, 0xdb, 0x8c, + 0xf1, 0x79, 0x6a, 0xd3, 0x39, 0x80, 0xd6, 0x0e, 0x11, 0x83, 0xe8, 0x32, 0xbe, 0x41, 0xf2, 0x01, + 0x80, 0xa9, 0xc0, 0x65, 0x02, 0x35, 0x23, 0x19, 0xf8, 0x52, 0xcd, 0x05, 0x23, 0x78, 0xec, 0x9e, + 0x90, 0x8b, 0x76, 0x51, 0xab, 0xb5, 0xe4, 0x47, 0x72, 0xd1, 0xf9, 0xa3, 0x08, 0xab, 0xd3, 0x71, + 0x79, 0x4c, 0x23, 0x4e, 0xd0, 0xc6, 0x95, 0x14, 0x9b, 0x93, 0x14, 0xb3, 0xb6, 0x3a, 0xc7, 0x26, + 0x54, 0x04, 0x3d, 0x21, 0x91, 0x09, 0xaf, 0x0f, 0xa8, 0x05, 0xd5, 0x33, 0xee, 0x26, 0x2c, 0x54, + 0x29, 0xd7, 0x9c, 0xca, 0x19, 0x3f, 0x60, 0x21, 0x3a, 0x80, 0x95, 0x90, 0x8e, 0x46, 0x41, 0x34, + 0x72, 0x8f, 0x02, 0x12, 0xfa, 0xbc, 0x5d, 0x5e, 0x2f, 0x6d, 0xd4, 0x37, 0x6d, 0x9b, 0xc5, 0x9e, + 0x9d, 0x8f, 0xc5, 0xde, 0xd5, 0x1e, 0x2f, 0x94, 0x43, 0x3f, 0x12, 0xec, 0xc2, 0x59, 0x0e, 0xb3, + 0x32, 0xeb, 0x19, 0xa0, 0x59, 0x23, 0xd4, 0x80, 0x92, 0x4c, 0x5b, 0x57, 0x45, 0x7e, 0x4a, 0xac, + 0xa7, 0x38, 0x4c, 0x48, 0x8a, 0x55, 0x1d, 0x9e, 0x16, 0xbf, 0x2e, 0x74, 0x46, 0x70, 0x5f, 0xb7, + 0xda, 0x00, 0xd8, 0x13, 0x58, 0x90, 0x1b, 0x56, 0xf9, 0x33, 0xa8, 0x70, 0x69, 0xae, 0xa2, 0xd6, + 0x37, 0x5b, 0xd3, 0xc5, 0xd2, 0xb1, 0xb4, 0x4d, 0xe7, 0xcf, 0x02, 0xac, 0xef, 0x10, 0xb1, 0x37, + 0x18, 0xee, 0xb3, 0x24, 0x3a, 0xd9, 0x4a, 0xc4, 0x31, 0x89, 0x44, 0xe0, 0x61, 0x11, 0xd0, 0x28, + 0xbd, 0xf0, 0x01, 0xd4, 0x79, 0x10, 0xbb, 0x1e, 0x0e, 0x43, 0x79, 0x63, 0xd5, 0x34, 0x2e, 0x88, + 0x7b, 0x38, 0x0c, 0x07, 0x3e, 0x42, 0x50, 0x3e, 0x62, 0x74, 0x6c, 0xd2, 0x50, 0xdf, 0x68, 0x05, + 0x8a, 0x82, 0x9a, 0x6a, 0x17, 0x05, 0x45, 0x0f, 0xa1, 0xce, 0x99, 0xe7, 0x62, 0xdf, 0x97, 0x18, + 0xd4, 0x54, 0xd5, 0x1c, 0xe0, 0xcc, 0xdb, 0xd2, 0x12, 0xf4, 0x3e, 0x2c, 0x08, 0xea, 0x1e, 0x53, + 0x2e, 0xda, 0x15, 0xa5, 0xac, 0x0a, 0xfa, 0x92, 0x72, 0xd1, 0xf9, 0xab, 0x00, 0x8f, 0xde, 0x01, + 0xd1, 0x4c, 0x88, 0x05, 0x8b, 0x09, 0x27, 0x2c, 0xc2, 0x63, 0x92, 0x6e, 0x4e, 0x7a, 0x96, 0xba, + 0x18, 0x73, 0x7e, 0x46, 0x99, 0x6f, 0x30, 0x4e, 0xce, 0x12, 0xbb, 0xcf, 0x68, 0xac, 0x90, 0x2e, + 0x3a, 0xea, 0x1b, 0xad, 0xc3, 0x92, 0xcc, 0x57, 0xc8, 0xeb, 0x64, 0xc2, 0x29, 0xd8, 0x20, 0x56, + 0x08, 0xf4, 0x24, 0xc7, 0x8c, 0xbe, 0x25, 0x9e, 0x90, 0x7a, 0x8d, 0xb7, 0x66, 0x24, 0x03, 0xbf, + 0xf3, 0x6f, 0x09, 0x1e, 0xf6, 0x65, 0x37, 0xb1, 0x20, 0x7b, 0x83, 0xe1, 0xf3, 0x80, 0xc7, 0x58, + 0x78, 0xc7, 0x4e, 0x12, 0x12, 0x3e, 0xa7, 0xa8, 0x8b, 0xd3, 0x45, 0xfd, 0x1c, 0x90, 0xd4, 0xc7, + 0x98, 0x89, 0xc0, 0x0b, 0x62, 0x1c, 0x89, 0x49, 0xb7, 0xb7, 0x8b, 0xed, 0x82, 0xd3, 0xe0, 0x41, + 0x3c, 0xbc, 0x54, 0x0e, 0xfc, 0x19, 0xd8, 0x30, 0x03, 0xfb, 0x09, 0xac, 0xc8, 0xfb, 0xe4, 0xbc, + 0x47, 0xc9, 0xf8, 0x90, 0x30, 0x53, 0x8e, 0x65, 0x23, 0x7d, 0xad, 0x84, 0xe8, 0x31, 0x28, 0x01, + 0xf1, 0x53, 0x2b, 0xdd, 0xc6, 0x25, 0x2d, 0x34, 0x46, 0xd7, 0x36, 0xb4, 0x01, 0xa5, 0x38, 0x88, + 0x4c, 0x71, 0xe4, 0xa7, 0xdc, 0xc2, 0x88, 0xba, 0x52, 0x58, 0x55, 0xd5, 0xae, 0x44, 0x74, 0x18, + 0x44, 0x32, 0x92, 0xb9, 0x4e, 0x75, 0x7f, 0x41, 0x47, 0xd2, 0x22, 0x39, 0x01, 0xc8, 0x87, 0x06, + 0x39, 0x17, 0x0c, 0xbb, 0x58, 0x08, 0x16, 0x1c, 0x26, 0x82, 0xf0, 0x76, 0x4d, 0x2d, 0xea, 0x37, + 0x6a, 0x51, 0xaf, 0x29, 0xb5, 0xdd, 0x97, 0xce, 0x5b, 0x13, 0x5f, 0xbd, 0xb3, 0x77, 0xc8, 0x55, + 0xa9, 0xb5, 0x0d, 0xcd, 0x3c, 0xc3, 0x5b, 0xed, 0xed, 0xdf, 0x0b, 0xb0, 0x3e, 0x1f, 0x8d, 0x19, + 0xd5, 0x35, 0xa8, 0x31, 0x4a, 0xc7, 0x6e, 0x76, 0x56, 0xa5, 0xe0, 0xb5, 0x9c, 0xd5, 0x2f, 0xa0, + 0x79, 0xb5, 0xe5, 0x72, 0xd6, 0x45, 0xfa, 0x5a, 0xde, 0x8b, 0xb3, 0x1d, 0xd7, 0x2a, 0xf4, 0x09, + 0x34, 0xb2, 0x2e, 0x2a, 0xac, 0x2e, 0xe2, 0x9d, 0x8c, 0x3c, 0x2f, 0xfa, 0x98, 0x08, 0xec, 0x63, + 0x81, 0xcd, 0xf4, 0x65, 0xa3, 0xbf, 0x32, 0x2a, 0x74, 0x06, 0xab, 0x59, 0x97, 0x4c, 0x0b, 0xea, + 0xaa, 0x05, 0xcf, 0xae, 0x69, 0x81, 0x79, 0x35, 0x33, 0xa3, 0x3a, 0xdd, 0x89, 0x56, 0x9c, 0xa7, + 0x43, 0x8f, 0xa1, 0xce, 0x74, 0x03, 0xd5, 0xc8, 0xa8, 0x05, 0x55, 0x93, 0x0f, 0x46, 0x2c, 0x67, + 0x67, 0xf2, 0xdc, 0x97, 0xf3, 0x9f, 0xfb, 0x4a, 0xf6, 0xb9, 0xb7, 0xa1, 0xca, 0x08, 0x4f, 0x42, + 0xa1, 0xe6, 0x6f, 0x65, 0x73, 0x55, 0x41, 0xcf, 0x42, 0x56, 0x5a, 0xc7, 0x58, 0xcd, 0x2c, 0x54, + 0x6d, 0x66, 0xa1, 0xba, 0xd0, 0x94, 0x16, 0xbe, 0xf1, 0x77, 0x59, 0x12, 0x92, 0xcb, 0xd5, 0xbb, + 0xcb, 0x83, 0x38, 0x5b, 0x8d, 0x99, 0x87, 0x63, 0x69, 0xea, 0xe1, 0x40, 0xbb, 0xb0, 0x70, 0x4c, + 0xb0, 0x4f, 0x18, 0x6f, 0x2f, 0xab, 0xea, 0x6e, 0xde, 0xac, 0xba, 0x2f, 0xb5, 0x93, 0xae, 0x67, + 0x1a, 0x02, 0x31, 0x68, 0x99, 0x4f, 0x57, 0xd0, 0x6c, 0xe7, 0x56, 0x54, 0xec, 0xef, 0x6f, 0x15, + 0x7b, 0x9f, 0x4e, 0xf7, 0xed, 0xde, 0xf1, 0xac, 0xc6, 0x7a, 0x09, 0xd6, 0xfc, 0x56, 0xdf, 0x66, + 0x97, 0xac, 0xa7, 0xb0, 0x94, 0x4d, 0xeb, 0x56, 0xbe, 0x2f, 0xa0, 0x3d, 0x0f, 0xf6, 0x6d, 0xe2, + 0x7c, 0xfa, 0x2b, 0xdc, 0x9d, 0x19, 0x0f, 0xd4, 0x86, 0xe6, 0x6e, 0x7f, 0x67, 0xab, 0xf7, 0xb3, + 0xbb, 0xd5, 0xeb, 0xf5, 0x87, 0xfb, 0xee, 0x1b, 0xc7, 0x1d, 0x0e, 0x5e, 0x37, 0xde, 0x43, 0x00, + 0x55, 0x2d, 0x6a, 0x14, 0xd0, 0x1d, 0xa8, 0x3b, 0xfd, 0x9f, 0x0e, 0xfa, 0x7b, 0xfb, 0x4a, 0x59, + 0x94, 0x4a, 0xa7, 0xff, 0x43, 0xbf, 0xb7, 0xdf, 0x28, 0xa1, 0x45, 0x28, 0x3f, 0x77, 0xde, 0x0c, + 0x1b, 0xe5, 0xcd, 0x7f, 0x2a, 0x50, 0x1d, 0xbc, 0x91, 0x04, 0x03, 0x7d, 0x0b, 0x4b, 0x3d, 0x46, + 0xb0, 0x20, 0x9a, 0xb8, 0xa1, 0x3c, 0x26, 0x67, 0xad, 0xda, 0x9a, 0x54, 0xda, 0x29, 0xa9, 0xb4, + 0xfb, 0x92, 0x54, 0x4a, 0x67, 0xcd, 0x18, 0xfe, 0x8f, 0xf3, 0x57, 0x50, 0x9b, 0x70, 0x51, 0xd4, + 0x4a, 0xc9, 0xcf, 0x15, 0x6e, 0x6a, 0xe5, 0x05, 0x44, 0x7d, 0x80, 0xdd, 0x80, 0xa7, 0x9e, 0xd6, + 0xc4, 0xe4, 0x52, 0x98, 0xba, 0xaf, 0xe5, 0xea, 0xcc, 0x8b, 0xb8, 0x0d, 0xcb, 0x57, 0x98, 0x2d, + 0xba, 0xaf, 0x30, 0xe4, 0xb1, 0xdd, 0xb9, 0x39, 0x7c, 0x07, 0xcb, 0xba, 0x7a, 0x86, 0xe6, 0xa0, + 0x5c, 0x96, 0x38, 0xd7, 0x7d, 0x00, 0x2b, 0x57, 0xf9, 0x1e, 0xb2, 0x72, 0x49, 0x60, 0x9a, 0xcd, + 0x7c, 0x82, 0x88, 0x76, 0x01, 0xcd, 0x92, 0x37, 0xf4, 0x20, 0x93, 0x52, 0x0e, 0xab, 0x9b, 0x0b, + 0xec, 0x2d, 0xdc, 0x9f, 0xcb, 0x7e, 0xd0, 0x93, 0x14, 0xc7, 0x3b, 0x09, 0x9c, 0xf5, 0xd1, 0x75, + 0x66, 0x06, 0xf9, 0x08, 0xda, 0xf3, 0x9e, 0x03, 0xf4, 0xe1, 0x4d, 0x7e, 0x6a, 0xad, 0x27, 0x37, + 0x7a, 0x53, 0xb6, 0x1f, 0xfd, 0xf2, 0x70, 0x14, 0x88, 0xe3, 0xe4, 0xd0, 0xf6, 0xe8, 0xb8, 0x6b, + 0xfa, 0xa4, 0xff, 0x27, 0x79, 0x34, 0xec, 0xb2, 0xd8, 0x3b, 0xac, 0xaa, 0xd3, 0x97, 0xff, 0x05, + 0x00, 0x00, 0xff, 0xff, 0x3b, 0x34, 0x43, 0x4d, 0x85, 0x0d, 0x00, 0x00, } diff --git a/rpc/sip.go b/rpc/sip.go index 2fe0398a..2b98830c 100644 --- a/rpc/sip.go +++ b/rpc/sip.go @@ -12,7 +12,7 @@ import ( // NewCreateSIPParticipantRequest fills InternalCreateSIPParticipantRequest from // livekit.CreateSIPParticipantRequest and livekit.SIPTrunkInfo. func NewCreateSIPParticipantRequest( - callID, wsUrl, token string, + projectID, callID, host, wsUrl, token string, req *livekit.CreateSIPParticipantRequest, trunk *livekit.SIPOutboundTrunkInfo, ) (*InternalCreateSIPParticipantRequest, error) { @@ -46,21 +46,26 @@ func NewCreateSIPParticipantRequest( attrs[livekit.AttrSIPTrunkNumber] = outboundNumber } return &InternalCreateSIPParticipantRequest{ - SipCallId: callID, - Address: trunk.Address, - Transport: trunk.Transport, - Number: outboundNumber, - Username: trunk.AuthUsername, - Password: trunk.AuthPassword, - CallTo: req.SipCallTo, - WsUrl: wsUrl, - Token: token, - RoomName: req.RoomName, - ParticipantIdentity: req.ParticipantIdentity, - ParticipantName: req.ParticipantName, - ParticipantMetadata: req.ParticipantMetadata, + ProjectId: projectID, + SipCallId: callID, + SipTrunkId: trunkID, + Address: trunk.Address, + Hostname: host, + Transport: trunk.Transport, + Number: outboundNumber, + Username: trunk.AuthUsername, + Password: trunk.AuthPassword, + CallTo: req.SipCallTo, + WsUrl: wsUrl, + Token: token, + RoomName: req.RoomName, + ParticipantIdentity: req.ParticipantIdentity, + ParticipantName: req.ParticipantName, + ParticipantMetadata: req.ParticipantMetadata, ParticipantAttributes: attrs, - Dtmf: req.Dtmf, - PlayRingtone: req.PlayRingtone, + Dtmf: req.Dtmf, + PlayRingtone: req.PlayRingtone, + Headers: trunk.Headers, + HeadersToAttributes: trunk.HeadersToAttributes, }, nil } diff --git a/rpc/sip.pb.go b/rpc/sip.pb.go index 2680753a..49d3c9f9 100644 --- a/rpc/sip.pb.go +++ b/rpc/sip.pb.go @@ -41,9 +41,14 @@ type InternalCreateSIPParticipantRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SipCallId string `protobuf:"bytes,13,opt,name=sip_call_id,json=sipCallId,proto3" json:"sip_call_id,omitempty"` - // IP that SIP INVITE is sent too - Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + // Used in Cloud only + ProjectId string `protobuf:"bytes,18,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + SipCallId string `protobuf:"bytes,13,opt,name=sip_call_id,json=sipCallId,proto3" json:"sip_call_id,omitempty"` + SipTrunkId string `protobuf:"bytes,19,opt,name=sip_trunk_id,json=sipTrunkId,proto3" json:"sip_trunk_id,omitempty"` + // IP or hostname that SIP INVITE is sent too + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + // Hostname for the 'From' SIP address in INVITE + Hostname string `protobuf:"bytes,20,opt,name=hostname,proto3" json:"hostname,omitempty"` Transport livekit.SIPTransport `protobuf:"varint,16,opt,name=transport,proto3,enum=livekit.SIPTransport" json:"transport,omitempty"` // Number used to make the call Number string `protobuf:"bytes,3,opt,name=number,proto3" json:"number,omitempty"` @@ -64,7 +69,9 @@ type InternalCreateSIPParticipantRequest struct { // Character 'w' can be used to add a 0.5 sec delay. Dtmf string `protobuf:"bytes,11,opt,name=dtmf,proto3" json:"dtmf,omitempty"` // Optionally play ringtone in the room as an audible indicator for existing participants - PlayRingtone bool `protobuf:"varint,12,opt,name=play_ringtone,json=playRingtone,proto3" json:"play_ringtone,omitempty"` + PlayRingtone bool `protobuf:"varint,12,opt,name=play_ringtone,json=playRingtone,proto3" json:"play_ringtone,omitempty"` + Headers map[string]string `protobuf:"bytes,21,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + HeadersToAttributes map[string]string `protobuf:"bytes,22,rep,name=headers_to_attributes,json=headersToAttributes,proto3" json:"headers_to_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *InternalCreateSIPParticipantRequest) Reset() { @@ -99,6 +106,13 @@ func (*InternalCreateSIPParticipantRequest) Descriptor() ([]byte, []int) { return file_rpc_sip_proto_rawDescGZIP(), []int{0} } +func (x *InternalCreateSIPParticipantRequest) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + func (x *InternalCreateSIPParticipantRequest) GetSipCallId() string { if x != nil { return x.SipCallId @@ -106,6 +120,13 @@ func (x *InternalCreateSIPParticipantRequest) GetSipCallId() string { return "" } +func (x *InternalCreateSIPParticipantRequest) GetSipTrunkId() string { + if x != nil { + return x.SipTrunkId + } + return "" +} + func (x *InternalCreateSIPParticipantRequest) GetAddress() string { if x != nil { return x.Address @@ -113,6 +134,13 @@ func (x *InternalCreateSIPParticipantRequest) GetAddress() string { return "" } +func (x *InternalCreateSIPParticipantRequest) GetHostname() string { + if x != nil { + return x.Hostname + } + return "" +} + func (x *InternalCreateSIPParticipantRequest) GetTransport() livekit.SIPTransport { if x != nil { return x.Transport @@ -211,6 +239,20 @@ func (x *InternalCreateSIPParticipantRequest) GetPlayRingtone() bool { return false } +func (x *InternalCreateSIPParticipantRequest) GetHeaders() map[string]string { + if x != nil { + return x.Headers + } + return nil +} + +func (x *InternalCreateSIPParticipantRequest) GetHeadersToAttributes() map[string]string { + if x != nil { + return x.HeadersToAttributes + } + return nil +} + type InternalCreateSIPParticipantResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -280,74 +322,100 @@ 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, 0x1a, 0x11, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x5f, 0x73, 0x69, 0x70, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd7, 0x05, 0x0a, 0x23, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x80, 0x09, 0x0a, 0x23, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 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, 0x1e, - 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x12, 0x1a, - 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x07, 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, 0x08, 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, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x7a, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x11, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x07, 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, 0x08, 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, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, + 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x7a, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x43, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 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, 0x2e, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x77, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x73, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x74, + 0x6d, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x6d, 0x66, 0x12, 0x23, + 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x74, + 0x6f, 0x6e, 0x65, 0x12, 0x4f, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x15, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 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, 0x2e, 0x50, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x12, 0x75, 0x0a, 0x15, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, + 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x16, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 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, 0x2e, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, + 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x48, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x77, 0x73, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x73, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, - 0x04, 0x64, 0x74, 0x6d, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x6d, - 0x66, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x74, 0x6f, - 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x69, - 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x65, 0x1a, 0x48, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0xa0, 0x01, 0x0a, 0x24, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, + 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa0, 0x01, 0x0a, 0x24, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 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, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 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, 0x1e, 0x0a, 0x0b, + 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x32, 0x84, 0x01, 0x0a, + 0x0b, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x75, 0x0a, 0x14, + 0x43, 0x72, 0x65, 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, 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, 0x29, + 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 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, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, - 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, 0x1e, 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, - 0x6c, 0x49, 0x64, 0x32, 0x84, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x12, 0x75, 0x0a, 0x14, 0x43, 0x72, 0x65, 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, 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, 0x29, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 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, 0x08, 0xb2, 0x89, 0x01, 0x04, 0x10, 0x01, 0x30, 0x01, 0x42, 0x21, 0x5a, 0x1f, 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, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x08, 0xb2, 0x89, 0x01, 0x04, 0x10, + 0x01, 0x30, 0x01, 0x42, 0x21, 0x5a, 0x1f, 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, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -362,23 +430,27 @@ func file_rpc_sip_proto_rawDescGZIP() []byte { return file_rpc_sip_proto_rawDescData } -var file_rpc_sip_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_rpc_sip_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_rpc_sip_proto_goTypes = []any{ (*InternalCreateSIPParticipantRequest)(nil), // 0: rpc.InternalCreateSIPParticipantRequest (*InternalCreateSIPParticipantResponse)(nil), // 1: rpc.InternalCreateSIPParticipantResponse nil, // 2: rpc.InternalCreateSIPParticipantRequest.ParticipantAttributesEntry - (livekit.SIPTransport)(0), // 3: livekit.SIPTransport + nil, // 3: rpc.InternalCreateSIPParticipantRequest.HeadersEntry + nil, // 4: rpc.InternalCreateSIPParticipantRequest.HeadersToAttributesEntry + (livekit.SIPTransport)(0), // 5: livekit.SIPTransport } var file_rpc_sip_proto_depIdxs = []int32{ - 3, // 0: rpc.InternalCreateSIPParticipantRequest.transport:type_name -> livekit.SIPTransport + 5, // 0: rpc.InternalCreateSIPParticipantRequest.transport:type_name -> livekit.SIPTransport 2, // 1: rpc.InternalCreateSIPParticipantRequest.participant_attributes:type_name -> rpc.InternalCreateSIPParticipantRequest.ParticipantAttributesEntry - 0, // 2: rpc.SIPInternal.CreateSIPParticipant:input_type -> rpc.InternalCreateSIPParticipantRequest - 1, // 3: rpc.SIPInternal.CreateSIPParticipant:output_type -> rpc.InternalCreateSIPParticipantResponse - 3, // [3:4] is the sub-list for method output_type - 2, // [2:3] 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 + 3, // 2: rpc.InternalCreateSIPParticipantRequest.headers:type_name -> rpc.InternalCreateSIPParticipantRequest.HeadersEntry + 4, // 3: rpc.InternalCreateSIPParticipantRequest.headers_to_attributes:type_name -> rpc.InternalCreateSIPParticipantRequest.HeadersToAttributesEntry + 0, // 4: rpc.SIPInternal.CreateSIPParticipant:input_type -> rpc.InternalCreateSIPParticipantRequest + 1, // 5: rpc.SIPInternal.CreateSIPParticipant:output_type -> rpc.InternalCreateSIPParticipantResponse + 5, // [5:6] is the sub-list for method output_type + 4, // [4:5] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name } func init() { file_rpc_sip_proto_init() } @@ -418,7 +490,7 @@ func file_rpc_sip_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rpc_sip_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 5, NumExtensions: 0, NumServices: 1, }, diff --git a/rpc/sip.psrpc.go b/rpc/sip.psrpc.go index b611db18..148664d9 100644 --- a/rpc/sip.psrpc.go +++ b/rpc/sip.psrpc.go @@ -122,40 +122,46 @@ func (s *sIPInternalServer) Kill() { } var psrpcFileDescriptor10 = []byte{ - // 550 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xd1, 0x6e, 0xd3, 0x3c, - 0x14, 0x56, 0xd6, 0xad, 0x5b, 0x4f, 0xd7, 0xae, 0xf3, 0xdf, 0xee, 0xb7, 0x82, 0x04, 0xa5, 0x03, - 0xa9, 0xbb, 0x49, 0xa1, 0xbb, 0x41, 0x5c, 0x01, 0x15, 0x12, 0xb9, 0x00, 0x55, 0xe9, 0xb8, 0xe1, - 0x26, 0x72, 0x13, 0x33, 0xac, 0x26, 0xb6, 0xb1, 0x9d, 0x55, 0xe5, 0x01, 0x90, 0x78, 0x0b, 0x9e, - 0x81, 0x97, 0xe1, 0x75, 0x50, 0x9c, 0xb4, 0xeb, 0x46, 0x8b, 0x7a, 0x97, 0xef, 0xfb, 0xce, 0xf9, - 0xf4, 0xd9, 0xc7, 0x27, 0xd0, 0x50, 0x32, 0x1a, 0x68, 0x26, 0x3d, 0xa9, 0x84, 0x11, 0xa8, 0xa2, - 0x64, 0xe4, 0x36, 0x84, 0x34, 0x4c, 0x70, 0x5d, 0x70, 0xee, 0x69, 0xc2, 0x6e, 0xe8, 0x8c, 0x99, - 0x70, 0x55, 0xd6, 0xfb, 0x7d, 0x00, 0xe7, 0x3e, 0x37, 0x54, 0x71, 0x92, 0x8c, 0x14, 0x25, 0x86, - 0x4e, 0xfc, 0xf1, 0x98, 0x28, 0xc3, 0x22, 0x26, 0x09, 0x37, 0x01, 0xfd, 0x9a, 0x51, 0x6d, 0xd0, - 0x43, 0xa8, 0x6b, 0x26, 0xc3, 0x88, 0x24, 0x49, 0xc8, 0x62, 0xdc, 0xe8, 0x3a, 0xfd, 0x5a, 0x50, - 0xd3, 0x4c, 0x8e, 0x48, 0x92, 0xf8, 0x31, 0xc2, 0x70, 0x48, 0xe2, 0x58, 0x51, 0xad, 0xf1, 0x9e, - 0xd5, 0x96, 0x10, 0x5d, 0x42, 0xcd, 0x28, 0xc2, 0xb5, 0x14, 0xca, 0xe0, 0x56, 0xd7, 0xe9, 0x37, - 0x87, 0x1d, 0xaf, 0x0c, 0xe2, 0x4d, 0xfc, 0xf1, 0xd5, 0x52, 0x0c, 0x6e, 0xeb, 0xd0, 0x19, 0x54, - 0x79, 0x96, 0x4e, 0xa9, 0xc2, 0x15, 0xeb, 0x56, 0x22, 0xf4, 0x3f, 0x1c, 0xda, 0x08, 0x46, 0xe0, - 0xfd, 0x42, 0xc8, 0xe1, 0x95, 0x40, 0x2e, 0x1c, 0x65, 0x3a, 0x3f, 0x45, 0x4a, 0xf1, 0x81, 0x55, - 0x56, 0x38, 0xd7, 0x24, 0xd1, 0x7a, 0x2e, 0x54, 0x8c, 0xab, 0x85, 0xb6, 0xc4, 0xe8, 0x01, 0xd4, - 0x94, 0x10, 0x69, 0x68, 0x1b, 0x0f, 0x0b, 0x31, 0x27, 0x3e, 0xe4, 0x8d, 0xcf, 0xa1, 0x2d, 0x6f, - 0xaf, 0x22, 0x64, 0x31, 0xe5, 0x86, 0x99, 0x05, 0x3e, 0xb2, 0x75, 0xff, 0xad, 0x69, 0x7e, 0x29, - 0xa1, 0x0b, 0x68, 0xad, 0xb7, 0x58, 0xdb, 0xa6, 0x2d, 0x3f, 0x59, 0xe3, 0x37, 0xb9, 0xa7, 0xd4, - 0x90, 0x98, 0x18, 0x82, 0x4f, 0xfe, 0x72, 0x7f, 0x5f, 0x4a, 0xe8, 0x1b, 0x9c, 0xad, 0xb7, 0x10, - 0x63, 0x14, 0x9b, 0x66, 0x86, 0x6a, 0x7c, 0xda, 0xad, 0xf4, 0xeb, 0xc3, 0x91, 0xa7, 0x64, 0xe4, - 0xed, 0x30, 0x4f, 0x6f, 0x8d, 0x7a, 0xbd, 0x72, 0x79, 0xcb, 0x8d, 0x5a, 0x04, 0x1d, 0xb9, 0x49, - 0x43, 0x6d, 0x38, 0x30, 0x62, 0x46, 0x39, 0xae, 0xd9, 0x7c, 0x05, 0x40, 0x1d, 0xa8, 0xce, 0x75, - 0x98, 0xa9, 0x04, 0x43, 0x41, 0xcf, 0xf5, 0x47, 0x95, 0x20, 0x04, 0xfb, 0xb1, 0x49, 0x3f, 0xe3, - 0xba, 0x25, 0xed, 0x37, 0x3a, 0x87, 0x86, 0x4c, 0xc8, 0x22, 0x54, 0x8c, 0x5f, 0x1b, 0xc1, 0x29, - 0x3e, 0xee, 0x3a, 0xfd, 0xa3, 0xe0, 0x38, 0x27, 0x83, 0x92, 0x73, 0xdf, 0x81, 0xbb, 0x3d, 0x1a, - 0x6a, 0x41, 0x65, 0x46, 0x17, 0xd8, 0xb1, 0xae, 0xf9, 0x67, 0x9e, 0xea, 0x86, 0x24, 0x19, 0x2d, - 0x5f, 0x5d, 0x01, 0x5e, 0xee, 0xbd, 0x70, 0x7a, 0x3f, 0x1d, 0x78, 0xf2, 0xef, 0x9b, 0xd0, 0x52, - 0x70, 0x4d, 0xd1, 0x53, 0x68, 0xde, 0x9d, 0x72, 0xe9, 0xdf, 0xb8, 0x33, 0xdf, 0xad, 0x8f, 0x61, - 0x6f, 0xfb, 0x63, 0xb8, 0xb7, 0x34, 0x95, 0x7b, 0x4b, 0x33, 0xfc, 0xee, 0x40, 0x7d, 0xe2, 0x8f, - 0x97, 0x29, 0xd1, 0x1c, 0xda, 0x9b, 0x92, 0xa2, 0xfe, 0xae, 0x63, 0x75, 0x2f, 0x76, 0xa8, 0x2c, - 0x8e, 0xdd, 0x83, 0x5f, 0x3f, 0x9c, 0x6a, 0xcb, 0x79, 0xe5, 0x3c, 0x73, 0xde, 0x3c, 0xfe, 0xf4, - 0xe8, 0x9a, 0x99, 0x2f, 0xd9, 0xd4, 0x8b, 0x44, 0x3a, 0x28, 0x97, 0x73, 0x60, 0xff, 0x10, 0x91, - 0x48, 0x06, 0x4a, 0x46, 0xd3, 0xaa, 0x45, 0x97, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x57, 0x06, - 0xc6, 0x3b, 0x67, 0x04, 0x00, 0x00, + // 656 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4d, 0x6f, 0xd3, 0x40, + 0x10, 0x95, 0x9b, 0x36, 0x69, 0x26, 0x49, 0x9b, 0x6e, 0x93, 0xb2, 0x0a, 0x02, 0x42, 0x0b, 0x52, + 0x7a, 0x49, 0xa0, 0x15, 0x12, 0xea, 0x89, 0x52, 0x81, 0xea, 0x03, 0x10, 0xa5, 0xe1, 0xc2, 0xc5, + 0xda, 0xd8, 0x4b, 0xb3, 0xc4, 0xde, 0x5d, 0x76, 0xd7, 0x8d, 0xc2, 0x89, 0x13, 0x12, 0xff, 0x82, + 0xdf, 0xc0, 0x2f, 0x44, 0x5e, 0x3b, 0xad, 0xfb, 0x11, 0x94, 0xde, 0xf6, 0xbd, 0x37, 0xf3, 0x34, + 0x33, 0xf6, 0x0c, 0xd4, 0x94, 0xf4, 0x7b, 0x9a, 0xc9, 0xae, 0x54, 0xc2, 0x08, 0x54, 0x50, 0xd2, + 0x6f, 0xd5, 0x84, 0x34, 0x4c, 0x70, 0x9d, 0x72, 0xad, 0xad, 0x90, 0x5d, 0xd0, 0x09, 0x33, 0xde, + 0x65, 0xd8, 0xee, 0xcf, 0x32, 0xec, 0xb9, 0xdc, 0x50, 0xc5, 0x49, 0x78, 0xa2, 0x28, 0x31, 0xf4, + 0xcc, 0xed, 0xf7, 0x89, 0x32, 0xcc, 0x67, 0x92, 0x70, 0x33, 0xa0, 0xdf, 0x63, 0xaa, 0x0d, 0x7a, + 0x04, 0x20, 0x95, 0xf8, 0x46, 0x7d, 0xe3, 0xb1, 0x00, 0xa3, 0xb6, 0xd3, 0x29, 0x0f, 0xca, 0x19, + 0xe3, 0x06, 0xe8, 0x31, 0x54, 0x34, 0x93, 0x9e, 0x4f, 0xc2, 0x30, 0xd1, 0x6b, 0xa9, 0xae, 0x99, + 0x3c, 0x21, 0x61, 0xe8, 0x06, 0xa8, 0x0d, 0xd5, 0x44, 0x37, 0x2a, 0xe6, 0x93, 0x24, 0x60, 0xdb, + 0x06, 0x80, 0x66, 0x72, 0x98, 0x50, 0x6e, 0x80, 0x30, 0x94, 0x48, 0x10, 0x28, 0xaa, 0x35, 0x5e, + 0xb1, 0xe2, 0x1c, 0xa2, 0x16, 0xac, 0x8f, 0x85, 0x36, 0x9c, 0x44, 0x14, 0x37, 0xac, 0x74, 0x89, + 0xd1, 0x21, 0x94, 0x8d, 0x22, 0x5c, 0x4b, 0xa1, 0x0c, 0xae, 0xb7, 0x9d, 0xce, 0xc6, 0x41, 0xb3, + 0x9b, 0x75, 0xd9, 0x3d, 0x73, 0xfb, 0xc3, 0xb9, 0x38, 0xb8, 0x8a, 0x43, 0x3b, 0x50, 0xe4, 0x71, + 0x34, 0xa2, 0x0a, 0x17, 0xac, 0x5d, 0x86, 0xd0, 0x03, 0x28, 0xd9, 0x06, 0x8c, 0xc0, 0xab, 0xa9, + 0x90, 0xc0, 0xa1, 0x48, 0x2a, 0x88, 0x75, 0x32, 0xa2, 0x88, 0xe2, 0xb5, 0xb4, 0x82, 0x39, 0x4e, + 0x34, 0x49, 0xb4, 0x9e, 0x0a, 0x15, 0xe0, 0x62, 0xaa, 0xcd, 0x31, 0x7a, 0x08, 0x65, 0x25, 0x44, + 0xe4, 0xd9, 0xc4, 0x52, 0x2a, 0x26, 0xc4, 0xc7, 0x24, 0xf1, 0x25, 0x34, 0xe4, 0xd5, 0x9c, 0x3d, + 0x16, 0x50, 0x6e, 0x98, 0x99, 0xe1, 0x75, 0x1b, 0xb7, 0x9d, 0xd3, 0xdc, 0x4c, 0x42, 0xfb, 0x50, + 0xcf, 0xa7, 0x58, 0xdb, 0x0d, 0x1b, 0xbe, 0x99, 0xe3, 0xef, 0x72, 0x8f, 0xa8, 0x21, 0x01, 0x31, + 0x04, 0x6f, 0xde, 0x72, 0xff, 0x90, 0x49, 0xe8, 0x07, 0xec, 0xe4, 0x53, 0x88, 0x31, 0x8a, 0x8d, + 0x62, 0x43, 0x35, 0xde, 0x6a, 0x17, 0x3a, 0x95, 0x83, 0x93, 0xae, 0x92, 0x7e, 0x77, 0x89, 0x9f, + 0xa5, 0x9b, 0xa3, 0x8e, 0x2f, 0x5d, 0xde, 0x71, 0xa3, 0x66, 0x83, 0xa6, 0xbc, 0x4b, 0x43, 0x0d, + 0x58, 0x33, 0x62, 0x42, 0x39, 0x2e, 0xdb, 0xfa, 0x52, 0x80, 0x9a, 0x50, 0x9c, 0x6a, 0x2f, 0x56, + 0x21, 0x86, 0x94, 0x9e, 0xea, 0xcf, 0x2a, 0x44, 0x08, 0x56, 0x03, 0x13, 0x7d, 0xc5, 0x15, 0x4b, + 0xda, 0x37, 0xda, 0x83, 0x9a, 0x0c, 0xc9, 0xcc, 0x53, 0x8c, 0x9f, 0x1b, 0xc1, 0x29, 0xae, 0xb6, + 0x9d, 0xce, 0xfa, 0xa0, 0x9a, 0x90, 0x83, 0x8c, 0x43, 0x9f, 0xa0, 0x34, 0xa6, 0x24, 0xa0, 0x4a, + 0xe3, 0xa6, 0x6d, 0xe9, 0xd5, 0xd2, 0x2d, 0x9d, 0xa6, 0x79, 0x69, 0x13, 0x73, 0x17, 0x14, 0x43, + 0x33, 0x7b, 0x7a, 0x46, 0xe4, 0x27, 0xb6, 0x63, 0xed, 0x8f, 0xef, 0x6b, 0x3f, 0x14, 0x37, 0xe7, + 0xb5, 0x3d, 0xbe, 0xad, 0xb4, 0x4e, 0xa1, 0xb5, 0x78, 0xc4, 0xa8, 0x0e, 0x85, 0x09, 0x9d, 0x61, + 0xc7, 0x4e, 0x27, 0x79, 0x26, 0xd3, 0xbd, 0x20, 0x61, 0x4c, 0xb3, 0xcd, 0x4a, 0xc1, 0xd1, 0xca, + 0x6b, 0xa7, 0x75, 0x04, 0xd5, 0x7c, 0x67, 0xf7, 0xca, 0x7d, 0x0f, 0x78, 0x51, 0xd9, 0xf7, 0xf1, + 0xd9, 0xfd, 0xe3, 0xc0, 0xb3, 0xff, 0xcf, 0x48, 0x4b, 0xc1, 0x35, 0x45, 0xcf, 0x61, 0xe3, 0xfa, + 0xc6, 0x64, 0xfe, 0xb5, 0x6b, 0xbb, 0xb2, 0x70, 0xb1, 0x56, 0x16, 0x2f, 0xd6, 0x8d, 0xf3, 0x55, + 0xb8, 0x71, 0xbe, 0x0e, 0x7e, 0x39, 0x50, 0x39, 0x73, 0xfb, 0xf3, 0x2a, 0xd1, 0x14, 0x1a, 0x77, + 0x55, 0x8a, 0x3a, 0xcb, 0x7e, 0xf0, 0xd6, 0xfe, 0x12, 0x91, 0x69, 0xdb, 0xbb, 0xf0, 0xf7, 0xb7, + 0x53, 0xac, 0x3b, 0x6f, 0x9c, 0x17, 0xce, 0xdb, 0xa7, 0x5f, 0x9e, 0x9c, 0x33, 0x33, 0x8e, 0x47, + 0x5d, 0x5f, 0x44, 0xbd, 0xec, 0xd0, 0xf5, 0xec, 0x29, 0xf7, 0x45, 0xd8, 0x53, 0xd2, 0x1f, 0x15, + 0x2d, 0x3a, 0xfc, 0x17, 0x00, 0x00, 0xff, 0xff, 0xe3, 0x46, 0x2e, 0x4a, 0x10, 0x06, 0x00, 0x00, } diff --git a/rpc/sip_test.go b/rpc/sip_test.go index 343bf439..7f704b9b 100644 --- a/rpc/sip_test.go +++ b/rpc/sip_test.go @@ -28,11 +28,14 @@ func TestNewCreateSIPParticipantRequest(t *testing.T) { AuthUsername: "user", AuthPassword: "pass", } - res, err := NewCreateSIPParticipantRequest("call-id", "url", "token", r, tr) + res, err := NewCreateSIPParticipantRequest("p_123", "call-id", "xyz.sip.livekit.cloud", "url", "token", r, tr) require.NoError(t, err) require.Equal(t, &InternalCreateSIPParticipantRequest{ + ProjectId: "p_123", SipCallId: "call-id", + SipTrunkId: "trunk", Address: "sip.example.com", + Hostname: "xyz.sip.livekit.cloud", Number: "+1111", CallTo: "+3333", Username: "user", @@ -53,11 +56,14 @@ func TestNewCreateSIPParticipantRequest(t *testing.T) { }, res) r.HidePhoneNumber = true - res, err = NewCreateSIPParticipantRequest("call-id", "url", "token", r, tr) + res, err = NewCreateSIPParticipantRequest("p_123", "call-id", "xyz.sip.livekit.cloud", "url", "token", r, tr) require.NoError(t, err) require.Equal(t, &InternalCreateSIPParticipantRequest{ + ProjectId: "p_123", SipCallId: "call-id", + SipTrunkId: "trunk", Address: "sip.example.com", + Hostname: "xyz.sip.livekit.cloud", Number: "+1111", CallTo: "+3333", Username: "user", diff --git a/sip/sip.go b/sip/sip.go index ef27db8a..307b5887 100644 --- a/sip/sip.go +++ b/sip/sip.go @@ -424,9 +424,13 @@ func MatchDispatchRule(trunk *livekit.SIPInboundTrunkInfo, rules []*livekit.SIPD } // EvaluateDispatchRule checks a selected Dispatch Rule against the provided request. -func EvaluateDispatchRule(trunkID string, rule *livekit.SIPDispatchRuleInfo, req *rpc.EvaluateSIPDispatchRulesRequest) (*rpc.EvaluateSIPDispatchRulesResponse, error) { +func EvaluateDispatchRule(projectID string, trunk *livekit.SIPInboundTrunkInfo, rule *livekit.SIPDispatchRuleInfo, req *rpc.EvaluateSIPDispatchRulesRequest) (*rpc.EvaluateSIPDispatchRulesResponse, error) { sentPin := req.GetPin() + trunkID := req.SipTrunkId + if trunk != nil { + trunkID = trunk.SipTrunkId + } attrs := maps.Clone(rule.Attributes) if attrs == nil { attrs = make(map[string]string) @@ -464,6 +468,7 @@ func EvaluateDispatchRule(trunkID string, rule *livekit.SIPDispatchRuleInfo, req if rulePin != "" { if sentPin == "" { return &rpc.EvaluateSIPDispatchRulesResponse{ + ProjectId: projectID, SipTrunkId: trunkID, SipDispatchRuleId: rule.SipDispatchRuleId, Result: rpc.SIPDispatchResult_REQUEST_PIN, @@ -493,7 +498,8 @@ func EvaluateDispatchRule(trunkID string, rule *livekit.SIPDispatchRuleInfo, req } } attrs[livekit.AttrSIPDispatchRuleID] = rule.SipDispatchRuleId - return &rpc.EvaluateSIPDispatchRulesResponse{ + resp := &rpc.EvaluateSIPDispatchRulesResponse{ + ProjectId: projectID, SipTrunkId: trunkID, SipDispatchRuleId: rule.SipDispatchRuleId, Result: rpc.SIPDispatchResult_ACCEPT, @@ -502,5 +508,10 @@ func EvaluateDispatchRule(trunkID string, rule *livekit.SIPDispatchRuleInfo, req ParticipantName: fromName, ParticipantMetadata: rule.Metadata, ParticipantAttributes: attrs, - }, nil + } + if trunk != nil { + resp.Headers = trunk.Headers + resp.HeadersToAttributes = trunk.HeadersToAttributes + } + return resp, nil } diff --git a/sip/sip_test.go b/sip/sip_test.go index a2713f3a..4c233b42 100644 --- a/sip/sip_test.go +++ b/sip/sip_test.go @@ -598,9 +598,11 @@ func TestEvaluateDispatchRule(t *testing.T) { "prov-attr": "1", }, } - res, err := EvaluateDispatchRule("trunk", d, r) + tr := &livekit.SIPInboundTrunkInfo{SipTrunkId: "trunk"} + res, err := EvaluateDispatchRule("p_123", tr, d, r) require.NoError(t, err) require.Equal(t, &rpc.EvaluateSIPDispatchRulesResponse{ + ProjectId: "p_123", Result: rpc.SIPDispatchResult_ACCEPT, SipTrunkId: "trunk", SipDispatchRuleId: "rule", @@ -620,9 +622,10 @@ func TestEvaluateDispatchRule(t *testing.T) { }, res) d.HidePhoneNumber = true - res, err = EvaluateDispatchRule("trunk", d, r) + res, err = EvaluateDispatchRule("p_123", tr, d, r) require.NoError(t, err) require.Equal(t, &rpc.EvaluateSIPDispatchRulesResponse{ + ProjectId: "p_123", Result: rpc.SIPDispatchResult_ACCEPT, SipTrunkId: "trunk", SipDispatchRuleId: "rule",