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 OHOS_RIL_VENDOR_CALL_DEFS_H
17 #define OHOS_RIL_VENDOR_CALL_DEFS_H
18 
19 #include <stddef.h>
20 
21 #include "hril_enum.h"
22 #include "hril_public_struct.h"
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /**
29  * @brief From 3GPP TS 27.007 V4.3.0 (2001-12)  AT+CGDCONT
30  */
31 typedef struct {
32     /**
33      * Call identification number as described in 3GPP TS 22.030 [19] sub-clause 6.5.5.1.
34      * This number can be used in +CHLD command operations
35      */
36     int32_t index;
37 
38     /**
39      * 0: mobile originated (MO) call
40      * 1: mobile terminated (MT) call
41      */
42     int32_t dir;
43 
44     /** call state */
45     HRilCallState state;
46 
47     /** call mode */
48     HRilCallMode mode;
49 
50     /**
51      * 0: call is not one of multiparty (conference) call parties
52      * 1: call is one of multiparty (conference) call parties
53      */
54     int32_t mpty;
55 
56     /**
57      * Identifies the service domain.
58      * 0: CS domain phone
59      * 1: IMS domain phone
60      */
61     int32_t voiceDomain;
62 
63     /**
64      * 0: voice call
65      * 1: Video call: send one-way video, two-way voice
66      * 2: Video call: one-way receiving video, two-way voice
67      * 3: Video call: two-way video, two-way voice
68      */
69     int32_t callType;
70 
71     /** Phone number in format specified by <type> */
72     char *number;
73 
74     /**
75      * Type of address octet in integer format (refer TS 24.008 [8] subclauses 10.5.4.7);
76      * default 145 when dialling string includes international access code character "+",
77      * otherwise 129. see 3GPP TS 27.007 V4.3.0 (2001-12) 6.1
78      */
79     int32_t type;
80 
81     /**
82      * Alphanumeric representation of <number> corresponding to the entry found
83      * in phonebook; used character set should be the one selected with command
84      * select TE character set +CSCS
85      */
86     char *alpha;
87 } HRilCallInfo;
88 
89 /**
90  * @brief From 3GPP TS 27.007 V4.3.0 (2001-12) ATD%s%s
91  */
92 typedef struct {
93     /**
94      * Type of address octet in integer format (refer TS 24.008 [8] subclauses 10.5.4.7);
95      * default 145 when dialling string includes international access code character "+", otherwise
96      * 129.
97      */
98     char *address;
99 
100     /**
101      * This command refers to CLIR service according to 3GPP TS 22.081 [3] that allows a calling
102      * subscriber to enable or disable the presentation of the CLI to the called party when originating
103      * a call. <n> (parameter sets the adjustment for outgoing calls): 0	presentation indicator is used
104      * according to the subscription of the CLIR service 1	CLIR invocation 2	CLIR suppression <m>
105      * (parameter shows the subscriber CLIR service status in the network): 0	CLIR not provisioned 1
106      * CLIR provisioned in permanent mode 2	unknown (e.g. no network, etc.) 3	CLIR temporary mode
107      * presentation restricted 4	CLIR temporary mode presentation allowed
108      */
109     int32_t clir;
110 } HRilDial;
111 
112 /**
113  * @brief Defines the call forwarding information.
114  */
115 typedef struct {
116     /** Call forwarding type <0-5> */
117     int32_t reason;
118 
119     /** Call forwarding operation mode */
120     int32_t mode;
121 
122     /** Phone number */
123     char *number;
124 
125     /**
126      * Is a sum of integers each representing a class of information default 255
127      * 1: voice (telephony)
128      * 2: data (refers to all bearer services; with <mode>=2 this may refer
129      *    only to some bearer service if TA does not support values 16, 32, 64 and 128)
130      * 4: fax (facsimile services)
131      * 8: short message service
132      * 16: data circuit sync
133      * 32: data circuit async
134      * 64: dedicated packet access
135      * 128: dedicated PAD access
136      */
137     int32_t classx;
138 
139     /**
140      * when "no reply" is enabled or queried, this gives the time in seconds to wait
141      * before call is forwarded, default value 20
142      */
143     int32_t time;
144 
145     /** 0: not active, 1: active */
146     int32_t status;
147 } HRilCFInfo;
148 
149 /**
150  * @brief Defines the dual tone multi-frequency (DTMF) information.
151  */
152 typedef struct {
153     /** Call ID */
154     int32_t callId;
155 
156     /** DTMF keyword */
157     const char *dtmfKey;
158 
159     /** Duration for playing the DTMF tone */
160     int32_t onLength;
161 
162     /** Interval for sending DTMF signals */
163     int32_t offLength;
164 
165     /** DTMF string length */
166     int32_t stringLength;
167 } CallDtmfInfo;
168 
169 /**
170  * @brief Defines the call restriction password.
171  */
172 typedef struct {
173     /** Operation object */
174     const char *fac;
175 
176     /**
177      * Operation mode:
178      * 0: deactivation
179      * 1: activation
180      */
181     int32_t mode;
182 
183     /** Password */
184     const char *password;
185 } CallRestrictionInfo;
186 
187 /**
188  * @brief Defines the call restriction password.
189  */
190 typedef struct {
191     /** Operation object */
192     const char *fac;
193 
194     /** Old password */
195     const char *oldPassword;
196 
197     /** New password */
198     const char *newPassword;
199 } HRilSetBarringInfo;
200 
201 /**
202  * @brief Defines the call forwarding information.
203  */
204 typedef struct {
205     /** Call forwarding type <0-5> */
206     int32_t reason;
207 
208     /** Call forwarding status. */
209     int32_t status;
210 
211     /**
212      * Is a sum of integers each representing a class of information default 255
213      * 1: voice (telephony)
214      * 2: data (refers to all bearer services; with <mode>=2 this may refer
215      *    only to some bearer service if TA does not support values 16, 32, 64 and 128)
216      * 4: fax (facsimile services)
217      * 8: short message service
218      * 16: data circuit sync
219      * 32: data circuit async
220      * 64: dedicated packet access
221      * 128: dedicated PAD access
222      */
223     int32_t classx;
224 
225     /** Call forwarding number. */
226     char *number;
227     /**
228      * Default 145 when dialling string includes international access code
229      * character "+", otherwise 129, other value refer TS 24.008 [8]
230      * sub-clause 10.5.4.7
231      */
232     int32_t type;
233 
234     /** Time. */
235     int32_t time;
236 } HRilCFQueryInfo;
237 
238 /**
239  * @brief Defines the CLIP information.
240  */
241 typedef struct {
242     /** Parameter sets/shows the result code presentation status in the TA */
243     int32_t action;
244 
245     /**
246      * Parameter shows the subscriber CLIP service status in the network, <0-4>
247      */
248     int32_t clipStat;
249 } HRilGetClipResult;
250 
251 /**
252  * @brief Defines the CLIR information.
253  */
254 typedef struct {
255     /** Parameter sets/shows the result code presentation status in the TA */
256     int32_t action;
257 
258     /**
259      * Parameter shows the subscriber CLIP service status in the network,
260      * <0-4>
261      */
262     int32_t clirStat;
263 } HRilGetCallClirResult;
264 
265 /**
266  * @brief Defines the call waiting information.
267  */
268 typedef struct {
269     /** Call wait status, could be 0 or 1 */
270     int32_t status;
271 
272     /**
273      * 1: voice (telephony);
274      * 2: data;
275      * 4: fax (facsimile services);
276      * 8: short message service;
277      * 16: data circuit sync;
278      * 32: data circuit async;
279      * 64: dedicated packet access;
280      * 128: dedicated PAD access.
281      */
282     int32_t classCw;
283 } HRilCallWaitResult;
284 
285 /**
286  * @brief Defines the call barring information.
287  */
288 typedef struct {
289     /** Call restructuib status, could be 0 or 1 */
290     int32_t status;
291 
292     /**
293      * 1: voice (telephony);
294      * 2: data;
295      * 4: fax (facsimile services);
296      * 8: short message service;
297      * 16: data circuit sync;
298      * 32: data circuit async;
299      * 64: dedicated packet access;
300      * 128: dedicated PAD access.
301      */
302     int32_t classCw;
303 } HRilCallRestrictionResult;
304 
305 /**
306  * @brief Defines the USSD result information.
307  */
308 typedef struct {
309     /**
310      * Integer value.
311      * 0: The network does not require a TE reply (USSD-Notify initiated by the network or TE
312      *    The network does not need further information after starting operation);
313      * 1: The network needs a TE reply (USSD-Request initiated by the network, or TE sent
314      *    After starting the operation, the network needs further information);
315      * 2: The USSD session is released by the network;
316      * 3: Other local clients have responded;
317      * 4: The operation is not supported;
318      * 5: The network timed out.
319      */
320     int32_t m;
321 
322     /**
323      * USSD string, the maximum length is 160 characters.
324      */
325     char *str;
326 } HRilUssdNoticeInfo;
327 
328 /**
329  * @brief Defines the supplementary service information.
330  */
331 typedef struct {
332     /**
333      * Service type:
334      * 0: call forwarding unconditional
335      * 1: call forwarding on busy
336      * 2: call forwarding on no reply
337      * 3: call forwarding not reachable (no network service, or power-off)
338      */
339     int32_t serviceType;
340 
341     /**
342      * Request type:
343      * 0: deactivation
344      * 1: activated
345      * 2: status query
346      * 3: registration
347      * 4: deletion
348      */
349     int32_t requestType;
350 
351     /** Service class. For details, see 3GPP TS 27.007. */
352     int32_t serviceClass;
353 
354     /** The result of the SS request */
355     int32_t result;
356 } HRilSsNoticeInfo;
357 
358 /**
359  * @brief Defines the emergency information.
360  */
361 typedef struct {
362     /** Number index */
363     int32_t index;
364 
365     /** Total number of numbers */
366     int32_t total;
367 
368     /** Emergency call number in string format */
369     char *eccNum;
370 
371     /**
372      * Emergency call type
373      * 0: interface message of initiating an emergency call
374      * 1: Bandit police
375      * 2: Rescue
376      * 4: Fire alarm
377      * 8: Marine Police
378      * 16: Alpine rescue
379      */
380     int32_t category;
381 
382     /**
383      * The number is valid with or without a card
384      * 0: valid without card
385      * 1: Valid with card
386      */
387     int32_t simpresent;
388 
389     /** Country code */
390     char *mcc;
391 
392     /**
393      * Distinguishes CS domain abnormal service status
394      * 0: all States are valid
395      * 1: the CS domain is not in normal service
396      */
397     int32_t abnormalService;
398 } HRilEmergencyInfo;
399 
400 /**
401  * @brief Active reporting of SRVCC status is controlled by the +CIREP command.
402  *
403  * This command complies with the 3GPP TS 27.007 protocol.
404  */
405 typedef struct {
406     /**
407      * SRVCC status.
408      * 1: SRVCC starts;
409      * 2: SRVCC is successful;
410      * 3: SRVCC is cancelled;
411      * 4: SRVCC failed.
412      */
413     int32_t status;
414 } HRilCallSrvccStatus;
415 
416 /**
417  * @brief Query the bandwidth information of the voice channel during the call.
418  *
419  * Note: Modem private commands, not a reported field specified by the 3gpp
420  * protocol.
421  */
422 typedef struct {
423     /**
424      * Integer value, voice channel type:
425      * 0: No in-band audio information;
426      * 1: In-band voice is available, narrowband voice;
427      * 2: In-band voice is available, broadband voice.
428      */
429     int32_t status;
430 
431     /**
432      * Integer value, call domain of voice call:
433      * 0: 3GPP CS domain voice call;
434      * 1: IMS domain voice call;
435      * 2: 3GPP2 CS domain voice call.
436      */
437     int32_t voiceDomain;
438 } HRilCallCsChannelInfo;
439 
440 /**
441  * @brief Defines the supplementary service notifications information.
442  */
443 typedef struct {
444     /** Type of notification: 0 = code1(MO); 1 = code2(MT) */
445     int32_t notificationType;
446 
447     /** TS 27.007 7.17 "code1" or "code2" */
448     int32_t code;
449 
450     /** TS 27.007 7.17 "index" */
451     int32_t index;
452 
453     /** TS 27.007 7.17 "type" (MT only) */
454     int32_t type;
455 
456     /** TS 27.007 7.17 "number" (MT only) */
457     char *number;
458 } HRilSuppSvcNotification;
459 
460 typedef struct {
461     /**
462      * @brief Gets the call status list.
463      *
464      * @param requestInfo Request data info, for details, see {@link
465      * ReqDataInfo}
466      * @see ReqDataInfo
467      */
468     void (*GetCallList)(const ReqDataInfo *requestInfo);
469 
470     /**
471      * @brief Makes a call.
472      *
473      * @param requestInfo Request data info, for details, see {@link
474      * ReqDataInfo}
475      * @param data HRilDial, for details, see {@link HRilDial}
476      * @param dataLen The length of data.
477      * @see ReqDataInfo | HRilDial
478      */
479     void (*Dial)(const ReqDataInfo *requestInfo, const HRilDial *data, size_t dataLen);
480 
481     /**
482      * @brief Ends a call.
483      *
484      * @param requestInfo Request data info, for details, see {@link
485      * ReqDataInfo}
486      * @param data gsmIndex, Indicates the connection index
487      * @param dataLen The length of data.
488      * @see ReqDataInfo
489      */
490     void (*Hangup)(const ReqDataInfo *requestInfo, const uint32_t *data, size_t dataLen);
491 
492     /**
493      * @brief Rejects a call.
494      *
495      * @param requestInfo Request data info, for details, see {@link
496      * ReqDataInfo}.
497      * @see ReqDataInfo
498      */
499     void (*Reject)(const ReqDataInfo *requestInfo);
500 
501     /**
502      * @brief Answers a call.
503      *
504      * @param requestInfo Request data info, for details, see {@link
505      * ReqDataInfo}
506      * @see ReqDataInfo
507      */
508     void (*Answer)(const ReqDataInfo *requestInfo);
509 
510     /**
511      * @brief Obtains the calling line identification presentation (CLIP)
512      * information.
513      *
514      * @param requestInfo Request data info, for details, see {@link
515      * ReqDataInfo}
516      * @see ReqDataInfo
517      */
518     void (*GetClip)(const ReqDataInfo *requestInfo);
519 
520     /**
521      * @brief Sets the calling line identification presentation (CLIP)
522      * information.
523      *
524      * @param requestInfo Request data info, for details, see {@link
525      * ReqDataInfo}.
526      * @param action Whether to enable or disable the CLIP function. The value
527      * 0 means to disable the CLIP function, and the value 1 means the
528      * opposite.
529      * @see ReqDataInfo
530      */
531     void (*SetClip)(const ReqDataInfo *requestInfo, int32_t action);
532 
533     /**
534      * @brief Holds a call.
535      *
536      * @param requestInfo Request data info, for details, see {@link
537      * ReqDataInfo}.
538      * @see ReqDataInfo
539      */
540     void (*HoldCall)(const ReqDataInfo *requestInfo);
541 
542     /**
543      * @brief Unholds a call.
544      *
545      * @param requestInfo Request data info, for details, see {@link
546      * ReqDataInfo}.
547      * @see ReqDataInfo
548      */
549     void (*UnHoldCall)(const ReqDataInfo *requestInfo);
550 
551     /**
552      * @brief Switches a call.
553      *
554      * @param requestInfo Request data info, for details, see {@link
555      * ReqDataInfo}.
556      * @see ReqDataInfo
557      */
558     void (*SwitchCall)(const ReqDataInfo *requestInfo);
559 
560     /**
561      * @brief Combines calls into a conference call.
562      *
563      * @param requestInfo Request data info, for details, see {@link
564      * ReqDataInfo}.
565      * @param callType Call type.
566      * @see ReqDataInfo
567      */
568     void (*CombineConference)(const ReqDataInfo *requestInfo, int32_t callType);
569 
570     /**
571      * @brief Separates calls from a conference call.
572      *
573      * @param requestInfo Request data info, for details, see {@link
574      * ReqDataInfo}.
575      * @param callType Call type.
576      * @see ReqDataInfo
577      */
578     void (*SeparateConference)(const ReqDataInfo *requestInfo, int32_t callIndex, int32_t callType);
579 
580     /**
581      * @brief Holds and resumes a call.
582      *
583      * @param requestInfo Request data info, for details, see {@link
584      * ReqDataInfo}.
585      * @param type Type of ending calls. The value 0 indicates that the call is
586      * ended directly; The value 1 means release the held call and the wait
587      * call; The value 2 means that release the active call and recover the
588      * held call; The value 3 means that release all calls.
589      * @see ReqDataInfo
590      */
591     void (*CallSupplement)(const ReqDataInfo *requestInfo, int32_t type);
592 
593     /**
594      * @brief Gets the call waiting status.
595      *
596      * @param requestInfo Request data info, for details, see {@link
597      * ReqDataInfo}.
598      * @see ReqDataInfo
599      */
600     void (*GetCallWaiting)(const ReqDataInfo *requestInfo);
601 
602     /**
603      * @brief Sets the call waiting status.
604      *
605      * @param requestInfo Request data info, for details, see {@link
606      * ReqDataInfo}.
607      * @param active Whether to enable or disable call waiting. The value
608      * <b>0</b> means to disable the call waiting function, and the value
609      * <b>1</b> means the opposite.
610      * @see ReqDataInfo
611      */
612     void (*SetCallWaiting)(const ReqDataInfo *requestInfo, int32_t active);
613 
614     /**
615      * @brief Sets the call forwarding status.
616      *
617      * @param requestInfo Request data info, for details, see {@link
618      * ReqDataInfo}.
619      * @param info Call forwarding information, for details, see {@link
620      * CallForwardSetInfo}.
621      * @see ReqDataInfo
622      */
623     void (*SetCallTransferInfo)(const ReqDataInfo *requestInfo, HRilCFInfo info);
624 
625     /**
626      * @brief Gets the call forwarding information.
627      *
628      * @param requestInfo Request data info, for details, see {@link
629      * ReqDataInfo}.
630      * @param reason Call forwarding type, The value 0 indicates unconditional
631      * call forwarding, 1 indicates call forwarding when the user is busy, 2
632      * indicates call forwarding when the user does not reply, and 3 indicates
633      * call forwarding when the user is unreachable.
634      * @see ReqDataInfo
635      */
636     void (*GetCallTransferInfo)(const ReqDataInfo *requestInfo, int32_t reason);
637 
638     /**
639      * @brief Gets the call restriction information.
640      *
641      * @param requestInfo Request data info, for details, see {@link
642      * ReqDataInfo}.
643      * @param fac Object for call restriction.
644      * @see ReqDataInfo
645      */
646     void (*GetCallRestriction)(const ReqDataInfo *requestInfo, const char *fac);
647 
648     /**
649      * @brief Sets the call restriction information.
650      *
651      * @param requestInfo Request data info, for details, see {@link
652      * ReqDataInfo}.
653      * @param info Call restriction information.
654      * @see ReqDataInfo
655      */
656     void (*SetCallRestriction)(const ReqDataInfo *requestInfo, CallRestrictionInfo info);
657 
658     /**
659      * @brief Obtains the calling line identification restriction (CLIR)
660      * information.
661      *
662      * @param requestInfo Request data info, for details, see {@link
663      * ReqDataInfo}.
664      * @see ReqDataInfo
665      */
666     void (*GetClir)(const ReqDataInfo *requestInfo);
667 
668     /**
669      * @brief Sets the CLIR information.
670      *
671      * @param requestInfo Request data info, for details, see {@link
672      * ReqDataInfo}.
673      * @param action Whether to enable or disable the CLIR function. The value
674      * 0 means to disable the CLIR function, and the value 1 means the
675      * opposite.
676      * @see ReqDataInfo
677      */
678     void (*SetClir)(const ReqDataInfo *requestInfo, int32_t action);
679 
680     /**
681      * @brief Enables DTMF.
682      *
683      * @param requestInfo Request data info, for details, see {@link
684      * ReqDataInfo}.
685      * @param info DTMF information.
686      * @see ReqDataInfo | CallDtmfInfo
687      */
688     void (*StartDtmf)(const ReqDataInfo *requestInfo, CallDtmfInfo info);
689 
690     /**
691      * @brief Sends dual tone multi-frequency (DTMF).
692      *
693      * @param requestInfo Request data info, for details, see {@link
694      * ReqDataInfo}.
695      * @param info DTMF information.
696      * @see ReqDataInfo | CallDtmfInfo
697      */
698     void (*SendDtmf)(const ReqDataInfo *requestInfo, CallDtmfInfo info);
699 
700     /**
701      * @brief Disables DTMF.
702      *
703      * @param requestInfo Request data info, for details, see {@link
704      * ReqDataInfo}.
705      * @param info DTMF information.
706      * @see ReqDataInfo | CallDtmfInfo
707      */
708     void (*StopDtmf)(const ReqDataInfo *requestInfo, CallDtmfInfo info);
709 
710     /**
711      * @brief Gets IMS call list.
712      *
713      * @param requestInfo Request data info, for details, see {@link
714      * ReqDataInfo}.
715      * @see ReqDataInfo
716      */
717     void (*GetImsCallList)(const ReqDataInfo *requestInfo);
718 
719     /**
720      * @brief Obtains the call preference mode.
721      *
722      * @param requestInfo Request data info, for details, see {@link
723      * ReqDataInfo}.
724      * @see ReqDataInfo
725      */
726     void (*GetCallPreferenceMode)(const ReqDataInfo *requestInfo);
727 
728     /**
729      * @brief Sets the call preference mode.
730      *
731      * @param requestInfo Request data info, for details, see {@link
732      * ReqDataInfo}.
733      * @see ReqDataInfo
734      */
735     void (*SetCallPreferenceMode)(const ReqDataInfo *requestInfo, int32_t mode);
736 
737     /**
738      * @brief Gets LTE IMS switch status.
739      *
740      * @param requestInfo Request data info, for details, see {@link
741      * ReqDataInfo}.
742      * @see ReqDataInfo
743      */
744     void (*GetLteImsSwitchStatus)(const ReqDataInfo *requestInfo);
745 
746     /**
747      * @brief Sets LTE IMS switch status.
748      *
749      * @param requestInfo Request data info, for details, see {@link
750      * ReqDataInfo}.
751      * @param active Whether to enable or disable call waiting. The value
752      * <b>0</b> means to disable the call waiting function, and the value
753      * <b>1</b> means the opposite.
754      * @see ReqDataInfo
755      */
756     void (*SetLteImsSwitchStatus)(const ReqDataInfo *requestInfo, int32_t active);
757 
758     /**
759      * @brief Sets unstructured supplementary service data (USSD) information.
760      *
761      * @param requestInfo Request data info, for details, see {@link
762      * ReqDataInfo}.
763      * @param str USSD information.
764      * @see ReqDataInfo
765      */
766     void (*SetUssd)(const ReqDataInfo *requestInfo, const char *str);
767 
768     /**
769      * @brief Obtains the USSD information.
770      *
771      * @param requestInfo Request data info, for details, see {@link
772      * ReqDataInfo}.
773      * @see ReqDataInfo
774      */
775     void (*GetUssd)(const ReqDataInfo *requestInfo);
776 
777     /**
778      * @brief Sets the mute mode.
779      *
780      * @param requestInfo Request data info, for details, see {@link
781      * ReqDataInfo}.
782      * @param mute Whether to enable the mute function. The value 0 means to
783      * disable the mute function, and the value 1 means the opposite.
784      * @see ReqDataInfo
785      */
786     void (*SetMute)(const ReqDataInfo *requestInfo, int32_t mute);
787 
788     /**
789      * @brief Obtains the mute mode.
790      *
791      * @param requestInfo Request data info, for details, see {@link
792      * ReqDataInfo}.
793      * @see ReqDataInfo
794      */
795     void (*GetMute)(const ReqDataInfo *requestInfo);
796 
797     /**
798      * @brief Obtains the emergency number.
799      *
800      * @param requestInfo Request data info, for details, see {@link
801      * ReqDataInfo}.
802      * @see ReqDataInfo
803      */
804     void (*GetEmergencyCallList)(const ReqDataInfo *requestInfo);
805 
806     /**
807      * @brief Obtains the call failure cause.
808      *
809      * @param requestInfo Request data info, for details, see {@link
810      * ReqDataInfo}.
811      * @see ReqDataInfo
812      */
813     void (*GetCallFailReason)(const ReqDataInfo *requestInfo);
814 
815     /**
816      * @brief Sets the emergency call number.
817      *
818      * @param requestInfo Request data info, for details, see {@link
819      * ReqDataInfo}.
820      * @param emergencyInfo Emergency call information.
821      * @param len The size of emergencyInfo.
822      * @see ReqDataInfo
823      */
824     void (*SetEmergencyCallList)(const ReqDataInfo *requestInfo, HRilEmergencyInfo *emergencyInfo, const int len);
825 
826     /**
827      * @brief Change call barring facility password.
828      *
829      * @param requestInfo Request data info, for details, see {@link
830      * ReqDataInfo}.
831      * @param info Call restriction information.
832      * @see ReqDataInfo
833      */
834     void (*SetBarringPassword)(const ReqDataInfo *requestInfo, HRilSetBarringInfo info);
835 
836     /**
837      * @brief Close unfinished unstructured supplementary service data (USSD).
838      *
839      * @param requestInfo Request data info, for details, see {@link
840      * ReqDataInfo}.
841      * @see ReqDataInfo
842      */
843     void (*CloseUnFinishedUssd)(const ReqDataInfo *requestInfo);
844     void (*ExplicitCallTransferConnection)(const ReqDataInfo *requestInfo);
845     void (*SetVonrSwitch)(const ReqDataInfo *requestInfo, int32_t status);
846 
847     /**
848      * @brief Enable or disable supplementary service related notification from the network.
849      *
850      * @param requestInfo Request data info, for details, see {@link
851      * ReqDataInfo}.
852      * @param enable Whether to enable notification, 0 indicates disable, 1 indicates enable.
853      * @see ReqDataInfo
854      */
855     void (*SetSuppSrvNotification)(const ReqDataInfo *requestInfo, int32_t enable);
856 
857     /**
858      * @brief Get the TTY mode.
859      *
860      * @param requestInfo Request data info, for details, see {@link
861      * ReqDataInfo}.
862      * @see ReqDataInfo
863      */
864     void (*GetTTYMode)(const ReqDataInfo *requestInfo);
865 
866     /**
867      * @brief Set the TTY mode.
868      *
869      * @param requestInfo Request data info, for details, see {@link
870      * ReqDataInfo}.
871      * @param mode The TTY mode to set, value as following:
872      * - 0 indicates TTYMode#TTY_MODE_OFF
873      * - 1 indicates TTYMode#TTY_MODE_FULL
874      * - 2 indicates TTYMode#TTY_MODE_HCO
875      * - 3 indicates TTYMode#TTY_MODE_VCO
876      * @see ReqDataInfo
877      */
878     void (*SetTTYMode)(const ReqDataInfo *requestInfo, int32_t mode);
879 } HRilCallReq;
880 #ifdef __cplusplus
881 }
882 #endif
883 #endif // OHOS_RIL_VENDOR_CALL_DEFS_H
884