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_AT_CALL_H
17 #define OHOS_AT_CALL_H
18 
19 #include <stdlib.h>
20 
21 #include "hril_vendor_call_defs.h"
22 #include "securec.h"
23 
24 typedef enum {
25     GET_CALL_WAITING,
26     SET_CALL_WAITING,
27 } CallWaitingReqType;
28 
29 typedef enum {
30     CALL_CLIR_SUBSCRIPTION_DEFAULT, /* subscription default */
31     CALL_CLIR_INVOCATION, /* invocation */
32     CALL_CLIR_SUPPRESSION, /* suppression */
33 } CallClirType;
34 
35 typedef struct {
36     char *cmd;
37     void (*function)(const char *str);
38 } CallNotify;
39 
40 void ReqGetCallList(const ReqDataInfo *requestInfo);
41 void ReqDial(const ReqDataInfo *requestInfo, const HRilDial *data, size_t dataLen);
42 void ReqHangup(const ReqDataInfo *requestInfo, const uint32_t *data, size_t dataLen);
43 void ReqReject(const ReqDataInfo *requestInfo);
44 void ReqAnswer(const ReqDataInfo *requestInfo);
45 void ReqHoldCall(const ReqDataInfo *requestInfo);
46 void ReqUnHoldCall(const ReqDataInfo *requestInfo);
47 void ReqSwitchCall(const ReqDataInfo *requestInfo);
48 void ReqCombineConference(const ReqDataInfo *requestInfo, int32_t callType);
49 void ReqSeparateConference(const ReqDataInfo *requestInfo, int32_t callIndex, int32_t callType);
50 void ReqCallSupplement(const ReqDataInfo *requestInfo, int32_t type);
51 void ReqGetCallWaiting(const ReqDataInfo *requestInfo);
52 void ReqSetCallWaiting(const ReqDataInfo *requestInfo, int32_t active);
53 void ReqSetCallTransferInfo(const ReqDataInfo *requestInfo, HRilCFInfo info);
54 void ReqGetCallTransferInfo(const ReqDataInfo *requestInfo, int32_t reason);
55 void ReqGetCallRestriction(const ReqDataInfo *requestInfo, const char *fac);
56 void ReqSetCallRestriction(const ReqDataInfo *requestInfo, CallRestrictionInfo info);
57 void ReqGetClip(const ReqDataInfo *requestInfo);
58 void ReqSetClip(const ReqDataInfo *requestInfo, int32_t action);
59 void ReqGetClir(const ReqDataInfo *requestInfo);
60 void ReqSetClir(const ReqDataInfo *requestInfo, int32_t action);
61 void ReqStartDtmf(const ReqDataInfo *requestInfo, CallDtmfInfo info);
62 void ReqSendDtmf(const ReqDataInfo *requestInfo, CallDtmfInfo info);
63 void ReqStopDtmf(const ReqDataInfo *requestInfo, CallDtmfInfo info);
64 void ReqGetCallPreferenceMode(const ReqDataInfo *requestInfo);
65 void ReqSetCallPreferenceMode(const ReqDataInfo *requestInfo, int32_t mode);
66 void ReqSetUssd(const ReqDataInfo *requestInfo, const char *str);
67 void ReqGetUssd(const ReqDataInfo *requestInfo);
68 void ReqGetMute(const ReqDataInfo *requestInfo);
69 void ReqSetMute(const ReqDataInfo *requestInfo, int32_t mute);
70 void ReqGetEmergencyCallList(const ReqDataInfo *requestInfo);
71 void ReqSetEmergencyCallList(const ReqDataInfo *requestInfo, HRilEmergencyInfo *emergencyInfo, const int len);
72 void ReqGetCallFailReason(const ReqDataInfo *requestInfo);
73 void ReqSetBarringPassword(const ReqDataInfo *requestInfo, HRilSetBarringInfo info);
74 void ReqCloseUnFinishedUssd(const ReqDataInfo *requestInfo);
75 void ReqSetVonrSwitch(const ReqDataInfo *requestInfo, int32_t status);
76 
77 void ReportCallStateUpdated(const char *str);
78 void ReportSrvccStatusUpdate(const char *str);
79 void ReportCsChannelInfo(const char *str);
80 void CallReportInfoProcess(const char *str);
81 int32_t IsCallNoticeCmd(const char *str);
82 void ReportCallUssdNotice(const char *str);
83 void ReportEmergencyNumberList(const char *str);
84 #endif // OHOS_AT_CALL_H
85