Home | History | Annotate | Download | only in proto
      1 syntax = "proto2";
      2 
      3 package com.android.server.telecom;
      4 
      5 option java_package = "com.android.server.telecom";
      6 option java_outer_classname = "TelecomLogClass";
      7 
      8 // The information about the telecom events.
      9 message 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 
     18 message 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 
     46 message 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 
    100 message 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 
    129 message 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 
    152 message 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.
    170 message 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   // 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;
    280 }
    281