• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15/**
16 * @addtogroup Ril
17 * @{
18 *
19 * @brief Defines Ril-related APIs.
20 *
21 * The radio interface layer (RIL) module provides APIs and callbacks for upper-layer telephony services,
22 * including call, SMS, MMS, network search, and SIM card services.
23 *
24 * @since 3.2
25 * @version 1.0
26 */
27
28/**
29 * @file Types.idl
30 *
31 * @brief Declares data types used by the Hardware Driver Interfaces (HDIs) of the Ril module.
32 *
33 * @since 3.2
34 * @version 1.0
35 */
36
37/**
38 * @brief Defines the path for the package of the Ril module APIs.
39 *
40 * @since 3.2
41 * @version 1.0
42 */
43package ohos.hdi.ril.v1_0;
44
45/**
46 * @brief Enumerates emergency call types.
47 */
48enum EccType {
49    /**
50     * Default
51     */
52    TYPE_CATEGORY = 0,
53
54     /**
55     * Police
56     */
57    TYPE_POLICE = 1,
58
59     /**
60     * Ambulance
61     */
62    TYPE_AMBULANCE = 2,
63
64     /**
65     * Fire alarm
66     */
67    TYPE_FIRE = 4,
68
69     /**
70     * Marine police
71     */
72    TYPE_SEA = 8,
73
74     /**
75     * Mountain rescue
76     */
77    TYPE_MOUNTAIN = 16,
78};
79
80/**
81 * @brief Specifies whether a number is valid when there is a card or no card.
82 */
83enum SimpresentType {
84    /**
85     * Valid when there is no card
86     */
87    TYPE_NO_CARD = 0,
88
89    /**
90     * Valid when there is a card
91     */
92    TYPE_HAS_CARD = 1,
93};
94
95/**
96 * @brief Specifies whether a number is valid for all states or only for the abnormal service state of
97 * the circuit switched (CS) domain.
98 */
99enum AbnormalServiceType {
100    /**
101     * Vaild for all states
102     */
103    TYPE_ALL = 0,
104
105    /**
106     * Valid only for the abnormal service state of the CS domain
107     */
108    TYPE_ONLY_CS = 1,
109};
110
111/**
112 * @brief Enumerates Ril error codes.
113 */
114enum RilErrType {
115    /**
116     * Call success
117     */
118    NONE = 0,
119
120    /**
121     * Common error
122     */
123    RIL_ERR_GENERIC_FAILURE = 1,
124
125    /**
126     * Invalid parameters
127     */
128    RIL_ERR_INVALID_PARAMETER = 2,
129
130    /**
131     * Memory fully loaded
132     */
133    RIL_ERR_MEMORY_FULL = 3,
134
135    /**
136     * Command sending failed
137     */
138    RIL_ERR_CMD_SEND_FAILURE = 4,
139
140    /**
141     * Command connection terminated
142     */
143    RIL_ERR_CMD_NO_CARRIER = 5,
144
145    /**
146     * Invalid response
147     */
148    RIL_ERR_INVALID_RESPONSE = 6,
149
150    /**
151     * Status repeated
152     */
153    RIL_ERR_REPEAT_STATUS = 7,
154
155    /**
156     * Network search in progress
157     */
158    RIL_ERR_NETWORK_SEARCHING = 8,
159
160    /**
161     * Network search interrupted
162     */
163    RIL_ERR_NETWORK_SEARCHING_INTERRUPTED = 9,
164
165    /**
166     * Modem shut down
167     */
168    RIL_ERR_MODEM_DEVICE_CLOSE = 10,
169
170    /**
171     * SIM card not inserted
172     */
173    RIL_ERR_NO_SIMCARD_INSERTED = 11,
174
175    /**
176     * PIN required
177     */
178    RIL_ERR_NEED_PIN_CODE = 12,
179
180    /**
181     * PUK required
182     */
183    RIL_ERR_NEED_PUK_CODE = 13,
184
185    /**
186     * Network search timed out
187     */
188    RIL_ERR_NETWORK_SEARCH_TIMEOUT = 14,
189
190    /**
191     * Incorrect PIN or PUK
192     */
193    RIL_ERR_PINPUK_PASSWORD_NOCORRECT = 15,
194
195    /**
196     * Modem parameter error
197     */
198    RIL_ERR_INVALID_MODEM_PARAMETER = 50,
199
200    /**
201     * IPC error
202     */
203    RIL_ERR_HDF_IPC_FAILURE = 300,
204
205    /**
206     * Null pointer
207     */
208    RIL_ERR_NULL_POINT = 301,
209
210    /**
211     * Vendor library not implemented
212     */
213    RIL_ERR_VENDOR_NOT_IMPLEMENT = 302
214};
215
216/**
217 * @brief Enumerates response types.
218 */
219enum RilResponseTypes {
220    /**
221     * Request response
222     */
223    RIL_RESPONSE_REQUEST = 0,
224
225    /**
226     * Notification response
227     */
228    RIL_RESPONSE_NOTICE = 1,
229
230    /**
231     * Acknowledgment request response
232     */
233    RIL_RESPONSE_REQUEST_ACK = 2,
234
235    /**
236     * Response to a request that must be acknowledged
237     */
238    RIL_RESPONSE_REQUEST_MUST_ACK = 3,
239
240    /**
241     * Response to a notification that must be acknowledged
242     */
243    RIL_RESPONSE_NOTICE_MUST_ACK = 4,
244};
245
246/**
247 * @brief Enumerates RIL system service states.
248 */
249enum RilSrvStatus {
250   /**
251    * No service
252    */
253    RIL_NO_SRV_SERVICE = 0,
254
255    /**
256     * Restricted service
257     */
258    RIL_RESTRICTED_SERVICE = 1,
259
260    /**
261     * Valid service
262     */
263    RIL_SERVICE_VALID = 2,
264
265    /**
266     * Restricted regional service
267     */
268    RIL_REGIONAL_SERVICE = 3,
269
270    /**
271     * Power saving
272     */
273    RIL_ENERGY_SAVING_SERVICE = 4,
274};
275
276/**
277 * @brief Enumerates system service domains.
278 */
279enum RilSrvDomain {
280    /**
281     * No service
282     */
283    RIL_NO_DOMAIN_SERVICE = 0,
284
285    /**
286     * Circuit switched (CS) service only
287     */
288    RIL_CS_SERVICE = 1,
289
290    /**
291     * Packet switched (PS) service only
292     */
293    RIL_PS_SERVICE = 2,
294
295    /**
296     * CS and PS services
297     */
298    RIL_CS_PS_SERVICE = 3,
299
300    /**
301     * CS and PS services not registered
302     */
303    RIL_CS_PS_SEARCHING = 4,
304
305    /**
306     * CDMA not supported
307     */
308    RIL_CDMA_NOT_SUPPORT = 255,
309};
310
311/**
312 * @brief Enumerates roaming states.
313 */
314enum RilRoamStatus {
315    /**
316     * Non-roaming state
317     */
318    RIL_NO_ROAM = 0,
319    /**
320     * Roaming state
321     */
322    RIL_ROAMING = 1,
323    /**
324     * Unknown
325     */
326    RIL_ROAM_UNKNOWN = 2,
327};
328
329/**
330 * @brief Enumerates SIM card lock states.
331 */
332enum RilSimLockStatus {
333    /**
334     * Not locked by CardLock
335     */
336    RIL_SIM_CARD_UNLOCK = 0,
337
338    /**
339     * Locked by CardLock
340     */
341    RIL_SIM_CARD_LOCK = 1,
342};
343
344/**
345 * @brief Enumerates system modes.
346 */
347enum RilSysMode {
348    /**
349     * Service not exist
350     */
351    RIL_NO_SYSMODE_SERVICE = 0,
352
353    /**
354     * Global System for Mobile Communications (GSM)
355     */
356    RIL_GSM_MODE = 1,
357
358    /**
359     * Code Division Multiple Access (CDMA)
360     */
361    RIL_CDMA_MODE = 2,
362
363    /**
364     * Wideband Code Division Multiple Access (WCDMA)
365     */
366    RIL_WCDMA_MODE = 3,
367
368    /**
369     * Time Division-Synchronous Code Division Multiple Access (TD-SCDMA)
370     */
371    RIL_TDSCDMA_MODE = 4,
372
373    /**
374     * Global Microwave Access Interoperability (WiMAX)
375     */
376    RIL_WIMAX_MODE = 5,
377
378    /**
379     * Long Term Evolution (LTE)
380     */
381    RIL_LTE_MODE = 6,
382
383    /**
384     * Carrier Aggregation (CA)
385     */
386    RIL_LTE_CA_MODE = 7,
387
388    /**
389     * 5G New Radio (NR)
390     */
391    RIL_NR_MODE = 8,
392};
393
394/**
395 * @brief Enumerates voice access technologies.
396 */
397enum RilRadioTech {
398    /**
399     * Invalid
400     */
401    RADIO_TECHNOLOGY_INVALID = 65535,
402
403    /**
404     * Unknown
405     */
406    RADIO_TECHNOLOGY_UNKNOWN = 0,
407
408    /**
409     * GSM
410     */
411    RADIO_TECHNOLOGY_GSM = 1,
412
413    /**
414     * 1x Radio Transmission Technology (1XRTT)
415     */
416    RADIO_TECHNOLOGY_1XRTT = 2,
417
418    /**
419     * WCDMA
420     */
421    RADIO_TECHNOLOGY_WCDMA = 3,
422
423    /**
424     * High Speed Packet Access (HSPA)
425     */
426    RADIO_TECHNOLOGY_HSPA = 4,
427
428    /**
429     * High Speed Downlink Packet Access (HSPAP)
430     */
431    RADIO_TECHNOLOGY_HSPAP = 5,
432
433    /**
434     * TD-SCDMA
435     */
436    RADIO_TECHNOLOGY_TD_SCDMA = 6,
437
438    /**
439     * Evolution Data Only (EV-DO)
440     */
441    RADIO_TECHNOLOGY_EVDO = 7,
442
443    /**
444     * Evolved High Speed Packet Data Network (EHRPD)
445     */
446    RADIO_TECHNOLOGY_EHRPD = 8,
447
448    /**
449     * LTE
450     */
451    RADIO_TECHNOLOGY_LTE = 9,
452
453    /**
454     * CA
455     */
456    RADIO_TECHNOLOGY_LTE_CA = 10,
457
458    /**
459     * Industrial Wireless Local Area Network (IWLAN)
460     */
461    RADIO_TECHNOLOGY_IWLAN = 11,
462
463    /**
464     * NR
465     */
466    RADIO_TECHNOLOGY_NR = 12,
467};
468
469/**
470 * @brief Enumerates SIM card states.
471 */
472enum RilSimStatus {
473    /**
474     * Invalid USIM card
475     */
476    RIL_USIM_INVALID = 0,
477
478    /**
479     * Valid USIM card
480     */
481    RIL_USIM_VALID = 1,
482
483    /**
484     * Invalid USIM card in the CS domain
485     */
486    RIL_USIM_CS_INVALID = 2,
487
488    /**
489     * Invalid USIM card in the PS domain
490     */
491    RIL_USIM_PS_INVALID = 3,
492
493    /**
494     * Invalid USIM card in the CS and PS domains
495     */
496    RIL_USIM_CS_PS_INVALID = 4,
497
498    /**
499     * Emulation SIM card
500     */
501    RIL_ROM_SIM = 240,
502
503    /**
504     * USIM card not exist
505     */
506    RIL_NO_USIM = 255,
507};
508
509/**
510 * @brief Enumerates network registration states.
511 */
512enum RilRegStatus {
513    /**
514     * Not registered. The mobile terminal (MT) does not search for or register with a new carrier
515     */
516    NO_REG_MT_NO_SEARCH = 0,
517
518    /**
519     * Registered with the home network
520     */
521    REG_MT_HOME = 1,
522
523    /**
524     * Not registered. The MT is searching for and registering with a new carrier.
525     */
526    NO_REG_MT_SEARCHING = 2,
527
528    /**
529     * Registration rejected
530     */
531    REG_MT_REJECTED = 3,
532
533    /**
534      * Unknown state
535     */
536    REG_MT_UNKNOWN = 4,
537
538    /**
539     * Registered with the roaming network
540     */
541    REG_MT_ROAMING = 5,
542
543    /**
544     * Emergency mode
545     */
546    REG_MT_EMERGENCY = 6,
547};
548
549/**
550 * @brief Enumerates cell connection states.
551 */
552enum RilCellConnectionStatus {
553    /**
554     * Unknown connection state
555     */
556    RIL_SERVING_CELL_UNKNOWN = 0,
557
558    /**
559     * Primary connection state
560     */
561    RIL_SERVING_CELL_PRIMARY = 1,
562
563    /**
564     * Secondary connection state
565     */
566    RIL_SERVING_CELL_SECONDARY = 2,
567};
568
569/**
570 * @brief Enumerates notification modes.
571 */
572enum RilRegNotifyMode {
573    /**
574     * Notification disabled
575     */
576    REG_NOT_NOTIFY = 0,
577
578    /**
579     * Notification on network registration status changes
580     */
581    REG_NOTIFY_STAT_ONLY = 1,
582
583    /**
584     * Notification on cell information changes
585     */
586    REG_NOTIFY_STAT_LAC_CELLID = 2,
587};
588
589/**
590 * @brief Enumerates radio protocol phases.
591 */
592enum RadioProtocolPhase {
593    /**
594     # Initialization
595     */
596    RADIO_PROTOCOL_PHASE_INITIAL,
597
598    /**
599     * Check
600     */
601    RADIO_PROTOCOL_PHASE_CHECK,
602
603    /**
604     * Update
605     */
606    RADIO_PROTOCOL_PHASE_UPDATE,
607
608    /**
609     * Notification
610     */
611    RADIO_PROTOCOL_PHASE_NOTIFY,
612
613    /**
614     * End
615     */
616    RADIO_PROTOCOL_PHASE_COMPLETE,
617};
618
619/**
620 * @brief Enumerates radio protocol states.
621 */
622enum RadioProtocolStatus {
623    /**
624     * No state
625     */
626    RADIO_PROTOCOL_STATUS_NONE,
627
628    /**
629     * Success
630     */
631    RADIO_PROTOCOL_STATUS_SUCCESS,
632
633    /**
634     * Failed
635     */
636    RADIO_PROTOCOL_STATUS_FAIL,
637};
638
639/**
640 * @brief Defines the emergency call number.
641 */
642struct EmergencyCall {
643    /**
644     * Number index
645     */
646    int index;
647
648    /**
649     * Total number
650     */
651    int total;
652
653    /**
654     * Emergency number
655     */
656    String eccNum;
657
658    /**
659     * Mobile country code
660     */
661    String mcc;
662
663    /**
664     * Enumerates emergency call types. For details, see {@link EccType}.
665     */
666    enum EccType eccType;
667
668    /**
669     * Whether a number is valid when there is a card or no card. For details, see {@link SimpresentType}.
670     */
671    enum SimpresentType simpresent;
672
673    /**
674     * Whether a number is valid for all states or only for the abnormal service state of the CS domain.
675     * For details, see {@link AbnormalService}.
676     */
677    enum AbnormalServiceType abnormalService;
678};
679
680/**
681 * @brief Defines the emergency call number list.
682 */
683struct EmergencyInfoList {
684    /**
685     * Total number
686     */
687    int callSize;
688
689    /**
690     * Number list ID
691     */
692    int flag;
693
694    /**
695     * Number list
696     *
697     */
698    List<struct EmergencyCall> calls;
699};
700
701/**
702 * @brief Defines the common response information.
703 */
704struct RilRadioResponseInfo {
705    /**
706     * Card slot ID
707     */
708    int slotId;
709
710    /**
711     * Response flag
712     */
713    int flag;
714
715    /**
716     * Request SN
717     */
718    int serial;
719
720    /**
721     * Error code
722     */
723    enum RilErrType error;
724
725    /**
726     * Response type. For details, see {@link RilResponseTypes}.
727     */
728    enum RilResponseTypes type;
729};
730
731/**
732 * @brief Defines the data service activation result.
733 */
734struct SetupDataCallResultInfo {
735    /**
736     * Activation result ID
737     */
738    int flag;
739
740    /**
741     * Reason code of the data service activation failure. For details, see 3GPP TS 24.008.
742     */
743    int reason;
744
745    /**
746     * Number of data service activation retry times
747     */
748    int retryTime;
749
750    /**
751     * Packet Data Protocol (PDP) context ID
752     */
753    int cid;
754
755    /**
756     * Whether the activation is successful. The value 0 indicates that the activation fails,
757     * and the value 1 indicates that the activation is successful.
758     */
759    int active;
760
761    /**
762     * Maximum number of data units
763     */
764    int maxTransferUnit;
765
766    /**
767     * Data unit ID
768     */
769    int pduSessionId;
770
771    /**
772     * Data service type. The value default indicates the default data service,
773     * and the value mms indicates the MMS data service.
774     */
775    String type;
776
777    /**
778     * Network port name
779     */
780    String netPortName;
781
782    /**
783     * Network address
784     */
785    String address;
786
787    /**
788     * IP address of the primary DNS server
789     */
790    String dns;
791
792    /**
793     * IP address of the secondary DNS server.
794     */
795    String dnsSec;
796
797    /**
798     * Gateway address
799     */
800    String gateway;
801
802    /**
803     * IP address of the primary Proxy-Call Session Control Function (P-CSCF)
804     */
805    String pCscfPrimAddr;
806
807    /**
808     * IP address of the secondary P-CSCF
809     */
810    String pCscfSecAddr;
811};
812
813/**
814 * @brief Defines the list of data service activation results.
815 */
816struct DataCallResultList {
817    /**
818     * Number of data service activation results
819     */
820    int size;
821
822    /**
823     * List of data service activation results
824     */
825    List<struct SetupDataCallResultInfo> dcList;
826};
827
828/**
829 * @brief Defines PDP context information.
830 */
831struct DataProfileDataInfo {
832    /**
833     * Request SN
834     */
835    int serial;
836
837    /**
838     * Data service type. The value 0 indicates the default data service,
839     * and the value 1 indicates the MMS data service.
840     */
841    int profileId;
842
843    /**
844     * Authentication mode:
845     *- 0: no authentication
846     *- 1: Password Authentication Protocol (PAP)
847     *- 2: Challenge Handshake Authentication Protocol (CHAP)
848     */
849    int authenticationType;
850
851    /**
852     * Access point name
853     */
854    String apn;
855
856    /**
857     * Protocol version
858     */
859    String protocol;
860
861    /**
862     * Roaming protocol version
863     */
864    String roamingProtocol;
865
866    /**
867     * Username
868     */
869    String userName;
870
871    /**
872     * Password
873     */
874    String password;
875};
876
877/**
878 * @brief Defines the PDP context list.
879 */
880struct DataProfilesInfo {
881    /**
882     * Request SN
883     */
884    int serial;
885
886    /**
887     * Number of PDP contexts
888     */
889    int profilesSize;
890
891    /**
892     * Roaming or not
893     */
894    boolean isRoaming;
895
896    /**
897     * PDP context list
898     */
899    List<struct DataProfileDataInfo> profiles;
900};
901
902/**
903 * @brief Defines the data service information.
904 */
905struct DataCallInfo {
906    /**
907     * Request SN
908     */
909    int serial;
910
911    /**
912     * Radio access technology. For details, see {@link RilRadioTech}.
913     */
914    int radioTechnology;
915
916    /**
917     * Whether the PDP context is set for the modem
918     */
919    boolean modemCognitive;
920
921    /**
922     * Whether roaming is allowed. The value true indicates that roaming is allowed,
923     * and the value false indicates the opposite.
924     */
925    boolean roamingAllowed;
926
927    /**
928     * Whether the user is roaming. The value true indicates that the user is roaming,
929     * and the value false indicates the opposite.
930     */
931    boolean isRoaming;
932
933    /**
934     * PDP context information
935     */
936    struct DataProfileDataInfo dataProfileInfo;
937};
938
939/**
940 * @brief Defines the network bandwidth information.
941 */
942struct DataLinkBandwidthInfo {
943    /**
944     * Request SN
945     */
946    int serial;
947
948    /**
949     * PDP context ID
950     */
951    int cid;
952
953    /**
954     * Quality of Service (QoS) class
955     */
956    int qi;
957
958    /**
959     * Downlink GBR
960     */
961    int dlGfbr;
962
963    /**
964     * Uplink GBR
965     */
966    int ulGfbr;
967
968    /**
969     * Downlink MBR
970     */
971    int dlMfbr;
972
973    /**
974     * Uplink MBR
975     */
976    int ulMfbr;
977
978    /**
979     * Uplink aggregate maximum bit rate (AMBR)
980     */
981    int ulSambr;
982
983    /**
984     * Downlink AMBR
985     */
986    int dlSambr;
987
988    /**
989     * Time unit
990     */
991    int averagingWindow;
992};
993
994/**
995 * @brief Defines the network bandwidth reporting rule.
996 */
997struct DataLinkBandwidthReportingRule {
998    /**
999     * Request SN
1000     */
1001    int serial;
1002
1003    /**
1004     * Radio access technology. For details, see {@link RilRadioTech}.
1005     */
1006    int rat;
1007
1008    /**
1009     * Delay time
1010     */
1011    int delayMs;
1012
1013    /**
1014     * Uplink delay
1015     */
1016    int delayUplinkKbps;
1017
1018    /**
1019     * Downlink delay
1020     */
1021    int delayDownlinkKbps;
1022
1023    /**
1024     * Maximum number of uplink parameters
1025     */
1026    int maximumUplinkKbpsSize;
1027
1028    /**
1029     * Maximum number of downlink parameters
1030     */
1031    int maximumDownlinkKbpsSize;
1032
1033    /**
1034     * Maximum uplink parameter list
1035     */
1036    List<int> maximumUplinkKbps;
1037
1038    /**
1039     * Maximum downlink parameter list
1040     */
1041    List<int> maximumDownlinkKbps;
1042};
1043
1044/**
1045 * @brief Defines the data service performance mode.
1046 */
1047struct DataPerformanceInfo {
1048    /**
1049     * Enabling the performance mode
1050     */
1051    int performanceEnable;
1052
1053    /**
1054     * Forcibly enabling the performance mode
1055     */
1056    int enforce;
1057};
1058
1059/**
1060 * @brief Defines the sleep mode for data services.
1061 */
1062struct DataSleepInfo {
1063    /**
1064     * Enabling sleep mode
1065     */
1066    int sleepEnable;
1067};
1068
1069/**
1070 * @brief Defines the common information.
1071 */
1072struct UniInfo {
1073    /**
1074     * Request SN
1075     */
1076    int serial;
1077
1078    /**
1079     * GSM index
1080     */
1081    int gsmIndex;
1082
1083    /**
1084     * Common information ID
1085     */
1086    boolean flag;
1087
1088    /**
1089     * Parameter 1
1090     */
1091    int arg1;
1092
1093    /**
1094     * Parameter 2
1095     */
1096    int arg2;
1097
1098    /**
1099     * String
1100     */
1101    String strTmp;
1102};
1103
1104/**
1105 * @brief Defines the radio access technology of the CS domain.
1106 */
1107struct VoiceRadioTechnology {
1108
1109    /**
1110     * System service status
1111     */
1112    enum RilSrvStatus srvStatus;
1113
1114    /**
1115     * System service domain
1116     */
1117    enum RilSrvDomain srvDomain;
1118
1119    /**
1120     * Roaming status
1121     */
1122    enum RilRoamStatus roamStatus;
1123
1124    /**
1125     * SIM card status
1126     */
1127    enum RilSimStatus simStatus;
1128
1129    /**
1130     * SIM card lock status
1131     */
1132    enum RilSimLockStatus lockStatus;
1133
1134    /**
1135     * System mode
1136     */
1137    enum RilSysMode sysMode;
1138
1139    /**
1140     * String corresponding to the system mode
1141     */
1142    String sysModeName;
1143
1144    /**
1145     * Radio access technology type. For details, see {@link RilRadioTech}.
1146     */
1147    enum RilRadioTech actType;
1148
1149    /**
1150     * String corresponding to the radio access technology type
1151     */
1152    String actName;
1153
1154    /**
1155     * Radio access technology ID
1156     */
1157    int flag;
1158};
1159
1160/**
1161 * @brief Defines the dialing information.
1162 */
1163struct DialInfo {
1164    /**
1165     * Request SN
1166     */
1167    int serial;
1168
1169    /**
1170     * CLIR mode:
1171     *- 0: default
1172     *- 1: enable
1173     *- 2: disable
1174     */
1175    int clir;
1176
1177    /**
1178     * Phone number
1179     */
1180    String address;
1181};
1182
1183/**
1184 * @brief Defines the call status information.
1185 */
1186struct CallInfo {
1187    /**
1188     * Call ID
1189     */
1190    int index;
1191
1192    /**
1193     * Call direction. The value 0 indicates the calling party, and the value 1 indicates the called party.
1194     */
1195    int dir;
1196
1197    /**
1198     * Call status:
1199     *- 0: activated state
1200     *- 1: call hold state
1201     *- 2: calling party, dialing state
1202     *- 3: calling party, ringback tone state
1203     *- 4: called party, incoming call state
1204     *- 5: called party, call waiting state
1205     *- 6: disconnected state
1206     *- 7: disconnecting state
1207     *- 8: idle state
1208     */
1209    int state;
1210
1211    /**
1212     * Call mode:
1213     *- 0: voice call
1214     *- 1: data call
1215     *- 2: fax
1216     */
1217    int mode;
1218
1219    /**
1220     * Multi-party call status:
1221     *- 0: not a multi-party call
1222     *- 1: a multi-party call
1223     */
1224    int mpty;
1225
1226    /**
1227     * Call domain of the voice call:
1228     *- 0: CS domain
1229     *- 1: IP multimedia system (IMS) domain
1230     */
1231    int voiceDomain;
1232
1233    /**
1234     * Call type. Currently, the value can only be 0, indicating a voice call.
1235     */
1236    int callType;
1237
1238    /**
1239     * Code address type:
1240     *-129: common number
1241     *- 145: international number
1242     */
1243    int type;
1244
1245    /**
1246     * Phone number
1247     */
1248    String number;
1249
1250    /**
1251     * Name of a phone number in the phonebook
1252     */
1253    String alpha;
1254};
1255
1256/**
1257 * @brief Defines the call status information list.
1258 */
1259struct CallInfoList {
1260    /**
1261     * Total number
1262     */
1263    int callSize;
1264
1265    /**
1266     * ID of the call status information list
1267     */
1268    int flag;
1269
1270    /**
1271     * Call status information list
1272     */
1273    List<struct CallInfo> calls;
1274};
1275
1276/**
1277 * @brief Obtains the call line identifier presentation (CLIP) result.
1278 */
1279struct GetClipResult {
1280    /**
1281     * Query result. For details, see {@link RilErrType}.
1282     */
1283    int result;
1284
1285    /**
1286     * Action of enabling or disabling CLIP
1287     */
1288    int action;
1289
1290    /**
1291     * CLIP subscription status:
1292     *- 0: CLIP not provided
1293     *- 1: CLIP provided
1294     *- 2: unknown (network cause)
1295     */
1296    int clipStat;
1297};
1298
1299/**
1300 * @brief Obtains the calling line identification restriction (CLIR) result.
1301 */
1302struct GetClirResult {
1303    /**
1304     * Query result. For details, see {@link RilErrType}.
1305     */
1306    int result;
1307
1308    /**
1309     * Action of enabling or disabling CLIR
1310     */
1311    int action;
1312
1313    /**
1314     * CLIR subscription status:
1315     *- 0: CLIR not provided
1316     *- 1: CLIR provided in permanent mode
1317     *- 2: unknown (network cause)
1318     *- 3: CLIR temporarily restricted
1319     *- 4: CLIR temporarily allowed
1320     */
1321    int clirStat;
1322};
1323
1324/**
1325 * @brief Defines the call waiting result.
1326 */
1327struct CallWaitResult {
1328    /**
1329     * Query result. For details, see {@link RilErrType}.
1330     */
1331    int result;
1332
1333    /**
1334     * Call waiting status:
1335     *- 0: not activated
1336     *- 1: activated
1337     */
1338    int status;
1339
1340    /**
1341     * Service class. For details, see 3GPP TS 27.007.
1342     */
1343    int classCw;
1344};
1345
1346/**
1347 * @brief Defines the call restriction information.
1348 */
1349struct CallRestrictionInfo {
1350    /**
1351     * Operation mode:
1352     *- 0: deactivation
1353     *- 1: activation
1354     */
1355    int mode;
1356
1357    /**
1358     * Operation object
1359     */
1360    String fac;
1361
1362    /**
1363     * Password
1364     */
1365    String password;
1366};
1367
1368/**
1369 * @brief Defines the call restriction result.
1370 */
1371struct CallRestrictionResult {
1372    /**
1373     * Query result. For details, see {@link RilErrType}.
1374     */
1375    int result;
1376
1377    /**
1378     * Service status:
1379     *- 0: not activated
1380     *- 1: activated
1381     */
1382    int status;
1383
1384    /**
1385     * Service class. For details, see 3GPP TS 27.007.
1386     */
1387    int classCw;
1388};
1389
1390/**
1391 * @brief Defines the call forwarding information.
1392 */
1393struct CallForwardSetInfo {
1394    /**
1395     * Call forwarding type:
1396     *- 0: call forwarding unconditional
1397     *- 1: call forwarding on busy
1398     *- 2: call forwarding on no reply
1399     *- 3: call forwarding not reachable (no network service, or power-off)
1400     *- 4: any call forwarding
1401     *- 5: any call forwarding conditional
1402     */
1403    int reason;
1404
1405    /**
1406     * Call forwarding operation mode:
1407     *- 0: deactivation
1408     *- 1: activation
1409     *- 2: status query
1410     *- 3: registration
1411     *- 4: deletion
1412     */
1413    int mode;
1414
1415    /**
1416     * Service class. For details, see 3GPP TS 27.007.
1417     */
1418    int classx;
1419
1420    /**
1421     * Phone number
1422     */
1423    String number;
1424};
1425
1426/**
1427 * @brief Defines the call forwarding query result.
1428 */
1429struct CallForwardQueryResult {
1430    /**
1431     * Request SN
1432     */
1433    int serial;
1434
1435    /**
1436     * Query result. For details, see {@link RilErrType}.
1437     */
1438    int result;
1439
1440    /**
1441     * Status:
1442     *- 0: not activated
1443     *- 1: activated
1444     */
1445    int status;
1446
1447    /**
1448     * Service class. For details, see 3GPP TS 27.007.
1449     */
1450    int classx;
1451
1452    /**
1453     * Number type:
1454     *-129: common number
1455     *- 145: international number
1456     */
1457    int type;
1458
1459    /**
1460     * Call forwarding type:
1461     *- 0: call forwarding unconditional
1462     *- 1: call forwarding on busy
1463     *- 2: call forwarding on no reply
1464     *- 3: call forwarding not reachable (no network service or power-off)
1465     *- 4: any call forwarding
1466     *- 5: any call forwarding conditional
1467     */
1468    int reason;
1469
1470    /**
1471     * Waiting time
1472     */
1473    int time;
1474
1475    /**
1476     * Phone number
1477     */
1478    String number;
1479};
1480
1481/**
1482 * @brief Defines the list of call forwarding information.
1483 */
1484struct CallForwardQueryInfoList {
1485    /**
1486     * Total number
1487     */
1488    int callSize;
1489
1490    /**
1491     * ID of the call forwarding query result
1492     */
1493    int flag;
1494
1495    /**
1496     * Call forwarding query result
1497     *
1498     */
1499    List<struct CallForwardQueryResult> calls;
1500};
1501
1502/**
1503 * @brief Defines the Unstructured Supplementary Data Service (USSD) information.
1504 */
1505struct UssdNoticeInfo {
1506    /**
1507     * USSD type:
1508     *- 0: The network does not require a response from the client.
1509     *- 1: The network requires a response from the client.
1510     *- 2: The USSD session is released by the network.
1511     *- 3: Another local client has responded to the request.
1512     *- 4: The operation is not supported.
1513     *- 5: A network timeout occurred.
1514     */
1515    int type;
1516
1517    /**
1518     * USSD string
1519     */
1520    String message;
1521};
1522
1523/**
1524 * @brief Defines the supplementary service information.
1525 */
1526struct SsNoticeInfo {
1527    /**
1528     * Service type:
1529     *- 0: call forwarding unconditional
1530     *- 1: call forwarding on busy
1531     *- 2: call forwarding on no reply
1532     *- 3: call forwarding not reachable (no network service, or power-off)
1533     */
1534    int serviceType;
1535
1536    /**
1537     * Request type:
1538     *- 0: deactivation
1539     *- 1: activated
1540     *- 2: status query
1541     *- 3: registration
1542     *- 4: deletion
1543     */
1544    int requestType;
1545
1546    /**
1547     * Service class. For details, see 3GPP TS 27.007.
1548     */
1549    int serviceClass;
1550
1551    /**
1552     * Query result. For details, see {@link RilErrType}.
1553     */
1554    int result;
1555};
1556
1557/**
1558 * @brief Defines the Single Radio Voice Call Continuity (SRVCC) status information.
1559 */
1560struct SrvccStatus {
1561    /**
1562     * SRVCC status:
1563     *- 0: started
1564     1: success
1565     *- 2: failed
1566     *- 3: cancelled
1567     */
1568    int status;
1569};
1570
1571/**
1572 * @brief Defines the ringback tone information.
1573 */
1574struct RingbackVoice {
1575    /**
1576     * Ringback tone type:
1577     *- 0: network ringback tone
1578     *- 1: local ringback tone
1579     */
1580    int status;
1581};
1582
1583/**
1584 * @brief Defines the dual tone multi-frequency (DTMF) information.
1585 */
1586struct DtmfInfo {
1587    /**
1588     * Call ID
1589     */
1590    int callId;
1591
1592    /**
1593     * Duration for playing the DTMF tone
1594     */
1595    int onLength;
1596
1597    /**
1598     * Interval for sending DTMF signals
1599     */
1600    int offLength;
1601
1602    /**
1603     * DTMF string length
1604     */
1605    int stringLength;
1606
1607    /**
1608     * DTMF keyword
1609     */
1610    String dtmfKey;
1611};
1612
1613/**
1614 * @brief Defines the call restriction password.
1615 */
1616struct SetBarringInfo {
1617    /**
1618     * Operation object
1619     */
1620    String fac;
1621
1622    /**
1623     * Old password
1624     */
1625    String oldPassword;
1626
1627    /**
1628     * New password
1629     */
1630    String newPassword;
1631};
1632
1633/**
1634 * @brief Defines the SIM card status information.
1635 */
1636struct CardStatusInfo {
1637    /**
1638     * SIM card index
1639     */
1640    int index;
1641
1642    /**
1643     * SIM card type:
1644     *- 0: unknown
1645     *- 1: common SIM card
1646     *- 2: USIM, supporting 4G
1647     */
1648    int simType;
1649
1650   /**
1651     * SIM card status:
1652     *- -1: unknown
1653     *- 0: SIM card not inserted
1654     *- 1: SIM card detected normally
1655     *- 2: PIN required
1656     *- 3: PUK required
1657     *- 4: PIN2 required
1658     *- 5: PUK2 required
1659     */
1660    int simState;
1661};
1662
1663/**
1664 * @brief Defines the SIM data request information.
1665 */
1666struct SimIoRequestInfo {
1667    /**
1668     * Command sent from the mobile equipment (ME) to the SIM card. For details, see GSM 51.011[28].
1669     */
1670    int command;
1671
1672    /**
1673     * Identifier of the basic data file on the SIM card
1674     */
1675    int fileId;
1676
1677    /**
1678     * Command parameter 1 of the SIM data request. For details, see 3GPP TS 51.011[28].
1679     */
1680    int p1;
1681
1682    /**
1683     * Command parameter 2 of the SIM data request. For details, see 3GPP TS 51.011[28].
1684     */
1685    int p2;
1686
1687    /**
1688     * Command parameter 3 of the SIM data request. For details, see 3GPP TS 51.011[28].
1689     */
1690    int p3;
1691
1692    /**
1693     * Request SN
1694     */
1695    int serial;
1696
1697    /**
1698     * Data to be written into the SIM card
1699     */
1700    String data;
1701
1702    /**
1703     * SIM card file path. For details, see ETSI TS 102 221 [60].
1704     */
1705    String path;
1706
1707    /**
1708     * PIN2
1709     */
1710    String pin2;
1711
1712    /**
1713     * App ID
1714     */
1715    String aid;
1716};
1717
1718/**
1719 * @brief Defines the response to the SIM data request.
1720 */
1721struct IccIoResultInfo {
1722    /**
1723     * Status word 1 of the SIM card, which is returned by the SIM card after command execution
1724     */
1725    int sw1;
1726
1727    /**
1728     * Status word 2 of the SIM card, which is returned by the SIM card after command execution
1729     */
1730    int sw2;
1731
1732    /**
1733     * Response information
1734     */
1735    String response;
1736};
1737
1738/**
1739 * @brief Defines the SIM card lock information.
1740 */
1741struct SimLockInfo {
1742    /**
1743     * Service type. The value is the sum of integers that represent the service type. The default value is 255.
1744     *- 1: telephony service
1745     *- 2: data service
1746     *- 4: fax service
1747     *- 8: SMS service
1748     *- 16: data circuit sync
1749     *- 32: data circuit async
1750     *- 64: dedicated packet access
1751     *- 128: dedicated portable device (PAD) access
1752     */
1753    int classx;
1754
1755    /**
1756     * Request SN
1757     */
1758    int serial;
1759
1760    /**
1761     * SIM lock type:
1762     *- AO: barring of all outgoing calls
1763     *- OI: barring of all outgoing international calls
1764     *- OX: barring of all outgoing international calls except those directed to the home country
1765     *- AI: barring of all incoming calls
1766     *- IR: barring of all incoming calls when roaming outside the home location
1767     *- AB: barring of all services (applicable only when the mode is greater than or equal to 0)
1768     *- AG: barring of the outgoing call service (applicable only when the mode is greater than or equal to 0)
1769     *- AC: barring of the incoming call service (applicable only when the mode is greater than or equal to 0)
1770     *- FD: fixed dialing number (FDN)
1771     *- PN: network locking
1772     *- PU: subnet locking
1773     *- PP: SP locking
1774     */
1775    String fac;
1776
1777    /**
1778     * Mode:
1779     *- 0: deactivation (When fac is set to PN, PU, or PP, the operation is equivalent to unlocking.)
1780     *- 1: activation (When fac is set to PN, PU, or PP, activation is not supported.)
1781     *- 2: query
1782     */
1783    int mode;
1784
1785    /**
1786     * SIM card lock status.
1787     * It indicates the activation status of the first three layers of locks when fac is set to PN, PU, or PP.
1788     *- 0: not activated
1789     *- 1: activated
1790     */
1791    int status;
1792
1793    /**
1794     * Password text
1795     */
1796    String passwd;
1797};
1798
1799/**
1800 * @brief Defines the SIM card password information.
1801 */
1802struct SimPasswordInfo {
1803    /**
1804     * SIM lock type:
1805     *- AO: barring of all outgoing calls
1806     *- OI: barring of all outgoing international calls
1807     *- OX: barring of all outgoing international calls except those directed to the home country
1808     *- AI: barring of all incoming calls
1809     *- IR: barring of all incoming calls when roaming outside the home location
1810     *- AB: barring of all services (applicable only when the mode is greater than or equal to 0)
1811     *- AG: barring of the outgoing call service (applicable only when the mode is greater than or equal to 0)
1812     *- AC: barring of the incoming call service (applicable only when the mode is greater than or equal to 0)
1813     *- FD: fixed dialing number (FDN)
1814     *- PN: network locking
1815     *- PU: subnet locking
1816     *- PP: SP locking
1817     */
1818    String fac;
1819
1820    /**
1821     * Old password text
1822     */
1823    String oldPassword;
1824
1825    /**
1826     * New password text
1827     */
1828    String newPassword;
1829
1830    /**
1831     * Request SN
1832     */
1833    int serial;
1834
1835    /**
1836     * Maximum password length
1837     */
1838    int passwordLength;
1839};
1840
1841/**
1842 * @brief Defines the maximum number of SIM password attempts.
1843 */
1844struct SimPinInputTimes {
1845    /**
1846     * Request SN
1847     */
1848    int serial;
1849
1850    /**
1851     * Number of remaining password attempts
1852     */
1853    int times;
1854
1855    /**
1856     * Number of remaining PUK attempts
1857     */
1858    int pukTimes;
1859
1860    /**
1861     * Number of remaining PIN attempts
1862     */
1863    int pinTimes;
1864
1865    /**
1866     * Number of remaining PUK2 attempts
1867     */
1868    int puk2Times;
1869
1870    /**
1871     * Number of remaining PIN2 attempts
1872     */
1873    int pin2Times;
1874
1875    /**
1876     * Request fields, for example:
1877     * SIM PIN2: SIM card PIN2 request
1878     */
1879    String code;
1880};
1881
1882/**
1883 * @brief Defines the APDU data transmission request information.
1884 */
1885struct ApduSimIORequestInfo {
1886    /**
1887     * Request SN
1888     */
1889    int serial;
1890
1891    /**
1892     * Channel ID
1893     */
1894    int channelId;
1895
1896    /**
1897     * APDU instruction type. For details, see ETSI 102 221 [55].
1898     */
1899    int type;
1900
1901    /**
1902     * APDU instruction. For details, see ETSI 102 221 [55].
1903     */
1904    int instruction;
1905
1906    /**
1907     * Command parameter 1 of the SIM data request. For details, see 3GPP TS 51.011[28].
1908     */
1909    int p1;
1910
1911    /**
1912     * Command parameter 2 of the SIM data request. For details, see 3GPP TS 51.011[28].
1913     */
1914    int p2;
1915
1916    /**
1917     * Command parameter 3 of the SIM data request. For details, see 3GPP TS 51.011[28].
1918     * If p3 is a negative value, a 4-byte APDU is sent to the SIM card.
1919     */
1920    int p3;
1921
1922    /**
1923     * Data to be transmitted
1924     */
1925    String data;
1926};
1927
1928/**
1929 * @brief Defines the SIM card authentication request information.
1930 */
1931struct SimAuthenticationRequestInfo {
1932    /**
1933     * Request SN
1934     */
1935    int serial;
1936
1937    /**
1938     * App ID
1939     */
1940    String aid;
1941
1942    /**
1943     * Authentication data
1944     */
1945    String authData;
1946};
1947
1948/**
1949 * @brief Defines the response to the request for enabling the logical channel of the APDU.
1950 */
1951struct OpenLogicalChannelResponse {
1952    /**
1953     * Status word 1 of the SIM card, which is returned as a response to the SIM data request
1954     */
1955    int sw1;
1956
1957    /**
1958     * Status word 2 of the SIM card, which is returned by the SIM card after command execution
1959     */
1960    int sw2;
1961
1962    /**
1963     * ID of the opened logical channel
1964     */
1965    int channelId;
1966
1967    /**
1968     * Response information
1969     */
1970    String response;
1971};
1972
1973/**
1974 * @brief Defines the response to the request for unlocking the SIM card.
1975 */
1976struct LockStatusResp {
1977    /**
1978     * Query result. For details, see {@link RilErrType}.
1979     */
1980    int result;
1981
1982    /**
1983     * Number of remaining attempts
1984     */
1985    int remain;
1986};
1987
1988/**
1989 * @brief Defines the protocol stack information of the primary and secondary SIM cards.
1990 */
1991struct RadioProtocol {
1992    /**
1993     * Card slot ID
1994     */
1995    int slotId;
1996
1997    /**
1998     * Session ID
1999     */
2000    int sessionId;
2001
2002    /**
2003     * Radio protocol parameters. For details, see {@link RadioProtocolPhase}.
2004     */
2005    enum RadioProtocolPhase phase;
2006
2007    /**
2008     * Radio protocol technology:
2009     *- 1: GSM
2010     *- 2: 1XRTT
2011     *- 4: WCDMA
2012     *- 8: HSPA
2013     *- 16: HSPAP
2014     *- 32: TDSCDMA
2015     *- 64: EV-DO
2016     *- 128: EHRPD
2017     *- 256: LTE
2018     *- 512: LTE_CA
2019     *- 1024: IWLAN
2020     *- 2048: NR
2021     */
2022    int technology;
2023
2024    /**
2025     * Modem ID, corresponding to slotId at the bottom layer
2026     */
2027    int modemId;
2028
2029    /**
2030     * Radio protocol status. For details, see {@link RadioProtocolStatus}.
2031     */
2032    enum RadioProtocolStatus status;
2033};
2034
2035/**
2036 * @brief Defines the GSM received signal strength indicator.
2037 */
2038struct GsmRssi {
2039    /**
2040     * Received signal strength. The value ranges from 0 to 31.
2041     */
2042    int rxlev;
2043
2044    /**
2045     * Bit error rate, which ranges from 0 to 7
2046     */
2047    int ber;
2048};
2049
2050/**
2051 * @brief Defines the CDMA received signal strength indicator.
2052 */
2053struct CdmaRssi {
2054    /**
2055     * Absolute value of the signal strength. The value is the actual signal strength multiplied by -1.
2056     */
2057    int absoluteRssi;
2058
2059    /**
2060     * Ratio of the received energy of the pseudo-noise (PN) code chip to the total received power spectral density
2061     */
2062    int ecno;
2063};
2064
2065/**
2066 * @brief Defines the WCDMA received signal strength indicator.
2067 */
2068struct WcdmaRssi {
2069    /**
2070     * Signal received strength, which ranges from 0 to 99
2071     */
2072    int rxlev;
2073
2074    /**
2075     * Ratio of the received energy per PN code chip to the total received power spectral density
2076     */
2077    int ecio;
2078
2079    /**
2080     * Received signal code power, which ranges from 0 to 96
2081     */
2082    int rscp;
2083
2084    /**
2085     * Bit error rate, which ranges from 0 to 7
2086     */
2087    int ber;
2088};
2089
2090/**
2091 * @brief Defines the LTE signal strength.
2092 */
2093struct LteRssi {
2094    /**
2095     * Signal received strength, which ranges from 0 to 99
2096     */
2097    int rxlev;
2098
2099    /**
2100     * Reference signal received quality, which ranges from 0 to 33
2101     */
2102    int rsrq;
2103
2104    /**
2105     * Received signal code power, which ranges from 0 to 97.
2106     */
2107    int rsrp;
2108
2109    /**
2110     * Signal to interference plus noise ratio, which ranges from 0 to 251 (applicable only to the LTE mode)
2111     */
2112    int snr;
2113};
2114
2115/**
2116 * @brief Defines the TD-SCDMA signal strength.
2117 */
2118struct TdScdmaRssi {
2119    /**
2120     * Received signal code power
2121     */
2122    int rscp;
2123};
2124
2125/**
2126 * @brief Defines the NR signal strength.
2127 */
2128struct NrRssi {
2129    /**
2130     * Received signal code power
2131     */
2132    int rsrp;
2133
2134    /**
2135     * Received signal quality
2136     */
2137    int rsrq;
2138
2139    /**
2140     * Signal to interference plus noise ratio
2141     */
2142    int sinr;
2143};
2144
2145/**
2146 * @brief Defines the received signal strength information.
2147 */
2148struct Rssi {
2149    /**
2150     * GSM signal strength. For details, see {@link GsmRssi}.
2151     */
2152    struct GsmRssi gw;
2153
2154    /**
2155     * CDMA signal strength. For details, see {@link CdmaRssi}.
2156     */
2157    struct CdmaRssi cdma;
2158
2159    /**
2160     * WCDMA signal strength. For details, see {@link WcdmaRssi}.
2161     */
2162    struct WcdmaRssi wcdma;
2163
2164    /**
2165     * LTE signal strength. For details, see {@link LteRssi}.
2166     */
2167    struct LteRssi lte;
2168
2169    /**
2170     * TD-SCDMA signal strength. For details, see {@link TdScdmaRssi}.
2171     */
2172    struct TdScdmaRssi tdScdma;
2173
2174    /**
2175     * NR signal strength. For details, see {@link NrRssi}.
2176     */
2177    struct NrRssi nr;
2178};
2179
2180/**
2181 * @brief Defines the registration status information of the CS domain.
2182 */
2183struct CsRegStatusInfo {
2184    /**
2185     * Notification type:
2186     *- 0: notification disabled
2187     *- 1: notification using format 1, which is defined by the chip
2188     *- 2: notification using format 2, which is defined by the chip
2189     */
2190    int notifyType;
2191
2192    /**
2193     * Registration status. For details, see {@link RilRegStatus}.
2194     */
2195    enum RilRegStatus regStatus;
2196
2197    /**
2198     * Location area code
2199     */
2200    int lacCode;
2201
2202    /**
2203     * Cell ID
2204     */
2205    int cellId;
2206
2207    /**
2208     * Radio access technology type. For details, see {@link RilRadioTech}.
2209     */
2210    enum RilRadioTech radioTechnology;
2211
2212    /**
2213     * Flag used by the network search management module in the response
2214     */
2215    int flag;
2216};
2217
2218/**
2219 * @brief Defines the registration status information of the PS domain.
2220 */
2221struct PsRegStatusInfo {
2222    /**
2223     * Notification type:
2224     *- 0: notification disabled
2225     *- 1: notification using format 1, which is defined by the chip
2226     *- 2: notification using format 2, which is defined by the chip
2227     */
2228    int notifyType;
2229
2230    /**
2231     * Registration status. For details, see {@link RilRegStatus}.
2232     */
2233    enum RilRegStatus regStatus;
2234
2235    /**
2236     * Location area code
2237     */
2238    int lacCode;
2239
2240    /**
2241     * Cell ID
2242     */
2243    int cellId;
2244
2245    /**
2246     * Radio access technology type. For details, see {@link RilRadioTech}.
2247     */
2248    enum RilRadioTech radioTechnology;
2249
2250    /**
2251     * Whether the NR mode is available
2252     */
2253    boolean isNrAvailable;
2254
2255    /**
2256     * Whether ENDC is available
2257     */
2258    boolean isEnDcAvailable;
2259
2260    /**
2261     * Whether DCNR is restricted
2262     */
2263    boolean isDcNrRestricted;
2264};
2265
2266/**
2267 * @brief Defines the carrier information.
2268 *
2269 */
2270struct OperatorInfo {
2271    /**
2272     * Long carrier name of the registered network
2273     */
2274    String longName;
2275
2276    /**
2277     * Short carrier name of the registered network
2278     */
2279    String shortName;
2280
2281    /**
2282     * Carrier ID
2283     */
2284    String numeric;
2285};
2286
2287/**
2288 * @brief Defines the available network information.
2289 */
2290struct AvailableNetworkInfo {
2291    /**
2292     * Long name of the registered network in alphanumeric format
2293     */
2294    String longName;
2295
2296    /**
2297     * Short name of the registered network in alphanumeric format
2298     */
2299    String shortName;
2300
2301    /**
2302     * Available network ID
2303     */
2304    String numeric;
2305
2306    /**
2307     * Network status. For details, see {@link RilRegStatus}.
2308     */
2309    int status;
2310
2311    /**
2312     * Radio access technology type. For details, see {@link RilRadioTech}.
2313     */
2314    int rat;
2315};
2316
2317/**
2318 * @brief Defines the available network list.
2319 */
2320struct AvailableNetworkList {
2321    /**
2322     * Number
2323     */
2324    int itemNum;
2325
2326    /**
2327     * Available network list
2328     */
2329    List<struct AvailableNetworkInfo> availableNetworkInfo;
2330
2331    /**
2332     * Network list flag
2333     */
2334    int flag;
2335};
2336
2337/**
2338 * @brief Defines the network mode information.
2339 */
2340struct SetNetworkModeInfo {
2341    /**
2342     * Network mode. For details, see {@link PreferredNetworkTypeInfo}.
2343     */
2344    int selectMode;
2345
2346    /**
2347     * Carrier
2348     */
2349    String oper;
2350
2351    /**
2352     * Flag
2353     */
2354    int flag;
2355};
2356
2357/**
2358 * @brief Defines the GSM cell information.
2359 */
2360struct CellListRatGsm {
2361    /**
2362     * Cell band information
2363     */
2364    int band;
2365
2366    /**
2367     * Absolute RF channel number of the broadcast control channel (BCCH) carrier, which ranges from 0 to 1023
2368     */
2369    int arfcn;
2370
2371    /**
2372     * Base transceiver station identity code
2373     */
2374    int bsic;
2375
2376    /**
2377     * Cell information ID
2378     */
2379    int cellId;
2380
2381    /**
2382     * Location area code, which ranges from 0 to 0xFFFF
2383     */
2384    int lac;
2385
2386    /**
2387     * Signal received strength, which ranges from -120 to 37
2388     */
2389    int rxlev;
2390};
2391
2392/**
2393 * @brief Defines the LTE cell information.
2394 */
2395struct CellListRatLte {
2396    /**
2397     * Absolute RF channel number of the BCCH carrier, which ranges from 0 to 1023
2398     */
2399    int arfcn;
2400
2401    /**
2402     * Physical cell ID
2403     */
2404    int pci;
2405
2406    /**
2407     * Signal received power, which ranges from -140 to -44
2408     */
2409    int rsrp;
2410
2411    /**
2412     * Signal received quality, which ranges from -19 to -3
2413     */
2414    int rsrq;
2415
2416    /**
2417     * Signal received strength, which ranges from -120 to 37
2418     */
2419    int rxlev;
2420};
2421
2422/**
2423 * @brief Defines the WCDMA cell information.
2424 */
2425struct CellListRatWcdma {
2426    /**
2427     * Absolute RF channel number of the BCCH carrier, which ranges from 0 to 16383
2428     */
2429    int arfcn;
2430
2431    /**
2432     * Primary scrambling code, which ranges from 0 to 511
2433     */
2434    int psc;
2435
2436    /**
2437     * Received signal code power, which ranges from -120 to 25
2438     */
2439    int rscp;
2440
2441    /**
2442     * Ratio of the power of each modulation bit to the noise spectral density, which ranges from -25 to 0
2443     */
2444    int ecno;
2445};
2446
2447/**
2448 * @brief Defines the CDMA cell information.
2449 */
2450struct CellListRatCdma {
2451    /**
2452     * System ID
2453     */
2454    int systemId;
2455
2456    /**
2457     * Network ID
2458     */
2459    int networkId;
2460
2461    /**
2462     * Basic ID
2463     */
2464    int baseId;
2465
2466    /**
2467     * Zone ID
2468     */
2469    int zoneId;
2470
2471    /**
2472     * PN pilot sequence
2473     */
2474    int pilotPn;
2475
2476    /**
2477     * Pilot signal strength
2478     */
2479    int pilotStrength;
2480
2481    /**
2482     * Channel
2483     */
2484    int channel;
2485
2486    /**
2487     * Longitude
2488     */
2489    int longitude;
2490
2491    /**
2492     * Latitude
2493     */
2494    int latitude;
2495};
2496
2497/**
2498 * @brief Defines the TD-SCDMA cell information.
2499 */
2500struct CellListRatTdscdma {
2501    /**
2502     * Absolute RF channel number of the BCCH carrier
2503     */
2504    int arfcn;
2505
2506    /**
2507     * Synchronization flag
2508     */
2509    int syncId;
2510
2511    /**
2512     * Super cell
2513     */
2514    int sc;
2515
2516    /**
2517     * Cell ID
2518     */
2519    int cellId;
2520
2521    /**
2522     * Location area code, which ranges from 0 to 0xFFFF
2523     */
2524    int lac;
2525
2526    /**
2527     * Received signal code power
2528     */
2529    int rscp;
2530
2531    /**
2532     * Discontinuous reception cycle
2533     */
2534    int drx;
2535
2536    /**
2537     * Routing area code
2538     */
2539    int rac;
2540
2541    /**
2542     * Super cell ID
2543     */
2544    int cpid;
2545};
2546
2547/**
2548 * @brief Defines the NR cell information.
2549 */
2550struct CellListRatNr {
2551    /**
2552     * Absolute RF channel number of the BCCH carrier
2553     */
2554    int nrArfcn;
2555
2556    /**
2557     * Physical cell ID
2558     */
2559    int pci;
2560
2561    /**
2562     * Type allocation code
2563     */
2564    int tac;
2565
2566    /**
2567     * NR cell ID
2568     */
2569    int nci;
2570};
2571
2572/**
2573 * @brief Defines cell information for different network modes.
2574 */
2575union ServiceCellParas {
2576    /**
2577     * GSM cell information. For details, see {@link CellListRatGsm}.
2578     */
2579    struct CellListRatGsm gsm;
2580
2581    /**
2582     * LTE cell information. For details, see {@link CellListRatLte}.
2583     */
2584    struct CellListRatLte lte;
2585
2586    /**
2587     * WCDMA cell information. For details, see {@link CellListRatWcdma}.
2588     */
2589    struct CellListRatWcdma wcdma;
2590
2591    /**
2592     * CDMA cell information. For details, see {@link CellListRatCdma}.
2593     */
2594    struct CellListRatCdma cdma;
2595
2596    /**
2597     * TD-SCDMA cell information. For details, see {@link CellListRatTdscdma}.
2598     */
2599    struct CellListRatTdscdma tdscdma;
2600
2601    /**
2602     * NR cell information. For details, see {@link CellListRatNr}.
2603     */
2604    struct CellListRatNr nr;
2605};
2606
2607/**
2608 * @brief Defines the neighboring cell information.
2609 */
2610struct CellNearbyInfo {
2611    /**
2612     * Access technology type:
2613     *- 0: unknown
2614     *- 1: GSM
2615     *- 2: CDMA
2616     *- 3: WCDMA
2617     *- 4: TD-SCDMA
2618     *- 5: LTE
2619     *- 6: NR
2620     */
2621    int ratType;
2622
2623    /**
2624     * Cell information for different network modes
2625     */
2626    union ServiceCellParas serviceCells;
2627};
2628
2629/**
2630 * @brief Defines the neighboring cell list.
2631 */
2632struct CellListNearbyInfo {
2633    /**
2634     * Number
2635     */
2636    int itemNum;
2637
2638    /**
2639     * Neighboring cell list
2640     */
2641    List<struct CellNearbyInfo> cellNearbyInfo;
2642};
2643
2644/**
2645 * @brief Defines the GSM cellular information.
2646 */
2647struct CellRatGsm {
2648    /**
2649     * Cell band information
2650     */
2651    int band;
2652
2653    /**
2654     * Absolute RF channel number of the BCCH carrier, which ranges from 0 to 1023
2655     */
2656    int arfcn;
2657
2658    /**
2659     * Base transceiver station identity code
2660     */
2661    int bsic;
2662
2663    /**
2664     * Cell ID
2665     */
2666    int cellId;
2667
2668    /**
2669     * Location area code, which ranges from 0 to 0xFFFF
2670     */
2671    int lac;
2672
2673    /**
2674     * Signal received strength, which ranges from -120 to 37
2675     */
2676    int rxlev;
2677
2678    /**
2679     * Signal received quality, which ranges from 0 to 7
2680     */
2681    int rxQuality;
2682
2683    /**
2684     * Timing advance, which ranges from 0 to 63
2685     */
2686    int ta;
2687};
2688
2689/**
2690 * @brief Defines the LTE cellular information.
2691 */
2692struct CellRatLte {
2693    /**
2694     * Absolute RF channel number of the BCCH carrier
2695     */
2696    int arfcn;
2697
2698    /**
2699     * Cell ID
2700     */
2701    int cellId;
2702
2703    /**
2704     * Physical cell ID
2705     */
2706    int pci;
2707
2708    /**
2709     * Type allocation code
2710     */
2711    int tac;
2712
2713    /**
2714     * Signal received power, which ranges from -140 to -44
2715     */
2716    int rsrp;
2717
2718    /**
2719     * Signal received quality, which ranges from -19 to -3
2720     */
2721    int rsrq;
2722
2723    /**
2724     * Received signal strength in dbm, which ranges from -90 to -25
2725     */
2726    int rssi;
2727};
2728
2729/**
2730 * @brief Defines the WCDMA cellular information.
2731 */
2732struct CellRatWcdma {
2733    /**
2734     * Absolute RF channel number of the BCCH carrier, which ranges from 0 to 16383
2735     */
2736    int arfcn;
2737
2738    /**
2739     * Primary scrambling code, which ranges from 0 to 511
2740     */
2741    int psc;
2742
2743    /**
2744     * Cell ID
2745     */
2746    int cellId;
2747
2748    /**
2749     * Location area code, which ranges from 0 to 0xFFFF
2750     */
2751    int lac;
2752
2753    /**
2754     * Signal received power in dBm, which ranges from -140 to -44
2755     */
2756    int rscp;
2757
2758    /**
2759     * Signal received strength, which ranges from -19 to -3
2760     */
2761    int rxlev;
2762
2763    /**
2764     * Received signal strength in dbm, which ranges from -90 to -25
2765     */
2766    int ecno;
2767
2768    /**
2769     * Discontinuous reception cycle, which ranges from 6 to 9
2770     */
2771    int drx;
2772
2773    /**
2774     * UMTS Terrestrial Radio Access Network (UTRAN) registration zone ID
2775     */
2776    int ura;
2777};
2778
2779/**
2780 * @brief Defines the CDMA cellular information.
2781 */
2782struct CellRatCdma {
2783    /**
2784     * System ID
2785     */
2786    int systemId;
2787
2788    /**
2789     * Network ID
2790     */
2791    int networkId;
2792
2793    /**
2794     * Basic ID
2795     */
2796    int baseId;
2797
2798    /**
2799     * Zone ID
2800     */
2801    int zoneId;
2802
2803    /**
2804     * PN pilot sequence
2805     */
2806    int pilotPn;
2807
2808    /**
2809     * Pilot signal strength
2810     */
2811    int pilotStrength;
2812
2813    /**
2814     * Channel
2815     */
2816    int channel;
2817
2818    /**
2819     * Longitude
2820     */
2821    int longitude;
2822
2823    /**
2824     * Latitude
2825     */
2826    int latitude;
2827};
2828
2829/**
2830 * @brief Defines the TD-SCDMA cellular information.
2831 */
2832struct CellRatTdscdma {
2833    /**
2834     * Absolute RF channel number of the BCCH carrier
2835     */
2836    int arfcn;
2837
2838    /**
2839     * Synchronization flag
2840     */
2841    int syncId;
2842
2843    /**
2844     * Super cell
2845     */
2846    int sc;
2847
2848    /**
2849     * Cell ID
2850     */
2851    int cellId;
2852
2853    /**
2854     * Location area code
2855     */
2856    int lac;
2857
2858    /**
2859     * Received signal code power
2860     */
2861    int rscp;
2862
2863    /**
2864     * Discontinuous reception cycle
2865     */
2866    int drx;
2867
2868    /**
2869     * Routing area code
2870     */
2871    int rac;
2872
2873    /**
2874     * Super cell ID
2875     */
2876    int cpid;
2877};
2878
2879/**
2880 * @brief Defines the NR cellular information.
2881 */
2882struct CellRatNr {
2883    /**
2884     * Absolute RF channel number of the BCCH carrier
2885     */
2886    int nrArfcn;
2887
2888    /**
2889     * Physical cell ID
2890     */
2891    int pci;
2892
2893    /**
2894     * Type allocation code
2895     */
2896    int tac;
2897
2898    /**
2899     * NR cell ID
2900     */
2901    int nci;
2902};
2903
2904/**
2905 * @brief Defines the current cellular data information.
2906 */
2907union CurrentServiceCellParas {
2908    /**
2909     * GSM cellular information
2910     */
2911    struct CellRatGsm gsm;
2912
2913    /**
2914     * LTE cellular information
2915     */
2916    struct CellRatLte lte;
2917
2918    /**
2919     * WCDMA cellular information
2920     */
2921    struct CellRatWcdma wcdma;
2922
2923    /**
2924     * CDMA cellular information
2925     */
2926    struct CellRatCdma cdma;
2927
2928    /**
2929     * TD-SCDMA cellular information
2930     */
2931    struct CellRatTdscdma tdscdma;
2932
2933    /**
2934     * NR cellular information
2935     */
2936    struct CellRatNr nr;
2937};
2938
2939/**
2940 * @brief Defines the current cell information.
2941 */
2942struct CurrentCellInfo {
2943    /**
2944     * Radio access technology type. For details, see {@link RilRadioTech}.
2945     */
2946    int ratType;
2947
2948    /**
2949     * Mobile country code (MCC)
2950     */
2951    int mcc;
2952
2953    /**
2954     * Mobile network code (MNC)
2955     */
2956    int mnc;
2957
2958    /**
2959     * Cell information parameters. For details, see {@link CurrentServiceCellParas}.
2960     */
2961    union CurrentServiceCellParas serviceCells;
2962};
2963
2964/**
2965 * @brief Defines the current cell information list.
2966 */
2967struct CellListCurrentInfo {
2968    /**
2969     * Number of cells
2970     */
2971    int itemNum;
2972
2973    /**
2974     * Current cell information
2975     */
2976    List<struct CurrentCellInfo> cellCurrentInfo;
2977};
2978
2979/**
2980 * @brief Defines the preferred network type.
2981 */
2982struct PreferredNetworkTypeInfo {
2983    /**
2984     * Network type
2985     *- 0: automatic
2986     *- 1: GSM
2987     *- 2: WCDMA.
2988     *- 3: LTE.
2989     *- 4: LTE and WCDMA
2990     *- 5: LTE, WCDMA, and GSM
2991     *- 6: WCDMA and GSM
2992     *- 7: CDMA
2993     *- 8: EV-DO
2994     *- 9: EV-DO and CDMA
2995     *- 10: WCDMA, GSM, EV-DO, and CDMA
2996     *- 11: LTE, EV-DO, and CDMA
2997     *- 12: LTE, WCDMA, GSM, EV-DO, and CDMA
2998     *- 13: TD-SCDMA
2999     *- 14: TD-SCDMA and GSM
3000     *- 15: TD-SCDMA and WCDMA
3001     *- 16: TD-SCDMA, WCDMA, and GSM
3002     *- 17: LTE and TD-SCDMA
3003     *- 18: LTE, TDSCDMA, and GSM
3004     *- 19: LTE, TD-SCDMA, and WCDMA
3005     *- 20: LTE, TDSCDMA, WCDMA, and GSM
3006     *- 21: TD-SCDMA, WCDMA, GSM, EV-DO, and CDMA
3007     *- 22: LTE, TD-SCDMA, WCDMA, GSM, EV-DO, and CDMA
3008     *- 31: NR
3009     *- 32: NR and LTE
3010     *- 33: NR, LTE, and WCDMA
3011     *- 34: NR, LTE, WCDMA, and GSM
3012     *- 35: NR, LTE, EV-DO, and CDMA
3013     *- 36: NR, LTE, WCDMA, GSM, EV-DO, and CDMA
3014     *- 37: NR, LTE, and TD-SCDMA.
3015     *- 38: NR, LTE, TDSCDMA, and GSM
3016     *- 39: NR, LTE, TD-SCDMA, and WCDMA
3017     *- 40: NR, LTE, TD-SCDMA, WCDMA, and GSM
3018     *- 41: NR, LTE, TD-SCDMA, WCDMA, GSM, EV-DO, and CDMA
3019     */
3020    int preferredNetworkType;
3021
3022    /**
3023     * Network ID
3024     */
3025    int flag;
3026};
3027
3028/**
3029 * @brief Defines the physical channel configuration.
3030 */
3031struct PhysicalChannelConfig {
3032    /**
3033     * Connection status
3034     */
3035    enum RilCellConnectionStatus cellConnStatus;
3036
3037    /**
3038     * Radio access technology type. For details, see {@link RilRadioTech}.
3039     */
3040    enum RilRadioTech ratType;
3041
3042    /**
3043     * Downlink bandwidth in kHz
3044     */
3045    int cellBandwidthDownlinkKhz;
3046
3047    /**
3048     * Uplink bandwidth in kHz.
3049     */
3050    int cellBandwidthUplinkKhz;
3051
3052    /**
3053     * Frequency range
3054     */
3055    int freqRange;
3056
3057    /**
3058     * Downlink channel ID
3059     */
3060    int downlinkChannelNum;
3061
3062    /**
3063     * Uplink channel ID
3064     */
3065    int uplinkChannelNum;
3066
3067    /**
3068     * Physical cell ID
3069     */
3070    int physicalCellId;
3071
3072    /**
3073     * Logical device ID
3074     */
3075    int contextIdNum;
3076
3077    /**
3078     * Uplink channel ID
3079     */
3080    List<int> contextIds;
3081};
3082
3083/**
3084 * @brief Defines the channel configuration information list.
3085 */
3086struct ChannelConfigInfoList {
3087    /**
3088     * Number
3089     */
3090    int itemNum;
3091
3092    /**
3093     * Physical channel configuration
3094     */
3095    List<struct PhysicalChannelConfig> channelConfigInfos;
3096
3097    /**
3098     * Channel configuration ID
3099     */
3100    int flag;
3101};
3102
3103/**
3104 * @brief Defines a GSM SMS message.
3105 */
3106struct GsmSmsMessageInfo {
3107    /**
3108     * Request SN
3109     */
3110    int serial;
3111
3112    /**
3113     * Status
3114     */
3115    int state;
3116
3117    /**
3118     * Short message service center
3119     */
3120    String smscPdu;
3121
3122    /**
3123     * Protocol data unit
3124     */
3125    String pdu;
3126};
3127
3128/**
3129 * @brief Defines a CDMA SMS message.
3130 */
3131struct SendCdmaSmsMessageInfo {
3132    /**
3133     * Request SN
3134     */
3135    int serial;
3136
3137    /**
3138     * Status
3139     */
3140    int state;
3141
3142    /**
3143     * Short message service center
3144     */
3145    String smscPdu;
3146};
3147
3148/**
3149 * @brief Defines the SMS message information in a SIM card.
3150 */
3151struct SmsMessageIOInfo {
3152    /**
3153     * Request SN
3154     */
3155    int serial;
3156
3157    /**
3158     * Short message service center
3159     */
3160    String smscPdu;
3161
3162    /**
3163     * Protocol data unit
3164     */
3165    String pdu;
3166
3167    /**
3168     * Status
3169     */
3170    int state;
3171
3172    /**
3173     Message index.
3174     */
3175    int index;
3176};
3177
3178/**
3179 * @brief Defines the SMSC address information.
3180 */
3181struct ServiceCenterAddress {
3182    /**
3183     * Request SN
3184     */
3185    int serial;
3186
3187    /**
3188     * SMSC address type. For details, see 3GPP TS 24.011 [6].
3189     */
3190    int tosca;
3191
3192    /**
3193     * SMSC address. For details, see 3GPP TS 24.011 [6].
3194     */
3195    String address;
3196};
3197
3198/**
3199 * @brief Defines the GSM cell broadcast configuration information.
3200 */
3201struct CBConfigInfo {
3202    /**
3203     * Request SN
3204     */
3205    int serial;
3206
3207    /**
3208     * Mode (activated or not)
3209     */
3210    int mode;
3211
3212    /**
3213     * Response type:
3214     *- 0: query and report
3215     *- 1: report
3216     */
3217    int indicationType;
3218
3219    /**
3220     * Message IDs
3221     */
3222    String mids;
3223
3224    /**
3225     * Data coding schemes
3226     */
3227    String dcss;
3228};
3229
3230/**
3231 * @brief Defines the CDMA cell broadcast configuration information.
3232 */
3233struct CdmaCBConfigInfo {
3234    /**
3235     * Service
3236     */
3237    int service;
3238
3239    /**
3240     * Language
3241     */
3242    int language;
3243
3244    /**
3245     * Selected or not
3246     */
3247    int checked;
3248};
3249
3250/**
3251 * @brief Defines the CDMA cell broadcast configuration information list.
3252 */
3253struct CdmaCBConfigInfoList {
3254    /**
3255     * Request SN
3256     */
3257    int serial;
3258
3259    /**
3260     * Total number
3261     */
3262    int size;
3263
3264    /**
3265     * CDMA cell broadcast configuration information list
3266     */
3267    List<struct CdmaCBConfigInfo> list;
3268};
3269
3270/**
3271 * @brief Defines the cell broadcast report information.
3272 */
3273struct CBConfigReportInfo {
3274    /**
3275     * Response type:
3276     *- 0: query and report
3277     *- 1: report
3278     */
3279    int indicationType;
3280
3281    /**
3282     * Cell broadcast SN
3283     */
3284    int sn;
3285
3286    /**
3287     * Message IDs
3288     */
3289    int mid;
3290
3291    /**
3292     * Cell broadcast page number
3293     */
3294    int page;
3295
3296    /**
3297     * Total number of cell broadcast pages
3298     */
3299    int pages;
3300
3301    /**
3302     * Number of PDU bytes
3303     */
3304    int length;
3305
3306    /**
3307     * Decoded cell broadcast content
3308     */
3309    String data;
3310
3311    /**
3312     * Data coding schemes
3313     */
3314    String dcs;
3315
3316    /**
3317     * Protocol data unit
3318     */
3319    String pdu;
3320};
3321
3322/**
3323 * @brief Defines the SMS message information.
3324 */
3325struct SmsMessageInfo {
3326    /**
3327     * Response type:
3328     *- 0: query and report
3329     *- 1: report
3330     */
3331    int indicationType;
3332
3333    /**
3334     * Total number
3335     */
3336    int size;
3337
3338    /**
3339     * Protocol data unit
3340     */
3341    List<unsigned char> pdu;
3342};
3343
3344/**
3345 * @brief Defines the processing mode of received SMS messages.
3346 */
3347struct ModeData {
3348    /**
3349     * Request SN
3350     */
3351    int serial;
3352
3353    /**
3354     * Whether to receive SMS messages
3355     */
3356    boolean result;
3357
3358    /**
3359     * Processing mode of received SMS messages. For details, see {@link AckIncomeCause}.
3360     */
3361    int mode;
3362
3363    /**
3364     * Protocol data unit
3365     */
3366    String pdu;
3367};
3368
3369/**
3370 * @brief Defines an SMS message response.
3371 */
3372struct SendSmsResultInfo {
3373    /**
3374     * Message reference number
3375     */
3376    int msgRef;
3377
3378    /**
3379     * Protocol data unit
3380     */
3381    String pdu;
3382
3383    /**
3384     * Error code
3385     */
3386    int errCode;
3387
3388    /**
3389     * SMS message response ID
3390     */
3391    int flag;
3392};
3393/** @} */
3394