• 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 TELEPHONY_IMS_INTERFACE_H
17 #define TELEPHONY_IMS_INTERFACE_H
18 
19 #include "iremote_broker.h"
20 #include "ims_types.h"
21 #include "ims_callback.h"
22 #include "cellular_call_data_struct.h"
23 #include "call_manager_inner_type.h"
24 
25 namespace OHOS {
26 namespace Telephony {
27 class ImsInterface : public IRemoteBroker {
28 public:
29     enum {
30         /****************** basic ******************/
31         IMS_DIAL = 1,
32         IMS_HANG_UP,
33         IMS_REJECT,
34         IMS_ANSWER,
35         IMS_HOLD,
36         IMS_UN_HOLD,
37         IMS_SWITCH,
38         IMS_COMBINE_CONFERENCE,
39         IMS_INVITE_TO_CONFERENCE,
40         IMS_KICK_OUT_CONFERENCE,
41         IMS_UPDATE_CALL_MEDIA_MODE,
42         IMS_EMERGENCY_CALL,
43         IMS_GET_CALL_DATA,
44         GET_CALL_FAIL_REASON,
45 
46         /****************** dtmf、rtt ******************/
47         IMS_START_DTMF = 100,
48         IMS_SEND_DTMF,
49         IMS_STOP_DTMF,
50         IMS_START_RTT,
51         IMS_STOP_RTT,
52 
53         /****************** ims config ******************/
54         IMS_SET_DOMAIN_PREFERENCE_MODE = 200,
55         IMS_GET_DOMAIN_PREFERENCE_MODE,
56         IMS_SET_LTE_IMS_SWITCH_STATUS,
57         IMS_GET_LTE_IMS_SWITCH_STATUS,
58         IMS_SET_IMS_CONFIG_STRING,
59         IMS_SET_IMS_CONFIG_INT,
60         IMS_GET_IMS_CONFIG,
61         IMS_SET_IMS_FEATURE,
62         IMS_GET_IMS_FEATURE,
63         IMS_SET_IMS_SWITCH_ENHANCE_MODE,
64         IMS_GET_IMS_SWITCH_ENHANCE_MODE,
65         IMS_SET_MUTE,
66         IMS_GET_MUTE,
67         IMS_GET_EMERGENCY_CALL_LIST,
68 
69         /****************** video settings ******************/
70         IMS_CTRL_CAMERA = 300,
71         IMS_SET_PREVIEW_WINDOW,
72         IMS_SET_DISPLAY_WINDOW,
73         IMS_SET_CAMERA_ZOOM,
74         IMS_SET_PAUSE_IMAGE,
75         IMS_SET_DEVICE_DIRECTION,
76 
77         /****************** Supplement ******************/
78         IMS_INQUIRE_CLIP = 400,
79         IMS_SET_CLIR,
80         IMS_INQUIRE_CLIR,
81         IMS_SET_CALL_TRANSFER,
82         IMS_GET_CALL_TRANSFER,
83         IMS_SET_CALL_RESTRICTION,
84         IMS_GET_CALL_RESTRICTION,
85         IMS_SET_CALL_WAITING,
86         IMS_GET_CALL_WAITING,
87 
88         /****************** callback ******************/
89         IMS_REGISTER_CALLBACK = 500,
90         IMS_IS_CALLBACK_EXISTS,
91     };
92 
93     /**
94      * IMS dial interface
95      *
96      * @param ImsCallInfo
97      * @param CLIRMode
98      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
99      */
100     virtual int32_t Dial(const ImsCallInfo &callInfo, CLIRMode mode) = 0;
101 
102     /**
103      * IMS HangUp interface
104      *
105      * @param ImsCallInfo
106      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
107      */
108     virtual int32_t HangUp(const ImsCallInfo &callInfo) = 0;
109 
110     /**
111      * IMS Reject interface
112      *
113      * @param ImsCallInfo
114      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
115      */
116     virtual int32_t Reject(const ImsCallInfo &callInfo) = 0;
117 
118     /**
119      * IMS Answer interface
120      *
121      * @param ImsCallInfo
122      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
123      */
124     virtual int32_t Answer(const ImsCallInfo &callInfo) = 0;
125 
126     /**
127      * IMS HoldCall interface
128      *
129      * @param slotId
130      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
131      */
132     virtual int32_t HoldCall(int32_t slotId) = 0;
133 
134     /**
135      * IMS UnHoldCall interface
136      *
137      * @param slotId
138      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
139      */
140     virtual int32_t UnHoldCall(int32_t slotId) = 0;
141 
142     /**
143      * IMS SwitchCall interface
144      *
145      * @param slotId
146      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
147      */
148     virtual int32_t SwitchCall(int32_t slotId) = 0;
149 
150     /**
151      * IMS CombineConference interface
152      *
153      * @param slotId
154      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
155      */
156     virtual int32_t CombineConference(int32_t slotId) = 0;
157 
158     /**
159      * IMS InviteToConference interface
160      *
161      * @param slotId
162      * @param numberList
163      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
164      */
165     virtual int32_t InviteToConference(int32_t slotId, const std::vector<std::string> &numberList) = 0;
166 
167     /**
168      * IMS KickOutFromConference interface
169      *
170      * @param slotId
171      * @param numberList
172      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
173      */
174     virtual int32_t KickOutFromConference(int32_t slotId, const std::vector<std::string> &numberList) = 0;
175 
176     /**
177      * IMS UpdateImsCallMode interface
178      *
179      * @param ImsCallInfo
180      * @param ImsCallMode
181      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
182      */
183     virtual int32_t UpdateImsCallMode(const ImsCallInfo &callInfo, ImsCallMode mode) = 0;
184 
185     /**
186      * IMS IsEmergencyPhoneNumber interface
187      *
188      * @param slotId
189      * @param phoneNum
190      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
191      */
192     virtual int32_t IsEmergencyPhoneNumber(int32_t slotId, const std::string &phoneNum) = 0;
193 
194     /**
195      * Get Ims Calls Data Request
196      *
197      * @param slotId
198      * @param lastCallsDataFlag
199      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
200      */
201     virtual int32_t GetImsCallsDataRequest(int32_t slotId, int64_t lastCallsDataFlag) = 0;
202 
203     /**
204      * Get Call Fail Reason
205      *
206      * @param slotId
207      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
208      */
209     virtual int32_t GetCallFailReason(int32_t slotId) = 0;
210 
211     /**
212      * IMS StartDtmf interface
213      *
214      * @param slotId
215      * @param cDTMFCode
216      * @param index
217      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
218      */
219     virtual int32_t StartDtmf(int32_t slotId, char cDtmfCode, int32_t index) = 0;
220 
221     /**
222      * IMS SendDtmf interface
223      *
224      * @param slotId
225      * @param cDtmfCode
226      * @param index
227      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
228      */
229     virtual int32_t SendDtmf(int32_t slotId, char cDtmfCode, int32_t index) = 0;
230 
231     /**
232      * IMS StopDtmf interface
233      *
234      * @param slotId
235      * @param index
236      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
237      */
238     virtual int32_t StopDtmf(int32_t slotId, int32_t index) = 0;
239 
240     /**
241      * IMS StartRtt interface
242      *
243      * @param slotId
244      * @param msg
245      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
246      */
247     virtual int32_t StartRtt(int32_t slotId, const std::string &msg) = 0;
248 
249     /**
250      * IMS StopRtt interface
251      *
252      * @param slotId
253      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
254      */
255     virtual int32_t StopRtt(int32_t slotId) = 0;
256 
257     /**
258      * IMS SetDomainPreferenceMode interface
259      *
260      * @param slotId
261      * @param mode
262      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
263      */
264     virtual int32_t SetDomainPreferenceMode(int32_t slotId, int32_t mode) = 0;
265 
266     /**
267      * IMS GetDomainPreferenceMode interface
268      *
269      * @param slotId
270      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
271      */
272     virtual int32_t GetDomainPreferenceMode(int32_t slotId) = 0;
273 
274     /**
275      * IMS SetLteImsSwitchStatus interface
276      *
277      * @param slotId
278      * @param active
279      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
280      */
281     virtual int32_t SetLteImsSwitchStatus(int32_t slotId, bool active) = 0;
282 
283     /**
284      * IMS GetLteImsSwitchStatus interface
285      *
286      * @param slotId
287      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
288      */
289     virtual int32_t GetLteImsSwitchStatus(int32_t slotId) = 0;
290 
291     /**
292      * IMS SetImsConfig interface
293      *
294      * @param ImsConfigItem
295      * @param value
296      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
297      */
298     virtual int32_t SetImsConfig(ImsConfigItem item, const std::string &value) = 0;
299 
300     /**
301      * IMS SetImsConfig interface
302      *
303      * @param ImsConfigItem
304      * @param value
305      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
306      */
307     virtual int32_t SetImsConfig(ImsConfigItem item, int32_t value) = 0;
308 
309     /**
310      * IMS GetImsConfig interface
311      *
312      * @param ImsConfigItem
313      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
314      */
315     virtual int32_t GetImsConfig(ImsConfigItem item) = 0;
316 
317     /**
318      * IMS SetImsFeatureValue interface
319      *
320      * @param FeatureType
321      * @param value
322      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
323      */
324     virtual int32_t SetImsFeatureValue(FeatureType type, int32_t value) = 0;
325 
326     /**
327      * IMS GetImsFeatureValue interface
328      *
329      * @param FeatureType
330      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
331      */
332     virtual int32_t GetImsFeatureValue(FeatureType type) = 0;
333 
334     /**
335      * IMS SetImsSwitchEnhanceMode interface
336      *
337      * @param value
338      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
339      */
340     virtual int32_t SetImsSwitchEnhanceMode(bool value) = 0;
341 
342     /**
343      * IMS GetImsSwitchEnhanceMode interface
344      *
345      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
346      */
347     virtual int32_t GetImsSwitchEnhanceMode() = 0;
348 
349     /**
350      * IMS CtrlCamera interface
351      *
352      * @param cameraId
353      * @param callingUid
354      * @param callingPid
355      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
356      */
357     virtual int32_t CtrlCamera(const std::u16string &cameraId, int32_t callingUid, int32_t callingPid) = 0;
358 
359     /**
360      * IMS SetPreviewWindow interface
361      *
362      * @param x
363      * @param y
364      * @param z
365      * @param width
366      * @param height
367      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
368      */
369     virtual int32_t SetPreviewWindow(int32_t x, int32_t y, int32_t z, int32_t width, int32_t height) = 0;
370 
371     /**
372      * IMS SetDisplayWindow interface
373      *
374      * @param x
375      * @param y
376      * @param z
377      * @param width
378      * @param height
379      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
380      */
381     virtual int32_t SetDisplayWindow(int32_t x, int32_t y, int32_t z, int32_t width, int32_t height) = 0;
382 
383     /**
384      * IMS SetCameraZoom interface
385      *
386      * @param zoomRatio
387      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
388      */
389     virtual int32_t SetCameraZoom(float zoomRatio) = 0;
390 
391     /**
392      * IMS SetPauseImage interface
393      *
394      * @param path
395      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
396      */
397     virtual int32_t SetPauseImage(const std::u16string &path) = 0;
398 
399     /**
400      * IMS SetDeviceDirection interface
401      *
402      * @param rotation
403      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
404      */
405     virtual int32_t SetDeviceDirection(int32_t rotation) = 0;
406 
407     /**
408      * IMS SetMute interface
409      *
410      * @param mute
411      * @param slotId
412      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
413      */
414     virtual int32_t SetMute(int32_t slotId, int32_t mute) = 0;
415 
416     /**
417      * IMS GetMute interface
418      *
419      * @param slotId
420      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
421      */
422     virtual int32_t GetMute(int32_t slotId) = 0;
423 
424     /**
425      * IMS GetEmergencyCallList interface
426      *
427      * @param slotId
428      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
429      */
430     virtual int32_t GetEmergencyCallList(int32_t slotId) = 0;
431 
432     /**
433      * IMS InquireClip interface
434      *
435      * @param slotId
436      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
437      */
438     virtual int32_t InquireClip(int32_t slotId) = 0;
439 
440     /**
441      * IMS SetClir interface
442      *
443      * @param slotId
444      * @param action
445      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
446      */
447     virtual int32_t SetClir(int32_t slotId, int32_t action) = 0;
448 
449     /**
450      * IMS InquireClir interface
451      *
452      * @param slotId
453      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
454      */
455     virtual int32_t InquireClir(int32_t slotId) = 0;
456 
457     /**
458      * IMS SetCallTransfer interface
459      *
460      * @param slotId
461      * @param reason
462      * @param mode
463      * @param transferNum
464      * @param classType
465      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
466      */
467     virtual int32_t SetCallTransfer(
468         int32_t slotId, int32_t reason, int32_t mode, const std::string &transferNum, int32_t classType) = 0;
469 
470     /**
471      * IMS GetCallTransfer interface
472      *
473      * @param slotId
474      * @param reason
475      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
476      */
477     virtual int32_t GetCallTransfer(int32_t slotId, int32_t reason) = 0;
478 
479     /**
480      * IMS SetCallRestriction interface
481      *
482      * @param slotId
483      * @param fac
484      * @param mode
485      * @param pw
486      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
487      */
488     virtual int32_t SetCallRestriction(
489         int32_t slotId, const std::string &fac, int32_t mode, const std::string &pw) = 0;
490 
491     /**
492      * IMS GetCallRestriction interface
493      *
494      * @param slotId
495      * @param fac
496      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
497      */
498     virtual int32_t GetCallRestriction(int32_t slotId, const std::string &fac) = 0;
499 
500     /**
501      * IMS SetCallWaiting interface
502      *
503      * @param slotId
504      * @param activate
505      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
506      */
507     virtual int32_t SetCallWaiting(int32_t slotId, bool activate) = 0;
508 
509     /**
510      * IMS GetCallWaiting interface
511      *
512      * @param slotId
513      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
514      */
515     virtual int32_t GetCallWaiting(int32_t slotId) = 0;
516 
517     /**
518      * Register CallBack
519      *
520      * @param sptr<ImsCallback>
521      * @return Returns TELEPHONY_SUCCESS on success, others on failure.
522      */
523     virtual int32_t RegisterCellularCallBack(const sptr<ImsCallback> &callback) = 0;
524 
525     /**
526      * Is CellularCallBack Exists
527      *
528      * @return bool
529      */
530     virtual bool IsCallBackExists() = 0;
531 
532 public:
533     DECLARE_INTERFACE_DESCRIPTOR(u"OHOS.Telephony.ImsInterface");
534 };
535 } // namespace Telephony
536 } // namespace OHOS
537 
538 #endif // TELEPHONY_IMS_INTERFACE_H
539