• 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 #ifndef CELLULAR_CALL_INTERFACE_H
17 #define CELLULAR_CALL_INTERFACE_H
18 
19 #include "i_call_status_callback.h"
20 
21 namespace OHOS {
22 namespace Telephony {
23 class CellularCallInterface : public IRemoteBroker {
24 public:
25     // operation type
26     enum class OperationType : uint32_t {
27         /****************** basic ******************/
28         DIAL = 1,
29         HANG_UP,
30         REJECT,
31         ANSWER,
32         HOLD_CALL,
33         UN_HOLD_CALL,
34         SWITCH_CALL,
35         EMERGENCY_CALL,
36         COMBINE_CONFERENCE,
37         SEPARATE_CONFERENCE,
38         INVITE_TO_CONFERENCE,
39         KICK_OUT_CONFERENCE,
40         HANG_UP_ALL_CONNECTION,
41         UPDATE_CALL_MEDIA_MODE,
42         REGISTER_CALLBACK,
43         UNREGISTER_CALLBACK,
44 
45         /****************** dtmf、rtt ******************/
46         START_DTMF = 100,
47         STOP_DTMF,
48         SEND_DTMF,
49         START_RTT,
50         STOP_RTT,
51 
52         /****************** supplement ******************/
53         SET_CALL_TRANSFER = 200,
54         GET_CALL_TRANSFER,
55         SET_CALL_WAITING,
56         GET_CALL_WAITING,
57         SET_CALL_RESTRICTION,
58         GET_CALL_RESTRICTION,
59 
60         /****************** config ******************/
61         SET_DOMAIN_PREFERENCE_MODE = 300,
62         GET_DOMAIN_PREFERENCE_MODE,
63         SET_LTE_IMS_SWITCH_STATUS,
64         GET_LTE_IMS_SWITCH_STATUS,
65         SET_IMS_CONFIG_STRING,
66         SET_IMS_CONFIG_INT,
67         GET_IMS_CONFIG,
68         SET_IMS_FEATURE,
69         GET_IMS_FEATURE,
70         SET_IMS_SWITCH_ENHANCE_MODE,
71         GET_IMS_SWITCH_ENHANCE_MODE,
72         SET_MUTE,
73         GET_MUTE,
74 
75         /****************** video settings ******************/
76         CTRL_CAMERA = 400,
77         SET_PREVIEW_WINDOW,
78         SET_DISPLAY_WINDOW,
79         SET_CAMERA_ZOOM,
80         SET_PAUSE_IMAGE,
81         SET_DEVICE_DIRECTION,
82     };
83 
84     /**
85      * Call management dial interface
86      *
87      * @param CellularCallInfo, dial param.
88      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
89      */
90     virtual int32_t Dial(const CellularCallInfo &callInfo) = 0;
91 
92     /**
93      * HangUp.
94      *
95      * @param CellularCallInfo, HangUp param.
96      * @param CallSupplementType
97      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
98      */
99     virtual int32_t HangUp(const CellularCallInfo &callInfo, CallSupplementType type) = 0;
100 
101     /**
102      * Answer.
103      *
104      * @param CellularCallInfo, Answer param.
105      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
106      */
107     virtual int32_t Answer(const CellularCallInfo &callInfo) = 0;
108 
109     /**
110      * Reject.
111      *
112      * @param CellularCallInfo, Reject param.
113      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
114      */
115     virtual int32_t Reject(const CellularCallInfo &callInfo) = 0;
116 
117     /**
118      * HoldCall.
119      *
120      * @param CellularCallInfo, Hold param.
121      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
122      */
123     virtual int32_t HoldCall(const CellularCallInfo &callInfo) = 0;
124 
125     /**
126      * UnHoldCall.
127      *
128      * @param CellularCallInfo, UnHold param.
129      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
130      */
131     virtual int32_t UnHoldCall(const CellularCallInfo &callInfo) = 0;
132 
133     /**
134      * SwitchCall.
135      *
136      * @param CellularCallInfo, SwitchCall param.
137      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
138      */
139     virtual int32_t SwitchCall(const CellularCallInfo &callInfo) = 0;
140 
141     /**
142      * IsEmergencyPhoneNumber.
143      *
144      * @param slotId.
145      * @param phone number.
146      * @param error Code.
147      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
148      */
149     virtual int32_t IsEmergencyPhoneNumber(int32_t slotId, const std::string &phoneNum, int32_t &errorCode) = 0;
150 
151     /**
152      * Merge into multiple calls
153      *
154      * @param CellularCallInfo, SwitchCall param.
155      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
156      */
157     virtual int32_t CombineConference(const CellularCallInfo &callInfo) = 0;
158 
159     /**
160      * Separate Conference.
161      *
162      * @param CellularCallInfo, SwitchCall param.
163      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
164      */
165     virtual int32_t SeparateConference(const CellularCallInfo &callInfo) = 0;
166 
167     /**
168      * InviteToConference interface
169      *
170      * @param numberList
171      * @param slotId
172      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
173      */
174     virtual int32_t InviteToConference(int32_t slotId, const std::vector<std::string> &numberList) = 0;
175 
176     /**
177      * KickOutFromConference interface
178      *
179      * @param numberList
180      * @param slotId
181      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
182      */
183     virtual int32_t KickOutFromConference(int32_t slotId, const std::vector<std::string> &numberList) = 0;
184 
185     /**
186      * Hang Up All Connection.
187      *
188      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
189      */
190     virtual int32_t HangUpAllConnection() = 0;
191 
192     /**
193      * IMS Update Call Media Mode
194      *
195      * @param CellularCallInfo
196      * @param ImsCallMode
197      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
198      */
199     virtual int32_t UpdateImsCallMode(const CellularCallInfo &callInfo, ImsCallMode mode) = 0;
200 
201     /**
202      * Start Dtmf.
203      *
204      * @param Dtmf Code.
205      * @param CellularCallInfo.
206      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
207      */
208     virtual int32_t StartDtmf(char cDtmfCode, const CellularCallInfo &callInfo) = 0;
209 
210     /**
211      * Stop Dtmf.
212      *
213      * @param CellularCallInfo.
214      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
215      */
216     virtual int32_t StopDtmf(const CellularCallInfo &callInfo) = 0;
217 
218     /**
219      * Send Dtmf.
220      *
221      * @param Dtmf Code.
222      * @param CellularCallInfo.
223      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
224      */
225     virtual int32_t SendDtmf(char cDtmfCode, const CellularCallInfo &callInfo) = 0;
226 
227     /**
228      * Start Rtt interface
229      *
230      * @param msg
231      * @param slotId
232      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
233      */
234     virtual int32_t StartRtt(int32_t slotId, const std::string &msg) = 0;
235 
236     /**
237      * Stop Rtt interface
238      *
239      * @param slotId
240      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
241      */
242     virtual int32_t StopRtt(int32_t slotId) = 0;
243 
244     /**
245      * Set Call Transfer
246      *
247      * @param CallTransferInfo
248      * @param slotId
249      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
250      */
251     virtual int32_t SetCallTransferInfo(int32_t slotId, const CallTransferInfo &ctInfo) = 0;
252 
253     /**
254      * Get Call Transfer
255      *
256      * @param CallTransferType
257      * @param slotId
258      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
259      */
260     virtual int32_t GetCallTransferInfo(int32_t slotId, CallTransferType type) = 0;
261 
262     /**
263      * Set Call Waiting
264      *
265      * @param activate
266      * @param slotId
267      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
268      */
269     virtual int32_t SetCallWaiting(int32_t slotId, bool activate) = 0;
270 
271     /**
272      * Get Call Waiting
273      *
274      * @param slotId
275      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
276      */
277     virtual int32_t GetCallWaiting(int32_t slotId) = 0;
278 
279     /**
280      * Set Call Restriction
281      *
282      * @param CallRestrictionInfo
283      * @param slotId
284      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
285      */
286     virtual int32_t SetCallRestriction(int32_t slotId, const CallRestrictionInfo &cRInfo) = 0;
287 
288     /**
289      * Get Call Restriction
290      *
291      * @param CallRestrictionType
292      * @param slotId
293      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
294      */
295     virtual int32_t GetCallRestriction(int32_t slotId, CallRestrictionType facType) = 0;
296 
297     /**
298      * Register CallBack
299      *
300      * @param sptr<ICallStatusCallback>
301      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
302      */
303     virtual int32_t RegisterCallManagerCallBack(const sptr<ICallStatusCallback> &callback) = 0;
304 
305     /**
306      * UnRegister CallBack
307      *
308      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
309      */
310     virtual int32_t UnRegisterCallManagerCallBack() = 0;
311 
312     /**
313      * Set Domain Preference Mode
314      *
315      * @param mode
316      * @param slotId
317      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
318      */
319     virtual int32_t SetDomainPreferenceMode(int32_t slotId, int32_t mode) = 0;
320 
321     /**
322      * Get Domain Preference Mode
323      *
324      * @param slotId
325      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
326      */
327     virtual int32_t GetDomainPreferenceMode(int32_t slotId) = 0;
328 
329     /**
330      * Set Lte Ims Switch Status
331      *
332      * @param active
333      * @param slotId
334      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
335      */
336     virtual int32_t SetLteImsSwitchStatus(int32_t slotId, bool active) = 0;
337 
338     /**
339      * Get Lte Ims Switch Status
340      *
341      * @param slotId
342      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
343      */
344     virtual int32_t GetLteImsSwitchStatus(int32_t slotId) = 0;
345 
346     /**
347      * Set Ims Config
348      *
349      * @param ImsConfigItem
350      * @param value
351      * @param slotId
352      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
353      */
354     virtual int32_t SetImsConfig(int32_t slotId, ImsConfigItem item, const std::string &value) = 0;
355 
356     /**
357      * Set Ims Config
358      *
359      * @param ImsConfigItem
360      * @param value
361      * @param slotId
362      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
363      */
364     virtual int32_t SetImsConfig(int32_t slotId, ImsConfigItem item, int32_t value) = 0;
365 
366     /**
367      * Get Ims Config
368      *
369      * @param ImsConfigItem
370      * @param slotId
371      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
372      */
373     virtual int32_t GetImsConfig(int32_t slotId, ImsConfigItem item) = 0;
374 
375     /**
376      * Set Ims Feature Value
377      *
378      * @param FeatureType
379      * @param value
380      * @param slotId
381      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
382      */
383     virtual int32_t SetImsFeatureValue(int32_t slotId, FeatureType type, int32_t value) = 0;
384 
385     /**
386      * Get Ims Feature Value
387      *
388      * @param FeatureType
389      * @param slotId
390      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
391      */
392     virtual int32_t GetImsFeatureValue(int32_t slotId, FeatureType type) = 0;
393 
394     /**
395      * Set Ims Switch Enhance Mode
396      *
397      * @param value
398      * @param slotId
399      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
400      */
401     virtual int32_t SetImsSwitchEnhanceMode(int32_t slotId, bool value) = 0;
402 
403     /**
404      * Get Ims Switch Enhance Mode
405      * @param slotId
406      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
407      */
408     virtual int32_t GetImsSwitchEnhanceMode(int32_t slotId) = 0;
409 
410     /**
411      * CtrlCamera
412      *
413      * @param cameraId
414      * @param callingUid
415      * @param callingPid
416      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
417      */
418     virtual int32_t CtrlCamera(const std::u16string &cameraId, int32_t callingUid, int32_t callingPid) = 0;
419 
420     /**
421      * SetPreviewWindow
422      *
423      * @param x
424      * @param y
425      * @param z
426      * @param width
427      * @param height
428      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
429      */
430     virtual int32_t SetPreviewWindow(int32_t x, int32_t y, int32_t z, int32_t width, int32_t height) = 0;
431 
432     /**
433      * SetDisplayWindow
434      *
435      * @param x
436      * @param y
437      * @param z
438      * @param width
439      * @param height
440      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
441      */
442     virtual int32_t SetDisplayWindow(int32_t x, int32_t y, int32_t z, int32_t width, int32_t height) = 0;
443 
444     /**
445      * SetCameraZoom
446      *
447      * @param zoomRatio
448      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
449      */
450     virtual int32_t SetCameraZoom(float zoomRatio) = 0;
451 
452     /**
453      * SetPauseImage
454      *
455      * @param path
456      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
457      */
458     virtual int32_t SetPauseImage(const std::u16string &path) = 0;
459 
460     /**
461      * SetDeviceDirection
462      *
463      * @param rotation
464      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
465      */
466     virtual int32_t SetDeviceDirection(int32_t rotation) = 0;
467 
468     /**
469      * SetMute
470      *
471      * @param mute
472      * @param slotId
473      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
474      */
475     virtual int32_t SetMute(int32_t slotId, int32_t mute) = 0;
476 
477     /**
478      * GetMute
479      *
480      * @param slotId
481      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
482      */
483     virtual int32_t GetMute(int32_t slotId) = 0;
484 
485 public:
486     DECLARE_INTERFACE_DESCRIPTOR(u"OHOS.Telephony.CellularCallInterface");
487 };
488 } // namespace Telephony
489 } // namespace OHOS
490 #endif // CELLULAR_CALL_INTERFACE_H
491