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