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