1 /* 2 * Copyright (c) 2024 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 HDF_RIL_CALLBACK_COMMON_H 17 #define HDF_RIL_CALLBACK_COMMON_H 18 19 #include "cmath" 20 #include "condition_variable" 21 #include "cstdio" 22 #include "hdf_base.h" 23 #include "hdf_log.h" 24 #include "map" 25 #include "mutex" 26 #include "securec.h" 27 #include "cstdlib" 28 #include "unistd.h" 29 #include "v1_3/iril.h" 30 #include "gtest/gtest.h" 31 32 #include <ctime> 33 #include <random> 34 35 #define RAND_MAXVALUE 10000000000 36 37 using OHOS::HDI::Ril::V1_2::RilRadioResponseInfo; 38 using OHOS::HDI::Ril::V1_2::RingbackVoice; 39 using OHOS::HDI::Ril::V1_2::SrvccStatus; 40 using OHOS::HDI::Ril::V1_2::UssdNoticeInfo; 41 using OHOS::HDI::Ril::V1_2::SsNoticeInfo; 42 using OHOS::HDI::Ril::V1_2::EmergencyInfoList; 43 using OHOS::HDI::Ril::V1_2::CallInfoList; 44 using OHOS::HDI::Ril::V1_2::GetClipResult; 45 using OHOS::HDI::Ril::V1_2::CallWaitResult; 46 using OHOS::HDI::Ril::V1_2::CallForwardQueryInfoList; 47 using OHOS::HDI::Ril::V1_2::CallRestrictionResult; 48 using OHOS::HDI::Ril::V1_2::GetClirResult; 49 using OHOS::HDI::Ril::V1_2::DataCallResultList; 50 using OHOS::HDI::Ril::V1_2::DataLinkCapability; 51 using OHOS::HDI::Ril::V1_2::SetupDataCallResultInfo; 52 using OHOS::HDI::Ril::V1_2::DataLinkBandwidthInfo; 53 using OHOS::HDI::Ril::V1_2::VoiceRadioTechnology; 54 using OHOS::HDI::Ril::V1_2::RadioProtocol; 55 using OHOS::HDI::Ril::V1_2::IccIoResultInfo; 56 using OHOS::HDI::Ril::V1_2::CardStatusInfo; 57 using OHOS::HDI::Ril::V1_2::LockStatusResp; 58 using OHOS::HDI::Ril::V1_2::OpenLogicalChannelResponse; 59 using OHOS::HDI::Ril::V1_2::CsRegStatusInfo; 60 using OHOS::HDI::Ril::V1_2::PsRegStatusInfo; 61 using OHOS::HDI::Ril::V1_2::Rssi; 62 using OHOS::HDI::Ril::V1_2::ChannelConfigInfoList; 63 using OHOS::HDI::Ril::V1_2::CellListCurrentInfo_1_1; 64 using OHOS::HDI::Ril::V1_2::CellListCurrentInfo; 65 using OHOS::HDI::Ril::V1_2::PreferredNetworkTypeInfo; 66 using OHOS::HDI::Ril::V1_2::OperatorInfo; 67 using OHOS::HDI::Ril::V1_2::AvailableNetworkList; 68 using OHOS::HDI::Ril::V1_2::SetNetworkModeInfo; 69 using OHOS::HDI::Ril::V1_2::CellListNearbyInfo; 70 using OHOS::HDI::Ril::V1_2::NrCellSsbIds; 71 using OHOS::HDI::Ril::V1_2::SmsMessageInfo; 72 using OHOS::HDI::Ril::V1_2::CBConfigReportInfo; 73 using OHOS::HDI::Ril::V1_2::SendSmsResultInfo; 74 using OHOS::HDI::Ril::V1_2::ServiceCenterAddress; 75 using OHOS::HDI::Ril::V1_2::CBConfigInfo; 76 using OHOS::HDI::Ril::V1_2::CdmaCBConfigInfo; 77 using OHOS::HDI::Ril::V1_2::PhysicalChannelConfig; 78 using OHOS::HDI::Ril::V1_2::CellListCurrentInfo_1_2; 79 using OHOS::HDI::Ril::V1_2::CellListNearbyInfo_1_2; 80 using OHOS::HDI::Ril::V1_3::SimCardStatusInfo; 81 82 enum class HdiId { 83 HREQ_NONE = -1, 84 HREQ_CALL_BASE = 0, 85 HREQ_CALL_GET_CALL_LIST, 86 HREQ_CALL_DIAL, 87 HREQ_CALL_HANGUP, 88 HREQ_CALL_REJECT, 89 HREQ_CALL_ANSWER, 90 HREQ_CALL_HOLD_CALL, 91 HREQ_CALL_UNHOLD_CALL, 92 HREQ_CALL_SWITCH_CALL, 93 HREQ_CALL_COMBINE_CONFERENCE, 94 HREQ_CALL_SEPARATE_CONFERENCE, 95 HREQ_CALL_CALL_SUPPLEMENT, 96 HREQ_CALL_SEND_DTMF, 97 HREQ_CALL_START_DTMF, 98 HREQ_CALL_STOP_DTMF, 99 HREQ_CALL_SET_CLIP, 100 HREQ_CALL_GET_CLIP, 101 HREQ_CALL_GET_CALL_WAITING, 102 HREQ_CALL_SET_CALL_WAITING, 103 HREQ_CALL_GET_CALL_RESTRICTION, 104 HREQ_CALL_SET_CALL_RESTRICTION, 105 HREQ_CALL_GET_CALL_TRANSFER_INFO, 106 HREQ_CALL_SET_CALL_TRANSFER_INFO, 107 HREQ_CALL_GET_CLIR, 108 HREQ_CALL_SET_CLIR, 109 HREQ_CALL_GET_CALL_PREFERENCE, 110 HREQ_CALL_SET_CALL_PREFERENCE, 111 HREQ_CALL_SET_USSD, 112 HREQ_CALL_GET_USSD, 113 HREQ_CALL_SET_MUTE, 114 HREQ_CALL_GET_MUTE, 115 HREQ_CALL_GET_EMERGENCY_LIST, 116 HREQ_CALL_SET_EMERGENCY_LIST, 117 HREQ_CALL_GET_FAIL_REASON, 118 HREQ_CALL_SET_BARRING_PASSWORD, 119 HREQ_CALL_CLOSE_UNFINISHED_USSD, 120 HREQ_SET_VONR_SWITCH, 121 122 HREQ_SMS_BASE = 100, 123 HREQ_SMS_SEND_GSM_SMS, 124 HREQ_SMS_SEND_CDMA_SMS, 125 HREQ_SMS_ADD_SIM_MESSAGE, 126 HREQ_SMS_DEL_SIM_MESSAGE, 127 HREQ_SMS_UPDATE_SIM_MESSAGE, 128 HREQ_SMS_SEND_SMS_MORE_MODE, 129 HREQ_SMS_SEND_SMS_ACK, 130 HREQ_SMS_SET_SMSC_ADDR, 131 HREQ_SMS_GET_SMSC_ADDR, 132 HREQ_SMS_SET_CB_CONFIG, 133 HREQ_SMS_GET_CB_CONFIG, 134 HREQ_SMS_GET_CDMA_CB_CONFIG, 135 HREQ_SMS_SET_CDMA_CB_CONFIG, 136 HREQ_SMS_ADD_CDMA_SIM_MESSAGE, 137 HREQ_SMS_DEL_CDMA_SIM_MESSAGE, 138 HREQ_SMS_UPDATE_CDMA_SIM_MESSAGE, 139 140 HREQ_SIM_BASE = 200, 141 HREQ_SIM_GET_SIM_STATUS, 142 HREQ_SIM_GET_IMSI, 143 HREQ_SIM_GET_SIM_IO, 144 HREQ_SIM_GET_SIM_LOCK_STATUS, 145 HREQ_SIM_SET_SIM_LOCK, 146 HREQ_SIM_CHANGE_SIM_PASSWORD, 147 HREQ_SIM_UNLOCK_PIN, 148 HREQ_SIM_UNLOCK_PUK, 149 HREQ_SIM_GET_SIM_PIN_INPUT_TIMES, 150 HREQ_SIM_UNLOCK_PIN2, 151 HREQ_SIM_UNLOCK_PUK2, 152 HREQ_SIM_GET_SIM_PIN2_INPUT_TIMES, 153 HREQ_SIM_SET_ACTIVE_SIM, 154 HREQ_SIM_RADIO_PROTOCOL, 155 HREQ_SIM_STK_SEND_TERMINAL_RESPONSE, 156 HREQ_SIM_STK_SEND_ENVELOPE, 157 HREQ_SIM_STK_SEND_CALL_SETUP_REQUEST_RESULT, 158 HREQ_SIM_STK_IS_READY, 159 HREQ_SIM_OPEN_LOGICAL_CHANNEL, 160 HREQ_SIM_CLOSE_LOGICAL_CHANNEL, 161 HREQ_SIM_TRANSMIT_APDU_LOGICAL_CHANNEL, 162 HREQ_SIM_TRANSMIT_APDU_BASIC_CHANNEL, 163 HREQ_SIM_AUTHENTICATION, 164 HREQ_SIM_UNLOCK_SIM_LOCK, 165 HREQ_SIM_SEND_NCFG_OPER_INFO, 166 167 HREQ_DATA_BASE = 300, 168 HREQ_DATA_SET_INIT_APN_INFO, 169 HREQ_DATA_DEACTIVATE_PDP_CONTEXT, 170 HREQ_DATA_ACTIVATE_PDP_CONTEXT, 171 HREQ_DATA_GET_PDP_CONTEXT_LIST, 172 HREQ_DATA_GET_LINK_BANDWIDTH_INFO, 173 HREQ_DATA_SET_LINK_BANDWIDTH_REPORTING_RULE, 174 HREQ_DATA_SET_DATA_PROFILE_INFO, 175 HREQ_DATA_SEND_DATA_PERFORMANCE_MODE, 176 HREQ_DATA_SEND_DATA_SLEEP_MODE, 177 HREQ_DATA_SET_DATA_PERMITTED, 178 HREQ_DATA_GET_LINK_CAPABILITY, 179 HREQ_DATA_CLEAN_ALL_CONNECTIONS, 180 181 HREQ_NETWORK_BASE = 400, 182 HREQ_NETWORK_GET_SIGNAL_STRENGTH, 183 HREQ_NETWORK_GET_CS_REG_STATUS, 184 HREQ_NETWORK_GET_PS_REG_STATUS, 185 HREQ_NETWORK_GET_OPERATOR_INFO, 186 HREQ_NETWORK_GET_NETWORK_SEARCH_INFORMATION, 187 HREQ_NETWORK_GET_NETWORK_SELECTION_MODE, 188 HREQ_NETWORK_SET_NETWORK_SELECTION_MODE, 189 HREQ_NETWORK_GET_NEIGHBORING_CELLINFO_LIST, 190 HREQ_NETWORK_GET_CURRENT_CELL_INFO, 191 HREQ_NETWORK_SET_PREFERRED_NETWORK, 192 HREQ_NETWORK_GET_PREFERRED_NETWORK, 193 HREQ_NETWORK_GET_RADIO_CAPABILITY, 194 HREQ_NETWORK_GET_PHYSICAL_CHANNEL_CONFIG, 195 HREQ_NETWORK_SET_LOCATE_UPDATES, 196 HREQ_NETWORK_SET_NOTIFICATION_FILTER, 197 HREQ_NETWORK_SET_DEVICE_STATE, 198 HREQ_NETWORK_GET_RRC_CONNECTION_STATE, 199 HREQ_NETWORK_SET_NR_OPTION_MODE, 200 HREQ_NETWORK_GET_NR_OPTION_MODE, 201 HREQ_NETWORK_GET_NR_SSBID_INFO, 202 203 HREQ_COMMON_BASE = 500, 204 HREQ_MODEM_SHUT_DOWN, 205 HREQ_MODEM_SET_RADIO_STATUS, 206 HREQ_MODEM_GET_RADIO_STATUS, 207 HREQ_MODEM_GET_IMEI, 208 HREQ_MODEM_GET_IMEISV, 209 HREQ_MODEM_GET_MEID, 210 HREQ_MODEM_GET_BASEBAND_VERSION, 211 HREQ_MODEM_GET_VOICE_RADIO, 212 HREQ_MODEM_EXIT = 1000 213 }; 214 215 enum class DeviceStateType { POWER_SAVE_MODE, CHARGING_STATE, LOW_DATA_STATE }; 216 217 enum class NrMode { NR_MODE_UNKNOWN, NR_MODE_NSA_ONLY, NR_MODE_SA_ONLY, NR_MODE_NSA_AND_SA }; 218 219 enum class NotificationFilter { 220 NOTIFICATION_FILTER_ALL = -1, 221 NOTIFICATION_FILTER_NONE = 0, 222 NOTIFICATION_FILTER_SIGNAL_STRENGTH = 1, 223 NOTIFICATION_FILTER_NETWORK_STATE = 2, 224 NOTIFICATION_FILTER_DATA_CALL = 4, 225 NOTIFICATION_FILTER_LINK_CAPACITY = 8, 226 NOTIFICATION_FILTER_PHYSICAL_CHANNEL_CONFIG = 16 227 }; 228 229 enum class RatType { 230 NETWORK_TYPE_UNKNOWN = 0, 231 NETWORK_TYPE_GSM, 232 NETWORK_TYPE_CDMA, 233 NETWORK_TYPE_WCDMA, 234 NETWORK_TYPE_TDSCDMA, 235 NETWORK_TYPE_LTE, 236 NETWORK_TYPE_NR 237 }; 238 239 enum class SelectionMode { MODE_TYPE_UNKNOWN = -1, MODE_TYPE_AUTO = 0, MODE_TYPE_MANUAL = 1 }; 240 241 enum class PreferredNetworkMode { 242 CORE_NETWORK_MODE_AUTO = 0, 243 CORE_NETWORK_MODE_GSM = 1, 244 CORE_NETWORK_MODE_WCDMA = 2, 245 CORE_NETWORK_MODE_LTE = 3, 246 CORE_NETWORK_MODE_LTE_WCDMA = 4, 247 CORE_NETWORK_MODE_LTE_WCDMA_GSM = 5, 248 CORE_NETWORK_MODE_WCDMA_GSM = 6, 249 CORE_NETWORK_MODE_CDMA = 7, 250 CORE_NETWORK_MODE_EVDO = 8, 251 CORE_NETWORK_MODE_EVDO_CDMA = 9, 252 CORE_NETWORK_MODE_WCDMA_GSM_EVDO_CDMA = 10, 253 CORE_NETWORK_MODE_LTE_EVDO_CDMA = 11, 254 CORE_NETWORK_MODE_LTE_WCDMA_GSM_EVDO_CDMA = 12, 255 CORE_NETWORK_MODE_TDSCDMA = 13, 256 CORE_NETWORK_MODE_TDSCDMA_GSM = 14, 257 CORE_NETWORK_MODE_TDSCDMA_WCDMA = 15, 258 CORE_NETWORK_MODE_TDSCDMA_WCDMA_GSM = 16, 259 CORE_NETWORK_MODE_LTE_TDSCDMA = 17, 260 CORE_NETWORK_MODE_LTE_TDSCDMA_GSM = 18, 261 CORE_NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19, 262 CORE_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM = 20, 263 CORE_NETWORK_MODE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 21, 264 CORE_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 22, 265 CORE_NETWORK_MODE_NR = 31, 266 CORE_NETWORK_MODE_NR_LTE = 32, 267 CORE_NETWORK_MODE_NR_LTE_WCDMA = 33, 268 CORE_NETWORK_MODE_NR_LTE_WCDMA_GSM = 34, 269 CORE_NETWORK_MODE_NR_LTE_EVDO_CDMA = 35, 270 CORE_NETWORK_MODE_NR_LTE_WCDMA_GSM_EVDO_CDMA = 36, 271 CORE_NETWORK_MODE_NR_LTE_TDSCDMA = 37, 272 CORE_NETWORK_MODE_NR_LTE_TDSCDMA_GSM = 38, 273 CORE_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA = 39, 274 CORE_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM = 40, 275 CORE_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 41, 276 CORE_NETWORK_MODE_MAX_VALUE = 99, 277 }; 278 279 enum class SimMessageStatus { 280 SIM_MESSAGE_STATUS_UNREAD = 0, 281 SIM_MESSAGE_STATUS_READ = 1, 282 SIM_MESSAGE_STATUS_UNSENT = 2, 283 SIM_MESSAGE_STATUS_SENT = 3, 284 }; 285 286 class RilCallback : public OHOS::HDI::Ril::V1_3::IRilCallback { 287 public: 288 void NotifyAll(); 289 void WaitFor(int32_t timeoutSecond); 290 bool GetBoolResult(HdiId hdiId); 291 void Clean(); 292 293 int32_t CallStateUpdated(const RilRadioResponseInfo &responseInfo) override; 294 int32_t CallRingbackVoiceNotice(const RilRadioResponseInfo &responseInfo, 295 const RingbackVoice &ringbackVoice) override; 296 int32_t CallSrvccStatusNotice(const RilRadioResponseInfo &responseInfo, const SrvccStatus &srvccStatus) override; 297 int32_t CallUssdNotice(const RilRadioResponseInfo &responseInfo, const UssdNoticeInfo &ussdNoticeInfo) override; 298 int32_t CallSsNotice(const RilRadioResponseInfo &responseInfo, const SsNoticeInfo &ssNoticeInfo) override; 299 int32_t CallEmergencyNotice(const RilRadioResponseInfo &responseInfo, 300 const EmergencyInfoList &emergencyInfoList) override; 301 int32_t CallRsrvccStatusNotify(const RilRadioResponseInfo &responseInfo) override; 302 int32_t SetEmergencyCallListResponse(const RilRadioResponseInfo &responseInfo) override; 303 int32_t GetEmergencyCallListResponse(const RilRadioResponseInfo &responseInfo, 304 const EmergencyInfoList &emergencyInfoList) override; 305 int32_t GetCallListResponse(const RilRadioResponseInfo &responseInfo, const CallInfoList &callList) override; 306 int32_t DialResponse(const RilRadioResponseInfo &responseInfo) override; 307 int32_t HangupResponse(const RilRadioResponseInfo &responseInfo) override; 308 int32_t RejectResponse(const RilRadioResponseInfo &responseInfo) override; 309 int32_t AnswerResponse(const RilRadioResponseInfo &responseInfo) override; 310 int32_t HoldCallResponse(const RilRadioResponseInfo &responseInfo) override; 311 int32_t UnHoldCallResponse(const RilRadioResponseInfo &responseInfo) override; 312 int32_t SwitchCallResponse(const RilRadioResponseInfo &responseInfo) override; 313 int32_t GetClipResponse(const RilRadioResponseInfo &responseInfo, const GetClipResult &getClipResult) override; 314 int32_t SetClipResponse(const RilRadioResponseInfo &responseInfo) override; 315 int32_t CombineConferenceResponse(const RilRadioResponseInfo &responseInfo) override; 316 int32_t SeparateConferenceResponse(const RilRadioResponseInfo &responseInfo) override; 317 int32_t CallSupplementResponse(const RilRadioResponseInfo &responseInfo) override; 318 int32_t GetCallWaitingResponse(const RilRadioResponseInfo &responseInfo, 319 const CallWaitResult &callWaitResult) override; 320 int32_t SetCallWaitingResponse(const RilRadioResponseInfo &responseInfo) override; 321 int32_t GetCallTransferInfoResponse(const RilRadioResponseInfo &responseInfo, 322 const CallForwardQueryInfoList &cFQueryList) override; 323 int32_t SetCallTransferInfoResponse(const RilRadioResponseInfo &responseInfo) override; 324 int32_t GetCallRestrictionResponse(const RilRadioResponseInfo &responseInfo, 325 const CallRestrictionResult &result) override; 326 int32_t SetCallRestrictionResponse(const RilRadioResponseInfo &responseInfo) override; 327 int32_t GetClirResponse(const RilRadioResponseInfo &responseInfo, const GetClirResult &getClirResult) override; 328 int32_t SetClirResponse(const RilRadioResponseInfo &responseInfo) override; 329 int32_t StartDtmfResponse(const RilRadioResponseInfo &responseInfo) override; 330 int32_t SendDtmfResponse(const RilRadioResponseInfo &responseInfo) override; 331 int32_t StopDtmfResponse(const RilRadioResponseInfo &responseInfo) override; 332 int32_t GetCallPreferenceModeResponse(const RilRadioResponseInfo &responseInfo, int32_t mode) override; 333 int32_t SetCallPreferenceModeResponse(const RilRadioResponseInfo &responseInfo) override; 334 int32_t SetUssdResponse(const RilRadioResponseInfo &responseInfo) override; 335 int32_t GetUssdResponse(const RilRadioResponseInfo &responseInfo, int32_t cusd) override; 336 int32_t SetMuteResponse(const RilRadioResponseInfo &responseInfo) override; 337 int32_t GetMuteResponse(const RilRadioResponseInfo &responseInfo, int32_t mute) override; 338 int32_t GetCallFailReasonResponse(const RilRadioResponseInfo &responseInfo, int32_t callFail) override; 339 int32_t SetBarringPasswordResponse(const RilRadioResponseInfo &responseInfo) override; 340 int32_t CloseUnFinishedUssdResponse(const RilRadioResponseInfo &responseInfo) override; 341 int32_t SetVonrSwitchResponse(const RilRadioResponseInfo &responseInfo) override; 342 343 int32_t PdpContextListUpdated(const RilRadioResponseInfo &responseInfo, 344 const DataCallResultList &dataCallResultList) override; 345 int32_t DataLinkCapabilityUpdated(const RilRadioResponseInfo &responseInfo, 346 const DataLinkCapability &dataLinkCapability) override; 347 int32_t ActivatePdpContextResponse(const RilRadioResponseInfo &responseInfo, 348 const SetupDataCallResultInfo &setupDataCallResultInfo) override; 349 int32_t DeactivatePdpContextResponse(const RilRadioResponseInfo &responseInfo) override; 350 int32_t GetPdpContextListResponse(const RilRadioResponseInfo &responseInfo, 351 const DataCallResultList &dataCallResultList) override; 352 int32_t SetInitApnInfoResponse(const RilRadioResponseInfo &responseInfo) override; 353 int32_t SetLinkBandwidthReportingRuleResponse(const RilRadioResponseInfo &responseInfo) override; 354 int32_t GetLinkBandwidthInfoResponse(const RilRadioResponseInfo &responseInfo, 355 const DataLinkBandwidthInfo &dataLinkBandwidthInfo) override; 356 int32_t SetDataPermittedResponse(const RilRadioResponseInfo &responseInfo) override; 357 int32_t SetDataProfileInfoResponse(const RilRadioResponseInfo &responseInfo); 358 int32_t GetLinkCapabilityResponse(const RilRadioResponseInfo &responseInfo, 359 const DataLinkCapability &dataLinkCapability) override; 360 int32_t CleanAllConnectionsResponse(const RilRadioResponseInfo &responseInfo) override; 361 362 int32_t RadioStateUpdated(const RilRadioResponseInfo &responseInfo, int32_t state) override; 363 int32_t VoiceRadioTechUpdated(const RilRadioResponseInfo &responseInfo, 364 const VoiceRadioTechnology &voiceRadioTechnology) override; 365 int32_t DsdsModeUpdated(const RilRadioResponseInfo &responseInfo, int32_t mode) override; 366 int32_t NcfgFinishedResult(const RilRadioResponseInfo &responseInfo, int32_t state) override; 367 int32_t RestartRildNvMatch(const RilRadioResponseInfo &responseInfo, int32_t state) override; 368 369 int32_t ShutDownResponse(const RilRadioResponseInfo &responseInfo) override; 370 int32_t SetRadioStateResponse(const RilRadioResponseInfo &responseInfo) override; 371 int32_t GetRadioStateResponse(const RilRadioResponseInfo &responseInfo, int32_t state) override; 372 int32_t GetImeiResponse(const RilRadioResponseInfo &responseInfo, const std::string &imei) override; 373 int32_t GetImeiSvResponse(const RilRadioResponseInfo &responseInfo, const std::string &imeiSv) override; 374 int32_t GetMeidResponse(const RilRadioResponseInfo &responseInfo, const std::string &meid) override; 375 int32_t GetVoiceRadioTechnologyResponse(const RilRadioResponseInfo &responseInfo, 376 const VoiceRadioTechnology &voiceRadioTechnology) override; 377 int32_t GetBasebandVersionResponse(const RilRadioResponseInfo &responseInfo, 378 const std::string &basebandVersion) override; 379 380 int32_t SimStateUpdated(const RilRadioResponseInfo &responseInfo) override; 381 int32_t SimStkSessionEndNotify(const RilRadioResponseInfo &responseInfo) override; 382 int32_t SimStkProactiveNotify(const RilRadioResponseInfo &responseInfo, const std::string &response) override; 383 int32_t SimStkAlphaNotify(const RilRadioResponseInfo &responseInfo, const std::string &response) override; 384 int32_t SimStkEventNotify(const RilRadioResponseInfo &responseInfo, const std::string &response) override; 385 int32_t SimStkCallSetupNotify(const RilRadioResponseInfo &responseInfo) override; 386 int32_t SimRefreshNotify(const RilRadioResponseInfo &responseInfo) override; SimRadioProtocolUpdated(const RilRadioResponseInfo & responseInfo,const RadioProtocol & radioProtocol)387 int32_t SimRadioProtocolUpdated(const RilRadioResponseInfo &responseInfo, 388 const RadioProtocol &radioProtocol) override 389 { 390 return 0; 391 } 392 int32_t GetSimIOResponse(const RilRadioResponseInfo &responseInfo, const IccIoResultInfo &result) override; 393 int32_t GetSimStatusResponse(const RilRadioResponseInfo &responseInfo, const CardStatusInfo &result) override; 394 int32_t GetSimCardStatusResponse(const RilRadioResponseInfo &responseInfo, 395 const SimCardStatusInfo &result) override; 396 int32_t GetImsiResponse(const RilRadioResponseInfo &responseInfo, const std::string &response) override; 397 int32_t GetSimLockStatusResponse(const RilRadioResponseInfo &responseInfo, int32_t simLockStatus) override; 398 int32_t SetSimLockResponse(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override; 399 int32_t ChangeSimPasswordResponse(const RilRadioResponseInfo &responseInfo, 400 const LockStatusResp &lockStatus) override; 401 int32_t UnlockPinResponse(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override; 402 int32_t UnlockPukResponse(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override; 403 int32_t UnlockPin2Response(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override; 404 int32_t UnlockPuk2Response(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override; 405 int32_t SetActiveSimResponse(const RilRadioResponseInfo &responseInfo) override; 406 int32_t SimStkSendTerminalResponseResponse(const RilRadioResponseInfo &responseInfo) override; 407 int32_t SimStkSendEnvelopeResponse(const RilRadioResponseInfo &responseInfo) override; 408 int32_t SimStkSendCallSetupRequestResultResponse(const RilRadioResponseInfo &responseInfo) override; 409 int32_t SimStkIsReadyResponse(const RilRadioResponseInfo &responseInfo) override; 410 int32_t SetRadioProtocolResponse(const RilRadioResponseInfo &responseInfo, 411 const RadioProtocol &radioProtocol) override; 412 int32_t GetRadioProtocolResponse(const RilRadioResponseInfo &responseInfo, 413 const RadioProtocol &radioProtocol) override; 414 int32_t SimOpenLogicalChannelResponse(const RilRadioResponseInfo &responseInfo, 415 const OpenLogicalChannelResponse &pOpenLogicalChannelResponse) override; 416 int32_t SimCloseLogicalChannelResponse(const RilRadioResponseInfo &responseInfo) override; 417 int32_t SimTransmitApduLogicalChannelResponse(const RilRadioResponseInfo &responseInfo, 418 const IccIoResultInfo &result) override; 419 int32_t SimTransmitApduBasicChannelResponse(const RilRadioResponseInfo &responseInfo, 420 const IccIoResultInfo &result) override; 421 int32_t SimAuthenticationResponse(const RilRadioResponseInfo &responseInfo, const IccIoResultInfo &result) override; 422 int32_t UnlockSimLockResponse(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override; 423 int32_t SendSimMatchedOperatorInfoResponse(const RilRadioResponseInfo &responseInfo) override; 424 425 int32_t NetworkCsRegStatusUpdated(const RilRadioResponseInfo &responseInfo, 426 const CsRegStatusInfo &csRegStatusInfo) override; 427 int32_t NetworkPsRegStatusUpdated(const RilRadioResponseInfo &responseInfo, 428 const PsRegStatusInfo &psRegStatusInfo) override; 429 int32_t SignalStrengthUpdated(const RilRadioResponseInfo &responseInfo, const Rssi &rssi) override; 430 int32_t NetworkTimeZoneUpdated(const RilRadioResponseInfo &responseInfo, const std::string &timeZoneStr) override; 431 int32_t NetworkTimeUpdated(const RilRadioResponseInfo &responseInfo, const std::string &timeStr) override; 432 int32_t NetworkPhyChnlCfgUpdated(const RilRadioResponseInfo &responseInfo, 433 const ChannelConfigInfoList &channelConfigInfoList) override; 434 int32_t NetworkCurrentCellUpdated(const RilRadioResponseInfo &responseInfo, 435 const CellListCurrentInfo &cellListCurrentInfo) override; 436 int32_t NetworkCurrentCellUpdated_1_1(const RilRadioResponseInfo &responseInfo, 437 const CellListCurrentInfo_1_1 &cellListCurrentInfo) override; 438 int32_t NetworkCurrentCellUpdated_1_2(const RilRadioResponseInfo &responseInfo, 439 const CellListCurrentInfo_1_2 &cellListCurrentInfo) override; 440 int32_t ResidentNetworkUpdated(const RilRadioResponseInfo &responseInfo, const std::string &plmn) override; 441 int32_t GetSignalStrengthResponse(const RilRadioResponseInfo &responseInfo, const Rssi &rssi) override; 442 int32_t GetCsRegStatusResponse(const RilRadioResponseInfo &responseInfo, 443 const CsRegStatusInfo &csRegStatusInfo) override; 444 int32_t GetPsRegStatusResponse(const RilRadioResponseInfo &responseInfo, 445 const PsRegStatusInfo &psRegStatusInfo) override; 446 int32_t GetOperatorInfoResponse(const RilRadioResponseInfo &responseInfo, 447 const OperatorInfo &operatorInfo) override; 448 int32_t GetNetworkSearchInformationResponse(const RilRadioResponseInfo &responseInfo, 449 const AvailableNetworkList &availableNetworkList) override; 450 int32_t GetNetworkSelectionModeResponse(const RilRadioResponseInfo &responseInfo, 451 const SetNetworkModeInfo &setNetworkModeInfo) override; 452 int32_t SetNetworkSelectionModeResponse(const RilRadioResponseInfo &responseInfo) override; 453 int32_t GetNeighboringCellInfoListResponse(const RilRadioResponseInfo &responseInfo, 454 const CellListNearbyInfo &cellInfoList) override; 455 int32_t GetNeighboringCellInfoListResponse_1_2(const RilRadioResponseInfo &responseInfo, 456 const CellListNearbyInfo_1_2 &cellInfoList) override; 457 int32_t GetCurrentCellInfoResponse(const RilRadioResponseInfo &responseInfo, 458 const CellListCurrentInfo &cellInfoList) override; 459 int32_t GetCurrentCellInfoResponse_1_1(const RilRadioResponseInfo &responseInfo, 460 const CellListCurrentInfo_1_1 &cellListCurrentInfo) override; 461 int32_t GetCurrentCellInfoResponse_1_2(const RilRadioResponseInfo &responseInfo, 462 const CellListCurrentInfo_1_2 &cellListCurrentInfo) override; 463 int32_t SetPreferredNetworkResponse(const RilRadioResponseInfo &responseInfo) override; 464 int32_t GetPreferredNetworkResponse(const RilRadioResponseInfo &responseInfo, 465 const PreferredNetworkTypeInfo &preferredNetworkTypeInfo) override; 466 int32_t GetPhysicalChannelConfigResponse(const RilRadioResponseInfo &responseInfo, 467 const ChannelConfigInfoList &channelConfigInfoList) override; 468 int32_t SetLocateUpdatesResponse(const RilRadioResponseInfo &responseInfo) override; 469 int32_t SetNotificationFilterResponse(const RilRadioResponseInfo &responseInfo) override; 470 int32_t SetDeviceStateResponse(const RilRadioResponseInfo &responseInfo) override; 471 int32_t GetRrcConnectionStateResponse(const RilRadioResponseInfo &responseInfo, int32_t state) override; 472 int32_t SetNrOptionModeResponse(const RilRadioResponseInfo &responseInfo) override; 473 int32_t GetNrOptionModeResponse(const RilRadioResponseInfo &responseInfo, int32_t mode) override; 474 int32_t GetRrcConnectionStateUpdated(const RilRadioResponseInfo &responseInfo, int32_t state) override; 475 int32_t GetNrSsbIdResponse(const RilRadioResponseInfo &responseInfo, const NrCellSsbIds &nrCellSsbIds) override; 476 477 int32_t NewSmsNotify(const OHOS::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, 478 const SmsMessageInfo &smsMessageInfo) override; 479 int32_t NewCdmaSmsNotify(const OHOS::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, 480 const SmsMessageInfo &smsMessageInfo) override; 481 int32_t SmsStatusReportNotify(const OHOS::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, 482 const SmsMessageInfo &smsMessageInfo) override; 483 int32_t NewSmsStoredOnSimNotify(const OHOS::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, 484 int32_t recordNumber, int32_t indicationType) override; 485 int32_t CBConfigNotify(const OHOS::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo, 486 const CBConfigReportInfo &cellBroadConfigReportInfo) override; 487 int32_t SendGsmSmsResponse(const RilRadioResponseInfo &responseInfo, 488 const SendSmsResultInfo &sendSmsResultInfo) override; 489 int32_t SendCdmaSmsResponse(const RilRadioResponseInfo &responseInfo, 490 const SendSmsResultInfo &sendSmsResultInfo) override; 491 int32_t AddSimMessageResponse(const RilRadioResponseInfo &responseInfo) override; 492 int32_t DelSimMessageResponse(const RilRadioResponseInfo &responseInfo) override; 493 int32_t UpdateSimMessageResponse(const RilRadioResponseInfo &responseInfo) override; 494 int32_t AddCdmaSimMessageResponse(const RilRadioResponseInfo &responseInfo) override; 495 int32_t DelCdmaSimMessageResponse(const RilRadioResponseInfo &responseInfo) override; 496 int32_t UpdateCdmaSimMessageResponse(const RilRadioResponseInfo &responseInfo) override; 497 int32_t SetSmscAddrResponse(const RilRadioResponseInfo &responseInfo) override; 498 int32_t GetSmscAddrResponse(const RilRadioResponseInfo &responseInfo, 499 const ServiceCenterAddress &serviceCenterAddress) override; 500 int32_t SetCBConfigResponse(const RilRadioResponseInfo &responseInfo) override; 501 int32_t GetCBConfigResponse(const RilRadioResponseInfo &responseInfo, 502 const CBConfigInfo &cellBroadcastInfo) override; 503 int32_t SetCdmaCBConfigResponse(const RilRadioResponseInfo &responseInfo) override; 504 int32_t GetCdmaCBConfigResponse(const RilRadioResponseInfo &responseInfo, 505 const CdmaCBConfigInfo &cdmaCBConfigInfo) override; 506 int32_t SendSmsMoreModeResponse(const RilRadioResponseInfo &responseInfo, 507 const SendSmsResultInfo &sendSmsResultInfo) override; 508 int32_t SendSmsAckResponse(const RilRadioResponseInfo &responseInfo) override; 509 510 int32_t CommonErrorResponse(const RilRadioResponseInfo &responseInfo) override; 511 512 private: 513 std::mutex callbackMutex_; 514 std::condition_variable cv_; 515 HdiId hdiId_; 516 RilRadioResponseInfo resultInfo_; 517 }; 518 519 extern OHOS::sptr<OHOS::HDI::Ril::V1_3::IRil> g_rilInterface; 520 extern RilCallback g_callback; 521 522 constexpr int32_t SLOTID_1 = 0; 523 constexpr int32_t SLOTID_2 = 1; 524 constexpr int32_t SUCCESS = 0; 525 constexpr int32_t WAIT_TIME_SECOND = 20; 526 constexpr int32_t WAIT_TIME_SECOND_LONG = 40; 527 extern std::map<int32_t, int32_t> g_simState; 528 extern int32_t g_currentChannelld; 529 const std::string TEST_STORAGE_PDU = "1234"; 530 const std::string TEST_SEND_PDU = "A10305810180F6000004F4F29C0E"; 531 const std::string TEST_SMSC_PDU = "00"; 532 const std::string TEST_CDMA_PDU = "pdu"; 533 const std::string TEST_SMSC_ADDR = "00"; 534 const std::string TEST_ID_LIST = "0,1,5,320-478,922"; 535 const std::string TEST_DCS_LIST = "0-3,5"; 536 extern int32_t g_currentSerialId; 537 extern bool g_hangupResponseFlag; 538 extern bool g_rejectResponseFlag; 539 extern bool g_answerResponseFlag; 540 extern bool g_holdCallResponseFlag; 541 extern bool g_unHoldCallResponseFlag; 542 extern bool g_switchCallResponseFlag; 543 extern bool g_getClipResponseFlag; 544 extern bool g_setClipResponseFlag; 545 extern bool g_simStkSendTerminalResponseResponseFlag; 546 extern bool g_simStkSendEnvelopeResponseFlag; 547 extern bool g_simStkSendCallSetupRequestResultResponseFlag; 548 extern bool g_simStkIsReadyResponseFlag; 549 extern bool g_getRadioProtocolResponseFlag; 550 extern bool g_setRadioProtocolResponseFlag; 551 extern bool g_simOpenLogicalChannelResponseFlag; 552 extern bool g_simCloseLogicalChannelResponseFlag; 553 extern bool g_simTransmitApduLogicalChannelResponseFlag; 554 extern bool g_simTransmitApduBasicChannelResponseFlag; 555 extern bool g_simAuthenticationResponseFlag; 556 extern bool g_unlockSimLockResponseFlag; 557 extern bool g_getSignalStrengthResponseFlag; 558 extern bool g_getCsRegStatusResponseFlag; 559 extern bool g_getPsRegStatusResponseFlag; 560 extern bool g_getOperatorInfoResponseFlag; 561 extern bool g_getNetworkSearchInformationResponseFlag; 562 extern bool g_getNetworkSelectionModeResponseFlag; 563 extern bool g_getNeighboringCellInfoListResponseFlag; 564 extern bool g_getCurrentCellInfoResponseFlag; 565 extern bool g_getCurrentCellInfoResponse11Flag; 566 extern bool g_setNetworkSelectionModeResponseFlag; 567 extern bool g_setLocateUpdatesResponseFlag; 568 extern bool g_setNotificationFilterResponseFlag; 569 extern bool g_setDeviceStateResponseFlag; 570 extern bool g_sendGsmSmsResponseFlag; 571 extern bool g_sendCdmaSmsResponseFlag; 572 extern bool g_addSimMessageResponseFlag; 573 extern bool g_delSimMessageResponseFlag; 574 extern bool g_updateSimMessageResponseFlag; 575 extern bool g_addCdmaSimMessageResponseFlag; 576 extern bool g_delCdmaSimMessageResponseFlag; 577 extern bool g_setPreferredNetworkResponseFlag; 578 extern bool g_getPreferredNetworkResponseFlag; 579 extern bool g_getPhysicalChannelConfigResponseFlag; 580 extern bool g_separateConferenceResponseFlag; 581 extern bool g_callSupplementResponseFlag; 582 extern bool g_getCallWaitingResponseFlag; 583 extern bool g_setCallWaitingResponseFlag; 584 extern bool g_getUssdResponseFlag; 585 extern bool g_setMuteResponseFlag; 586 extern bool g_getMuteResponseFlag; 587 extern bool g_setDataPermittedResponseFlag; 588 extern bool g_shutDownResponseFlag; 589 extern bool g_setRadioStateResponseFlag; 590 extern bool g_getRadioStateResponseFlag; 591 extern bool g_getImeiResponseFlag; 592 extern bool g_getImeiSvResponseFlag; 593 extern bool g_getMeidResponseFlag; 594 extern bool g_getBasebandVersionResponseFlag; 595 extern bool g_getImsiResponseFlag; 596 extern bool g_setActiveSimResponseFlag; 597 extern bool g_setNrOptionModeResponseFlag; 598 extern bool g_getNrOptionModeResponseFlag; 599 extern bool g_dialResponseFlag; 600 extern bool g_setCdmaCBConfigResponseFlag; 601 extern bool g_getCdmaCBConfigResponseFlag; 602 extern bool g_sendSmsMoreModeResponseFlag; 603 extern bool g_sendSmsAckResponseFlag; 604 extern bool g_updateCdmaSimMessageResponseFlag; 605 extern bool g_setSmscAddrResponseFlag; 606 extern bool g_getSmscAddrResponseFlag; 607 extern bool g_setCBConfigResponseFlag; 608 extern bool g_getCBConfigResponseFlag; 609 extern bool g_signalStrengthUpdatedFlag; 610 extern bool g_networkPhyChnlCfgUpdatedFlag; 611 extern bool g_networkCurrentCellUpdatedFlag; 612 extern bool g_setCallTransferInfoResponseFlag; 613 extern bool g_getCallRestrictionResponseFlag; 614 extern bool g_setCallRestrictionResponseFlag; 615 extern bool g_getClirResponseFlag; 616 extern bool g_setClirResponseFlag; 617 extern bool g_startDtmfResponseFlag; 618 extern bool g_sendDtmfResponseFlag; 619 extern bool g_stopDtmfResponseFlag; 620 extern bool g_getCallPreferenceModeResponseFlag; 621 extern bool g_setCallPreferenceModeResponseFlag; 622 extern bool g_setUssdResponseFlag; 623 extern bool g_closeUnFinishedUssdResponseFlag; 624 extern bool g_getCallFailReasonResponseFlag; 625 extern bool g_setBarringPasswordResponseFlag; 626 extern bool g_deactivatePdpContextResponseFlag; 627 extern bool g_getPdpContextListResponseFlag; 628 extern bool g_setInitApnInfoResponseFlag; 629 extern bool g_getLinkCapabilityResponseFlag; 630 extern bool g_getVoiceRadioTechnologyResponseFlag; 631 extern bool g_getSimIOResponseFlag; 632 extern bool g_getSimStatusResponseFlag; 633 extern bool g_getSimCardStatusResponseFlag; 634 extern bool g_setSimLockResponseFlag; 635 extern bool g_changeSimPasswordResponseFlag; 636 extern bool g_unlockPinResponseFlag; 637 extern bool g_unlockPukResponseFlag; 638 extern bool g_unlockPin2ResponseFlag; 639 extern bool g_unlockPuk2ResponseFlag; 640 extern bool g_setVonrSwitchResponseFlag; 641 extern bool g_getSimLockStatusResponseFlag; 642 extern bool g_getCallTransferInfoResponseFlag; 643 extern bool g_combineConferenceResponseFlag; 644 extern bool g_getCallListResponseFlag; 645 extern bool g_getEmergencyCallListResponseFlag; 646 extern bool g_setEmergencyCallListResponse; 647 extern bool g_getLinkBandwidthInfoResponseFlag; 648 /** 649 ** common fun 650 **/ 651 void WaitFor(int32_t timeoutSecond); 652 bool GetBoolResult(HdiId hdiId); 653 int32_t GetSerialId(); 654 bool IsReady(int32_t slotId); 655 656 #endif