• 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 OHOS_HRIL_CALL_H
17 #define OHOS_HRIL_CALL_H
18 
19 #include "hril_base.h"
20 #include "hril_call_parcel.h"
21 
22 namespace OHOS {
23 namespace Telephony {
24 class HRilCall : public HRilBase {
25 public:
26     HRilCall(int32_t slotId);
27     virtual ~HRilCall();
28 
29     bool IsCallRespOrNotify(uint32_t code);
30 
31     void RegisterCallFuncs(const HRilCallReq *callFuncs);
32 
33     int32_t GetCallList(int32_t serialId);
34     int32_t Dial(int32_t serialId, const OHOS::HDI::Ril::V1_1::DialInfo &dialInfo);
35     int32_t Reject(int32_t serialId);
36     int32_t Hangup(int32_t serialId, int32_t gsmIndex);
37     int32_t Answer(int32_t serialId);
38     int32_t HoldCall(int32_t serialId);
39     int32_t UnHoldCall(int32_t serialId);
40     int32_t SwitchCall(int32_t serialId);
41     int32_t CombineConference(int32_t serialId, int32_t callType);
42     int32_t SeparateConference(int32_t serialId, int32_t callIndex, int32_t callType);
43     int32_t GetCallWaiting(int32_t serialId);
44     int32_t SetCallWaiting(int32_t serialId, int32_t activate);
45     int32_t GetCallTransferInfo(int32_t serialId, int32_t reason);
46     int32_t SetCallTransferInfo(int32_t serialId, const OHOS::HDI::Ril::V1_1::CallForwardSetInfo &callForwardSetInfo);
47     int32_t GetCallRestriction(int32_t serialId, const std::string &fac);
48     int32_t SetCallRestriction(int32_t serialId, const OHOS::HDI::Ril::V1_1::CallRestrictionInfo &callRestrictionInfo);
49     int32_t GetClip(int32_t serialId);
50     int32_t SetClip(int32_t serialId, int32_t action);
51     int32_t GetClir(int32_t serialId);
52     int32_t SetClir(int32_t serialId, int32_t action);
53     int32_t GetCallPreferenceMode(int32_t serialId);
54     int32_t SetCallPreferenceMode(int32_t serialId, int32_t mode);
55     int32_t SetUssd(int32_t serialId, const std::string &str);
56     int32_t GetUssd(int32_t serialId);
57     int32_t SetMute(int32_t serialId, int32_t mute);
58     int32_t GetMute(int32_t serialId);
59     int32_t GetCallFailReason(int32_t serialId);
60     int32_t CallSupplement(int32_t serialId, int32_t type);
61     int32_t SetBarringPassword(int32_t serialId, const OHOS::HDI::Ril::V1_1::SetBarringInfo &setBarringInfo);
62     int32_t StartDtmf(int32_t serialId, const OHOS::HDI::Ril::V1_1::DtmfInfo &dtmfInfo);
63     int32_t SendDtmf(int32_t serialId, const OHOS::HDI::Ril::V1_1::DtmfInfo &dtmfInfo);
64     int32_t StopDtmf(int32_t serialId, const OHOS::HDI::Ril::V1_1::DtmfInfo &dtmfInfo);
65     int32_t GetEmergencyCallList(int32_t serialId);
66     int32_t SetEmergencyCallList(int32_t serialId, const OHOS::HDI::Ril::V1_1::EmergencyInfoList &emergencyInfoList);
67     int32_t CloseUnFinishedUssd(int32_t serialId);
68     bool IsCallResponse(uint32_t code);
69     bool IsCallNotification(uint32_t code);
70     int32_t SetVonrSwitch(int32_t serialId, int32_t status);
71 
72     int32_t GetCallListResponse(
73         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
74     int32_t DialResponse(
75         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
76     int32_t HangupResponse(
77         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
78     int32_t RejectResponse(
79         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
80     int32_t HoldCallResponse(
81         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
82     int32_t UnHoldCallResponse(
83         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
84     int32_t SwitchCallResponse(
85         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
86     int32_t GetLastCallErrorCodeResponse(
87         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
88     int32_t AnswerResponse(
89         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
90     int32_t GetClipResponse(
91         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
92     int32_t SetClipResponse(
93         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
94     int32_t CombineConferenceResponse(
95         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
96     int32_t SeparateConferenceResponse(
97         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
98     int32_t CallSupplementResponse(
99         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
100     int32_t GetCallWaitingResponse(
101         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
102     int32_t SetCallWaitingResponse(
103         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
104     int32_t GetCallTransferInfoResponse(
105         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
106     int32_t SetCallTransferInfoResponse(
107         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
108     int32_t GetCallRestrictionResponse(
109         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
110     int32_t SetCallRestrictionResponse(
111         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
112     int32_t GetClirResponse(
113         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
114     int32_t SetClirResponse(
115         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
116     int32_t StartDtmfResponse(
117         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
118     int32_t SendDtmfResponse(
119         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
120     int32_t StopDtmfResponse(
121         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
122     int32_t GetCallPreferenceModeResponse(
123         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
124     int32_t SetCallPreferenceModeResponse(
125         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
126     int32_t SetUssdResponse(
127         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
128     int32_t GetUssdResponse(
129         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
130     int32_t SetMuteResponse(
131         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
132     int32_t GetMuteResponse(
133         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
134     int32_t GetEmergencyCallListResponse(
135         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
136     int32_t GetCallFailReasonResponse(
137         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
138     int32_t SetEmergencyCallListResponse(
139         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
140     int32_t SetBarringPasswordResponse(
141         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
142     int32_t CloseUnFinishedUssdResponse(
143         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
144     int32_t SetVonrSwitchResponse(
145         int32_t requestNum, HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
146 
147     int32_t CallStateUpdated(int32_t notifyType, HRilErrNumber error, const void *response, size_t responseLen);
148     int32_t CallUssdNotice(int32_t notifyType, HRilErrNumber error, const void *response, size_t responseLen);
149     int32_t CallRingbackVoiceNotice(int32_t notifyType, HRilErrNumber error, const void *response, size_t responseLen);
150     int32_t CallSrvccStatusNotice(int32_t notifyType, HRilErrNumber error, const void *response, size_t responseLen);
151     int32_t CallEmergencyNotice(int32_t notifyType, HRilErrNumber error, const void *response, size_t responseLen);
152     int32_t CallSsNotice(int32_t notifyType, HRilErrNumber error, const void *response, size_t responseLen);
153     int32_t CallRsrvccStatusNotify(int32_t notifyType, HRilErrNumber error, const void *response, size_t responseLen);
154     void BuildICallList(
155         HDI::Ril::V1_1::CallInfoList &callInfoList, const void *response, size_t responseLen);
156     void BuildIEmergencyCallList(
157         HDI::Ril::V1_1::EmergencyInfoList &emergencyCallInfoList, const void *response, size_t responseLen);
158     void BuildICallForwardQueryInfoList(HDI::Ril::V1_1::CallForwardQueryInfoList &cFQueryList,
159         HRilRadioResponseInfo &responseInfo, const void *response, size_t responseLen);
160 
161 private:
162     void CopyToHRilEmergencyInfoArray(
163         HRilEmergencyInfo *emergencyInfoCalls, std::vector<HDI::Ril::V1_1::EmergencyCall> calls);
164     void AddCallNotificationToMap();
165     void AddCallResponseToMap();
166 
167 private:
168     const HRilCallReq *callFuncs_ = nullptr;
169 };
170 } // namespace Telephony
171 } // namespace OHOS
172 #endif // OHOS_HRIL_CALL_H
173