// // Copyright 2025 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 // protoc v7.34.1 // source: org/signal/chat/call_quality.proto package call_quality import ( _ "go.mau.fi/mautrix-signal/pkg/signalmeow/protobuf/rpc/require" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" unsafe "unsafe" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type SubmitCallQualitySurveyRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // Indicates whether the caller was generally satisfied with the quality of // the call UserSatisfied bool `protobuf:"varint,1,opt,name=user_satisfied,json=userSatisfied,proto3" json:"user_satisfied,omitempty"` // A list of call quality issues selected by the caller CallQualityIssues []string `protobuf:"bytes,2,rep,name=call_quality_issues,json=callQualityIssues,proto3" json:"call_quality_issues,omitempty"` // A free-form description of any additional issues as written by the caller AdditionalIssuesDescription *string `protobuf:"bytes,3,opt,name=additional_issues_description,json=additionalIssuesDescription,proto3,oneof" json:"additional_issues_description,omitempty"` // A URL for a set of debug logs associated with the call if the caller chose // to submit debug logs DebugLogUrl *string `protobuf:"bytes,4,opt,name=debug_log_url,json=debugLogUrl,proto3,oneof" json:"debug_log_url,omitempty"` // The time at which the call started in milliseconds since the epoch StartTimestamp int64 `protobuf:"varint,5,opt,name=start_timestamp,json=startTimestamp,proto3" json:"start_timestamp,omitempty"` // The time at which the call ended in milliseconds since the epoch EndTimestamp int64 `protobuf:"varint,6,opt,name=end_timestamp,json=endTimestamp,proto3" json:"end_timestamp,omitempty"` // The type of call; note that direct voice calls can become video calls and // vice versa, and this field indicates which mode was selected at call // initiation time. At the time of writing, expected call types are // "direct_voice", "direct_video", "group", and "call_link". CallType string `protobuf:"bytes,7,opt,name=call_type,json=callType,proto3" json:"call_type,omitempty"` // Indicates whether the call completed without error or if it terminated // abnormally Success bool `protobuf:"varint,8,opt,name=success,proto3" json:"success,omitempty"` // A client-defined, but human-readable reason for call termination CallEndReason string `protobuf:"bytes,9,opt,name=call_end_reason,json=callEndReason,proto3" json:"call_end_reason,omitempty"` // The median round-trip time, measured in milliseconds, for STUN/ICE packets // (i.e. connection maintenance and establishment) ConnectionRttMedian *float32 `protobuf:"fixed32,10,opt,name=connection_rtt_median,json=connectionRttMedian,proto3,oneof" json:"connection_rtt_median,omitempty"` // The median round-trip time, measured in milliseconds, for RTP/RTCP packets // for audio streams AudioRttMedian *float32 `protobuf:"fixed32,11,opt,name=audio_rtt_median,json=audioRttMedian,proto3,oneof" json:"audio_rtt_median,omitempty"` // The median round-trip time, measured in milliseconds, for RTP/RTCP packets // for video streams VideoRttMedian *float32 `protobuf:"fixed32,12,opt,name=video_rtt_median,json=videoRttMedian,proto3,oneof" json:"video_rtt_median,omitempty"` // The median jitter for audio streams, measured in milliseconds, for the // duration of the call as measured by the client submitting the survey AudioRecvJitterMedian *float32 `protobuf:"fixed32,13,opt,name=audio_recv_jitter_median,json=audioRecvJitterMedian,proto3,oneof" json:"audio_recv_jitter_median,omitempty"` // The median jitter for video streams, measured in milliseconds, for the // duration of the call as measured by the client submitting the survey VideoRecvJitterMedian *float32 `protobuf:"fixed32,14,opt,name=video_recv_jitter_median,json=videoRecvJitterMedian,proto3,oneof" json:"video_recv_jitter_median,omitempty"` // The median jitter for audio streams, measured in milliseconds, for the // duration of the call as measured by the remote endpoint in the call (either // the peer of the client submitting the survey in a direct call or the SFU in // a group call) AudioSendJitterMedian *float32 `protobuf:"fixed32,15,opt,name=audio_send_jitter_median,json=audioSendJitterMedian,proto3,oneof" json:"audio_send_jitter_median,omitempty"` // The median jitter for video streams, measured in milliseconds, for the // duration of the call as measured by the remote endpoint in the call (either // the peer of the client submitting the survey in a direct call or the SFU in // a group call) VideoSendJitterMedian *float32 `protobuf:"fixed32,16,opt,name=video_send_jitter_median,json=videoSendJitterMedian,proto3,oneof" json:"video_send_jitter_median,omitempty"` // The fraction of audio packets lost over the duration of the call as // measured by the client submitting the survey AudioRecvPacketLossFraction *float32 `protobuf:"fixed32,17,opt,name=audio_recv_packet_loss_fraction,json=audioRecvPacketLossFraction,proto3,oneof" json:"audio_recv_packet_loss_fraction,omitempty"` // The fraction of video packets lost over the duration of the call as // measured by the client submitting the survey VideoRecvPacketLossFraction *float32 `protobuf:"fixed32,18,opt,name=video_recv_packet_loss_fraction,json=videoRecvPacketLossFraction,proto3,oneof" json:"video_recv_packet_loss_fraction,omitempty"` // The fraction of audio packets lost over the duration of the call as // measured by the remote endpoint in the call (either the peer of the client // submitting the survey in a direct call or the SFU in a group call) AudioSendPacketLossFraction *float32 `protobuf:"fixed32,19,opt,name=audio_send_packet_loss_fraction,json=audioSendPacketLossFraction,proto3,oneof" json:"audio_send_packet_loss_fraction,omitempty"` // The fraction of video packets lost over the duration of the call as // measured by the remote endpoint in the call (either the peer of the client // submitting the survey in a direct call or the SFU in a group call) VideoSendPacketLossFraction *float32 `protobuf:"fixed32,20,opt,name=video_send_packet_loss_fraction,json=videoSendPacketLossFraction,proto3,oneof" json:"video_send_packet_loss_fraction,omitempty"` // Machine-generated telemetry from the call; this is a serialized protobuf // entity generated (and, critically, explained to the user!) by the calling // library CallTelemetry []byte `protobuf:"bytes,21,opt,name=call_telemetry,json=callTelemetry,proto3,oneof" json:"call_telemetry,omitempty"` // A hash of a call ID (shared between clients and never sent to the calling // server) that can be used to correlate survey responses from multiple // participants in a call CallIdHash []byte `protobuf:"bytes,22,opt,name=call_id_hash,json=callIdHash,proto3,oneof" json:"call_id_hash,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SubmitCallQualitySurveyRequest) Reset() { *x = SubmitCallQualitySurveyRequest{} mi := &file_org_signal_chat_call_quality_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SubmitCallQualitySurveyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubmitCallQualitySurveyRequest) ProtoMessage() {} func (x *SubmitCallQualitySurveyRequest) ProtoReflect() protoreflect.Message { mi := &file_org_signal_chat_call_quality_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SubmitCallQualitySurveyRequest.ProtoReflect.Descriptor instead. func (*SubmitCallQualitySurveyRequest) Descriptor() ([]byte, []int) { return file_org_signal_chat_call_quality_proto_rawDescGZIP(), []int{0} } func (x *SubmitCallQualitySurveyRequest) GetUserSatisfied() bool { if x != nil { return x.UserSatisfied } return false } func (x *SubmitCallQualitySurveyRequest) GetCallQualityIssues() []string { if x != nil { return x.CallQualityIssues } return nil } func (x *SubmitCallQualitySurveyRequest) GetAdditionalIssuesDescription() string { if x != nil && x.AdditionalIssuesDescription != nil { return *x.AdditionalIssuesDescription } return "" } func (x *SubmitCallQualitySurveyRequest) GetDebugLogUrl() string { if x != nil && x.DebugLogUrl != nil { return *x.DebugLogUrl } return "" } func (x *SubmitCallQualitySurveyRequest) GetStartTimestamp() int64 { if x != nil { return x.StartTimestamp } return 0 } func (x *SubmitCallQualitySurveyRequest) GetEndTimestamp() int64 { if x != nil { return x.EndTimestamp } return 0 } func (x *SubmitCallQualitySurveyRequest) GetCallType() string { if x != nil { return x.CallType } return "" } func (x *SubmitCallQualitySurveyRequest) GetSuccess() bool { if x != nil { return x.Success } return false } func (x *SubmitCallQualitySurveyRequest) GetCallEndReason() string { if x != nil { return x.CallEndReason } return "" } func (x *SubmitCallQualitySurveyRequest) GetConnectionRttMedian() float32 { if x != nil && x.ConnectionRttMedian != nil { return *x.ConnectionRttMedian } return 0 } func (x *SubmitCallQualitySurveyRequest) GetAudioRttMedian() float32 { if x != nil && x.AudioRttMedian != nil { return *x.AudioRttMedian } return 0 } func (x *SubmitCallQualitySurveyRequest) GetVideoRttMedian() float32 { if x != nil && x.VideoRttMedian != nil { return *x.VideoRttMedian } return 0 } func (x *SubmitCallQualitySurveyRequest) GetAudioRecvJitterMedian() float32 { if x != nil && x.AudioRecvJitterMedian != nil { return *x.AudioRecvJitterMedian } return 0 } func (x *SubmitCallQualitySurveyRequest) GetVideoRecvJitterMedian() float32 { if x != nil && x.VideoRecvJitterMedian != nil { return *x.VideoRecvJitterMedian } return 0 } func (x *SubmitCallQualitySurveyRequest) GetAudioSendJitterMedian() float32 { if x != nil && x.AudioSendJitterMedian != nil { return *x.AudioSendJitterMedian } return 0 } func (x *SubmitCallQualitySurveyRequest) GetVideoSendJitterMedian() float32 { if x != nil && x.VideoSendJitterMedian != nil { return *x.VideoSendJitterMedian } return 0 } func (x *SubmitCallQualitySurveyRequest) GetAudioRecvPacketLossFraction() float32 { if x != nil && x.AudioRecvPacketLossFraction != nil { return *x.AudioRecvPacketLossFraction } return 0 } func (x *SubmitCallQualitySurveyRequest) GetVideoRecvPacketLossFraction() float32 { if x != nil && x.VideoRecvPacketLossFraction != nil { return *x.VideoRecvPacketLossFraction } return 0 } func (x *SubmitCallQualitySurveyRequest) GetAudioSendPacketLossFraction() float32 { if x != nil && x.AudioSendPacketLossFraction != nil { return *x.AudioSendPacketLossFraction } return 0 } func (x *SubmitCallQualitySurveyRequest) GetVideoSendPacketLossFraction() float32 { if x != nil && x.VideoSendPacketLossFraction != nil { return *x.VideoSendPacketLossFraction } return 0 } func (x *SubmitCallQualitySurveyRequest) GetCallTelemetry() []byte { if x != nil { return x.CallTelemetry } return nil } func (x *SubmitCallQualitySurveyRequest) GetCallIdHash() []byte { if x != nil { return x.CallIdHash } return nil } type SubmitCallQualitySurveyResponse struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SubmitCallQualitySurveyResponse) Reset() { *x = SubmitCallQualitySurveyResponse{} mi := &file_org_signal_chat_call_quality_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SubmitCallQualitySurveyResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubmitCallQualitySurveyResponse) ProtoMessage() {} func (x *SubmitCallQualitySurveyResponse) ProtoReflect() protoreflect.Message { mi := &file_org_signal_chat_call_quality_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SubmitCallQualitySurveyResponse.ProtoReflect.Descriptor instead. func (*SubmitCallQualitySurveyResponse) Descriptor() ([]byte, []int) { return file_org_signal_chat_call_quality_proto_rawDescGZIP(), []int{1} } var File_org_signal_chat_call_quality_proto protoreflect.FileDescriptor const file_org_signal_chat_call_quality_proto_rawDesc = "" + "\n" + "\"org/signal/chat/call_quality.proto\x12\x1forg.signal.chat.calling.quality\x1a\x1dorg/signal/chat/require.proto\"\xc4\f\n" + "\x1eSubmitCallQualitySurveyRequest\x12%\n" + "\x0euser_satisfied\x18\x01 \x01(\bR\ruserSatisfied\x12.\n" + "\x13call_quality_issues\x18\x02 \x03(\tR\x11callQualityIssues\x12G\n" + "\x1dadditional_issues_description\x18\x03 \x01(\tH\x00R\x1badditionalIssuesDescription\x88\x01\x01\x12'\n" + "\rdebug_log_url\x18\x04 \x01(\tH\x01R\vdebugLogUrl\x88\x01\x01\x12'\n" + "\x0fstart_timestamp\x18\x05 \x01(\x03R\x0estartTimestamp\x12#\n" + "\rend_timestamp\x18\x06 \x01(\x03R\fendTimestamp\x12\x1b\n" + "\tcall_type\x18\a \x01(\tR\bcallType\x12\x18\n" + "\asuccess\x18\b \x01(\bR\asuccess\x12&\n" + "\x0fcall_end_reason\x18\t \x01(\tR\rcallEndReason\x127\n" + "\x15connection_rtt_median\x18\n" + " \x01(\x02H\x02R\x13connectionRttMedian\x88\x01\x01\x12-\n" + "\x10audio_rtt_median\x18\v \x01(\x02H\x03R\x0eaudioRttMedian\x88\x01\x01\x12-\n" + "\x10video_rtt_median\x18\f \x01(\x02H\x04R\x0evideoRttMedian\x88\x01\x01\x12<\n" + "\x18audio_recv_jitter_median\x18\r \x01(\x02H\x05R\x15audioRecvJitterMedian\x88\x01\x01\x12<\n" + "\x18video_recv_jitter_median\x18\x0e \x01(\x02H\x06R\x15videoRecvJitterMedian\x88\x01\x01\x12<\n" + "\x18audio_send_jitter_median\x18\x0f \x01(\x02H\aR\x15audioSendJitterMedian\x88\x01\x01\x12<\n" + "\x18video_send_jitter_median\x18\x10 \x01(\x02H\bR\x15videoSendJitterMedian\x88\x01\x01\x12I\n" + "\x1faudio_recv_packet_loss_fraction\x18\x11 \x01(\x02H\tR\x1baudioRecvPacketLossFraction\x88\x01\x01\x12I\n" + "\x1fvideo_recv_packet_loss_fraction\x18\x12 \x01(\x02H\n" + "R\x1bvideoRecvPacketLossFraction\x88\x01\x01\x12I\n" + "\x1faudio_send_packet_loss_fraction\x18\x13 \x01(\x02H\vR\x1baudioSendPacketLossFraction\x88\x01\x01\x12I\n" + "\x1fvideo_send_packet_loss_fraction\x18\x14 \x01(\x02H\fR\x1bvideoSendPacketLossFraction\x88\x01\x01\x12*\n" + "\x0ecall_telemetry\x18\x15 \x01(\fH\rR\rcallTelemetry\x88\x01\x01\x12%\n" + "\fcall_id_hash\x18\x16 \x01(\fH\x0eR\n" + "callIdHash\x88\x01\x01B \n" + "\x1e_additional_issues_descriptionB\x10\n" + "\x0e_debug_log_urlB\x18\n" + "\x16_connection_rtt_medianB\x13\n" + "\x11_audio_rtt_medianB\x13\n" + "\x11_video_rtt_medianB\x1b\n" + "\x19_audio_recv_jitter_medianB\x1b\n" + "\x19_video_recv_jitter_medianB\x1b\n" + "\x19_audio_send_jitter_medianB\x1b\n" + "\x19_video_send_jitter_medianB\"\n" + " _audio_recv_packet_loss_fractionB\"\n" + " _video_recv_packet_loss_fractionB\"\n" + " _audio_send_packet_loss_fractionB\"\n" + " _video_send_packet_loss_fractionB\x11\n" + "\x0f_call_telemetryB\x0f\n" + "\r_call_id_hash\"!\n" + "\x1fSubmitCallQualitySurveyResponse2\xb4\x01\n" + "\vCallQuality\x12\x9e\x01\n" + "\x17SubmitCallQualitySurvey\x12?.org.signal.chat.calling.quality.SubmitCallQualitySurveyRequest\x1a@.org.signal.chat.calling.quality.SubmitCallQualitySurveyResponse\"\x00\x1a\x04\xc8\xd5\"\x02B\x02P\x01b\x06proto3" var ( file_org_signal_chat_call_quality_proto_rawDescOnce sync.Once file_org_signal_chat_call_quality_proto_rawDescData []byte ) func file_org_signal_chat_call_quality_proto_rawDescGZIP() []byte { file_org_signal_chat_call_quality_proto_rawDescOnce.Do(func() { file_org_signal_chat_call_quality_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_org_signal_chat_call_quality_proto_rawDesc), len(file_org_signal_chat_call_quality_proto_rawDesc))) }) return file_org_signal_chat_call_quality_proto_rawDescData } var file_org_signal_chat_call_quality_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_org_signal_chat_call_quality_proto_goTypes = []any{ (*SubmitCallQualitySurveyRequest)(nil), // 0: org.signal.chat.calling.quality.SubmitCallQualitySurveyRequest (*SubmitCallQualitySurveyResponse)(nil), // 1: org.signal.chat.calling.quality.SubmitCallQualitySurveyResponse } var file_org_signal_chat_call_quality_proto_depIdxs = []int32{ 0, // 0: org.signal.chat.calling.quality.CallQuality.SubmitCallQualitySurvey:input_type -> org.signal.chat.calling.quality.SubmitCallQualitySurveyRequest 1, // 1: org.signal.chat.calling.quality.CallQuality.SubmitCallQualitySurvey:output_type -> org.signal.chat.calling.quality.SubmitCallQualitySurveyResponse 1, // [1:2] is the sub-list for method output_type 0, // [0:1] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_org_signal_chat_call_quality_proto_init() } func file_org_signal_chat_call_quality_proto_init() { if File_org_signal_chat_call_quality_proto != nil { return } file_org_signal_chat_call_quality_proto_msgTypes[0].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_org_signal_chat_call_quality_proto_rawDesc), len(file_org_signal_chat_call_quality_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 1, }, GoTypes: file_org_signal_chat_call_quality_proto_goTypes, DependencyIndexes: file_org_signal_chat_call_quality_proto_depIdxs, MessageInfos: file_org_signal_chat_call_quality_proto_msgTypes, }.Build() File_org_signal_chat_call_quality_proto = out.File file_org_signal_chat_call_quality_proto_goTypes = nil file_org_signal_chat_call_quality_proto_depIdxs = nil }