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