telecom.proto revision 9d15ca4316bb3a89bba11b62d2e17e2fb80fdc74
1syntax = "proto2"; 2 3package com.android.server.telecom; 4 5option java_package = "com.android.server.telecom"; 6option java_outer_classname = "TelecomLogClass"; 7 8// The information about the telecom events. 9message TelecomLog { 10 11 // Information about each call. 12 repeated CallLog call_logs = 1; 13 14 // Timing information for the logging sessions 15 repeated LogSessionTiming session_timings = 2; 16} 17 18message LogSessionTiming { 19 enum SessionEntryPoint { 20 ICA_ANSWER_CALL = 1; 21 ICA_REJECT_CALL = 2; 22 ICA_DISCONNECT_CALL = 3; 23 ICA_HOLD_CALL = 4; 24 ICA_UNHOLD_CALL = 5; 25 ICA_MUTE = 6; 26 ICA_SET_AUDIO_ROUTE = 7; 27 ICA_CONFERENCE = 8; 28 29 CSW_HANDLE_CREATE_CONNECTION_COMPLETE = 100; 30 CSW_SET_ACTIVE = 101; 31 CSW_SET_RINGING = 102; 32 CSW_SET_DIALING = 103; 33 CSW_SET_DISCONNECTED = 104; 34 CSW_SET_ON_HOLD = 105; 35 CSW_REMOVE_CALL = 106; 36 CSW_SET_IS_CONFERENCED = 107; 37 CSW_ADD_CONFERENCE_CALL = 108; 38 } 39 40 // The entry point into Telecom code that this session tracks. 41 optional SessionEntryPoint sessionEntryPoint = 1; 42 // The time it took for this session to finish. 43 optional int64 time_millis = 2; 44} 45 46message Event { 47 // From android.telecom.ParcelableAnalytics 48 enum EventName { 49 SET_SELECT_PHONE_ACCOUNT = 0; 50 SET_ACTIVE = 1; 51 SET_DISCONNECTED = 2; 52 START_CONNECTION = 3; 53 SET_DIALING = 4; 54 BIND_CS = 5; 55 CS_BOUND = 6; 56 REQUEST_ACCEPT = 7; 57 REQUEST_REJECT = 8; 58 59 SCREENING_SENT = 100; 60 SCREENING_COMPLETED = 101; 61 DIRECT_TO_VM_INITIATED = 102; 62 DIRECT_TO_VM_FINISHED = 103; 63 BLOCK_CHECK_INITIATED = 104; 64 BLOCK_CHECK_FINISHED = 105; 65 FILTERING_INITIATED = 106; 66 FILTERING_COMPLETED = 107; 67 FILTERING_TIMED_OUT = 108; 68 69 SKIP_RINGING = 200; 70 SILENCE = 201; 71 MUTE = 202; 72 UNMUTE = 203; 73 AUDIO_ROUTE_BT = 204; 74 AUDIO_ROUTE_EARPIECE = 205; 75 AUDIO_ROUTE_HEADSET = 206; 76 AUDIO_ROUTE_SPEAKER = 207; 77 78 CONFERENCE_WITH = 300; 79 SPLIT_CONFERENCE = 301; 80 SET_PARENT = 302; 81 82 REQUEST_HOLD = 400; 83 REQUEST_UNHOLD = 401; 84 REMOTELY_HELD = 402; 85 REMOTELY_UNHELD = 403; 86 SET_HOLD = 404; 87 SWAP = 405; 88 89 REQUEST_PULL = 500; 90 } 91 92 // The ID of the event. 93 optional EventName event_name = 1; 94 95 // The elapsed time since the last event, rounded to one significant digit. 96 // If the event is the first, this will be negative. 97 optional int64 time_since_last_event_millis = 2; 98} 99 100message VideoEvent { 101 // From android.telecom.ParcelableCallAnalytics 102 enum VideoEventName { 103 SEND_LOCAL_SESSION_MODIFY_REQUEST = 0; 104 SEND_LOCAL_SESSION_MODIFY_RESPONSE = 1; 105 RECEIVE_REMOTE_SESSION_MODIFY_REQUEST = 2; 106 RECEIVE_REMOTE_SESSION_MODIFY_RESPONSE = 3; 107 } 108 109 // From android.telecom.VideoProfile 110 enum VideoState { 111 STATE_AUDIO_ONLY = 0; 112 STATE_TX_ENABLED = 1; 113 STATE_RX_ENABLED = 2; 114 STATE_BIDIRECTIONAL = 3; 115 STATE_PAUSED = 4; 116 } 117 118 // The ID of the event. 119 optional VideoEventName event_name = 1; 120 121 // The elapsed time since the last event, rounded to one significant digit. 122 // If the event is the first, this will be negative. 123 optional int64 time_since_last_event_millis = 2; 124 125 // The video state 126 optional int32 video_state = 3; 127} 128 129message EventTimingEntry { 130 enum EventTimingName { 131 ACCEPT_TIMING = 0; 132 REJECT_TIMING = 1; 133 DISCONNECT_TIMING = 2; 134 HOLD_TIMING = 3; 135 UNHOLD_TIMING = 4; 136 OUTGOING_TIME_TO_DIALING_TIMING = 5; 137 BIND_CS_TIMING = 6; 138 SCREENING_COMPLETED_TIMING = 7; 139 DIRECT_TO_VM_FINISHED_TIMING = 8; 140 BLOCK_CHECK_FINISHED_TIMING = 9; 141 FILTERING_COMPLETED_TIMING = 10; 142 FILTERING_TIMED_OUT_TIMING = 11; 143 } 144 145 // The name of the event timing. 146 optional EventTimingName timing_name = 1; 147 148 // The number of milliseconds that this event pair took. 149 optional int64 time_millis = 2; 150} 151 152message InCallServiceInfo { 153 // Keep this up-to-date with com.android.server.telecom.InCallController. 154 enum InCallServiceType { 155 IN_CALL_SERVICE_TYPE_INVALID = 0; 156 IN_CALL_SERVICE_TYPE_DIALER_UI = 1; 157 IN_CALL_SERVICE_TYPE_SYSTEM_UI = 2; 158 IN_CALL_SERVICE_TYPE_CAR_MODE_UI = 3; 159 IN_CALL_SERVICE_TYPE_NON_UI = 4; 160 } 161 162 // The shortened component name of the in-call service. 163 optional string in_call_service_name = 1; 164 165 // The type of the in-call service 166 optional InCallServiceType in_call_service_type = 2; 167} 168 169// Information about each call. 170message CallLog { 171 172 // Information on call-types. 173 enum CallType { 174 175 // Call type is not known. 176 CALLTYPE_UNKNOWN = 0; 177 178 // Incoming call. 179 CALLTYPE_INCOMING = 1; 180 181 // Outgoing call. 182 CALLTYPE_OUTGOING = 2; 183 } 184 185 // Termination code. 186 enum CallTerminationCode { 187 188 // Disconnected because of an unknown or unspecified reason. 189 CALL_TERMINATION_CODE_UNKNOWN = 0; 190 191 // Disconnected because there was an error, such as a problem 192 // with the network. 193 CALL_TERMINATION_CODE_ERROR = 1; 194 195 // Disconnected because of a local user-initiated action, 196 // such as hanging up. 197 CALL_TERMINATION_CODE_LOCAL = 2; 198 199 // Disconnected because of a remote user-initiated action, 200 // such as the other party hanging up. 201 CALL_TERMINATION_CODE_REMOTE = 3; 202 203 // Disconnected because it has been canceled. 204 CALL_TERMINATION_CODE_CANCELED = 4; 205 206 // Disconnected because there was no response to an incoming call. 207 CALL_TERMINATION_CODE_MISSED = 5; 208 209 // Disconnected because the user rejected an incoming call. 210 CALL_TERMINATION_CODE_REJECTED = 6; 211 212 // Disconnected because the other party was busy. 213 CALL_TERMINATION_CODE_BUSY = 7; 214 215 // Disconnected because of a restriction on placing the call, 216 // such as dialing in airplane mode. 217 CALL_TERMINATION_CODE_RESTRICTED = 8; 218 219 // Disconnected for reason not described by other disconnect codes. 220 CALL_TERMINATION_CODE_OTHER = 9; 221 222 // Disconnected because the connection manager did not support the call. 223 // The call will be tried again without a connection manager. 224 CONNECTION_MANAGER_NOT_SUPPORTED = 10; 225 } 226 227 // Start time of the connection. 228 // Rounded to the nearest 5 minute interval. 229 optional int64 start_time_5min = 1; 230 231 // Duration in millis. 232 optional int64 call_duration_millis = 2; 233 234 // Call type. 235 optional CallType type = 3; 236 237 // True if the call interrupted an in-progress call, whether it was the 238 // user dialing out during a call or an incoming call during another call. 239 optional bool is_additional_call = 4 [default = false]; 240 241 // True if the call was interrupted by another call. 242 optional bool is_interrupted = 5 [default = false]; 243 244 // A bitmask with bits corresponding to call technologies that were used 245 // during the call. The ones that we will record are CDMA, GSM, IMS, SIP, 246 // and third-party. 247 // See the com.android.server.telecom.Analytics.*_PHONE constants. 248 optional int32 call_technologies = 6; 249 250 // Indicates the call termination code. 251 optional CallTerminationCode call_termination_code = 7; 252 253 // A list of the package names of connection services used. 254 repeated string connection_service = 9; 255 256 // Set to true if the call was created from createCallForExistingConnection. 257 optional bool is_created_from_existing_connection = 10 [default = false]; 258 259 // Set to true if its an emergency call. 260 optional bool is_emergency_call = 11 [default = false]; 261 262 // A list of the events that occur during the call. 263 repeated Event call_events = 12; 264 265 // A map from the names of latency timings to the timings. 266 repeated EventTimingEntry call_timings = 13; 267 268 // Whether this call has ever been a video call 269 optional bool is_video_call = 14 [default = false]; 270 271 // A list of the video events during the call. 272 repeated VideoEvent video_events = 15; 273 274 // A list of the in-call services bound during the call. 275 repeated InCallServiceInfo in_call_services = 16; 276} 277