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