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 #include "call_manager_client.h"
17
18 #include <memory>
19
20 #include "call_manager_proxy.h"
21 #include "parameter.h"
22 #include "telephony_errors.h"
23
24 namespace OHOS {
25 namespace Telephony {
26 std::shared_ptr<CallManagerProxy> g_callManagerProxy = nullptr;
27
28 const std::string KEY_VOICECALL_CAP = "const.telephony.voice.capable";
29 const int32_t VOICECALL_CAP_VAL_LEN = 6;
30
CallManagerClient()31 CallManagerClient::CallManagerClient() {}
32
~CallManagerClient()33 CallManagerClient::~CallManagerClient() {}
34
Init(int32_t systemAbilityId)35 void CallManagerClient::Init(int32_t systemAbilityId)
36 {
37 if (g_callManagerProxy == nullptr) {
38 g_callManagerProxy = DelayedSingleton<CallManagerProxy>::GetInstance();
39 if (g_callManagerProxy == nullptr) {
40 TELEPHONY_LOGE("g_callManagerProxy is nullptr");
41 return;
42 }
43 g_callManagerProxy->Init(systemAbilityId);
44 }
45 TELEPHONY_LOGD("CallManagerClient init success!");
46 }
47
UnInit()48 void CallManagerClient::UnInit()
49 {
50 if (g_callManagerProxy != nullptr) {
51 g_callManagerProxy->UnInit();
52 } else {
53 TELEPHONY_LOGE("init first please!");
54 }
55 }
56
RegisterCallBack(std::unique_ptr<CallManagerCallback> callback)57 int32_t CallManagerClient::RegisterCallBack(std::unique_ptr<CallManagerCallback> callback)
58 {
59 if (g_callManagerProxy != nullptr) {
60 return g_callManagerProxy->RegisterCallBack(std::move(callback));
61 } else {
62 TELEPHONY_LOGE("init first please!");
63 return TELEPHONY_ERR_UNINIT;
64 }
65 }
66
UnRegisterCallBack()67 int32_t CallManagerClient::UnRegisterCallBack()
68 {
69 if (g_callManagerProxy != nullptr) {
70 return g_callManagerProxy->UnRegisterCallBack();
71 } else {
72 TELEPHONY_LOGE("init first please!");
73 return TELEPHONY_ERR_UNINIT;
74 }
75 }
76
ObserverOnCallDetailsChange()77 int32_t CallManagerClient::ObserverOnCallDetailsChange()
78 {
79 if (g_callManagerProxy != nullptr) {
80 return g_callManagerProxy->ObserverOnCallDetailsChange();
81 } else {
82 TELEPHONY_LOGE("init first please!");
83 return TELEPHONY_ERR_UNINIT;
84 }
85 }
86
DialCall(std::u16string number,AppExecFwk::PacMap & extras)87 int32_t CallManagerClient::DialCall(std::u16string number, AppExecFwk::PacMap &extras)
88 {
89 if (g_callManagerProxy != nullptr) {
90 return g_callManagerProxy->DialCall(number, extras);
91 } else {
92 TELEPHONY_LOGE("init first please!");
93 return TELEPHONY_ERR_UNINIT;
94 }
95 }
96
MakeCall(std::string number)97 int32_t CallManagerClient::MakeCall(std::string number)
98 {
99 if (g_callManagerProxy != nullptr) {
100 return g_callManagerProxy->MakeCall(number);
101 } else {
102 TELEPHONY_LOGE("init first please!");
103 return TELEPHONY_ERR_UNINIT;
104 }
105 }
106
AnswerCall(int32_t callId,int32_t videoState)107 int32_t CallManagerClient::AnswerCall(int32_t callId, int32_t videoState)
108 {
109 if (g_callManagerProxy != nullptr) {
110 return g_callManagerProxy->AnswerCall(callId, videoState);
111 } else {
112 TELEPHONY_LOGE("init first please!");
113 return TELEPHONY_ERR_UNINIT;
114 }
115 }
116
RejectCall(int32_t callId,bool isSendSms,std::u16string content)117 int32_t CallManagerClient::RejectCall(int32_t callId, bool isSendSms, std::u16string content)
118 {
119 if (g_callManagerProxy != nullptr) {
120 return g_callManagerProxy->RejectCall(callId, isSendSms, content);
121 } else {
122 TELEPHONY_LOGE("init first please!");
123 return TELEPHONY_ERR_UNINIT;
124 }
125 }
126
HangUpCall(int32_t callId)127 int32_t CallManagerClient::HangUpCall(int32_t callId)
128 {
129 if (g_callManagerProxy != nullptr) {
130 return g_callManagerProxy->HangUpCall(callId);
131 } else {
132 TELEPHONY_LOGE("init first please!");
133 return TELEPHONY_ERR_UNINIT;
134 }
135 }
136
GetCallState()137 int32_t CallManagerClient::GetCallState()
138 {
139 if (g_callManagerProxy != nullptr) {
140 return g_callManagerProxy->GetCallState();
141 } else {
142 TELEPHONY_LOGE("init first please!");
143 return TELEPHONY_ERR_UNINIT;
144 }
145 }
146
RegisterVoipCallManagerCallback()147 int32_t CallManagerClient::RegisterVoipCallManagerCallback()
148 {
149 if (g_callManagerProxy != nullptr) {
150 return g_callManagerProxy->RegisterVoipCallManagerCallback();
151 } else {
152 TELEPHONY_LOGE("init first please!");
153 return TELEPHONY_ERR_UNINIT;
154 }
155 }
156
UnRegisterVoipCallManagerCallback()157 int32_t CallManagerClient::UnRegisterVoipCallManagerCallback()
158 {
159 if (g_callManagerProxy != nullptr) {
160 return g_callManagerProxy->UnRegisterVoipCallManagerCallback();
161 } else {
162 TELEPHONY_LOGE("init first please!");
163 return TELEPHONY_ERR_UNINIT;
164 }
165 }
166
HoldCall(int32_t callId)167 int32_t CallManagerClient::HoldCall(int32_t callId)
168 {
169 if (g_callManagerProxy != nullptr) {
170 return g_callManagerProxy->HoldCall(callId);
171 } else {
172 TELEPHONY_LOGE("init first please!");
173 return TELEPHONY_ERR_UNINIT;
174 }
175 }
176
UnHoldCall(int32_t callId)177 int32_t CallManagerClient::UnHoldCall(int32_t callId)
178 {
179 if (g_callManagerProxy != nullptr) {
180 return g_callManagerProxy->UnHoldCall(callId);
181 } else {
182 TELEPHONY_LOGE("init first please!");
183 return TELEPHONY_ERR_UNINIT;
184 }
185 }
186
SwitchCall(int32_t callId)187 int32_t CallManagerClient::SwitchCall(int32_t callId)
188 {
189 if (g_callManagerProxy != nullptr) {
190 return g_callManagerProxy->SwitchCall(callId);
191 } else {
192 TELEPHONY_LOGE("init first please!");
193 return TELEPHONY_ERR_UNINIT;
194 }
195 }
196
CombineConference(int32_t callId)197 int32_t CallManagerClient::CombineConference(int32_t callId)
198 {
199 if (g_callManagerProxy != nullptr) {
200 return g_callManagerProxy->CombineConference(callId);
201 } else {
202 TELEPHONY_LOGE("init first please!");
203 return TELEPHONY_ERR_UNINIT;
204 }
205 }
206
SeparateConference(int32_t callId)207 int32_t CallManagerClient::SeparateConference(int32_t callId)
208 {
209 if (g_callManagerProxy != nullptr) {
210 return g_callManagerProxy->SeparateConference(callId);
211 } else {
212 TELEPHONY_LOGE("init first please!");
213 return TELEPHONY_ERR_UNINIT;
214 }
215 }
216
KickOutFromConference(int32_t callId)217 int32_t CallManagerClient::KickOutFromConference(int32_t callId)
218 {
219 if (g_callManagerProxy != nullptr) {
220 return g_callManagerProxy->KickOutFromConference(callId);
221 } else {
222 TELEPHONY_LOGE("init first please!");
223 return TELEPHONY_ERR_UNINIT;
224 }
225 }
226
GetMainCallId(int32_t & callId,int32_t & mainCallId)227 int32_t CallManagerClient::GetMainCallId(int32_t &callId, int32_t &mainCallId)
228 {
229 if (g_callManagerProxy != nullptr) {
230 return g_callManagerProxy->GetMainCallId(callId, mainCallId);
231 } else {
232 TELEPHONY_LOGE("init first please!");
233 return TELEPHONY_ERR_UNINIT;
234 }
235 }
236
GetSubCallIdList(int32_t callId,std::vector<std::u16string> & callIdList)237 int32_t CallManagerClient::GetSubCallIdList(int32_t callId, std::vector<std::u16string> &callIdList)
238 {
239 if (g_callManagerProxy != nullptr) {
240 return g_callManagerProxy->GetSubCallIdList(callId, callIdList);
241 } else {
242 TELEPHONY_LOGE("init first please!");
243 callIdList.clear();
244 return TELEPHONY_ERR_UNINIT;
245 }
246 }
247
GetCallIdListForConference(int32_t callId,std::vector<std::u16string> & callIdList)248 int32_t CallManagerClient::GetCallIdListForConference(int32_t callId, std::vector<std::u16string> &callIdList)
249 {
250 if (g_callManagerProxy != nullptr) {
251 return g_callManagerProxy->GetCallIdListForConference(callId, callIdList);
252 } else {
253 TELEPHONY_LOGE("init first please!");
254 callIdList.clear();
255 return TELEPHONY_ERR_UNINIT;
256 }
257 }
258
GetCallWaiting(int32_t slotId)259 int32_t CallManagerClient::GetCallWaiting(int32_t slotId)
260 {
261 if (g_callManagerProxy != nullptr) {
262 return g_callManagerProxy->GetCallWaiting(slotId);
263 } else {
264 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
265 return TELEPHONY_ERR_UNINIT;
266 }
267 }
268
SetCallWaiting(int32_t slotId,bool activate)269 int32_t CallManagerClient::SetCallWaiting(int32_t slotId, bool activate)
270 {
271 if (g_callManagerProxy != nullptr) {
272 return g_callManagerProxy->SetCallWaiting(slotId, activate);
273 } else {
274 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
275 return TELEPHONY_ERR_UNINIT;
276 }
277 }
278
GetCallRestriction(int32_t slotId,CallRestrictionType type)279 int32_t CallManagerClient::GetCallRestriction(int32_t slotId, CallRestrictionType type)
280 {
281 if (g_callManagerProxy != nullptr) {
282 return g_callManagerProxy->GetCallRestriction(slotId, type);
283 } else {
284 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
285 return TELEPHONY_ERR_UNINIT;
286 }
287 }
288
SetCallRestriction(int32_t slotId,CallRestrictionInfo & info)289 int32_t CallManagerClient::SetCallRestriction(int32_t slotId, CallRestrictionInfo &info)
290 {
291 if (g_callManagerProxy != nullptr) {
292 return g_callManagerProxy->SetCallRestriction(slotId, info);
293 } else {
294 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
295 return TELEPHONY_ERR_UNINIT;
296 }
297 }
298
SetCallRestrictionPassword(int32_t slotId,CallRestrictionType fac,const char * oldPassword,const char * newPassword)299 int32_t CallManagerClient::SetCallRestrictionPassword(
300 int32_t slotId, CallRestrictionType fac, const char *oldPassword, const char *newPassword)
301 {
302 if (g_callManagerProxy != nullptr) {
303 return g_callManagerProxy->SetCallRestrictionPassword(slotId, fac, oldPassword, newPassword);
304 } else {
305 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
306 return TELEPHONY_ERR_UNINIT;
307 }
308 }
309
GetCallTransferInfo(int32_t slotId,CallTransferType type)310 int32_t CallManagerClient::GetCallTransferInfo(int32_t slotId, CallTransferType type)
311 {
312 if (g_callManagerProxy != nullptr) {
313 return g_callManagerProxy->GetCallTransferInfo(slotId, type);
314 } else {
315 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
316 return TELEPHONY_ERR_UNINIT;
317 }
318 }
319
SetCallTransferInfo(int32_t slotId,CallTransferInfo & info)320 int32_t CallManagerClient::SetCallTransferInfo(int32_t slotId, CallTransferInfo &info)
321 {
322 if (g_callManagerProxy != nullptr) {
323 return g_callManagerProxy->SetCallTransferInfo(slotId, info);
324 } else {
325 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
326 return TELEPHONY_ERR_UNINIT;
327 }
328 }
329
CanSetCallTransferTime(int32_t slotId,bool & result)330 int32_t CallManagerClient::CanSetCallTransferTime(int32_t slotId, bool &result)
331 {
332 if (g_callManagerProxy != nullptr) {
333 return g_callManagerProxy->CanSetCallTransferTime(slotId, result);
334 } else {
335 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
336 return TELEPHONY_ERR_UNINIT;
337 }
338 }
339
SetCallPreferenceMode(int32_t slotId,int32_t mode)340 int32_t CallManagerClient::SetCallPreferenceMode(int32_t slotId, int32_t mode)
341 {
342 if (g_callManagerProxy != nullptr) {
343 return g_callManagerProxy->SetCallPreferenceMode(slotId, mode);
344 } else {
345 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
346 return TELEPHONY_ERR_UNINIT;
347 }
348 }
349
StartDtmf(int32_t callId,char str)350 int32_t CallManagerClient::StartDtmf(int32_t callId, char str)
351 {
352 if (g_callManagerProxy != nullptr) {
353 return g_callManagerProxy->StartDtmf(callId, str);
354 } else {
355 TELEPHONY_LOGE("init first please!");
356 return TELEPHONY_ERR_UNINIT;
357 }
358 }
359
StopDtmf(int32_t callId)360 int32_t CallManagerClient::StopDtmf(int32_t callId)
361 {
362 if (g_callManagerProxy != nullptr) {
363 return g_callManagerProxy->StopDtmf(callId);
364 } else {
365 TELEPHONY_LOGE("init first please!");
366 return TELEPHONY_ERR_UNINIT;
367 }
368 }
369
PostDialProceed(int32_t callId,bool proceed)370 int32_t CallManagerClient::PostDialProceed(int32_t callId, bool proceed)
371 {
372 if (g_callManagerProxy != nullptr) {
373 return g_callManagerProxy->PostDialProceed(callId, proceed);
374 } else {
375 TELEPHONY_LOGE("init first please!");
376 return TELEPHONY_ERR_UNINIT;
377 }
378 }
379
IsRinging(bool & enabled)380 int32_t CallManagerClient::IsRinging(bool &enabled)
381 {
382 if (g_callManagerProxy != nullptr) {
383 return g_callManagerProxy->IsRinging(enabled);
384 } else {
385 TELEPHONY_LOGE("init first please!");
386 return TELEPHONY_ERR_UNINIT;
387 }
388 }
389
HasCall()390 bool CallManagerClient::HasCall()
391 {
392 if (g_callManagerProxy != nullptr) {
393 return g_callManagerProxy->HasCall();
394 } else {
395 TELEPHONY_LOGE("init first please!");
396 return false;
397 }
398 }
399
IsNewCallAllowed(bool & enabled)400 int32_t CallManagerClient::IsNewCallAllowed(bool &enabled)
401 {
402 if (g_callManagerProxy != nullptr) {
403 return g_callManagerProxy->IsNewCallAllowed(enabled);
404 } else {
405 TELEPHONY_LOGE("init first please!");
406 return TELEPHONY_ERR_UNINIT;
407 }
408 }
409
IsInEmergencyCall(bool & enabled)410 int32_t CallManagerClient::IsInEmergencyCall(bool &enabled)
411 {
412 if (g_callManagerProxy != nullptr) {
413 return g_callManagerProxy->IsInEmergencyCall(enabled);
414 } else {
415 TELEPHONY_LOGE("init first please!");
416 return TELEPHONY_ERR_UNINIT;
417 }
418 }
419
IsEmergencyPhoneNumber(std::u16string & number,int32_t slotId,bool & enabled)420 int32_t CallManagerClient::IsEmergencyPhoneNumber(std::u16string &number, int32_t slotId, bool &enabled)
421 {
422 if (g_callManagerProxy != nullptr) {
423 return g_callManagerProxy->IsEmergencyPhoneNumber(number, slotId, enabled);
424 } else {
425 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
426 return TELEPHONY_ERR_UNINIT;
427 }
428 }
429
FormatPhoneNumber(std::u16string & number,std::u16string & countryCode,std::u16string & formatNumber)430 int32_t CallManagerClient::FormatPhoneNumber(
431 std::u16string &number, std::u16string &countryCode, std::u16string &formatNumber)
432 {
433 if (g_callManagerProxy != nullptr) {
434 return g_callManagerProxy->FormatPhoneNumber(number, countryCode, formatNumber);
435 } else {
436 TELEPHONY_LOGE("init first please!");
437 return TELEPHONY_ERR_UNINIT;
438 }
439 }
440
FormatPhoneNumberToE164(std::u16string & number,std::u16string & countryCode,std::u16string & formatNumber)441 int32_t CallManagerClient::FormatPhoneNumberToE164(
442 std::u16string &number, std::u16string &countryCode, std::u16string &formatNumber)
443 {
444 if (g_callManagerProxy != nullptr) {
445 return g_callManagerProxy->FormatPhoneNumberToE164(number, countryCode, formatNumber);
446 } else {
447 TELEPHONY_LOGE("init first please!");
448 return TELEPHONY_ERR_UNINIT;
449 }
450 }
451
SetMuted(bool isMute)452 int32_t CallManagerClient::SetMuted(bool isMute)
453 {
454 if (g_callManagerProxy != nullptr) {
455 return g_callManagerProxy->SetMuted(isMute);
456 } else {
457 TELEPHONY_LOGE("init first please!");
458 return TELEPHONY_ERR_UNINIT;
459 }
460 }
461
MuteRinger()462 int32_t CallManagerClient::MuteRinger()
463 {
464 if (g_callManagerProxy != nullptr) {
465 return g_callManagerProxy->MuteRinger();
466 } else {
467 TELEPHONY_LOGE("init first please!");
468 return TELEPHONY_ERR_UNINIT;
469 }
470 }
471
SetAudioDevice(const AudioDevice & audioDevice)472 int32_t CallManagerClient::SetAudioDevice(const AudioDevice &audioDevice)
473 {
474 if (g_callManagerProxy != nullptr) {
475 return g_callManagerProxy->SetAudioDevice(audioDevice);
476 } else {
477 TELEPHONY_LOGE("init first please!");
478 return TELEPHONY_ERR_UNINIT;
479 }
480 }
481
ControlCamera(int32_t callId,std::u16string cameraId)482 int32_t CallManagerClient::ControlCamera(int32_t callId, std::u16string cameraId)
483 {
484 if (g_callManagerProxy != nullptr) {
485 return g_callManagerProxy->ControlCamera(callId, cameraId);
486 } else {
487 TELEPHONY_LOGE("init first please!");
488 return TELEPHONY_ERR_UNINIT;
489 }
490 }
491
SetPreviewWindow(int32_t callId,std::string & surfaceId)492 int32_t CallManagerClient::SetPreviewWindow(int32_t callId, std::string &surfaceId)
493 {
494 if (g_callManagerProxy != nullptr) {
495 return g_callManagerProxy->SetPreviewWindow(callId, surfaceId);
496 } else {
497 TELEPHONY_LOGE("init first please!");
498 return TELEPHONY_ERR_UNINIT;
499 }
500 }
501
SetDisplayWindow(int32_t callId,std::string & surfaceId)502 int32_t CallManagerClient::SetDisplayWindow(int32_t callId, std::string &surfaceId)
503 {
504 if (g_callManagerProxy != nullptr) {
505 return g_callManagerProxy->SetDisplayWindow(callId, surfaceId);
506 } else {
507 TELEPHONY_LOGE("init first please!");
508 return TELEPHONY_ERR_UNINIT;
509 }
510 }
511
SetCameraZoom(float zoomRatio)512 int32_t CallManagerClient::SetCameraZoom(float zoomRatio)
513 {
514 if (g_callManagerProxy != nullptr) {
515 return g_callManagerProxy->SetCameraZoom(zoomRatio);
516 } else {
517 TELEPHONY_LOGE("init first please!");
518 return TELEPHONY_ERR_UNINIT;
519 }
520 }
521
SetPausePicture(int32_t callId,std::u16string path)522 int32_t CallManagerClient::SetPausePicture(int32_t callId, std::u16string path)
523 {
524 if (g_callManagerProxy != nullptr) {
525 return g_callManagerProxy->SetPausePicture(callId, path);
526 } else {
527 TELEPHONY_LOGE("init first please!");
528 return TELEPHONY_ERR_UNINIT;
529 }
530 }
531
SetDeviceDirection(int32_t callId,int32_t rotation)532 int32_t CallManagerClient::SetDeviceDirection(int32_t callId, int32_t rotation)
533 {
534 if (g_callManagerProxy != nullptr) {
535 return g_callManagerProxy->SetDeviceDirection(callId, rotation);
536 } else {
537 TELEPHONY_LOGE("init first please!");
538 return TELEPHONY_ERR_UNINIT;
539 }
540 }
541
GetImsConfig(int32_t slotId,ImsConfigItem item)542 int32_t CallManagerClient::GetImsConfig(int32_t slotId, ImsConfigItem item)
543 {
544 if (g_callManagerProxy != nullptr) {
545 return g_callManagerProxy->GetImsConfig(slotId, item);
546 } else {
547 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
548 return TELEPHONY_ERR_UNINIT;
549 }
550 }
551
SetImsConfig(int32_t slotId,ImsConfigItem item,std::u16string & value)552 int32_t CallManagerClient::SetImsConfig(int32_t slotId, ImsConfigItem item, std::u16string &value)
553 {
554 if (g_callManagerProxy != nullptr) {
555 return g_callManagerProxy->SetImsConfig(slotId, item, value);
556 } else {
557 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
558 return TELEPHONY_ERR_UNINIT;
559 }
560 }
561
GetImsFeatureValue(int32_t slotId,FeatureType type)562 int32_t CallManagerClient::GetImsFeatureValue(int32_t slotId, FeatureType type)
563 {
564 if (g_callManagerProxy != nullptr) {
565 return g_callManagerProxy->GetImsFeatureValue(slotId, type);
566 } else {
567 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
568 return TELEPHONY_ERR_UNINIT;
569 }
570 }
571
SetImsFeatureValue(int32_t slotId,FeatureType type,int32_t value)572 int32_t CallManagerClient::SetImsFeatureValue(int32_t slotId, FeatureType type, int32_t value)
573 {
574 if (g_callManagerProxy != nullptr) {
575 return g_callManagerProxy->SetImsFeatureValue(slotId, type, value);
576 } else {
577 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
578 return TELEPHONY_ERR_UNINIT;
579 }
580 }
581
UpdateImsCallMode(int32_t callId,ImsCallMode mode)582 int32_t CallManagerClient::UpdateImsCallMode(int32_t callId, ImsCallMode mode)
583 {
584 if (g_callManagerProxy != nullptr) {
585 return g_callManagerProxy->UpdateImsCallMode(callId, mode);
586 } else {
587 TELEPHONY_LOGE("init first please!");
588 return TELEPHONY_ERR_UNINIT;
589 }
590 }
591
EnableImsSwitch(int32_t slotId)592 int32_t CallManagerClient::EnableImsSwitch(int32_t slotId)
593 {
594 if (g_callManagerProxy != nullptr) {
595 return g_callManagerProxy->EnableImsSwitch(slotId);
596 } else {
597 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
598 return TELEPHONY_ERR_UNINIT;
599 }
600 }
601
DisableImsSwitch(int32_t slotId)602 int32_t CallManagerClient::DisableImsSwitch(int32_t slotId)
603 {
604 if (g_callManagerProxy != nullptr) {
605 return g_callManagerProxy->DisableImsSwitch(slotId);
606 } else {
607 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
608 return TELEPHONY_ERR_UNINIT;
609 }
610 }
611
IsImsSwitchEnabled(int32_t slotId,bool & enabled)612 int32_t CallManagerClient::IsImsSwitchEnabled(int32_t slotId, bool &enabled)
613 {
614 if (g_callManagerProxy != nullptr) {
615 return g_callManagerProxy->IsImsSwitchEnabled(slotId, enabled);
616 } else {
617 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
618 return TELEPHONY_ERR_UNINIT;
619 }
620 }
621
SetVoNRState(int32_t slotId,int32_t state)622 int32_t CallManagerClient::SetVoNRState(int32_t slotId, int32_t state)
623 {
624 if (g_callManagerProxy != nullptr) {
625 return g_callManagerProxy->SetVoNRState(slotId, state);
626 } else {
627 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
628 return TELEPHONY_ERR_UNINIT;
629 }
630 }
631
GetVoNRState(int32_t slotId,int32_t & state)632 int32_t CallManagerClient::GetVoNRState(int32_t slotId, int32_t &state)
633 {
634 if (g_callManagerProxy != nullptr) {
635 return g_callManagerProxy->GetVoNRState(slotId, state);
636 } else {
637 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
638 return TELEPHONY_ERR_UNINIT;
639 }
640 }
641
StartRtt(int32_t callId,std::u16string & msg)642 int32_t CallManagerClient::StartRtt(int32_t callId, std::u16string &msg)
643 {
644 if (g_callManagerProxy != nullptr) {
645 return g_callManagerProxy->StartRtt(callId, msg);
646 } else {
647 TELEPHONY_LOGE("init first please!");
648 return TELEPHONY_ERR_UNINIT;
649 }
650 }
651
StopRtt(int32_t callId)652 int32_t CallManagerClient::StopRtt(int32_t callId)
653 {
654 if (g_callManagerProxy != nullptr) {
655 return g_callManagerProxy->StopRtt(callId);
656 } else {
657 TELEPHONY_LOGE("init first please!");
658 return TELEPHONY_ERR_UNINIT;
659 }
660 }
661
JoinConference(int32_t callId,std::vector<std::u16string> & numberList)662 int32_t CallManagerClient::JoinConference(int32_t callId, std::vector<std::u16string> &numberList)
663 {
664 if (g_callManagerProxy != nullptr) {
665 return g_callManagerProxy->JoinConference(callId, numberList);
666 } else {
667 TELEPHONY_LOGE("init first please!");
668 return TELEPHONY_ERR_UNINIT;
669 }
670 }
671
ReportOttCallDetailsInfo(std::vector<OttCallDetailsInfo> & ottVec)672 int32_t CallManagerClient::ReportOttCallDetailsInfo(std::vector<OttCallDetailsInfo> &ottVec)
673 {
674 if (g_callManagerProxy != nullptr) {
675 return g_callManagerProxy->ReportOttCallDetailsInfo(ottVec);
676 } else {
677 TELEPHONY_LOGE("init first please!");
678 return TELEPHONY_ERR_UNINIT;
679 }
680 }
681
ReportOttCallEventInfo(OttCallEventInfo & eventInfo)682 int32_t CallManagerClient::ReportOttCallEventInfo(OttCallEventInfo &eventInfo)
683 {
684 if (g_callManagerProxy != nullptr) {
685 return g_callManagerProxy->ReportOttCallEventInfo(eventInfo);
686 } else {
687 TELEPHONY_LOGE("init first please!");
688 return TELEPHONY_ERR_UNINIT;
689 }
690 }
691
CloseUnFinishedUssd(int32_t slotId)692 int32_t CallManagerClient::CloseUnFinishedUssd(int32_t slotId)
693 {
694 if (g_callManagerProxy != nullptr) {
695 return g_callManagerProxy->CloseUnFinishedUssd(slotId);
696 } else {
697 TELEPHONY_LOGE("[slot%{public}d] init first please!", slotId);
698 return TELEPHONY_ERR_UNINIT;
699 }
700 }
701
InputDialerSpecialCode(const std::string & specialCode)702 int32_t CallManagerClient::InputDialerSpecialCode(const std::string &specialCode)
703 {
704 if (g_callManagerProxy == nullptr) {
705 TELEPHONY_LOGE("init first please!");
706 return TELEPHONY_ERR_UNINIT;
707 }
708 return g_callManagerProxy->InputDialerSpecialCode(specialCode);
709 }
710
RemoveMissedIncomingCallNotification()711 int32_t CallManagerClient::RemoveMissedIncomingCallNotification()
712 {
713 if (g_callManagerProxy == nullptr) {
714 TELEPHONY_LOGE("init first please!");
715 return TELEPHONY_ERR_UNINIT;
716 }
717 return g_callManagerProxy->RemoveMissedIncomingCallNotification();
718 }
719
SetVoIPCallState(int32_t state)720 int32_t CallManagerClient::SetVoIPCallState(int32_t state)
721 {
722 if (g_callManagerProxy != nullptr) {
723 return g_callManagerProxy->SetVoIPCallState(state);
724 } else {
725 TELEPHONY_LOGE("init first please!");
726 return TELEPHONY_ERR_UNINIT;
727 }
728 }
729
GetVoIPCallState(int32_t & state)730 int32_t CallManagerClient::GetVoIPCallState(int32_t &state)
731 {
732 if (g_callManagerProxy != nullptr) {
733 return g_callManagerProxy->GetVoIPCallState(state);
734 } else {
735 TELEPHONY_LOGE("init first please!");
736 return TELEPHONY_ERR_UNINIT;
737 }
738 }
739
HasVoiceCapability()740 bool CallManagerClient::HasVoiceCapability()
741 {
742 char retValue[VOICECALL_CAP_VAL_LEN + 1] = {"true"};
743 int retLen = GetParameter(KEY_VOICECALL_CAP.c_str(), "true", retValue, VOICECALL_CAP_VAL_LEN);
744 TELEPHONY_LOGI("HasVoiceCapability retValue %{public}s, retLen %{public}d", retValue, retLen);
745 if (strcmp(retValue, "false") == 0) {
746 return false;
747 }
748 return true;
749 }
750
ReportAudioDeviceInfo()751 int32_t CallManagerClient::ReportAudioDeviceInfo()
752 {
753 if (g_callManagerProxy != nullptr) {
754 return g_callManagerProxy->ReportAudioDeviceInfo();
755 } else {
756 TELEPHONY_LOGE("init first please!");
757 return TELEPHONY_ERR_UNINIT;
758 }
759 }
760
CancelCallUpgrade(int32_t callId)761 int32_t CallManagerClient::CancelCallUpgrade(int32_t callId)
762 {
763 if (g_callManagerProxy != nullptr) {
764 return g_callManagerProxy->CancelCallUpgrade(callId);
765 } else {
766 TELEPHONY_LOGE("init first please!");
767 return TELEPHONY_ERR_UNINIT;
768 }
769 }
770
RequestCameraCapabilities(int32_t callId)771 int32_t CallManagerClient::RequestCameraCapabilities(int32_t callId)
772 {
773 if (g_callManagerProxy != nullptr) {
774 return g_callManagerProxy->RequestCameraCapabilities(callId);
775 } else {
776 TELEPHONY_LOGE("init first please!");
777 return TELEPHONY_ERR_UNINIT;
778 }
779 }
780
SendCallUiEvent(int32_t callId,std::string & eventName)781 int32_t CallManagerClient::SendCallUiEvent(int32_t callId, std::string &eventName)
782 {
783 if (g_callManagerProxy != nullptr) {
784 return g_callManagerProxy->SendCallUiEvent(callId, eventName);
785 } else {
786 TELEPHONY_LOGE("init first please!");
787 return TELEPHONY_ERR_UNINIT;
788 }
789 }
790 } // namespace Telephony
791 } // namespace OHOS
792