• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2021-2023 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/**
17 * @file
18 * @kit TelephonyKit
19 */
20
21import type { AsyncCallback, Callback } from './@ohos.base';
22import type Context from './application/BaseContext';
23import type image from './@ohos.multimedia.image';
24
25/**
26 * Provides methods related to call management.
27 *
28 * @namespace call
29 * @syscap SystemCapability.Telephony.CallManager
30 * @since 6
31 */
32/**
33 * Provides methods related to call management.
34 *
35 * @namespace call
36 * @syscap SystemCapability.Telephony.CallManager
37 * @atomicservice
38 * @since 11
39 */
40declare namespace call {
41  /**
42   * Makes a call.
43   *
44   * @permission ohos.permission.PLACE_CALL
45   * @param { string } phoneNumber - Indicates the called number.
46   * @param { DialOptions } options - Indicates additional information carried in the call.
47   * @param { AsyncCallback<boolean> } callback - Indicates the callback for getting the result of the call.
48   * Returns {@code true} if the call request is successful; returns {@code false} otherwise.
49   * Note that the value {@code true} indicates only the successful processing of the request; it does not mean
50   * that the call is or can be connected.
51   * @syscap SystemCapability.Telephony.CallManager
52   * @since 6
53   * @deprecated since 9
54   * @useinstead telephony.call#dialCall
55   */
56  function dial(phoneNumber: string, options: DialOptions, callback: AsyncCallback<boolean>): void;
57
58  /**
59   * Makes a call.
60   *
61   * @permission ohos.permission.PLACE_CALL
62   * @param { string } phoneNumber - Indicates the called number.
63   * @param { DialOptions } options - Indicates additional information carried in the call.
64   * @returns { Promise<boolean> } Returns the result of the call.
65   * Returns {@code true} if the call request is successful; returns {@code false} otherwise.
66   * Note that the value {@code true} indicates only the successful processing of the request; it does not mean
67   * that the call is or can be connected.
68   * @syscap SystemCapability.Telephony.CallManager
69   * @since 6
70   * @deprecated since 9
71   * @useinstead telephony.call#dialCall
72   */
73  function dial(phoneNumber: string, options?: DialOptions): Promise<boolean>;
74
75  /**
76   * Makes a call.
77   *
78   * @permission ohos.permission.PLACE_CALL
79   * @param { string } phoneNumber - Indicates the called number.
80   * @param { AsyncCallback<boolean> } callback - Indicates the callback for getting the result of the call.
81   * Returns {@code true} if the call request is successful; returns {@code false} otherwise.
82   * Note that the value {@code true} indicates only the successful processing of the request; it does not mean
83   * that the call is or can be connected.
84   * @syscap SystemCapability.Telephony.CallManager
85   * @since 6
86   * @deprecated since 9
87   * @useinstead telephony.call#dialCall
88   */
89  function dial(phoneNumber: string, callback: AsyncCallback<boolean>): void;
90
91  /**
92   * Makes a call.
93   *
94   * @permission ohos.permission.PLACE_CALL
95   * @param { string } phoneNumber - Indicates the called number.
96   * @param { DialCallOptions } options - Indicates additional information carried in the call.
97   * @param { AsyncCallback<void> } callback - The callback of dialCall.
98   * @throws { BusinessError } 201 - Permission denied.
99   * @throws { BusinessError } 202 - Non-system applications use system APIs.
100   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
101   * 2. Incorrect parameters types;
102   * @throws { BusinessError } 8300001 - Invalid parameter value.
103   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
104   * @throws { BusinessError } 8300003 - System internal error.
105   * @throws { BusinessError } 8300005 - Airplane mode is on.
106   * @throws { BusinessError } 8300006 - Network not in service.
107   * @throws { BusinessError } 8300999 - Unknown error code.
108   * @syscap SystemCapability.Telephony.CallManager
109   * @systemapi Hide this for inner system use.
110   * @since 9
111   */
112  function dialCall(phoneNumber: string, options: DialCallOptions, callback: AsyncCallback<void>): void;
113
114  /**
115   * Makes a call.
116   *
117   * @permission ohos.permission.PLACE_CALL
118   * @param { string } phoneNumber - Indicates the called number.
119   * @param { DialCallOptions } options - Indicates additional information carried in the call.
120   * @returns { Promise<void> } The promise returned by the dialCall.
121   * @throws { BusinessError } 201 - Permission denied.
122   * @throws { BusinessError } 202 - Non-system applications use system APIs.
123   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
124   * 2. Incorrect parameters types;
125   * @throws { BusinessError } 8300001 - Invalid parameter value.
126   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
127   * @throws { BusinessError } 8300003 - System internal error.
128   * @throws { BusinessError } 8300005 - Airplane mode is on.
129   * @throws { BusinessError } 8300006 - Network not in service.
130   * @throws { BusinessError } 8300999 - Unknown error code.
131   * @syscap SystemCapability.Telephony.CallManager
132   * @systemapi Hide this for inner system use.
133   * @since 9
134   */
135  function dialCall(phoneNumber: string, options?: DialCallOptions): Promise<void>;
136
137  /**
138   * Makes a call.
139   *
140   * @permission ohos.permission.PLACE_CALL
141   * @param { string } phoneNumber - Indicates the called number.
142   * @param { AsyncCallback<void> } callback - The callback of dialCall.
143   * @throws { BusinessError } 201 - Permission denied.
144   * @throws { BusinessError } 202 - Non-system applications use system APIs.
145   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
146   * 2. Incorrect parameters types;
147   * @throws { BusinessError } 8300001 - Invalid parameter value.
148   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
149   * @throws { BusinessError } 8300003 - System internal error.
150   * @throws { BusinessError } 8300005 - Airplane mode is on.
151   * @throws { BusinessError } 8300006 - Network not in service.
152   * @throws { BusinessError } 8300999 - Unknown error code.
153   * @syscap SystemCapability.Telephony.CallManager
154   * @systemapi Hide this for inner system use.
155   * @since 9
156   */
157  function dialCall(phoneNumber: string, callback: AsyncCallback<void>): void;
158
159  /**
160   * Go to the dial screen and the called number is displayed.
161   *
162   * @param { string } phoneNumber - Indicates the called number.
163   * @param { AsyncCallback<void> } callback - The callback of makeCall.
164   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
165   * 2. Incorrect parameters types;
166   * @throws { BusinessError } 8300001 - Invalid parameter value.
167   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
168   * @throws { BusinessError } 8300003 - System internal error.
169   * @throws { BusinessError } 8300999 - Unknown error code.
170   * @syscap SystemCapability.Applications.Contacts
171   * @since 7
172   */
173  /**
174   * Go to the dial screen and the called number is displayed.
175   *
176   * @param { string } phoneNumber - Indicates the called number.
177   * @param { AsyncCallback<void> } callback - The callback of makeCall.
178   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
179   * 2. Incorrect parameters types;
180   * @throws { BusinessError } 8300001 - Invalid parameter value.
181   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
182   * @throws { BusinessError } 8300003 - System internal error.
183   * @throws { BusinessError } 8300999 - Unknown error code.
184   * @syscap SystemCapability.Applications.Contacts
185   * @atomicservice
186   * @since 11
187   */
188  function makeCall(phoneNumber: string, callback: AsyncCallback<void>): void;
189
190  /**
191   * Go to the dial screen and the called number is displayed.
192   *
193   * @param { string } phoneNumber - Indicates the called number.
194   * @returns { Promise<void> } The promise returned by the makeCall.
195   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
196   * 2. Incorrect parameters types;
197   * @throws { BusinessError } 8300001 - Invalid parameter value.
198   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
199   * @throws { BusinessError } 8300003 - System internal error.
200   * @throws { BusinessError } 8300999 - Unknown error code.
201   * @syscap SystemCapability.Applications.Contacts
202   * @since 7
203   */
204  /**
205   * Go to the dial screen and the called number is displayed.
206   *
207   * @param { string } phoneNumber - Indicates the called number.
208   * @returns { Promise<void> } The promise returned by the makeCall.
209   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
210   * 2. Incorrect parameters types;
211   * @throws { BusinessError } 8300001 - Invalid parameter value.
212   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
213   * @throws { BusinessError } 8300003 - System internal error.
214   * @throws { BusinessError } 8300999 - Unknown error code.
215   * @syscap SystemCapability.Applications.Contacts
216   * @atomicservice
217   * @since 11
218   */
219  function makeCall(phoneNumber: string): Promise<void>;
220
221  /**
222   * Go to the dial screen and the called number is displayed.
223   *
224   * @param { Context } context - Indicates the context.
225   * @param { string } phoneNumber - Indicates the called number.
226   * @returns { Promise<void> } The promise returned by the makeCall.
227   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
228   * 2. Incorrect parameters types;
229   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
230   * @throws { BusinessError } 8300003 - System internal error.
231   * @syscap SystemCapability.Applications.Contacts
232   * @atomicservice
233   * @since 12
234   */
235  function makeCall(context: Context, phoneNumber: string): Promise<void>;
236
237  /**
238   * Checks whether a call is ongoing.
239   *
240   * @param { AsyncCallback<boolean> } callback - The callback of hasCall. Returns {@code true} if at least one call is
241   * not in the {@link CallState#CALL_STATE_IDLE} state; returns {@code false} otherwise.
242   * @syscap SystemCapability.Telephony.CallManager
243   * @since 6
244   */
245  function hasCall(callback: AsyncCallback<boolean>): void;
246
247  /**
248   * Checks whether a call is ongoing.
249   *
250   * @returns { Promise<boolean> } Returns {@code true} if at least one call is not
251   * in the {@link CallState#CALL_STATE_IDLE} state; returns {@code false} otherwise.
252   * @syscap SystemCapability.Telephony.CallManager
253   * @since 6
254   */
255  function hasCall(): Promise<boolean>;
256
257  /**
258   * Checks whether a call is ongoing.
259   *
260   * @returns { boolean } Returns {@code true} if at least one call is not in the {@link CallState#CALL_STATE_IDLE}
261   * state; returns {@code false} otherwise.
262   * @syscap SystemCapability.Telephony.CallManager
263   * @since 10
264   */
265  function hasCallSync(): boolean;
266
267  /**
268   * Obtains the call state.
269   *
270   * If an incoming call is ringing or waiting, the system returns {@code CallState#CALL_STATE_RINGING}.
271   * If at least one call is in the active, hold, or dialing state, the system returns
272   * {@code CallState#CALL_STATE_OFFHOOK}.
273   * In other cases, the system returns {@code CallState#CALL_STATE_IDLE}.
274   *
275   * @param { AsyncCallback<CallState> } callback - Indicates the callback for getting the call state.
276   * @syscap SystemCapability.Telephony.CallManager
277   * @since 6
278   */
279  function getCallState(callback: AsyncCallback<CallState>): void;
280
281  /**
282   * Obtains the call state.
283   *
284   * If an incoming call is ringing or waiting, the system returns {@code CallState#CALL_STATE_RINGING}.
285   * If at least one call is in the active, hold, or dialing state, the system returns
286   * {@code CallState#CALL_STATE_OFFHOOK}.
287   * In other cases, the system returns {@code CallState#CALL_STATE_IDLE}.
288   *
289   * @returns { Promise<CallState> } Returns the call state.
290   * @syscap SystemCapability.Telephony.CallManager
291   * @since 6
292   */
293  function getCallState(): Promise<CallState>;
294
295  /**
296   * Obtains the call state.
297   *
298   * If an incoming call is ringing or waiting, the system returns {@code CallState#CALL_STATE_RINGING}.
299   * If at least one call is in the active, hold, or dialing state, the system returns
300   * {@code CallState#CALL_STATE_OFFHOOK}. In other cases, the system returns {@code CallState#CALL_STATE_IDLE}.
301   *
302   * @returns { CallState } Returns the call state.
303   * @syscap SystemCapability.Telephony.CallManager
304   * @since 10
305   */
306  function getCallStateSync(): CallState;
307
308  /**
309   * Stops the ringtone.
310   *
311   * If an incoming call is ringing, the phone stops ringing. Otherwise, this method does not function.
312   *
313   * @permission ohos.permission.SET_TELEPHONY_STATE
314   * @param { AsyncCallback<void> } callback - The callback of muteRinger.
315   * @throws { BusinessError } 201 - Permission denied.
316   * @throws { BusinessError } 202 - Non-system applications use system APIs.
317   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
318   * 2. Incorrect parameters types;
319   * @throws { BusinessError } 8300001 - Invalid parameter value.
320   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
321   * @throws { BusinessError } 8300003 - System internal error.
322   * @throws { BusinessError } 8300999 - Unknown error code.
323   * @syscap SystemCapability.Telephony.CallManager
324   * @systemapi Hide this for inner system use.
325   * @since 8
326   */
327  function muteRinger(callback: AsyncCallback<void>): void;
328
329  /**
330   * Stops the ringtone.
331   *
332   * If an incoming call is ringing, the phone stops ringing. Otherwise, this method does not function.
333   *
334   * @permission ohos.permission.SET_TELEPHONY_STATE
335   * @returns { Promise<void> } The promise returned by the muteRinger.
336   * @throws { BusinessError } 201 - Permission denied.
337   * @throws { BusinessError } 202 - Non-system applications use system APIs.
338   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
339   * @throws { BusinessError } 8300003 - System internal error.
340   * @throws { BusinessError } 8300999 - Unknown error code.
341   * @syscap SystemCapability.Telephony.CallManager
342   * @systemapi Hide this for inner system use.
343   * @since 8
344   */
345  function muteRinger(): Promise<void>;
346
347  /**
348   * Checks whether a device supports voice calls.
349   *
350   * The system checks whether the device has the capability to initiate a circuit switching (CS) or IP multimedia
351   * subsystem domain (IMS) call on a telephone service network. If the device supports only packet switching
352   * (even if the device supports OTT calls), {@code false} is returned.
353   *
354   * @returns { boolean } Returns {@code true} if the device supports voice calls; returns {@code false} otherwise.
355   * @syscap SystemCapability.Telephony.CallManager
356   * @since 7
357   */
358  function hasVoiceCapability(): boolean;
359
360  /**
361   * Checks whether a phone number is on the emergency number list.
362   *
363   * @param { string } phoneNumber - Indicates the phone number to check.
364   * @param { EmergencyNumberOptions } options - Indicates the additional information for emergency numbers.
365   * @param { AsyncCallback<boolean> } callback - Indicates the callback for isEmergencyPhoneNumber.
366   * Returns {@code true} if the phone number is on the emergency number list. Returns {@code false} otherwise.
367   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
368   * 2. Incorrect parameters types;
369   * @throws { BusinessError } 8300001 - Invalid parameter value.
370   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
371   * @throws { BusinessError } 8300003 - System internal error.
372   * @throws { BusinessError } 8300999 - Unknown error code.
373   * @syscap SystemCapability.Telephony.CallManager
374   * @since 7
375   */
376  function isEmergencyPhoneNumber(phoneNumber: string, options: EmergencyNumberOptions, callback: AsyncCallback<boolean>): void;
377
378  /**
379   * Checks whether a phone number is on the emergency number list.
380   *
381   * @param { string } phoneNumber - Indicates the phone number to check.
382   * @param { EmergencyNumberOptions } options - Indicates the additional information for emergency numbers.
383   * @returns { Promise<boolean> } Returns {@code true} if the phone number is on the emergency number list.
384   * Returns {@code false} otherwise.
385   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
386   * 2. Incorrect parameters types;
387   * @throws { BusinessError } 8300001 - Invalid parameter value.
388   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
389   * @throws { BusinessError } 8300003 - System internal error.
390   * @throws { BusinessError } 8300999 - Unknown error code.
391   * @syscap SystemCapability.Telephony.CallManager
392   * @since 7
393   */
394  function isEmergencyPhoneNumber(phoneNumber: string, options?: EmergencyNumberOptions): Promise<boolean>;
395
396  /**
397   * Checks whether a phone number is on the emergency number list.
398   *
399   * @param { string } phoneNumber - Indicates the phone number to check.
400   * @param { AsyncCallback<boolean> } callback - Indicates the callback for isEmergencyPhoneNumber.
401   * Returns {@code true} if the phone number is on the emergency number list. Returns {@code false} otherwise.
402   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
403   * 2. Incorrect parameters types;
404   * @throws { BusinessError } 8300001 - Invalid parameter value.
405   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
406   * @throws { BusinessError } 8300003 - System internal error.
407   * @throws { BusinessError } 8300999 - Unknown error code.
408   * @syscap SystemCapability.Telephony.CallManager
409   * @since 7
410   */
411  function isEmergencyPhoneNumber(phoneNumber: string, callback: AsyncCallback<boolean>): void;
412
413  /**
414   * Formats a phone number according to the Chinese Telephone Code Plan. Before the formatting,
415   * a phone number is in the format of country code (if any) + 3-digit service provider code
416   * + 4-digit area code + 4-digit subscriber number. After the formatting,
417   * each part is separated by a space.
418   *
419   * @param { string } phoneNumber - Indicates the phone number to format.
420   * @param { NumberFormatOptions } options - Indicates the country code option.
421   * @param { AsyncCallback<string> } callback - Indicates the callback to obtain a formatted phone number.
422   * Returns an empty string if the input phone number is invalid.
423   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
424   * 2. Incorrect parameters types;
425   * @throws { BusinessError } 8300001 - Invalid parameter value.
426   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
427   * @throws { BusinessError } 8300003 - System internal error.
428   * @throws { BusinessError } 8300999 - Unknown error code.
429   * @syscap SystemCapability.Telephony.CallManager
430   * @since 7
431   */
432  function formatPhoneNumber(phoneNumber: string, options: NumberFormatOptions, callback: AsyncCallback<string>): void;
433
434  /**
435   * Formats a phone number according to the Chinese Telephone Code Plan. Before the formatting,
436   * a phone number is in the format of country code (if any) + 3-digit service provider code
437   * + 4-digit area code + 4-digit subscriber number. After the formatting,
438   * each part is separated by a space.
439   *
440   * @param { string } phoneNumber - Indicates the phone number to format.
441   * @param { NumberFormatOptions } options - Indicates the country code option.
442   * @returns { Promise<string> } Returns the phone number after being formatted.
443   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
444   * 2. Incorrect parameters types;
445   * @throws { BusinessError } 8300001 - Invalid parameter value.
446   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
447   * @throws { BusinessError } 8300003 - System internal error.
448   * @throws { BusinessError } 8300999 - Unknown error code.
449   * @syscap SystemCapability.Telephony.CallManager
450   * @since 7
451   */
452  function formatPhoneNumber(phoneNumber: string, options?: NumberFormatOptions): Promise<string>;
453
454  /**
455   * Formats a phone number according to the Chinese Telephone Code Plan. Before the formatting,
456   * a phone number is in the format of country code (if any) + 3-digit service provider code
457   * + 4-digit area code + 4-digit subscriber number. After the formatting,
458   * each part is separated by a space.
459   *
460   * @param { string } phoneNumber - Indicates the phone number to format.
461   * @param { AsyncCallback<string> } callback - Indicates the callback to obtain a formatted phone number.
462   * Returns an empty string if the input phone number is invalid.
463   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
464   * 2. Incorrect parameters types;
465   * @throws { BusinessError } 8300001 - Invalid parameter value.
466   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
467   * @throws { BusinessError } 8300003 - System internal error.
468   * @throws { BusinessError } 8300999 - Unknown error code.
469   * @syscap SystemCapability.Telephony.CallManager
470   * @since 7
471   */
472  function formatPhoneNumber(phoneNumber: string, callback: AsyncCallback<string>): void;
473
474  /**
475   * Formats a phone number into an E.164 representation.
476   *
477   * @param { string } phoneNumber - Indicates the phone number to format.
478   * @param { string } countryCode - Indicates a two-digit country code defined in ISO 3166-1.
479   * @param { AsyncCallback<string> } callback - Returns an E.164 number.
480   * Returns an empty string if the input phone number is invalid.
481   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
482   * 2. Incorrect parameters types;
483   * @throws { BusinessError } 8300001 - Invalid parameter value.
484   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
485   * @throws { BusinessError } 8300003 - System internal error.
486   * @throws { BusinessError } 8300999 - Unknown error code.
487   * @syscap SystemCapability.Telephony.CallManager
488   * @since 7
489   */
490  function formatPhoneNumberToE164(phoneNumber: string, countryCode: string, callback: AsyncCallback<string>): void;
491
492  /**
493   * Formats a phone number into an E.164 representation.
494   *
495   * @param { string } phoneNumber - Indicates the phone number to format.
496   * @param { string } countryCode - Indicates a two-digit country code defined in ISO 3166-1.
497   * @returns { Promise<string> } Returns an E.164 number.
498   * Returns an empty string if the input phone number is invalid.
499   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
500   * 2. Incorrect parameters types;
501   * @throws { BusinessError } 8300001 - Invalid parameter value.
502   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
503   * @throws { BusinessError } 8300003 - System internal error.
504   * @throws { BusinessError } 8300999 - Unknown error code.
505   * @syscap SystemCapability.Telephony.CallManager
506   * @since 7
507   */
508  function formatPhoneNumberToE164(phoneNumber: string, countryCode: string): Promise<string>;
509
510  /**
511   * Answers the incoming call.
512   *
513   * @permission ohos.permission.ANSWER_CALL
514   * @param { number } callId - Indicates the identifier of the call to answer.
515   * @param { AsyncCallback<void> } callback - The callback of answerCall.
516   * @throws { BusinessError } 201 - Permission denied.
517   * @throws { BusinessError } 202 - Non-system applications use system APIs.
518   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
519   * 2. Incorrect parameters types;
520   * @throws { BusinessError } 8300001 - Invalid parameter value.
521   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
522   * @throws { BusinessError } 8300003 - System internal error.
523   * @throws { BusinessError } 8300999 - Unknown error code.
524   * @syscap SystemCapability.Telephony.CallManager
525   * @systemapi Hide this for inner system use.
526   * @since 9
527   */
528  function answerCall(callId: number, callback: AsyncCallback<void>): void;
529
530  /**
531   * Answers the incoming call.
532   *
533   * @permission ohos.permission.ANSWER_CALL
534   * @param { number } callId - Indicates the identifier of the call to answer.
535   * @returns { Promise<void> } The promise returned by the answerCall.
536   * @throws { BusinessError } 201 - Permission denied.
537   * @throws { BusinessError } 202 - Non-system applications use system APIs.
538   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
539   * 2. Incorrect parameters types;
540   * @throws { BusinessError } 8300001 - Invalid parameter value.
541   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
542   * @throws { BusinessError } 8300003 - System internal error.
543   * @throws { BusinessError } 8300999 - Unknown error code.
544   * @syscap SystemCapability.Telephony.CallManager
545   * @systemapi Hide this for inner system use.
546   * @since 9
547   */
548  function answerCall(callId?: number): Promise<void>;
549
550  /**
551   * Answers the incoming call without callId.
552   *
553   * @permission ohos.permission.ANSWER_CALL
554   * @param { AsyncCallback<void> } callback - The callback of answerCall.
555   * @throws { BusinessError } 201 - Permission denied.
556   * @throws { BusinessError } 202 - Non-system applications use system APIs.
557   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
558   * 2. Incorrect parameters types;
559   * @throws { BusinessError } 8300001 - Invalid parameter value.
560   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
561   * @throws { BusinessError } 8300003 - System internal error.
562   * @throws { BusinessError } 8300999 - Unknown error code.
563   * @syscap SystemCapability.Telephony.CallManager
564   * @systemapi Hide this for inner system use.
565   * @since 9
566   */
567  function answerCall(callback: AsyncCallback<void>): void;
568
569  /**
570   * Answers the incoming video call
571   *
572   * @permission ohos.permission.ANSWER_CALL
573   * @param { VideoStateType } videoState - Indicates the answer the call with video or voice.
574   * @param { number } callId - Indicates the identifier of the call to answer.
575   * @returns { Promise<void> } The promise returned by the answerCall.
576   * @throws { BusinessError } 201 - Permission denied.
577   * @throws { BusinessError } 202 - Non-system applications use system APIs.
578   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
579   * 2. Incorrect parameters types;
580   * @throws { BusinessError } 8300001 - Invalid parameter value.
581   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
582   * @throws { BusinessError } 8300003 - System internal error.
583   * @throws { BusinessError } 8300999 - Unknown error code.
584   * @syscap SystemCapability.Telephony.CallManager
585   * @systemapi Hide this for inner system use.
586   * @since 11
587   */
588  function answerCall(videoState: VideoStateType, callId: number): Promise<void>;
589
590  /**
591   * Hang up the foreground call.
592   *
593   * @permission ohos.permission.ANSWER_CALL
594   * @param { number } callId - Indicates the identifier of the call to hangup.
595   * @param { AsyncCallback<void> } callback - The callback of hangUpCall.
596   * @throws { BusinessError } 201 - Permission denied.
597   * @throws { BusinessError } 202 - Non-system applications use system APIs.
598   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
599   * 2. Incorrect parameters types;
600   * @throws { BusinessError } 8300001 - Invalid parameter value.
601   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
602   * @throws { BusinessError } 8300003 - System internal error.
603   * @throws { BusinessError } 8300999 - Unknown error code.
604   * @syscap SystemCapability.Telephony.CallManager
605   * @systemapi Hide this for inner system use.
606   * @since 9
607   */
608  function hangUpCall(callId: number, callback: AsyncCallback<void>): void;
609
610  /**
611   * Hang up the foreground call.
612   *
613   * @permission ohos.permission.ANSWER_CALL
614   * @param { number } callId - Indicates the identifier of the call to hangup.
615   * @returns { Promise<void> } The promise returned by the hangUpCall.
616   * @throws { BusinessError } 201 - Permission denied.
617   * @throws { BusinessError } 202 - Non-system applications use system APIs.
618   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
619   * 2. Incorrect parameters types;
620   * @throws { BusinessError } 8300001 - Invalid parameter value.
621   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
622   * @throws { BusinessError } 8300003 - System internal error.
623   * @throws { BusinessError } 8300999 - Unknown error code.
624   * @syscap SystemCapability.Telephony.CallManager
625   * @systemapi Hide this for inner system use.
626   * @since 9
627   */
628  function hangUpCall(callId?: number): Promise<void>;
629
630  /**
631   * Hang up the foreground call without callId.
632   *
633   * @permission ohos.permission.ANSWER_CALL
634   * @param { AsyncCallback<void> } callback - The callback of hangUpCall.
635   * @throws { BusinessError } 201 - Permission denied.
636   * @throws { BusinessError } 202 - Non-system applications use system APIs.
637   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
638   * 2. Incorrect parameters types;
639   * @throws { BusinessError } 8300001 - Invalid parameter value.
640   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
641   * @throws { BusinessError } 8300003 - System internal error.
642   * @throws { BusinessError } 8300999 - Unknown error code.
643   * @syscap SystemCapability.Telephony.CallManager
644   * @systemapi Hide this for inner system use.
645   * @since 9
646   */
647  function hangUpCall(callback: AsyncCallback<void>): void;
648
649  /**
650   * Reject the incoming call.
651   *
652   * @permission ohos.permission.ANSWER_CALL
653   * @param { number } callId - Indicates the identifier of the call to reject.
654   * @param { RejectMessageOptions } options - Indicates the text message to reject.
655   * @param { AsyncCallback<void> } callback - The callback of rejectCall.
656   * @throws { BusinessError } 201 - Permission denied.
657   * @throws { BusinessError } 202 - Non-system applications use system APIs.
658   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
659   * 2. Incorrect parameters types;
660   * @throws { BusinessError } 8300001 - Invalid parameter value.
661   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
662   * @throws { BusinessError } 8300003 - System internal error.
663   * @throws { BusinessError } 8300999 - Unknown error code.
664   * @syscap SystemCapability.Telephony.CallManager
665   * @systemapi Hide this for inner system use.
666   * @since 9
667   */
668  function rejectCall(callId: number, options: RejectMessageOptions, callback: AsyncCallback<void>): void;
669
670  /**
671   * Reject the incoming call.
672   *
673   * @permission ohos.permission.ANSWER_CALL
674   * @param { number } callId - Indicates the identifier of the call to reject.
675   * @param { RejectMessageOptions } options - Indicates the text message to reject.
676   * @returns { Promise<void> } The promise returned by the rejectCall.
677   * @throws { BusinessError } 201 - Permission denied.
678   * @throws { BusinessError } 202 - Non-system applications use system APIs.
679   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
680   * 2. Incorrect parameters types;
681   * @throws { BusinessError } 8300001 - Invalid parameter value.
682   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
683   * @throws { BusinessError } 8300003 - System internal error.
684   * @throws { BusinessError } 8300999 - Unknown error code.
685   * @syscap SystemCapability.Telephony.CallManager
686   * @systemapi Hide this for inner system use.
687   * @since 9
688   */
689  function rejectCall(callId?: number, options?: RejectMessageOptions): Promise<void>;
690
691  /**
692   * Reject the incoming call.
693   *
694   * @permission ohos.permission.ANSWER_CALL
695   * @param { number } callId - Indicates the identifier of the call to reject.
696   * @param { AsyncCallback<void> } callback - The callback of rejectCall.
697   * @throws { BusinessError } 201 - Permission denied.
698   * @throws { BusinessError } 202 - Non-system applications use system APIs.
699   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
700   * 2. Incorrect parameters types;
701   * @throws { BusinessError } 8300001 - Invalid parameter value.
702   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
703   * @throws { BusinessError } 8300003 - System internal error.
704   * @throws { BusinessError } 8300999 - Unknown error code.
705   * @syscap SystemCapability.Telephony.CallManager
706   * @systemapi Hide this for inner system use.
707   * @since 9
708   */
709  function rejectCall(callId: number, callback: AsyncCallback<void>): void;
710
711  /**
712   * Reject the incoming call without callId.
713   *
714   * @permission ohos.permission.ANSWER_CALL
715   * @param { AsyncCallback<void> } callback - The callback of rejectCall.
716   * @throws { BusinessError } 201 - Permission denied.
717   * @throws { BusinessError } 202 - Non-system applications use system APIs.
718   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
719   * 2. Incorrect parameters types;
720   * @throws { BusinessError } 8300001 - Invalid parameter value.
721   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
722   * @throws { BusinessError } 8300003 - System internal error.
723   * @throws { BusinessError } 8300999 - Unknown error code.
724   * @syscap SystemCapability.Telephony.CallManager
725   * @systemapi Hide this for inner system use.
726   * @since 9
727   */
728  function rejectCall(callback: AsyncCallback<void>): void;
729
730  /**
731   * Reject the incoming call without callId.
732   *
733   * @permission ohos.permission.ANSWER_CALL
734   * @param { RejectMessageOptions } options - Indicates the text message to reject.
735   * @param { AsyncCallback<void> } callback - The callback of rejectCall.
736   * @throws { BusinessError } 201 - Permission denied.
737   * @throws { BusinessError } 202 - Non-system applications use system APIs.
738   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
739   * 2. Incorrect parameters types;
740   * @throws { BusinessError } 8300001 - Invalid parameter value.
741   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
742   * @throws { BusinessError } 8300003 - System internal error.
743   * @throws { BusinessError } 8300999 - Unknown error code.
744   * @syscap SystemCapability.Telephony.CallManager
745   * @systemapi Hide this for inner system use.
746   * @since 9
747   */
748  function rejectCall(options: RejectMessageOptions, callback: AsyncCallback<void>): void;
749
750  /**
751   * Keep a call on hold.
752   *
753   * @permission ohos.permission.ANSWER_CALL
754   * @param { number } callId - Indicates the identifier of the call.
755   * @param { AsyncCallback<void> } callback - The callback of holdCall.
756   * @throws { BusinessError } 201 - Permission denied.
757   * @throws { BusinessError } 202 - Non-system applications use system APIs.
758   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
759   * 2. Incorrect parameters types;
760   * @throws { BusinessError } 8300001 - Invalid parameter value.
761   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
762   * @throws { BusinessError } 8300003 - System internal error.
763   * @throws { BusinessError } 8300999 - Unknown error code.
764   * @syscap SystemCapability.Telephony.CallManager
765   * @systemapi Hide this for inner system use.
766   * @since 7
767   */
768  function holdCall(callId: number, callback: AsyncCallback<void>): void;
769
770  /**
771   * Keep a call on hold.
772   *
773   * @permission ohos.permission.ANSWER_CALL
774   * @param { number } callId - Indicates the identifier of the call.
775   * @returns { Promise<void> } The promise returned by the holdCall.
776   * @throws { BusinessError } 201 - Permission denied.
777   * @throws { BusinessError } 202 - Non-system applications use system APIs.
778   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
779   * 2. Incorrect parameters types;
780   * @throws { BusinessError } 8300001 - Invalid parameter value.
781   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
782   * @throws { BusinessError } 8300003 - System internal error.
783   * @throws { BusinessError } 8300999 - Unknown error code.
784   * @syscap SystemCapability.Telephony.CallManager
785   * @systemapi Hide this for inner system use.
786   * @since 7
787   */
788  function holdCall(callId: number): Promise<void>;
789
790  /**
791   * Cancel call hold status.
792   *
793   * @permission ohos.permission.ANSWER_CALL
794   * @param { number } callId - Indicates the identifier of the call.
795   * @param { AsyncCallback<void> } callback - The callback of unHoldCall.
796   * @throws { BusinessError } 201 - Permission denied.
797   * @throws { BusinessError } 202 - Non-system applications use system APIs.
798   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
799   * 2. Incorrect parameters types;
800   * @throws { BusinessError } 8300001 - Invalid parameter value.
801   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
802   * @throws { BusinessError } 8300003 - System internal error.
803   * @throws { BusinessError } 8300999 - Unknown error code.
804   * @syscap SystemCapability.Telephony.CallManager
805   * @systemapi Hide this for inner system use.
806   * @since 7
807   */
808  function unHoldCall(callId: number, callback: AsyncCallback<void>): void;
809
810  /**
811   * Keep a call on hold.
812   *
813   * @permission ohos.permission.ANSWER_CALL
814   * @param { number } callId - Indicates the identifier of the call.
815   * @returns { Promise<void> } The promise returned by the unHoldCall.
816   * @throws { BusinessError } 201 - Permission denied.
817   * @throws { BusinessError } 202 - Non-system applications use system APIs.
818   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
819   * 2. Incorrect parameters types;
820   * @throws { BusinessError } 8300001 - Invalid parameter value.
821   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
822   * @throws { BusinessError } 8300003 - System internal error.
823   * @throws { BusinessError } 8300999 - Unknown error code.
824   * @syscap SystemCapability.Telephony.CallManager
825   * @systemapi Hide this for inner system use.
826   * @since 7
827   */
828  function unHoldCall(callId: number): Promise<void>;
829
830  /**
831   * Switch call.
832   *
833   * @permission ohos.permission.ANSWER_CALL
834   * @param { number } callId - Indicates the identifier of the call.
835   * @param { AsyncCallback<void> } callback - The callback of switchCall.
836   * @throws { BusinessError } 201 - Permission denied.
837   * @throws { BusinessError } 202 - Non-system applications use system APIs.
838   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
839   * 2. Incorrect parameters types;
840   * @throws { BusinessError } 8300001 - Invalid parameter value.
841   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
842   * @throws { BusinessError } 8300003 - System internal error.
843   * @throws { BusinessError } 8300999 - Unknown error code.
844   * @syscap SystemCapability.Telephony.CallManager
845   * @systemapi Hide this for inner system use.
846   * @since 7
847   */
848  function switchCall(callId: number, callback: AsyncCallback<void>): void;
849
850  /**
851   * Switch call.
852   *
853   * @permission ohos.permission.ANSWER_CALL
854   * @param { number } callId - Indicates the identifier of the call.
855   * @returns { Promise<void> } The promise returned by the switchCall.
856   * @throws { BusinessError } 201 - Permission denied.
857   * @throws { BusinessError } 202 - Non-system applications use system APIs.
858   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
859   * 2. Incorrect parameters types;
860   * @throws { BusinessError } 8300001 - Invalid parameter value.
861   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
862   * @throws { BusinessError } 8300003 - System internal error.
863   * @throws { BusinessError } 8300999 - Unknown error code.
864   * @syscap SystemCapability.Telephony.CallManager
865   * @systemapi Hide this for inner system use.
866   * @since 7
867   */
868  function switchCall(callId: number): Promise<void>;
869
870  /**
871   * Merge calls, merge two calls into conference calls.
872   *
873   * @param { number } callId - Indicates the identifier of the call.
874   * @param { AsyncCallback<void> } callback - The callback of combineConference.
875   * @throws { BusinessError } 202 - Non-system applications use system APIs.
876   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
877   * 2. Incorrect parameters types;
878   * @throws { BusinessError } 801 - Capability not supported.
879   * @throws { BusinessError } 8300001 - Invalid parameter value.
880   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
881   * @throws { BusinessError } 8300003 - System internal error.
882   * @throws { BusinessError } 8300007 - The number of conference calls exceeds the limit.
883   * @syscap SystemCapability.Telephony.CallManager
884   * @systemapi Hide this for inner system use.
885   * @since 11
886   */
887  function combineConference(callId: number, callback: AsyncCallback<void>): void;
888
889  /**
890   * Merge calls, merge two calls into conference calls.
891   *
892   * @param { number } callId - Indicates the identifier of the call.
893   * @returns { Promise<void> } The promise returned by the combineConference.
894   * @throws { BusinessError } 202 - Non-system applications use system APIs.
895   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
896   * 2. Incorrect parameters types;
897   * @throws { BusinessError } 801 - Capability not supported.
898   * @throws { BusinessError } 8300001 - Invalid parameter value.
899   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
900   * @throws { BusinessError } 8300003 - System internal error.
901   * @throws { BusinessError } 8300007 - The number of conference calls exceeds the limit.
902   * @syscap SystemCapability.Telephony.CallManager
903   * @systemapi Hide this for inner system use.
904   * @since 11
905   */
906  function combineConference(callId: number): Promise<void>;
907
908  /**
909   * Get the main call Id.
910   *
911   * @param { number } callId - Indicates the identifier of the call.
912   * @param { AsyncCallback<number> } callback - Indicates the callback for getting the main call id.
913   * @throws { BusinessError } 202 - Non-system applications use system APIs.
914   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
915   * 2. Incorrect parameters types;
916   * @throws { BusinessError } 801 - Capability not supported.
917   * @throws { BusinessError } 8300001 - Invalid parameter value.
918   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
919   * @throws { BusinessError } 8300003 - System internal error.
920   * @syscap SystemCapability.Telephony.CallManager
921   * @systemapi Hide this for inner system use.
922   * @since 7
923   */
924  function getMainCallId(callId: number, callback: AsyncCallback<number>): void;
925
926  /**
927   * Get the main call Id.
928   *
929   * @param { number } callId - Indicates the identifier of the call.
930   * @returns { Promise<number> } Returns the main call id.
931   * @throws { BusinessError } 202 - Non-system applications use system APIs.
932   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
933   * 2. Incorrect parameters types;
934   * @throws { BusinessError } 801 - Capability not supported.
935   * @throws { BusinessError } 8300001 - Invalid parameter value.
936   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
937   * @throws { BusinessError } 8300003 - System internal error.
938   * @syscap SystemCapability.Telephony.CallManager
939   * @systemapi Hide this for inner system use.
940   * @since 7
941   */
942  function getMainCallId(callId: number): Promise<number>;
943
944  /**
945   * Get the list of sub-call Ids.
946   *
947   * @param { number } callId - Indicates the identifier of the call.
948   * @param { AsyncCallback<Array<string>> } callback - Indicates the callback for getting the list of sub call ids.
949   * @throws { BusinessError } 202 - Non-system applications use system APIs.
950   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
951   * 2. Incorrect parameters types;
952   * @throws { BusinessError } 801 - Capability not supported.
953   * @throws { BusinessError } 8300001 - Invalid parameter value.
954   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
955   * @throws { BusinessError } 8300003 - System internal error.
956   * @syscap SystemCapability.Telephony.CallManager
957   * @systemapi Hide this for inner system use.
958   * @since 7
959   */
960  function getSubCallIdList(callId: number, callback: AsyncCallback<Array<string>>): void;
961
962  /**
963   * Get the list of sub-call Ids.
964   *
965   * @param { number } callId - Indicates the identifier of the call.
966   * @returns { Promise<Array<string>> } Returns the list of sub call ids.
967   * @throws { BusinessError } 202 - Non-system applications use system APIs.
968   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
969   * 2. Incorrect parameters types;
970   * @throws { BusinessError } 801 - Capability not supported.
971   * @throws { BusinessError } 8300001 - Invalid parameter value.
972   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
973   * @throws { BusinessError } 8300003 - System internal error.
974   * @syscap SystemCapability.Telephony.CallManager
975   * @systemapi Hide this for inner system use.
976   * @since 7
977   */
978  function getSubCallIdList(callId: number): Promise<Array<string>>;
979
980  /**
981   * Get the call Id list of the conference.
982   *
983   * @param { number } callId - Indicates the identifier of the call.
984   * @param { AsyncCallback<Array<string>> } callback - Indicates the callback for getting
985   * the call id list of conference calls.
986   * @throws { BusinessError } 202 - Non-system applications use system APIs.
987   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
988   * 2. Incorrect parameters types;
989   * @throws { BusinessError } 801 - Capability not supported.
990   * @throws { BusinessError } 8300001 - Invalid parameter value.
991   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
992   * @throws { BusinessError } 8300003 - System internal error.
993   * @syscap SystemCapability.Telephony.CallManager
994   * @systemapi Hide this for inner system use.
995   * @since 7
996   */
997  function getCallIdListForConference(callId: number, callback: AsyncCallback<Array<string>>): void;
998
999  /**
1000   * Get the call Id list of the conference.
1001   *
1002   * @param { number } callId - Indicates the identifier of the call.
1003   * @returns { Promise<Array<string>> } Returns the call id list of conference calls.
1004   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1005   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1006   * 2. Incorrect parameters types;
1007   * @throws { BusinessError } 801 - Capability not supported.
1008   * @throws { BusinessError } 8300001 - Invalid parameter value.
1009   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1010   * @throws { BusinessError } 8300003 - System internal error.
1011   * @syscap SystemCapability.Telephony.CallManager
1012   * @systemapi Hide this for inner system use.
1013   * @since 7
1014   */
1015  function getCallIdListForConference(callId: number): Promise<Array<string>>;
1016
1017  /**
1018   * Get call waiting status.
1019   *
1020   * @permission ohos.permission.GET_TELEPHONY_STATE
1021   * @param { number } slotId - Indicates the card slot index number,
1022   * ranging from 0 to the maximum card slot index number supported by the device.
1023   * @param { AsyncCallback<CallWaitingStatus> } callback - Indicates the callback for getting the call waiting status.
1024   * @throws { BusinessError } 201 - Permission denied.
1025   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1026   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1027   * 2. Incorrect parameters types;
1028   * @throws { BusinessError } 801 - Capability not supported.
1029   * @throws { BusinessError } 8300001 - Invalid parameter value.
1030   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1031   * @throws { BusinessError } 8300003 - System internal error.
1032   * @syscap SystemCapability.Telephony.CallManager
1033   * @systemapi Hide this for inner system use.
1034   * @since 7
1035   */
1036  function getCallWaitingStatus(slotId: number, callback: AsyncCallback<CallWaitingStatus>): void;
1037
1038  /**
1039   * Get call waiting status.
1040   *
1041   * @permission ohos.permission.GET_TELEPHONY_STATE
1042   * @param { number } slotId - Indicates the card slot index number,
1043   * ranging from 0 to the maximum card slot index number supported by the device.
1044   * @returns { Promise<CallWaitingStatus> } Returns the callback for getting the call waiting status.
1045   * @throws { BusinessError } 201 - Permission denied.
1046   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1047   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1048   * 2. Incorrect parameters types;
1049   * @throws { BusinessError } 801 - Capability not supported.
1050   * @throws { BusinessError } 8300001 - Invalid parameter value.
1051   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1052   * @throws { BusinessError } 8300003 - System internal error.
1053   * @syscap SystemCapability.Telephony.CallManager
1054   * @systemapi Hide this for inner system use.
1055   * @since 7
1056   */
1057  function getCallWaitingStatus(slotId: number): Promise<CallWaitingStatus>;
1058
1059  /**
1060   * Set call waiting.
1061   *
1062   * @permission ohos.permission.SET_TELEPHONY_STATE
1063   * @param { number } slotId - Indicates the card slot index number,
1064   * ranging from 0 to the maximum card slot index number supported by the device.
1065   * @param { boolean } activate - Indicates whether to activate or call wait.
1066   * @param { AsyncCallback<void> } callback - The callback of setCallWaiting.
1067   * @throws { BusinessError } 201 - Permission denied.
1068   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1069   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1070   * 2. Incorrect parameters types;
1071   * @throws { BusinessError } 801 - Capability not supported.
1072   * @throws { BusinessError } 8300001 - Invalid parameter value.
1073   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1074   * @throws { BusinessError } 8300003 - System internal error.
1075   * @syscap SystemCapability.Telephony.CallManager
1076   * @systemapi Hide this for inner system use.
1077   * @since 7
1078   */
1079  function setCallWaiting(slotId: number, activate: boolean, callback: AsyncCallback<void>): void;
1080
1081  /**
1082   * Set call waiting.
1083   *
1084   * @permission ohos.permission.SET_TELEPHONY_STATE
1085   * @param { number } slotId - Indicates the card slot index number,
1086   * ranging from 0 to the maximum card slot index number supported by the device.
1087   * @param { boolean } activate - Indicates whether to activate or call wait.
1088   * @returns { Promise<void> } The promise returned by the setCallWaiting.
1089   * @throws { BusinessError } 201 - Permission denied.
1090   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1091   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1092   * 2. Incorrect parameters types;
1093   * @throws { BusinessError } 801 - Capability not supported.
1094   * @throws { BusinessError } 8300001 - Invalid parameter value.
1095   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1096   * @throws { BusinessError } 8300003 - System internal error.
1097   * @syscap SystemCapability.Telephony.CallManager
1098   * @systemapi Hide this for inner system use.
1099   * @since 7
1100   */
1101  function setCallWaiting(slotId: number, activate: boolean): Promise<void>;
1102
1103  /**
1104   * Start DTMF(Dual Tone Multi Frequency).
1105   *
1106   * @param { number } callId - Indicates the identifier of the call.
1107   * @param { string } character - Indicates the characters sent.
1108   * @param { AsyncCallback<void> } callback - The callback of startDTMF.
1109   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1110   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1111   * 2. Incorrect parameters types;
1112   * @throws { BusinessError } 801 - Capability not supported.
1113   * @throws { BusinessError } 8300001 - Invalid parameter value.
1114   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1115   * @throws { BusinessError } 8300003 - System internal error.
1116   * @syscap SystemCapability.Telephony.CallManager
1117   * @systemapi Hide this for inner system use.
1118   * @since 7
1119   */
1120  function startDTMF(callId: number, character: string, callback: AsyncCallback<void>): void;
1121
1122  /**
1123   * Start DTMF(Dual Tone Multi Frequency).
1124   *
1125   * @param { number } callId - Indicates the identifier of the call.
1126   * @param { string } character - Indicates the characters sent.
1127   * @returns { Promise<void> } The promise returned by the startDTMF.
1128   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1129   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1130   * 2. Incorrect parameters types;
1131   * @throws { BusinessError } 801 - Capability not supported.
1132   * @throws { BusinessError } 8300001 - Invalid parameter value.
1133   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1134   * @throws { BusinessError } 8300003 - System internal error.
1135   * @syscap SystemCapability.Telephony.CallManager
1136   * @systemapi Hide this for inner system use.
1137   * @since 7
1138   */
1139  function startDTMF(callId: number, character: string): Promise<void>;
1140
1141  /**
1142   * Stop DTMF(Dual Tone Multi Frequency).
1143   *
1144   * @param { number } callId - Indicates the identifier of the call.
1145   * @param { AsyncCallback<void> } callback - The callback of stopDTMF.
1146   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1147   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1148   * 2. Incorrect parameters types;
1149   * @throws { BusinessError } 801 - Capability not supported.
1150   * @throws { BusinessError } 8300001 - Invalid parameter value.
1151   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1152   * @throws { BusinessError } 8300003 - System internal error.
1153   * @syscap SystemCapability.Telephony.CallManager
1154   * @systemapi Hide this for inner system use.
1155   * @since 7
1156   */
1157  function stopDTMF(callId: number, callback: AsyncCallback<void>): void;
1158
1159  /**
1160   * Stop DTMF(Dual Tone Multi Frequency).
1161   *
1162   * @param { number } callId - Indicates the identifier of the call.
1163   * @returns { Promise<void> } The promise returned by the stopDTMF.
1164   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1165   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1166   * 2. Incorrect parameters types;
1167   * @throws { BusinessError } 801 - Capability not supported.
1168   * @throws { BusinessError } 8300001 - Invalid parameter value.
1169   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1170   * @throws { BusinessError } 8300003 - System internal error.
1171   * @syscap SystemCapability.Telephony.CallManager
1172   * @systemapi Hide this for inner system use.
1173   * @since 7
1174   */
1175  function stopDTMF(callId: number): Promise<void>;
1176
1177  /**
1178   * Continue post-dial DTMF(Dual Tone Multi Frequency).
1179   *
1180   * @permission ohos.permission.SET_TELEPHONY_STATE
1181   * @param { number } callId - Indicates the identifier of the call.
1182   * @param { boolean } proceed - Indicates whether to continue the post-dial DTMF.
1183   * @param { AsyncCallback<void> } callback - The callback of postDialProceed.
1184   * @throws { BusinessError } 201 - Permission denied.
1185   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1186   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1187   * 2. Incorrect parameters types;
1188   * @throws { BusinessError } 801 - Capability not supported.
1189   * @throws { BusinessError } 8300001 - Invalid parameter value.
1190   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1191   * @throws { BusinessError } 8300003 - System internal error.
1192   * @syscap SystemCapability.Telephony.CallManager
1193   * @systemapi Hide this for inner system use.
1194   * @since 11
1195   */
1196  function postDialProceed(callId: number, proceed: boolean, callback: AsyncCallback<void>): void;
1197
1198  /**
1199   * Continue post-dial DTMF(Dual Tone Multi Frequency).
1200   *
1201   * @permission ohos.permission.SET_TELEPHONY_STATE
1202   * @param { number } callId - Indicates the identifier of the call.
1203   * @param { boolean } proceed - Indicates whether to continue the post-dial DTMF.
1204   * @returns { Promise<void> } The promise returned by the postDialProceed.
1205   * @throws { BusinessError } 201 - Permission denied.
1206   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1207   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1208   * 2. Incorrect parameters types;
1209   * @throws { BusinessError } 801 - Capability not supported.
1210   * @throws { BusinessError } 8300001 - Invalid parameter value.
1211   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1212   * @throws { BusinessError } 8300003 - System internal error.
1213   * @syscap SystemCapability.Telephony.CallManager
1214   * @systemapi Hide this for inner system use.
1215   * @since 11
1216   */
1217  function postDialProceed(callId: number, proceed: boolean): Promise<void>;
1218
1219  /**
1220   * Judge whether the emergency call is in progress.
1221   *
1222   * @permission ohos.permission.SET_TELEPHONY_STATE
1223   * @param { AsyncCallback<boolean> } callback - The callback of isInEmergencyCall.
1224   * Returns {@code true} if the call is in emergency; returns {@code false} otherwise.
1225   * @throws { BusinessError } 201 - Permission denied.
1226   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1227   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1228   * 2. Incorrect parameters types;
1229   * @throws { BusinessError } 8300001 - Invalid parameter value.
1230   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1231   * @throws { BusinessError } 8300003 - System internal error.
1232   * @throws { BusinessError } 8300999 - Unknown error code.
1233   * @syscap SystemCapability.Telephony.CallManager
1234   * @systemapi Hide this for inner system use.
1235   * @since 7
1236   */
1237  function isInEmergencyCall(callback: AsyncCallback<boolean>): void;
1238
1239  /**
1240   * Judge whether the emergency call is in progress.
1241   *
1242   * @permission ohos.permission.SET_TELEPHONY_STATE
1243   * @returns { Promise<boolean> } Returns {@code true} if the call is in emergency; returns {@code false} otherwise.
1244   * @throws { BusinessError } 201 - Permission denied.
1245   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1246   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1247   * @throws { BusinessError } 8300003 - System internal error.
1248   * @throws { BusinessError } 8300999 - Unknown error code.
1249   * @syscap SystemCapability.Telephony.CallManager
1250   * @systemapi Hide this for inner system use.
1251   * @since 7
1252   */
1253  function isInEmergencyCall(): Promise<boolean>;
1254
1255  /**
1256   * Subscribe to the callDetailsChange event.
1257   *
1258   * @permission ohos.permission.SET_TELEPHONY_STATE
1259   * @param { 'callDetailsChange' } type - Event type. Indicates the callDetailsChange event to be subscribed to.
1260   * @param { Callback<CallAttributeOptions> } callback - Indicates the callback for getting the result of call details.
1261   * @throws { BusinessError } 201 - Permission denied.
1262   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1263   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1264   * 2. Incorrect parameters types;
1265   * @throws { BusinessError } 8300001 - Invalid parameter value.
1266   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1267   * @throws { BusinessError } 8300003 - System internal error.
1268   * @throws { BusinessError } 8300999 - Unknown error code.
1269   * @syscap SystemCapability.Telephony.CallManager
1270   * @systemapi Hide this for inner system use.
1271   * @since 7
1272   */
1273  function on(type: 'callDetailsChange', callback: Callback<CallAttributeOptions>): void;
1274
1275  /**
1276   * Unsubscribe from the callDetailsChange event.
1277   *
1278   * @permission ohos.permission.SET_TELEPHONY_STATE
1279   * @param { 'callDetailsChange' } type - Event type. Indicates the callDetailsChange event to unsubscribe from.
1280   * @param { Callback<CallAttributeOptions> } callback - Indicates the callback to unsubscribe from
1281   * the callDetailsChange event.
1282   * @throws { BusinessError } 201 - Permission denied.
1283   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1284   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1285   * 2. Incorrect parameters types;
1286   * @throws { BusinessError } 8300001 - Invalid parameter value.
1287   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1288   * @throws { BusinessError } 8300003 - System internal error.
1289   * @throws { BusinessError } 8300999 - Unknown error code.
1290   * @syscap SystemCapability.Telephony.CallManager
1291   * @systemapi Hide this for inner system use.
1292   * @since 7
1293   */
1294  function off(type: 'callDetailsChange', callback?: Callback<CallAttributeOptions>): void;
1295
1296  /**
1297   * Subscribe to the callEventChange event.
1298   *
1299   * @permission ohos.permission.SET_TELEPHONY_STATE
1300   * @param { 'callEventChange' } type - Event type. Indicates the callEventChange event to be subscribed to.
1301   * @param { Callback<CallEventOptions> } callback - Indicates the callback for getting the call event id.
1302   * @throws { BusinessError } 201 - Permission denied.
1303   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1304   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1305   * 2. Incorrect parameters types;
1306   * @throws { BusinessError } 8300001 - Invalid parameter value.
1307   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1308   * @throws { BusinessError } 8300003 - System internal error.
1309   * @throws { BusinessError } 8300999 - Unknown error code.
1310   * @syscap SystemCapability.Telephony.CallManager
1311   * @systemapi Hide this for inner system use.
1312   * @since 8
1313   */
1314  function on(type: 'callEventChange', callback: Callback<CallEventOptions>): void;
1315
1316  /**
1317   * Unsubscribe from the callEventChange event.
1318   *
1319   * @permission ohos.permission.SET_TELEPHONY_STATE
1320   * @param { 'callEventChange' } type - Event type. Indicates the callEventChange event to unsubscribe from.
1321   * @param { Callback<CallEventOptions> } callback - Indicates the callback to unsubscribe from the callEventChange event.
1322   * @throws { BusinessError } 201 - Permission denied.
1323   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1324   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1325   * 2. Incorrect parameters types;
1326   * @throws { BusinessError } 8300001 - Invalid parameter value.
1327   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1328   * @throws { BusinessError } 8300003 - System internal error.
1329   * @throws { BusinessError } 8300999 - Unknown error code.
1330   * @syscap SystemCapability.Telephony.CallManager
1331   * @systemapi Hide this for inner system use.
1332   * @since 8
1333   */
1334  function off(type: 'callEventChange', callback?: Callback<CallEventOptions>): void;
1335
1336  /**
1337   * Subscribe to the callDisconnectedCause event.
1338   *
1339   * @permission ohos.permission.SET_TELEPHONY_STATE
1340   * @param { 'callDisconnectedCause' } type - Event type. Indicates the callDisconnectedCause event to be subscribed to.
1341   * @param { Callback<DisconnectedDetails> } callback - Indicates the callback for getting the call disconnection reason.
1342   * @throws { BusinessError } 201 - Permission denied.
1343   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1344   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1345   * 2. Incorrect parameters types;
1346   * @throws { BusinessError } 8300001 - Invalid parameter value.
1347   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1348   * @throws { BusinessError } 8300003 - System internal error.
1349   * @throws { BusinessError } 8300999 - Unknown error code.
1350   * @syscap SystemCapability.Telephony.CallManager
1351   * @systemapi Hide this for inner system use.
1352   * @since 8
1353   */
1354  function on(type: 'callDisconnectedCause', callback: Callback<DisconnectedDetails>): void;
1355
1356  /**
1357   * Unsubscribe from the callDisconnectedCause event.
1358   *
1359   * @permission ohos.permission.SET_TELEPHONY_STATE
1360   * @param { 'callDisconnectedCause' } type - Event type. Indicates the callDisconnectedCause event to unsubscribe from.
1361   * @param { Callback<DisconnectedDetails> } callback - Indicates the callback used to cancel
1362   * the registration monitoring for obtaining the call end reason.
1363   * @throws { BusinessError } 201 - Permission denied.
1364   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1365   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1366   * 2. Incorrect parameters types;
1367   * @throws { BusinessError } 8300001 - Invalid parameter value.
1368   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1369   * @throws { BusinessError } 8300003 - System internal error.
1370   * @throws { BusinessError } 8300999 - Unknown error code.
1371   * @syscap SystemCapability.Telephony.CallManager
1372   * @systemapi Hide this for inner system use.
1373   * @since 8
1374   */
1375  function off(type: 'callDisconnectedCause', callback?: Callback<DisconnectedDetails>): void;
1376
1377  /**
1378   * Subscribe to the mmiCodeResult event.
1379   *
1380   * @permission ohos.permission.SET_TELEPHONY_STATE
1381   * @param { 'mmiCodeResult' } type - Event type. Indicates the mmiCodeResult event to be subscribed to.
1382   * @param { Callback<MmiCodeResults> } callback - Indicates the callback for getting the result of MMI code.
1383   * @throws { BusinessError } 201 - Permission denied.
1384   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1385   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1386   * 2. Incorrect parameters types;
1387   * @throws { BusinessError } 8300001 - Invalid parameter value.
1388   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1389   * @throws { BusinessError } 8300003 - System internal error.
1390   * @throws { BusinessError } 8300999 - Unknown error code.
1391   * @syscap SystemCapability.Telephony.CallManager
1392   * @systemapi Hide this for inner system use.
1393   * @since 9
1394   */
1395  function on(type: 'mmiCodeResult', callback: Callback<MmiCodeResults>): void;
1396
1397  /**
1398   * Unsubscribe from the mmiCodeResult event.
1399   *
1400   * @permission ohos.permission.SET_TELEPHONY_STATE
1401   * @param { 'mmiCodeResult' } type - Event type. Indicates the mmiCodeResult event to unsubscribe from.
1402   * @param { Callback<MmiCodeResults> } callback - Indicates the callback used to cancel getting mmicode registered listening.
1403   * @throws { BusinessError } 201 - Permission denied.
1404   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1405   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1406   * 2. Incorrect parameters types;
1407   * @throws { BusinessError } 8300001 - Invalid parameter value.
1408   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1409   * @throws { BusinessError } 8300003 - System internal error.
1410   * @throws { BusinessError } 8300999 - Unknown error code.
1411   * @syscap SystemCapability.Telephony.CallManager
1412   * @systemapi Hide this for inner system use.
1413   * @since 9
1414   */
1415  function off(type: 'mmiCodeResult', callback?: Callback<MmiCodeResults>): void;
1416
1417  /**
1418   * Subscribe to the audioDeviceChange event.
1419   *
1420   * @permission ohos.permission.SET_TELEPHONY_STATE
1421   * @param { 'audioDeviceChange' } type - Event type. Indicates the audioDeviceChange event to be subscribed to.
1422   * @param { Callback<AudioDeviceCallbackInfo> } callback - Indicates the callback for getting the result of Current AudioDevice.
1423   * @throws { BusinessError } 201 - Permission denied.
1424   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1425   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1426   * 2. Incorrect parameters types;
1427   * @throws { BusinessError } 8300001 - Invalid parameter value.
1428   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1429   * @throws { BusinessError } 8300003 - System internal error.
1430   * @throws { BusinessError } 8300999 - Unknown error code.
1431   * @syscap SystemCapability.Telephony.CallManager
1432   * @systemapi Hide this for inner system use.
1433   * @since 10
1434   */
1435  function on(type: 'audioDeviceChange', callback: Callback<AudioDeviceCallbackInfo>): void;
1436
1437  /**
1438   * Unsubscribe from the audioDeviceChange event.
1439   *
1440   * @permission ohos.permission.SET_TELEPHONY_STATE
1441   * @param { 'audioDeviceChange' } type - Event type. Indicates the audioDeviceChange event to unsubscribe from.
1442   * @param { Callback<AudioDeviceCallbackInfo> } callback - Indicates the callback for getting the result of Current AudioDevice.
1443   * @throws { BusinessError } 201 - Permission denied.
1444   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1445   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1446   * 2. Incorrect parameters types;
1447   * @throws { BusinessError } 8300001 - Invalid parameter value.
1448   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1449   * @throws { BusinessError } 8300003 - System internal error.
1450   * @throws { BusinessError } 8300999 - Unknown error code.
1451   * @syscap SystemCapability.Telephony.CallManager
1452   * @systemapi Hide this for inner system use.
1453   * @since 10
1454   */
1455  function off(type: 'audioDeviceChange', callback?: Callback<AudioDeviceCallbackInfo>): void;
1456
1457  /**
1458   * Subscribe to the postDialDelay event.
1459   *
1460   * @permission ohos.permission.SET_TELEPHONY_STATE
1461   * @param { 'postDialDelay' } type - Event type. Indicates the postDialDelay event to be subscribed to.
1462   * @param { Callback<string> } callback - Indicates the callback for getting the result of post-dial string.
1463   * @throws { BusinessError } 201 - Permission denied.
1464   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1465   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1466   * 2. Incorrect parameters types;
1467   * @throws { BusinessError } 8300001 - Invalid parameter value.
1468   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1469   * @throws { BusinessError } 8300003 - System internal error.
1470   * @throws { BusinessError } 8300999 - Unknown error code.
1471   * @syscap SystemCapability.Telephony.CallManager
1472   * @systemapi Hide this for inner system use.
1473   * @since 11
1474   */
1475  function on(type: 'postDialDelay', callback: Callback<string>): void;
1476
1477  /**
1478   * Unsubscribe from the postDialDelay event.
1479   *
1480   * @permission ohos.permission.SET_TELEPHONY_STATE
1481   * @param { 'postDialDelay' } type - Event type. Indicates the postDialDelay event to unsubscribe from.
1482   * @param { Callback<string> } callback - Indicates the callback for getting the result of post-dial string.
1483   * @throws { BusinessError } 201 - Permission denied.
1484   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1485   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1486   * 2. Incorrect parameters types;
1487   * @throws { BusinessError } 8300001 - Invalid parameter value.
1488   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1489   * @throws { BusinessError } 8300003 - System internal error.
1490   * @throws { BusinessError } 8300999 - Unknown error code.
1491   * @syscap SystemCapability.Telephony.CallManager
1492   * @systemapi Hide this for inner system use.
1493   * @since 11
1494   */
1495  function off(type: 'postDialDelay', callback?: Callback<string>): void;
1496
1497  /**
1498   * Judge whether to allow another new call.
1499   *
1500   * @param { AsyncCallback<boolean> } callback - The callback of isNewCallAllowed. Returns {@code true} if
1501   * the device currently allows new calls; returns {@code false} otherwise.
1502   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1503   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1504   * 2. Incorrect parameters types;
1505   * @throws { BusinessError } 8300001 - Invalid parameter value.
1506   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1507   * @throws { BusinessError } 8300003 - System internal error.
1508   * @throws { BusinessError } 8300999 - Unknown error code.
1509   * @syscap SystemCapability.Telephony.CallManager
1510   * @systemapi Hide this for inner system use.
1511   * @since 8
1512   */
1513  function isNewCallAllowed(callback: AsyncCallback<boolean>): void;
1514
1515  /**
1516   * Judge whether to allow another new call.
1517   *
1518   * @returns { Promise<boolean> } Returns {@code true} If the device currently allows new calls.
1519   * Returns {@code false} otherwise.
1520   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1521   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1522   * @throws { BusinessError } 8300003 - System internal error.
1523   * @throws { BusinessError } 8300999 - Unknown error code.
1524   * @syscap SystemCapability.Telephony.CallManager
1525   * @systemapi Hide this for inner system use.
1526   * @since 8
1527   */
1528  function isNewCallAllowed(): Promise<boolean>;
1529
1530  /**
1531   * Split conference call.
1532   *
1533   * @param { number } callId - Indicates the identifier of the call.
1534   * @param { AsyncCallback<void> } callback - The callback of separateConference.
1535   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1536   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1537   * 2. Incorrect parameters types;
1538   * @throws { BusinessError } 8300001 - Invalid parameter value.
1539   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1540   * @throws { BusinessError } 8300003 - System internal error.
1541   * @throws { BusinessError } 8300008 - Conference call is not active.
1542   * @throws { BusinessError } 8300999 - Unknown error code.
1543   * @syscap SystemCapability.Telephony.CallManager
1544   * @systemapi Hide this for inner system use.
1545   * @since 11
1546   */
1547  function separateConference(callId: number, callback: AsyncCallback<void>): void;
1548
1549  /**
1550   * Split conference call.
1551   *
1552   * @param { number } callId - Indicates the identifier of the call.
1553   * @returns { Promise<void> } The promise returned by the separateConference.
1554   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1555   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1556   * 2. Incorrect parameters types;
1557   * @throws { BusinessError } 8300001 - Invalid parameter value.
1558   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1559   * @throws { BusinessError } 8300003 - System internal error.
1560   * @throws { BusinessError } 8300008 - Conference call is not active.
1561   * @throws { BusinessError } 8300999 - Unknown error code.
1562   * @syscap SystemCapability.Telephony.CallManager
1563   * @systemapi Hide this for inner system use.
1564   * @since 11
1565   */
1566  function separateConference(callId: number): Promise<void>;
1567
1568  /**
1569   * Get call barring status.
1570   *
1571   * @permission ohos.permission.GET_TELEPHONY_STATE
1572   * @param { number } slotId - Indicates the card slot index number,
1573   * ranging from 0 to the maximum card slot index number supported by the device.
1574   * @param { CallRestrictionType } type - Indicates which type of call restriction to obtain.
1575   * @param { AsyncCallback<RestrictionStatus> } callback - Indicates the callback for getting the call restriction status.
1576   * @throws { BusinessError } 201 - Permission denied.
1577   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1578   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1579   * 2. Incorrect parameters types;
1580   * @throws { BusinessError } 801 - Capability not supported.
1581   * @throws { BusinessError } 8300001 - Invalid parameter value.
1582   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1583   * @throws { BusinessError } 8300003 - System internal error.
1584   * @syscap SystemCapability.Telephony.CallManager
1585   * @systemapi Hide this for inner system use.
1586   * @since 8
1587   */
1588  function getCallRestrictionStatus(slotId: number, type: CallRestrictionType, callback: AsyncCallback<RestrictionStatus>): void;
1589
1590  /**
1591   * Get call barring status.
1592   *
1593   * @permission ohos.permission.GET_TELEPHONY_STATE
1594   * @param { number } slotId - Indicates the card slot index number,
1595   * ranging from 0 to the maximum card slot index number supported by the device.
1596   * @param { CallRestrictionType } type - Indicates which type of call restriction to obtain.
1597   * @returns { Promise<RestrictionStatus> } Returns the call restriction status.
1598   * @throws { BusinessError } 201 - Permission denied.
1599   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1600   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1601   * 2. Incorrect parameters types;
1602   * @throws { BusinessError } 801 - Capability not supported.
1603   * @throws { BusinessError } 8300001 - Invalid parameter value.
1604   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1605   * @throws { BusinessError } 8300003 - System internal error.
1606   * @syscap SystemCapability.Telephony.CallManager
1607   * @systemapi Hide this for inner system use.
1608   * @since 8
1609   */
1610  function getCallRestrictionStatus(slotId: number, type: CallRestrictionType): Promise<RestrictionStatus>;
1611
1612  /**
1613   * Set call barring status.
1614   *
1615   * @permission ohos.permission.SET_TELEPHONY_STATE
1616   * @param { number } slotId - Indicates the card slot index number,
1617   * ranging from 0 to the maximum card slot index number supported by the device.
1618   * @param { CallRestrictionInfo } info - Indicates the set call restriction information.
1619   * @param { AsyncCallback<void> } callback - The callback of setCallRestriction.
1620   * @throws { BusinessError } 201 - Permission denied.
1621   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1622   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1623   * 2. Incorrect parameters types;
1624   * @throws { BusinessError } 801 - Capability not supported.
1625   * @throws { BusinessError } 8300001 - Invalid parameter value.
1626   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1627   * @throws { BusinessError } 8300003 - System internal error.
1628   * @syscap SystemCapability.Telephony.CallManager
1629   * @systemapi Hide this for inner system use.
1630   * @since 8
1631   */
1632  function setCallRestriction(slotId: number, info: CallRestrictionInfo, callback: AsyncCallback<void>): void;
1633
1634  /**
1635   * Set call barring status.
1636   *
1637   * @permission ohos.permission.SET_TELEPHONY_STATE
1638   * @param { number } slotId - Indicates the card slot index number,
1639   * ranging from 0 to the maximum card slot index number supported by the device.
1640   * @param { CallRestrictionInfo } info - Indicates the set call restriction information.
1641   * @returns { Promise<void> } The promise returned by the setCallRestriction.
1642   * @throws { BusinessError } 201 - Permission denied.
1643   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1644   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1645   * 2. Incorrect parameters types;
1646   * @throws { BusinessError } 801 - Capability not supported.
1647   * @throws { BusinessError } 8300001 - Invalid parameter value.
1648   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1649   * @throws { BusinessError } 8300003 - System internal error.
1650   * @syscap SystemCapability.Telephony.CallManager
1651   * @systemapi Hide this for inner system use.
1652   * @since 8
1653   */
1654  function setCallRestriction(slotId: number, info: CallRestrictionInfo): Promise<void>;
1655
1656  /**
1657   * Set call barring password.
1658   *
1659   * @permission ohos.permission.SET_TELEPHONY_STATE
1660   * @param { number } slotId - Indicates the card slot index number,
1661   * ranging from 0 to the maximum card slot index number supported by the device.
1662   * @param { string } oldPassword - Indicates the call restriction old password.
1663   * @param { string } newPassword - Indicates the call restriction new password.
1664   * @param { AsyncCallback<void> } callback - The callback of setCallRestrictionPassword.
1665   * @throws { BusinessError } 201 - Permission denied.
1666   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1667   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1668   * 2. Incorrect parameters types;
1669   * @throws { BusinessError } 801 - Capability not supported.
1670   * @throws { BusinessError } 8300001 - Invalid parameter value.
1671   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1672   * @throws { BusinessError } 8300003 - System internal error.
1673   * @syscap SystemCapability.Telephony.CallManager
1674   * @systemapi Hide this for inner system use.
1675   * @since 10
1676   */
1677  function setCallRestrictionPassword(slotId: number, oldPassword: string, newPassword: string, callback: AsyncCallback<void>): void;
1678
1679  /**
1680   * Set call barring password.
1681   *
1682   * @permission ohos.permission.SET_TELEPHONY_STATE
1683   * @param { number } slotId - Indicates the card slot index number,
1684   * ranging from 0 to the maximum card slot index number supported by the device.
1685   * @param { string } oldPassword - Indicates the call restriction old password.
1686   * @param { string } newPassword - Indicates the call restriction new password.
1687   * @returns { Promise<void> } The promise returned by the setCallRestrictionPassword.
1688   * @throws { BusinessError } 201 - Permission denied.
1689   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1690   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1691   * 2. Incorrect parameters types;
1692   * @throws { BusinessError } 801 - Capability not supported.
1693   * @throws { BusinessError } 8300001 - Invalid parameter value.
1694   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1695   * @throws { BusinessError } 8300003 - System internal error.
1696   * @syscap SystemCapability.Telephony.CallManager
1697   * @systemapi Hide this for inner system use.
1698   * @since 10
1699   */
1700  function setCallRestrictionPassword(slotId: number, oldPassword: string, newPassword: string): Promise<void>;
1701
1702  /**
1703   * Get call forwarding information.
1704   *
1705   * @permission ohos.permission.GET_TELEPHONY_STATE
1706   * @param { number } slotId - Indicates the card slot index number,
1707   * ranging from 0 to the maximum card slot index number supported by the device.
1708   * @param { CallTransferType } type - Indicates which type of call forwarding to obtain.
1709   * @param { AsyncCallback<CallTransferResult> } callback - Indicates the callback for getting the call forwarding status.
1710   * @throws { BusinessError } 201 - Permission denied.
1711   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1712   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1713   * 2. Incorrect parameters types;
1714   * @throws { BusinessError } 801 - Capability not supported.
1715   * @throws { BusinessError } 8300001 - Invalid parameter value.
1716   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1717   * @throws { BusinessError } 8300003 - System internal error.
1718   * @syscap SystemCapability.Telephony.CallManager
1719   * @systemapi Hide this for inner system use.
1720   * @since 8
1721   */
1722  function getCallTransferInfo(slotId: number, type: CallTransferType, callback: AsyncCallback<CallTransferResult>): void;
1723
1724  /**
1725   * Get call forwarding information.
1726   *
1727   * @permission ohos.permission.GET_TELEPHONY_STATE
1728   * @param { number } slotId - Indicates the card slot index number,
1729   * ranging from 0 to the maximum card slot index number supported by the device.
1730   * @param { CallTransferType } type - Indicates which type of call forwarding to obtain.
1731   * @returns { Promise<CallTransferResult> } Returns the call forwarding status.
1732   * @throws { BusinessError } 201 - Permission denied.
1733   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1734   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1735   * 2. Incorrect parameters types;
1736   * @throws { BusinessError } 801 - Capability not supported.
1737   * @throws { BusinessError } 8300001 - Invalid parameter value.
1738   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1739   * @throws { BusinessError } 8300003 - System internal error.
1740   * @syscap SystemCapability.Telephony.CallManager
1741   * @systemapi Hide this for inner system use.
1742   * @since 8
1743   */
1744  function getCallTransferInfo(slotId: number, type: CallTransferType): Promise<CallTransferResult>;
1745
1746  /**
1747   * Set call forwarding information.
1748   *
1749   * @permission ohos.permission.SET_TELEPHONY_STATE
1750   * @param { number } slotId - Indicates the card slot index number,
1751   * ranging from 0 to the maximum card slot index number supported by the device.
1752   * @param { CallTransferInfo } info - Indicates the set call forwarding information.
1753   * @param { AsyncCallback<void> } callback - The callback of setCallTransfer.
1754   * @throws { BusinessError } 201 - Permission denied.
1755   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1756   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1757   * 2. Incorrect parameters types;
1758   * @throws { BusinessError } 801 - Capability not supported.
1759   * @throws { BusinessError } 8300001 - Invalid parameter value.
1760   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1761   * @throws { BusinessError } 8300003 - System internal error.
1762   * @syscap SystemCapability.Telephony.CallManager
1763   * @systemapi Hide this for inner system use.
1764   * @since 8
1765   */
1766  function setCallTransfer(slotId: number, info: CallTransferInfo, callback: AsyncCallback<void>): void;
1767
1768  /**
1769   * Set call forwarding information.
1770   *
1771   * @permission ohos.permission.SET_TELEPHONY_STATE
1772   * @param { number } slotId - Indicates the card slot index number,
1773   * ranging from 0 to the maximum card slot index number supported by the device.
1774   * @param { CallTransferInfo } info - Indicates the set call forwarding information.
1775   * @returns { Promise<void> } The promise returned by the setCallTransfer.
1776   * @throws { BusinessError } 201 - Permission denied.
1777   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1778   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1779   * 2. Incorrect parameters types;
1780   * @throws { BusinessError } 801 - Capability not supported.
1781   * @throws { BusinessError } 8300001 - Invalid parameter value.
1782   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1783   * @throws { BusinessError } 8300003 - System internal error.
1784   * @syscap SystemCapability.Telephony.CallManager
1785   * @systemapi Hide this for inner system use.
1786   * @since 8
1787   */
1788  function setCallTransfer(slotId: number, info: CallTransferInfo): Promise<void>;
1789
1790  /**
1791   * Judge whether there is a ringing call.
1792   *
1793   * @permission ohos.permission.SET_TELEPHONY_STATE
1794   * @param { AsyncCallback<boolean> } callback - The callback of isRinging.
1795   * Returns {@code true} if the device is ringing; returns {@code false} otherwise.
1796   * @throws { BusinessError } 201 - Permission denied.
1797   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1798   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1799   * 2. Incorrect parameters types;
1800   * @throws { BusinessError } 8300001 - Invalid parameter value.
1801   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1802   * @throws { BusinessError } 8300003 - System internal error.
1803   * @throws { BusinessError } 8300999 - Unknown error code.
1804   * @syscap SystemCapability.Telephony.CallManager
1805   * @systemapi Hide this for inner system use.
1806   * @since 8
1807   */
1808  function isRinging(callback: AsyncCallback<boolean>): void;
1809
1810  /**
1811   * Judge whether there is a ringing call.
1812   *
1813   * @permission ohos.permission.SET_TELEPHONY_STATE
1814   * @returns { Promise<boolean> } Returns {@code true} if the device is ringing; returns {@code false} otherwise.
1815   * @throws { BusinessError } 201 - Permission denied.
1816   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1817   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1818   * @throws { BusinessError } 8300003 - System internal error.
1819   * @throws { BusinessError } 8300999 - Unknown error code.
1820   * @syscap SystemCapability.Telephony.CallManager
1821   * @systemapi Hide this for inner system use.
1822   * @since 8
1823   */
1824  function isRinging(): Promise<boolean>;
1825
1826  /**
1827   * Set mute during a call.
1828   *
1829   * @param { AsyncCallback<void> } callback - The callback of setMuted.
1830   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1831   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1832   * 2. Incorrect parameters types;
1833   * @throws { BusinessError } 8300001 - Invalid parameter value.
1834   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1835   * @throws { BusinessError } 8300003 - System internal error.
1836   * @throws { BusinessError } 8300999 - Unknown error code.
1837   * @syscap SystemCapability.Telephony.CallManager
1838   * @systemapi Hide this for inner system use.
1839   * @since 8
1840   */
1841  function setMuted(callback: AsyncCallback<void>): void;
1842
1843  /**
1844   * Set mute during a call.
1845   *
1846   * @returns { Promise<void> } The promise returned by the setMuted.
1847   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1848   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1849   * @throws { BusinessError } 8300003 - System internal error.
1850   * @throws { BusinessError } 8300999 - Unknown error code.
1851   * @syscap SystemCapability.Telephony.CallManager
1852   * @systemapi Hide this for inner system use.
1853   * @since 8
1854   */
1855  function setMuted(): Promise<void>;
1856
1857  /**
1858   * Unmute during a call.
1859   *
1860   * @param { AsyncCallback<void> } callback - The callback of cancelMuted.
1861   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1862   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1863   * 2. Incorrect parameters types;
1864   * @throws { BusinessError } 8300001 - Invalid parameter value.
1865   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1866   * @throws { BusinessError } 8300003 - System internal error.
1867   * @throws { BusinessError } 8300999 - Unknown error code.
1868   * @syscap SystemCapability.Telephony.CallManager
1869   * @systemapi Hide this for inner system use.
1870   * @since 8
1871   */
1872  function cancelMuted(callback: AsyncCallback<void>): void;
1873
1874  /**
1875   * Unmute during a call.
1876   *
1877   * @returns { Promise<void> } The promise returned by the cancelMuted.
1878   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1879   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1880   * @throws { BusinessError } 8300003 - System internal error.
1881   * @throws { BusinessError } 8300999 - Unknown error code.
1882   * @syscap SystemCapability.Telephony.CallManager
1883   * @systemapi Hide this for inner system use.
1884   * @since 8
1885   */
1886  function cancelMuted(): Promise<void>;
1887
1888  /**
1889   * Set the audio device.
1890   *
1891   * @permission ohos.permission.SET_TELEPHONY_STATE
1892   * @param { AudioDevice } device - Indicates the device of audio.
1893   * @param { AsyncCallback<void> } callback - The callback of setAudioDevice.
1894   * @throws { BusinessError } 201 - Permission denied.
1895   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1896   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1897   * 2. Incorrect parameters types;
1898   * @throws { BusinessError } 8300001 - Invalid parameter value.
1899   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1900   * @throws { BusinessError } 8300003 - System internal error.
1901   * @throws { BusinessError } 8300999 - Unknown error code.
1902   * @syscap SystemCapability.Telephony.CallManager
1903   * @systemapi Hide this for inner system use.
1904   * @since 8
1905   */
1906  function setAudioDevice(device: AudioDevice, callback: AsyncCallback<void>): void;
1907
1908  /**
1909   * Set the audio device.
1910   *
1911   * @permission ohos.permission.SET_TELEPHONY_STATE
1912   * @param { AudioDevice } device - Indicates the device of audio.
1913   * @returns { Promise<void> } The promise returned by the setAudioDevice.
1914   * @throws { BusinessError } 201 - Permission denied.
1915   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1916   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1917   * 2. Incorrect parameters types;
1918   * @throws { BusinessError } 8300001 - Invalid parameter value.
1919   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1920   * @throws { BusinessError } 8300003 - System internal error.
1921   * @throws { BusinessError } 8300999 - Unknown error code.
1922   * @syscap SystemCapability.Telephony.CallManager
1923   * @systemapi Hide this for inner system use.
1924   * @since 10
1925   */
1926  function setAudioDevice(device: AudioDevice): Promise<void>;
1927
1928  /**
1929   * Join the conference call.
1930   *
1931   * @param { number } mainCallId - Indicates the identifier of the main call.
1932   * @param { Array<string> } callNumberList - Indicates a call list.
1933   * @param { AsyncCallback<void> } callback - The callback of joinConference.
1934   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1935   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1936   * 2. Incorrect parameters types;
1937   * @throws { BusinessError } 8300001 - Invalid parameter value.
1938   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1939   * @throws { BusinessError } 8300003 - System internal error.
1940   * @throws { BusinessError } 8300999 - Unknown error code.
1941   * @syscap SystemCapability.Telephony.CallManager
1942   * @systemapi Hide this for inner system use.
1943   * @since 8
1944   */
1945  function joinConference(mainCallId: number, callNumberList: Array<string>, callback: AsyncCallback<void>): void;
1946
1947  /**
1948   * Join the conference call.
1949   *
1950   * @param { number } mainCallId - Indicates the identifier of the main call.
1951   * @param { Array<string> } callNumberList - Indicates a call list.
1952   * @returns { Promise<void> } The promise returned by the joinConference.
1953   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1954   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1955   * 2. Incorrect parameters types;
1956   * @throws { BusinessError } 8300001 - Invalid parameter value.
1957   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1958   * @throws { BusinessError } 8300003 - System internal error.
1959   * @throws { BusinessError } 8300999 - Unknown error code.
1960   * @syscap SystemCapability.Telephony.CallManager
1961   * @systemapi Hide this for inner system use.
1962   * @since 8
1963   */
1964  function joinConference(mainCallId: number, callNumberList: Array<string>): Promise<void>;
1965
1966  /**
1967   * Kick out call from the conference call.
1968   *
1969   * @permission ohos.permission.PLACE_CALL
1970   * @param { number } callId - Indicates the identifier of the call which kick out.
1971   * @param { AsyncCallback<void> } callback - The callback of kickOutFromConference.
1972   * @throws { BusinessError } 201 - Permission denied.
1973   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1974   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1975   * 2. Incorrect parameters types;
1976   * @throws { BusinessError } 8300001 - Invalid parameter value.
1977   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1978   * @throws { BusinessError } 8300003 - System internal error.
1979   * @throws { BusinessError } 8300999 - Unknown error code.
1980   * @syscap SystemCapability.Telephony.CallManager
1981   * @systemapi Hide this for inner system use.
1982   * @since 10
1983   */
1984  function kickOutFromConference(callId: number, callback: AsyncCallback<void>): void;
1985
1986  /**
1987   * Kick out call from the conference call.
1988   *
1989   * @permission ohos.permission.PLACE_CALL
1990   * @param { number } callId - Indicates the identifier of the call which kick out.
1991   * @returns { Promise<void> } The promise returned by the kickOutFromConference.
1992   * @throws { BusinessError } 201 - Permission denied.
1993   * @throws { BusinessError } 202 - Non-system applications use system APIs.
1994   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
1995   * 2. Incorrect parameters types;
1996   * @throws { BusinessError } 8300001 - Invalid parameter value.
1997   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
1998   * @throws { BusinessError } 8300003 - System internal error.
1999   * @throws { BusinessError } 8300999 - Unknown error code.
2000   * @syscap SystemCapability.Telephony.CallManager
2001   * @systemapi Hide this for inner system use.
2002   * @since 10
2003   */
2004  function kickOutFromConference(callId: number): Promise<void>;
2005
2006  /**
2007   * Update Ims call mode.
2008   *
2009   * @param { number } callId - Indicates the identifier of the call.
2010   * @param { ImsCallMode } mode - Indicates the mode of the ims call.
2011   * @param { AsyncCallback<void> } callback - The callback of updateImsCallMode.
2012   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2013   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2014   * 2. Incorrect parameters types;
2015   * @throws { BusinessError } 8300001 - Invalid parameter value.
2016   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2017   * @throws { BusinessError } 8300003 - System internal error.
2018   * @throws { BusinessError } 8300999 - Unknown error code.
2019   * @syscap SystemCapability.Telephony.CallManager
2020   * @systemapi Hide this for inner system use.
2021   * @since 8
2022   */
2023  function updateImsCallMode(callId: number, mode: ImsCallMode, callback: AsyncCallback<void>): void;
2024
2025  /**
2026   * Update Ims call mode.
2027   *
2028   * @param { number } callId - Indicates the identifier of the call.
2029   * @param { ImsCallMode } mode - Indicates the mode of the ims call.
2030   * @returns { Promise<void> } The promise returned by the updateImsCallMode.
2031   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2032   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2033   * 2. Incorrect parameters types;
2034   * @throws { BusinessError } 8300001 - Invalid parameter value.
2035   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2036   * @throws { BusinessError } 8300003 - System internal error.
2037   * @throws { BusinessError } 8300999 - Unknown error code.
2038   * @syscap SystemCapability.Telephony.CallManager
2039   * @systemapi Hide this for inner system use.
2040   * @since 8
2041   */
2042  function updateImsCallMode(callId: number, mode: ImsCallMode): Promise<void>;
2043
2044  /**
2045   * Cancel call upgrade when voice call upgrade to video call.
2046   *
2047   * @permission ohos.permission.PLACE_CALL
2048   * @param { number } callId - Indicates the identifier of the call.
2049   * @returns { Promise<void> } The promise returned by the cancelCallUpgrade.
2050   * @throws { BusinessError } 201 - Permission denied.
2051   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2052   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2053   * 2. Incorrect parameters types;
2054   * @throws { BusinessError } 8300001 - Invalid parameter value.
2055   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2056   * @throws { BusinessError } 8300003 - System internal error.
2057   * @throws { BusinessError } 8300999 - Unknown error code.
2058   * @syscap SystemCapability.Telephony.CallManager
2059   * @systemapi Hide this for inner system use.
2060   * @since 11
2061   */
2062  function cancelCallUpgrade(callId: number): Promise<void>;
2063
2064  /**
2065   * Control camera to open/close/switch camera by cameraId when video call.
2066   *
2067   * @permission ohos.permission.SET_TELEPHONY_STATE
2068   * @param { number } callId - Indicates the identifier of the call.
2069   * @param { string } cameraId - Indicates the identifier of the camera id.
2070   * @returns { Promise<void> } The promise returned by the controlCamera.
2071   * @throws { BusinessError } 201 - Permission denied.
2072   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2073   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2074   * 2. Incorrect parameters types;
2075   * @throws { BusinessError } 8300001 - Invalid parameter value.
2076   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2077   * @throws { BusinessError } 8300003 - System internal error.
2078   * @throws { BusinessError } 8300999 - Unknown error code.
2079   * @syscap SystemCapability.Telephony.CallManager
2080   * @systemapi Hide this for inner system use.
2081   * @since 11
2082   */
2083  function controlCamera(callId: number, cameraId: string): Promise<void>;
2084
2085  /**
2086   * Set preview surface when video call.
2087   *
2088   * @permission ohos.permission.SET_TELEPHONY_STATE
2089   * @param { number } callId - Indicates the identifier of the call.
2090   * @param { string } surfaceId - Indicates the identifier of the preview surface id.
2091   * @returns { Promise<void> } The promise returned by the setPreviewWindow.
2092   * @throws { BusinessError } 201 - Permission denied.
2093   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2094   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2095   * 2. Incorrect parameters types;
2096   * @throws { BusinessError } 8300001 - Invalid parameter value.
2097   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2098   * @throws { BusinessError } 8300003 - System internal error.
2099   * @throws { BusinessError } 8300999 - Unknown error code.
2100   * @syscap SystemCapability.Telephony.CallManager
2101   * @systemapi Hide this for inner system use.
2102   * @since 11
2103   */
2104  function setPreviewSurface(callId: number, surfaceId: string): Promise<void>;
2105
2106  /**
2107   * Set display surface when video call.
2108   *
2109   * @permission ohos.permission.SET_TELEPHONY_STATE
2110   * @param { number } callId - Indicates the identifier of the call.
2111   * @param { string } surfaceId - Indicates the identifier of the display surface id.
2112   * @returns { Promise<void> } The promise returned by the setDisplayWindow.
2113   * @throws { BusinessError } 201 - Permission denied.
2114   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2115   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2116   * 2. Incorrect parameters types;
2117   * @throws { BusinessError } 8300001 - Invalid parameter value.
2118   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2119   * @throws { BusinessError } 8300003 - System internal error.
2120   * @throws { BusinessError } 8300999 - Unknown error code.
2121   * @syscap SystemCapability.Telephony.CallManager
2122   * @systemapi Hide this for inner system use.
2123   * @since 11
2124   */
2125  function setDisplaySurface(callId: number, surfaceId: string): Promise<void>;
2126
2127  /**
2128   * Set device direction when video call.
2129   *
2130   * @permission ohos.permission.SET_TELEPHONY_STATE
2131   * @param { number } callId - Indicates the identifier of the call.
2132   * @param { DeviceDirection } deviceDirection - Indicates the identifier of the direction for the display.
2133   * @returns { Promise<void> } The promise returned by the setDeviceDirection.
2134   * @throws { BusinessError } 201 - Permission denied.
2135   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2136   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2137   * 2. Incorrect parameters types;
2138   * @throws { BusinessError } 8300001 - Invalid parameter value.
2139   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2140   * @throws { BusinessError } 8300003 - System internal error.
2141   * @throws { BusinessError } 8300999 - Unknown error code.
2142   * @syscap SystemCapability.Telephony.CallManager
2143   * @systemapi Hide this for inner system use.
2144   * @since 11
2145   */
2146  function setDeviceDirection(callId: number, deviceDirection: DeviceDirection): Promise<void>;
2147
2148  /**
2149   * Subscribe to the imsCallModeChange event.
2150   *
2151   * @permission ohos.permission.SET_TELEPHONY_STATE
2152   * @param { 'imsCallModeChange' } type - Event type. Indicates the imsCallModeChange event to be subscribed to.
2153   * @param { Callback<ImsCallModeInfo> } callback - Indicates the callback for
2154   * getting the result of ImsCallModeInfo details.
2155   * @throws { BusinessError } 201 - Permission denied.
2156   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2157   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2158   * 2. Incorrect parameters types;
2159   * @throws { BusinessError } 8300001 - Invalid parameter value.
2160   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2161   * @throws { BusinessError } 8300003 - System internal error.
2162   * @throws { BusinessError } 8300999 - Unknown error code.
2163   * @syscap SystemCapability.Telephony.CallManager
2164   * @systemapi Hide this for inner system use.
2165   * @since 11
2166   */
2167  function on(type: 'imsCallModeChange', callback: Callback<ImsCallModeInfo>): void;
2168
2169  /**
2170   * Unsubscribe from the imsCallModeChange event.
2171   *
2172   * @permission ohos.permission.SET_TELEPHONY_STATE
2173   * @param { 'imsCallModeChange' } type - Event type. Indicates the imsCallModeChange event to unsubscribe from.
2174   * @param { Callback<ImsCallModeInfo> } callback - Indicates the callback to unsubscribe from
2175   * the imsCallModeChange event.
2176   * @throws { BusinessError } 201 - Permission denied.
2177   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2178   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2179   * 2. Incorrect parameters types;
2180   * @throws { BusinessError } 8300001 - Invalid parameter value.
2181   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2182   * @throws { BusinessError } 8300003 - System internal error.
2183   * @throws { BusinessError } 8300999 - Unknown error code.
2184   * @syscap SystemCapability.Telephony.CallManager
2185   * @systemapi Hide this for inner system use.
2186   * @since 11
2187   */
2188  function off(type: 'imsCallModeChange', callback?: Callback<ImsCallModeInfo>): void;
2189
2190  /**
2191   * Subscribe to the callSessionEvent.
2192   *
2193   * @permission ohos.permission.SET_TELEPHONY_STATE
2194   * @param { 'callSessionEvent' } type - Event type. Indicates the callSessionEvent
2195   * event to be subscribed to.
2196   * @param { Callback<CallSessionEvent> } callback - Indicates the callback for
2197   * getting the result of CallSessionEvent.
2198   * @throws { BusinessError } 201 - Permission denied.
2199   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2200   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2201   * 2. Incorrect parameters types;
2202   * @throws { BusinessError } 8300001 - Invalid parameter value.
2203   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2204   * @throws { BusinessError } 8300003 - System internal error.
2205   * @throws { BusinessError } 8300999 - Unknown error code.
2206   * @syscap SystemCapability.Telephony.CallManager
2207   * @systemapi Hide this for inner system use.
2208   * @since 11
2209   */
2210  function on(type: 'callSessionEvent', callback: Callback<CallSessionEvent>): void;
2211
2212  /**
2213   * Unsubscribe from the callSessionEvent.
2214   *
2215   * @permission ohos.permission.SET_TELEPHONY_STATE
2216   * @param { 'callSessionEvent' } type - Event type. Indicates the callSessionEventChange event to
2217   * unsubscribe from.
2218   * @param { Callback<CallSessionEvent> } callback - Indicates the callback to unsubscribe from
2219   * the CallSessionEvent event.
2220   * @throws { BusinessError } 201 - Permission denied.
2221   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2222   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2223   * 2. Incorrect parameters types;
2224   * @throws { BusinessError } 8300001 - Invalid parameter value.
2225   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2226   * @throws { BusinessError } 8300003 - System internal error.
2227   * @throws { BusinessError } 8300999 - Unknown error code.
2228   * @syscap SystemCapability.Telephony.CallManager
2229   * @systemapi Hide this for inner system use.
2230   * @since 11
2231   */
2232  function off(type: 'callSessionEvent', callback?: Callback<CallSessionEvent>): void;
2233
2234  /**
2235   * Subscribe to the peerDimensionsChange event.
2236   *
2237   * @permission ohos.permission.SET_TELEPHONY_STATE
2238   * @param { 'peerDimensionsChange' } type - Event type. Indicates the peerDimensionsChange event
2239   * to be subscribed to.
2240   * @param { Callback<PeerDimensionsDetail> } callback - Indicates the callback for
2241   * getting the result of PeerDimensionsDetail details.
2242   * @throws { BusinessError } 201 - Permission denied.
2243   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2244   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2245   * 2. Incorrect parameters types;
2246   * @throws { BusinessError } 8300001 - Invalid parameter value.
2247   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2248   * @throws { BusinessError } 8300003 - System internal error.
2249   * @throws { BusinessError } 8300999 - Unknown error code.
2250   * @syscap SystemCapability.Telephony.CallManager
2251   * @systemapi Hide this for inner system use.
2252   * @since 11
2253   */
2254  function on(type: 'peerDimensionsChange', callback: Callback<PeerDimensionsDetail>): void;
2255
2256  /**
2257   * Unsubscribe from the peerDimensionsChange event.
2258   *
2259   * @permission ohos.permission.SET_TELEPHONY_STATE
2260   * @param { 'peerDimensionsChange' } type - Event type. Indicates the peerDimensionsChange event to
2261   * unsubscribe from.
2262   * @param { Callback<PeerDimensionsDetail> } callback - Indicates the callback to unsubscribe from
2263   * peerDimensionsChange event.
2264   * @throws { BusinessError } 201 - Permission denied.
2265   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2266   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2267   * 2. Incorrect parameters types;
2268   * @throws { BusinessError } 8300001 - Invalid parameter value.
2269   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2270   * @throws { BusinessError } 8300003 - System internal error.
2271   * @throws { BusinessError } 8300999 - Unknown error code.
2272   * @syscap SystemCapability.Telephony.CallManager
2273   * @systemapi Hide this for inner system use.
2274   * @since 11
2275   */
2276  function off(type: 'peerDimensionsChange', callback?: Callback<PeerDimensionsDetail>): void;
2277
2278  /**
2279   * Subscribe to the cameraCapabilitiesChange event.
2280   *
2281   * @permission ohos.permission.SET_TELEPHONY_STATE
2282   * @param { 'cameraCapabilitiesChange' } type - Event type. Indicates the cameraCapabilitiesChange event
2283   * to be subscribed to.
2284   * @param { Callback<CameraCapabilities> } callback - Indicates the callback for
2285   * getting the result of CameraCapabilities details.
2286   * @throws { BusinessError } 201 - Permission denied.
2287   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2288   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2289   * 2. Incorrect parameters types;
2290   * @throws { BusinessError } 8300001 - Invalid parameter value.
2291   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2292   * @throws { BusinessError } 8300003 - System internal error.
2293   * @throws { BusinessError } 8300999 - Unknown error code.
2294   * @syscap SystemCapability.Telephony.CallManager
2295   * @systemapi Hide this for inner system use.
2296   * @since 11
2297   */
2298  function on(type: 'cameraCapabilitiesChange', callback: Callback<CameraCapabilities>): void;
2299
2300  /**
2301   * Unsubscribe from the cameraCapabilitiesChange event.
2302   *
2303   * @permission ohos.permission.SET_TELEPHONY_STATE
2304   * @param { 'cameraCapabilitiesChange' } type - Event type. Indicates the cameraCapabilitiesChange event
2305   * to unsubscribe from.
2306   * @param { Callback<CameraCapabilities> } callback - Indicates the callback to unsubscribe from
2307   * cameraCapabilitiesChange event.
2308   * @throws { BusinessError } 201 - Permission denied.
2309   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2310   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2311   * 2. Incorrect parameters types;
2312   * @throws { BusinessError } 8300001 - Invalid parameter value.
2313   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2314   * @throws { BusinessError } 8300003 - System internal error.
2315   * @throws { BusinessError } 8300999 - Unknown error code.
2316   * @syscap SystemCapability.Telephony.CallManager
2317   * @systemapi Hide this for inner system use.
2318   * @since 11
2319   */
2320  function off(type: 'cameraCapabilitiesChange', callback?: Callback<CameraCapabilities>): void;
2321
2322  /**
2323   * Turn on Ims switch.
2324   *
2325   * @permission ohos.permission.SET_TELEPHONY_STATE
2326   * @param { number } slotId - Indicates the card slot index number,
2327   * ranging from 0 to the maximum card slot index number supported by the device.
2328   * @param { AsyncCallback<void> } callback - The callback of enableImsSwitch.
2329   * @throws { BusinessError } 201 - Permission denied.
2330   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2331   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2332   * 2. Incorrect parameters types;
2333   * @throws { BusinessError } 8300001 - Invalid parameter value.
2334   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2335   * @throws { BusinessError } 8300003 - System internal error.
2336   * @throws { BusinessError } 8300999 - Unknown error code.
2337   * @syscap SystemCapability.Telephony.CallManager
2338   * @systemapi Hide this for inner system use.
2339   * @since 8
2340   */
2341  function enableImsSwitch(slotId: number, callback: AsyncCallback<void>): void;
2342
2343  /**
2344   * Turn on Ims switch.
2345   *
2346   * @permission ohos.permission.SET_TELEPHONY_STATE
2347   * @param { number } slotId - Indicates the card slot index number,
2348   * ranging from 0 to the maximum card slot index number supported by the device.
2349   * @returns { Promise<void> } The promise returned by the enableImsSwitch.
2350   * @throws { BusinessError } 201 - Permission denied.
2351   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2352   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2353   * 2. Incorrect parameters types;
2354   * @throws { BusinessError } 8300001 - Invalid parameter value.
2355   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2356   * @throws { BusinessError } 8300003 - System internal error.
2357   * @throws { BusinessError } 8300999 - Unknown error code.
2358   * @syscap SystemCapability.Telephony.CallManager
2359   * @systemapi Hide this for inner system use.
2360   * @since 8
2361   */
2362  function enableImsSwitch(slotId: number): Promise<void>;
2363
2364  /**
2365   * Turn off Ims switch.
2366   *
2367   * @permission ohos.permission.SET_TELEPHONY_STATE
2368   * @param { number } slotId - Indicates the card slot index number,
2369   * ranging from 0 to the maximum card slot index number supported by the device.
2370   * @param { AsyncCallback<void> } callback - The callback of disableImsSwitch.
2371   * @throws { BusinessError } 201 - Permission denied.
2372   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2373   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2374   * 2. Incorrect parameters types;
2375   * @throws { BusinessError } 8300001 - Invalid parameter value.
2376   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2377   * @throws { BusinessError } 8300003 - System internal error.
2378   * @throws { BusinessError } 8300999 - Unknown error code.
2379   * @syscap SystemCapability.Telephony.CallManager
2380   * @systemapi Hide this for inner system use.
2381   * @since 8
2382   */
2383  function disableImsSwitch(slotId: number, callback: AsyncCallback<void>): void;
2384
2385  /**
2386   * Turn off Ims switch.
2387   *
2388   * @permission ohos.permission.SET_TELEPHONY_STATE
2389   * @param { number } slotId - Indicates the card slot index number,
2390   * ranging from 0 to the maximum card slot index number supported by the device.
2391   * @returns { Promise<void> } The promise returned by the disableImsSwitch.
2392   * @throws { BusinessError } 201 - Permission denied.
2393   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2394   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2395   * 2. Incorrect parameters types;
2396   * @throws { BusinessError } 8300001 - Invalid parameter value.
2397   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2398   * @throws { BusinessError } 8300003 - System internal error.
2399   * @throws { BusinessError } 8300999 - Unknown error code.
2400   * @syscap SystemCapability.Telephony.CallManager
2401   * @systemapi Hide this for inner system use.
2402   * @since 8
2403   */
2404  function disableImsSwitch(slotId: number): Promise<void>;
2405
2406  /**
2407   * Judge whether the Ims switch is enabled.
2408   *
2409   * @param { number } slotId - Indicates the card slot index number,
2410   * ranging from 0 to the maximum card slot index number supported by the device.
2411   * @param { AsyncCallback<boolean> } callback - The callback of isImsSwitchEnabled.
2412   * Returns {@code true} If the ims switch is on; returns {@code false} otherwise.
2413   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2414   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2415   * 2. Incorrect parameters types;
2416   * @throws { BusinessError } 8300001 - Invalid parameter value.
2417   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2418   * @throws { BusinessError } 8300003 - System internal error.
2419   * @throws { BusinessError } 8300999 - Unknown error code.
2420   * @syscap SystemCapability.Telephony.CallManager
2421   * @systemapi Hide this for inner system use.
2422   * @since 8
2423   */
2424  function isImsSwitchEnabled(slotId: number, callback: AsyncCallback<boolean>): void;
2425
2426  /**
2427   * Judge whether the Ims switch is enabled.
2428   *
2429   * @param { number } slotId - Indicates the card slot index number,
2430   * ranging from 0 to the maximum card slot index number supported by the device.
2431   * @returns { Promise<boolean> } Returns {@code true} If the ims switch is on; returns {@code false} otherwise.
2432   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2433   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2434   * 2. Incorrect parameters types;
2435   * @throws { BusinessError } 8300001 - Invalid parameter value.
2436   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2437   * @throws { BusinessError } 8300003 - System internal error.
2438   * @throws { BusinessError } 8300999 - Unknown error code.
2439   * @syscap SystemCapability.Telephony.CallManager
2440   * @systemapi Hide this for inner system use.
2441   * @since 8
2442   */
2443  function isImsSwitchEnabled(slotId: number): Promise<boolean>;
2444
2445  /**
2446   * Judge whether the Ims switch is enabled.
2447   *
2448   * @param { number } slotId - Indicates the card slot index number,
2449   * ranging from 0 to the maximum card slot index number supported by the device.
2450   * @returns { boolean } Returns {@code true} If the ims switch is on; returns {@code false} otherwise.
2451   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2452   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2453   * 2. Incorrect parameters types;
2454   * @throws { BusinessError } 8300001 - Invalid parameter value.
2455   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2456   * @throws { BusinessError } 8300003 - System internal error.
2457   * @throws { BusinessError } 8300999 - Unknown error code.
2458   * @syscap SystemCapability.Telephony.CallManager
2459   * @systemapi Hide this for inner system use.
2460   * @since 12
2461   */
2462  function isImsSwitchEnabledSync(slotId: number): boolean;
2463
2464  /**
2465   * Close unfinished ussd.
2466   *
2467   * @permission ohos.permission.SET_TELEPHONY_STATE
2468   * @param { number } slotId - Indicates the card slot index number,
2469   * ranging from 0 to the maximum card slot index number supported by the device.
2470   * @param { AsyncCallback<void> } callback - The callback of closeUnfinishedUssd.
2471   * @throws { BusinessError } 201 - Permission denied.
2472   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2473   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2474   * 2. Incorrect parameters types;
2475   * @throws { BusinessError } 8300001 - Invalid parameter value.
2476   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2477   * @throws { BusinessError } 8300003 - System internal error.
2478   * @throws { BusinessError } 8300999 - Unknown error code.
2479   * @syscap SystemCapability.Telephony.CallManager
2480   * @systemapi Hide this for inner system use.
2481   * @since 10
2482   */
2483  function closeUnfinishedUssd(slotId: number, callback: AsyncCallback<void>): void;
2484
2485  /**
2486   * Close unfinished ussd.
2487   *
2488   * @permission ohos.permission.SET_TELEPHONY_STATE
2489   * @param { number } slotId - Indicates the card slot index number,
2490   * ranging from 0 to the maximum card slot index number supported by the device.
2491   * @returns { Promise<void> } The promise returned by the closeUnfinishedUssd.
2492   * @throws { BusinessError } 201 - Permission denied.
2493   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2494   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2495   * 2. Incorrect parameters types;
2496   * @throws { BusinessError } 8300001 - Invalid parameter value.
2497   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2498   * @throws { BusinessError } 8300003 - System internal error.
2499   * @throws { BusinessError } 8300999 - Unknown error code.
2500   * @syscap SystemCapability.Telephony.CallManager
2501   * @systemapi Hide this for inner system use.
2502   * @since 10
2503   */
2504  function closeUnfinishedUssd(slotId: number): Promise<void>;
2505
2506  /**
2507   * Set switch state for voice over NR.
2508   *
2509   * @permission ohos.permission.SET_TELEPHONY_STATE
2510   * @param { number } slotId - Indicates the card slot index number,
2511   * ranging from 0 to the maximum card slot index number supported by the device.
2512   * @param { VoNRState } state - Indicates the VoNR state.
2513   * @param { AsyncCallback<void> } callback - The callback of setVoNRState.
2514   * @throws { BusinessError } 201 - Permission denied.
2515   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2516   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2517   * 2. Incorrect parameters types;
2518   * @throws { BusinessError } 8300001 - Invalid parameter value.
2519   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2520   * @throws { BusinessError } 8300003 - System internal error.
2521   * @throws { BusinessError } 8300999 - Unknown error code.
2522   * @syscap SystemCapability.Telephony.CallManager
2523   * @systemapi Hide this for inner system use.
2524   * @since 10
2525   */
2526  function setVoNRState(slotId: number, state: VoNRState, callback: AsyncCallback<void>): void;
2527
2528  /**
2529   * Set switch state for voice over NR.
2530   *
2531   * @permission ohos.permission.SET_TELEPHONY_STATE
2532   * @param { number } slotId - Indicates the card slot index number,
2533   * ranging from 0 to the maximum card slot index number supported by the device.
2534   * @param { VoNRState } state - Indicates the VoNR state.
2535   * @returns { Promise<void> } The promise returned by the setVoNRState.
2536   * @throws { BusinessError } 201 - Permission denied.
2537   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2538   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2539   * 2. Incorrect parameters types;
2540   * @throws { BusinessError } 8300001 - Invalid parameter value.
2541   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2542   * @throws { BusinessError } 8300003 - System internal error.
2543   * @throws { BusinessError } 8300999 - Unknown error code.
2544   * @syscap SystemCapability.Telephony.CallManager
2545   * @systemapi Hide this for inner system use.
2546   * @since 10
2547   */
2548  function setVoNRState(slotId: number, state: VoNRState): Promise<void>;
2549
2550  /**
2551   * Get switch state for voice over NR.
2552   *
2553   * @permission ohos.permission.GET_TELEPHONY_STATE
2554   * @param { number } slotId - Indicates the card slot index number,
2555   * ranging from 0 to the maximum card slot index number supported by the device.
2556   * @param { AsyncCallback<VoNRState> } callback - Indicates the callback for getVoNRState.
2557   * @throws { BusinessError } 201 - Permission denied.
2558   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2559   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2560   * 2. Incorrect parameters types;
2561   * @throws { BusinessError } 8300001 - Invalid parameter value.
2562   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2563   * @throws { BusinessError } 8300003 - System internal error.
2564   * @throws { BusinessError } 8300999 - Unknown error code.
2565   * @syscap SystemCapability.Telephony.CallManager
2566   * @systemapi Hide this for inner system use.
2567   * @since 10
2568   */
2569  function getVoNRState(slotId: number, callback: AsyncCallback<VoNRState>): void;
2570
2571  /**
2572   * Get switch state for voice over NR.
2573   *
2574   * @permission ohos.permission.GET_TELEPHONY_STATE
2575   * @param { number } slotId - Indicates the card slot index number,
2576   * ranging from 0 to the maximum card slot index number supported by the device.
2577   * @returns { Promise<VoNRState> } Returns the VoNR state.
2578   * @throws { BusinessError } 201 - Permission denied.
2579   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2580   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2581   * 2. Incorrect parameters types;
2582   * @throws { BusinessError } 8300001 - Invalid parameter value.
2583   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2584   * @throws { BusinessError } 8300003 - System internal error.
2585   * @throws { BusinessError } 8300999 - Unknown error code.
2586   * @syscap SystemCapability.Telephony.CallManager
2587   * @systemapi Hide this for inner system use.
2588   * @since 10
2589   */
2590  function getVoNRState(slotId: number): Promise<VoNRState>;
2591
2592  /**
2593   * Checks whether can set call transfer time.
2594   *
2595   * The system checks whether IP multimedia subsystem domain (IMS) can set call transfer time.
2596   *
2597   * @permission ohos.permission.GET_TELEPHONY_STATE
2598   * @param { number } slotId - Indicates the card slot index number,
2599   * ranging from 0 to the maximum card slot index number supported by the device.
2600   * @param { AsyncCallback<boolean> } callback - Returns {@code true} if the device can set call transfer time;
2601   * returns {@code false} otherwise.
2602   * @throws { BusinessError } 201 - Permission denied.
2603   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2604   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2605   * 2. Incorrect parameters types;
2606   * @throws { BusinessError } 8300001 - Invalid parameter value.
2607   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2608   * @throws { BusinessError } 8300003 - System internal error.
2609   * @throws { BusinessError } 8300999 - Unknown error code.
2610   * @syscap SystemCapability.Telephony.CallManager
2611   * @systemapi Hide this for inner system use.
2612   * @since 10
2613   */
2614  function canSetCallTransferTime(slotId: number, callback: AsyncCallback<boolean>): void;
2615
2616  /**
2617   * Checks whether can set call transfer time.
2618   *
2619   * The system checks whether IP multimedia subsystem domain (IMS) can set call transfer time.
2620   *
2621   * @permission ohos.permission.GET_TELEPHONY_STATE
2622   * @param { number } slotId - Indicates the card slot index number,
2623   * ranging from 0 to the maximum card slot index number supported by the device.
2624   * @returns { Promise<boolean> } Returns {@code true} if the device can set call transfer time;
2625   * returns {@code false} otherwise.
2626   * @throws { BusinessError } 201 - Permission denied.
2627   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2628   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2629   * 2. Incorrect parameters types;
2630   * @throws { BusinessError } 8300001 - Invalid parameter value.
2631   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2632   * @throws { BusinessError } 8300003 - System internal error.
2633   * @throws { BusinessError } 8300999 - Unknown error code.
2634   * @syscap SystemCapability.Telephony.CallManager
2635   * @systemapi Hide this for inner system use.
2636   * @since 10
2637   */
2638  function canSetCallTransferTime(slotId: number): Promise<boolean>;
2639
2640  /**
2641   * Enters the special code on the keypad.
2642   *
2643   * @permission ohos.permission.PLACE_CALL
2644   * @param { string } inputCode - Indicates the special code to enter.
2645   * @param { AsyncCallback<void> } callback - The callback of inputDialerSpecialCode.
2646   * @throws { BusinessError } 201 - Permission denied.
2647   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2648   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2649   * 2. Incorrect parameters types;
2650   * @throws { BusinessError } 8300001 - Invalid parameter value.
2651   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2652   * @throws { BusinessError } 8300003 - System internal error.
2653   * @syscap SystemCapability.Telephony.CallManager
2654   * @systemapi Hide this for inner system use.
2655   * @since 10
2656   */
2657  function inputDialerSpecialCode(inputCode: string, callback: AsyncCallback<void>): void;
2658
2659  /**
2660   * Enters the special code on the keypad.
2661   *
2662   * @permission ohos.permission.PLACE_CALL
2663   * @param { string } inputCode - Indicates the special code to enter.
2664   * @returns { Promise<void> } The promise returned by the inputDialerSpecialCode.
2665   * @throws { BusinessError } 201 - Permission denied.
2666   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2667   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2668   * 2. Incorrect parameters types;
2669   * @throws { BusinessError } 8300001 - Invalid parameter value.
2670   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2671   * @throws { BusinessError } 8300003 - System internal error.
2672   * @syscap SystemCapability.Telephony.CallManager
2673   * @systemapi Hide this for inner system use.
2674   * @since 10
2675   */
2676  function inputDialerSpecialCode(inputCode: string): Promise<void>;
2677
2678  /**
2679   * Remove missed incoming call notification.
2680   *
2681   * @permission ohos.permission.SET_TELEPHONY_STATE and ohos.permission.READ_CALL_LOG and
2682   * ohos.permission.WRITE_CALL_LOG
2683   * @param { AsyncCallback<void> } callback - The callback of removeMissedIncomingCallNotification.
2684   * @throws { BusinessError } 201 - Permission denied.
2685   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2686   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2687   * 2. Incorrect parameters types;
2688   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2689   * @throws { BusinessError } 8300003 - System internal error.
2690   * @throws { BusinessError } 8300999 - Unknown error code.
2691   * @syscap SystemCapability.Telephony.CallManager
2692   * @systemapi Hide this for inner system use.
2693   * @since 10
2694   */
2695  function removeMissedIncomingCallNotification(callback: AsyncCallback<void>): void;
2696
2697  /**
2698   * Remove missed incoming call notification.
2699   *
2700   * @permission ohos.permission.SET_TELEPHONY_STATE and ohos.permission.READ_CALL_LOG and
2701   * ohos.permission.WRITE_CALL_LOG
2702   * @returns { Promise<void> } The promise returned by the removeMissedIncomingCallNotification.
2703   * @throws { BusinessError } 201 - Permission denied.
2704   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2705   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2706   * @throws { BusinessError } 8300003 - System internal error.
2707   * @throws { BusinessError } 8300999 - Unknown error code.
2708   * @syscap SystemCapability.Telephony.CallManager
2709   * @systemapi Hide this for inner system use.
2710   * @since 10
2711   */
2712  function removeMissedIncomingCallNotification(): Promise<void>;
2713
2714  /**
2715   * Send call ui event.
2716   *
2717   * @permission ohos.permission.SET_TELEPHONY_STATE
2718   * @param { number } callId - Indicates the identifier of the call.
2719   * @param { string } eventName - Indicates the event name.
2720   * @returns { Promise<void> } The promise returned by the sendCallUiEvent.
2721   * @throws { BusinessError } 201 - Permission denied.
2722   * @throws { BusinessError } 202 - Non-system applications use system APIs.
2723   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified;
2724   * 2. Incorrect parameters types;
2725   * @throws { BusinessError } 8300001 - Invalid parameter value.
2726   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
2727   * @throws { BusinessError } 8300003 - System internal error.
2728   * @throws { BusinessError } 8300999 - Unknown error code.
2729   * @syscap SystemCapability.Telephony.CallManager
2730   * @systemapi Hide this for inner system use.
2731   * @since 12
2732   */
2733  function sendCallUiEvent(callId: number, eventName: string): Promise<void>;
2734
2735  /**
2736   * Indicates the mode of the ims call.
2737   *
2738   * @enum { number }
2739   * @syscap SystemCapability.Telephony.CallManager
2740   * @systemapi Hide this for inner system use.
2741   * @since 8
2742   */
2743  export enum ImsCallMode {
2744    /**
2745     * Indicates audio only calls.
2746     *
2747     * @syscap SystemCapability.Telephony.CallManager
2748     * @systemapi Hide this for inner system use.
2749     * @since 8
2750     */
2751    CALL_MODE_AUDIO_ONLY = 0,
2752
2753    /**
2754     * Indicates that only calls are sent.
2755     *
2756     * @syscap SystemCapability.Telephony.CallManager
2757     * @systemapi Hide this for inner system use.
2758     * @since 8
2759     */
2760    CALL_MODE_SEND_ONLY,
2761
2762    /**
2763     * Indicates receiving only calls.
2764     *
2765     * @syscap SystemCapability.Telephony.CallManager
2766     * @systemapi Hide this for inner system use.
2767     * @since 8
2768     */
2769    CALL_MODE_RECEIVE_ONLY,
2770
2771    /**
2772     * Indicates permission to send and receive calls.
2773     *
2774     * @syscap SystemCapability.Telephony.CallManager
2775     * @systemapi Hide this for inner system use.
2776     * @since 8
2777     */
2778    CALL_MODE_SEND_RECEIVE,
2779
2780    /**
2781     * Indicates a pause in video calls.
2782     *
2783     * @syscap SystemCapability.Telephony.CallManager
2784     * @systemapi Hide this for inner system use.
2785     * @since 8
2786     */
2787    CALL_MODE_VIDEO_PAUSED,
2788  }
2789
2790  /**
2791   * Indicates the VoNR state.
2792   *
2793   * @enum { number }
2794   * @syscap SystemCapability.Telephony.CallManager
2795   * @systemapi Hide this for inner system use.
2796   * @since 10
2797   */
2798  export enum VoNRState {
2799    /**
2800     * Indicates the VoNR switch is off.
2801     *
2802     * @syscap SystemCapability.Telephony.CallManager
2803     * @systemapi Hide this for inner system use.
2804     * @since 10
2805     */
2806    VONR_STATE_OFF = 0,
2807
2808    /**
2809     * Indicates the VoNR switch is on.
2810     *
2811     * @syscap SystemCapability.Telephony.CallManager
2812     * @systemapi Hide this for inner system use.
2813     * @since 10
2814     */
2815    VONR_STATE_ON = 1,
2816  }
2817
2818  /**
2819   * Indicates the device type of the audio device.
2820   *
2821   * @enum { number }
2822   * @syscap SystemCapability.Telephony.CallManager
2823   * @systemapi Hide this for inner system use.
2824   * @since 10
2825   */
2826  export enum AudioDeviceType {
2827    /**
2828     * Indicates the audio device is earpiece.
2829     *
2830     * @syscap SystemCapability.Telephony.CallManager
2831     * @systemapi Hide this for inner system use.
2832     * @since 10
2833     */
2834    DEVICE_EARPIECE,
2835
2836    /**
2837     * Indicates the audio device is speaker.
2838     *
2839     * @syscap SystemCapability.Telephony.CallManager
2840     * @systemapi Hide this for inner system use.
2841     * @since 10
2842     */
2843    DEVICE_SPEAKER,
2844
2845    /**
2846     * Indicates the audio device is wired headset.
2847     *
2848     * @syscap SystemCapability.Telephony.CallManager
2849     * @systemapi Hide this for inner system use.
2850     * @since 10
2851     */
2852    DEVICE_WIRED_HEADSET,
2853
2854    /**
2855     * Indicates the audio device is bluetooth headset.
2856     *
2857     * @syscap SystemCapability.Telephony.CallManager
2858     * @systemapi Hide this for inner system use.
2859     * @since 10
2860     */
2861    DEVICE_BLUETOOTH_SCO,
2862
2863    /**
2864     * Indicates the audio device is distributed automotive device.
2865     *
2866     * @syscap SystemCapability.Telephony.CallManager
2867     * @systemapi Hide this for inner system use.
2868     * @since 11
2869     */
2870    DEVICE_DISTRIBUTED_AUTOMOTIVE,
2871  }
2872
2873  /**
2874   * Indicates the audio device.
2875   *
2876   * @interface AudioDevice
2877   * @syscap SystemCapability.Telephony.CallManager
2878   * @systemapi Hide this for inner system use.
2879   * @since 10
2880   */
2881  export interface AudioDevice {
2882    /**
2883     * Indicates the device type of the audio device.
2884     *
2885     * @type { AudioDeviceType }
2886     * @syscap SystemCapability.Telephony.CallManager
2887     * @systemapi Hide this for inner system use.
2888     * @since 10
2889     */
2890    deviceType: AudioDeviceType;
2891
2892    /**
2893     * Indicates the address of the audio device.
2894     *
2895     * @type { ?string }
2896     * @syscap SystemCapability.Telephony.CallManager
2897     * @systemapi Hide this for inner system use.
2898     * @since 10
2899     */
2900    address?: string;
2901
2902    /**
2903     * Indicates the name of the audio device.
2904     *
2905     * @type { ?string }
2906     * @syscap SystemCapability.Telephony.CallManager
2907     * @systemapi Hide this for inner system use.
2908     * @since 11
2909     */
2910    deviceName?: string;
2911  }
2912
2913  /**
2914   * Indicates the information of the audio device.
2915   *
2916   * @interface AudioDeviceCallbackInfo
2917   * @syscap SystemCapability.Telephony.CallManager
2918   * @systemapi Hide this for inner system use.
2919   * @since 10
2920   */
2921  export interface AudioDeviceCallbackInfo {
2922    /**
2923     * Indicates the list of support audio device.
2924     *
2925     * @type { Array<AudioDevice> }
2926     * @syscap SystemCapability.Telephony.CallManager
2927     * @systemapi Hide this for inner system use.
2928     * @since 10
2929     */
2930    audioDeviceList: Array<AudioDevice>;
2931
2932    /**
2933     * Indicates the type of current audio device.
2934     *
2935     * @type { AudioDevice }
2936     * @syscap SystemCapability.Telephony.CallManager
2937     * @systemapi Hide this for inner system use.
2938     * @since 10
2939     */
2940    currentAudioDevice: AudioDevice;
2941
2942    /**
2943     * Indicates the status of mute.
2944     *
2945     * @type { boolean }
2946     * @syscap SystemCapability.Telephony.CallManager
2947     * @systemapi Hide this for inner system use.
2948     * @since 10
2949     */
2950    isMuted: boolean;
2951  }
2952
2953  /**
2954   * Indicates the type of call restriction.
2955   *
2956   * @enum { number }
2957   * @syscap SystemCapability.Telephony.CallManager
2958   * @systemapi Hide this for inner system use.
2959   * @since 8
2960   */
2961  export enum CallRestrictionType {
2962    /**
2963     * Indicates restrict all incoming calls.
2964     *
2965     * @syscap SystemCapability.Telephony.CallManager
2966     * @systemapi Hide this for inner system use.
2967     * @since 8
2968     */
2969    RESTRICTION_TYPE_ALL_INCOMING = 0,
2970
2971    /**
2972     * Indicates restrict all outgoing calls.
2973     *
2974     * @syscap SystemCapability.Telephony.CallManager
2975     * @systemapi Hide this for inner system use.
2976     * @since 8
2977     */
2978    RESTRICTION_TYPE_ALL_OUTGOING,
2979
2980    /**
2981     * Indicates restrict international calls.
2982     *
2983     * @syscap SystemCapability.Telephony.CallManager
2984     * @systemapi Hide this for inner system use.
2985     * @since 8
2986     */
2987    RESTRICTION_TYPE_INTERNATIONAL,
2988
2989    /**
2990     * Indicates restrict international roaming calls.
2991     *
2992     * @syscap SystemCapability.Telephony.CallManager
2993     * @systemapi Hide this for inner system use.
2994     * @since 8
2995     */
2996    RESTRICTION_TYPE_INTERNATIONAL_EXCLUDING_HOME,
2997
2998    /**
2999     * Indicates restrict roaming calls.
3000     *
3001     * @syscap SystemCapability.Telephony.CallManager
3002     * @systemapi Hide this for inner system use.
3003     * @since 8
3004     */
3005    RESTRICTION_TYPE_ROAMING_INCOMING,
3006
3007    /**
3008     * Indicates restrict all calls.
3009     *
3010     * @syscap SystemCapability.Telephony.CallManager
3011     * @systemapi Hide this for inner system use.
3012     * @since 8
3013     */
3014    RESTRICTION_TYPE_ALL_CALLS,
3015
3016    /**
3017     * Indicates restrict all outgoing services.
3018     *
3019     * @syscap SystemCapability.Telephony.CallManager
3020     * @systemapi Hide this for inner system use.
3021     * @since 8
3022     */
3023    RESTRICTION_TYPE_OUTGOING_SERVICES,
3024
3025    /**
3026     * Indicates restrict all incoming services.
3027     *
3028     * @syscap SystemCapability.Telephony.CallManager
3029     * @systemapi Hide this for inner system use.
3030     * @since 8
3031     */
3032    RESTRICTION_TYPE_INCOMING_SERVICES,
3033  }
3034
3035  /**
3036   * Indicates the information of call transfer.
3037   *
3038   * @interface CallTransferInfo
3039   * @syscap SystemCapability.Telephony.CallManager
3040   * @systemapi Hide this for inner system use.
3041   * @since 8
3042   */
3043  export interface CallTransferInfo {
3044    /**
3045     * Phone number.
3046     *
3047     * @type { string }
3048     * @syscap SystemCapability.Telephony.CallManager
3049     * @systemapi Hide this for inner system use.
3050     * @since 8
3051     */
3052    transferNum: string;
3053
3054    /**
3055     * Call forwarding type.
3056     *
3057     * @type { CallTransferType }
3058     * @syscap SystemCapability.Telephony.CallManager
3059     * @systemapi Hide this for inner system use.
3060     * @since 8
3061     */
3062    type: CallTransferType;
3063
3064    /**
3065     * Call forwarding setting type.
3066     *
3067     * @type { CallTransferSettingType }
3068     * @syscap SystemCapability.Telephony.CallManager
3069     * @systemapi Hide this for inner system use.
3070     * @since 8
3071     */
3072    settingType: CallTransferSettingType;
3073
3074    /**
3075     * Start time hours.
3076     *
3077     * @type { ?number }
3078     * @syscap SystemCapability.Telephony.CallManager
3079     * @systemapi Hide this for inner system use.
3080     * @since 9
3081     */
3082    startHour?: number;
3083
3084    /**
3085     * Start time minutes.
3086     *
3087     * @type { ?number }
3088     * @syscap SystemCapability.Telephony.CallManager
3089     * @systemapi Hide this for inner system use.
3090     * @since 9
3091     */
3092    startMinute?: number;
3093
3094    /**
3095     * End time hours.
3096     *
3097     * @type { ?number }
3098     * @syscap SystemCapability.Telephony.CallManager
3099     * @systemapi Hide this for inner system use.
3100     * @since 9
3101     */
3102    endHour?: number;
3103
3104    /**
3105     * End time minutes.
3106     *
3107     * @type { ?number }
3108     * @syscap SystemCapability.Telephony.CallManager
3109     * @systemapi Hide this for inner system use.
3110     * @since 9
3111     */
3112    endMinute?: number;
3113  }
3114
3115  /**
3116   * Indicates the type of call transfer.
3117   *
3118   * @enum { number }
3119   * @syscap SystemCapability.Telephony.CallManager
3120   * @systemapi Hide this for inner system use.
3121   * @since 8
3122   */
3123  export enum CallTransferType {
3124    /**
3125     * Indicates unconditional transfer of a call.
3126     *
3127     * @syscap SystemCapability.Telephony.CallManager
3128     * @systemapi Hide this for inner system use.
3129     * @since 8
3130     */
3131    TRANSFER_TYPE_UNCONDITIONAL = 0,
3132
3133    /**
3134     * Indicates transfer the call when busy.
3135     *
3136     * @syscap SystemCapability.Telephony.CallManager
3137     * @systemapi Hide this for inner system use.
3138     * @since 8
3139     */
3140    TRANSFER_TYPE_BUSY,
3141
3142    /**
3143     * Indicates transfer the call when no reply.
3144     *
3145     * @syscap SystemCapability.Telephony.CallManager
3146     * @systemapi Hide this for inner system use.
3147     * @since 8
3148     */
3149    TRANSFER_TYPE_NO_REPLY,
3150
3151    /**
3152     * Indicates transfer the call when unreachable.
3153     *
3154     * @syscap SystemCapability.Telephony.CallManager
3155     * @systemapi Hide this for inner system use.
3156     * @since 8
3157     */
3158    TRANSFER_TYPE_NOT_REACHABLE,
3159  }
3160
3161  /**
3162   * Indicates the type of call transfer setting.
3163   *
3164   * @enum { number }
3165   * @syscap SystemCapability.Telephony.CallManager
3166   * @systemapi Hide this for inner system use.
3167   * @since 8
3168   */
3169  export enum CallTransferSettingType {
3170    /**
3171     * Indicates disable the call transfer.
3172     *
3173     * @syscap SystemCapability.Telephony.CallManager
3174     * @systemapi Hide this for inner system use.
3175     * @since 8
3176     */
3177    CALL_TRANSFER_DISABLE = 0,
3178
3179    /**
3180     * Indicates enable the call transfer.
3181     *
3182     * @syscap SystemCapability.Telephony.CallManager
3183     * @systemapi Hide this for inner system use.
3184     * @since 8
3185     */
3186    CALL_TRANSFER_ENABLE = 1,
3187
3188    /**
3189     * Indicates register the call transfer.
3190     *
3191     * @syscap SystemCapability.Telephony.CallManager
3192     * @systemapi Hide this for inner system use.
3193     * @since 8
3194     */
3195    CALL_TRANSFER_REGISTRATION = 3,
3196
3197    /**
3198     * Indicates erasure the call transfer.
3199     *
3200     * @syscap SystemCapability.Telephony.CallManager
3201     * @systemapi Hide this for inner system use.
3202     * @since 8
3203     */
3204    CALL_TRANSFER_ERASURE = 4,
3205  }
3206
3207  /**
3208   * Indicates the options of call attribute.
3209   *
3210   * @interface CallAttributeOptions
3211   * @syscap SystemCapability.Telephony.CallManager
3212   * @systemapi Hide this for inner system use.
3213   * @since 7
3214   */
3215  export interface CallAttributeOptions {
3216    /**
3217     * Indicates the number of account.
3218     *
3219     * @type { string }
3220     * @syscap SystemCapability.Telephony.CallManager
3221     * @systemapi Hide this for inner system use.
3222     * @since 7
3223     */
3224    accountNumber: string;
3225
3226    /**
3227     * Indicates if the call is start with speaker.
3228     *
3229     * @type { boolean }
3230     * @syscap SystemCapability.Telephony.CallManager
3231     * @systemapi Hide this for inner system use.
3232     * @since 7
3233     */
3234    speakerphoneOn: boolean;
3235
3236    /**
3237     * Indicates the id of account.
3238     *
3239     * @type { number }
3240     * @syscap SystemCapability.Telephony.CallManager
3241     * @systemapi Hide this for inner system use.
3242     * @since 7
3243     */
3244    accountId: number;
3245
3246    /**
3247     * Indicates the type of video state.
3248     *
3249     * @type { VideoStateType }
3250     * @syscap SystemCapability.Telephony.CallManager
3251     * @systemapi Hide this for inner system use.
3252     * @since 7
3253     */
3254    videoState: VideoStateType;
3255
3256    /**
3257     * Indicates the start time.
3258     *
3259     * @type { number }
3260     * @syscap SystemCapability.Telephony.CallManager
3261     * @systemapi Hide this for inner system use.
3262     * @since 7
3263     */
3264    startTime: number;
3265
3266    /**
3267     * Indicates if this is an emergency call.
3268     *
3269     * @type { boolean }
3270     * @syscap SystemCapability.Telephony.CallManager
3271     * @systemapi Hide this for inner system use.
3272     * @since 7
3273     */
3274    isEcc: boolean;
3275
3276    /**
3277     * Indicates the type of call.
3278     *
3279     * @type { CallType }
3280     * @syscap SystemCapability.Telephony.CallManager
3281     * @systemapi Hide this for inner system use.
3282     * @since 7
3283     */
3284    callType: CallType;
3285
3286    /**
3287     * Indicates the id of call.
3288     *
3289     * @type { number }
3290     * @syscap SystemCapability.Telephony.CallManager
3291     * @systemapi Hide this for inner system use.
3292     * @since 7
3293     */
3294    callId: number;
3295
3296    /**
3297     * Indicates the detailed state of call.
3298     *
3299     * @type { DetailedCallState }
3300     * @syscap SystemCapability.Telephony.CallManager
3301     * @systemapi Hide this for inner system use.
3302     * @since 7
3303     */
3304    callState: DetailedCallState;
3305
3306    /**
3307     * Indicates the state of conference.
3308     *
3309     * @type { ConferenceState }
3310     * @syscap SystemCapability.Telephony.CallManager
3311     * @systemapi Hide this for inner system use.
3312     * @since 7
3313     */
3314    conferenceState: ConferenceState;
3315
3316    /**
3317     * Indicates the detail information of voip call.
3318     *
3319     * @type { ?VoipCallAttribute }
3320     * @syscap SystemCapability.Telephony.CallManager
3321     * @systemapi Hide this for inner system use.
3322     * @since 11
3323     */
3324    voipCallAttribute?: VoipCallAttribute;
3325
3326    /**
3327     * Indicates the color tone type.
3328     *
3329     * @type { number }
3330     * @syscap SystemCapability.Telephony.CallManager
3331     * @systemapi Hide this for inner system use.
3332     * @since 11
3333     */
3334    crsType: number;
3335
3336    /**
3337     * Indicates the initial type of this call.
3338     *
3339     * @type { number }
3340     * @syscap SystemCapability.Telephony.CallManager
3341     * @systemapi Hide this for inner system use.
3342     * @since 11
3343     */
3344    originalCallType: number;
3345
3346    /**
3347     * Indicates the location of the phone number.
3348     *
3349     * @type { ?string }
3350     * @syscap SystemCapability.Telephony.CallManager
3351     * @systemapi Hide this for inner system use.
3352     * @since 12
3353     */
3354    numberLocation?: string;
3355
3356    /**
3357     * Indicates the mark information of the phone number.
3358     *
3359     * @type { ?NumberMarkInfo }
3360     * @syscap SystemCapability.Telephony.CallManager
3361     * @systemapi Hide this for inner system use.
3362     * @since 12
3363     */
3364    numberMarkInfo?: NumberMarkInfo;
3365  }
3366
3367  /**
3368   * Indicates the voip call detail information.
3369   *
3370   * @interface VoipCallAttribute
3371   * @syscap SystemCapability.Telephony.CallManager
3372   * @systemapi Hide this for inner system use.
3373   * @since 11
3374   */
3375  export interface VoipCallAttribute {
3376    /**
3377     * Indicates the identifier of the voip call.
3378     *
3379     * @type { string }
3380     * @syscap SystemCapability.Telephony.CallManager
3381     * @systemapi Hide this for inner system use.
3382     * @since 11
3383     */
3384    voipCallId: string;
3385
3386    /**
3387     * Indicates the user name of the VoIP call.
3388     *
3389     * @type { string }
3390     * @syscap SystemCapability.Telephony.CallManager
3391     * @systemapi Hide this for inner system use.
3392     * @since 11
3393     */
3394    userName: string;
3395
3396    /**
3397     * Indicates the user profile photo of the VoIP call.
3398     *
3399     * @type { image.PixelMap }
3400     * @syscap SystemCapability.Telephony.CallManager
3401     * @systemapi Hide this for inner system use.
3402     * @since 11
3403     */
3404    userProfile: image.PixelMap;
3405
3406    /**
3407     * Indicates the third-party application process specific identifier.
3408     *
3409     * @type { string }
3410     * @syscap SystemCapability.Telephony.CallManager
3411     * @systemapi Hide this for inner system use.
3412     * @since 11
3413     */
3414    extensionId: string;
3415
3416    /**
3417     * Indicates the third-party application UI extension ability name.
3418     *
3419     * @type { string }
3420     * @syscap SystemCapability.Telephony.CallManager
3421     * @systemapi Hide this for inner system use.
3422     * @since 11
3423     */
3424    abilityName: string;
3425
3426    /**
3427     * Indicates the third-party application bundle name.
3428     *
3429     * @type { string }
3430     * @syscap SystemCapability.Telephony.CallManager
3431     * @systemapi Hide this for inner system use.
3432     * @since 11
3433     */
3434    voipBundleName: string;
3435
3436    /**
3437     * Indicates whether the VoIP incoming call default show live call banner. Default value is true.
3438     *
3439     * @type { ?boolean }
3440     * @syscap SystemCapability.Telephony.CallManager
3441     * @systemapi Hide this for inner system use.
3442     * @since 12
3443     */
3444    showBannerForIncomingCall?: boolean;
3445
3446    /**
3447     * Indicates whether the VoIP call is a conference call. Default value is false.
3448     *
3449     * @type { ?boolean }
3450     * @syscap SystemCapability.Telephony.CallManager
3451     * @systemapi Hide this for inner system use.
3452     * @since 12
3453     */
3454    isConferenceCall?: boolean;
3455
3456    /**
3457     * Indicates whether the VoIP incoming video call is support voice answer. Default value is true.
3458     *
3459     * @type { ?boolean }
3460     * @syscap SystemCapability.Telephony.CallManager
3461     * @systemapi Hide this for inner system use.
3462     * @since 12
3463     */
3464    isVoiceAnswerSupported?: boolean;
3465  }
3466
3467  /**
3468   * Indicates the state of conference call.
3469   *
3470   * @enum { number }
3471   * @syscap SystemCapability.Telephony.CallManager
3472   * @systemapi Hide this for inner system use.
3473   * @since 7
3474   */
3475  export enum ConferenceState {
3476    /**
3477     * Indicates the state is idle.
3478     *
3479     * @syscap SystemCapability.Telephony.CallManager
3480     * @systemapi Hide this for inner system use.
3481     * @since 7
3482     */
3483    TEL_CONFERENCE_IDLE = 0,
3484
3485    /**
3486     * Indicates the state is active.
3487     *
3488     * @syscap SystemCapability.Telephony.CallManager
3489     * @systemapi Hide this for inner system use.
3490     * @since 7
3491     */
3492    TEL_CONFERENCE_ACTIVE,
3493
3494    /**
3495     * Indicates the state is disconnecting.
3496     *
3497     * @syscap SystemCapability.Telephony.CallManager
3498     * @systemapi Hide this for inner system use.
3499     * @since 7
3500     */
3501    TEL_CONFERENCE_DISCONNECTING,
3502
3503    /**
3504     * Indicates the state is disconnected.
3505     *
3506     * @syscap SystemCapability.Telephony.CallManager
3507     * @systemapi Hide this for inner system use.
3508     * @since 7
3509     */
3510    TEL_CONFERENCE_DISCONNECTED,
3511  }
3512
3513  /**
3514   * Indicates the type of call.
3515   *
3516   * @enum { number }
3517   * @syscap SystemCapability.Telephony.CallManager
3518   * @systemapi Hide this for inner system use.
3519   * @since 7
3520   */
3521  export enum CallType {
3522    /**
3523     * Indicates the call type is CS.
3524     *
3525     * @syscap SystemCapability.Telephony.CallManager
3526     * @systemapi Hide this for inner system use.
3527     * @since 7
3528     */
3529    TYPE_CS = 0,
3530
3531    /**
3532     * Indicates the call type is IMS.
3533     *
3534     * @syscap SystemCapability.Telephony.CallManager
3535     * @systemapi Hide this for inner system use.
3536     * @since 7
3537     */
3538    TYPE_IMS = 1,
3539
3540    /**
3541     * Indicates the call type is OTT.
3542     *
3543     * @syscap SystemCapability.Telephony.CallManager
3544     * @systemapi Hide this for inner system use.
3545     * @since 7
3546     */
3547    TYPE_OTT = 2,
3548
3549    /**
3550     * Indicates the call type is OTHER.
3551     *
3552     * @syscap SystemCapability.Telephony.CallManager
3553     * @systemapi Hide this for inner system use.
3554     * @since 7
3555     */
3556    TYPE_ERR_CALL = 3,
3557
3558    /**
3559     * Indicates the call type is VoIP.
3560     *
3561     * @syscap SystemCapability.Telephony.CallManager
3562     * @systemapi Hide this for inner system use.
3563     * @since 11
3564     */
3565    TYPE_VOIP = 4,
3566  }
3567
3568  /**
3569   * Indicates the type of video state.
3570   *
3571   * @enum { number }
3572   * @syscap SystemCapability.Telephony.CallManager
3573   * @systemapi Hide this for inner system use.
3574   * @since 7
3575   */
3576  export enum VideoStateType {
3577    /**
3578     * Indicates the call is in voice state.
3579     *
3580     * @syscap SystemCapability.Telephony.CallManager
3581     * @systemapi Hide this for inner system use.
3582     * @since 7
3583     */
3584    TYPE_VOICE = 0,
3585    /**
3586     * Indicates the call is in video state.
3587     *
3588     * @syscap SystemCapability.Telephony.CallManager
3589     * @systemapi Hide this for inner system use.
3590     * @since 7
3591     * @deprecated since 11
3592     * @useinstead telephony.call#TYPE_VIDEO_BIDIRECTIONAL
3593     */
3594    TYPE_VIDEO,
3595    /**
3596     * Indicates the call is in send only video state.
3597     *
3598     * @syscap SystemCapability.Telephony.CallManager
3599     * @systemapi Hide this for inner system use.
3600     * @since 11
3601     */
3602    TYPE_VIDEO_SEND_ONLY = 1,
3603    /**
3604     * Indicates the call is in receive only video state.
3605     *
3606     * @syscap SystemCapability.Telephony.CallManager
3607     * @systemapi Hide this for inner system use.
3608     * @since 11
3609     */
3610    TYPE_VIDEO_RECEIVE_ONLY,
3611    /**
3612     * Indicates the call is in send and receive video state.
3613     *
3614     * @syscap SystemCapability.Telephony.CallManager
3615     * @systemapi Hide this for inner system use.
3616     * @since 11
3617     */
3618    TYPE_VIDEO_BIDIRECTIONAL,
3619  }
3620
3621  /**
3622   * Indicates the type of video request result.
3623   *
3624   * @enum { number }
3625   * @syscap SystemCapability.Telephony.CallManager
3626   * @systemapi Hide this for inner system use.
3627   * @since 11
3628   */
3629  export enum VideoRequestResultType {
3630    /**
3631     * Indicates the request was successful.
3632     *
3633     * @syscap SystemCapability.Telephony.CallManager
3634     * @systemapi Hide this for inner system use.
3635     * @since 11
3636     */
3637    TYPE_REQUEST_SUCCESS = 0,
3638    /**
3639     * Indicates the request failed.
3640     *
3641     * @syscap SystemCapability.Telephony.CallManager
3642     * @systemapi Hide this for inner system use.
3643     * @since 11
3644     */
3645    TYPE_REQUEST_FAILURE,
3646    /**
3647     * Indicates the request ignored due to invalid parameters.
3648     *
3649     * @syscap SystemCapability.Telephony.CallManager
3650     * @systemapi Hide this for inner system use.
3651     * @since 11
3652     */
3653    TYPE_REQUEST_INVALID,
3654    /**
3655     * Indicates the request timed out.
3656     *
3657     * @syscap SystemCapability.Telephony.CallManager
3658     * @systemapi Hide this for inner system use.
3659     * @since 11
3660     */
3661    TYPE_REQUEST_TIMED_OUT,
3662    /**
3663     * Indicates the request rejected by remote.
3664     *
3665     * @syscap SystemCapability.Telephony.CallManager
3666     * @systemapi Hide this for inner system use.
3667     * @since 11
3668     */
3669    TYPE_REQUEST_REJECTED_BY_REMOTE,
3670    /**
3671     * Indicates the upgrade request canceled.
3672     *
3673     * @syscap SystemCapability.Telephony.CallManager
3674     * @systemapi Hide this for inner system use.
3675     * @since 11
3676     */
3677    TYPE_REQUEST_UPGRADE_CANCELED,
3678    /**
3679     * Indicates the ImsCall Mode downgrade RTP time out.
3680     *
3681     * @syscap SystemCapability.Telephony.CallManager
3682     * @systemapi Hide this for inner system use.
3683     * @since 11
3684     */
3685    TYPE_DOWNGRADE_RTP_OR_RTCP_TIMEOUT = 100,
3686    /**
3687     * Indicates the ImsCall Mode downgrade RTP and RTCP time out.
3688     *
3689     * @syscap SystemCapability.Telephony.CallManager
3690     * @systemapi Hide this for inner system use.
3691     * @since 11
3692     */
3693    TYPE_DOWNGRADE_RTP_AND_RTCP_TIMEOUT,
3694  }
3695
3696  /**
3697   * Indicates the type of device direction.
3698   *
3699   * @enum { number }
3700   * @syscap SystemCapability.Telephony.CallManager
3701   * @systemapi Hide this for inner system use.
3702   * @since 11
3703   */
3704  export enum DeviceDirection {
3705    /**
3706     * Indicates the device direction is 0 degree.
3707     *
3708     * @syscap SystemCapability.Telephony.CallManager
3709     * @systemapi Hide this for inner system use.
3710     * @since 11
3711     */
3712    DEVICE_DIRECTION_0 = 0,
3713    /**
3714     * Indicates the device direction is 90 degree.
3715     *
3716     * @syscap SystemCapability.Telephony.CallManager
3717     * @systemapi Hide this for inner system use.
3718     * @since 11
3719     */
3720    DEVICE_DIRECTION_90 = 90,
3721    /**
3722     * Indicates the device direction is 180 degree.
3723     *
3724     * @syscap SystemCapability.Telephony.CallManager
3725     * @systemapi Hide this for inner system use.
3726     * @since 11
3727     */
3728    DEVICE_DIRECTION_180 = 180,
3729    /**
3730     * Indicates the device direction is 270 degree.
3731     *
3732     * @syscap SystemCapability.Telephony.CallManager
3733     * @systemapi Hide this for inner system use.
3734     * @since 11
3735     */
3736    DEVICE_DIRECTION_270 = 270,
3737  }
3738
3739  /**
3740   * Indicates the type of video call event.
3741   *
3742   * @enum { number }
3743   * @syscap SystemCapability.Telephony.CallManager
3744   * @systemapi Hide this for inner system use.
3745   * @since 11
3746   */
3747  export enum CallSessionEventId {
3748    /**
3749     * Indicates set camera fail event.
3750     *
3751     * @syscap SystemCapability.Telephony.CallManager
3752     * @systemapi Hide this for inner system use.
3753     * @since 11
3754     */
3755    EVENT_CONTROL_CAMERA_FAILURE = 0,
3756    /**
3757     * Indicates set camera successful event.
3758     *
3759     * @syscap SystemCapability.Telephony.CallManager
3760     * @systemapi Hide this for inner system use.
3761     * @since 11
3762     */
3763    EVENT_CONTROL_CAMERA_READY,
3764    /**
3765     * Indicates release display surface event.
3766     *
3767     * @syscap SystemCapability.Telephony.CallManager
3768     * @systemapi Hide this for inner system use.
3769     * @since 11
3770     */
3771    EVENT_DISPLAY_SURFACE_RELEASED = 100,
3772    /**
3773     * Indicates release preview surface event.
3774     *
3775     * @syscap SystemCapability.Telephony.CallManager
3776     * @systemapi Hide this for inner system use.
3777     * @since 11
3778     */
3779    EVENT_PREVIEW_SURFACE_RELEASED,
3780  }
3781
3782  /**
3783   * Indicates the detailed state of call.
3784   *
3785   * @enum { number }
3786   * @syscap SystemCapability.Telephony.CallManager
3787   * @systemapi Hide this for inner system use.
3788   * @since 7
3789   */
3790  export enum DetailedCallState {
3791    /**
3792     * Indicates the call is active.
3793     *
3794     * @syscap SystemCapability.Telephony.CallManager
3795     * @systemapi Hide this for inner system use.
3796     * @since 7
3797     */
3798    CALL_STATUS_ACTIVE = 0,
3799
3800    /**
3801     * Indicates the call is holding.
3802     *
3803     * @syscap SystemCapability.Telephony.CallManager
3804     * @systemapi Hide this for inner system use.
3805     * @since 7
3806     */
3807    CALL_STATUS_HOLDING,
3808
3809    /**
3810     * Indicates the call is dialing.
3811     *
3812     * @syscap SystemCapability.Telephony.CallManager
3813     * @systemapi Hide this for inner system use.
3814     * @since 7
3815     */
3816    CALL_STATUS_DIALING,
3817
3818    /**
3819     * Indicates the call is alerting.
3820     *
3821     * @syscap SystemCapability.Telephony.CallManager
3822     * @systemapi Hide this for inner system use.
3823     * @since 7
3824     */
3825    CALL_STATUS_ALERTING,
3826
3827    /**
3828     * Indicates the call is incoming.
3829     *
3830     * @syscap SystemCapability.Telephony.CallManager
3831     * @systemapi Hide this for inner system use.
3832     * @since 7
3833     */
3834    CALL_STATUS_INCOMING,
3835
3836    /**
3837     * Indicates the call is waiting.
3838     *
3839     * @syscap SystemCapability.Telephony.CallManager
3840     * @systemapi Hide this for inner system use.
3841     * @since 7
3842     */
3843    CALL_STATUS_WAITING,
3844
3845    /**
3846     * Indicates the call is disconnected.
3847     *
3848     * @syscap SystemCapability.Telephony.CallManager
3849     * @systemapi Hide this for inner system use.
3850     * @since 7
3851     */
3852    CALL_STATUS_DISCONNECTED,
3853
3854    /**
3855     * Indicates the call is disconnecting.
3856     *
3857     * @syscap SystemCapability.Telephony.CallManager
3858     * @systemapi Hide this for inner system use.
3859     * @since 7
3860     */
3861    CALL_STATUS_DISCONNECTING,
3862
3863    /**
3864     * Indicates the call is idle.
3865     *
3866     * @syscap SystemCapability.Telephony.CallManager
3867     * @systemapi Hide this for inner system use.
3868     * @since 7
3869     */
3870    CALL_STATUS_IDLE,
3871  }
3872
3873  /**
3874   * Indicates the information of call restriction.
3875   *
3876   * @interface CallRestrictionInfo
3877   * @syscap SystemCapability.Telephony.CallManager
3878   * @systemapi Hide this for inner system use.
3879   * @since 8
3880   */
3881  export interface CallRestrictionInfo {
3882    /**
3883     * Indicates the type of call restriction.
3884     *
3885     * @type { CallRestrictionType }
3886     * @syscap SystemCapability.Telephony.CallManager
3887     * @systemapi Hide this for inner system use.
3888     * @since 8
3889     */
3890    type: CallRestrictionType;
3891
3892    /**
3893     * Indicates the password required to set call restrictions.
3894     *
3895     * @type { string }
3896     * @syscap SystemCapability.Telephony.CallManager
3897     * @systemapi Hide this for inner system use.
3898     * @since 8
3899     */
3900    password: string;
3901
3902    /**
3903     * Indicates the mode of call restriction.
3904     *
3905     * @type { CallRestrictionMode }
3906     * @syscap SystemCapability.Telephony.CallManager
3907     * @systemapi Hide this for inner system use.
3908     * @since 8
3909     */
3910    mode: CallRestrictionMode;
3911  }
3912
3913  /**
3914   * Indicates the mode of call restriction.
3915   *
3916   * @enum { number }
3917   * @syscap SystemCapability.Telephony.CallManager
3918   * @systemapi Hide this for inner system use.
3919   * @since 8
3920   */
3921  export enum CallRestrictionMode {
3922    /**
3923     * Indicates call restriction is deactivated.
3924     *
3925     * @syscap SystemCapability.Telephony.CallManager
3926     * @systemapi Hide this for inner system use.
3927     * @since 8
3928     */
3929    RESTRICTION_MODE_DEACTIVATION = 0,
3930
3931    /**
3932     * Indicates call restriction is activated.
3933     *
3934     * @syscap SystemCapability.Telephony.CallManager
3935     * @systemapi Hide this for inner system use.
3936     * @since 8
3937     */
3938    RESTRICTION_MODE_ACTIVATION,
3939  }
3940
3941  /**
3942   * Indicates the options of call event.
3943   *
3944   * @interface CallEventOptions
3945   * @syscap SystemCapability.Telephony.CallManager
3946   * @systemapi Hide this for inner system use.
3947   * @since 8
3948   */
3949  export interface CallEventOptions {
3950    /**
3951     * Indicates the event ID of call ability.
3952     *
3953     * @type { CallAbilityEventId }
3954     * @syscap SystemCapability.Telephony.CallManager
3955     * @systemapi Hide this for inner system use.
3956     * @since 8
3957     */
3958    eventId: CallAbilityEventId,
3959  }
3960
3961  /**
3962   * Indicates the event ID of call ability.
3963   *
3964   * @enum { number }
3965   * @syscap SystemCapability.Telephony.CallManager
3966   * @systemapi Hide this for inner system use.
3967   * @since 8
3968   */
3969  export enum CallAbilityEventId {
3970    /**
3971     * Indicates there is no available carrier during dialing.
3972     *
3973     * @syscap SystemCapability.Telephony.CallManager
3974     * @systemapi Hide this for inner system use.
3975     * @since 8
3976     */
3977    EVENT_DIAL_NO_CARRIER = 1,
3978
3979    /**
3980     * Indicates invalid FDN.
3981     *
3982     * @syscap SystemCapability.Telephony.CallManager
3983     * @systemapi Hide this for inner system use.
3984     * @since 8
3985     */
3986    EVENT_INVALID_FDN_NUMBER,
3987
3988    /**
3989     * Indicates hold call fail.
3990     *
3991     * @syscap SystemCapability.Telephony.CallManager
3992     * @systemapi Hide this for inner system use.
3993     * @since 11
3994     */
3995    EVENT_HOLD_CALL_FAILED,
3996
3997    /**
3998     * Indicates swap call fail.
3999     *
4000     * @syscap SystemCapability.Telephony.CallManager
4001     * @systemapi Hide this for inner system use.
4002     * @since 11
4003     */
4004    EVENT_SWAP_CALL_FAILED,
4005
4006    /**
4007     * Indicates combine call failed.
4008     *
4009     * @syscap SystemCapability.Telephony.CallManager
4010     * @systemapi Hide this for inner system use.
4011     * @since 11
4012     */
4013    EVENT_COMBINE_CALL_FAILED,
4014
4015    /**
4016     * Indicates split call failed.
4017     *
4018     * @syscap SystemCapability.Telephony.CallManager
4019     * @systemapi Hide this for inner system use.
4020     * @since 11
4021     */
4022    EVENT_SPLIT_CALL_FAILED,
4023
4024    /**
4025     * Indicates show full screen.
4026     *
4027     * @syscap SystemCapability.Telephony.CallManager
4028     * @systemapi Hide this for inner system use.
4029     * @since 12
4030     */
4031    EVENT_SHOW_FULL_SCREEN,
4032
4033    /**
4034     * Indicates show float window.
4035     *
4036     * @syscap SystemCapability.Telephony.CallManager
4037     * @systemapi Hide this for inner system use.
4038     * @since 12
4039     */
4040    EVENT_SHOW_FLOAT_WINDOW,
4041  }
4042
4043  /**
4044   * Indicates the states of call.
4045   *
4046   * @enum { number }
4047   * @syscap SystemCapability.Telephony.CallManager
4048   * @since 6
4049   */
4050  export enum CallState {
4051    /**
4052     * Indicates an invalid state, which is used when the call state fails to be obtained.
4053     *
4054     * @syscap SystemCapability.Telephony.CallManager
4055     * @since 6
4056     */
4057    CALL_STATE_UNKNOWN = -1,
4058
4059    /**
4060     * Indicates that there is no ongoing call.
4061     *
4062     * @syscap SystemCapability.Telephony.CallManager
4063     * @since 6
4064     */
4065    CALL_STATE_IDLE = 0,
4066
4067    /**
4068     * Indicates that an incoming call is ringing or waiting.
4069     *
4070     * @syscap SystemCapability.Telephony.CallManager
4071     * @since 6
4072     */
4073    CALL_STATE_RINGING = 1,
4074
4075    /**
4076     * Indicates that a least one call is in the dialing, active, or hold state, and there is no new
4077     * incoming call ringing or waiting.
4078     *
4079     * @syscap SystemCapability.Telephony.CallManager
4080     * @since 6
4081     */
4082    CALL_STATE_OFFHOOK = 2,
4083
4084    /**
4085     * Indicates that call is answered
4086     *
4087     * @syscap SystemCapability.Telephony.CallManager
4088     * @since 11
4089     */
4090    CALL_STATE_ANSWERED = 3
4091  }
4092
4093  /**
4094   * Indicates the options of placing a call.
4095   *
4096   * @interface DialOptions
4097   * @syscap SystemCapability.Telephony.CallManager
4098   * @since 6
4099   */
4100  export interface DialOptions {
4101    /**
4102     * Indicates whether the call to be made is a video call. The value {@code false} indicates
4103     * a voice call.
4104     *
4105     * @type { ?boolean }
4106     * @syscap SystemCapability.Telephony.CallManager
4107     * @since 6
4108     */
4109    extras?: boolean;
4110
4111    /**
4112     * Indicates the card slot index number, ranging from 0 to the maximum card slot index number
4113     * supported by the device.
4114     *
4115     * @type { ?number }
4116     * @syscap SystemCapability.Telephony.CallManager
4117     * @systemapi Hide this for inner system use.
4118     * @since 8
4119     */
4120    accountId?: number;
4121
4122    /**
4123     * Indicates the type of Video state.
4124     *
4125     * @type { ?VideoStateType }
4126     * @syscap SystemCapability.Telephony.CallManager
4127     * @systemapi Hide this for inner system use.
4128     * @since 8
4129     */
4130    videoState?: VideoStateType;
4131
4132    /**
4133     * Indicates the scenario of the call to be made.
4134     *
4135     * @type { ?DialScene }
4136     * @syscap SystemCapability.Telephony.CallManager
4137     * @systemapi Hide this for inner system use.
4138     * @since 8
4139     */
4140    dialScene?: DialScene;
4141
4142    /**
4143     * Indicates the type of the call to be made.
4144     *
4145     * @type { ?DialType }
4146     * @syscap SystemCapability.Telephony.CallManager
4147     * @systemapi Hide this for inner system use.
4148     * @since 8
4149     */
4150    dialType?: DialType;
4151  }
4152
4153  /**
4154   * Indicates the options for initiating a call.
4155   *
4156   * @interface DialCallOptions
4157   * @syscap SystemCapability.Telephony.CallManager
4158   * @systemapi Hide this for inner system use.
4159   * @since 9
4160   */
4161  export interface DialCallOptions {
4162    /**
4163     * Indicates the card slot index number, ranging from 0 to the maximum card slot index number
4164     * supported by the device.
4165     *
4166     * @type { ?number }
4167     * @syscap SystemCapability.Telephony.CallManager
4168     * @systemapi Hide this for inner system use.
4169     * @since 9
4170     */
4171    accountId?: number;
4172    /**
4173     * Indicates the type of Video state.
4174     *
4175     * @type { ?VideoStateType }
4176     * @syscap SystemCapability.Telephony.CallManager
4177     * @systemapi Hide this for inner system use.
4178     * @since 9
4179     */
4180    videoState?: VideoStateType;
4181    /**
4182     * Indicates the scenario of the call.
4183     *
4184     * @type { ?DialScene }
4185     * @syscap SystemCapability.Telephony.CallManager
4186     * @systemapi Hide this for inner system use.
4187     * @since 9
4188     */
4189    dialScene?: DialScene;
4190    /**
4191     * Indicates the type of the call.
4192     *
4193     * @type { ?DialType }
4194     * @syscap SystemCapability.Telephony.CallManager
4195     * @systemapi Hide this for inner system use.
4196     * @since 9
4197     */
4198    dialType?: DialType;
4199  }
4200
4201  /**
4202   * Indicates the scenarios of the call to be made.
4203   *
4204   * @enum { number }
4205   * @syscap SystemCapability.Telephony.CallManager
4206   * @systemapi Hide this for inner system use.
4207   * @since 8
4208   */
4209  export enum DialScene {
4210    /**
4211     * Indicates this is a common call.
4212     *
4213     * @syscap SystemCapability.Telephony.CallManager
4214     * @systemapi Hide this for inner system use.
4215     * @since 8
4216     */
4217    CALL_NORMAL = 0,
4218
4219    /**
4220     * Indicates this is a privileged call.
4221     *
4222     * @syscap SystemCapability.Telephony.CallManager
4223     * @systemapi Hide this for inner system use.
4224     * @since 8
4225     */
4226    CALL_PRIVILEGED = 1,
4227
4228    /**
4229     * Indicates this is an emergency call.
4230     *
4231     * @syscap SystemCapability.Telephony.CallManager
4232     * @systemapi Hide this for inner system use.
4233     * @since 8
4234     */
4235    CALL_EMERGENCY = 2,
4236  }
4237
4238  /**
4239   * Indicates the types of the call to be made.
4240   *
4241   * @enum { number }
4242   * @syscap SystemCapability.Telephony.CallManager
4243   * @systemapi Hide this for inner system use.
4244   * @since 8
4245   */
4246  export enum DialType {
4247    /**
4248     * Indicates this is a carrier call.
4249     *
4250     * @syscap SystemCapability.Telephony.CallManager
4251     * @systemapi Hide this for inner system use.
4252     * @since 8
4253     */
4254    DIAL_CARRIER_TYPE = 0,
4255
4256    /**
4257     * Indicates this is a call to play voice mail.
4258     *
4259     * @syscap SystemCapability.Telephony.CallManager
4260     * @systemapi Hide this for inner system use.
4261     * @since 8
4262     */
4263    DIAL_VOICE_MAIL_TYPE = 1,
4264
4265    /**
4266     * Indicates this is an OTT call.
4267     *
4268     * @syscap SystemCapability.Telephony.CallManager
4269     * @systemapi Hide this for inner system use.
4270     * @since 8
4271     */
4272    DIAL_OTT_TYPE = 2,
4273  }
4274
4275  /**
4276   * Indicates the options for call rejection message.
4277   *
4278   * @interface RejectMessageOptions
4279   * @syscap SystemCapability.Telephony.CallManager
4280   * @systemapi Hide this for inner system use.
4281   * @since 7
4282   */
4283  export interface RejectMessageOptions {
4284    /**
4285     * Indicates the content of call rejection message.
4286     *
4287     * @type { string }
4288     * @syscap SystemCapability.Telephony.CallManager
4289     * @systemapi Hide this for inner system use.
4290     * @since 7
4291     */
4292    messageContent: string;
4293  }
4294
4295  /**
4296   * Indicates the result of call transfer.
4297   *
4298   * @interface CallTransferResult
4299   * @syscap SystemCapability.Telephony.CallManager
4300   * @systemapi Hide this for inner system use.
4301   * @since 8
4302   */
4303  export interface CallTransferResult {
4304    /**
4305     * Indicates the status of call forwarding.
4306     *
4307     * @type { TransferStatus }
4308     * @syscap SystemCapability.Telephony.CallManager
4309     * @systemapi Hide this for inner system use.
4310     * @since 8
4311     */
4312    status: TransferStatus;
4313
4314    /**
4315     * Indicates the phone number of call forwarding.
4316     *
4317     * @type { string }
4318     * @syscap SystemCapability.Telephony.CallManager
4319     * @systemapi Hide this for inner system use.
4320     * @since 8
4321     */
4322    number: string;
4323
4324    /**
4325     * Indicates the start time hours of call forwarding.
4326     *
4327     * @type { number }
4328     * @syscap SystemCapability.Telephony.CallManager
4329     * @systemapi Hide this for inner system use.
4330     * @since 9
4331     */
4332    startHour: number;
4333
4334    /**
4335     * Indicates the start time minutes of call forwarding.
4336     *
4337     * @type { number }
4338     * @syscap SystemCapability.Telephony.CallManager
4339     * @systemapi Hide this for inner system use.
4340     * @since 9
4341     */
4342    startMinute: number;
4343
4344    /**
4345     * Indicates the end time hours of call forwarding.
4346     *
4347     * @type { number }
4348     * @syscap SystemCapability.Telephony.CallManager
4349     * @systemapi Hide this for inner system use.
4350     * @since 9
4351     */
4352    endHour: number;
4353
4354    /**
4355     * Indicates the end time minutes of call forwarding.
4356     *
4357     * @type { number }
4358     * @syscap SystemCapability.Telephony.CallManager
4359     * @systemapi Hide this for inner system use.
4360     * @since 9
4361     */
4362    endMinute: number;
4363  }
4364
4365  /**
4366   * Indicates the status of call waiting.
4367   *
4368   * @enum { number }
4369   * @syscap SystemCapability.Telephony.CallManager
4370   * @systemapi Hide this for inner system use.
4371   * @since 7
4372   */
4373  export enum CallWaitingStatus {
4374    /**
4375     * Indicates that call waiting is not enabled.
4376     *
4377     * @syscap SystemCapability.Telephony.CallManager
4378     * @systemapi Hide this for inner system use.
4379     * @since 7
4380     */
4381    CALL_WAITING_DISABLE = 0,
4382
4383    /**
4384     * Indicates that call waiting is enabled.
4385     *
4386     * @syscap SystemCapability.Telephony.CallManager
4387     * @systemapi Hide this for inner system use.
4388     * @since 7
4389     */
4390    CALL_WAITING_ENABLE = 1
4391  }
4392
4393  /**
4394   * Indicates the status of call restriction.
4395   *
4396   * @enum { number }
4397   * @syscap SystemCapability.Telephony.CallManager
4398   * @systemapi Hide this for inner system use.
4399   * @since 8
4400   */
4401  export enum RestrictionStatus {
4402    /**
4403     * Indicates that call barring is not enabled.
4404     *
4405     * @syscap SystemCapability.Telephony.CallManager
4406     * @systemapi Hide this for inner system use.
4407     * @since 8
4408     */
4409    RESTRICTION_DISABLE = 0,
4410
4411    /**
4412     * Indicates that call barring is enabled.
4413     *
4414     * @syscap SystemCapability.Telephony.CallManager
4415     * @systemapi Hide this for inner system use.
4416     * @since 8
4417     */
4418    RESTRICTION_ENABLE = 1
4419  }
4420
4421  /**
4422   * Indicates the status of call transfer.
4423   *
4424   * @enum { number }
4425   * @syscap SystemCapability.Telephony.CallManager
4426   * @systemapi Hide this for inner system use.
4427   * @since 8
4428   */
4429  export enum TransferStatus {
4430    /**
4431     * Indicates that call forwarding is not enabled.
4432     *
4433     * @syscap SystemCapability.Telephony.CallManager
4434     * @systemapi Hide this for inner system use.
4435     * @since 8
4436     */
4437    TRANSFER_DISABLE = 0,
4438
4439    /**
4440     * Indicates that call forwarding is enabled.
4441     *
4442     * @syscap SystemCapability.Telephony.CallManager
4443     * @systemapi Hide this for inner system use.
4444     * @since 8
4445     */
4446    TRANSFER_ENABLE = 1
4447  }
4448
4449  /**
4450   * Indicates the option for determining if a number is an emergency number for specified slot.
4451   *
4452   * @interface EmergencyNumberOptions
4453   * @syscap SystemCapability.Telephony.CallManager
4454   * @since 7
4455   */
4456  export interface EmergencyNumberOptions {
4457    /**
4458     * Indicates the card slot index number, ranging from 0 to the
4459     * maximum card slot index number supported by the device.
4460     *
4461     * @type { ?number }
4462     * @syscap SystemCapability.Telephony.CallManager
4463     * @since 7
4464     */
4465    slotId?: number;
4466  }
4467
4468  /**
4469   * Indicates the option for number formatting.
4470   *
4471   * @interface NumberFormatOptions
4472   * @syscap SystemCapability.Telephony.CallManager
4473   * @since 7
4474   */
4475  export interface NumberFormatOptions {
4476    /**
4477     * Indicates the country code.
4478     *
4479     * @type { ?string }
4480     * @syscap SystemCapability.Telephony.CallManager
4481     * @since 7
4482     */
4483    countryCode?: string;
4484  }
4485
4486  /**
4487   * Indicates the MMI code result.
4488   *
4489   * @interface MmiCodeResults
4490   * @syscap SystemCapability.Telephony.CallManager
4491   * @systemapi Hide this for inner system use.
4492   * @since 9
4493   */
4494  export interface MmiCodeResults {
4495    /**
4496     * Indicates the result of MMI code.
4497     *
4498     * @type { MmiCodeResult }
4499     * @syscap SystemCapability.Telephony.CallManager
4500     * @systemapi Hide this for inner system use.
4501     * @since 9
4502     */
4503    result: MmiCodeResult;
4504
4505    /**
4506     * Indicates the message of MMI code.
4507     *
4508     * @type { string }
4509     * @syscap SystemCapability.Telephony.CallManager
4510     * @systemapi Hide this for inner system use.
4511     * @since 9
4512     */
4513    message: string;
4514  }
4515
4516  /**
4517   * Indicates the MMI code result.
4518   *
4519   * @enum { number }
4520   * @syscap SystemCapability.Telephony.CallManager
4521   * @systemapi Hide this for inner system use.
4522   * @since 9
4523   */
4524  export enum MmiCodeResult {
4525    /**
4526     * Indicates the result of MMI code with successfully.
4527     *
4528     * @syscap SystemCapability.Telephony.CallManager
4529     * @systemapi Hide this for inner system use.
4530     * @since 9
4531     */
4532    MMI_CODE_SUCCESS = 0,
4533
4534    /**
4535     * Indicates the result of MMI code with failed.
4536     *
4537     * @syscap SystemCapability.Telephony.CallManager
4538     * @systemapi Hide this for inner system use.
4539     * @since 9
4540     */
4541    MMI_CODE_FAILED = 1
4542  }
4543
4544  /**
4545   * Indicates the causes of call disconnection.
4546   *
4547   * @enum { number }
4548   * @syscap SystemCapability.Telephony.CallManager
4549   * @systemapi Hide this for inner system use.
4550   * @since 8
4551   */
4552  export enum DisconnectedReason {
4553    /**
4554     * Indicates the call disconnect due to unassigned number.
4555     *
4556     * @syscap SystemCapability.Telephony.CallManager
4557     * @systemapi Hide this for inner system use.
4558     * @since 8
4559     */
4560    UNASSIGNED_NUMBER = 1,
4561
4562    /**
4563     * Indicates the call disconnect due to no route to destination.
4564     *
4565     * @syscap SystemCapability.Telephony.CallManager
4566     * @systemapi Hide this for inner system use.
4567     * @since 8
4568     */
4569    NO_ROUTE_TO_DESTINATION = 3,
4570
4571    /**
4572     * Indicates the call disconnect due to channel unacceptable.
4573     *
4574     * @syscap SystemCapability.Telephony.CallManager
4575     * @systemapi Hide this for inner system use.
4576     * @since 8
4577     */
4578    CHANNEL_UNACCEPTABLE = 6,
4579
4580    /**
4581     * Indicates the call disconnect due to operator determined barring.
4582     *
4583     * @syscap SystemCapability.Telephony.CallManager
4584     * @systemapi Hide this for inner system use.
4585     * @since 8
4586     */
4587    OPERATOR_DETERMINED_BARRING = 8,
4588
4589    /**
4590     * Indicates the call disconnect due to call completed elsewhere.
4591     *
4592     * @syscap SystemCapability.Telephony.CallManager
4593     * @systemapi Hide this for inner system use.
4594     * @since 9
4595     */
4596    CALL_COMPLETED_ELSEWHERE = 13,
4597
4598    /**
4599     * Indicates the call disconnect due to normal call clearing.
4600     *
4601     * @syscap SystemCapability.Telephony.CallManager
4602     * @systemapi Hide this for inner system use.
4603     * @since 8
4604     */
4605    NORMAL_CALL_CLEARING = 16,
4606
4607    /**
4608     * Indicates the call disconnect due to user busy.
4609     *
4610     * @syscap SystemCapability.Telephony.CallManager
4611     * @systemapi Hide this for inner system use.
4612     * @since 8
4613     */
4614    USER_BUSY = 17,
4615
4616    /**
4617     * Indicates the call disconnect due to no user responding.
4618     *
4619     * @syscap SystemCapability.Telephony.CallManager
4620     * @systemapi Hide this for inner system use.
4621     * @since 8
4622     */
4623    NO_USER_RESPONDING = 18,
4624
4625    /**
4626     * Indicates the call disconnect due to user alerting, no answer.
4627     *
4628     * @syscap SystemCapability.Telephony.CallManager
4629     * @systemapi Hide this for inner system use.
4630     * @since 8
4631     */
4632    USER_ALERTING_NO_ANSWER = 19,
4633
4634    /**
4635     * Indicates the call disconnect due to call rejected.
4636     *
4637     * @syscap SystemCapability.Telephony.CallManager
4638     * @systemapi Hide this for inner system use.
4639     * @since 8
4640     */
4641    CALL_REJECTED = 21,
4642
4643    /**
4644     * Indicates the call disconnect due to number changed.
4645     *
4646     * @syscap SystemCapability.Telephony.CallManager
4647     * @systemapi Hide this for inner system use.
4648     * @since 8
4649     */
4650    NUMBER_CHANGED = 22,
4651
4652    /**
4653     * Indicates the call rejected due to feature at the destination.
4654     *
4655     * @syscap SystemCapability.Telephony.CallManager
4656     * @systemapi Hide this for inner system use.
4657     * @since 9
4658     */
4659    CALL_REJECTED_DUE_TO_FEATURE_AT_THE_DESTINATION = 24,
4660
4661    /**
4662     * Indicates the call disconnect due to pre-emption.
4663     *
4664     * @syscap SystemCapability.Telephony.CallManager
4665     * @systemapi Hide this for inner system use.
4666     * @since 9
4667     */
4668    FAILED_PRE_EMPTION = 25,
4669
4670    /**
4671     * Indicates the call disconnect due to non selected user clearing.
4672     *
4673     * @syscap SystemCapability.Telephony.CallManager
4674     * @systemapi Hide this for inner system use.
4675     * @since 9
4676     */
4677    NON_SELECTED_USER_CLEARING = 26,
4678
4679    /**
4680     * Indicates the call disconnect due to destination out of order.
4681     *
4682     * @syscap SystemCapability.Telephony.CallManager
4683     * @systemapi Hide this for inner system use.
4684     * @since 8
4685     */
4686    DESTINATION_OUT_OF_ORDER = 27,
4687
4688    /**
4689     * Indicates the call disconnect due to invalid number format.
4690     *
4691     * @syscap SystemCapability.Telephony.CallManager
4692     * @systemapi Hide this for inner system use.
4693     * @since 8
4694     */
4695    INVALID_NUMBER_FORMAT = 28,
4696
4697    /**
4698     * Indicates the call disconnect due to facility rejected.
4699     *
4700     * @syscap SystemCapability.Telephony.CallManager
4701     * @systemapi Hide this for inner system use.
4702     * @since 9
4703     */
4704    FACILITY_REJECTED = 29,
4705
4706    /**
4707     * Indicates the call disconnect due to response to status enquiry.
4708     *
4709     * @syscap SystemCapability.Telephony.CallManager
4710     * @systemapi Hide this for inner system use.
4711     * @since 9
4712     */
4713    RESPONSE_TO_STATUS_ENQUIRY = 30,
4714
4715    /**
4716     * Indicates the call disconnected normally, no specified cause.
4717     *
4718     * @syscap SystemCapability.Telephony.CallManager
4719     * @systemapi Hide this for inner system use.
4720     * @since 9
4721     */
4722    NORMAL_UNSPECIFIED = 31,
4723
4724    /**
4725     * Indicates the call disconnect due to no circuit/channel available.
4726     *
4727     * @syscap SystemCapability.Telephony.CallManager
4728     * @systemapi Hide this for inner system use.
4729     * @since 9
4730     */
4731    NO_CIRCUIT_CHANNEL_AVAILABLE = 34,
4732
4733    /**
4734     * Indicates the call disconnect due to network out of order.
4735     *
4736     * @syscap SystemCapability.Telephony.CallManager
4737     * @systemapi Hide this for inner system use.
4738     * @since 8
4739     */
4740    NETWORK_OUT_OF_ORDER = 38,
4741
4742    /**
4743     * Indicates the call disconnect due to temporary failure.
4744     *
4745     * @syscap SystemCapability.Telephony.CallManager
4746     * @systemapi Hide this for inner system use.
4747     * @since 8
4748     */
4749    TEMPORARY_FAILURE = 41,
4750
4751    /**
4752     * Indicates the call disconnect due to switching equipment congestion.
4753     *
4754     * @syscap SystemCapability.Telephony.CallManager
4755     * @systemapi Hide this for inner system use.
4756     * @since 9
4757     */
4758    SWITCHING_EQUIPMENT_CONGESTION = 42,
4759
4760    /**
4761     * Indicates the call disconnect due to access information discarded.
4762     *
4763     * @syscap SystemCapability.Telephony.CallManager
4764     * @systemapi Hide this for inner system use.
4765     * @since 9
4766     */
4767    ACCESS_INFORMATION_DISCARDED = 43,
4768
4769    /**
4770     * Indicates the call disconnect due to requested circuit/channel not available.
4771     *
4772     * @syscap SystemCapability.Telephony.CallManager
4773     * @systemapi Hide this for inner system use.
4774     * @since 9
4775     */
4776    REQUEST_CIRCUIT_CHANNEL_NOT_AVAILABLE = 44,
4777
4778    /**
4779     * Indicates the call disconnect due to resources unavailable unspecified.
4780     *
4781     * @syscap SystemCapability.Telephony.CallManager
4782     * @systemapi Hide this for inner system use.
4783     * @since 9
4784     */
4785    RESOURCES_UNAVAILABLE_UNSPECIFIED = 47,
4786
4787    /**
4788     * Indicates the call disconnect due to quality of service unavailable.
4789     *
4790     * @syscap SystemCapability.Telephony.CallManager
4791     * @systemapi Hide this for inner system use.
4792     * @since 9
4793     */
4794    QUALITY_OF_SERVICE_UNAVAILABLE = 49,
4795
4796    /**
4797     * Indicates the call disconnect due to requested facility not subscribed.
4798     *
4799     * @syscap SystemCapability.Telephony.CallManager
4800     * @systemapi Hide this for inner system use.
4801     * @since 9
4802     */
4803    REQUESTED_FACILITY_NOT_SUBSCRIBED = 50,
4804
4805    /**
4806     * Indicates the call disconnect due to incoming calls barred within the CUG.
4807     *
4808     * @syscap SystemCapability.Telephony.CallManager
4809     * @systemapi Hide this for inner system use.
4810     * @since 9
4811     */
4812    INCOMING_CALLS_BARRED_WITHIN_THE_CUG = 55,
4813
4814    /**
4815     * Indicates the call disconnect due to bearer capability not authorized.
4816     *
4817     * @syscap SystemCapability.Telephony.CallManager
4818     * @systemapi Hide this for inner system use.
4819     * @since 9
4820     */
4821    BEARER_CAPABILITY_NOT_AUTHORIZED = 57,
4822
4823    /**
4824     * Indicates the call disconnect due to bearer capability not presently available.
4825     *
4826     * @syscap SystemCapability.Telephony.CallManager
4827     * @systemapi Hide this for inner system use.
4828     * @since 9
4829     */
4830    BEARER_CAPABILITY_NOT_PRESENTLY_AVAILABLE = 58,
4831
4832    /**
4833     * Indicates the call disconnect due to service or option not available, unspecified.
4834     *
4835     * @syscap SystemCapability.Telephony.CallManager
4836     * @systemapi Hide this for inner system use.
4837     * @since 9
4838     */
4839    SERVICE_OR_OPTION_NOT_AVAILABLE_UNSPECIFIED = 63,
4840
4841    /**
4842     * Indicates the call disconnect due to bearer service not implemented.
4843     *
4844     * @syscap SystemCapability.Telephony.CallManager
4845     * @systemapi Hide this for inner system use.
4846     * @since 9
4847     */
4848    BEARER_SERVICE_NOT_IMPLEMENTED = 65,
4849
4850    /**
4851     * Indicates the call disconnect due to ACM equal to or greater than the maximum value.
4852     *
4853     * @syscap SystemCapability.Telephony.CallManager
4854     * @systemapi Hide this for inner system use.
4855     * @since 9
4856     */
4857    ACM_EQUALTO_OR_GREATER_THAN_THE_MAXIMUM_VALUE = 68,
4858
4859    /**
4860     * Indicates the call disconnect due to requested facility not implemented.
4861     *
4862     * @syscap SystemCapability.Telephony.CallManager
4863     * @systemapi Hide this for inner system use.
4864     * @since 9
4865     */
4866    REQUESTED_FACILITY_NOT_IMPLEMENTED = 69,
4867
4868    /**
4869     * Indicates the call disconnect due to only restricted digital info BC available.
4870     *
4871     * @syscap SystemCapability.Telephony.CallManager
4872     * @systemapi Hide this for inner system use.
4873     * @since 9
4874     */
4875    ONLY_RESTRICTED_DIGITAL_INFO_BEARER_CAPABILITY_IS_AVAILABLE = 70,
4876
4877    /**
4878     * Indicates the call disconnect due to service or option not implemented, unspecified.
4879     *
4880     * @syscap SystemCapability.Telephony.CallManager
4881     * @systemapi Hide this for inner system use.
4882     * @since 9
4883     */
4884    SERVICE_OR_OPTION_NOT_IMPLEMENTED_UNSPECIFIED = 79,
4885
4886    /**
4887     * Indicates the call disconnect due to invalid transaction identifier value.
4888     *
4889     * @syscap SystemCapability.Telephony.CallManager
4890     * @systemapi Hide this for inner system use.
4891     * @since 9
4892     */
4893    INVALID_TRANSACTION_IDENTIFIER_VALUE = 81,
4894
4895    /**
4896     * Indicates the call disconnect due to user not member of CUG.
4897     *
4898     * @syscap SystemCapability.Telephony.CallManager
4899     * @systemapi Hide this for inner system use.
4900     * @since 9
4901     */
4902    USER_NOT_MEMBER_OF_CUG = 87,
4903
4904    /**
4905     * Indicates the call disconnect due to incompatible destination.
4906     *
4907     * @syscap SystemCapability.Telephony.CallManager
4908     * @systemapi Hide this for inner system use.
4909     * @since 9
4910     */
4911    INCOMPATIBLE_DESTINATION = 88,
4912
4913    /**
4914     * Indicates the call disconnect due to invalid transit network selection.
4915     *
4916     * @syscap SystemCapability.Telephony.CallManager
4917     * @systemapi Hide this for inner system use.
4918     * @since 9
4919     */
4920    INVALID_TRANSIT_NETWORK_SELECTION = 91,
4921
4922    /**
4923     * Indicates the call disconnect due to semantically incorrect message.
4924     *
4925     * @syscap SystemCapability.Telephony.CallManager
4926     * @systemapi Hide this for inner system use.
4927     * @since 9
4928     */
4929    SEMANTICALLY_INCORRECT_MESSAGE = 95,
4930
4931    /**
4932     * Indicates the call disconnect due to invalid mandatory information.
4933     *
4934     * @syscap SystemCapability.Telephony.CallManager
4935     * @systemapi Hide this for inner system use.
4936     * @since 9
4937     */
4938    INVALID_MANDATORY_INFORMATION = 96,
4939
4940    /**
4941     * Indicates the call disconnect due to msg type non-existent or not implemented.
4942     *
4943     * @syscap SystemCapability.Telephony.CallManager
4944     * @systemapi Hide this for inner system use.
4945     * @since 9
4946     */
4947    MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 97,
4948
4949    /**
4950     * Indicates the call disconnect due to msg type not compatible with protocol state.
4951     *
4952     * @syscap SystemCapability.Telephony.CallManager
4953     * @systemapi Hide this for inner system use.
4954     * @since 9
4955     */
4956    MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98,
4957
4958    /**
4959     * Indicates the call disconnect due to IE non-existent or not implemented.
4960     *
4961     * @syscap SystemCapability.Telephony.CallManager
4962     * @systemapi Hide this for inner system use.
4963     * @since 9
4964     */
4965    INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99,
4966
4967    /**
4968     * Indicates the call disconnect due to conditional IE error.
4969     *
4970     * @syscap SystemCapability.Telephony.CallManager
4971     * @systemapi Hide this for inner system use.
4972     * @since 9
4973     */
4974    CONDITIONAL_IE_ERROR = 100,
4975
4976    /**
4977     * Indicates the call disconnect due to message not compatible with protocol state.
4978     *
4979     * @syscap SystemCapability.Telephony.CallManager
4980     * @systemapi Hide this for inner system use.
4981     * @since 9
4982     */
4983    MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101,
4984
4985    /**
4986     * Indicates the call disconnect due to recovery on timer expiry timer number.
4987     *
4988     * @syscap SystemCapability.Telephony.CallManager
4989     * @systemapi Hide this for inner system use.
4990     * @since 9
4991     */
4992    RECOVERY_ON_TIMER_EXPIRED = 102,
4993
4994    /**
4995     * Indicates the call disconnect due to protocol error, unspecified.
4996     *
4997     * @syscap SystemCapability.Telephony.CallManager
4998     * @systemapi Hide this for inner system use.
4999     * @since 9
5000     */
5001    PROTOCOL_ERROR_UNSPECIFIED = 111,
5002
5003    /**
5004     * Indicates the call disconnect due to interworking, unspecified.
5005     *
5006     * @syscap SystemCapability.Telephony.CallManager
5007     * @systemapi Hide this for inner system use.
5008     * @since 9
5009     */
5010    INTERWORKING_UNSPECIFIED = 127,
5011
5012    /**
5013     * Indicates the call disconnect due to call barred.
5014     *
5015     * @syscap SystemCapability.Telephony.CallManager
5016     * @systemapi Hide this for inner system use.
5017     * @since 9
5018     */
5019    CALL_BARRED = 240,
5020
5021    /**
5022     * Indicates the call disconnect due to FDN blocked.
5023     *
5024     * @syscap SystemCapability.Telephony.CallManager
5025     * @systemapi Hide this for inner system use.
5026     * @since 9
5027     */
5028    FDN_BLOCKED = 241,
5029
5030    /**
5031     * Indicates the call disconnect due to IMSI in VLR is unknown.
5032     *
5033     * @syscap SystemCapability.Telephony.CallManager
5034     * @systemapi Hide this for inner system use.
5035     * @since 9
5036     */
5037    IMSI_UNKNOWN_IN_VLR = 242,
5038
5039    /**
5040     * Indicates the call disconnect due to IMEI not accepted.
5041     *
5042     * @syscap SystemCapability.Telephony.CallManager
5043     * @systemapi Hide this for inner system use.
5044     * @since 9
5045     */
5046    IMEI_NOT_ACCEPTED = 243,
5047
5048    /**
5049     * Indicates the call disconnect due to dial modified to USSD.
5050     *
5051     * @syscap SystemCapability.Telephony.CallManager
5052     * @systemapi Hide this for inner system use.
5053     * @since 9
5054     */
5055    DIAL_MODIFIED_TO_USSD = 244,
5056
5057    /**
5058     * Indicates the call disconnect due to dial modified to SS.
5059     *
5060     * @syscap SystemCapability.Telephony.CallManager
5061     * @systemapi Hide this for inner system use.
5062     * @since 9
5063     */
5064    DIAL_MODIFIED_TO_SS = 245,
5065
5066    /**
5067     * Indicates the call disconnect due to dial modified to dial.
5068     *
5069     * @syscap SystemCapability.Telephony.CallManager
5070     * @systemapi Hide this for inner system use.
5071     * @since 9
5072     */
5073    DIAL_MODIFIED_TO_DIAL = 246,
5074
5075    /**
5076     * Indicates the call disconnect due to Radio off.
5077     *
5078     * @syscap SystemCapability.Telephony.CallManager
5079     * @systemapi Hide this for inner system use.
5080     * @since 9
5081     */
5082    RADIO_OFF = 247,
5083
5084    /**
5085     * Indicates the call disconnect due to out of service.
5086     *
5087     * @syscap SystemCapability.Telephony.CallManager
5088     * @systemapi Hide this for inner system use.
5089     * @since 9
5090     */
5091    OUT_OF_SERVICE = 248,
5092
5093    /**
5094     * Indicates the call disconnect due to invalid SIM.
5095     *
5096     * @syscap SystemCapability.Telephony.CallManager
5097     * @systemapi Hide this for inner system use.
5098     * @since 9
5099     */
5100    NO_VALID_SIM = 249,
5101
5102    /**
5103     * Indicates the call disconnect due to radio internal error.
5104     *
5105     * @syscap SystemCapability.Telephony.CallManager
5106     * @systemapi Hide this for inner system use.
5107     * @since 9
5108     */
5109    RADIO_INTERNAL_ERROR = 250,
5110
5111    /**
5112     * Indicates the call disconnect due to network response timeout.
5113     *
5114     * @syscap SystemCapability.Telephony.CallManager
5115     * @systemapi Hide this for inner system use.
5116     * @since 9
5117     */
5118    NETWORK_RESP_TIMEOUT = 251,
5119
5120    /**
5121     * Indicates the call disconnect due to network reject.
5122     *
5123     * @syscap SystemCapability.Telephony.CallManager
5124     * @systemapi Hide this for inner system use.
5125     * @since 9
5126     */
5127    NETWORK_REJECT = 252,
5128
5129    /**
5130     * Indicates the call disconnect due to radio access failure.
5131     *
5132     * @syscap SystemCapability.Telephony.CallManager
5133     * @systemapi Hide this for inner system use.
5134     * @since 9
5135     */
5136    RADIO_ACCESS_FAILURE = 253,
5137
5138    /**
5139     * Indicates the call disconnect due to radio link failure.
5140     *
5141     * @syscap SystemCapability.Telephony.CallManager
5142     * @systemapi Hide this for inner system use.
5143     * @since 9
5144     */
5145    RADIO_LINK_FAILURE = 254,
5146
5147    /**
5148     * Indicates the call disconnect due to radio link lost.
5149     *
5150     * @syscap SystemCapability.Telephony.CallManager
5151     * @systemapi Hide this for inner system use.
5152     * @since 9
5153     */
5154    RADIO_LINK_LOST = 255,
5155
5156    /**
5157     * Indicates the call disconnect due to radio uplink failure.
5158     *
5159     * @syscap SystemCapability.Telephony.CallManager
5160     * @systemapi Hide this for inner system use.
5161     * @since 9
5162     */
5163    RADIO_UPLINK_FAILURE = 256,
5164
5165    /**
5166     * Indicates the call disconnect due to radio setup failure.
5167     *
5168     * @syscap SystemCapability.Telephony.CallManager
5169     * @systemapi Hide this for inner system use.
5170     * @since 9
5171     */
5172    RADIO_SETUP_FAILURE = 257,
5173
5174    /**
5175     * Indicates the call disconnect due to radio release normal.
5176     *
5177     * @syscap SystemCapability.Telephony.CallManager
5178     * @systemapi Hide this for inner system use.
5179     * @since 9
5180     */
5181    RADIO_RELEASE_NORMAL = 258,
5182
5183    /**
5184     * Indicates the call disconnect due to radio release abnormal.
5185     *
5186     * @syscap SystemCapability.Telephony.CallManager
5187     * @systemapi Hide this for inner system use.
5188     * @since 9
5189     */
5190    RADIO_RELEASE_ABNORMAL = 259,
5191
5192    /**
5193     * Indicates the call disconnect due to access class blocked.
5194     *
5195     * @syscap SystemCapability.Telephony.CallManager
5196     * @systemapi Hide this for inner system use.
5197     * @since 9
5198     */
5199    ACCESS_CLASS_BLOCKED = 260,
5200
5201    /**
5202     * Indicates the call disconnect due to network detach.
5203     *
5204     * @syscap SystemCapability.Telephony.CallManager
5205     * @systemapi Hide this for inner system use.
5206     * @since 9
5207     */
5208    NETWORK_DETACH = 261,
5209
5210    /**
5211     * Indicates the call disconnect due to invalid parameter.
5212     *
5213     * @syscap SystemCapability.Telephony.CallManager
5214     * @systemapi Hide this for inner system use.
5215     * @since 8
5216     */
5217    INVALID_PARAMETER = 1025,
5218
5219    /**
5220     * Indicates the call disconnect due to sim not exit.
5221     *
5222     * @syscap SystemCapability.Telephony.CallManager
5223     * @systemapi Hide this for inner system use.
5224     * @since 8
5225     */
5226    SIM_NOT_EXIT = 1026,
5227
5228    /**
5229     * Indicates the call disconnect due to sim pin need.
5230     *
5231     * @syscap SystemCapability.Telephony.CallManager
5232     * @systemapi Hide this for inner system use.
5233     * @since 8
5234     */
5235    SIM_PIN_NEED = 1027,
5236
5237    /**
5238     * Indicates the call disconnect due to call not allow.
5239     *
5240     * @syscap SystemCapability.Telephony.CallManager
5241     * @systemapi Hide this for inner system use.
5242     * @since 8
5243     */
5244    CALL_NOT_ALLOW = 1029,
5245
5246    /**
5247     * Indicates the call disconnect due to sim invalid.
5248     *
5249     * @syscap SystemCapability.Telephony.CallManager
5250     * @systemapi Hide this for inner system use.
5251     * @since 8
5252     */
5253    SIM_INVALID = 1045,
5254
5255    /**
5256     * Indicates the call disconnect due to unknown error.
5257     *
5258     * @syscap SystemCapability.Telephony.CallManager
5259     * @systemapi Hide this for inner system use.
5260     * @since 8
5261     */
5262    UNKNOWN = 1279,
5263  }
5264
5265  /**
5266   * Indicates the cause of a call disconnection.
5267   *
5268   * @interface DisconnectedDetails
5269   * @syscap SystemCapability.Telephony.CallManager
5270   * @systemapi Hide this for inner system use.
5271   * @since 9
5272   */
5273  export interface DisconnectedDetails {
5274    /**
5275     * Indicates the reason for ending the call.
5276     *
5277     * @type { DisconnectedReason }
5278     * @syscap SystemCapability.Telephony.CallManager
5279     * @systemapi Hide this for inner system use.
5280     * @since 9
5281     */
5282    reason: DisconnectedReason;
5283    /**
5284     * Indicates the message for ending the call.
5285     *
5286     * @type { string }
5287     * @syscap SystemCapability.Telephony.CallManager
5288     * @systemapi Hide this for inner system use.
5289     * @since 9
5290     */
5291    message: string;
5292  }
5293
5294  /**
5295   * Indicates the ims call mode info of a video call.
5296   *
5297   * @interface ImsCallModeInfo
5298   * @syscap SystemCapability.Telephony.CallManager
5299   * @systemapi Hide this for inner system use.
5300   * @since 11
5301   */
5302  export interface ImsCallModeInfo {
5303    /**
5304     * Indicates the id of call.
5305     *
5306     * @type { number }
5307     * @syscap SystemCapability.Telephony.CallManager
5308     * @systemapi Hide this for inner system use.
5309     * @since 11
5310     */
5311    callId: number;
5312    /**
5313     * Indicates the request result.
5314     *
5315     * @type { VideoRequestResultType }
5316     * @syscap SystemCapability.Telephony.CallManager
5317     * @systemapi Hide this for inner system use.
5318     * @since 11
5319     */
5320    result: VideoRequestResultType;
5321    /**
5322     * Indicates if this is a request which received from remote,
5323     *
5324     * @type { boolean }
5325     * @syscap SystemCapability.Telephony.CallManager
5326     * @systemapi Hide this for inner system use.
5327     * @since 11
5328     */
5329    isRequestInfo: boolean;
5330    /**
5331     * Indicates the ImsCallMode of call.
5332     *
5333     * @type { ImsCallMode }
5334     * @syscap SystemCapability.Telephony.CallManager
5335     * @systemapi Hide this for inner system use.
5336     * @since 11
5337     */
5338    imsCallMode: ImsCallMode;
5339  }
5340
5341  /**
5342   * Indicates the call session event of a video call.
5343   *
5344   * @interface CallSessionEvent
5345   * @syscap SystemCapability.Telephony.CallManager
5346   * @systemapi Hide this for inner system use.
5347   * @since 11
5348   */
5349  export interface CallSessionEvent {
5350    /**
5351     * Indicates the id of call.
5352     *
5353     * @type { number }
5354     * @syscap SystemCapability.Telephony.CallManager
5355     * @systemapi Hide this for inner system use.
5356     * @since 11
5357     */
5358    callId: number;
5359    /**
5360     * Indicates the event id of video call.
5361     *
5362     * @type { CallSessionEventId }
5363     * @syscap SystemCapability.Telephony.CallManager
5364     * @systemapi Hide this for inner system use.
5365     * @since 11
5366     */
5367    eventId: CallSessionEventId;
5368  }
5369
5370  /**
5371   * Indicates the peer dimension.
5372   *
5373   * @interface PeerDimensionsDetail
5374   * @syscap SystemCapability.Telephony.CallManager
5375   * @systemapi Hide this for inner system use.
5376   * @since 11
5377   */
5378  export interface PeerDimensionsDetail {
5379    /**
5380     * Indicates the id of call.
5381     *
5382     * @type { number }
5383     * @syscap SystemCapability.Telephony.CallManager
5384     * @systemapi Hide this for inner system use.
5385     * @since 11
5386     */
5387    callId: number;
5388    /**
5389     * Indicates the peer dimensions width.
5390     *
5391     * @type { number }
5392     * @syscap SystemCapability.Telephony.CallManager
5393     * @systemapi Hide this for inner system use.
5394     * @since 11
5395     */
5396    width: number;
5397    /**
5398     * Indicates the the peer dimensions height.
5399     *
5400     * @type { number }
5401     * @syscap SystemCapability.Telephony.CallManager
5402     * @systemapi Hide this for inner system use.
5403     * @since 11
5404     */
5405    height: number;
5406  }
5407
5408  /**
5409   * Indicates the camera capabilities.
5410   *
5411   * @interface CameraCapabilities
5412   * @syscap SystemCapability.Telephony.CallManager
5413   * @systemapi Hide this for inner system use.
5414   * @since 11
5415   */
5416  export interface CameraCapabilities {
5417    /**
5418     * Indicates the id of call.
5419     *
5420     * @type { number }
5421     * @syscap SystemCapability.Telephony.CallManager
5422     * @systemapi Hide this for inner system use.
5423     * @since 11
5424     */
5425    callId: number;
5426    /**
5427     * Indicates the camera width.
5428     *
5429     * @type { number }
5430     * @syscap SystemCapability.Telephony.CallManager
5431     * @systemapi Hide this for inner system use.
5432     * @since 11
5433     */
5434    width: number;
5435    /**
5436     * Indicates the the camera height.
5437     *
5438     * @type { number }
5439     * @syscap SystemCapability.Telephony.CallManager
5440     * @systemapi Hide this for inner system use.
5441     * @since 11
5442     */
5443    height: number;
5444  }
5445
5446  /**
5447   * Indicates the mark information of the phone number.
5448   *
5449   * @interface NumberMarkInfo
5450   * @syscap SystemCapability.Telephony.CallManager
5451   * @systemapi Hide this for inner system use.
5452   * @since 12
5453   */
5454  export interface NumberMarkInfo {
5455    /**
5456     * Indicates the type of number mark.
5457     *
5458     * @type { MarkType }
5459     * @syscap SystemCapability.Telephony.CallManager
5460     * @systemapi Hide this for inner system use.
5461     * @since 12
5462     */
5463    markType: MarkType;
5464
5465    /**
5466     * Indicates the content of number mark.
5467     *
5468     * @type { ?string }
5469     * @syscap SystemCapability.Telephony.CallManager
5470     * @systemapi Hide this for inner system use.
5471     * @since 12
5472     */
5473    markContent?: string;
5474
5475    /**
5476     * Indicates the count of number mark.
5477     *
5478     * @type { ?number }
5479     * @syscap SystemCapability.Telephony.CallManager
5480     * @systemapi Hide this for inner system use.
5481     * @since 12
5482     */
5483    markCount?: number;
5484
5485    /**
5486     * Indicates the source of number mark.
5487     *
5488     * @type { ?string }
5489     * @syscap SystemCapability.Telephony.CallManager
5490     * @systemapi Hide this for inner system use.
5491     * @since 12
5492     */
5493    markSource?: string;
5494
5495    /**
5496     * Indicates if this is a number mark from cloud.
5497     *
5498     * @type { ?boolean }
5499     * @syscap SystemCapability.Telephony.CallManager
5500     * @systemapi Hide this for inner system use.
5501     * @since 12
5502     */
5503    isCloud?: boolean;
5504  }
5505
5506  /**
5507   * Indicates the type of the number mark.
5508   *
5509   * @enum { number }
5510   * @syscap SystemCapability.Telephony.CallManager
5511   * @systemapi Hide this for inner system use.
5512   * @since 12
5513   */
5514  export enum MarkType {
5515    /**
5516     * Indicates the mark is none.
5517     *
5518     * @syscap SystemCapability.Telephony.CallManager
5519     * @systemapi Hide this for inner system use.
5520     * @since 12
5521     */
5522    MARK_TYPE_NONE = 0,
5523
5524    /**
5525     * Indicates the mark is crank.
5526     *
5527     * @syscap SystemCapability.Telephony.CallManager
5528     * @systemapi Hide this for inner system use.
5529     * @since 12
5530     */
5531    MARK_TYPE_CRANK = 1,
5532
5533    /**
5534     * Indicates the mark is fraud.
5535     *
5536     * @syscap SystemCapability.Telephony.CallManager
5537     * @systemapi Hide this for inner system use.
5538     * @since 12
5539     */
5540    MARK_TYPE_FRAUD = 2,
5541
5542    /**
5543     * Indicates the mark is express.
5544     *
5545     * @syscap SystemCapability.Telephony.CallManager
5546     * @systemapi Hide this for inner system use.
5547     * @since 12
5548     */
5549    MARK_TYPE_EXPRESS = 3,
5550
5551    /**
5552     * Indicates the mark is promote sales.
5553     *
5554     * @syscap SystemCapability.Telephony.CallManager
5555     * @systemapi Hide this for inner system use.
5556     * @since 12
5557     */
5558    MARK_TYPE_PROMOTE_SALES = 4,
5559
5560    /**
5561     * Indicates the mark is house agent.
5562     *
5563     * @syscap SystemCapability.Telephony.CallManager
5564     * @systemapi Hide this for inner system use.
5565     * @since 12
5566     */
5567    MARK_TYPE_HOUSE_AGENT = 5,
5568
5569    /**
5570     * Indicates the mark is insurance.
5571     *
5572     * @syscap SystemCapability.Telephony.CallManager
5573     * @systemapi Hide this for inner system use.
5574     * @since 12
5575     */
5576    MARK_TYPE_INSURANCE = 6,
5577
5578    /**
5579     * Indicates the mark is taxi.
5580     *
5581     * @syscap SystemCapability.Telephony.CallManager
5582     * @systemapi Hide this for inner system use.
5583     * @since 12
5584     */
5585    MARK_TYPE_TAXI = 7,
5586
5587    /**
5588     * Indicates the mark is custom.
5589     *
5590     * @syscap SystemCapability.Telephony.CallManager
5591     * @systemapi Hide this for inner system use.
5592     * @since 12
5593     */
5594    MARK_TYPE_CUSTOM = 8,
5595
5596    /**
5597     * Indicates the mark is others.
5598     *
5599     * @syscap SystemCapability.Telephony.CallManager
5600     * @systemapi Hide this for inner system use.
5601     * @since 12
5602     */
5603    MARK_TYPE_OTHERS = 9,
5604
5605    /**
5606     * Indicates the mark is yellow page.
5607     *
5608     * @syscap SystemCapability.Telephony.CallManager
5609     * @systemapi Hide this for inner system use.
5610     * @since 12
5611     */
5612    MARK_TYPE_YELLOW_PAGE = 10
5613  }
5614}
5615
5616export default call;
5617