• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021-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 #ifndef TELEPHONY_TELEPHONY_TYPES_H
17 #define TELEPHONY_TELEPHONY_TYPES_H
18 
19 #include <string>
20 #include <vector>
21 
22 #include "network_search_types.h"
23 #include "operator_config_types.h"
24 #include "parameter.h"
25 
26 namespace OHOS {
27 namespace Telephony {
28 #define SIM_SLOT_COUNT GetMaxSlotCount<int32_t>()
29 #define PREFERRED_NETWORK_TYPE GetPreferredNetworkType<int32_t>()
30 #define VSIM_MODEM_COUNT GetVSimModemCount<int32_t>()
31 #define IS_SUPPORT_VSIM (VSIM_MODEM_COUNT > 0)
32 inline const int32_t SYSPARA_SIZE = 128;
33 inline constexpr size_t ARRAY_SIZE = 1024;
34 inline const int32_t DEFAULT_SIM_SLOT_ID = 0;
35 inline const int32_t DEFAULT_SIM_SLOT_ID_REMOVE = -1;
36 inline const int32_t INVALID_MAIN_CARD_SLOTID = -2;
37 inline const int32_t ERROR_SLOT_OPKEY = -2;
38 inline const int32_t DSDS_MODE_V2 = 0;
39 inline const int32_t DSDS_MODE_V3 = 1;
40 inline const size_t MAX_PARAMETER_LENGTH = 100;
41 inline const int32_t DUAL_SLOT_COUNT = 2;
42 inline const int32_t MAX_SLOT_COUNT = 3;
43 inline const int32_t VSIM_DEFAULT_VALUE = -1;
44 inline int32_t maxSlotCount_ = 0;
45 inline int32_t vSimModemCount_ = VSIM_DEFAULT_VALUE;
46 inline constexpr const char *SATELLITE_DEFAULT_VALUE = "0";
47 inline constexpr const char *DEFAULT_SLOT_COUNT = "1";
48 inline constexpr const char *TEL_SIM_SLOT_COUNT = "const.telephony.slotCount";
49 inline constexpr const char *DEFAULT_PREFERRED_NETWORK_TYPE = "5"; // CORE_NETWORK_MODE_LTE_WCDMA_GSM
50 inline constexpr const char *TEL_PREFERRED_NETWORK_TYPE = "const.telephony.preferredNetworkType";
51 inline constexpr const char *DEFAULT_OPERATOR_KEY = "";
52 inline constexpr const char *INITIAL_OPKEY = "-1";
53 inline constexpr const char *DEFAULT_OPERATOR_CONFIG = "default_operator_config.json";
54 inline constexpr const char *OPKEY_PROP_PREFIX = "telephony.sim.opkey";
55 inline constexpr const char *COUNTRY_CODE_KEY = "telephony.sim.countryCode";
56 inline constexpr const char *TEL_SATELLITE_SUPPORTED = "const.telephony.satellite.supported";
57 inline constexpr const char *DEFAULT_VSIM_MODEM_COUNT = "0";
58 inline constexpr const char *VSIM_MODEM_COUNT_STR = "const.telephony.vsimModemCount";
59 
60 template<typename T>
GetMaxSlotCount()61 inline T GetMaxSlotCount()
62 {
63     if (maxSlotCount_ == 0) {
64         char simSlotCount[SYSPARA_SIZE] = { 0 };
65         GetParameter(TEL_SIM_SLOT_COUNT, DEFAULT_SLOT_COUNT, simSlotCount, SYSPARA_SIZE);
66         maxSlotCount_ = std::atoi(simSlotCount);
67     }
68     return maxSlotCount_;
69 }
70 
71 template<typename T>
GetVSimModemCount()72 inline T GetVSimModemCount()
73 {
74     if (vSimModemCount_ == VSIM_DEFAULT_VALUE) {
75         char vSimModemCount[SYSPARA_SIZE] = { 0 };
76         GetParameter(VSIM_MODEM_COUNT_STR, DEFAULT_VSIM_MODEM_COUNT, vSimModemCount, SYSPARA_SIZE);
77         vSimModemCount_ = std::atoi(vSimModemCount);
78     }
79     return vSimModemCount_;
80 }
81 
82 template<typename T>
GetPreferredNetworkType()83 inline T GetPreferredNetworkType()
84 {
85     char preferredNetworkType[SYSPARA_SIZE] = { 0 };
86     GetParameter(TEL_PREFERRED_NETWORK_TYPE, DEFAULT_PREFERRED_NETWORK_TYPE, preferredNetworkType, SYSPARA_SIZE);
87     T networkType = std::atoi(preferredNetworkType);
88     return networkType;
89 }
90 
91 enum SatelliteValue {
92     SATELLITE_NOT_SUPPORTED = 0,
93     SATELLITE_SUPPORTED = 1,
94 };
95 
96 enum SimSlotId {
97     SIM_SLOT_0 = 0,
98     SIM_SLOT_1,
99     SIM_SLOT_2,
100     SIM_SLOT_3,
101 };
102 
103 /**
104  * @brief The modem power status.
105  */
106 enum ModemPowerState {
107     /**
108      * Power Not Available
109      */
110     CORE_SERVICE_POWER_NOT_AVAILABLE = -1,
111     /**
112      * Power OFF
113      */
114     CORE_SERVICE_POWER_OFF = 0,
115     /**
116      * Power ON
117      */
118     CORE_SERVICE_POWER_ON = 1
119 };
120 
121 template<typename T>
122 struct TelRilResponseInfo {
123     int32_t slotId = DEFAULT_SIM_SLOT_ID;
124     int32_t flag = 0;
125     int32_t errorNo = 0;
126     T object;
127 };
128 
129 /**
130  * @brief Defines the network bandwidth reporting rule.
131  */
132 struct LinkBandwidthRule {
133     /**
134      * Radio access technology
135      */
136     int32_t rat = 0;
137     /**
138      * Delay time
139      */
140     int32_t delayMs = 0;
141     /**
142      * Uplink delay
143      */
144     int32_t delayUplinkKbps = 0;
145     /**
146      * Downlink delay
147      */
148     int32_t delayDownlinkKbps = 0;
149     /**
150      * Maximum uplink parameter list
151      */
152     std::vector<int32_t> maximumUplinkKbps {};
153     /**
154      * Maximum downlink parameter list
155      */
156     std::vector<int32_t> maximumDownlinkKbps {};
157 };
158 
159 /**
160  * @brief Defines PDP context information.
161  */
162 struct DataProfile {
163     /**
164      * Profile Id
165      */
166     int profileId = 0;
167     /**
168      * (Access Point Name) a string parameter which is a logical name that is used to select the
169      * GGSN or the external packet data network. from 3GPP TS 27.007 10.1 V4.3.0 (2001-12)
170      */
171     std::string apn = "";
172     /**
173      * (Packet Data Protocol type) a string parameter which specifies the type of packet
174      * data protocol from 3GPP TS 27.007 10.1 V4.3.0 (2001-12)
175      */
176     std::string protocol = "";
177     /**
178      * Authentication Type
179      */
180     int32_t verType = 0;
181     /**
182      * Username
183      */
184     std::string userName = "";
185     /**
186      * Password
187      */
188     std::string password = "";
189     /**
190      * Roaming protocol version
191      */
192     std::string roamingProtocol = "";
193 };
194 
195 /**
196  * @brief Defines activate data information.
197  */
198 struct ActivateDataParam {
199     /**
200      * eg:AppExecFwk::InnerEvent::Get(eventId, activateData.param);
201      */
202     int32_t param = 0;
203     /**
204      * Radio access technology
205      */
206     int32_t radioTechnology = 0;
207     /**
208      * DataProfile
209      */
210     struct DataProfile dataProfile;
211     /**
212      * Whether the user is roaming. The value true indicates that the user is roaming,
213      * and the value false indicates the opposite.
214      */
215     bool isRoaming = false;
216     /**
217      * Whether allow roaming
218      */
219     bool allowRoaming = false;
220 };
221 
222 /**
223  * @brief Defines deactivate data information.
224  */
225 struct DeactivateDataParam {
226     /**
227      * eg:AppExecFwk::InnerEvent::Get(eventId, deactivateData.param);
228      */
229     int32_t param = 0;
230     /**
231      * Packet Data Protocol (PDP) context ID
232      */
233     int32_t cid = 0;
234     /**
235      * Reason code of the data service activation failure. For details, see 3GPP TS 24.008.
236      */
237     int32_t reason = 0;
238 };
239 
240 /**
241  * @brief Defines the call forwarding information.
242  */
243 struct CallTransferParam {
244     /**
245      * Call forwarding operation mode:
246      *- 0: deactivation
247      *- 1: activation
248      *- 2: status query
249      *- 3: registration
250      *- 4: deletion
251      */
252     int32_t mode = 0;
253     /**
254      * Call forwarding type:
255      *- 0: call forwarding unconditional
256      *- 1: call forwarding on busy
257      *- 2: call forwarding on no reply
258      *- 3: call forwarding not reachable (no network service, or power-off)
259      *- 4: any call forwarding
260      *- 5: any call forwarding conditional
261      */
262     int32_t reason = 0;
263     /**
264      * Service class. For details, see 3GPP TS 27.007.
265      */
266     int32_t classx = 0;
267     /**
268      * Phone number
269      */
270     std::string number = "";
271 };
272 
273 /**
274  * @brief Defines the call restriction information.
275  */
276 struct CallRestrictionParam {
277     /**
278      * Operation mode:
279      *- 0: deactivation
280      *- 1: activation
281      */
282     int32_t mode = 0;
283     /**
284      * Password
285      */
286     char password[MAX_PARAMETER_LENGTH + 1] = { 0 };
287     /**
288      * Operation object
289      */
290     std::string fac = "";
291 };
292 
293 /**
294  * @brief Defines the dual tone multi-frequency (DTMF) information.
295  */
296 struct DtmfParam {
297     /**
298      * Call ID
299      */
300     int32_t index = 0;
301     /**
302      * Duration for playing the DTMF tone
303      */
304     int32_t switchOn = 0;
305     /**
306      * Interval for sending DTMF signals
307      */
308     int32_t switchOff = 0;
309     /**
310      * DTMF keyword
311      */
312     std::string sDTMFCode = "";
313 };
314 
315 /**
316  * @brief Defines the GSM cell broadcast configuration information.
317  */
318 struct CBConfigParam {
319     /**
320      * Mode (activated or not)
321      */
322     int32_t mode = 0;
323     /**
324      * Message IDs
325      */
326     std::string idList = "";
327     /**
328      * Data coding schemes
329      */
330     std::string dcsList = "";
331 };
332 
333 /**
334  * @brief Defines the SMS message information in a SIM card.
335  */
336 struct CdmaSimMessageParam {
337     /**
338      * Message index.
339      */
340     int32_t cdmaIndex = 0;
341     /**
342      * Status
343      */
344     int32_t status = 0;
345     /**
346      * Protocol data unit
347      */
348     std::string pdu = "";
349 };
350 
351 /**
352  * @brief GSM SMS message parameter.
353  */
354 struct GsmSimMessageParam {
355     /**
356      * Reference Id
357      */
358     int64_t refId = 0;
359     /**
360      * Short message service center
361      */
362     std::string smscPdu = "";
363     /**
364      * Protocol data unit
365      */
366     std::string pdu = "";
367 };
368 
369 /**
370  * @brief Defines the SMS message information in a SIM card.
371  */
372 struct SimMessageParam {
373     /**
374      * Message index.
375      */
376     int32_t gsmIndex = 0;
377     /**
378      * Status
379      */
380     int32_t status = 0;
381     /**
382      * Short message service center
383      */
384     std::string smscPdu = "";
385     /**
386      * Protocol data unit
387      */
388     std::string pdu = "";
389 };
390 
391 /**
392  * @brief Defines the SIM card lock information.
393  */
394 struct SimLockParam {
395     /**
396      * SIM lock type:
397      *- AO: barring of all outgoing calls
398      *- OI: barring of all outgoing international calls
399      *- OX: barring of all outgoing international calls except those directed to the home country
400      *- AI: barring of all incoming calls
401      *- IR: barring of all incoming calls when roaming outside the home location
402      *- AB: barring of all services (applicable only when the mode is greater than or equal to 0)
403      *- AG: barring of the outgoing call service (applicable only when the mode is greater than or equal to 0)
404      *- AC: barring of the incoming call service (applicable only when the mode is greater than or equal to 0)
405      *- FD: fixed dialing number (FDN)
406      *- PN: network locking
407      *- PU: subnet locking
408      *- PP: SP locking
409      */
410     std::string fac = "";
411     /**
412      * Mode:
413      *- 0: deactivation (When fac is set to PN, PU, or PP, the operation is equivalent to unlocking.)
414      *- 1: activation (When fac is set to PN, PU, or PP, activation is not supported.)
415      *- 2: query
416      */
417     int32_t mode = 0;
418     /**
419      * Password text
420      */
421     std::string passwd = "";
422 };
423 
424 /**
425  * @brief Defines the SIM card password information.
426  */
427 struct SimPasswordParam {
428     /**
429      * Maximum password length
430      */
431     int32_t passwordLength = 0;
432     /**
433      * SIM lock type:
434      *- AO: barring of all outgoing calls
435      *- OI: barring of all outgoing international calls
436      *- OX: barring of all outgoing international calls except those directed to the home country
437      *- AI: barring of all incoming calls
438      *- IR: barring of all incoming calls when roaming outside the home location
439      *- AB: barring of all services (applicable only when the mode is greater than or equal to 0)
440      *- AG: barring of the outgoing call service (applicable only when the mode is greater than or equal to 0)
441      *- AC: barring of the incoming call service (applicable only when the mode is greater than or equal to 0)
442      *- FD: fixed dialing number (FDN)
443      *- PN: network locking
444      *- PU: subnet locking
445      *- PP: SP locking
446      */
447     std::string fac = "";
448     /**
449      * Old password text
450      */
451     std::string oldPassword = "";
452     /**
453      * New password text
454      */
455     std::string newPassword = "";
456 };
457 
458 /**
459  * @brief Enumerates emergency call types.
460  */
461 enum class EccType : int32_t {
462     /**
463      * Default
464      */
465     TYPE_CATEGORY = 0,
466     /**
467      * Police
468      */
469     TYPE_POLICE = 1,
470     /**
471      * Ambulance
472      */
473     TYPE_AMBULANCE = 2,
474     /**
475      * Fire alarm
476      */
477     TYPE_FIRE = 4,
478     /**
479      * Marine police
480      */
481     TYPE_SEA = 8,
482     /**
483      * Mountain rescue
484      */
485     TYPE_MOUNTAIN = 16,
486 };
487 
488 /**
489  * @brief Specifies whether a number is valid when there is a card or no card.
490  */
491 enum class SimpresentType : int32_t {
492     /**
493      * Valid when there is no card
494      */
495     TYPE_NO_CARD = 0,
496     /**
497      * Valid when there is a card
498      */
499     TYPE_HAS_CARD = 1,
500 };
501 
502 /**
503  * @brief Specifies whether a number is valid for all states or only for the abnormal service state of
504  * the circuit switched (CS) domain.
505  */
506 enum class AbnormalServiceType : int32_t {
507     /**
508      * Vaild for all states
509      */
510     TYPE_ALL = 0,
511     /**
512      * Valid only for the abnormal service state of the CS domain
513      */
514     TYPE_ONLY_CS = 1,
515 };
516 
517 /**
518  * @brief Defines the emergency call number.
519  */
520 struct EmergencyCall {
521     /**
522      * Emergency number
523      */
524     std::string eccNum = "";
525     /**
526      * Mobile country code
527      */
528     std::string mcc = "";
529     /**
530      * Enumerates emergency call types. For details, see EccType.
531      */
532     EccType eccType = EccType::TYPE_CATEGORY;
533     /**
534      * Whether a number is valid when there is a card or no card. For details, see SimpresentType.
535      */
536     SimpresentType simpresent = SimpresentType::TYPE_NO_CARD;
537     /**
538      * Whether a number is valid for all states or only for the abnormal service state of the CS domain.
539      * For details, see AbnormalService.
540      */
541     AbnormalServiceType abnormalService = AbnormalServiceType::TYPE_ALL;
542     bool operator==(const EmergencyCall &call)
543     {
544         return (eccNum == call.eccNum && mcc == call.mcc);
545     }
546 };
547 
548 /**
549  * @brief Defines the response info of SetEmergencyCallList.
550  */
551 struct SetEccListResponse {
552     /**
553      * Response result
554      */
555     int32_t result = 0;
556     /**
557      * Response value
558      */
559     int32_t value = 0;
560 };
561 
562 /**
563  * @brief Defines the Public Land Mobile Network name.
564  */
565 struct PlmnNetworkName {
566     /**
567      * Long name of the registered network
568      */
569     std::string longName = "";
570     /**
571      * Short name of the registered network
572      */
573     std::string shortName = "";
574 };
575 
576 /**
577  * @brief Defines the Operator PLMN information see 3GPP TS 31.102 Section 4.2.59.
578  */
579 struct OperatorPlmnInfo {
580     /**
581      * PLMN numeric
582      */
583     std::string plmnNumeric = "";
584     /**
585      * Start of the LAC range
586      */
587     int32_t lacStart = 0;
588     /**
589      * End of the LAC range
590      */
591     int32_t lacEnd = 0;
592     /**
593      * Identifier of operator name in PNN to be displayed
594      */
595     int32_t pnnRecordId = 0;
596 };
597 
598 /**
599  * @brief Enumerates radio protocol phases.
600  *
601  * @enum RadioProtocolPhase
602  */
603 enum class RadioProtocolPhase {
604     /**
605      * The value of Initial radio protocol phase
606      */
607     RADIO_PROTOCOL_PHASE_INITIAL,
608     /**
609      * The value of execute check communication phase
610      */
611     RADIO_PROTOCOL_PHASE_CHECK,
612     /**
613      * The value of execute update communication phase
614      */
615     RADIO_PROTOCOL_PHASE_UPDATE,
616     /**
617      * The value of unsol radio phase
618      */
619     RADIO_PROTOCOL_PHASE_NOTIFY,
620     /**
621      * The value of execute complete communication phase
622      */
623     RADIO_PROTOCOL_PHASE_COMPLETE,
624 };
625 
626 /**
627  * @brief Enumerates radio protocol states.
628  */
629 enum class RadioProtocolStatus {
630     /**
631      * Unknow radio protocol state
632      */
633     RADIO_PROTOCOL_STATUS_NONE,
634     /**
635      * Set radio protocol successed
636      */
637     RADIO_PROTOCOL_STATUS_SUCCESS,
638     /**
639      * Set radio protocol failed
640      */
641     RADIO_PROTOCOL_STATUS_FAIL,
642 };
643 
644 /**
645  * @brief Defines the protocol stack information of the primary and secondary SIM cards.
646  */
647 struct RadioProtocol {
648     /**
649      * Card slot ID
650      */
651     int32_t slotId = DEFAULT_SIM_SLOT_ID;
652     /**
653      * Session ID
654      */
655     int32_t sessionId = 0;
656     /**
657      * Radio protocol parameters. For details, see RadioProtocolPhase.
658      */
659     RadioProtocolPhase phase = RadioProtocolPhase::RADIO_PROTOCOL_PHASE_INITIAL;
660     /**
661      * Radio protocol technology:
662      *- 1: GSM
663      *- 2: 1XRTT
664      *- 4: WCDMA
665      *- 8: HSPA
666      *- 16: HSPAP
667      *- 32: TDSCDMA
668      *- 64: EV-DO
669      *- 128: EHRPD
670      *- 256: LTE
671      *- 512: LTE_CA
672      *- 1024: IWLAN
673      *- 2048: NR
674      */
675     int32_t technology = 0;
676     /**
677      * Modem ID, corresponding to slotId at the bottom layer
678      */
679     int32_t modemId = 0;
680     /**
681      * Radio protocol status. For details, see RadioProtocolStatus.
682      */
683     RadioProtocolStatus status = RadioProtocolStatus::RADIO_PROTOCOL_STATUS_NONE;
684 };
685 
686 /**
687  * @brief Defines the result info of ss command.
688  */
689 struct SsBaseResult {
690     /**
691      * Command index, use for find the ss command to retry
692      */
693     int32_t index = 0;
694     /**
695      * The result of execute command
696      */
697     int32_t result = 0;
698     /**
699      * This use for remaind message code
700      */
701     int32_t reason = 0;
702     /**
703      * This use for remaind message
704      */
705     std::string message = "";
706 };
707 
708 /**
709  * @brief Defines the result info of GetClip.
710  */
711 struct GetClipResult {
712     /**
713      * Query results
714      */
715     SsBaseResult result;
716     /**
717      * Parameter sets/shows the result code presentation status in the TA
718      */
719     int32_t action = 0;
720     /**
721      * Parameter shows the subscriber CLIP service status in the network, <0-4>
722      */
723     int32_t clipStat = 0;
724 };
725 
726 /**
727  * @brief Defines the result info of GetClir.
728  */
729 struct GetClirResult {
730     /**
731      * Query results
732      */
733     SsBaseResult result;
734     /**
735      * Parameter sets/shows the result code presentation status in the TA
736      */
737     int32_t action = 0;
738     /**
739      * Parameter shows the subscriber CLIP service status in the network, <0-4>
740      */
741     int32_t clirStat = 0;
742 };
743 
744 /**
745  * @brief Defines the result info of GetColr.
746  */
747 struct GetColrResult {
748     /**
749      * Query results
750      */
751     SsBaseResult result;
752     /**
753      * Parameter sets/shows the result code presentation status in the TA
754      */
755     int32_t action = 0;
756     /**
757      * Parameter shows the subscriber COLR service status in the network, <0-4>
758      */
759     int32_t colrStat = 0;
760 };
761 
762 /**
763  * @brief Defines the result info of GetColp.
764  */
765 struct GetColpResult {
766     /**
767      * Query results
768      */
769     SsBaseResult result;
770     /**
771      * Parameter sets/shows the result code presentation status in the TA
772      */
773     int32_t action = 0;
774     /**
775      * Parameter shows the subscriber COLP service status in the network, <0-4>
776      */
777     int32_t colpStat = 0;
778 };
779 
780 /**
781  * @brief Defines the result info of CallWait.
782  */
783 struct CallWaitResult {
784     /**
785      * Query results
786      */
787     SsBaseResult result;
788     /**
789      * Parameter sets/shows the result code presentation status in the TA
790      */
791     int32_t status = 0;
792     /**
793      * Parameter shows the subscriber CLIP service status in the network, <0-4>
794      */
795     int32_t classCw = 0;
796 };
797 
798 /**
799  * @brief Defines the result info of CallRestriction.
800  */
801 struct CallRestrictionResult {
802     /**
803      * Query results
804      */
805     SsBaseResult result;
806     /**
807      * Parameter sets/shows the result code presentation status in the TA
808      */
809     int32_t status = 0;
810     /**
811      * Parameter shows the subscriber CLIP service status in the network, <0-4>
812      */
813     int32_t classCw = 0;
814 };
815 
816 /**
817  * @brief Defines the call forwarding query result.
818  */
819 struct CallForwardQueryResult {
820     /**
821      * Request SN
822      */
823     int32_t serial = 0;
824     /**
825      * Query result
826      */
827     int32_t result = 0;
828     /**
829      * Status:
830      *- 0: not activated
831      *- 1: activated
832      */
833     int32_t status = 0;
834     /**
835      * Service class. For details, see 3GPP TS 27.007.
836      */
837     int32_t classx = 0;
838     /**
839      * Phone number
840      */
841     std::string number = "";
842     /**
843      * Number type:
844      *-129: common number
845      *- 145: international number
846      */
847     int32_t type = 0;
848     /**
849      * Call forwarding type:
850      *- 0: call forwarding unconditional
851      *- 1: call forwarding on busy
852      *- 2: call forwarding on no reply
853      *- 3: call forwarding not reachable (no network service or power-off)
854      *- 4: any call forwarding
855      *- 5: any call forwarding conditional
856      */
857     int32_t reason = 0;
858     /**
859      * Waiting time
860      */
861     int32_t time = 0;
862     /**
863      * Start hour
864      */
865     int32_t startHour = 0;
866     /**
867      * Start minute
868      */
869     int32_t startMinute = 0;
870     /**
871      * End hour
872      */
873     int32_t endHour = 0;
874     /**
875      * End minute
876      */
877     int32_t endMinute = 0;
878 };
879 
880 /**
881  * @brief Defines the list of call forwarding information.
882  */
883 struct CallForwardQueryInfoList {
884     /**
885      * Query results
886      */
887     SsBaseResult result;
888     /**
889      * Total number
890      */
891     int32_t callSize = 0;
892     /**
893      * ID of the call forwarding query result
894      */
895     int32_t flag = 0;
896     /**
897      * Call forwarding query result
898      */
899     std::vector<CallForwardQueryResult> calls {};
900 };
901 } // namespace Telephony
902 } // namespace OHOS
903 #endif // TELEPHONY_TELEPHONY_TYPES_H
904