blob: 06dd3941a333d515b309b021db11c96828c1e9bb [file] [log] [blame]
Hall Liu2f4f0a02016-08-08 17:23:20 -07001syntax = "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
Hall Liu9d15ca42016-08-30 17:18:36 -0700152message 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
Hall Liu2f4f0a02016-08-08 17:23:20 -0700169// 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.
Hall Liu9d15ca42016-08-30 17:18:36 -0700247 // See the com.android.server.telecom.Analytics.*_PHONE constants.
Hall Liu2f4f0a02016-08-08 17:23:20 -0700248 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;
Hall Liu9d15ca42016-08-30 17:18:36 -0700273
274 // A list of the in-call services bound during the call.
275 repeated InCallServiceInfo in_call_services = 16;
Hall Liud7fe6862016-09-09 16:36:14 -0700276
277 // A bitmask of the properties that were set at any point during the call.
278 // Bits are defined by android.telecom.Connection.PROPERTY_* constants.
279 optional int32 connection_properties = 17;
Hall Liu2f4f0a02016-08-08 17:23:20 -0700280}