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