1//
2// Copyright (C) 2016 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17syntax = "proto2";
18
19package clearcut.connectivity;
20
21option java_package = "com.android.internal.telephony";
22option java_outer_classname = "TelephonyProto";
23
24// The information about Telephony events.
25message TelephonyLog {
26
27  // Events logged by telephony services
28  repeated TelephonyEvent events = 1;
29
30  // Voice/Video call sessions
31  repeated TelephonyCallSession call_sessions = 2;
32
33  // Send/Receive SMS sessions
34  repeated SmsSession sms_sessions = 3;
35
36  // Telephony Histograms
37  repeated TelephonyHistogram histograms = 4;
38
39  // Indicating some telephony events are dropped
40  optional bool events_dropped = 5;
41
42  // The start time of this log
43  optional Time start_time = 6;
44
45  // The end time of this log
46  optional Time end_time = 7;
47
48  // Modem power stats
49  optional ModemPowerStats modem_power_stats = 8;
50
51  // Hardware revision (EVT, DVT, PVT etc.)
52  optional string hardware_revision = 9;
53
54  // The last active subscription info for each slot.
55  repeated ActiveSubscriptionInfo last_active_subscription_info = 10;
56}
57
58// The time information
59message Time {
60  // The system time in milli seconds. This represents the actual
61  // time of the events.
62  optional int64 system_timestamp_millis = 1;
63
64  // The time since boot in milli seconds.
65  // This is used for calculating the time interval between events. Different
66  // from the system time, this won't be affected by time changed by the network or users.
67  optional int64 elapsed_timestamp_millis = 2;
68}
69
70// Telephony Histogram
71message TelephonyHistogram {
72
73  // Type of histogram
74  optional int32 category = 1;
75
76  // Unique Id identifying a sample within
77  // particular category of the histogram.
78  optional int32 id = 2;
79
80  // Min time taken in millis.
81  optional int32 min_time_millis = 3;
82
83  // Max time taken in millis.
84  optional int32 max_time_millis = 4;
85
86  // Average time taken in millis.
87  optional int32 avg_time_millis = 5;
88
89  // Total count of histogram samples.
90  optional int32 count = 6;
91
92  // Total number of time ranges expected
93  // (must be greater than 1).
94  optional int32 bucket_count = 7;
95
96  // Array storing endpoints of range buckets.
97  repeated int32 bucket_end_points = 8;
98
99  // Array storing counts for each time range
100  // starting from smallest value range.
101  repeated int32 bucket_counters = 9;
102}
103
104// Telephony related user settings
105message TelephonySettings {
106
107  // NETWORK_MODE_* See ril.h PREF_NET_TYPE_XXXX
108  enum RilNetworkMode {
109
110    // Mode is unknown.
111    NETWORK_MODE_UNKNOWN = 0;
112
113    // GSM/WCDMA (WCDMA preferred). Note the following values are all off by 1.
114    NETWORK_MODE_WCDMA_PREF = 1;
115
116    // GSM only
117    NETWORK_MODE_GSM_ONLY = 2;
118
119    // WCDMA only
120    NETWORK_MODE_WCDMA_ONLY = 3;
121
122    // GSM/WCDMA (auto mode, according to PRL)
123    NETWORK_MODE_GSM_UMTS = 4;
124
125    // CDMA and EvDo (auto mode, according to PRL)
126    NETWORK_MODE_CDMA = 5;
127
128    // CDMA only
129    NETWORK_MODE_CDMA_NO_EVDO = 6;
130
131    // EvDo only
132    NETWORK_MODE_EVDO_NO_CDMA = 7;
133
134    // GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL)
135    NETWORK_MODE_GLOBAL = 8;
136
137    // LTE, CDMA and EvDo
138    NETWORK_MODE_LTE_CDMA_EVDO = 9;
139
140    // LTE, GSM/WCDMA
141    NETWORK_MODE_LTE_GSM_WCDMA = 10;
142
143    // LTE, CDMA, EvDo, GSM/WCDMA
144    NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = 11;
145
146    // LTE Only mode
147    NETWORK_MODE_LTE_ONLY = 12;
148
149    // LTE/WCDMA
150    NETWORK_MODE_LTE_WCDMA = 13;
151
152    // TD-SCDMA only
153    NETWORK_MODE_TDSCDMA_ONLY = 14;
154
155    // TD-SCDMA and WCDMA
156    NETWORK_MODE_TDSCDMA_WCDMA = 15;
157
158    // TD-SCDMA and LTE
159    NETWORK_MODE_LTE_TDSCDMA = 16;
160
161    // TD-SCDMA and GSM
162    NETWORK_MODE_TDSCDMA_GSM = 17;
163
164    // TD-SCDMA,GSM and LTE
165    NETWORK_MODE_LTE_TDSCDMA_GSM = 18;
166
167    // TD-SCDMA, GSM/WCDMA
168    NETWORK_MODE_TDSCDMA_GSM_WCDMA = 19;
169
170    // TD-SCDMA, WCDMA and LTE
171    NETWORK_MODE_LTE_TDSCDMA_WCDMA = 20;
172
173    // TD-SCDMA, GSM/WCDMA and LTE
174    NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA = 21;
175
176    // TD-SCDMA,EvDo,CDMA,GSM/WCDMA
177    NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 22;
178
179    // TD-SCDMA/LTE/GSM/WCDMA, CDMA, and EvDo
180    NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 23;
181  }
182
183  // Constants for WiFi Calling mode
184  enum WiFiCallingMode {
185
186    // Calling mode is unknown.
187    WFC_MODE_UNKNOWN = 0;
188
189    WFC_MODE_WIFI_ONLY = 1;
190
191    WFC_MODE_CELLULAR_PREFERRED = 2;
192
193    WFC_MODE_WIFI_PREFERRED = 3;
194  }
195
196  // If the device is in airplane mode.
197  optional bool is_airplane_mode = 1;
198
199  // If cell-data has been enabled.
200  optional bool is_cellular_data_enabled = 2;
201
202  // If cell-roaming has been enabled.
203  optional bool is_data_roaming_enabled = 3;
204
205  // Preferred network mode.
206  optional RilNetworkMode preferred_network_mode = 4;
207
208  // If enhanced mode enabled.
209  optional bool is_enhanced_4g_lte_mode_enabled = 5;
210
211  // If wifi has been enabled.
212  optional bool is_wifi_enabled = 6;
213
214  // If wifi-calling has been enabled.
215  optional bool is_wifi_calling_enabled = 7;
216
217  // Wifi-calling Mode.
218  optional WiFiCallingMode wifi_calling_mode = 8;
219
220  // If video over LTE enabled.
221  optional bool is_vt_over_lte_enabled = 9;
222
223  // If video over wifi enabled.
224  optional bool is_vt_over_wifi_enabled = 10;
225}
226
227// Contains phone state and service related information.
228message TelephonyServiceState {
229
230  // The information about cellular network operator
231  message TelephonyOperator {
232
233    // Name in long alphanumeric format
234    optional string alpha_long = 1;
235
236    // Name in short alphanumeric format
237    optional string alpha_short = 2;
238
239    // Numeric id.
240    // In GSM/UMTS, numeric format is 3 digit country code plus 2 or 3 digit
241    // network code. Same as MCC/MNC.
242    optional string numeric = 3;
243  }
244
245  // Roaming type
246  enum RoamingType {
247
248    // Unknown. The default value. Different from ROAMING_TYPE_UNKNOWN.
249    UNKNOWN = -1;
250
251    // In home network
252    ROAMING_TYPE_NOT_ROAMING = 0;
253
254    // In a roaming network, but we can not tell
255    // if it's domestic or international
256    ROAMING_TYPE_UNKNOWN = 1;
257
258    // In domestic roaming network
259    ROAMING_TYPE_DOMESTIC = 2;
260
261    // In international roaming network
262    ROAMING_TYPE_INTERNATIONAL = 3;
263  }
264
265  // Current registered operator
266  optional TelephonyOperator voice_operator = 1;
267
268  // Current registered data network operator
269  optional TelephonyOperator data_operator = 2;
270
271  // Current voice network roaming type
272  optional RoamingType voice_roaming_type = 3 [default = UNKNOWN];
273
274  // Current data network roaming type
275  optional RoamingType data_roaming_type = 4 [default = UNKNOWN];
276
277  // Current voice radio technology
278  optional RadioAccessTechnology voice_rat = 5 [default = UNKNOWN];
279
280  // Current data radio technology
281  optional RadioAccessTechnology data_rat = 6 [default = UNKNOWN];
282
283  // Current Channel Number
284  optional int32 channel_number = 7;
285}
286
287// Radio access families
288enum RadioAccessTechnology {
289
290  // This is the default value. Different from RAT_UNKNOWN.
291  UNKNOWN = -1;
292
293  // Airplane mode, out of service, or when the modem cannot determine
294  // the RAT.
295  RAT_UNKNOWN = 0;
296
297  RAT_GPRS = 1;
298
299  RAT_EDGE = 2;
300
301  RAT_UMTS = 3;
302
303  RAT_IS95A = 4;
304
305  RAT_IS95B = 5;
306
307  RAT_1XRTT = 6;
308
309  RAT_EVDO_0 = 7;
310
311  RAT_EVDO_A = 8;
312
313  RAT_HSDPA = 9;
314
315  RAT_HSUPA = 10;
316
317  RAT_HSPA = 11;
318
319  RAT_EVDO_B = 12;
320
321  RAT_EHRPD = 13;
322
323  RAT_LTE = 14;
324
325  RAT_HSPAP = 15;
326
327  RAT_GSM = 16;
328
329  RAT_TD_SCDMA = 17;
330
331  RAT_IWLAN = 18;
332
333  RAT_LTE_CA = 19;
334}
335
336// The information about IMS errors
337// https://cs.corp.google.com/#android/frameworks/base/telephony/java/com/android/ims/ImsReasonInfo.java
338message ImsReasonInfo {
339
340  // Main reason code.
341  optional int32 reason_code = 1;
342
343  // Extra code value; it depends on the code value.
344  optional int32 extra_code = 2;
345
346  // Additional message of the reason info. We get this from the modem.
347  optional string extra_message = 3;
348}
349
350// The information about state connection between IMS service and IMS server
351message ImsConnectionState {
352
353  // Current state
354  optional State state = 1;
355
356  // If DISCONNECTED then this field may have additional information about
357  // connection problem.
358  optional ImsReasonInfo reason_info = 2;
359
360  // Posible states
361  enum State {
362
363    // State is unknown.
364    STATE_UNKNOWN = 0;
365
366    CONNECTED = 1;
367
368    PROGRESSING = 2;
369
370    DISCONNECTED = 3;
371
372    RESUMED = 4;
373
374    SUSPENDED = 5;
375  }
376}
377
378// The information about current capabilities of IMS service
379message ImsCapabilities {
380
381  optional bool voice_over_lte = 1;
382
383  optional bool voice_over_wifi = 2;
384
385  optional bool video_over_lte = 3;
386
387  optional bool video_over_wifi = 4;
388
389  optional bool ut_over_lte = 5;
390
391  optional bool ut_over_wifi = 6;
392}
393
394// Errors returned by RIL
395enum RilErrno {
396
397  // type is unknown.
398  RIL_E_UNKNOWN = 0;
399
400  // Note the following values are all off by 1.
401  RIL_E_SUCCESS = 1;
402
403  // If radio did not start or is resetting
404  RIL_E_RADIO_NOT_AVAILABLE = 2;
405
406  RIL_E_GENERIC_FAILURE = 3;
407
408  // for PIN/PIN2 methods only!
409  RIL_E_PASSWORD_INCORRECT = 4;
410
411  // Operation requires SIM PIN2 to be entered
412  RIL_E_SIM_PIN2 = 5;
413
414  // Operation requires SIM PIN2 to be entered
415  RIL_E_SIM_PUK2 = 6;
416
417  RIL_E_REQUEST_NOT_SUPPORTED = 7;
418
419  RIL_E_CANCELLED = 8;
420
421  // data ops are not allowed during voice call on a Class C GPRS device
422  RIL_E_OP_NOT_ALLOWED_DURING_VOICE_CALL = 9;
423
424  // data ops are not allowed before device registers in network
425  RIL_E_OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 10;
426
427  // fail to send sms and need retry
428  RIL_E_SMS_SEND_FAIL_RETRY = 11;
429
430  // fail to set the location where CDMA subscription shall be retrieved
431  // because of SIM or RUIM card absent
432  RIL_E_SIM_ABSENT = 12;
433
434  // fail to find CDMA subscription from specified location
435  RIL_E_SUBSCRIPTION_NOT_AVAILABLE = 13;
436
437  // HW does not support preferred network type
438  RIL_E_MODE_NOT_SUPPORTED = 14;
439
440  // command failed because recipient is not on FDN list
441  RIL_E_FDN_CHECK_FAILURE = 15;
442
443  // network selection failed due to illegal SIM or ME
444  RIL_E_ILLEGAL_SIM_OR_ME = 16;
445
446  // no logical channel available
447  RIL_E_MISSING_RESOURCE = 17;
448
449  // application not found on SIM
450  RIL_E_NO_SUCH_ELEMENT = 18;
451
452  // DIAL request modified to USSD
453  RIL_E_DIAL_MODIFIED_TO_USSD = 19;
454
455  // DIAL request modified to SS
456  RIL_E_DIAL_MODIFIED_TO_SS = 20;
457
458  // DIAL request modified to DIAL with different data
459  RIL_E_DIAL_MODIFIED_TO_DIAL = 21;
460
461  // USSD request modified to DIAL
462  RIL_E_USSD_MODIFIED_TO_DIAL = 22;
463
464  // USSD request modified to SS
465  RIL_E_USSD_MODIFIED_TO_SS = 23;
466
467  // USSD request modified to different USSD request
468  RIL_E_USSD_MODIFIED_TO_USSD = 24;
469
470  // SS request modified to DIAL
471  RIL_E_SS_MODIFIED_TO_DIAL = 25;
472
473  // SS request modified to USSD
474  RIL_E_SS_MODIFIED_TO_USSD = 26;
475
476  // Subscription not supported by RIL
477  RIL_E_SUBSCRIPTION_NOT_SUPPORTED = 27;
478
479  // SS request modified to different SS request
480  RIL_E_SS_MODIFIED_TO_SS = 28;
481
482  // LCE service not supported(36 in RILConstants.java. This is a mistake.
483  // The value should be off by 1 ideally.)
484  RIL_E_LCE_NOT_SUPPORTED = 36 [deprecated=true];
485
486  // LCE service not supported
487  RIL_E_LCE_NOT_SUPPORTED_NEW = 37;
488
489  // Not sufficient memory to process the request
490  RIL_E_NO_MEMORY = 38;
491
492  // Modem hit unexpected error scenario while handling this request
493  RIL_E_INTERNAL_ERR = 39;
494
495  // Hit platform or system error
496  RIL_E_SYSTEM_ERR = 40;
497
498  // Vendor RIL got unexpected or incorrect response from modem for this request
499  RIL_E_MODEM_ERR = 41;
500
501  // Unexpected request for the current state
502  RIL_E_INVALID_STATE = 42;
503
504  // Not sufficient resource to process the request
505  RIL_E_NO_RESOURCES = 43;
506
507  // Received error from SIM card
508  RIL_E_SIM_ERR = 44;
509
510  // Received invalid arguments in request
511  RIL_E_INVALID_ARGUMENTS = 45;
512
513  // Cannot process the request in current SIM state
514  RIL_E_INVALID_SIM_STATE = 46;
515
516  // Cannot process the request in current Modem state
517  RIL_E_INVALID_MODEM_STATE = 47;
518
519  // Received invalid call id in request
520  RIL_E_INVALID_CALL_ID = 48;
521
522  // ACK received when there is no SMS to ack
523  RIL_E_NO_SMS_TO_ACK = 49;
524
525  // Received error from network
526  RIL_E_NETWORK_ERR = 50;
527
528  // Operation denied due to overly-frequent requests
529  RIL_E_REQUEST_RATE_LIMITED = 51;
530
531  // SIM is busy
532  RIL_E_SIM_BUSY = 52;
533
534  // The target EF is full
535  RIL_E_SIM_FULL = 53;
536
537  // Request is rejected by network
538  RIL_E_NETWORK_REJECT = 54;
539
540  // Not allowed the request now
541  RIL_E_OPERATION_NOT_ALLOWED = 55;
542
543  // The request record is empty
544  RIL_E_EMPTY_RECORD = 56;
545
546  // Invalid sms format
547  RIL_E_INVALID_SMS_FORMAT = 57;
548
549  // Message not encoded properly
550  RIL_E_ENCODING_ERR = 58;
551
552  // SMSC address specified is invalid
553  RIL_E_INVALID_SMSC_ADDRESS = 59;
554
555  // No such entry present to perform the request
556  RIL_E_NO_SUCH_ENTRY = 60;
557
558  // Network is not ready to perform the request
559  RIL_E_NETWORK_NOT_READY = 61;
560
561  // Device does not have this value provisioned
562  RIL_E_NOT_PROVISIONED = 62;
563
564  // Device does not have subscription
565  RIL_E_NO_SUBSCRIPTION = 63;
566
567  // Network cannot be found
568  RIL_E_NO_NETWORK_FOUND = 64;
569
570  // Operation cannot be performed because the device is currently in use
571  RIL_E_DEVICE_IN_USE = 65;
572
573  // Operation aborted
574  RIL_E_ABORTED = 66;
575
576  // Invalid response sent by vendor code
577  RIL_E_INVALID_RESPONSE = 67;
578}
579
580// Errors returned by ImsService
581enum ImsServiceErrno {
582
583  // The operation error is unknown
584  IMS_E_UNKNOWN = 0;
585  // The operation has succeeded
586  IMS_E_SUCCESS = 1;
587  // Sending SMS over IMS failed. Do not retry over IMS again or fallback to CS.
588  IMS_E_SMS_SEND_STATUS_ERROR = 2;
589  // Sending SMS over IMS failed. Retry over IMS again.
590  IMS_E_SMS_SEND_STATUS_ERROR_RETRY = 3;
591  // Sending SMS over IMS failed. Fallback to sending the SMS over CS.
592  IMS_E_SMS_SEND_STATUS_ERROR_FALLBACK = 4;
593}
594
595// PDP_type values in TS 27.007 section 10.1.1.
596enum PdpType {
597
598  // type is unknown.
599  PDP_UNKNOWN = 0;
600
601  PDP_TYPE_IP = 1;
602
603  PDP_TYPE_IPV6 = 2;
604
605  PDP_TYPE_IPV4V6 = 3;
606
607  PDP_TYPE_PPP = 4;
608
609  PDP_TYPE_NON_IP = 5;
610
611  PDP_TYPE_UNSTRUCTURED = 6;
612}
613
614// The information about packet data connection
615message RilDataCall {
616
617  // Context ID, uniquely identifies this call
618  optional int32 cid = 1;
619
620  // One of the PDP_type values in TS 27.007 section 10.1.1
621  optional PdpType type = 2;
622
623  // The network interface name e.g. wlan0, rmnet_data0.
624  optional string iframe = 3;
625
626  // State of the Data Call connection
627  optional State state = 4;
628
629  // Bitmask of APN types
630  optional int32 apn_type_bitmask = 5;
631
632  enum State {
633
634    // Unknown event
635    UNKNOWN = 0;
636
637    // Connected event
638    CONNECTED = 1;
639
640    // Disconnected event
641    DISCONNECTED = 2;
642  }
643}
644
645message EmergencyNumberInfo {
646  // Dialing address
647  optional string address = 1 /* [
648    (datapol.semantic_type) = ST_PHONE_NUMBER,
649    (datapol.qualifier) = {is_public: true}
650  ] */;
651
652  // Country code string (lowercase character) in ISO 3166 format
653  optional string country_iso = 2 /* [(datapol.semantic_type) = ST_LOCATION] */;
654
655  // Mobile Network Code
656  optional string mnc = 3 /* [(datapol.semantic_type) = ST_LOCATION] */;
657
658  // Bitmask of emergency service categories
659  optional int32 service_categories_bitmask = 4;
660
661  // Emergency Uniform Resources Names (URN)
662  // Reference: https://tools.ietf.org/html/rfc5031
663  repeated string urns = 5;
664
665  // Bitmask of the sources
666  optional int32 number_sources_bitmask = 6;
667
668  // Emergency call routing information.
669  // Emergency call routing is a flag to tell how modem handles the calling with
670  // emergency numbers. For example, 110 in India, modem needs to handle/route
671  // it like a normal call. There are only two possible options for emergency
672  // call routing: emergency call routing vs normal call routing. It is usually
673  // a country or carrier requirement.
674  optional int32 routing = 7;
675}
676
677message TelephonyEvent {
678
679  enum Type {
680
681    // Unknown event
682    UNKNOWN = 0;
683
684    // Telephony related user settings changed
685    SETTINGS_CHANGED = 1;
686
687    // Phone state changed
688    RIL_SERVICE_STATE_CHANGED = 2;
689
690    // IMS connected/disconnected
691    IMS_CONNECTION_STATE_CHANGED = 3;
692
693    // IMS Voice, Video and Ut capabilities changed
694    IMS_CAPABILITIES_CHANGED = 4;
695
696    // Setup a packet data connection
697    DATA_CALL_SETUP = 5;
698
699    // RIL request result
700    DATA_CALL_SETUP_RESPONSE = 6;
701
702    // Notification that new data call has appeared in the list
703    // or old data call has removed.
704    DATA_CALL_LIST_CHANGED = 7;
705
706    // Deactivate packet data connection
707    DATA_CALL_DEACTIVATE = 8;
708
709    // RIL request result
710    DATA_CALL_DEACTIVATE_RESPONSE = 9;
711
712    // Logging a data stall + its action
713    DATA_STALL_ACTION = 10;
714
715    // Modem Restarted. Logging a baseband version and reason for restart
716    // along with the event if it is available
717    MODEM_RESTART = 11;
718
719    // System time overwritten by NITZ (Network time)
720    NITZ_TIME = 12;
721
722    // Carrier Identification Matching Event
723    CARRIER_ID_MATCHING = 13;
724
725    // Carrier Key Change event.
726    CARRIER_KEY_CHANGED = 14;
727
728    // Data switch event.
729    DATA_SWITCH = 15;
730
731    // Network validate event.
732    NETWORK_VALIDATE = 16;
733
734    // On deman data switch event.
735    ON_DEMAND_DATA_SWITCH = 17;
736
737    // SIM state change event.
738    SIM_STATE_CHANGED = 18;
739
740    // Active subscription info change event.
741    ACTIVE_SUBSCRIPTION_INFO_CHANGED = 19;
742
743    // Enabled modem change event.
744    ENABLED_MODEM_CHANGED = 20;
745
746    // Emergency Number update event (Device HAL >= 1.4).
747    EMERGENCY_NUMBER_REPORT = 21;
748  }
749
750  enum ApnType {
751    APN_TYPE_UNKNOWN = 0;
752
753    APN_TYPE_DEFAULT = 1;
754
755    APN_TYPE_MMS = 2;
756
757    APN_TYPE_SUPL = 3;
758
759    APN_TYPE_DUN = 4;
760
761    APN_TYPE_HIPRI = 5;
762
763    APN_TYPE_FOTA = 6;
764
765    APN_TYPE_IMS = 7;
766
767    APN_TYPE_CBS = 8;
768
769    APN_TYPE_IA = 9;
770
771    APN_TYPE_EMERGENCY = 10;
772  }
773
774  enum EventState {
775    EVENT_STATE_UNKNOWN = 0;
776
777    EVENT_STATE_START = 1;
778
779    EVENT_STATE_END = 2;
780  }
781
782  enum NetworkValidationState {
783    /** The network validation state is unknown. */
784    NETWORK_VALIDATION_STATE_UNKNOWN = 0;
785
786    /** The network under validation is initial established. */
787    NETWORK_VALIDATION_STATE_AVAILABLE = 1;
788
789    /** The validation is failed. */
790    NETWORK_VALIDATION_STATE_FAILED = 2;
791
792    /** The validation is passed. */
793    NETWORK_VALIDATION_STATE_PASSED = 3;
794  }
795
796  message DataSwitch {
797    enum Reason {
798      /** Data switch caused by unknown reason. */
799      DATA_SWITCH_REASON_UNKNOWN = 0;
800
801      /** Data switch caused by user's manual switch. */
802      DATA_SWITCH_REASON_MANUAL = 1;
803
804      /** Data switch caused by incoming/outgoing call. */
805      DATA_SWITCH_REASON_IN_CALL = 2;
806
807      /** Data switch caused by CBRS switch. */
808      DATA_SWITCH_REASON_CBRS = 3;
809    }
810
811    /** The reason for data switch. */
812    optional Reason reason = 1;
813
814    /** Current state of the data switch event. */
815    optional EventState state = 2;
816  }
817
818  message OnDemandDataSwitch {
819    /** The apn associated with this event. */
820    optional ApnType apn = 1;
821
822    /** Current state of the on demand data switch event. */
823    optional EventState state = 2;
824  }
825
826  // Setup a packet data connection
827  message RilSetupDataCall {
828
829    // See ril.h RIL_REQUEST_SETUP_DATA_CALL
830    enum RilDataProfile {
831
832      // type is unknown.
833      RIL_DATA_UNKNOWN = 0;
834
835      RIL_DATA_PROFILE_DEFAULT = 1;
836
837      RIL_DATA_PROFILE_TETHERED = 2;
838
839      RIL_DATA_PROFILE_IMS = 3;
840
841      RIL_DATA_PROFILE_FOTA = 4;
842
843      RIL_DATA_PROFILE_CBS = 5;
844
845      RIL_DATA_PROFILE_OEM_BASE = 6;
846
847      RIL_DATA_PROFILE_INVALID = 7;
848    }
849
850    // Radio technology to use
851    optional RadioAccessTechnology rat = 1 [default = UNKNOWN];
852
853    // optional RIL_DataProfile
854    optional RilDataProfile data_profile = 2;
855
856    // APN to connect to if radio technology is GSM/UMTS
857    optional string apn = 3;
858
859    // the connection type to request
860    optional PdpType type = 4;
861  }
862
863  // RIL response to RilSetupDataCall
864  message RilSetupDataCallResponse {
865
866    // Copy of enum RIL_DataCallFailCause defined at ril.h
867    enum RilDataCallFailCause {
868
869      // Failure reason is unknown.
870      PDP_FAIL_UNKNOWN = 0;
871
872      // No error, connection ok
873      PDP_FAIL_NONE = 1;
874
875      PDP_FAIL_OPERATOR_BARRED = 8;
876
877      PDP_FAIL_NAS_SIGNALLING = 14;
878
879      PDP_FAIL_LLC_SNDCP = 25;
880
881      PDP_FAIL_INSUFFICIENT_RESOURCES = 26;
882
883      PDP_FAIL_MISSING_UKNOWN_APN = 27;
884
885      PDP_FAIL_UNKNOWN_PDP_ADDRESS_TYPE = 28;
886
887      PDP_FAIL_USER_AUTHENTICATION = 29;
888
889      PDP_FAIL_ACTIVATION_REJECT_GGSN = 30;
890
891      PDP_FAIL_ACTIVATION_REJECT_UNSPECIFIED = 31;
892
893      PDP_FAIL_SERVICE_OPTION_NOT_SUPPORTED = 32;
894
895      PDP_FAIL_SERVICE_OPTION_NOT_SUBSCRIBED = 33;
896
897      PDP_FAIL_SERVICE_OPTION_OUT_OF_ORDER = 34;
898
899      PDP_FAIL_NSAPI_IN_USE = 35;
900
901      // Possibly restart radio, based on framework config
902      PDP_FAIL_REGULAR_DEACTIVATION = 36;
903
904      PDP_FAIL_QOS_NOT_ACCEPTED = 37;
905
906      PDP_FAIL_NETWORK_FAILURE = 38;
907
908      PDP_FAIL_UMTS_REACTIVATION_REQ = 39;
909
910      PDP_FAIL_FEATURE_NOT_SUPP = 40;
911
912      PDP_FAIL_TFT_SEMANTIC_ERROR = 41;
913
914      PDP_FAIL_TFT_SYTAX_ERROR = 42;
915
916      PDP_FAIL_UNKNOWN_PDP_CONTEXT = 43;
917
918      PDP_FAIL_FILTER_SEMANTIC_ERROR = 44;
919
920      PDP_FAIL_FILTER_SYTAX_ERROR = 45;
921
922      PDP_FAIL_PDP_WITHOUT_ACTIVE_TFT = 46;
923
924      PDP_FAIL_ACTIVATION_REJECTED_BCM_VIOLATION = 48;
925
926      PDP_FAIL_ONLY_IPV4_ALLOWED = 50;
927
928      PDP_FAIL_ONLY_IPV6_ALLOWED = 51;
929
930      PDP_FAIL_ONLY_SINGLE_BEARER_ALLOWED = 52;
931
932      PDP_FAIL_ESM_INFO_NOT_RECEIVED = 53;
933
934      PDP_FAIL_PDN_CONN_DOES_NOT_EXIST = 54;
935
936      PDP_FAIL_MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 55;
937
938      PDP_FAIL_COLLISION_WITH_NETWORK_INITIATED_REQUEST = 56;
939
940      PDP_FAIL_ONLY_IPV4V6_ALLOWED = 57;
941
942      PDP_FAIL_ONLY_NON_IP_ALLOWED = 58;
943
944      PDP_FAIL_UNSUPPORTED_QCI_VALUE = 59;
945
946      PDP_FAIL_BEARER_HANDLING_NOT_SUPPORTED = 60;
947
948      PDP_FAIL_MAX_ACTIVE_PDP_CONTEXT_REACHED = 65;
949
950      PDP_FAIL_UNSUPPORTED_APN_IN_CURRENT_PLMN = 66;
951
952      PDP_FAIL_INVALID_TRANSACTION_ID = 81;
953
954      PDP_FAIL_MESSAGE_INCORRECT_SEMANTIC = 95;
955
956      PDP_FAIL_INVALID_MANDATORY_INFO = 96;
957
958      PDP_FAIL_MESSAGE_TYPE_UNSUPPORTED = 97;
959
960      PDP_FAIL_MSG_TYPE_NONCOMPATIBLE_STATE = 98;
961
962      PDP_FAIL_UNKNOWN_INFO_ELEMENT = 99;
963
964      PDP_FAIL_CONDITIONAL_IE_ERROR = 100;
965
966      PDP_FAIL_MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 101;
967
968      PDP_FAIL_PROTOCOL_ERRORS   = 111;
969
970      PDP_FAIL_APN_TYPE_CONFLICT = 112;
971
972      PDP_FAIL_INVALID_PCSCF_ADDR = 113;
973
974      PDP_FAIL_INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 114;
975
976      PDP_FAIL_EMM_ACCESS_BARRED = 115;
977
978      PDP_FAIL_EMERGENCY_IFACE_ONLY = 116;
979
980      PDP_FAIL_IFACE_MISMATCH = 117;
981
982      PDP_FAIL_COMPANION_IFACE_IN_USE = 118;
983
984      PDP_FAIL_IP_ADDRESS_MISMATCH = 119;
985
986      PDP_FAIL_IFACE_AND_POL_FAMILY_MISMATCH = 120;
987
988      PDP_FAIL_EMM_ACCESS_BARRED_INFINITE_RETRY = 121;
989
990      PDP_FAIL_AUTH_FAILURE_ON_EMERGENCY_CALL = 122;
991
992      PDP_FAIL_INVALID_DNS_ADDR = 123;
993
994      PDP_FAIL_INVALID_PCSCF_OR_DNS_ADDRESS = 124;
995
996      PDP_FAIL_CALL_PREEMPT_BY_EMERGENCY_APN = 127;
997
998      PDP_FAIL_UE_INITIATED_DETACH_OR_DISCONNECT = 128;
999
1000      PDP_FAIL_MIP_FA_REASON_UNSPECIFIED = 2000;
1001
1002      PDP_FAIL_MIP_FA_ADMIN_PROHIBITED = 2001;
1003
1004      PDP_FAIL_MIP_FA_INSUFFICIENT_RESOURCES = 2002;
1005
1006      PDP_FAIL_MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2003;
1007
1008      PDP_FAIL_MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 2004;
1009
1010      PDP_FAIL_MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 2005;
1011
1012      PDP_FAIL_MIP_FA_MALFORMED_REQUEST = 2006;
1013
1014      PDP_FAIL_MIP_FA_MALFORMED_REPLY = 2007;
1015
1016      PDP_FAIL_MIP_FA_ENCAPSULATION_UNAVAILABLE = 2008;
1017
1018      PDP_FAIL_MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 2009;
1019
1020      PDP_FAIL_MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 2010;
1021
1022      PDP_FAIL_MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 2011;
1023
1024      PDP_FAIL_MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 2012;
1025
1026      PDP_FAIL_MIP_FA_MISSING_NAI = 2013;
1027
1028      PDP_FAIL_MIP_FA_MISSING_HOME_AGENT = 2014;
1029
1030      PDP_FAIL_MIP_FA_MISSING_HOME_ADDRESS = 2015;
1031
1032      PDP_FAIL_MIP_FA_UNKNOWN_CHALLENGE = 2016;
1033
1034      PDP_FAIL_MIP_FA_MISSING_CHALLENGE = 2017;
1035
1036      PDP_FAIL_MIP_FA_STALE_CHALLENGE = 2018;
1037
1038      PDP_FAIL_MIP_HA_REASON_UNSPECIFIED = 2019;
1039
1040      PDP_FAIL_MIP_HA_ADMIN_PROHIBITED = 2020;
1041
1042      PDP_FAIL_MIP_HA_INSUFFICIENT_RESOURCES = 2021;
1043
1044      PDP_FAIL_MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2022;
1045
1046      PDP_FAIL_MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 2023;
1047
1048      PDP_FAIL_MIP_HA_REGISTRATION_ID_MISMATCH = 2024;
1049
1050      PDP_FAIL_MIP_HA_MALFORMED_REQUEST = 2025;
1051
1052      PDP_FAIL_MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 2026;
1053
1054      PDP_FAIL_MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 2027;
1055
1056      PDP_FAIL_MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 2028;
1057
1058      PDP_FAIL_MIP_HA_ENCAPSULATION_UNAVAILABLE = 2029;
1059
1060      PDP_FAIL_CLOSE_IN_PROGRESS = 2030;
1061
1062      PDP_FAIL_NETWORK_INITIATED_TERMINATION = 2031;
1063
1064      PDP_FAIL_MODEM_APP_PREEMPTED = 2032;
1065
1066      PDP_FAIL_PDN_IPV4_CALL_DISALLOWED = 2033;
1067
1068      PDP_FAIL_PDN_IPV4_CALL_THROTTLED = 2034;
1069
1070      PDP_FAIL_PDN_IPV6_CALL_DISALLOWED = 2035;
1071
1072      PDP_FAIL_PDN_IPV6_CALL_THROTTLED = 2036;
1073
1074      PDP_FAIL_MODEM_RESTART = 2037;
1075
1076      PDP_FAIL_PDP_PPP_NOT_SUPPORTED = 2038;
1077
1078      PDP_FAIL_UNPREFERRED_RAT = 2039;
1079
1080      PDP_FAIL_PHYSICAL_LINK_CLOSE_IN_PROGRESS = 2040;
1081
1082      PDP_FAIL_APN_PENDING_HANDOVER = 2041;
1083
1084      PDP_FAIL_PROFILE_BEARER_INCOMPATIBLE = 2042;
1085
1086      PDP_FAIL_SIM_CARD_CHANGED = 2043;
1087
1088      PDP_FAIL_LOW_POWER_MODE_OR_POWERING_DOWN = 2044;
1089
1090      PDP_FAIL_APN_DISABLED = 2045;
1091
1092      PDP_FAIL_MAX_PPP_INACTIVITY_TIMER_EXPIRED = 2046;
1093
1094      PDP_FAIL_IPV6_ADDRESS_TRANSFER_FAILED = 2047;
1095
1096      PDP_FAIL_TRAT_SWAP_FAILED = 2048;
1097
1098      PDP_FAIL_EHRPD_TO_HRPD_FALLBACK = 2049;
1099
1100      PDP_FAIL_MIP_CONFIG_FAILURE = 2050;
1101
1102      PDP_FAIL_PDN_INACTIVITY_TIMER_EXPIRED = 2051;
1103
1104      PDP_FAIL_MAX_IPV4_CONNECTIONS = 2052;
1105
1106      PDP_FAIL_MAX_IPV6_CONNECTIONS = 2053;
1107
1108      PDP_FAIL_APN_MISMATCH = 2054;
1109
1110      PDP_FAIL_IP_VERSION_MISMATCH = 2055;
1111
1112      PDP_FAIL_DUN_CALL_DISALLOWED = 2056;
1113
1114      PDP_FAIL_INTERNAL_EPC_NONEPC_TRANSITION = 2057;
1115
1116      PDP_FAIL_INTERFACE_IN_USE = 2058;
1117
1118      PDP_FAIL_APN_DISALLOWED_ON_ROAMING = 2059;
1119
1120      PDP_FAIL_APN_PARAMETERS_CHANGED = 2060;
1121
1122      PDP_FAIL_NULL_APN_DISALLOWED = 2061;
1123
1124      PDP_FAIL_THERMAL_MITIGATION = 2062;
1125
1126      PDP_FAIL_DATA_SETTINGS_DISABLED = 2063;
1127
1128      PDP_FAIL_DATA_ROAMING_SETTINGS_DISABLED = 2064;
1129
1130      PDP_FAIL_DDS_SWITCHED = 2065;
1131
1132      PDP_FAIL_FORBIDDEN_APN_NAME = 2066;
1133
1134      PDP_FAIL_DDS_SWITCH_IN_PROGRESS = 2067;
1135
1136      PDP_FAIL_CALL_DISALLOWED_IN_ROAMING = 2068;
1137
1138      PDP_FAIL_NON_IP_NOT_SUPPORTED = 2069;
1139
1140      PDP_FAIL_PDN_NON_IP_CALL_THROTTLED = 2070;
1141
1142      PDP_FAIL_PDN_NON_IP_CALL_DISALLOWED = 2071;
1143
1144      PDP_FAIL_CDMA_LOCK = 2072;
1145
1146      PDP_FAIL_CDMA_INTERCEPT = 2073;
1147
1148      PDP_FAIL_CDMA_REORDER = 2074;
1149
1150      PDP_FAIL_CDMA_RELEASE_DUE_TO_SO_REJECTION = 2075;
1151
1152      PDP_FAIL_CDMA_INCOMING_CALL = 2076;
1153
1154      PDP_FAIL_CDMA_ALERT_STOP = 2077;
1155
1156      PDP_FAIL_CHANNEL_ACQUISITION_FAILURE = 2078;
1157
1158      PDP_FAIL_MAX_ACCESS_PROBE = 2079;
1159
1160      PDP_FAIL_CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 2080;
1161
1162      PDP_FAIL_NO_RESPONSE_FROM_BASE_STATION = 2081;
1163
1164      PDP_FAIL_REJECTED_BY_BASE_STATION = 2082;
1165
1166      PDP_FAIL_CONCURRENT_SERVICES_INCOMPATIBLE = 2083;
1167
1168      PDP_FAIL_NO_CDMA_SERVICE = 2084;
1169
1170      PDP_FAIL_RUIM_NOT_PRESENT = 2085;
1171
1172      PDP_FAIL_CDMA_RETRY_ORDER = 2086;
1173
1174      PDP_FAIL_ACCESS_BLOCK = 2087;
1175
1176      PDP_FAIL_ACCESS_BLOCK_ALL = 2088;
1177
1178      PDP_FAIL_IS707B_MAX_ACCESS_PROBES = 2089;
1179
1180      PDP_FAIL_THERMAL_EMERGENCY = 2090;
1181
1182      PDP_FAIL_CONCURRENT_SERVICES_NOT_ALLOWED = 2091;
1183
1184      PDP_FAIL_INCOMING_CALL_REJECTED = 2092;
1185
1186      PDP_FAIL_NO_SERVICE_ON_GATEWAY = 2093;
1187
1188      PDP_FAIL_NO_GPRS_CONTEXT = 2094;
1189
1190      PDP_FAIL_ILLEGAL_MS = 2095;
1191
1192      PDP_FAIL_ILLEGAL_ME = 2096;
1193
1194      PDP_FAIL_GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 2097;
1195
1196      PDP_FAIL_GPRS_SERVICES_NOT_ALLOWED = 2098;
1197
1198      PDP_FAIL_MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 2099;
1199
1200      PDP_FAIL_IMPLICITLY_DETACHED = 2100;
1201
1202      PDP_FAIL_PLMN_NOT_ALLOWED = 2101;
1203
1204      PDP_FAIL_LOCATION_AREA_NOT_ALLOWED = 2102;
1205
1206      PDP_FAIL_GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 2103;
1207
1208      PDP_FAIL_PDP_DUPLICATE = 2104;
1209
1210      PDP_FAIL_UE_RAT_CHANGE = 2105;
1211
1212      PDP_FAIL_CONGESTION = 2106;
1213
1214      PDP_FAIL_NO_PDP_CONTEXT_ACTIVATED = 2107;
1215
1216      PDP_FAIL_ACCESS_CLASS_DSAC_REJECTION = 2108;
1217
1218      PDP_FAIL_PDP_ACTIVATE_MAX_RETRY_FAILED = 2109;
1219
1220      PDP_FAIL_RADIO_ACCESS_BEARER_FAILURE = 2110;
1221
1222      PDP_FAIL_ESM_UNKNOWN_EPS_BEARER_CONTEXT = 2111;
1223
1224      PDP_FAIL_DRB_RELEASED_BY_RRC = 2112;
1225
1226      PDP_FAIL_CONNECTION_RELEASED = 2113;
1227
1228      PDP_FAIL_EMM_DETACHED = 2114;
1229
1230      PDP_FAIL_EMM_ATTACH_FAILED = 2115;
1231
1232      PDP_FAIL_EMM_ATTACH_STARTED = 2116;
1233
1234      PDP_FAIL_LTE_NAS_SERVICE_REQUEST_FAILED = 2117;
1235
1236      PDP_FAIL_DUPLICATE_BEARER_ID = 2118;
1237
1238      PDP_FAIL_ESM_COLLISION_SCENARIOS = 2119;
1239
1240      PDP_FAIL_ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 2120;
1241
1242      PDP_FAIL_ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 2121;
1243
1244      PDP_FAIL_ESM_BAD_OTA_MESSAGE = 2122;
1245
1246      PDP_FAIL_ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 2123;
1247
1248      PDP_FAIL_ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 2124;
1249
1250      PDP_FAIL_DS_EXPLICIT_DEACTIVATION = 2125;
1251
1252      PDP_FAIL_ESM_LOCAL_CAUSE_NONE = 2126;
1253
1254      PDP_FAIL_LTE_THROTTLING_NOT_REQUIRED = 2127;
1255
1256      PDP_FAIL_ACCESS_CONTROL_LIST_CHECK_FAILURE = 2128;
1257
1258      PDP_FAIL_SERVICE_NOT_ALLOWED_ON_PLMN = 2129;
1259
1260      PDP_FAIL_EMM_T3417_EXPIRED = 2130;
1261
1262      PDP_FAIL_EMM_T3417_EXT_EXPIRED = 2131;
1263
1264      PDP_FAIL_RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 2132;
1265
1266      PDP_FAIL_RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 2133;
1267
1268      PDP_FAIL_RRC_UPLINK_CONNECTION_RELEASE = 2134;
1269
1270      PDP_FAIL_RRC_UPLINK_RADIO_LINK_FAILURE = 2135;
1271
1272      PDP_FAIL_RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 2136;
1273
1274      PDP_FAIL_RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 2137;
1275
1276      PDP_FAIL_RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 2138;
1277
1278      PDP_FAIL_RRC_CONNECTION_ACCESS_BARRED = 2139;
1279
1280      PDP_FAIL_RRC_CONNECTION_CELL_RESELECTION = 2140;
1281
1282      PDP_FAIL_RRC_CONNECTION_CONFIG_FAILURE = 2141;
1283
1284      PDP_FAIL_RRC_CONNECTION_TIMER_EXPIRED = 2142;
1285
1286      PDP_FAIL_RRC_CONNECTION_LINK_FAILURE = 2143;
1287
1288      PDP_FAIL_RRC_CONNECTION_CELL_NOT_CAMPED = 2144;
1289
1290      PDP_FAIL_RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 2145;
1291
1292      PDP_FAIL_RRC_CONNECTION_REJECT_BY_NETWORK = 2146;
1293
1294      PDP_FAIL_RRC_CONNECTION_NORMAL_RELEASE = 2147;
1295
1296      PDP_FAIL_RRC_CONNECTION_RADIO_LINK_FAILURE = 2148;
1297
1298      PDP_FAIL_RRC_CONNECTION_REESTABLISHMENT_FAILURE = 2149;
1299
1300      PDP_FAIL_RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 2150;
1301
1302      PDP_FAIL_RRC_CONNECTION_ABORT_REQUEST = 2151;
1303
1304      PDP_FAIL_RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 2152;
1305
1306      PDP_FAIL_NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 2153;
1307
1308      PDP_FAIL_NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 2154;
1309
1310      PDP_FAIL_ESM_PROCEDURE_TIME_OUT = 2155;
1311
1312      PDP_FAIL_INVALID_CONNECTION_ID = 2156;
1313
1314      PDP_FAIL_MAXIMIUM_NSAPIS_EXCEEDED = 2157;
1315
1316      PDP_FAIL_INVALID_PRIMARY_NSAPI = 2158;
1317
1318      PDP_FAIL_CANNOT_ENCODE_OTA_MESSAGE = 2159;
1319
1320      PDP_FAIL_RADIO_ACCESS_BEARER_SETUP_FAILURE = 2160;
1321
1322      PDP_FAIL_PDP_ESTABLISH_TIMEOUT_EXPIRED = 2161;
1323
1324      PDP_FAIL_PDP_MODIFY_TIMEOUT_EXPIRED = 2162;
1325
1326      PDP_FAIL_PDP_INACTIVE_TIMEOUT_EXPIRED = 2163;
1327
1328      PDP_FAIL_PDP_LOWERLAYER_ERROR = 2164;
1329
1330      PDP_FAIL_PDP_MODIFY_COLLISION = 2165;
1331
1332      PDP_FAIL_MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 2166;
1333
1334      PDP_FAIL_NAS_REQUEST_REJECTED_BY_NETWORK = 2167;
1335
1336      PDP_FAIL_RRC_CONNECTION_INVALID_REQUEST = 2168;
1337
1338      PDP_FAIL_RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 2169;
1339
1340      PDP_FAIL_RRC_CONNECTION_RF_UNAVAILABLE = 2170;
1341
1342      PDP_FAIL_RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 2171;
1343
1344      PDP_FAIL_RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 2172;
1345
1346      PDP_FAIL_RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 2173;
1347
1348      PDP_FAIL_RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 2174;
1349
1350      PDP_FAIL_RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 2175;
1351
1352      PDP_FAIL_IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 2176;
1353
1354      PDP_FAIL_IMEI_NOT_ACCEPTED = 2177;
1355
1356      PDP_FAIL_EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 2178;
1357
1358      PDP_FAIL_EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 2179;
1359
1360      PDP_FAIL_MSC_TEMPORARILY_NOT_REACHABLE = 2180;
1361
1362      PDP_FAIL_CS_DOMAIN_NOT_AVAILABLE = 2181;
1363
1364      PDP_FAIL_ESM_FAILURE = 2182;
1365
1366      PDP_FAIL_MAC_FAILURE = 2183;
1367
1368      PDP_FAIL_SYNCHRONIZATION_FAILURE = 2184;
1369
1370      PDP_FAIL_UE_SECURITY_CAPABILITIES_MISMATCH = 2185;
1371
1372      PDP_FAIL_SECURITY_MODE_REJECTED = 2186;
1373
1374      PDP_FAIL_UNACCEPTABLE_NON_EPS_AUTHENTICATION = 2187;
1375
1376      PDP_FAIL_CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 2188;
1377
1378      PDP_FAIL_NO_EPS_BEARER_CONTEXT_ACTIVATED = 2189;
1379
1380      PDP_FAIL_INVALID_EMM_STATE = 2190;
1381
1382      PDP_FAIL_NAS_LAYER_FAILURE = 2191;
1383
1384      PDP_FAIL_MULTIPLE_PDP_CALL_NOT_ALLOWED = 2192;
1385
1386      PDP_FAIL_EMBMS_NOT_ENABLED = 2193;
1387
1388      PDP_FAIL_IRAT_HANDOVER_FAILED = 2194;
1389
1390      PDP_FAIL_EMBMS_REGULAR_DEACTIVATION = 2195;
1391
1392      PDP_FAIL_TEST_LOOPBACK_REGULAR_DEACTIVATION = 2196;
1393
1394      PDP_FAIL_LOWER_LAYER_REGISTRATION_FAILURE = 2197;
1395
1396      PDP_FAIL_DATA_PLAN_EXPIRED = 2198;
1397
1398      PDP_FAIL_UMTS_HANDOVER_TO_IWLAN = 2199;
1399
1400      PDP_FAIL_EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 2200;
1401
1402      PDP_FAIL_EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 2201;
1403
1404      PDP_FAIL_EVDO_HDR_CHANGED = 2202;
1405
1406      PDP_FAIL_EVDO_HDR_EXITED = 2203;
1407
1408      PDP_FAIL_EVDO_HDR_NO_SESSION = 2204;
1409
1410      PDP_FAIL_EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 2205;
1411
1412      PDP_FAIL_EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 2206;
1413
1414      PDP_FAIL_FAILED_TO_ACQUIRE_COLOCATED_HDR = 2207;
1415
1416      PDP_FAIL_OTASP_COMMIT_IN_PROGRESS = 2208;
1417
1418      PDP_FAIL_NO_HYBRID_HDR_SERVICE = 2209;
1419
1420      PDP_FAIL_HDR_NO_LOCK_GRANTED = 2210;
1421
1422      PDP_FAIL_DBM_OR_SMS_IN_PROGRESS = 2211;
1423
1424      PDP_FAIL_HDR_FADE = 2212;
1425
1426      PDP_FAIL_HDR_ACCESS_FAILURE = 2213;
1427
1428      PDP_FAIL_UNSUPPORTED_1X_PREV = 2214;
1429
1430      PDP_FAIL_LOCAL_END = 2215;
1431
1432      PDP_FAIL_NO_SERVICE = 2216;
1433
1434      PDP_FAIL_FADE = 2217;
1435
1436      PDP_FAIL_NORMAL_RELEASE = 2218;
1437
1438      PDP_FAIL_ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 2219;
1439
1440      PDP_FAIL_REDIRECTION_OR_HANDOFF_IN_PROGRESS = 2220;
1441
1442      PDP_FAIL_EMERGENCY_MODE = 2221;
1443
1444      PDP_FAIL_PHONE_IN_USE = 2222;
1445
1446      PDP_FAIL_INVALID_MODE = 2223;
1447
1448      PDP_FAIL_INVALID_SIM_STATE = 2224;
1449
1450      PDP_FAIL_NO_COLLOCATED_HDR = 2225;
1451
1452      PDP_FAIL_UE_IS_ENTERING_POWERSAVE_MODE = 2226;
1453
1454      PDP_FAIL_DUAL_SWITCH = 2227;
1455
1456      PDP_FAIL_PPP_TIMEOUT = 2228;
1457
1458      PDP_FAIL_PPP_AUTH_FAILURE = 2229;
1459
1460      PDP_FAIL_PPP_OPTION_MISMATCH = 2230;
1461
1462      PDP_FAIL_PPP_PAP_FAILURE = 2231;
1463
1464      PDP_FAIL_PPP_CHAP_FAILURE = 2232;
1465
1466      PDP_FAIL_PPP_CLOSE_IN_PROGRESS = 2233;
1467
1468      PDP_FAIL_LIMITED_TO_IPV4 = 2234;
1469
1470      PDP_FAIL_LIMITED_TO_IPV6 = 2235;
1471
1472      PDP_FAIL_VSNCP_TIMEOUT = 2236;
1473
1474      PDP_FAIL_VSNCP_GEN_ERROR = 2237;
1475
1476      PDP_FAIL_VSNCP_APN_UNATHORIZED = 2238;
1477
1478      PDP_FAIL_VSNCP_PDN_LIMIT_EXCEEDED = 2239;
1479
1480      PDP_FAIL_VSNCP_NO_PDN_GATEWAY_ADDRESS = 2240;
1481
1482      PDP_FAIL_VSNCP_PDN_GATEWAY_UNREACHABLE = 2241;
1483
1484      PDP_FAIL_VSNCP_PDN_GATEWAY_REJECT = 2242;
1485
1486      PDP_FAIL_VSNCP_INSUFFICIENT_PARAMETERS = 2243;
1487
1488      PDP_FAIL_VSNCP_RESOURCE_UNAVAILABLE = 2244;
1489
1490      PDP_FAIL_VSNCP_ADMINISTRATIVELY_PROHIBITED = 2245;
1491
1492      PDP_FAIL_VSNCP_PDN_ID_IN_USE = 2246;
1493
1494      PDP_FAIL_VSNCP_SUBSCRIBER_LIMITATION = 2247;
1495
1496      PDP_FAIL_VSNCP_PDN_EXISTS_FOR_THIS_APN = 2248;
1497
1498      PDP_FAIL_VSNCP_RECONNECT_NOT_ALLOWED = 2249;
1499
1500      PDP_FAIL_IPV6_PREFIX_UNAVAILABLE = 2250;
1501
1502      PDP_FAIL_HANDOFF_PREFERENCE_CHANGED = 2251;
1503
1504      // Not mentioned in the specification
1505      PDP_FAIL_VOICE_REGISTRATION_FAIL = -1;
1506
1507      PDP_FAIL_DATA_REGISTRATION_FAIL = -2;
1508
1509      // Reasons for data call drop - network/modem disconnect
1510      PDP_FAIL_SIGNAL_LOST = -3;
1511
1512      // Preferred technology has changed, should retry with parameters
1513      // appropriate for new technology
1514      PDP_FAIL_PREF_RADIO_TECH_CHANGED = -4;
1515
1516      // Data call was disconnected because radio was resetting,
1517      // powered off - no retry
1518      PDP_FAIL_RADIO_POWER_OFF = -5;
1519
1520      // Data call was disconnected by modem because tethered mode was up
1521      // on same APN/data profile - no retry until tethered call is off
1522      PDP_FAIL_TETHERED_CALL_ACTIVE = -6;
1523
1524      // retry silently
1525      PDP_FAIL_ERROR_UNSPECIFIED = 65535;
1526    }
1527
1528    // A RIL_DataCallFailCause, 0 which is PDP_FAIL_NONE if no error
1529    optional RilDataCallFailCause status = 1;
1530
1531    // If status != 0, this fields indicates the suggested retry back-off timer
1532    // value RIL wants to override the one pre-configured in FW
1533    optional int32 suggested_retry_time_millis = 2;
1534
1535    optional RilDataCall call = 3;
1536  }
1537
1538  // Carrier Key Change Event.
1539  message CarrierKeyChange {
1540
1541    enum KeyType {
1542
1543      // Key Type Unknown.
1544      UNKNOWN = 0;
1545      // Key Type for WLAN.
1546      WLAN = 1;
1547      // Key Type for EPDG.
1548      EPDG = 2;
1549    }
1550
1551    // Key type of the Encryption key.
1552    optional KeyType key_type = 1;
1553
1554    // Whether the download was successful or not.
1555    optional bool isDownloadSuccessful = 2;
1556  }
1557
1558  // Deactivate packet data connection
1559  message RilDeactivateDataCall {
1560
1561    // Context ID
1562    optional int32 cid = 1;
1563
1564    // Reason for deactivating data call
1565    optional DeactivateReason reason = 2;
1566
1567    // Deactivate data call reasons
1568    enum DeactivateReason {
1569
1570      // Reason is unknown.
1571      DEACTIVATE_REASON_UNKNOWN = 0;
1572
1573      DEACTIVATE_REASON_NONE = 1;
1574
1575      DEACTIVATE_REASON_RADIO_OFF = 2;
1576
1577      DEACTIVATE_REASON_PDP_RESET = 3;
1578
1579      DEACTIVATE_REASON_HANDOVER = 4;
1580    }
1581  }
1582
1583  message ModemRestart {
1584     // The baseband_version is used to identify the particular software version
1585     // where the modem restarts happened
1586     optional string baseband_version = 1;
1587
1588     // Indicates the modem restart reason. The restart reason can be used to
1589     // categorize any modem crashes and group similar crashes together. This
1590     // information will be useful to identify the cause of modem crashes,
1591     // reproduce the issue and confirm that the fix works.
1592     optional string reason = 2;
1593  }
1594
1595  message CarrierIdMatching {
1596
1597    // Carrier id table version number
1598    optional int32 cid_table_version = 1;
1599
1600    // Carrier id matching result object
1601    optional CarrierIdMatchingResult result = 2;
1602  }
1603
1604  message CarrierIdMatchingResult {
1605
1606    // A unique carrier id
1607    optional int32 carrier_id = 1;
1608
1609    // Group id level 1. Logged only if gid1 is configured from subscription
1610    // but its matching rule is unknown
1611    optional string unknown_gid1 = 2;
1612
1613    // MCC and MNC that map to this carrier. Logged only if mccmnc is configured
1614    // from subscription but its matching rule is unknown
1615    optional string unknown_mccmnc = 3;
1616
1617    // MCC and MNC from the subscription that map to this carrier.
1618    optional string mccmnc = 4;
1619
1620    // Group id level 1 from the subscription that map to this carrier.
1621    optional string gid1 = 5;
1622
1623    // Group id level 2 from the subscription that map to this carrier.
1624    optional string gid2 = 6;
1625
1626    // spn from the subscription that map to this carrier.
1627    optional string spn = 7;
1628
1629    // pnn from the subscription that map to this carrier.
1630    optional string pnn = 8;
1631
1632    // iccid prefix from the subscription that map to this carrier.
1633    // only log first 7 outof 20 bit of full iccid
1634    optional string iccid_prefix = 9;
1635
1636    // imsi prefix from the subscription that map to this carrier.
1637    // only log additional 2 bits other than MCC MNC.
1638    optional string imsi_prefix = 10;
1639
1640    // Carrier Privilege Access Rule in hex string from the subscription.
1641    // Sample values: 61ed377e85d386a8dfee6b864bd85b0bfaa5af88
1642    repeated string privilege_access_rule = 11;
1643
1644    // The Access Point Name, corresponding to "apn" field returned by
1645    // "content://telephony/carriers/preferapn" on device.
1646    // Sample values: fast.t-mobile.com, internet. Note only log if this apn is not user edited.
1647    optional string preferApn = 12;
1648  }
1649
1650  // Time when event happened on device, in milliseconds since epoch
1651  optional int64 timestamp_millis = 1;
1652
1653  // In Multi-SIM devices this indicates SIM slot
1654  optional int32 phone_id = 2;
1655
1656  // Event type
1657  optional Type type = 3;
1658
1659  // User settings
1660  optional TelephonySettings settings = 4;
1661
1662  // RIL Service State
1663  optional TelephonyServiceState service_state = 5;
1664
1665  // IMS state
1666  optional ImsConnectionState ims_connection_state = 6;
1667
1668  // IMS capabilities
1669  optional ImsCapabilities ims_capabilities = 7;
1670
1671  // List of data calls when changed
1672  repeated RilDataCall data_calls = 8;
1673
1674  // RIL error code
1675  optional RilErrno error = 9;
1676
1677  // Setup data call request
1678  optional RilSetupDataCall setup_data_call = 10;
1679
1680  // Setup data call response
1681  optional RilSetupDataCallResponse setup_data_call_response = 11;
1682
1683  // Deactivate data call request
1684  optional RilDeactivateDataCall deactivate_data_call = 12;
1685
1686  // Data call stall recovery action
1687  optional int32 data_stall_action = 13;
1688
1689  // Modem restart event
1690  optional ModemRestart modem_restart = 14;
1691
1692  // NITZ time in milliseconds
1693  optional int64 nitz_timestamp_millis = 15;
1694
1695  // Carrier id matching event
1696  optional CarrierIdMatching carrier_id_matching = 16;
1697
1698  // Carrier key change
1699  optional CarrierKeyChange carrier_key_change = 17;
1700
1701  // Data switch event
1702  optional DataSwitch data_switch = 19;
1703
1704  // For network validate event
1705  optional NetworkValidationState network_validation_state = 20;
1706
1707  // On demand data switch event
1708  optional OnDemandDataSwitch on_demand_data_switch = 21;
1709
1710  // Sim state for each slot.
1711  repeated SimState sim_state = 22;
1712
1713  // The active subscription info for a specific slot.
1714  optional ActiveSubscriptionInfo active_subscription_info = 23;
1715
1716  // The modem state represent by a bitmap, the i-th bit(LSB) indicates the i-th modem
1717  // state (0 - disabled, 1 - enabled).
1718  optional int32 enabled_modem_bitmap = 24;
1719
1720  // Updated Emergency Call info.
1721  optional EmergencyNumberInfo updated_emergency_number = 25;
1722}
1723
1724message ActiveSubscriptionInfo {
1725  /** The slot index which this subscription is associated with. */
1726  optional int32 slot_index = 1;
1727
1728  /** The Carrier id of this subscription. -1 indicates unknown value. */
1729  optional int32 carrier_id = 2;
1730
1731  /** whether subscription is opportunistic (0 - false, 1 - true, -1 - unknown). */
1732  optional int32 is_opportunistic = 3;
1733};
1734
1735enum SimState {
1736  /**
1737   * SIM card is inserted, but the state is unknown. Typically happened when the SIM is inserted
1738   * but not loaded.
1739   */
1740  SIM_STATE_UNKNOWN = 0;
1741
1742  /** No SIM card is inserted in the slot. */
1743  SIM_STATE_ABSENT = 1;
1744
1745  /** SIM card applications have been loaded. */
1746  SIM_STATE_LOADED = 2;
1747};
1748
1749enum TimeInterval {
1750  TI_UNKNOWN = 0;
1751  TI_10_MILLIS = 1;
1752  TI_20_MILLIS = 2;
1753  TI_50_MILLIS = 3;
1754  TI_100_MILLIS = 4;
1755  TI_200_MILLIS = 5;
1756  TI_500_MILLIS = 6;
1757  TI_1_SEC = 7;
1758  TI_2_SEC = 8;
1759  TI_5_SEC = 9;
1760  TI_10_SEC = 10;
1761  TI_30_SEC = 11;
1762  TI_1_MINUTE = 12;
1763  TI_3_MINUTES = 13;
1764  TI_10_MINUTES = 14;
1765  TI_30_MINUTES = 15;
1766  TI_1_HOUR = 16;
1767  TI_2_HOURS = 17;
1768  TI_4_HOURS = 18;
1769  TI_MANY_HOURS = 19;
1770}
1771
1772// Information about CS and/or PS call session.
1773// Session starts when call is placed or accepted and
1774// ends when there are no more active calls.
1775message TelephonyCallSession {
1776
1777  message Event {
1778
1779    enum Type {
1780
1781      // Unknown event
1782      EVENT_UNKNOWN = 0;
1783
1784      // Telephony related user settings changed
1785      SETTINGS_CHANGED = 1;
1786
1787      // Phone state changed
1788      RIL_SERVICE_STATE_CHANGED = 2;
1789
1790      // IMS connected/disconnected
1791      IMS_CONNECTION_STATE_CHANGED = 3;
1792
1793      // IMS Voice, Video and Ut capabilities changed
1794      IMS_CAPABILITIES_CHANGED = 4;
1795
1796      // Notification that new data call has appeared in the list
1797      // or old data call has removed.
1798      DATA_CALL_LIST_CHANGED = 5;
1799
1800      // Send request to RIL
1801      RIL_REQUEST = 6;
1802
1803      // Result of the RIL request
1804      RIL_RESPONSE = 7;
1805
1806      // Ring indication for an incoming call
1807      RIL_CALL_RING = 8;
1808
1809      // Notification that Single Radio Voice Call Continuity(SRVCC)
1810      // progress state has changed.
1811      RIL_CALL_SRVCC = 9;
1812
1813      // Notification that list of calls has changed.
1814      RIL_CALL_LIST_CHANGED = 10;
1815
1816      // Command sent to IMS Service. See ImsCommand.
1817      IMS_COMMAND = 11;
1818
1819      // Command sent to IMS Service. See ImsCommand.
1820      IMS_COMMAND_RECEIVED = 12;
1821
1822      // Command sent to IMS Service. See ImsCommand.
1823      IMS_COMMAND_FAILED = 13;
1824
1825      // Command sent to IMS Service. See ImsCommand.
1826      IMS_COMMAND_COMPLETE = 14;
1827
1828      // Notification about incoming voice call
1829      IMS_CALL_RECEIVE = 15;
1830
1831      // Notification that state of the call has changed
1832      IMS_CALL_STATE_CHANGED = 16;
1833
1834      // Notification about IMS call termination
1835      IMS_CALL_TERMINATED = 17;
1836
1837      // Notification that session access technology has changed
1838      IMS_CALL_HANDOVER = 18;
1839
1840      // Notification that session access technology has changed
1841      IMS_CALL_HANDOVER_FAILED = 19;
1842
1843      // Notification about phone state changed.
1844      PHONE_STATE_CHANGED = 20;
1845
1846      // System time overwritten by NITZ (Network time)
1847      NITZ_TIME = 21;
1848
1849      // Change of audio codec
1850      AUDIO_CODEC = 22;
1851
1852      // Notification that the call quality has changed
1853      CALL_QUALITY_CHANGED = 23;
1854    }
1855
1856    enum RilRequest {
1857
1858      RIL_REQUEST_UNKNOWN = 0;
1859
1860      // Initiate voice call
1861      RIL_REQUEST_DIAL = 1;
1862
1863      // Answer incoming call
1864      RIL_REQUEST_ANSWER = 2;
1865
1866      // Hang up a specific line
1867      RIL_REQUEST_HANGUP = 3;
1868
1869      // Configure current call waiting state
1870      RIL_REQUEST_SET_CALL_WAITING = 4;
1871
1872      RIL_REQUEST_SWITCH_HOLDING_AND_ACTIVE = 5;
1873
1874      // Send FLASH
1875      RIL_REQUEST_CDMA_FLASH = 6;
1876
1877      // Conference holding and active
1878      RIL_REQUEST_CONFERENCE = 7;
1879    }
1880
1881    enum ImsCommand {
1882
1883      // Command is unknown.
1884      IMS_CMD_UNKNOWN = 0;
1885
1886      IMS_CMD_START = 1;
1887
1888      IMS_CMD_ACCEPT = 2;
1889
1890      IMS_CMD_REJECT = 3;
1891
1892      IMS_CMD_TERMINATE = 4;
1893
1894      IMS_CMD_HOLD = 5;
1895
1896      IMS_CMD_RESUME = 6;
1897
1898      IMS_CMD_MERGE = 7;
1899
1900      IMS_CMD_UPDATE = 8;
1901
1902      IMS_CMD_CONFERENCE_EXTEND = 9;
1903
1904      IMS_CMD_INVITE_PARTICIPANT = 10;
1905
1906      IMS_CMD_REMOVE_PARTICIPANT = 11;
1907    }
1908
1909    enum PhoneState {
1910
1911      // State is unknown.
1912      STATE_UNKNOWN = 0;
1913
1914      STATE_IDLE = 1;
1915
1916      STATE_RINGING = 2;
1917
1918      STATE_OFFHOOK = 3;
1919    }
1920
1921    // Telephony call states
1922    enum CallState {
1923
1924      // State is unknown.
1925      CALL_UNKNOWN = 0;
1926
1927      CALL_IDLE = 1;
1928
1929      CALL_ACTIVE = 2;
1930
1931      CALL_HOLDING = 3;
1932
1933      CALL_DIALING = 4;
1934
1935      CALL_ALERTING = 5;
1936
1937      CALL_INCOMING = 6;
1938
1939      CALL_WAITING = 7;
1940
1941      CALL_DISCONNECTED = 8;
1942
1943      CALL_DISCONNECTING = 9;
1944    }
1945
1946    // Audio codecs
1947    enum AudioCodec {
1948
1949      // Unknown codec
1950      AUDIO_CODEC_UNKNOWN = 0;
1951
1952      AUDIO_CODEC_AMR = 1;
1953
1954      AUDIO_CODEC_AMR_WB = 2;
1955
1956      AUDIO_CODEC_QCELP13K = 3;
1957
1958      AUDIO_CODEC_EVRC = 4;
1959
1960      AUDIO_CODEC_EVRC_B = 5;
1961
1962      AUDIO_CODEC_EVRC_WB = 6;
1963
1964      AUDIO_CODEC_EVRC_NW = 7;
1965
1966      AUDIO_CODEC_GSM_EFR = 8;
1967
1968      AUDIO_CODEC_GSM_FR = 9;
1969
1970      AUDIO_CODEC_GSM_HR = 10;
1971
1972      AUDIO_CODEC_G711U = 11;
1973
1974      AUDIO_CODEC_G723 = 12;
1975
1976      AUDIO_CODEC_G711A = 13;
1977
1978      AUDIO_CODEC_G722 = 14;
1979
1980      AUDIO_CODEC_G711AB = 15;
1981
1982      AUDIO_CODEC_G729 = 16;
1983
1984      AUDIO_CODEC_EVS_NB = 17;
1985
1986      AUDIO_CODEC_EVS_WB = 18;
1987
1988      AUDIO_CODEC_EVS_SWB = 19;
1989
1990      AUDIO_CODEC_EVS_FB = 20;
1991    }
1992
1993    // The information about a voice call
1994    message RilCall {
1995
1996      enum Type {
1997
1998        // Scan Type is unknown.
1999        UNKNOWN = 0;
2000
2001        // Mobile originated
2002        MO = 1;
2003
2004        // Mobile terminated
2005        MT = 2;
2006      }
2007
2008      // Connection Index
2009      optional int32 index = 1;
2010
2011      optional CallState state = 2;
2012
2013      optional Type type = 3;
2014
2015      // For possible values for a call end reason check
2016      // frameworks/base/telephony/java/android/telephony/DisconnectCause.java
2017      optional int32 call_end_reason = 4;
2018
2019      // This field is true for Conference Calls
2020      optional bool is_multiparty = 5;
2021
2022      // Detailed cause code for CS Call failures
2023      // frameworks/base/telephony/java/android/telephony/PreciseDisconnectCause.java
2024      optional int32 precise_disconnect_cause = 6;
2025
2026      // Indicate if the call is an emergency call
2027      optional bool is_emergency_call = 7;
2028
2029      // Indicate the emergency call information dialed from the CS call
2030      optional EmergencyNumberInfo emergency_number_info = 8;
2031    }
2032
2033    // Single Radio Voice Call Continuity(SRVCC) progress state
2034    enum RilSrvccState {
2035
2036      // State is unknown.
2037      HANDOVER_UNKNOWN = 0;
2038
2039      HANDOVER_STARTED = 1;
2040
2041      HANDOVER_COMPLETED = 2;
2042
2043      HANDOVER_FAILED = 3;
2044
2045      HANDOVER_CANCELED = 4;
2046    }
2047
2048    message SignalStrength {
2049
2050      // signal to noise ratio for LTE signal strength
2051      optional int32 lte_snr = 1;
2052
2053      // in the future we may include more measures of signal strength, or
2054      // measurements for other RATs
2055    }
2056
2057    // CallQuality information. (This proto class corresponds to
2058    // android.telephony.CallQuality)
2059    message CallQuality {
2060
2061      enum CallQualityLevel {
2062
2063        // leaving the first value explicitly as unspecified avoids breaking
2064        // clients if the desired default behavior changes
2065        UNDEFINED = 0;
2066
2067        EXCELLENT = 1;
2068
2069        GOOD = 2;
2070
2071        FAIR = 3;
2072
2073        POOR = 4;
2074
2075        BAD = 5;
2076
2077        // this typically indicates a failure in the modem
2078        NOT_AVAILABLE = 6;
2079      }
2080
2081      // the downlink CallQualityLevel for a given ongoing call
2082      optional CallQualityLevel downlink_level = 1;
2083
2084      // the uplink CallQualityLevel for a given ongoing call
2085      optional CallQualityLevel uplink_level = 2;
2086
2087      // the duration of the call, in seconds
2088      optional int32 duration_in_seconds = 3;
2089
2090      // the total number of RTP packets transmitted by this device for an
2091      // ongoing call
2092      optional int32 rtp_packets_transmitted = 4;
2093
2094      // the total number of RTP packets received by this device for an ongoing
2095      // call
2096      optional int32 rtp_packets_received = 5;
2097
2098      // the number of RTP packets which were sent by this device but were lost
2099      // in the network before reaching the other party
2100      optional int32 rtp_packets_transmitted_lost = 6;
2101
2102      // the number of RTP packets which were sent by the other party but were
2103      // lost in the network before reaching this device
2104      optional int32 rtp_packets_not_received = 7;
2105
2106      // the average relative jitter in milliseconds. Jitter represents the
2107      // amount of variance in interarrival time of packets, for example, if two
2108      // packets are sent 2 milliseconds apart but received 3 milliseconds
2109      // apart, the relative jitter between those packets is 1 millisecond.
2110      //
2111      // See RFC 3550 for more information on jitter calculations
2112      optional int32 average_relative_jitter_millis = 8;
2113
2114      // the maximum relative jitter for a given ongoing call. Jitter represents
2115      // the amount of variance in interarrival time of packets, for example, if
2116      // two packets are sent 2 milliseconds apart but received 3 milliseconds
2117      // apart, the relative jitter between those packets is 1 millisecond.
2118      //
2119      // See RFC 3550 for more information on jitter calculations.
2120      optional int32 max_relative_jitter_millis = 9;
2121
2122      // the average round trip time of RTP packets in an ongoing call, in milliseconds
2123      optional int32 average_round_trip_time = 10;
2124
2125      // the codec type of an ongoing call
2126      optional AudioCodec codec_type = 11;
2127    }
2128
2129    message CallQualitySummary {
2130
2131      // Total duration of good call quality reported at the end of a call
2132      optional int32 total_good_quality_duration_in_seconds = 1;
2133
2134      // Total duration of bad call quality reported at the end of a call
2135      optional int32 total_bad_quality_duration_in_seconds = 2;
2136
2137      // Total duration of the call for which we have call quality
2138      // information, reported at the end of a call. For example, if an IMS call
2139      // is converted to a CS call, which doesn't report call quality information,
2140      // this value is the duration of the IMS component.
2141      optional int32 total_duration_with_quality_information_in_seconds = 3;
2142
2143      // Snapshot of the CallQuality when signal strength is worst within good
2144      // quality section
2145      optional CallQuality snapshot_of_worst_ss_with_good_quality = 4;
2146
2147      // Snapshot of the CallQuality when signal strength is best within good
2148      // quality section
2149      optional CallQuality snapshot_of_best_ss_with_good_quality = 5;
2150
2151      // Snapshot of the CallQuality when signal strength is worst within bad
2152      // quality section
2153      optional CallQuality snapshot_of_worst_ss_with_bad_quality = 6;
2154
2155      // Snapshot of the CallQuality when signal strength is best within bad
2156      // quality section
2157      optional CallQuality snapshot_of_best_ss_with_bad_quality = 7;
2158
2159      // The worst SignalStrength in any good quality section
2160      optional SignalStrength worst_ss_with_good_quality = 8;
2161
2162      // The best SignalStrength in any good quality section
2163      optional SignalStrength best_ss_with_good_quality = 9;
2164
2165      // The worst SignalStrength in any bad quality section
2166      optional SignalStrength worst_ss_with_bad_quality = 10;
2167
2168      // The best SignalStrength in any bad quality section
2169      optional SignalStrength best_ss_with_bad_quality = 11;
2170
2171      // Snapshot of the CallQuality at the end of a call. This includes
2172      // cumulative statistics like total duration and total RTP packets.
2173      optional CallQuality snapshot_of_end = 12;
2174
2175    }
2176
2177    // Event type
2178    optional Type type = 1;
2179
2180    // Time since previous event
2181    optional TimeInterval delay = 2;
2182
2183    // Settings at the beginning of the session or when changed
2184    optional TelephonySettings settings = 3;
2185
2186    // State at the beginning of the session or when changed
2187    optional TelephonyServiceState service_state = 4;
2188
2189    // State at the beginning of the session or when changed
2190    optional ImsConnectionState ims_connection_state = 5;
2191
2192    // Capabilities at the beginning of the session or when changed
2193    optional ImsCapabilities ims_capabilities = 6;
2194
2195    // List of data calls at the beginning of the session or when changed
2196    repeated RilDataCall data_calls = 7;
2197
2198    // New state
2199    optional PhoneState phone_state = 8;
2200
2201    // New state
2202    optional CallState call_state = 9;
2203
2204    // CS or IMS Voice call index
2205    optional int32 call_index = 10;
2206
2207    // New merged call
2208    optional int32 merged_call_index = 11;
2209
2210    // Active CS Voice calls
2211    repeated RilCall calls = 12;
2212
2213    // RIL error code
2214    optional RilErrno error = 13;
2215
2216    // RIL request
2217    optional RilRequest ril_request = 14;
2218
2219    // Numeric ID
2220    optional int32 ril_request_id = 15;
2221
2222    // New SRVCC state
2223    optional RilSrvccState srvcc_state = 16;
2224
2225    // IMS command
2226    optional ImsCommand ims_command = 17;
2227
2228    // IMS Failure reason
2229    optional ImsReasonInfo reason_info = 18;
2230
2231    // Original access technology
2232    optional RadioAccessTechnology src_access_tech = 19 [default = UNKNOWN];
2233
2234    // New access technology
2235    optional RadioAccessTechnology target_access_tech = 20 [default = UNKNOWN];
2236
2237    // NITZ time in milliseconds
2238    optional int64 nitz_timestamp_millis = 21;
2239
2240    // Audio codec at the beginning of the session or when changed
2241    optional AudioCodec audio_codec = 22;
2242
2243    // Call quality when changed
2244    optional CallQuality call_quality = 23;
2245
2246    // Downlink call quality summary at the end of a call
2247    optional CallQualitySummary call_quality_summary_dl = 24;
2248
2249    // Uplink call quality summary at the end of a call
2250    optional CallQualitySummary call_quality_summary_ul = 25;
2251
2252    // Indicate if it is IMS emergency call
2253    optional bool is_ims_emergency_call = 26;
2254
2255    // Emergency call info
2256    optional EmergencyNumberInfo ims_emergency_number_info = 27;
2257  }
2258
2259  // Time when call has started, in minutes since epoch,
2260  // with 5 minutes precision
2261  optional int32 start_time_minutes = 1;
2262
2263  // In Multi-SIM devices this indicates SIM slot
2264  optional int32 phone_id = 2;
2265
2266  // List of events happened during the call
2267  repeated Event events = 3;
2268
2269  // Indicating some call events are dropped
2270  optional bool events_dropped = 4;
2271}
2272
2273message SmsSession {
2274
2275  message Event {
2276
2277    enum Type {
2278
2279      // Unknown event
2280      EVENT_UNKNOWN = 0;
2281
2282      // Telephony related user settings changed
2283      SETTINGS_CHANGED = 1;
2284
2285      // Phone state changed
2286      RIL_SERVICE_STATE_CHANGED = 2;
2287
2288      // IMS connected/disconnected
2289      IMS_CONNECTION_STATE_CHANGED = 3;
2290
2291      // IMS Voice, Video and Ut capabilities changed
2292      IMS_CAPABILITIES_CHANGED = 4;
2293
2294      // Notification that new data call has appeared in the list
2295      // or old data call has removed.
2296      DATA_CALL_LIST_CHANGED = 5;
2297
2298      // Send a SMS message over RIL
2299      SMS_SEND = 6;
2300
2301      // Message has been sent to network using RIL
2302      SMS_SEND_RESULT = 7;
2303
2304      // Notification about received SMS using RIL
2305      SMS_RECEIVED = 8;
2306
2307      // CB message received
2308      CB_SMS_RECEIVED = 9;
2309
2310      // Incomplete multipart message received
2311      INCOMPLETE_SMS_RECEIVED = 10;
2312    }
2313
2314    // Formats used to encode SMS messages
2315    enum Format {
2316
2317      // State is unknown.
2318      SMS_FORMAT_UNKNOWN = 0;
2319
2320      // GSM, WCDMA
2321      SMS_FORMAT_3GPP = 1;
2322
2323      // CDMA
2324      SMS_FORMAT_3GPP2 = 2;
2325    }
2326
2327    enum Tech {
2328      SMS_UNKNOWN = 0;
2329
2330      SMS_GSM = 1;
2331
2332      SMS_CDMA = 2;
2333
2334      SMS_IMS = 3;
2335    }
2336
2337    message CBMessage {
2338      // CB message format
2339      optional Format msg_format = 1;
2340
2341      // CB message priority
2342      optional CBPriority msg_priority = 2;
2343
2344      // Type of CB msg
2345      optional CBMessageType msg_type = 3;
2346
2347      // Service category of CB message
2348      optional int32 service_category = 4;
2349
2350      // Message's serial number
2351      optional int32 serial_number = 5;
2352
2353      // The delivered time (UTC) of the message
2354      optional int64 delivered_timestamp_millis = 6;
2355    }
2356
2357    enum CBMessageType {
2358      // Unknown type
2359      TYPE_UNKNOWN = 0;
2360
2361      // ETWS CB msg
2362      ETWS = 1;
2363
2364      // CMAS CB msg
2365      CMAS = 2;
2366
2367      // CB msg other than ETWS and CMAS
2368      OTHER = 3;
2369    }
2370
2371    enum CBPriority {
2372      // Unknown priority
2373      PRIORITY_UNKNOWN = 0;
2374
2375      // NORMAL priority
2376      NORMAL = 1;
2377
2378      // Interactive priority
2379      INTERACTIVE = 2;
2380
2381      // Urgent priority
2382      URGENT = 3;
2383
2384      // Emergency priority
2385      EMERGENCY = 4;
2386    }
2387
2388    // Types of SMS messages
2389    enum SmsType {
2390
2391      // Normal type
2392      SMS_TYPE_NORMAL = 0;
2393
2394      // SMS-PP.
2395      SMS_TYPE_SMS_PP = 1;
2396
2397      // Voicemail indication
2398      SMS_TYPE_VOICEMAIL_INDICATION = 2;
2399
2400      // Type 0 message (3GPP TS 23.040 9.2.3.9)
2401      SMS_TYPE_ZERO = 3;
2402
2403      // WAP-PUSH message
2404      SMS_TYPE_WAP_PUSH = 4;
2405    }
2406
2407    message IncompleteSms {
2408      // Number of received parts
2409      optional int32 received_parts = 1;
2410
2411      // Number of expected parts
2412      optional int32 total_parts = 2;
2413    }
2414
2415    // Event type
2416    optional Type type = 1;
2417
2418    // Time since previous event
2419    optional TimeInterval delay = 2;
2420
2421    // Settings at the beginning of the session or when changed
2422    optional TelephonySettings settings = 3;
2423
2424    // State at the beginning of the session or when changed
2425    optional TelephonyServiceState service_state = 4;
2426
2427    // State at the beginning of the session or when changed
2428    optional ImsConnectionState ims_connection_state = 5;
2429
2430    // Capabilities at the beginning of the session or when changed
2431    optional ImsCapabilities ims_capabilities = 6;
2432
2433    // List of data calls at the beginning of the session or when changed
2434    repeated RilDataCall data_calls = 7;
2435
2436    // Format of the message
2437    optional Format format = 8;
2438
2439    // Technology used to send/receive SMS
2440    optional Tech tech = 9;
2441
2442    // For outgoing SMS:
2443    //  - See 3GPP 27.005, 3.2.5 for GSM/UMTS,
2444    //  - 3GPP2 N.S0005 (IS-41C) Table 171 for CDMA,
2445    // For incoming SMS of any type:
2446    //  - it is mapped to a SmsManager.RESULT_* code
2447    // SmsManager can be accessed from
2448    // frameworks/base/telephony/java/android/telephony/SmsManager.java
2449    optional int32 error_code = 10;
2450
2451    // RIL error code - Not used.
2452    optional RilErrno error = 11;
2453
2454    // Numeric ID - Used only for outgoing SMS
2455    optional int32 ril_request_id = 12;
2456
2457    // Cellbroadcast message content
2458    optional CBMessage cell_broadcast_message = 13;
2459
2460    // ImsService error code. Used only for outgoing SMS
2461    optional ImsServiceErrno ims_error = 14;
2462
2463    // Details of incoming incomplete multipart SMS
2464    optional IncompleteSms incomplete_sms = 15;
2465
2466    // Indicate the type of incoming SMS
2467    optional SmsType sms_type = 16;
2468
2469    // Indicates if the incoming SMS was blocked
2470    optional bool blocked = 17;
2471  }
2472
2473  // Time when session has started, in minutes since epoch,
2474  // with 5 minutes precision
2475  optional int32 start_time_minutes = 1;
2476
2477  // In Multi-SIM devices this indicates SIM slot
2478  optional int32 phone_id = 2;
2479
2480  // List of events happened during the call
2481  repeated Event events = 3;
2482
2483  // Indicating some sms session events are dropped
2484  optional bool events_dropped = 4;
2485}
2486
2487// Power stats for modem
2488message ModemPowerStats {
2489
2490  // Duration of log (ms). This is the duration of time device is
2491  // on battery and modem power stats are collected.
2492  optional int64 logging_duration_ms = 1;
2493
2494  // Energy consumed by modem (mAh)
2495  optional double energy_consumed_mah = 2;
2496
2497  // Number of packets sent (tx)
2498  optional int64 num_packets_tx = 3;
2499
2500  // Amount of time kernel is active because of cellular data (ms)
2501  optional int64 cellular_kernel_active_time_ms = 4;
2502
2503  // Amount of time spent in very poor rx signal level (ms)
2504  optional int64 time_in_very_poor_rx_signal_level_ms = 5;
2505
2506  // Amount of time modem is in sleep (ms)
2507  optional int64 sleep_time_ms = 6;
2508
2509  // Amount of time modem is in idle (ms)
2510  optional int64 idle_time_ms = 7;
2511
2512  // Amount of time modem is in rx (ms)
2513  optional int64 rx_time_ms = 8;
2514
2515  // Amount of time modem is in tx (ms)
2516  repeated int64 tx_time_ms = 9;
2517
2518  // Number of bytes sent (tx)
2519  optional int64 num_bytes_tx = 10;
2520
2521  // Number of packets received (rx)
2522  optional int64 num_packets_rx = 11;
2523
2524  // Number of bytes received (rx)
2525  optional int64 num_bytes_rx = 12;
2526
2527  // Amount of time phone spends in various Radio Access Technologies (ms)
2528  repeated int64 time_in_rat_ms = 13;
2529
2530  // Amount of time phone spends in various cellular
2531  // rx signal strength levels (ms)
2532  repeated int64 time_in_rx_signal_strength_level_ms = 14;
2533
2534  // Actual monitored rail energy consumed by modem (mAh)
2535  optional double monitored_rail_energy_consumed_mah = 15;
2536}
2537