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