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