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