• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 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 "cellular_call_stub.h"
17 #include "call_manager_errors.h"
18 
19 #include "emergency_utils.h"
20 #include "i_call_status_callback.h"
21 
22 namespace OHOS {
23 namespace Telephony {
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)24 int32_t CellularCallStub::OnRemoteRequest(
25     uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option)
26 {
27     std::u16string myDescriptor = CellularCallStub::GetDescriptor();
28     std::u16string remoteDescriptor = data.ReadInterfaceToken();
29     if (myDescriptor != remoteDescriptor) {
30         TELEPHONY_LOGE("descriptor checked fail");
31         return TELEPHONY_ERR_DESCRIPTOR_MISMATCH;
32     }
33 
34     auto itFunc = requestFuncMap_.find(static_cast<OperationType>(code));
35     if (itFunc != requestFuncMap_.end()) {
36         auto requestFunc = itFunc->second;
37         if (requestFunc != nullptr) {
38             return (this->*requestFunc)(data, reply);
39         }
40     }
41     TELEPHONY_LOGI("CellularCallStub::OnRemoteRequest, default case, need check.");
42     return IPCObjectStub::OnRemoteRequest(code, data, reply, option);
43 }
44 
CellularCallStub()45 CellularCallStub::CellularCallStub()
46 {
47     TELEPHONY_LOGI("CellularCallStub::CellularCallStub");
48     requestFuncMap_[OperationType::DIAL] = &CellularCallStub::OnDialInner;
49     requestFuncMap_[OperationType::HANG_UP] = &CellularCallStub::OnHangUpInner;
50     requestFuncMap_[OperationType::REJECT] = &CellularCallStub::OnRejectInner;
51     requestFuncMap_[OperationType::ANSWER] = &CellularCallStub::OnAnswerInner;
52     requestFuncMap_[OperationType::EMERGENCY_CALL] = &CellularCallStub::OnIsEmergencyPhoneNumberInner;
53     requestFuncMap_[OperationType::HOLD_CALL] = &CellularCallStub::OnHoldCallInner;
54     requestFuncMap_[OperationType::UN_HOLD_CALL] = &CellularCallStub::OnUnHoldCallInner;
55     requestFuncMap_[OperationType::SWITCH_CALL] = &CellularCallStub::OnSwitchCallInner;
56     requestFuncMap_[OperationType::COMBINE_CONFERENCE] = &CellularCallStub::OnCombineConferenceInner;
57     requestFuncMap_[OperationType::SEPARATE_CONFERENCE] = &CellularCallStub::OnSeparateConferenceInner;
58     requestFuncMap_[OperationType::INVITE_TO_CONFERENCE] = &CellularCallStub::OnInviteToConferenceInner;
59     requestFuncMap_[OperationType::KICK_OUT_CONFERENCE] = &CellularCallStub::OnKickOutFromConferenceInner;
60     requestFuncMap_[OperationType::HANG_UP_ALL_CONNECTION] = &CellularCallStub::OnHangUpAllConnectionInner;
61     requestFuncMap_[OperationType::UPDATE_CALL_MEDIA_MODE] = &CellularCallStub::OnUpdateCallMediaModeInner;
62     requestFuncMap_[OperationType::REGISTER_CALLBACK] = &CellularCallStub::OnRegisterCallBackInner;
63     requestFuncMap_[OperationType::UNREGISTER_CALLBACK] = &CellularCallStub::OnUnRegisterCallBackInner;
64     requestFuncMap_[OperationType::START_DTMF] = &CellularCallStub::OnStartDtmfInner;
65     requestFuncMap_[OperationType::STOP_DTMF] = &CellularCallStub::OnStopDtmfInner;
66     requestFuncMap_[OperationType::SEND_DTMF] = &CellularCallStub::OnSendDtmfInner;
67     requestFuncMap_[OperationType::START_RTT] = &CellularCallStub::OnStartRttInner;
68     requestFuncMap_[OperationType::STOP_RTT] = &CellularCallStub::OnStopRttInner;
69     requestFuncMap_[OperationType::SET_CALL_TRANSFER] = &CellularCallStub::OnSetCallTransferInner;
70     requestFuncMap_[OperationType::GET_CALL_TRANSFER] = &CellularCallStub::OnGetCallTransferInner;
71     requestFuncMap_[OperationType::SET_CALL_WAITING] = &CellularCallStub::OnSetCallWaitingInner;
72     requestFuncMap_[OperationType::GET_CALL_WAITING] = &CellularCallStub::OnGetCallWaitingInner;
73     requestFuncMap_[OperationType::SET_CALL_RESTRICTION] = &CellularCallStub::OnSetCallRestrictionInner;
74     requestFuncMap_[OperationType::GET_CALL_RESTRICTION] = &CellularCallStub::OnGetCallRestrictionInner;
75     requestFuncMap_[OperationType::SET_DOMAIN_PREFERENCE_MODE] = &CellularCallStub::OnSetDomainPreferenceModeInner;
76     requestFuncMap_[OperationType::GET_DOMAIN_PREFERENCE_MODE] = &CellularCallStub::OnGetDomainPreferenceModeInner;
77     requestFuncMap_[OperationType::SET_LTE_IMS_SWITCH_STATUS] = &CellularCallStub::OnSetLteImsSwitchStatusInner;
78     requestFuncMap_[OperationType::GET_LTE_IMS_SWITCH_STATUS] = &CellularCallStub::OnGetLteImsSwitchStatusInner;
79     requestFuncMap_[OperationType::SET_IMS_CONFIG_STRING] = &CellularCallStub::OnSetImsConfigStringInner;
80     requestFuncMap_[OperationType::SET_IMS_CONFIG_INT] = &CellularCallStub::OnSetImsConfigIntInner;
81     requestFuncMap_[OperationType::GET_IMS_CONFIG] = &CellularCallStub::OnGetImsConfigInner;
82     requestFuncMap_[OperationType::SET_IMS_FEATURE] = &CellularCallStub::OnSetImsFeatureValueInner;
83     requestFuncMap_[OperationType::GET_IMS_FEATURE] = &CellularCallStub::OnGetImsFeatureValueInner;
84     requestFuncMap_[OperationType::SET_IMS_SWITCH_ENHANCE_MODE] = &CellularCallStub::OnSetImsSwitchEnhanceModeInner;
85     requestFuncMap_[OperationType::GET_IMS_SWITCH_ENHANCE_MODE] = &CellularCallStub::OnGetImsSwitchEnhanceModeInner;
86     requestFuncMap_[OperationType::CTRL_CAMERA] = &CellularCallStub::OnCtrlCameraInner;
87     requestFuncMap_[OperationType::SET_PREVIEW_WINDOW] = &CellularCallStub::OnSetPreviewWindowInner;
88     requestFuncMap_[OperationType::SET_DISPLAY_WINDOW] = &CellularCallStub::OnSetDisplayWindowInner;
89     requestFuncMap_[OperationType::SET_CAMERA_ZOOM] = &CellularCallStub::OnSetCameraZoomInner;
90     requestFuncMap_[OperationType::SET_PAUSE_IMAGE] = &CellularCallStub::OnSetPauseImageInner;
91     requestFuncMap_[OperationType::SET_DEVICE_DIRECTION] = &CellularCallStub::OnSetDeviceDirectionInner;
92     requestFuncMap_[OperationType::SET_MUTE] = &CellularCallStub::OnSetMuteInner;
93     requestFuncMap_[OperationType::GET_MUTE] = &CellularCallStub::OnGetMuteInner;
94 }
95 
~CellularCallStub()96 CellularCallStub::~CellularCallStub()
97 {
98     TELEPHONY_LOGI("CellularCallStub::~CellularCallStub");
99     requestFuncMap_.clear();
100 }
101 
OnDialInner(MessageParcel & data,MessageParcel & reply)102 int32_t CellularCallStub::OnDialInner(MessageParcel &data, MessageParcel &reply)
103 {
104     TELEPHONY_LOGI("CellularCallStub::OnDialInner entry");
105     int32_t size = data.ReadInt32();
106     size = ((size > MAX_SIZE) ? 0 : size);
107     if (size <= 0) {
108         TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
109         return TELEPHONY_ERR_FAIL;
110     }
111     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
112     if (pCallInfo == nullptr) {
113         TELEPHONY_LOGE("OnDialInner return, pCallInfo is nullptr.");
114         return TELEPHONY_ERR_ARGUMENT_INVALID;
115     }
116 
117     reply.WriteInt32(Dial(*pCallInfo));
118     return TELEPHONY_SUCCESS;
119 }
120 
OnHangUpInner(MessageParcel & data,MessageParcel & reply)121 int32_t CellularCallStub::OnHangUpInner(MessageParcel &data, MessageParcel &reply)
122 {
123     TELEPHONY_LOGI("CellularCallStub::OnHangUpInner entry");
124     int32_t size = data.ReadInt32();
125     size = ((size > MAX_SIZE) ? 0 : size);
126     if (size <= 0) {
127         TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
128         return TELEPHONY_ERR_FAIL;
129     }
130     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
131     if (pCallInfo == nullptr) {
132         TELEPHONY_LOGE("OnHangUpInner return, pCallInfo is nullptr.");
133         return TELEPHONY_ERR_ARGUMENT_INVALID;
134     }
135     auto type = static_cast<CallSupplementType>(data.ReadInt32());
136 
137     reply.WriteInt32(HangUp(*pCallInfo, type));
138     return TELEPHONY_SUCCESS;
139 }
140 
OnRejectInner(MessageParcel & data,MessageParcel & reply)141 int32_t CellularCallStub::OnRejectInner(MessageParcel &data, MessageParcel &reply)
142 {
143     TELEPHONY_LOGI("CellularCallStub::OnRejectInner entry");
144     int32_t size = data.ReadInt32();
145     size = ((size > MAX_SIZE) ? 0 : size);
146     if (size <= 0) {
147         TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
148         return TELEPHONY_ERR_FAIL;
149     }
150     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
151     if (pCallInfo == nullptr) {
152         TELEPHONY_LOGE("OnRejectInner return, pCallInfo is nullptr.");
153         return TELEPHONY_ERR_ARGUMENT_INVALID;
154     }
155 
156     reply.WriteInt32(Reject(*pCallInfo));
157     return TELEPHONY_SUCCESS;
158 }
159 
OnAnswerInner(MessageParcel & data,MessageParcel & reply)160 int32_t CellularCallStub::OnAnswerInner(MessageParcel &data, MessageParcel &reply)
161 {
162     TELEPHONY_LOGI("CellularCallStub::OnAnswerInner entry");
163     int32_t size = data.ReadInt32();
164     size = ((size > MAX_SIZE) ? 0 : size);
165     if (size <= 0) {
166         TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
167         return TELEPHONY_ERR_FAIL;
168     }
169     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
170     if (pCallInfo == nullptr) {
171         TELEPHONY_LOGE("OnAnswerInner return, pCallInfo is nullptr.");
172         return TELEPHONY_ERR_ARGUMENT_INVALID;
173     }
174 
175     reply.WriteInt32(Answer(*pCallInfo));
176     return TELEPHONY_SUCCESS;
177 }
178 
OnIsEmergencyPhoneNumberInner(MessageParcel & data,MessageParcel & reply)179 int32_t CellularCallStub::OnIsEmergencyPhoneNumberInner(MessageParcel &data, MessageParcel &reply)
180 {
181     TELEPHONY_LOGI("CellularCallStub::OnIsEmergencyPhoneNumberInner entry.");
182     int32_t size = data.ReadInt32();
183     size = ((size > MAX_SIZE) ? 0 : size);
184     if (size <= 0) {
185         TELEPHONY_LOGE("CellularCallStub::OnIsEmergencyPhoneNumberInner data size error");
186         return TELEPHONY_ERR_FAIL;
187     }
188     int32_t slotId = data.ReadInt32();
189     std::string phoneNum = data.ReadString();
190     int32_t errorCode = data.ReadInt32();
191     reply.WriteInt32(IsEmergencyPhoneNumber(slotId, phoneNum, errorCode));
192 
193     reply.WriteInt32(errorCode);
194     return TELEPHONY_SUCCESS;
195 }
196 
OnRegisterCallBackInner(MessageParcel & data,MessageParcel & reply)197 int32_t CellularCallStub::OnRegisterCallBackInner(MessageParcel &data, MessageParcel &reply)
198 {
199     TELEPHONY_LOGI("CellularCallStub::OnRegisterCallBackInner entry.");
200     int32_t size = data.ReadInt32();
201     size = ((size > MAX_SIZE) ? 0 : size);
202     if (size <= 0) {
203         TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
204         return TELEPHONY_ERR_FAIL;
205     }
206 
207     int32_t result = TELEPHONY_ERR_LOCAL_PTR_NULL;
208     auto remote = data.ReadRemoteObject();
209     if (remote == nullptr) {
210         TELEPHONY_LOGE("CellularCallStub::OnRegisterCallBackInner return, remote is nullptr.");
211         reply.WriteInt32(result);
212         return result;
213     }
214     result = RegisterCallManagerCallBack(iface_cast<ICallStatusCallback>(remote));
215 
216     reply.WriteInt32(result);
217     return TELEPHONY_SUCCESS;
218 }
219 
OnUnRegisterCallBackInner(MessageParcel & data,MessageParcel & reply)220 int32_t CellularCallStub::OnUnRegisterCallBackInner(MessageParcel &data, MessageParcel &reply)
221 {
222     TELEPHONY_LOGI("CellularCallStub::OnUnRegisterCallBackInner entry.");
223     int32_t size = data.ReadInt32();
224     size = ((size > MAX_SIZE) ? 0 : size);
225     if (size <= 0) {
226         TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
227         return TELEPHONY_ERR_FAIL;
228     }
229     int32_t result = UnRegisterCallManagerCallBack();
230 
231     reply.WriteInt32(result);
232     return result;
233 }
234 
OnHoldCallInner(MessageParcel & data,MessageParcel & reply)235 int32_t CellularCallStub::OnHoldCallInner(MessageParcel &data, MessageParcel &reply)
236 {
237     TELEPHONY_LOGI("CellularCallStub::OnHoldCallInner entry");
238     int32_t size = data.ReadInt32();
239     size = ((size > MAX_SIZE) ? 0 : size);
240     if (size <= 0) {
241         TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
242         return TELEPHONY_ERR_FAIL;
243     }
244     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
245     if (pCallInfo == nullptr) {
246         TELEPHONY_LOGE("OnHoldCallInner return, pCallInfo is nullptr.");
247         return TELEPHONY_ERR_ARGUMENT_INVALID;
248     }
249 
250     reply.WriteInt32(HoldCall(*pCallInfo));
251     return TELEPHONY_SUCCESS;
252 }
253 
OnUnHoldCallInner(MessageParcel & data,MessageParcel & reply)254 int32_t CellularCallStub::OnUnHoldCallInner(MessageParcel &data, MessageParcel &reply)
255 {
256     TELEPHONY_LOGI("CellularCallStub::OnUnHoldCallInner entry");
257     int32_t size = data.ReadInt32();
258     size = ((size > MAX_SIZE) ? 0 : size);
259     if (size <= 0) {
260         TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
261         return TELEPHONY_ERR_FAIL;
262     }
263     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
264     if (pCallInfo == nullptr) {
265         TELEPHONY_LOGE("OnUnHoldCallInner return, pCallInfo is nullptr.");
266         return TELEPHONY_ERR_ARGUMENT_INVALID;
267     }
268 
269     reply.WriteInt32(UnHoldCall(*pCallInfo));
270     return TELEPHONY_SUCCESS;
271 }
272 
OnSwitchCallInner(MessageParcel & data,MessageParcel & reply)273 int32_t CellularCallStub::OnSwitchCallInner(MessageParcel &data, MessageParcel &reply)
274 {
275     TELEPHONY_LOGI("CellularCallStub::OnSwitchCallInner entry");
276     int32_t size = data.ReadInt32();
277     size = ((size > MAX_SIZE) ? 0 : size);
278     if (size <= 0) {
279         TELEPHONY_LOGE("CellularCallStub::OnRemoteRequest data size error");
280         return TELEPHONY_ERR_FAIL;
281     }
282     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
283     if (pCallInfo == nullptr) {
284         TELEPHONY_LOGE("OnSwitchCallInner return, pCallInfo is nullptr.");
285         return TELEPHONY_ERR_ARGUMENT_INVALID;
286     }
287 
288     reply.WriteInt32(SwitchCall(*pCallInfo));
289     return TELEPHONY_SUCCESS;
290 }
291 
OnCombineConferenceInner(MessageParcel & data,MessageParcel & reply)292 int32_t CellularCallStub::OnCombineConferenceInner(MessageParcel &data, MessageParcel &reply)
293 {
294     TELEPHONY_LOGI("CellularCallStub::OnCombineConferenceInner entry");
295     int32_t size = data.ReadInt32();
296     size = ((size > MAX_SIZE) ? 0 : size);
297     if (size <= 0) {
298         TELEPHONY_LOGE("CellularCallStub::OnCombineConferenceInner data size error");
299         return TELEPHONY_ERR_FAIL;
300     }
301     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
302     if (pCallInfo == nullptr) {
303         TELEPHONY_LOGE("OnCombineConferenceInner return, pCallInfo is nullptr.");
304         return TELEPHONY_ERR_ARGUMENT_INVALID;
305     }
306 
307     reply.WriteInt32(CombineConference(*pCallInfo));
308     return TELEPHONY_SUCCESS;
309 }
310 
OnSeparateConferenceInner(MessageParcel & data,MessageParcel & reply)311 int32_t CellularCallStub::OnSeparateConferenceInner(MessageParcel &data, MessageParcel &reply)
312 {
313     TELEPHONY_LOGI("CellularCallStub::OnSeparateConferenceInner entry");
314     int32_t size = data.ReadInt32();
315     size = ((size > MAX_SIZE) ? 0 : size);
316     if (size <= 0) {
317         TELEPHONY_LOGE("CellularCallStub::OnSeparateConferenceInner data size error");
318         return TELEPHONY_ERR_FAIL;
319     }
320 
321     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
322     if (pCallInfo == nullptr) {
323         TELEPHONY_LOGE("OnSeparateConferenceInner return, pCallInfo is nullptr.");
324         return TELEPHONY_ERR_ARGUMENT_INVALID;
325     }
326 
327     reply.WriteInt32(SeparateConference(*pCallInfo));
328     return TELEPHONY_SUCCESS;
329 }
330 
OnInviteToConferenceInner(MessageParcel & data,MessageParcel & reply)331 int32_t CellularCallStub::OnInviteToConferenceInner(MessageParcel &data, MessageParcel &reply)
332 {
333     TELEPHONY_LOGI("CellularCallStub::OnInviteToConferenceInner entry");
334     int32_t size = data.ReadInt32();
335     size = ((size > MAX_SIZE) ? 0 : size);
336     if (size <= 0) {
337         TELEPHONY_LOGE("CellularCallStub::OnInviteToConferenceInner data size error");
338         return TELEPHONY_ERR_FAIL;
339     }
340 
341     int32_t slotId = data.ReadInt32();
342     std::vector<std::string> numberList;
343     bool bRead = data.ReadStringVector(&numberList);
344     if (!bRead) {
345         TELEPHONY_LOGE("InviteToConferenceInner return, read fail.");
346         return TELEPHONY_ERR_ARGUMENT_INVALID;
347     }
348     reply.WriteInt32(InviteToConference(slotId, numberList));
349     return TELEPHONY_SUCCESS;
350 }
351 
OnKickOutFromConferenceInner(MessageParcel & data,MessageParcel & reply)352 int32_t CellularCallStub::OnKickOutFromConferenceInner(MessageParcel &data, MessageParcel &reply)
353 {
354     TELEPHONY_LOGI("CellularCallStub::OnKickOutFromConferenceInner entry");
355     int32_t size = data.ReadInt32();
356     size = ((size > MAX_SIZE) ? 0 : size);
357     if (size <= 0) {
358         TELEPHONY_LOGE("CellularCallStub::OnKickOutFromConferenceInner data size error");
359         return TELEPHONY_ERR_FAIL;
360     }
361 
362     int32_t slotId = data.ReadInt32();
363     std::vector<std::string> numberList;
364     bool bRead = data.ReadStringVector(&numberList);
365     if (!bRead) {
366         TELEPHONY_LOGE("OnKickOutFromConferenceInner return, read fail.");
367         return TELEPHONY_ERR_ARGUMENT_INVALID;
368     }
369     reply.WriteInt32(KickOutFromConference(slotId, numberList));
370     return TELEPHONY_SUCCESS;
371 }
372 
OnHangUpAllConnectionInner(MessageParcel & data,MessageParcel & reply)373 int32_t CellularCallStub::OnHangUpAllConnectionInner(MessageParcel &data, MessageParcel &reply)
374 {
375     TELEPHONY_LOGI("CellularCallStub::OnHangUpAllConnectionInner entry");
376     int32_t size = data.ReadInt32();
377     size = ((size > MAX_SIZE) ? 0 : size);
378     if (size <= 0) {
379         TELEPHONY_LOGE("OnHangUpAllConnectionInner data size error");
380         return TELEPHONY_ERR_FAIL;
381     }
382 
383     reply.WriteInt32(HangUpAllConnection());
384     return TELEPHONY_SUCCESS;
385 }
386 
OnUpdateCallMediaModeInner(MessageParcel & data,MessageParcel & reply)387 int32_t CellularCallStub::OnUpdateCallMediaModeInner(MessageParcel &data, MessageParcel &reply)
388 {
389     TELEPHONY_LOGI("CellularCallStub::OnUpdateCallMediaModeInner entry");
390     int32_t size = data.ReadInt32();
391     size = ((size > MAX_SIZE) ? 0 : size);
392     if (size <= 0) {
393         TELEPHONY_LOGE("OnUpdateCallMediaModeInner data size error");
394         return TELEPHONY_ERR_FAIL;
395     }
396     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
397     if (pCallInfo == nullptr) {
398         TELEPHONY_LOGE("OnUpdateCallMediaModeInner return, pCallInfo is nullptr.");
399         return TELEPHONY_ERR_ARGUMENT_INVALID;
400     }
401     auto mode = static_cast<ImsCallMode>(data.ReadInt32());
402 
403     reply.WriteInt32(UpdateImsCallMode(*pCallInfo, mode));
404     return TELEPHONY_SUCCESS;
405 }
406 
OnStartDtmfInner(MessageParcel & data,MessageParcel & reply)407 int32_t CellularCallStub::OnStartDtmfInner(MessageParcel &data, MessageParcel &reply)
408 {
409     TELEPHONY_LOGI("CellularCallStub::OnStartDtmfInner entry");
410     int32_t size = data.ReadInt32();
411     size = ((size > MAX_SIZE) ? 0 : size);
412     if (size <= 0) {
413         TELEPHONY_LOGE("CellularCallStub::OnStartDtmfInner data size error");
414         return TELEPHONY_ERR_FAIL;
415     }
416 
417     char *pDtmf = (char *)(data.ReadCString());
418     if (pDtmf == nullptr) {
419         TELEPHONY_LOGE("OnStartDtmfInner return, pDtmf is nullptr.");
420         return TELEPHONY_ERR_ARGUMENT_INVALID;
421     }
422     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
423     if (pCallInfo == nullptr) {
424         TELEPHONY_LOGE("OnStartDtmfInner return, pCallInfo is nullptr.");
425         return TELEPHONY_ERR_ARGUMENT_INVALID;
426     }
427 
428     reply.WriteInt32(StartDtmf(*pDtmf, *pCallInfo));
429     return TELEPHONY_SUCCESS;
430 }
431 
OnStopDtmfInner(MessageParcel & data,MessageParcel & reply)432 int32_t CellularCallStub::OnStopDtmfInner(MessageParcel &data, MessageParcel &reply)
433 {
434     TELEPHONY_LOGI("CellularCallStub::OnStopDtmfInner entry");
435     int32_t size = data.ReadInt32();
436     size = ((size > MAX_SIZE) ? 0 : size);
437     if (size <= 0) {
438         TELEPHONY_LOGE("CellularCallStub::OnStopDtmfInner data size error");
439         return TELEPHONY_ERR_FAIL;
440     }
441 
442     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
443     if (pCallInfo == nullptr) {
444         TELEPHONY_LOGE("OnStopDtmfInner return, pCallInfo is nullptr.");
445         return TELEPHONY_ERR_ARGUMENT_INVALID;
446     }
447 
448     reply.WriteInt32(StopDtmf(*pCallInfo));
449     return TELEPHONY_SUCCESS;
450 }
451 
OnSendDtmfInner(MessageParcel & data,MessageParcel & reply)452 int32_t CellularCallStub::OnSendDtmfInner(MessageParcel &data, MessageParcel &reply)
453 {
454     TELEPHONY_LOGI("CellularCallStub::OnSendDtmfInner entry");
455     int32_t size = data.ReadInt32();
456     size = ((size > MAX_SIZE) ? 0 : size);
457     if (size <= 0) {
458         TELEPHONY_LOGE("CellularCallStub::OnSendDtmfInner data size error");
459         return TELEPHONY_ERR_FAIL;
460     }
461 
462     char *pDtmf = (char *)(data.ReadCString());
463     if (pDtmf == nullptr) {
464         TELEPHONY_LOGE("OnSendDtmfInner return, pDtmf is nullptr.");
465         return TELEPHONY_ERR_ARGUMENT_INVALID;
466     }
467     auto pCallInfo = (CellularCallInfo *)data.ReadRawData(sizeof(CellularCallInfo));
468     if (pCallInfo == nullptr) {
469         TELEPHONY_LOGE("OnSendDtmfInner return, pCallInfo is nullptr.");
470         return TELEPHONY_ERR_ARGUMENT_INVALID;
471     }
472 
473     reply.WriteInt32(SendDtmf(*pDtmf, *pCallInfo));
474     return TELEPHONY_SUCCESS;
475 }
476 
OnStartRttInner(MessageParcel & data,MessageParcel & reply)477 int32_t CellularCallStub::OnStartRttInner(MessageParcel &data, MessageParcel &reply)
478 {
479     TELEPHONY_LOGI("CellularCallStub::OnStartRttInner entry");
480     int32_t size = data.ReadInt32();
481     size = ((size > MAX_SIZE) ? 0 : size);
482     if (size <= 0) {
483         TELEPHONY_LOGE("CellularCallStub::OnStartRttInner data size error");
484         return TELEPHONY_ERR_FAIL;
485     }
486     int32_t slotId = data.ReadInt32();
487     std::string msg = data.ReadString();
488 
489     reply.WriteInt32(StartRtt(slotId, msg));
490     return TELEPHONY_SUCCESS;
491 }
492 
OnStopRttInner(MessageParcel & data,MessageParcel & reply)493 int32_t CellularCallStub::OnStopRttInner(MessageParcel &data, MessageParcel &reply)
494 {
495     TELEPHONY_LOGI("CellularCallStub::OnStopRttInner entry");
496     int32_t size = data.ReadInt32();
497     size = ((size > MAX_SIZE) ? 0 : size);
498     if (size <= 0) {
499         TELEPHONY_LOGE("CellularCallStub::OnStopRttInner data size error");
500         return TELEPHONY_ERR_FAIL;
501     }
502     int32_t slotId = data.ReadInt32();
503 
504     reply.WriteInt32(StopRtt(slotId));
505     return TELEPHONY_SUCCESS;
506 }
507 
OnSetCallTransferInner(MessageParcel & data,MessageParcel & reply)508 int32_t CellularCallStub::OnSetCallTransferInner(MessageParcel &data, MessageParcel &reply)
509 {
510     TELEPHONY_LOGI("CellularCallStub::OnSetCallTransferInner entry");
511     int32_t size = data.ReadInt32();
512     size = ((size > MAX_SIZE) ? 0 : size);
513     if (size <= 0) {
514         TELEPHONY_LOGE("CellularCallStub::OnSetCallTransferInner data size error");
515         return TELEPHONY_ERR_FAIL;
516     }
517     int32_t slotId = data.ReadInt32();
518     auto pCTInfo = (CallTransferInfo *)data.ReadRawData(sizeof(CallTransferInfo));
519     if (pCTInfo == nullptr) {
520         TELEPHONY_LOGE("OnSetCallTransferInner return, pCTInfo is nullptr.");
521         return TELEPHONY_ERR_ARGUMENT_INVALID;
522     }
523 
524     reply.WriteInt32(SetCallTransferInfo(slotId, *pCTInfo));
525     return TELEPHONY_SUCCESS;
526 }
527 
OnGetCallTransferInner(MessageParcel & data,MessageParcel & reply)528 int32_t CellularCallStub::OnGetCallTransferInner(MessageParcel &data, MessageParcel &reply)
529 {
530     TELEPHONY_LOGI("CellularCallStub::OnGetCallTransferInner entry");
531     int32_t size = data.ReadInt32();
532     size = ((size > MAX_SIZE) ? 0 : size);
533     if (size <= 0) {
534         TELEPHONY_LOGE("CellularCallStub::OnGetCallTransferInner data size error");
535         return TELEPHONY_ERR_FAIL;
536     }
537     int32_t slotId = data.ReadInt32();
538     auto type = static_cast<CallTransferType>(data.ReadInt32());
539 
540     reply.WriteInt32(GetCallTransferInfo(slotId, type));
541     return TELEPHONY_SUCCESS;
542 }
543 
OnSetCallWaitingInner(MessageParcel & data,MessageParcel & reply)544 int32_t CellularCallStub::OnSetCallWaitingInner(MessageParcel &data, MessageParcel &reply)
545 {
546     TELEPHONY_LOGI("CellularCallStub::OnSetCallWaitingInner entry");
547     int32_t size = data.ReadInt32();
548     size = ((size > MAX_SIZE) ? 0 : size);
549     if (size <= 0) {
550         TELEPHONY_LOGE("CellularCallStub::OnSetCallWaitingInner data size error");
551         return TELEPHONY_ERR_FAIL;
552     }
553     int32_t slotId = data.ReadInt32();
554     bool enable = data.ReadBool();
555 
556     reply.WriteInt32(SetCallWaiting(slotId, enable));
557     return TELEPHONY_SUCCESS;
558 }
559 
OnGetCallWaitingInner(MessageParcel & data,MessageParcel & reply)560 int32_t CellularCallStub::OnGetCallWaitingInner(MessageParcel &data, MessageParcel &reply)
561 {
562     TELEPHONY_LOGI("CellularCallStub::OnGetCallWaitingInner entry");
563     int32_t size = data.ReadInt32();
564     size = ((size > MAX_SIZE) ? 0 : size);
565     if (size <= 0) {
566         TELEPHONY_LOGE("CellularCallStub::OnGetCallWaitingInner data size error");
567         return TELEPHONY_ERR_FAIL;
568     }
569     int32_t slotId = data.ReadInt32();
570     TELEPHONY_LOGI("CellularCallStub::OnGetCallWaitingInner data.ReadInt32()");
571     reply.WriteInt32(GetCallWaiting(slotId));
572     return TELEPHONY_SUCCESS;
573 }
574 
OnSetCallRestrictionInner(MessageParcel & data,MessageParcel & reply)575 int32_t CellularCallStub::OnSetCallRestrictionInner(MessageParcel &data, MessageParcel &reply)
576 {
577     TELEPHONY_LOGI("CellularCallStub::OnSetCallRestrictionInner entry");
578     int32_t size = data.ReadInt32();
579     size = ((size > MAX_SIZE) ? 0 : size);
580     if (size <= 0) {
581         TELEPHONY_LOGE("CellularCallStub::OnSetCallRestrictionInner data size error");
582         return TELEPHONY_ERR_FAIL;
583     }
584     int32_t slotId = data.ReadInt32();
585     auto pCRInfo = (CallRestrictionInfo *)data.ReadRawData(sizeof(CallRestrictionInfo));
586     if (pCRInfo == nullptr) {
587         TELEPHONY_LOGE("OnSetCallRestrictionInner return, pCRInfo is nullptr.");
588         return TELEPHONY_ERR_ARGUMENT_INVALID;
589     }
590 
591     reply.WriteInt32(SetCallRestriction(slotId, *pCRInfo));
592     return TELEPHONY_SUCCESS;
593 }
594 
OnGetCallRestrictionInner(MessageParcel & data,MessageParcel & reply)595 int32_t CellularCallStub::OnGetCallRestrictionInner(MessageParcel &data, MessageParcel &reply)
596 {
597     TELEPHONY_LOGI("CellularCallStub::OnGetCallRestrictionInner entry");
598     int32_t size = data.ReadInt32();
599     size = ((size > MAX_SIZE) ? 0 : size);
600     if (size <= 0) {
601         TELEPHONY_LOGE("CellularCallStub::OnGetCallRestrictionInner data size error");
602         return TELEPHONY_ERR_FAIL;
603     }
604     int32_t slotId = data.ReadInt32();
605     auto facType = static_cast<CallRestrictionType>(data.ReadInt32());
606 
607     reply.WriteInt32(GetCallRestriction(slotId, facType));
608     return TELEPHONY_SUCCESS;
609 }
610 
OnSetDomainPreferenceModeInner(MessageParcel & data,MessageParcel & reply)611 int32_t CellularCallStub::OnSetDomainPreferenceModeInner(MessageParcel &data, MessageParcel &reply)
612 {
613     TELEPHONY_LOGI("CellularCallStub::OnSetDomainPreferenceModeInner entry");
614     int32_t size = data.ReadInt32();
615     size = ((size > MAX_SIZE) ? 0 : size);
616     if (size <= 0) {
617         TELEPHONY_LOGE("CellularCallStub::OnSetDomainPreferenceModeInner data size error");
618         return TELEPHONY_ERR_FAIL;
619     }
620     int32_t slotId = data.ReadInt32();
621     int32_t mode = data.ReadInt32();
622 
623     reply.WriteInt32(SetDomainPreferenceMode(slotId, mode));
624     return TELEPHONY_SUCCESS;
625 }
626 
OnGetDomainPreferenceModeInner(MessageParcel & data,MessageParcel & reply)627 int32_t CellularCallStub::OnGetDomainPreferenceModeInner(MessageParcel &data, MessageParcel &reply)
628 {
629     TELEPHONY_LOGI("CellularCallStub::OnGetDomainPreferenceModeInner entry");
630     int32_t size = data.ReadInt32();
631     size = ((size > MAX_SIZE) ? 0 : size);
632     if (size <= 0) {
633         TELEPHONY_LOGE("CellularCallStub::OnGetDomainPreferenceModeInner data size error");
634         return TELEPHONY_ERR_FAIL;
635     }
636     int32_t slotId = data.ReadInt32();
637 
638     reply.WriteInt32(GetDomainPreferenceMode(slotId));
639     return TELEPHONY_SUCCESS;
640 }
641 
OnSetLteImsSwitchStatusInner(MessageParcel & data,MessageParcel & reply)642 int32_t CellularCallStub::OnSetLteImsSwitchStatusInner(MessageParcel &data, MessageParcel &reply)
643 {
644     TELEPHONY_LOGI("CellularCallStub::OnSetLteImsSwitchStatusInner entry");
645     int32_t size = data.ReadInt32();
646     size = ((size > MAX_SIZE) ? 0 : size);
647     if (size <= 0) {
648         TELEPHONY_LOGE("CellularCallStub::OnSetLteImsSwitchStatusInner data size error");
649         return TELEPHONY_ERR_FAIL;
650     }
651     int32_t slotId = data.ReadInt32();
652     bool active = data.ReadBool();
653 
654     reply.WriteInt32(SetLteImsSwitchStatus(slotId, active));
655     return TELEPHONY_SUCCESS;
656 }
657 
OnGetLteImsSwitchStatusInner(MessageParcel & data,MessageParcel & reply)658 int32_t CellularCallStub::OnGetLteImsSwitchStatusInner(MessageParcel &data, MessageParcel &reply)
659 {
660     TELEPHONY_LOGI("CellularCallStub::OnGetLteImsSwitchStatusInner entry");
661     int32_t size = data.ReadInt32();
662     size = ((size > MAX_SIZE) ? 0 : size);
663     if (size <= 0) {
664         TELEPHONY_LOGE("CellularCallStub::OnGetLteImsSwitchStatusInner data size error");
665         return TELEPHONY_ERR_FAIL;
666     }
667     int32_t slotId = data.ReadInt32();
668 
669     reply.WriteInt32(GetLteImsSwitchStatus(slotId));
670     return TELEPHONY_SUCCESS;
671 }
672 
OnSetImsConfigStringInner(MessageParcel & data,MessageParcel & reply)673 int32_t CellularCallStub::OnSetImsConfigStringInner(MessageParcel &data, MessageParcel &reply)
674 {
675     TELEPHONY_LOGI("CellularCallStub::OnSetImsConfigStringInner entry");
676     int32_t size = data.ReadInt32();
677     size = ((size > MAX_SIZE) ? 0 : size);
678     if (size <= 0) {
679         TELEPHONY_LOGE("CellularCallStub::OnSetImsConfigStringInner data size error");
680         return TELEPHONY_ERR_FAIL;
681     }
682     int32_t slotId = data.ReadInt32();
683     auto item = static_cast<ImsConfigItem>(data.ReadInt32());
684     std::string value = data.ReadString();
685 
686     reply.WriteInt32(SetImsConfig(slotId, item, value));
687     return TELEPHONY_SUCCESS;
688 }
689 
OnSetImsConfigIntInner(MessageParcel & data,MessageParcel & reply)690 int32_t CellularCallStub::OnSetImsConfigIntInner(MessageParcel &data, MessageParcel &reply)
691 {
692     TELEPHONY_LOGI("CellularCallStub::OnSetImsConfigIntInner entry");
693     int32_t size = data.ReadInt32();
694     size = ((size > MAX_SIZE) ? 0 : size);
695     if (size <= 0) {
696         TELEPHONY_LOGE("CellularCallStub::OnSetImsConfigIntInner data size error");
697         return TELEPHONY_ERR_FAIL;
698     }
699     int32_t slotId = data.ReadInt32();
700     auto item = static_cast<ImsConfigItem>(data.ReadInt32());
701     int32_t value = data.ReadInt32();
702 
703     reply.WriteInt32(SetImsConfig(slotId, item, value));
704     return TELEPHONY_SUCCESS;
705 }
706 
OnGetImsConfigInner(MessageParcel & data,MessageParcel & reply)707 int32_t CellularCallStub::OnGetImsConfigInner(MessageParcel &data, MessageParcel &reply)
708 {
709     TELEPHONY_LOGI("CellularCallStub::OnGetImsConfigInner entry");
710     int32_t size = data.ReadInt32();
711     size = ((size > MAX_SIZE) ? 0 : size);
712     if (size <= 0) {
713         TELEPHONY_LOGE("CellularCallStub::OnGetImsConfigInner data size error");
714         return TELEPHONY_ERR_FAIL;
715     }
716     int32_t slotId = data.ReadInt32();
717     auto item = static_cast<ImsConfigItem>(data.ReadInt32());
718 
719     reply.WriteInt32(GetImsConfig(slotId, item));
720     return TELEPHONY_SUCCESS;
721 }
722 
OnSetImsFeatureValueInner(MessageParcel & data,MessageParcel & reply)723 int32_t CellularCallStub::OnSetImsFeatureValueInner(MessageParcel &data, MessageParcel &reply)
724 {
725     TELEPHONY_LOGI("CellularCallStub::OnSetImsFeatureValueInner entry");
726     int32_t size = data.ReadInt32();
727     size = ((size > MAX_SIZE) ? 0 : size);
728     if (size <= 0) {
729         TELEPHONY_LOGE("CellularCallStub::OnSetImsFeatureValueInner data size error");
730         return TELEPHONY_ERR_FAIL;
731     }
732     int32_t slotId = data.ReadInt32();
733     auto type = static_cast<FeatureType>(data.ReadInt32());
734     int32_t value = data.ReadInt32();
735 
736     reply.WriteInt32(SetImsFeatureValue(slotId, type, value));
737     return TELEPHONY_SUCCESS;
738 }
739 
OnGetImsFeatureValueInner(MessageParcel & data,MessageParcel & reply)740 int32_t CellularCallStub::OnGetImsFeatureValueInner(MessageParcel &data, MessageParcel &reply)
741 {
742     TELEPHONY_LOGI("CellularCallStub::OnGetImsFeatureValueInner entry");
743     int32_t size = data.ReadInt32();
744     size = ((size > MAX_SIZE) ? 0 : size);
745     if (size <= 0) {
746         TELEPHONY_LOGE("CellularCallStub::OnGetImsFeatureValueInner data size error");
747         return TELEPHONY_ERR_FAIL;
748     }
749     int32_t slotId = data.ReadInt32();
750     auto type = static_cast<FeatureType>(data.ReadInt32());
751 
752     reply.WriteInt32(GetImsFeatureValue(slotId, type));
753     return TELEPHONY_SUCCESS;
754 }
755 
OnSetImsSwitchEnhanceModeInner(MessageParcel & data,MessageParcel & reply)756 int32_t CellularCallStub::OnSetImsSwitchEnhanceModeInner(MessageParcel &data, MessageParcel &reply)
757 {
758     TELEPHONY_LOGI("CellularCallStub::OnSetImsSwitchEnhanceModeInner entry");
759     int32_t size = data.ReadInt32();
760     size = ((size > MAX_SIZE) ? 0 : size);
761     if (size <= 0) {
762         TELEPHONY_LOGE("CellularCallStub::OnSetImsSwitchEnhanceModeInner data size error");
763         return TELEPHONY_ERR_FAIL;
764     }
765     int32_t slotId = data.ReadInt32();
766     bool value = data.ReadBool();
767 
768     reply.WriteInt32(SetImsSwitchEnhanceMode(slotId, value));
769     return TELEPHONY_SUCCESS;
770 }
771 
OnGetImsSwitchEnhanceModeInner(MessageParcel & data,MessageParcel & reply)772 int32_t CellularCallStub::OnGetImsSwitchEnhanceModeInner(MessageParcel &data, MessageParcel &reply)
773 {
774     TELEPHONY_LOGI("CellularCallStub::OnGetImsSwitchEnhanceModeInner entry");
775     int32_t size = data.ReadInt32();
776     size = ((size > MAX_SIZE) ? 0 : size);
777     if (size <= 0) {
778         TELEPHONY_LOGE("CellularCallStub::OnGetImsSwitchEnhanceModeInner data size error");
779         return TELEPHONY_ERR_FAIL;
780     }
781     int32_t slotId = data.ReadInt32();
782 
783     reply.WriteInt32(GetImsSwitchEnhanceMode(slotId));
784     return TELEPHONY_SUCCESS;
785 }
786 
OnCtrlCameraInner(MessageParcel & data,MessageParcel & reply)787 int32_t CellularCallStub::OnCtrlCameraInner(MessageParcel &data, MessageParcel &reply)
788 {
789     TELEPHONY_LOGI("CellularCallStub::OnCtrlCameraInner entry");
790     int32_t size = data.ReadInt32();
791     size = ((size > MAX_SIZE) ? 0 : size);
792     if (size <= 0) {
793         TELEPHONY_LOGE("CellularCallStub::OnCtrlCameraInner data size error");
794         return TELEPHONY_ERR_FAIL;
795     }
796     std::u16string cameraId = data.ReadString16();
797     int32_t callingUid = data.ReadInt32();
798     int32_t callingPid = data.ReadInt32();
799 
800     reply.WriteInt32(CtrlCamera(cameraId, callingUid, callingPid));
801     return TELEPHONY_SUCCESS;
802 }
803 
OnSetPreviewWindowInner(MessageParcel & data,MessageParcel & reply)804 int32_t CellularCallStub::OnSetPreviewWindowInner(MessageParcel &data, MessageParcel &reply)
805 {
806     TELEPHONY_LOGI("CellularCallStub::OnSetPreviewWindowInner entry");
807     int32_t size = data.ReadInt32();
808     size = ((size > MAX_SIZE) ? 0 : size);
809     if (size <= 0) {
810         TELEPHONY_LOGE("CellularCallStub::OnSetPreviewWindowInner data size error");
811         return TELEPHONY_ERR_FAIL;
812     }
813     int32_t x = data.ReadInt32();
814     int32_t y = data.ReadInt32();
815     int32_t z = data.ReadInt32();
816     int32_t width = data.ReadInt32();
817     int32_t height = data.ReadInt32();
818 
819     reply.WriteInt32(SetPreviewWindow(x, y, z, width, height));
820     return TELEPHONY_SUCCESS;
821 }
822 
OnSetDisplayWindowInner(MessageParcel & data,MessageParcel & reply)823 int32_t CellularCallStub::OnSetDisplayWindowInner(MessageParcel &data, MessageParcel &reply)
824 {
825     TELEPHONY_LOGI("CellularCallStub::OnSetDisplayWindowInner entry");
826     int32_t size = data.ReadInt32();
827     size = ((size > MAX_SIZE) ? 0 : size);
828     if (size <= 0) {
829         TELEPHONY_LOGE("CellularCallStub::OnSetDisplayWindowInner data size error");
830         return TELEPHONY_ERR_FAIL;
831     }
832     int32_t x = data.ReadInt32();
833     int32_t y = data.ReadInt32();
834     int32_t z = data.ReadInt32();
835     int32_t width = data.ReadInt32();
836     int32_t height = data.ReadInt32();
837 
838     reply.WriteInt32(SetDisplayWindow(x, y, z, width, height));
839     return TELEPHONY_SUCCESS;
840 }
841 
OnSetCameraZoomInner(MessageParcel & data,MessageParcel & reply)842 int32_t CellularCallStub::OnSetCameraZoomInner(MessageParcel &data, MessageParcel &reply)
843 {
844     TELEPHONY_LOGI("CellularCallStub::OnSetCameraZoomInner entry");
845     int32_t size = data.ReadInt32();
846     size = ((size > MAX_SIZE) ? 0 : size);
847     if (size <= 0) {
848         TELEPHONY_LOGE("CellularCallStub::OnSetCameraZoomInner data size error");
849         return TELEPHONY_ERR_FAIL;
850     }
851     float zoomRatio = data.ReadFloat();
852 
853     reply.WriteInt32(SetCameraZoom(zoomRatio));
854     return TELEPHONY_SUCCESS;
855 }
856 
OnSetPauseImageInner(MessageParcel & data,MessageParcel & reply)857 int32_t CellularCallStub::OnSetPauseImageInner(MessageParcel &data, MessageParcel &reply)
858 {
859     TELEPHONY_LOGI("CellularCallStub::OnSetPauseImageInner entry");
860     int32_t size = data.ReadInt32();
861     size = ((size > MAX_SIZE) ? 0 : size);
862     if (size <= 0) {
863         TELEPHONY_LOGE("CellularCallStub::OnSetPauseImageInner data size error");
864         return TELEPHONY_ERR_FAIL;
865     }
866     std::u16string imagePath = data.ReadString16();
867 
868     reply.WriteInt32(SetPauseImage(imagePath));
869     return TELEPHONY_SUCCESS;
870 }
871 
OnSetDeviceDirectionInner(MessageParcel & data,MessageParcel & reply)872 int32_t CellularCallStub::OnSetDeviceDirectionInner(MessageParcel &data, MessageParcel &reply)
873 {
874     TELEPHONY_LOGI("CellularCallStub::OnSetDeviceDirectionInner entry");
875     int32_t size = data.ReadInt32();
876     size = ((size > MAX_SIZE) ? 0 : size);
877     if (size <= 0) {
878         TELEPHONY_LOGE("CellularCallStub::OnSetDeviceDirectionInner data size error");
879         return TELEPHONY_ERR_FAIL;
880     }
881     int32_t rotation = data.ReadInt32();
882 
883     reply.WriteInt32(SetDeviceDirection(rotation));
884     return TELEPHONY_SUCCESS;
885 }
886 
OnSetMuteInner(MessageParcel & data,MessageParcel & reply)887 int32_t CellularCallStub::OnSetMuteInner(MessageParcel &data, MessageParcel &reply)
888 {
889     TELEPHONY_LOGI("CellularCallStub::OnSetMuteInner entry");
890     int32_t size = data.ReadInt32();
891     size = ((size > MAX_SIZE) ? 0 : size);
892     if (size <= 0) {
893         TELEPHONY_LOGE("CellularCallStub::OnSetMuteInner data size error");
894         return TELEPHONY_ERR_FAIL;
895     }
896     int32_t slotId = data.ReadInt32();
897     int32_t mute = data.ReadInt32();
898 
899     reply.WriteInt32(SetMute(slotId, mute));
900     return TELEPHONY_SUCCESS;
901 }
902 
OnGetMuteInner(MessageParcel & data,MessageParcel & reply)903 int32_t CellularCallStub::OnGetMuteInner(MessageParcel &data, MessageParcel &reply)
904 {
905     TELEPHONY_LOGI("CellularCallStub::OnGetMuteInner entry");
906     int32_t size = data.ReadInt32();
907     size = ((size > MAX_SIZE) ? 0 : size);
908     if (size <= 0) {
909         TELEPHONY_LOGE("CellularCallStub::OnGetMuteInner data size error");
910         return TELEPHONY_ERR_FAIL;
911     }
912     int32_t slotId = data.ReadInt32();
913 
914     reply.WriteInt32(GetMute(slotId));
915     return TELEPHONY_SUCCESS;
916 }
917 } // namespace Telephony
918 } // namespace OHOS
919