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 CALL_MANAGER_SERVICE_H 17 #define CALL_MANAGER_SERVICE_H 18 19 #include <memory> 20 21 #include "bluetooth_call_manager.h" 22 #include "call_control_manager.h" 23 #include "call_manager_service_stub.h" 24 #include "call_state_report_proxy.h" 25 #include "i_call_status_callback.h" 26 #include "iremote_stub.h" 27 #include "iservice_registry.h" 28 #include "singleton.h" 29 #include "system_ability.h" 30 #include "system_ability_definition.h" 31 32 namespace OHOS { 33 namespace Telephony { 34 class CallManagerService : public SystemAbility, 35 public CallManagerServiceStub, 36 public std::enable_shared_from_this<CallManagerService> { 37 DECLARE_DELAYED_SINGLETON(CallManagerService) 38 DECLARE_SYSTEM_ABILITY(CallManagerService) 39 public: 40 bool Init(); 41 void UnInit(); 42 43 /** 44 * service OnStart 45 */ 46 void OnStart() override; 47 48 /** 49 * service OnStop 50 */ 51 void OnStop() override; 52 53 /** 54 * service dump 55 * @param fd 56 * @param args 57 * @return 58 */ 59 int32_t Dump(std::int32_t fd, const std::vector<std::u16string> &args) override; 60 61 /** 62 * Get bindTime_ 63 * @return string 64 */ 65 std::string GetBindTime(); 66 67 /** 68 * Get spendTime_ 69 * @return string 70 */ 71 std::string GetStartServiceSpent(); 72 73 /** 74 * Get serviceRunningState_ 75 * @return serviceRunningState_ 76 */ 77 int32_t GetServiceRunningState(); 78 79 /** 80 * RegisterCallBack 81 * 82 * @brief Register callback 83 * @param callback[in], callback function pointer 84 * @param bundleName[in], bundle name 85 * @return Returns 0 on success, others on failure. 86 */ 87 int32_t RegisterCallBack(const sptr<ICallAbilityCallback> &callback) override; 88 89 /** 90 * UnRegisterCallBack 91 * 92 * @brief unregister callback 93 * @param bundleName[in], bundle name 94 * @return Returns 0 on success, others on failure. 95 */ 96 int32_t UnRegisterCallBack() override; 97 98 /** 99 * ObserverOnCallDetailsChange 100 * 101 * @brief excute when observe OnCallDetailsChange 102 * @return Returns 0 on success, others on failure. 103 */ 104 int32_t ObserverOnCallDetailsChange() override; 105 106 /** 107 * DialCall 108 * 109 * @brief Dial a phone call 110 * @param number[in], dial param. 111 * @param extras[in], extras date. 112 * @return Returns callId when the value is greater than zero, others on failure. 113 */ 114 int32_t DialCall(std::u16string number, AppExecFwk::PacMap &extras) override; 115 116 /** 117 * MakeCall 118 * 119 * @brief Make a phone call 120 * @param number[in], call param. 121 * @return Returns 0 on success, others on failure. 122 */ 123 int32_t MakeCall(std::string number) override; 124 125 /** 126 * AnswerCall 127 * 128 * @brief Answer a phone call 129 * @param callId[in], call id 130 * @param videoState[in], 0: audio, 1: video 131 * @return Returns 0 on success, others on failure. 132 */ 133 int32_t AnswerCall(int32_t callId, int32_t videoState) override; 134 135 /** 136 * RejectCall 137 * 138 * @brief Reject a phone call 139 * @param callId[in], call id 140 * @param rejectWithMessage[in], Whether to enter the reason for rejection,true:yes false:no 141 * @param textMessage[in], The reason you reject the call 142 * @return Returns 0 on success, others on failure. 143 */ 144 int32_t RejectCall(int32_t callId, bool rejectWithMessage, std::u16string textMessage) override; 145 146 /** 147 * HangUpCall 148 * 149 * @brief Hang up the phone 150 * @param callId[in], call id 151 * @return Returns 0 on success, others on failure. 152 */ 153 int32_t HangUpCall(int32_t callId) override; 154 155 /** 156 * GetCallState 157 * 158 * @brief Obtain the call status of the device 159 * @return Returns call state. 160 */ 161 int32_t GetCallState() override; 162 163 /** 164 * HoldCall 165 * 166 * @brief Park a phone call 167 * @param callId[in], call id 168 * @return Returns 0 on success, others on failure. 169 */ 170 int32_t HoldCall(int32_t callId) override; 171 172 /** 173 * UnHoldCall 174 * 175 * @brief Activate a phone call 176 * @param callId[in], call id 177 * @return Returns 0 on success, others on failure. 178 */ 179 int32_t UnHoldCall(int32_t callId) override; 180 181 /** 182 * SwitchCall 183 * 184 * @brief Switch the phone 185 * @param callId[in], call id 186 * @return Returns 0 on success, others on failure. 187 */ 188 int32_t SwitchCall(int32_t callId) override; 189 190 /** 191 * HasCall 192 * 193 * @brief Is there Call 194 * @return Returns true on has call, others on there is no call. 195 */ 196 bool HasCall() override; 197 198 /** 199 * IsNewCallAllowed 200 * 201 * @brief Can I initiate a call 202 * @param enabled[out], true on can, others on there is not can 203 * @return Returns interface processing results. 204 */ 205 int32_t IsNewCallAllowed(bool &enabled) override; 206 207 /** 208 * SetMuted 209 * 210 * @brief Mute the Microphone 211 * @param isMute[in], mute state 212 * @return Returns 0 on success, others on failure. 213 */ 214 int32_t SetMuted(bool isMute) override; 215 216 /** 217 * MuteRinger 218 * 219 * @brief Call mute 220 * @return Returns 0 on success, others on failure. 221 */ 222 int32_t MuteRinger() override; 223 224 /** 225 * SetAudioDevice 226 * 227 * @brief Setting the Audio Channel 228 * @param audioDevice[in], contain audioDeviceType ande address 229 * @return Returns 0 on success, others on failure. 230 */ 231 int32_t SetAudioDevice(const AudioDevice &audioDevice) override; 232 233 /** 234 * IsRinging 235 * 236 * @brief Whether the ringing 237 * @param enabled[out], true on ringing, false on there is no ringing 238 * @return Returns interface processing results. 239 */ 240 int32_t IsRinging(bool &enabled) override; 241 242 /** 243 * IsInEmergencyCall 244 * 245 * @brief Is there an emergency call 246 * @param enabled[out], true on emergency call, false on no emergency call 247 * @return Returns interface processing results. 248 */ 249 int32_t IsInEmergencyCall(bool &enabled) override; 250 251 /** 252 * StartDtmf 253 * 254 * @brief Enable and send DTMF 255 * @param callId[in], call id 256 * @param str[in], Characters sent 257 * @return Returns 0 on success, others on failure. 258 */ 259 int32_t StartDtmf(int32_t callId, char str) override; 260 261 /** 262 * StopDtmf 263 * 264 * @brief Stop the DTMF 265 * @param callId[in], call id 266 * @return Returns 0 on success, others on failure. 267 */ 268 int32_t StopDtmf(int32_t callId) override; 269 270 int32_t PostDialProceed(int32_t callId, bool proceed) override; 271 272 /** 273 * GetCallWaiting 274 * 275 * @brief Gets whether the call waiting service of the current account is enabled 276 * @param slotId[in], The slot id 277 * @return Returns 0 on success, others on failure. 278 */ 279 int32_t GetCallWaiting(int32_t slotId) override; 280 281 /** 282 * SetCallWaiting 283 * 284 * @brief Set the call waiting function for the current account 285 * @param slotId[in], The slot id 286 * @param activate[in], Activation of switch 287 * @return Returns 0 on success, others on failure. 288 */ 289 int32_t SetCallWaiting(int32_t slotId, bool activate) override; 290 291 /** 292 * GetCallRestriction 293 * 294 * @brief Gets the call restriction information of the specified account 295 * @param slotId[in], The slot id 296 * @param type[in], Call Restriction type 297 * @return Returns 0 on success, others on failure. 298 */ 299 int32_t GetCallRestriction(int32_t slotId, CallRestrictionType type) override; 300 301 /** 302 * SetCallRestriction 303 * 304 * @brief Set the call restriction function for the current account 305 * @param slotId[in], The slot id 306 * @param info[in], Call restriction information 307 * @return Returns 0 on success, others on failure. 308 */ 309 int32_t SetCallRestriction(int32_t slotId, CallRestrictionInfo &info) override; 310 311 /** 312 * SetCallRestrictionPassword 313 * 314 * @brief Set the call restriction password function for the current account 315 * @param slotId[in], The slot id 316 * @param fac[in], Call restriction type 317 * @param oldPassword[in], Old password of call restriction type 318 * @param newPassword[in], New password of call restriction type 319 * @return Returns 0 on success, others on failure. 320 */ 321 int32_t SetCallRestrictionPassword( 322 int32_t slotId, CallRestrictionType fac, const char *oldPassword, const char *newPassword) override; 323 324 /** 325 * GetCallTransferInfo 326 * 327 * @brief Gets the call transfer information of the current account 328 * @param slotId[in], The slot id 329 * @param type[in], Call Transfer Type 330 * @return Returns 0 on success, others on failure. 331 */ 332 int32_t GetCallTransferInfo(int32_t slotId, CallTransferType type) override; 333 334 /** 335 * SetCallTransferInfo 336 * 337 * @brief Set the call transfer function for the current account 338 * @param slotId[in], The slot id 339 * @param info[in], Call Transfer Information 340 * @return Returns 0 on success, others on failure. 341 */ 342 int32_t SetCallTransferInfo(int32_t slotId, CallTransferInfo &info) override; 343 344 /** 345 * CanSetCallTransferTime 346 * 347 * @brief confirm whether IMS support call transfer due to time. 348 * @param slotId[in], The slot id 349 * @param result[out], The result of support or not 350 * @return Returns 0 on success, others on failure. 351 */ 352 int32_t CanSetCallTransferTime(int32_t slotId, bool &result) override; 353 354 /** 355 * CombineConference 356 * 357 * @brief Merge calls to form a conference 358 * @param callId[in], call id 359 * @return Returns 0 on success, others on failure. 360 */ 361 int32_t CombineConference(int32_t mainCallId) override; 362 363 /** 364 * SeparateConference 365 * 366 * @brief Separates a specified call from a conference call 367 * @param callId[in], call id 368 * @return Returns 0 on success, others on failure. 369 */ 370 int32_t SeparateConference(int32_t callId) override; 371 372 /** 373 * KickOutFromConference 374 * 375 * @brief Hangup a specified call from a conference call 376 * @param callId[in], call id 377 * @return Returns 0 on success, others on failure. 378 */ 379 int32_t KickOutFromConference(int32_t callId) override; 380 381 /** 382 * ControlCamera 383 * 384 * @brief Open or close camera 385 * @param callId[in], call id 386 * @param cameraId[in], The camera id 387 * @return Returns 0 on success, others on failure. 388 */ 389 int32_t ControlCamera(int32_t callId, std::u16string &cameraId) override; 390 391 /** 392 * SetPreviewWindow 393 * 394 * @brief Set the location and size of the preview window for videos captured by the local camera. 395 * @param callId[in], call id 396 * @param surfaceId[in], Window information 397 * @param surface[in], Window information 398 * @return Returns 0 on success, others on failure. 399 */ 400 int32_t SetPreviewWindow(int32_t callId, std::string &surfaceId, sptr<Surface> surface) override; 401 402 /** 403 * SetDisplayWindow 404 * 405 * @brief Sets the location and size of the remote video window. 406 * @param callId[in], call id 407 * @param surfaceId[in], Window information 408 * @param surface[in], Window information 409 * @return Returns 0 on success, others on failure. 410 */ 411 int32_t SetDisplayWindow(int32_t callId, std::string &surfaceId, sptr<Surface> surface) override; 412 413 /** 414 * SetCameraZoom 415 * 416 * @brief Sets the local camera zoom scale 417 * @param zoomRatio[in], Camera scale 418 * @return Returns 0 on success, others on failure. 419 */ 420 int32_t SetCameraZoom(float zoomRatio) override; 421 422 /** 423 * SetPausePicture 424 * 425 * @brief APP sets the screen of the remote video freeze immediately. 426 * If the APP does not call this interface when making a video call, 427 * the last frame before the remote video freeze is displayed by default 428 * @param callId[in], call id 429 * @param path[in], Local Picture address 430 * @return Returns 0 on success, others on failure. 431 */ 432 int32_t SetPausePicture(int32_t callId, std::u16string &path) override; 433 434 /** 435 * SetDeviceDirection 436 * 437 * @brief Set the rotation Angle of the local device. The default value is 0 438 * @param callId[in], call id 439 * @param rotation[in], Rotation Angle 440 * @return Returns 0 on success, others on failure. 441 */ 442 int32_t SetDeviceDirection(int32_t callId, int32_t rotation) override; 443 444 /** 445 * IsEmergencyPhoneNumber 446 * 447 * @brief Is it an emergency call 448 * @param number[in], Phone number to be formatted 449 * @param slotId[in], The slot id 450 * @param enabled[out] result of is it an emergency call 451 * @return Returns 0 on success, others on failure. 452 */ 453 int32_t IsEmergencyPhoneNumber(std::u16string &number, int32_t slotId, bool &enabled) override; 454 455 /** 456 * FormatPhoneNumber 457 * 458 * @brief Formatting a phone number 459 * @param number[in], Phone number to be formatted 460 * @param countryCode[in], Country code of the phone number 461 * @param formatNumber[out] Formatting a phone number 462 * @return Returns 0 on success, others on failure. 463 */ 464 int32_t FormatPhoneNumber( 465 std::u16string &number, std::u16string &countryCode, std::u16string &formatNumber) override; 466 467 /** 468 * FormatPhoneNumberToE164 469 * 470 * @brief Formatting a phone number 471 * @param number[in]. Phone number to be formatted 472 * @param countryCode[in], Country code of the phone number 473 * @param formatNumber[out] Formatting a phone number 474 * @return Returns 0 on success, others on failure. 475 */ 476 int32_t FormatPhoneNumberToE164( 477 std::u16string &number, std::u16string &countryCode, std::u16string &formatNumber) override; 478 479 /** 480 * GetMainCallId 481 * 482 * @brief Obtain the ID of the primary call in a conference 483 * @param callId[in], Id of a call in a conference 484 * @return Returns main call id, -1 on not call id. 485 */ 486 int32_t GetMainCallId(int32_t callId, int32_t &mainCallId) override; 487 488 /** 489 * GetSubCallIdList 490 * 491 * @brief Obtain the list of neutron call ids 492 * @param callId[in], Id of a call in a conference 493 * @param callIdList[out], the list of neutron call ids 494 * @return Returns 0 on success, others on failure. 495 */ 496 int32_t GetSubCallIdList(int32_t callId, std::vector<std::u16string> &callIdList) override; 497 498 /** 499 * GetCallIdListForConference 500 * 501 * @brief Obtain the callId list of all calls in a conference 502 * @param callId[in], Id of a call in a conference 503 * @param callIdList[out], the callId list of all calls in a conference 504 * @return Returns 0 on success, others on failure. 505 */ 506 int32_t GetCallIdListForConference(int32_t callId, std::vector<std::u16string> &callIdList) override; 507 508 /** 509 * SetCallPreferenceMode 510 * 511 * @brief Setting the Call Type 512 * @param slotId[in], The slot id 513 * @param mode[in], Preference Mode 514 * @return Returns 0 on success, others on failure. 515 */ 516 int32_t SetCallPreferenceMode(int32_t slotId, int32_t mode) override; 517 518 /** 519 * GetImsConfig 520 * 521 * @brief Obtain the IMS service configuration 522 * @param slotId[in], The slot id 523 * @param item[in] 524 * @return Returns 0 on success, others on failure. 525 */ 526 int32_t GetImsConfig(int32_t slotId, ImsConfigItem item) override; 527 528 /** 529 * SetImsConfig 530 * 531 * @brief Example Set the IMS service configuration 532 * @param slotId[in], The slot id 533 * @param item[in] 534 * @return Returns 0 on success, others on failure. 535 */ 536 int32_t SetImsConfig(int32_t slotId, ImsConfigItem item, std::u16string &value) override; 537 538 /** 539 * GetImsFeatureValue 540 * 541 * @brief Gets the value of the IMS function item of the specified network type 542 * @param slotId[in], The slot id 543 * @param info[in], FeatureType 544 * @return Returns 0 on success, others on failure. 545 */ 546 int32_t GetImsFeatureValue(int32_t slotId, FeatureType type) override; 547 548 /** 549 * SetImsFeatureValue 550 * 551 * @brief Set the value of the IMS function item of the specified network type 552 * @param slotId[in], The slot id 553 * @param info[in], FeatureType 554 * @param value[in] 555 * @return Returns 0 on success, others on failure. 556 */ 557 int32_t SetImsFeatureValue(int32_t slotId, FeatureType type, int32_t value) override; 558 559 /** 560 * UpdateImsCallMode 561 * 562 * @brief Setting the Call Mode 563 * @param callId[in], The call id 564 * @param mode[in], Calling patterns 565 * @return Returns 0 on success, others on failure. 566 */ 567 int32_t UpdateImsCallMode(int32_t callId, ImsCallMode mode) override; 568 569 /** 570 * EnableImsSwitch 571 * 572 * @brief Start VoLte 573 * @param slotId[in], The slot id 574 * @return Returns 0 on success, others on failure. 575 */ 576 int32_t EnableImsSwitch(int32_t slotId) override; 577 578 /** 579 * DisableImsSwitch 580 * 581 * @brief Stop VoLte 582 * @param slotId[in], The slot id 583 * @return Returns 0 on success, others on failure. 584 */ 585 int32_t DisableImsSwitch(int32_t slotId) override; 586 587 /** 588 * IsImsSwitchEnabled 589 * 590 * @brief Whether to enable VoLte 591 * @param slotId[in], The slot id 592 * @param enabled[out], The result of enable or not 593 * @return Returns 0 on success, others on failure. 594 */ 595 int32_t IsImsSwitchEnabled(int32_t slotId, bool &enabled) override; 596 597 /** 598 * SetVoNRState 599 * 600 * @brief Set VoNR State 601 * @param slotId[in], The slot id 602 * @param state[in], The state of VoNR 603 * @return Returns 0 on success, others on failure. 604 */ 605 int32_t SetVoNRState(int32_t slotId, int32_t state) override; 606 607 /** 608 * GetVoNRState 609 * 610 * @brief Get VoNR State 611 * @param slotId[in], The slot id 612 * @param state[out], The result of VoNR state ON or OFF 613 * @return Returns 0 on success, others on failure. 614 */ 615 int32_t GetVoNRState(int32_t slotId, int32_t &state) override; 616 617 /** 618 * StartRtt 619 * 620 * @brief Enable and send RTT information 621 * @param callId[in], The call id 622 * @param msg[in], RTT information 623 * @return Returns 0 on success, others on failure. 624 */ 625 int32_t StartRtt(int32_t callId, std::u16string &msg) override; 626 627 /** 628 * StopRtt 629 * 630 * @brief Close the RTT 631 * @param callId[in], The call id 632 * @return Returns 0 on success, others on failure. 633 */ 634 int32_t StopRtt(int32_t callId) override; 635 636 /** 637 * JoinConference 638 * 639 * @brief Bring someone into a meeting 640 * @param callId[in], The call id 641 * @param numberList[in], List of calls to join the conference 642 * @return Returns 0 on success, others on failure. 643 */ 644 int32_t JoinConference(int32_t callId, std::vector<std::u16string> &numberList) override; 645 646 /** 647 * ReportOttCallDetailsInfo 648 * 649 * @brief report ott call details info 650 * @param ottVec[in], ott call status detail info list 651 * @return Returns 0 on success, others on failure. 652 */ 653 int32_t ReportOttCallDetailsInfo(std::vector<OttCallDetailsInfo> &ottVec) override; 654 655 /** 656 * ReportOttCallEventInfo 657 * 658 * @brief report ott call details info 659 * @param ottVec[in], ott call status detail info list 660 * @return Returns 0 on success, others on failure. 661 */ 662 int32_t ReportOttCallEventInfo(OttCallEventInfo &eventInfo) override; 663 664 /** 665 * CloseUnFinishedUssd 666 * 667 * @brief Close Unfinished ussd function for the current account 668 * @param slotId[in], The slot id 669 * @return Returns 0 on success, others on failure. 670 */ 671 int32_t CloseUnFinishedUssd(int32_t slotId) override; 672 673 /** 674 * Remove missed incoming call notification. 675 * 676 * @return Returns 0 on success, others on failure. 677 */ 678 int32_t RemoveMissedIncomingCallNotification() override; 679 680 /** 681 * SetVoIPCallState 682 * 683 * @brief Set VoIP Call State 684 * @param state[in], The state of VoIP Call 685 * @return Returns 0 on success, others on failure. 686 */ 687 int32_t SetVoIPCallState(int32_t state) override; 688 689 /** 690 * GetVoIPCallState 691 * 692 * @brief Get VoIP Call State 693 * @param state[out], The result of VoIP Call 694 * @return Returns 0 on success, others on failure. 695 */ 696 int32_t GetVoIPCallState(int32_t &state) override; 697 698 /** 699 * Handle special code from dialer. 700 * 701 * @param specialCode[in], special code 702 * @return Returns 0 on success, others on failure. 703 */ 704 int32_t InputDialerSpecialCode(const std::string &specialCode) override; 705 706 /** 707 * GetProxyObjectPtr 708 * 709 * @brief get callManager proxy object ptr 710 * @param proxyType[in], proxy type 711 * @return Returns nullptr on failure, others on success. 712 */ 713 sptr<IRemoteObject> GetProxyObjectPtr(CallManagerProxyType proxyType) override; 714 715 /** 716 * ReportAudioDeviceInfo 717 * 718 * @brief report audio device info 719 * @return Returns 0 on success, others on failure. 720 */ 721 int32_t ReportAudioDeviceInfo() override; 722 723 /** 724 * CancelCallUpgrade 725 * 726 * @brief cancel upgrade to video call 727 * @param callId[in], The call id 728 * 729 * @return Returns 0 on success, others on failure. 730 */ 731 int32_t CancelCallUpgrade(int32_t callId) override; 732 733 /** 734 * RequestCameraCapabilities 735 * 736 * @brief request camera capabilities 737 * @param callId[in], The call id 738 * 739 * @return Returns 0 on success, others on failure. 740 */ 741 int32_t RequestCameraCapabilities(int32_t callId) override; 742 743 /** 744 * RegisterVoipCallManagerCallback 745 * 746 * @brief notify voip register callstatus callback 747 * @return Returns 0 on success, others on failure. 748 */ 749 int32_t RegisterVoipCallManagerCallback() override; 750 751 /** 752 * @brief notify voip unregister callstatus callback 753 * 754 * @return Returns 0 on success, others on failure. 755 */ 756 int32_t UnRegisterVoipCallManagerCallback() override; 757 758 /** 759 * @brief send call ui event 760 * 761 * @return Returns 0 on success, others on failure. 762 */ 763 int32_t SendCallUiEvent(int32_t callId, std::string &eventName) override; 764 765 /** 766 * OnAddSystemAbility 767 * 768 * @brief on system ability added 769 * @param systemAbilityId 770 * @param deviceId 771 */ 772 void OnAddSystemAbility(int32_t systemAbilityId, const std::string &deviceId) override; 773 774 private: 775 std::string GetBundleInfo(); 776 777 private: 778 enum ServiceRunningState { 779 STATE_STOPPED = 0, 780 STATE_RUNNING, 781 }; 782 783 ServiceRunningState state_ { ServiceRunningState::STATE_STOPPED }; 784 #ifndef TELEPHONY_VOIP_CALL_MANAGER_SYS_ABILITY_ID 785 #define TELEPHONY_VOIP_CALL_MANAGER_SYS_ABILITY_ID 65968 786 #endif 787 std::shared_ptr<CallControlManager> callControlManagerPtr_; 788 std::map<uint32_t, sptr<IRemoteObject>> proxyObjectPtrMap_; 789 std::vector<std::string> supportSpecialCode_ { "*#2846#", "*#2846*", 790 "*#*#2846579#*#*", "#1#", "*#28465#", "*#*#121314#*#*", "*#*#19467328#*#*", 791 "*#*#2589#*#*", "*#*#2845#*#*", "*#*#2846#*#*", "*#*#2847#*#*", "*#*#28465#*#*" }; 792 sptr<ICallStatusCallback> voipCallCallbackPtr_; 793 std::mutex lock_; 794 const int32_t startTime_ = 1900; 795 const int32_t extraMonth_ = 1; 796 int64_t bindTime_ = 0L; 797 int32_t spendTime_ = 0; 798 }; 799 } // namespace Telephony 800 } // namespace OHOS 801 802 #endif // CALL_MANAGER_SERVICE_H 803