1 /* 2 * Copyright (C) 2021-2023 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 CELLULAR_CALL_STUB_H 17 #define CELLULAR_CALL_STUB_H 18 19 #include <map> 20 21 #include "cellular_call_data_struct.h" 22 #include "cellular_call_interface.h" 23 #include "cellular_call_ipc_interface_code.h" 24 #include "iremote_stub.h" 25 #include "telephony_log_wrapper.h" 26 27 namespace OHOS { 28 namespace Telephony { 29 class CellularCallStub : public IRemoteStub<CellularCallInterface> { 30 public: 31 /** 32 * CellularCallStub Constructors 33 */ 34 CellularCallStub(); 35 36 /** 37 * ~CellularCallStub Destructor 38 */ 39 virtual ~CellularCallStub(); 40 41 /** 42 * OnRemoteRequest 43 * 44 * @param code 45 * @param data 46 * @param reply 47 * @param option 48 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 49 */ 50 virtual int32_t OnRemoteRequest( 51 uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override; 52 53 private: 54 /** 55 * On Dial Inner 56 * 57 * @param data send data 58 * @param reply Received data 59 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 60 */ 61 int32_t OnDialInner(MessageParcel &data, MessageParcel &reply); 62 63 /** 64 * On HangUp Inner 65 * 66 * @param data send data 67 * @param reply Received data 68 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 69 */ 70 int32_t OnHangUpInner(MessageParcel &data, MessageParcel &reply); 71 72 /** 73 * On Reject Inner 74 * 75 * @param data send data 76 * @param reply Received data 77 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 78 */ 79 int32_t OnRejectInner(MessageParcel &data, MessageParcel &reply); 80 81 /** 82 * On Answer Inner 83 * 84 * @param data send data 85 * @param reply Received data 86 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 87 */ 88 int32_t OnAnswerInner(MessageParcel &data, MessageParcel &reply); 89 90 /** 91 * On Is Emergency Call Inner 92 * 93 * @param data send data 94 * @param reply Received data 95 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 96 */ 97 int32_t OnIsEmergencyPhoneNumberInner(MessageParcel &data, MessageParcel &reply); 98 99 /** 100 * On HoldCall Inner 101 * 102 * @param data send data 103 * @param reply Received data 104 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 105 */ 106 int32_t OnHoldCallInner(MessageParcel &data, MessageParcel &reply); 107 108 /** 109 * On UnHoldCall Inner 110 * 111 * @param data send data 112 * @param reply Received data 113 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 114 */ 115 int32_t OnUnHoldCallInner(MessageParcel &data, MessageParcel &reply); 116 117 /** 118 * On SwitchCall Inner 119 * 120 * @param data send data 121 * @param reply Received data 122 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 123 */ 124 int32_t OnSwitchCallInner(MessageParcel &data, MessageParcel &reply); 125 126 /** 127 * On CombineConference Inner 128 * 129 * @param data send data 130 * @param reply Received data 131 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 132 */ 133 int32_t OnCombineConferenceInner(MessageParcel &data, MessageParcel &reply); 134 135 /** 136 * On SeparateConference Inner 137 * 138 * @param data send data 139 * @param reply Received data 140 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 141 */ 142 int32_t OnSeparateConferenceInner(MessageParcel &data, MessageParcel &reply); 143 144 /** 145 * On InviteToConference Inner 146 * 147 * @param data send data 148 * @param reply Received data 149 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 150 */ 151 int32_t OnInviteToConferenceInner(MessageParcel &data, MessageParcel &reply); 152 153 /** 154 * On KickOutFromConference Inner 155 * 156 * @param data send data 157 * @param reply Received data 158 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 159 */ 160 int32_t OnKickOutFromConferenceInner(MessageParcel &data, MessageParcel &reply); 161 162 /** 163 * On HangUpAllConnection Inner 164 * 165 * @param data send data 166 * @param reply Received data 167 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 168 */ 169 int32_t OnHangUpAllConnectionInner(MessageParcel &data, MessageParcel &reply); 170 171 int32_t OnSetReadyToCallInner(MessageParcel &data, MessageParcel &reply); 172 173 /** 174 * On SendUpdateCallMediaModeRequest Inner 175 * 176 * @param data send data 177 * @param reply Received data 178 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 179 */ 180 int32_t OnSendUpdateCallMediaModeRequestInner(MessageParcel &data, MessageParcel &reply); 181 182 /** 183 * On SendUpdateCallMediaModeResponse Inner 184 * 185 * @param data send data 186 * @param reply Received data 187 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 188 */ 189 int32_t OnSendUpdateCallMediaModeResponseInner(MessageParcel &data, MessageParcel &reply); 190 191 /** 192 * On Cancel Call Upgrade Inner 193 * 194 * @param data send data 195 * @param reply Received data 196 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 197 */ 198 int32_t OnCancelCallUpgradeInner(MessageParcel &data, MessageParcel &reply); 199 200 /** 201 * On Request Camera Capabilities Inner 202 * 203 * @param data send data 204 * @param reply Received data 205 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 206 */ 207 int32_t OnRequestCameraCapabilitiesInner(MessageParcel &data, MessageParcel &reply); 208 209 /** 210 * On Register Call Back Inner 211 * 212 * @param data send data 213 * @param reply Received data 214 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 215 */ 216 int32_t OnRegisterCallBackInner(MessageParcel &data, MessageParcel &reply); 217 218 /** 219 * On UnRegister Call Back Inner 220 * 221 * @param data send data 222 * @param reply Received data 223 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 224 */ 225 int32_t OnUnRegisterCallBackInner(MessageParcel &data, MessageParcel &reply); 226 227 /** 228 * On start Dtmf Inner 229 * 230 * @param data send data 231 * @param reply Received data 232 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 233 */ 234 int32_t OnStartDtmfInner(MessageParcel &data, MessageParcel &reply); 235 236 /** 237 * On stop Dtmf Inner 238 * 239 * @param data send data 240 * @param reply Received data 241 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 242 */ 243 int32_t OnStopDtmfInner(MessageParcel &data, MessageParcel &reply); 244 245 int32_t OnPostDialProceedInner(MessageParcel &data, MessageParcel &reply); 246 247 /** 248 * On send Dtmf Inner 249 * 250 * @param data send data 251 * @param reply Received data 252 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 253 */ 254 int32_t OnSendDtmfInner(MessageParcel &data, MessageParcel &reply); 255 256 /** 257 * On start Rtt Inner 258 * 259 * @param data send data 260 * @param reply Received data 261 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 262 */ 263 int32_t OnStartRttInner(MessageParcel &data, MessageParcel &reply); 264 265 /** 266 * On stop Rtt Inner 267 * 268 * @param data send data 269 * @param reply Received data 270 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 271 */ 272 int32_t OnStopRttInner(MessageParcel &data, MessageParcel &reply); 273 274 /** 275 * On Set Call Transfer Inner 276 * 277 * @param data send data 278 * @param reply Received data 279 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 280 */ 281 int32_t OnSetCallTransferInner(MessageParcel &data, MessageParcel &reply); 282 283 /** 284 * confirm whether IMS can set call transfer time. 285 * 286 * @param data send data 287 * @param reply Received data 288 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 289 */ 290 int32_t OnCanSetCallTransferTimeInner(MessageParcel &data, MessageParcel &reply); 291 292 /** 293 * On Inquire Call Transfer Inner 294 * 295 * @param data send data 296 * @param reply Received data 297 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 298 */ 299 int32_t OnGetCallTransferInner(MessageParcel &data, MessageParcel &reply); 300 301 /** 302 * On Set Call Waiting 303 * 304 * @param data send data 305 * @param reply Received data 306 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 307 */ 308 int32_t OnSetCallWaitingInner(MessageParcel &data, MessageParcel &reply); 309 310 /** 311 * On Inquire Call Waiting 312 * 313 * @param data send data 314 * @param reply Received data 315 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 316 */ 317 int32_t OnGetCallWaitingInner(MessageParcel &data, MessageParcel &reply); 318 319 /** 320 * On Set Call Restriction 321 * 322 * @param data send data 323 * @param reply Received data 324 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 325 */ 326 int32_t OnSetCallRestrictionInner(MessageParcel &data, MessageParcel &reply); 327 328 /** 329 * On Get Call Restriction 330 * 331 * @param data send data 332 * @param reply Received data 333 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 334 */ 335 int32_t OnGetCallRestrictionInner(MessageParcel &data, MessageParcel &reply); 336 337 /** 338 * On Set Call Restriction Password 339 * 340 * @param data send data 341 * @param reply Received data 342 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 343 */ 344 int32_t OnSetCallRestrictionPasswordInner(MessageParcel &data, MessageParcel &reply); 345 346 /** 347 * On Set Domain Preference Mode 348 * 349 * @param data send data 350 * @param reply Received data 351 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 352 */ 353 int32_t OnSetDomainPreferenceModeInner(MessageParcel &data, MessageParcel &reply); 354 355 /** 356 * On Get Domain Preference Mode 357 * 358 * @param data send data 359 * @param reply Received data 360 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 361 */ 362 int32_t OnGetDomainPreferenceModeInner(MessageParcel &data, MessageParcel &reply); 363 364 /** 365 * On Set Ims Switch Status 366 * 367 * @param data send data 368 * @param reply Received data 369 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 370 */ 371 int32_t OnSetImsSwitchStatusInner(MessageParcel &data, MessageParcel &reply); 372 373 /** 374 * On Get Ims Switch Status 375 * 376 * @param data send data 377 * @param reply Received data 378 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 379 */ 380 int32_t OnGetImsSwitchStatusInner(MessageParcel &data, MessageParcel &reply); 381 382 /** 383 * On Set VoNR Switch Status 384 * 385 * @param data send data 386 * @param reply received data 387 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 388 */ 389 int32_t OnSetVoNRStateInner(MessageParcel &data, MessageParcel &reply); 390 391 /** 392 * On Get VoNR Switch Status 393 * 394 * @param data send data 395 * @param reply received data 396 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 397 */ 398 int32_t OnGetVoNRStateInner(MessageParcel &data, MessageParcel &reply); 399 400 /** 401 * On SetImsConfigStringInner 402 * 403 * @param data send data 404 * @param reply Received data 405 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 406 */ 407 int32_t OnSetImsConfigStringInner(MessageParcel &data, MessageParcel &reply); 408 409 /** 410 * On SetImsConfigIntInner 411 * 412 * @param data send data 413 * @param reply Received data 414 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 415 */ 416 int32_t OnSetImsConfigIntInner(MessageParcel &data, MessageParcel &reply); 417 418 /** 419 * On GetImsConfigInner 420 * 421 * @param data send data 422 * @param reply Received data 423 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 424 */ 425 int32_t OnGetImsConfigInner(MessageParcel &data, MessageParcel &reply); 426 427 /** 428 * On SetImsFeatureValueInner 429 * 430 * @param data send data 431 * @param reply Received data 432 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 433 */ 434 int32_t OnSetImsFeatureValueInner(MessageParcel &data, MessageParcel &reply); 435 436 /** 437 * On GetImsFeatureValueInner 438 * 439 * @param data send data 440 * @param reply Received data 441 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 442 */ 443 int32_t OnGetImsFeatureValueInner(MessageParcel &data, MessageParcel &reply); 444 445 /** 446 * On Control Camera Inner 447 * 448 * @param data send data 449 * @param reply Received data 450 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 451 */ 452 int32_t OnControlCameraInner(MessageParcel &data, MessageParcel &reply); 453 454 /** 455 * On Set Preview Window Inner 456 * 457 * @param data send data 458 * @param reply Received data 459 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 460 */ 461 int32_t OnSetPreviewWindowInner(MessageParcel &data, MessageParcel &reply); 462 463 /** 464 * On Set Display Window Inner 465 * 466 * @param data send data 467 * @param reply Received data 468 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 469 */ 470 int32_t OnSetDisplayWindowInner(MessageParcel &data, MessageParcel &reply); 471 472 /** 473 * On Set Camera Zoom Inner 474 * 475 * @param data send data 476 * @param reply Received data 477 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 478 */ 479 int32_t OnSetCameraZoomInner(MessageParcel &data, MessageParcel &reply); 480 481 /** 482 * On Set Pause Picture Inner 483 * 484 * @param data send data 485 * @param reply Received data 486 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 487 */ 488 int32_t OnSetPausePictureInner(MessageParcel &data, MessageParcel &reply); 489 490 /** 491 * On Set Device Direction Inner 492 * 493 * @param data send data 494 * @param reply Received data 495 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 496 */ 497 int32_t OnSetDeviceDirectionInner(MessageParcel &data, MessageParcel &reply); 498 499 /** 500 * On Set Mute Inner 501 * 502 * @param data send data 503 * @param reply Received data 504 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 505 */ 506 int32_t OnSetMuteInner(MessageParcel &data, MessageParcel &reply); 507 508 /** 509 * On Get Mute Inner 510 * 511 * @param data send data 512 * @param reply Received data 513 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 514 */ 515 int32_t OnGetMuteInner(MessageParcel &data, MessageParcel &reply); 516 517 /** 518 * Close Unfinished ussd 519 * 520 * @brief Close Unfinished ussd function for the current account 521 * @param slotId[in], The slot id 522 * @return Returns 0 on success, others on failure. 523 */ 524 int32_t OnCloseUnFinishedUssdInner(MessageParcel &data, MessageParcel &reply); 525 526 /** 527 * @brief clear all call if cellular call service restart 528 * 529 * @param infos[in] the call detail info vector which contains phone number, call type, slot id .etc 530 * @return Returns TELEPHONY_SUCCESS on success, others on failure. 531 */ 532 int32_t OnClearAllCallsInner(MessageParcel &data, MessageParcel &reply); 533 534 int32_t OnSetEmergencyCallList(MessageParcel &data, MessageParcel &reply); 535 536 private: 537 using RequestFuncType = std::function<int32_t(MessageParcel &data, MessageParcel &reply)>; 538 std::map<CellularCallInterfaceCode, RequestFuncType> requestFuncMap_; 539 void InitFuncMap(); 540 void InitDialFuncMap(); 541 void InitDtmfFuncMap(); 542 void InitConfigFuncMap(); 543 void InitVideoFuncMap(); 544 void InitSupplementFuncMap(); 545 }; 546 } // namespace Telephony 547 } // namespace OHOS 548 549 #endif // CELLULAR_CALL_STUB_H 550