1e1c44949Sopenharmony_ci/* 2e1c44949Sopenharmony_ci * Copyright (C) 2023 Huawei Device Co., Ltd. 3e1c44949Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e1c44949Sopenharmony_ci * you may not use this file except in compliance with the License. 5e1c44949Sopenharmony_ci * You may obtain a copy of the License at 6e1c44949Sopenharmony_ci * 7e1c44949Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e1c44949Sopenharmony_ci * 9e1c44949Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e1c44949Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e1c44949Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e1c44949Sopenharmony_ci * See the License for the specific language governing permissions and 13e1c44949Sopenharmony_ci * limitations under the License. 14e1c44949Sopenharmony_ci */ 15e1c44949Sopenharmony_ci 16e1c44949Sopenharmony_ci#ifndef CALL_MANAGER_INFO_H 17e1c44949Sopenharmony_ci#define CALL_MANAGER_INFO_H 18e1c44949Sopenharmony_ci 19e1c44949Sopenharmony_ci#include "call_manager_base.h" 20e1c44949Sopenharmony_ci 21e1c44949Sopenharmony_cinamespace OHOS { 22e1c44949Sopenharmony_cinamespace Telephony { 23e1c44949Sopenharmony_ci/** 24e1c44949Sopenharmony_ci * @brief Indicates the cellular call detail information. 25e1c44949Sopenharmony_ci */ 26e1c44949Sopenharmony_cistruct CellularCallInfo { 27e1c44949Sopenharmony_ci /** 28e1c44949Sopenharmony_ci * Indicates the call index 29e1c44949Sopenharmony_ci */ 30e1c44949Sopenharmony_ci int32_t callId = 0; 31e1c44949Sopenharmony_ci /** 32e1c44949Sopenharmony_ci * Indicates the call phone number. 33e1c44949Sopenharmony_ci */ 34e1c44949Sopenharmony_ci char phoneNum[kMaxNumberLen] = { 0 }; 35e1c44949Sopenharmony_ci /** 36e1c44949Sopenharmony_ci * Indicates the slot id. 37e1c44949Sopenharmony_ci */ 38e1c44949Sopenharmony_ci int32_t slotId = 0; 39e1c44949Sopenharmony_ci int32_t accountId = 0; 40e1c44949Sopenharmony_ci /** 41e1c44949Sopenharmony_ci * Indicates the type of call, includs CS, IMS, OTT, OTHER. {@link CallType} 42e1c44949Sopenharmony_ci */ 43e1c44949Sopenharmony_ci CallType callType = CallType::TYPE_ERR_CALL; 44e1c44949Sopenharmony_ci /** 45e1c44949Sopenharmony_ci * Indicates whether the call is video. 0: audio 1: send only 2: revive ony 3:video 46e1c44949Sopenharmony_ci */ 47e1c44949Sopenharmony_ci int32_t videoState = 0; 48e1c44949Sopenharmony_ci int32_t index = 0; 49e1c44949Sopenharmony_ci}; 50e1c44949Sopenharmony_ci 51e1c44949Sopenharmony_ci/** 52e1c44949Sopenharmony_ci * @brief Indicates the cellular call event information. 53e1c44949Sopenharmony_ci */ 54e1c44949Sopenharmony_cistruct CellularCallEventInfo { 55e1c44949Sopenharmony_ci /** 56e1c44949Sopenharmony_ci * Indicates the call event type. {@link CellularCallEventType} 57e1c44949Sopenharmony_ci */ 58e1c44949Sopenharmony_ci CellularCallEventType eventType = CellularCallEventType::EVENT_REQUEST_RESULT_TYPE; 59e1c44949Sopenharmony_ci /** 60e1c44949Sopenharmony_ci * Indicates the call event id, one id corresponds to one request. 61e1c44949Sopenharmony_ci * {@link RequestResultEventId} 62e1c44949Sopenharmony_ci */ 63e1c44949Sopenharmony_ci RequestResultEventId eventId = RequestResultEventId::INVALID_REQUEST_RESULT_EVENT_ID; 64e1c44949Sopenharmony_ci}; 65e1c44949Sopenharmony_ci 66e1c44949Sopenharmony_ci/** 67e1c44949Sopenharmony_ci * @brief Indicates the ringback tone playing mode. 68e1c44949Sopenharmony_ci */ 69e1c44949Sopenharmony_cienum class RBTPlayInfo { 70e1c44949Sopenharmony_ci /** 71e1c44949Sopenharmony_ci * Indicates the mode is network, the tone is from network. 72e1c44949Sopenharmony_ci */ 73e1c44949Sopenharmony_ci NETWORK_ALERTING, 74e1c44949Sopenharmony_ci /** 75e1c44949Sopenharmony_ci * Indicates the mode is local, the tone is from local file. 76e1c44949Sopenharmony_ci */ 77e1c44949Sopenharmony_ci LOCAL_ALERTING, 78e1c44949Sopenharmony_ci}; 79e1c44949Sopenharmony_ci 80e1c44949Sopenharmony_cistruct VoipCallReportInfo { 81e1c44949Sopenharmony_ci std::string voipCallId = ""; 82e1c44949Sopenharmony_ci std::string userName = ""; 83e1c44949Sopenharmony_ci std::vector<uint8_t> userProfile = {}; 84e1c44949Sopenharmony_ci std::string abilityName = ""; 85e1c44949Sopenharmony_ci std::string extensionId = ""; 86e1c44949Sopenharmony_ci std::string voipBundleName = ""; 87e1c44949Sopenharmony_ci bool showBannerForIncomingCall = true; 88e1c44949Sopenharmony_ci bool isConferenceCall = false; 89e1c44949Sopenharmony_ci bool isVoiceAnswerSupported = true; 90e1c44949Sopenharmony_ci bool hasMicPermission = true; 91e1c44949Sopenharmony_ci int32_t uid = 0; 92e1c44949Sopenharmony_ci}; 93e1c44949Sopenharmony_ci 94e1c44949Sopenharmony_ci/** 95e1c44949Sopenharmony_ci * @brief Indicates detail information of the number mark. 96e1c44949Sopenharmony_ci */ 97e1c44949Sopenharmony_cistruct NumberMarkInfo { 98e1c44949Sopenharmony_ci /** 99e1c44949Sopenharmony_ci * Indicates the type of number mark. 100e1c44949Sopenharmony_ci */ 101e1c44949Sopenharmony_ci MarkType markType = MarkType::MARK_TYPE_NONE; 102e1c44949Sopenharmony_ci /** 103e1c44949Sopenharmony_ci * Indicates the content of number mark. 104e1c44949Sopenharmony_ci */ 105e1c44949Sopenharmony_ci char markContent[kMaxNumberLen + 1] = { 0 }; 106e1c44949Sopenharmony_ci /** 107e1c44949Sopenharmony_ci * Indicates the count of number mark. 108e1c44949Sopenharmony_ci */ 109e1c44949Sopenharmony_ci int32_t markCount = -1; 110e1c44949Sopenharmony_ci /** 111e1c44949Sopenharmony_ci * Indicates the source of number mark. 112e1c44949Sopenharmony_ci */ 113e1c44949Sopenharmony_ci char markSource[kMaxNumberLen + 1] = { 0 }; 114e1c44949Sopenharmony_ci /** 115e1c44949Sopenharmony_ci * Indicates if this is a number mark from cloud. 116e1c44949Sopenharmony_ci */ 117e1c44949Sopenharmony_ci bool isCloud = false; 118e1c44949Sopenharmony_ci /** 119e1c44949Sopenharmony_ci * Indicates the details of number mark. 120e1c44949Sopenharmony_ci */ 121e1c44949Sopenharmony_ci char markDetails[kMaxNumberLen + 1] = { 0 }; 122e1c44949Sopenharmony_ci}; 123e1c44949Sopenharmony_ci 124e1c44949Sopenharmony_ci/** 125e1c44949Sopenharmony_ci * @brief Indicates the call event detail information. 126e1c44949Sopenharmony_ci */ 127e1c44949Sopenharmony_cistruct CallEventInfo { 128e1c44949Sopenharmony_ci /** 129e1c44949Sopenharmony_ci * Indicates the event ID of call ability. {@link CallAbilityEventId} 130e1c44949Sopenharmony_ci */ 131e1c44949Sopenharmony_ci CallAbilityEventId eventId = CallAbilityEventId::EVENT_DIAL_NO_CARRIER; 132e1c44949Sopenharmony_ci /** 133e1c44949Sopenharmony_ci * Indicates the call phone number. 134e1c44949Sopenharmony_ci */ 135e1c44949Sopenharmony_ci char phoneNum[kMaxNumberLen + 1] = { 0 }; 136e1c44949Sopenharmony_ci /** 137e1c44949Sopenharmony_ci * Indicates the bundle name. 138e1c44949Sopenharmony_ci */ 139e1c44949Sopenharmony_ci char bundleName[kMaxBundleNameLen + 1] = { 0 }; 140e1c44949Sopenharmony_ci}; 141e1c44949Sopenharmony_ci 142e1c44949Sopenharmony_cistruct AccountInfo { 143e1c44949Sopenharmony_ci int32_t accountId = 0; 144e1c44949Sopenharmony_ci int32_t power = 0; 145e1c44949Sopenharmony_ci char bundleName[kMaxNumberLen + 1] = { 0 }; 146e1c44949Sopenharmony_ci bool isEnabled = false; 147e1c44949Sopenharmony_ci}; 148e1c44949Sopenharmony_ci 149e1c44949Sopenharmony_ci/** 150e1c44949Sopenharmony_ci * @brief Indicates the call report information. 151e1c44949Sopenharmony_ci */ 152e1c44949Sopenharmony_cistruct CallReportInfo { 153e1c44949Sopenharmony_ci int32_t index = 0; 154e1c44949Sopenharmony_ci /** 155e1c44949Sopenharmony_ci * Indicates the call phone number. 156e1c44949Sopenharmony_ci */ 157e1c44949Sopenharmony_ci char accountNum[kMaxNumberLen + 1] = { 0 }; 158e1c44949Sopenharmony_ci int32_t accountId = 0; 159e1c44949Sopenharmony_ci /** 160e1c44949Sopenharmony_ci * Indicates the type of call, includs CS, IMS, OTT, OTHER. {@link CallType} 161e1c44949Sopenharmony_ci */ 162e1c44949Sopenharmony_ci CallType callType = CallType::TYPE_ERR_CALL; 163e1c44949Sopenharmony_ci /** 164e1c44949Sopenharmony_ci * Indicates the type of video state. {@link VideoStateType} 165e1c44949Sopenharmony_ci */ 166e1c44949Sopenharmony_ci VideoStateType callMode = VideoStateType::TYPE_VOICE; 167e1c44949Sopenharmony_ci /** 168e1c44949Sopenharmony_ci * Indicates the detailed state of call. {@link TelCallState} 169e1c44949Sopenharmony_ci */ 170e1c44949Sopenharmony_ci TelCallState state = TelCallState::CALL_STATUS_UNKNOWN; 171e1c44949Sopenharmony_ci /** 172e1c44949Sopenharmony_ci * Indicates the voica domain, 0: CS, 1: IMS 173e1c44949Sopenharmony_ci */ 174e1c44949Sopenharmony_ci int32_t voiceDomain = 0; 175e1c44949Sopenharmony_ci /** 176e1c44949Sopenharmony_ci * Indicates the Multi-party call status: 177e1c44949Sopenharmony_ci * 0: not a multi-party(conference) call 178e1c44949Sopenharmony_ci * 1: a multi-party(conference) call 179e1c44949Sopenharmony_ci */ 180e1c44949Sopenharmony_ci int32_t mpty = 0; 181e1c44949Sopenharmony_ci /** 182e1c44949Sopenharmony_ci * Indicates the color tone type. 183e1c44949Sopenharmony_ci */ 184e1c44949Sopenharmony_ci int32_t crsType = 0; 185e1c44949Sopenharmony_ci /** 186e1c44949Sopenharmony_ci * Indicates the initial type of this call. 187e1c44949Sopenharmony_ci */ 188e1c44949Sopenharmony_ci int32_t originalCallType = 0; 189e1c44949Sopenharmony_ci /** 190e1c44949Sopenharmony_ci * Indicates the VoIP call specific information 191e1c44949Sopenharmony_ci */ 192e1c44949Sopenharmony_ci VoipCallReportInfo voipCallInfo; 193e1c44949Sopenharmony_ci /** 194e1c44949Sopenharmony_ci * Call state between with holdRequest and holdResponse 195e1c44949Sopenharmony_ci */ 196e1c44949Sopenharmony_ci bool isPendingHold = false; 197e1c44949Sopenharmony_ci}; 198e1c44949Sopenharmony_ci 199e1c44949Sopenharmony_ci/** 200e1c44949Sopenharmony_ci * @brief Indicates the detail information of some calls record. 201e1c44949Sopenharmony_ci */ 202e1c44949Sopenharmony_cistruct CallsReportInfo { 203e1c44949Sopenharmony_ci /** 204e1c44949Sopenharmony_ci * Indicates a list of the call report information. 205e1c44949Sopenharmony_ci */ 206e1c44949Sopenharmony_ci std::vector<CallReportInfo> callVec {}; 207e1c44949Sopenharmony_ci /** 208e1c44949Sopenharmony_ci * Indicates the slot id. 209e1c44949Sopenharmony_ci */ 210e1c44949Sopenharmony_ci int32_t slotId = 0; 211e1c44949Sopenharmony_ci}; 212e1c44949Sopenharmony_ci 213e1c44949Sopenharmony_ci/** 214e1c44949Sopenharmony_ci * @brief Indicates the detail information of a call. 215e1c44949Sopenharmony_ci */ 216e1c44949Sopenharmony_cistruct CallAttributeInfo { 217e1c44949Sopenharmony_ci /** 218e1c44949Sopenharmony_ci * Indicates the call phone number. 219e1c44949Sopenharmony_ci */ 220e1c44949Sopenharmony_ci char accountNumber[kMaxNumberLen + 1] = { 0 }; 221e1c44949Sopenharmony_ci /** 222e1c44949Sopenharmony_ci * Indicates the bundle name. 223e1c44949Sopenharmony_ci */ 224e1c44949Sopenharmony_ci char bundleName[kMaxBundleNameLen + 1] = { 0 }; 225e1c44949Sopenharmony_ci /** 226e1c44949Sopenharmony_ci * Indicates whether the speaker phone is on. 227e1c44949Sopenharmony_ci */ 228e1c44949Sopenharmony_ci bool speakerphoneOn = false; 229e1c44949Sopenharmony_ci int32_t accountId = 0; 230e1c44949Sopenharmony_ci /** 231e1c44949Sopenharmony_ci * Indicates the type of video state. {@link VideoStateType} 232e1c44949Sopenharmony_ci */ 233e1c44949Sopenharmony_ci VideoStateType videoState = VideoStateType::TYPE_VOICE; 234e1c44949Sopenharmony_ci /** 235e1c44949Sopenharmony_ci * Indicates the Call start time. 236e1c44949Sopenharmony_ci */ 237e1c44949Sopenharmony_ci int64_t startTime = 0; 238e1c44949Sopenharmony_ci /** 239e1c44949Sopenharmony_ci * Indicates whether the call is emergency call. 240e1c44949Sopenharmony_ci */ 241e1c44949Sopenharmony_ci bool isEcc = false; 242e1c44949Sopenharmony_ci /** 243e1c44949Sopenharmony_ci * Indicates whether the call is emergency Contact call. 244e1c44949Sopenharmony_ci */ 245e1c44949Sopenharmony_ci bool isEccContact = false; 246e1c44949Sopenharmony_ci /** 247e1c44949Sopenharmony_ci * Indicates the type of call, includs CS, IMS, OTT, OTHER. {@link CallType} 248e1c44949Sopenharmony_ci */ 249e1c44949Sopenharmony_ci CallType callType = CallType::TYPE_ERR_CALL; 250e1c44949Sopenharmony_ci /** 251e1c44949Sopenharmony_ci * Indicates the call index. 252e1c44949Sopenharmony_ci */ 253e1c44949Sopenharmony_ci int32_t callId = 0; 254e1c44949Sopenharmony_ci /** 255e1c44949Sopenharmony_ci * Indicates the detailed state of call. {@link TelCallState} 256e1c44949Sopenharmony_ci */ 257e1c44949Sopenharmony_ci TelCallState callState = TelCallState::CALL_STATUS_UNKNOWN; 258e1c44949Sopenharmony_ci /** 259e1c44949Sopenharmony_ci * Indicates the state of conference call. {@link TelConferenceState} 260e1c44949Sopenharmony_ci */ 261e1c44949Sopenharmony_ci TelConferenceState conferenceState = TelConferenceState::TEL_CONFERENCE_IDLE; 262e1c44949Sopenharmony_ci /** 263e1c44949Sopenharmony_ci * Indicates the call beginning and ending time. 264e1c44949Sopenharmony_ci */ 265e1c44949Sopenharmony_ci time_t callBeginTime = 0; 266e1c44949Sopenharmony_ci time_t callCreateTime = 0; 267e1c44949Sopenharmony_ci time_t callEndTime = 0; 268e1c44949Sopenharmony_ci time_t ringBeginTime = 0; 269e1c44949Sopenharmony_ci time_t ringEndTime = 0; 270e1c44949Sopenharmony_ci /** 271e1c44949Sopenharmony_ci * Indicates the call is MO or MT. {@link CallDirection} 272e1c44949Sopenharmony_ci */ 273e1c44949Sopenharmony_ci CallDirection callDirection = CallDirection::CALL_DIRECTION_UNKNOW; 274e1c44949Sopenharmony_ci /** 275e1c44949Sopenharmony_ci * Indicates the cause when the call is answered. {@link CallAnswerType} 276e1c44949Sopenharmony_ci */ 277e1c44949Sopenharmony_ci CallAnswerType answerType = CallAnswerType::CALL_ANSWER_MISSED; 278e1c44949Sopenharmony_ci /* 279e1c44949Sopenharmony_ci * Indicates the call index in cellular call 280e1c44949Sopenharmony_ci */ 281e1c44949Sopenharmony_ci int32_t index = 0; 282e1c44949Sopenharmony_ci /** 283e1c44949Sopenharmony_ci * Indicates the color tone type. 284e1c44949Sopenharmony_ci */ 285e1c44949Sopenharmony_ci int32_t crsType = 0; 286e1c44949Sopenharmony_ci /** 287e1c44949Sopenharmony_ci * Indicates the initial type of this call. 288e1c44949Sopenharmony_ci */ 289e1c44949Sopenharmony_ci int32_t originalCallType = 0; 290e1c44949Sopenharmony_ci /** 291e1c44949Sopenharmony_ci * Indicates the VoIP call specific information 292e1c44949Sopenharmony_ci */ 293e1c44949Sopenharmony_ci VoipCallReportInfo voipCallInfo; 294e1c44949Sopenharmony_ci /** 295e1c44949Sopenharmony_ci * Indicates the location of phone number. 296e1c44949Sopenharmony_ci */ 297e1c44949Sopenharmony_ci char numberLocation[kMaxNumberLen + 1] = { 0 }; 298e1c44949Sopenharmony_ci /** 299e1c44949Sopenharmony_ci * Indicates the mark information of the phone number. 300e1c44949Sopenharmony_ci */ 301e1c44949Sopenharmony_ci NumberMarkInfo numberMarkInfo; 302e1c44949Sopenharmony_ci /** 303e1c44949Sopenharmony_ci * Indicates the reason of call blocked. 304e1c44949Sopenharmony_ci */ 305e1c44949Sopenharmony_ci int32_t blockReason = 0; 306e1c44949Sopenharmony_ci /** 307e1c44949Sopenharmony_ci * Indicates the type of celia call. 308e1c44949Sopenharmony_ci */ 309e1c44949Sopenharmony_ci int32_t celiaCallType = -1; 310e1c44949Sopenharmony_ci /** 311e1c44949Sopenharmony_ci * Indicates the contact name. 312e1c44949Sopenharmony_ci */ 313e1c44949Sopenharmony_ci char contactName[kMaxNumberLen + 1] = { 0 }; 314e1c44949Sopenharmony_ci /** 315e1c44949Sopenharmony_ci * Indicates the extraParamsString information. 316e1c44949Sopenharmony_ci */ 317e1c44949Sopenharmony_ci std::string extraParamsString; 318e1c44949Sopenharmony_ci}; 319e1c44949Sopenharmony_ci 320e1c44949Sopenharmony_ci/** 321e1c44949Sopenharmony_ci * @brief Indicates the detail information of call record. 322e1c44949Sopenharmony_ci */ 323e1c44949Sopenharmony_cistruct CallRecordInfo { 324e1c44949Sopenharmony_ci /** 325e1c44949Sopenharmony_ci * Indicates the call index. 326e1c44949Sopenharmony_ci */ 327e1c44949Sopenharmony_ci int32_t callId = 0; 328e1c44949Sopenharmony_ci /** 329e1c44949Sopenharmony_ci * Indicates the call phone number. 330e1c44949Sopenharmony_ci */ 331e1c44949Sopenharmony_ci char phoneNumber[kMaxNumberLen + 1] = { 0 }; 332e1c44949Sopenharmony_ci /** 333e1c44949Sopenharmony_ci * Indicates the number after formatted. 334e1c44949Sopenharmony_ci */ 335e1c44949Sopenharmony_ci char formattedNumber[kMaxNumberLen + 1] = { 0 }; 336e1c44949Sopenharmony_ci /** 337e1c44949Sopenharmony_ci * Indicates the phone number after formatted. 338e1c44949Sopenharmony_ci */ 339e1c44949Sopenharmony_ci char formattedNumberToE164[kMaxNumberLen + 1] = { 0 }; 340e1c44949Sopenharmony_ci /** 341e1c44949Sopenharmony_ci * Indicates the location of phone number. 342e1c44949Sopenharmony_ci */ 343e1c44949Sopenharmony_ci char numberLocation[kMaxNumberLen + 1] = { 0 }; 344e1c44949Sopenharmony_ci /** 345e1c44949Sopenharmony_ci * Indicates the type of call, includs CS, IMS, OTT, OTHER. {@link CallType} 346e1c44949Sopenharmony_ci */ 347e1c44949Sopenharmony_ci CallType callType = CallType::TYPE_ERR_CALL; 348e1c44949Sopenharmony_ci /** 349e1c44949Sopenharmony_ci * Indicates the type of video state. {@link VideoStateType} 350e1c44949Sopenharmony_ci */ 351e1c44949Sopenharmony_ci VideoStateType videoState = VideoStateType::TYPE_VOICE; 352e1c44949Sopenharmony_ci /** 353e1c44949Sopenharmony_ci * Indicates the call beginning time. 354e1c44949Sopenharmony_ci */ 355e1c44949Sopenharmony_ci time_t callBeginTime = 0; 356e1c44949Sopenharmony_ci /** 357e1c44949Sopenharmony_ci * Indicates the call create time. 358e1c44949Sopenharmony_ci */ 359e1c44949Sopenharmony_ci time_t callCreateTime = 0; 360e1c44949Sopenharmony_ci /** 361e1c44949Sopenharmony_ci * Indicates the call ending time. 362e1c44949Sopenharmony_ci */ 363e1c44949Sopenharmony_ci time_t callEndTime = 0; 364e1c44949Sopenharmony_ci /** 365e1c44949Sopenharmony_ci * Indicates the call ring duration. 366e1c44949Sopenharmony_ci */ 367e1c44949Sopenharmony_ci uint32_t ringDuration = 0; 368e1c44949Sopenharmony_ci /** 369e1c44949Sopenharmony_ci * Indicates the call session duration. 370e1c44949Sopenharmony_ci */ 371e1c44949Sopenharmony_ci uint32_t callDuration = 0; 372e1c44949Sopenharmony_ci /** 373e1c44949Sopenharmony_ci * Indicates the call is MO or MT. {@link CallDirection} 374e1c44949Sopenharmony_ci */ 375e1c44949Sopenharmony_ci CallDirection directionType = CallDirection::CALL_DIRECTION_UNKNOW; 376e1c44949Sopenharmony_ci /** 377e1c44949Sopenharmony_ci * Indicates the cause when the call is answered. {@link CallAnswerType} 378e1c44949Sopenharmony_ci */ 379e1c44949Sopenharmony_ci CallAnswerType answerType = CallAnswerType::CALL_ANSWER_MISSED; 380e1c44949Sopenharmony_ci /** 381e1c44949Sopenharmony_ci * Indicates the country code of the call. 382e1c44949Sopenharmony_ci */ 383e1c44949Sopenharmony_ci int32_t countryCode = 0; 384e1c44949Sopenharmony_ci /** 385e1c44949Sopenharmony_ci * Indicates the slot id. 386e1c44949Sopenharmony_ci */ 387e1c44949Sopenharmony_ci int32_t slotId = 0; 388e1c44949Sopenharmony_ci /** 389e1c44949Sopenharmony_ci * Indicates the call features. 390e1c44949Sopenharmony_ci */ 391e1c44949Sopenharmony_ci int32_t features = 0; 392e1c44949Sopenharmony_ci /** 393e1c44949Sopenharmony_ci * Indicates the mark information of the phone number. 394e1c44949Sopenharmony_ci */ 395e1c44949Sopenharmony_ci NumberMarkInfo numberMarkInfo; 396e1c44949Sopenharmony_ci /** 397e1c44949Sopenharmony_ci * Indicates the reason of call blocked. 398e1c44949Sopenharmony_ci */ 399e1c44949Sopenharmony_ci int32_t blockReason = 0; 400e1c44949Sopenharmony_ci 401e1c44949Sopenharmony_ci /** 402e1c44949Sopenharmony_ci * Indicates the type of celia call. 403e1c44949Sopenharmony_ci */ 404e1c44949Sopenharmony_ci int32_t celiaCallType = -1; 405e1c44949Sopenharmony_ci 406e1c44949Sopenharmony_ci CallRecordInfo() {} 407e1c44949Sopenharmony_ci 408e1c44949Sopenharmony_ci CallRecordInfo(const CallRecordInfo &temp) 409e1c44949Sopenharmony_ci { 410e1c44949Sopenharmony_ci *this = temp; 411e1c44949Sopenharmony_ci } 412e1c44949Sopenharmony_ci 413e1c44949Sopenharmony_ci CallRecordInfo &operator=(const CallRecordInfo &temp) 414e1c44949Sopenharmony_ci { 415e1c44949Sopenharmony_ci callId = temp.callId; 416e1c44949Sopenharmony_ci std::copy(std::begin(temp.phoneNumber), std::end(temp.phoneNumber), std::begin(phoneNumber)); 417e1c44949Sopenharmony_ci std::copy(std::begin(temp.formattedNumberToE164), std::end(temp.formattedNumberToE164), 418e1c44949Sopenharmony_ci std::begin(formattedNumberToE164)); 419e1c44949Sopenharmony_ci std::copy(std::begin(temp.formattedNumber), std::end(temp.formattedNumber), 420e1c44949Sopenharmony_ci std::begin(formattedNumber)); 421e1c44949Sopenharmony_ci std::copy(std::begin(temp.numberLocation), std::end(temp.numberLocation), 422e1c44949Sopenharmony_ci std::begin(numberLocation)); 423e1c44949Sopenharmony_ci callType = temp.callType; 424e1c44949Sopenharmony_ci callBeginTime = temp.callBeginTime; 425e1c44949Sopenharmony_ci callCreateTime = temp.callCreateTime; 426e1c44949Sopenharmony_ci callEndTime = temp.callEndTime; 427e1c44949Sopenharmony_ci ringDuration = temp.ringDuration; 428e1c44949Sopenharmony_ci callDuration = temp.callDuration; 429e1c44949Sopenharmony_ci directionType = temp.directionType; 430e1c44949Sopenharmony_ci answerType = temp.answerType; 431e1c44949Sopenharmony_ci countryCode = temp.countryCode; 432e1c44949Sopenharmony_ci slotId = temp.slotId; 433e1c44949Sopenharmony_ci videoState = temp.videoState; 434e1c44949Sopenharmony_ci features = temp.features; 435e1c44949Sopenharmony_ci numberMarkInfo.markType = temp.numberMarkInfo.markType; 436e1c44949Sopenharmony_ci std::copy(std::begin(temp.numberMarkInfo.markContent), std::end(temp.numberMarkInfo.markContent), 437e1c44949Sopenharmony_ci std::begin(numberMarkInfo.markContent)); 438e1c44949Sopenharmony_ci numberMarkInfo.markCount = temp.numberMarkInfo.markCount; 439e1c44949Sopenharmony_ci std::copy(std::begin(temp.numberMarkInfo.markSource), std::end(temp.numberMarkInfo.markSource), 440e1c44949Sopenharmony_ci std::begin(numberMarkInfo.markSource)); 441e1c44949Sopenharmony_ci numberMarkInfo.isCloud = temp.numberMarkInfo.isCloud; 442e1c44949Sopenharmony_ci std::copy(std::begin(temp.numberMarkInfo.markDetails), std::end(temp.numberMarkInfo.markDetails), 443e1c44949Sopenharmony_ci std::begin(numberMarkInfo.markDetails)); 444e1c44949Sopenharmony_ci blockReason = temp.blockReason; 445e1c44949Sopenharmony_ci celiaCallType = temp.celiaCallType; 446e1c44949Sopenharmony_ci return *this; 447e1c44949Sopenharmony_ci } 448e1c44949Sopenharmony_ci}; 449e1c44949Sopenharmony_ci 450e1c44949Sopenharmony_ci/** 451e1c44949Sopenharmony_ci * @brief Indicates detail information of a call. 452e1c44949Sopenharmony_ci */ 453e1c44949Sopenharmony_cistruct CallDetailInfo { 454e1c44949Sopenharmony_ci /** 455e1c44949Sopenharmony_ci * Indicates the call index. 456e1c44949Sopenharmony_ci */ 457e1c44949Sopenharmony_ci int32_t index = 0; 458e1c44949Sopenharmony_ci /** 459e1c44949Sopenharmony_ci * Indicates the call phone number. 460e1c44949Sopenharmony_ci */ 461e1c44949Sopenharmony_ci char phoneNum[kMaxNumberLen + 1] = { 0 }; 462e1c44949Sopenharmony_ci /** 463e1c44949Sopenharmony_ci * Indicates the bundle name. 464e1c44949Sopenharmony_ci */ 465e1c44949Sopenharmony_ci char bundleName[kMaxBundleNameLen + 1] = { 0 }; 466e1c44949Sopenharmony_ci /** 467e1c44949Sopenharmony_ci * Indicates the account id. 468e1c44949Sopenharmony_ci */ 469e1c44949Sopenharmony_ci int32_t accountId = 0; 470e1c44949Sopenharmony_ci /** 471e1c44949Sopenharmony_ci * Indicates the call type, CS, IMS, ERROR 472e1c44949Sopenharmony_ci */ 473e1c44949Sopenharmony_ci CallType callType = CallType::TYPE_ERR_CALL; 474e1c44949Sopenharmony_ci /** 475e1c44949Sopenharmony_ci * Indicates the call video state, 0: audio 1:video. 476e1c44949Sopenharmony_ci */ 477e1c44949Sopenharmony_ci VideoStateType callMode = VideoStateType::TYPE_VOICE; 478e1c44949Sopenharmony_ci /** 479e1c44949Sopenharmony_ci * Indicates the call status. 480e1c44949Sopenharmony_ci */ 481e1c44949Sopenharmony_ci TelCallState state = TelCallState::CALL_STATUS_UNKNOWN; 482e1c44949Sopenharmony_ci /** 483e1c44949Sopenharmony_ci * Indicates the voice domain. 0: CS, 1: IMS 484e1c44949Sopenharmony_ci */ 485e1c44949Sopenharmony_ci int32_t voiceDomain = 0; 486e1c44949Sopenharmony_ci /** 487e1c44949Sopenharmony_ci * Indicates the Multi-party call status: 488e1c44949Sopenharmony_ci * 0: not a multi-party(conference) call 489e1c44949Sopenharmony_ci * 1: a multi-party(conference) call 490e1c44949Sopenharmony_ci */ 491e1c44949Sopenharmony_ci int32_t mpty = 0; 492e1c44949Sopenharmony_ci /** 493e1c44949Sopenharmony_ci * Indicates the color tone type. 494e1c44949Sopenharmony_ci */ 495e1c44949Sopenharmony_ci int32_t crsType = 0; 496e1c44949Sopenharmony_ci /** 497e1c44949Sopenharmony_ci * Indicates the initial type of this call. 498e1c44949Sopenharmony_ci */ 499e1c44949Sopenharmony_ci int32_t originalCallType = 0; 500e1c44949Sopenharmony_ci /** 501e1c44949Sopenharmony_ci * Indicates the VoIP call specific information 502e1c44949Sopenharmony_ci */ 503e1c44949Sopenharmony_ci VoipCallReportInfo voipCallInfo; 504e1c44949Sopenharmony_ci 505e1c44949Sopenharmony_ci CallDetailInfo() {} 506e1c44949Sopenharmony_ci 507e1c44949Sopenharmony_ci CallDetailInfo(const CallDetailInfo &temp) 508e1c44949Sopenharmony_ci { 509e1c44949Sopenharmony_ci *this = temp; 510e1c44949Sopenharmony_ci } 511e1c44949Sopenharmony_ci 512e1c44949Sopenharmony_ci CallDetailInfo &operator=(const CallDetailInfo &temp) 513e1c44949Sopenharmony_ci { 514e1c44949Sopenharmony_ci index = temp.index; 515e1c44949Sopenharmony_ci std::copy(std::begin(temp.phoneNum), std::end(temp.phoneNum), std::begin(phoneNum)); 516e1c44949Sopenharmony_ci std::copy(std::begin(temp.bundleName), std::end(temp.bundleName), std::begin(bundleName)); 517e1c44949Sopenharmony_ci accountId = temp.accountId; 518e1c44949Sopenharmony_ci callType = temp.callType; 519e1c44949Sopenharmony_ci callMode = temp.callMode; 520e1c44949Sopenharmony_ci state = temp.state; 521e1c44949Sopenharmony_ci voiceDomain = temp.voiceDomain; 522e1c44949Sopenharmony_ci mpty = temp.mpty; 523e1c44949Sopenharmony_ci crsType = temp.crsType; 524e1c44949Sopenharmony_ci originalCallType = temp.originalCallType; 525e1c44949Sopenharmony_ci voipCallInfo.voipCallId = temp.voipCallInfo.voipCallId; 526e1c44949Sopenharmony_ci voipCallInfo.extensionId = temp.voipCallInfo.extensionId; 527e1c44949Sopenharmony_ci voipCallInfo.userName = temp.voipCallInfo.userName; 528e1c44949Sopenharmony_ci (voipCallInfo.userProfile).assign( 529e1c44949Sopenharmony_ci (temp.voipCallInfo.userProfile).begin(), (temp.voipCallInfo.userProfile).end()); 530e1c44949Sopenharmony_ci voipCallInfo.abilityName = temp.voipCallInfo.abilityName; 531e1c44949Sopenharmony_ci voipCallInfo.voipBundleName = temp.voipCallInfo.voipBundleName; 532e1c44949Sopenharmony_ci voipCallInfo.showBannerForIncomingCall = temp.voipCallInfo.showBannerForIncomingCall; 533e1c44949Sopenharmony_ci voipCallInfo.isConferenceCall = temp.voipCallInfo.isConferenceCall; 534e1c44949Sopenharmony_ci voipCallInfo.isVoiceAnswerSupported = temp.voipCallInfo.isVoiceAnswerSupported; 535e1c44949Sopenharmony_ci voipCallInfo.hasMicPermission = temp.voipCallInfo.hasMicPermission; 536e1c44949Sopenharmony_ci voipCallInfo.uid = temp.voipCallInfo.uid; 537e1c44949Sopenharmony_ci return *this; 538e1c44949Sopenharmony_ci } 539e1c44949Sopenharmony_ci}; 540e1c44949Sopenharmony_ci 541e1c44949Sopenharmony_ci/** 542e1c44949Sopenharmony_ci * @brief Indicates detail information of some calls. 543e1c44949Sopenharmony_ci */ 544e1c44949Sopenharmony_cistruct CallDetailsInfo { 545e1c44949Sopenharmony_ci /** 546e1c44949Sopenharmony_ci * Indicates a CallDetailInfo list. {@link CallDetailInfo} 547e1c44949Sopenharmony_ci */ 548e1c44949Sopenharmony_ci std::vector<CallDetailInfo> callVec {}; 549e1c44949Sopenharmony_ci /** 550e1c44949Sopenharmony_ci * Indicates the slot id. 551e1c44949Sopenharmony_ci */ 552e1c44949Sopenharmony_ci int32_t slotId = 0; 553e1c44949Sopenharmony_ci /** 554e1c44949Sopenharmony_ci * Indicates the bundle name. 555e1c44949Sopenharmony_ci */ 556e1c44949Sopenharmony_ci char bundleName[kMaxBundleNameLen + 1] = { 0 }; 557e1c44949Sopenharmony_ci}; 558e1c44949Sopenharmony_ci 559e1c44949Sopenharmony_ci/** 560e1c44949Sopenharmony_ci * @brief Indicates the type of call transfer setting. 561e1c44949Sopenharmony_ci * 562e1c44949Sopenharmony_ci * 27007-430_2001 7.11 Call forwarding number and conditions +CCFC 563e1c44949Sopenharmony_ci * 3GPP TS 22.082 [4] 564e1c44949Sopenharmony_ci * <mode>: 565e1c44949Sopenharmony_ci * 0 disable 566e1c44949Sopenharmony_ci * 1 enable 567e1c44949Sopenharmony_ci * 3 registration 568e1c44949Sopenharmony_ci * 4 erasure 569e1c44949Sopenharmony_ci */ 570e1c44949Sopenharmony_cienum class CallTransferSettingType { 571e1c44949Sopenharmony_ci /** 572e1c44949Sopenharmony_ci * Indicates disable the call transfer. 573e1c44949Sopenharmony_ci */ 574e1c44949Sopenharmony_ci CALL_TRANSFER_DISABLE = 0, 575e1c44949Sopenharmony_ci /** 576e1c44949Sopenharmony_ci * Indicates enable the call transfer. 577e1c44949Sopenharmony_ci */ 578e1c44949Sopenharmony_ci CALL_TRANSFER_ENABLE = 1, 579e1c44949Sopenharmony_ci /** 580e1c44949Sopenharmony_ci * Indicates register the call transfer. 581e1c44949Sopenharmony_ci */ 582e1c44949Sopenharmony_ci CALL_TRANSFER_REGISTRATION = 3, 583e1c44949Sopenharmony_ci /** 584e1c44949Sopenharmony_ci * Indicates erasure the call transfer. 585e1c44949Sopenharmony_ci */ 586e1c44949Sopenharmony_ci CALL_TRANSFER_ERASURE = 4, 587e1c44949Sopenharmony_ci}; 588e1c44949Sopenharmony_ci 589e1c44949Sopenharmony_ci/** 590e1c44949Sopenharmony_ci * @brief Indicates the Call forwarding type 591e1c44949Sopenharmony_ci * 592e1c44949Sopenharmony_ci * 27007-430_2001 7.11 Call forwarding number and conditions +CCFC 593e1c44949Sopenharmony_ci * 3GPP TS 22.082 [4] 594e1c44949Sopenharmony_ci * <reason>: 595e1c44949Sopenharmony_ci * 0 unconditional 596e1c44949Sopenharmony_ci * 1 mobile busy 597e1c44949Sopenharmony_ci * 2 no reply 598e1c44949Sopenharmony_ci * 3 not reachable 599e1c44949Sopenharmony_ci */ 600e1c44949Sopenharmony_cienum class CallTransferType { 601e1c44949Sopenharmony_ci /** 602e1c44949Sopenharmony_ci * Indicates transfer the call unconditionally. 603e1c44949Sopenharmony_ci */ 604e1c44949Sopenharmony_ci TRANSFER_TYPE_UNCONDITIONAL = 0, 605e1c44949Sopenharmony_ci /** 606e1c44949Sopenharmony_ci * Indicates transfer the call when busy. 607e1c44949Sopenharmony_ci */ 608e1c44949Sopenharmony_ci TRANSFER_TYPE_BUSY = 1, 609e1c44949Sopenharmony_ci /** 610e1c44949Sopenharmony_ci * Indicates transfer the call when no reply. 611e1c44949Sopenharmony_ci */ 612e1c44949Sopenharmony_ci TRANSFER_TYPE_NO_REPLY = 2, 613e1c44949Sopenharmony_ci /** 614e1c44949Sopenharmony_ci * Indicates transfer the call when unreachable. 615e1c44949Sopenharmony_ci */ 616e1c44949Sopenharmony_ci TRANSFER_TYPE_NOT_REACHABLE = 3, 617e1c44949Sopenharmony_ci}; 618e1c44949Sopenharmony_ci 619e1c44949Sopenharmony_ci/** 620e1c44949Sopenharmony_ci * @brief Indicates the information of call transfer. 621e1c44949Sopenharmony_ci */ 622e1c44949Sopenharmony_cistruct CallTransferInfo { 623e1c44949Sopenharmony_ci /** 624e1c44949Sopenharmony_ci * Indication the phone number which will forward to. 625e1c44949Sopenharmony_ci */ 626e1c44949Sopenharmony_ci char transferNum[kMaxNumberLen + 1] = { 0 }; 627e1c44949Sopenharmony_ci /** 628e1c44949Sopenharmony_ci * Indicates the type of call transfer setting. {@link CallTransferSettingType} 629e1c44949Sopenharmony_ci */ 630e1c44949Sopenharmony_ci CallTransferSettingType settingType = CallTransferSettingType::CALL_TRANSFER_DISABLE; 631e1c44949Sopenharmony_ci /** 632e1c44949Sopenharmony_ci * Indicates the Call forwarding type. {@link CallTransferType} 633e1c44949Sopenharmony_ci */ 634e1c44949Sopenharmony_ci CallTransferType type = CallTransferType::TRANSFER_TYPE_UNCONDITIONAL; 635e1c44949Sopenharmony_ci /** 636e1c44949Sopenharmony_ci * Start time hours. 637e1c44949Sopenharmony_ci */ 638e1c44949Sopenharmony_ci int32_t startHour = 0; 639e1c44949Sopenharmony_ci /** 640e1c44949Sopenharmony_ci * Start time minutes. 641e1c44949Sopenharmony_ci */ 642e1c44949Sopenharmony_ci int32_t startMinute = 0; 643e1c44949Sopenharmony_ci /** 644e1c44949Sopenharmony_ci * End time hours. 645e1c44949Sopenharmony_ci */ 646e1c44949Sopenharmony_ci int32_t endHour = 0; 647e1c44949Sopenharmony_ci /** 648e1c44949Sopenharmony_ci * End time minutes. 649e1c44949Sopenharmony_ci */ 650e1c44949Sopenharmony_ci int32_t endMinute = 0; 651e1c44949Sopenharmony_ci}; 652e1c44949Sopenharmony_ci 653e1c44949Sopenharmony_ci/** 654e1c44949Sopenharmony_ci * @brief Indicates the type of call restriction. 655e1c44949Sopenharmony_ci * 656e1c44949Sopenharmony_ci * 3GPP TS 22.030 V4.0.0 (2001-03) 657e1c44949Sopenharmony_ci * 3GPP TS 22.088 V4.0.0 (2001-03) 658e1c44949Sopenharmony_ci */ 659e1c44949Sopenharmony_cienum class CallRestrictionType { 660e1c44949Sopenharmony_ci /** 661e1c44949Sopenharmony_ci * Indicates restrict all incoming calls. 662e1c44949Sopenharmony_ci */ 663e1c44949Sopenharmony_ci RESTRICTION_TYPE_ALL_INCOMING = 0, 664e1c44949Sopenharmony_ci /** 665e1c44949Sopenharmony_ci * Indicates restrict all outgoing calls. 666e1c44949Sopenharmony_ci */ 667e1c44949Sopenharmony_ci RESTRICTION_TYPE_ALL_OUTGOING, 668e1c44949Sopenharmony_ci /** 669e1c44949Sopenharmony_ci * Indicates restrict international calls. 670e1c44949Sopenharmony_ci */ 671e1c44949Sopenharmony_ci RESTRICTION_TYPE_INTERNATIONAL, 672e1c44949Sopenharmony_ci /** 673e1c44949Sopenharmony_ci * Indicates restrict international roaming calls. 674e1c44949Sopenharmony_ci */ 675e1c44949Sopenharmony_ci RESTRICTION_TYPE_INTERNATIONAL_EXCLUDING_HOME, 676e1c44949Sopenharmony_ci /** 677e1c44949Sopenharmony_ci * Indicates restrict roaming calls. 678e1c44949Sopenharmony_ci */ 679e1c44949Sopenharmony_ci RESTRICTION_TYPE_ROAMING_INCOMING, 680e1c44949Sopenharmony_ci /** 681e1c44949Sopenharmony_ci * Indicates restrict all calls. 682e1c44949Sopenharmony_ci */ 683e1c44949Sopenharmony_ci RESTRICTION_TYPE_ALL_CALLS, 684e1c44949Sopenharmony_ci /** 685e1c44949Sopenharmony_ci * Indicates restrict all outgoing services. 686e1c44949Sopenharmony_ci */ 687e1c44949Sopenharmony_ci RESTRICTION_TYPE_OUTGOING_SERVICES, 688e1c44949Sopenharmony_ci /** 689e1c44949Sopenharmony_ci * Indicates restrict all incoming services. 690e1c44949Sopenharmony_ci */ 691e1c44949Sopenharmony_ci RESTRICTION_TYPE_INCOMING_SERVICES, 692e1c44949Sopenharmony_ci}; 693e1c44949Sopenharmony_ci 694e1c44949Sopenharmony_ci/** 695e1c44949Sopenharmony_ci * @brief Indicates the mode of call restriction. 696e1c44949Sopenharmony_ci * 697e1c44949Sopenharmony_ci * 3GPP TS 22.088 V4.0.0 (2001-03) 698e1c44949Sopenharmony_ci */ 699e1c44949Sopenharmony_cienum class CallRestrictionMode { 700e1c44949Sopenharmony_ci /** 701e1c44949Sopenharmony_ci * Indicates call restriction is deactivated. 702e1c44949Sopenharmony_ci */ 703e1c44949Sopenharmony_ci RESTRICTION_MODE_DEACTIVATION = 0, 704e1c44949Sopenharmony_ci /** 705e1c44949Sopenharmony_ci * Indicates call restriction is activated. 706e1c44949Sopenharmony_ci */ 707e1c44949Sopenharmony_ci RESTRICTION_MODE_ACTIVATION = 1, 708e1c44949Sopenharmony_ci}; 709e1c44949Sopenharmony_ci 710e1c44949Sopenharmony_ci/** 711e1c44949Sopenharmony_ci * @brief Indicates the information of call restriction. 712e1c44949Sopenharmony_ci */ 713e1c44949Sopenharmony_cistruct CallRestrictionInfo { 714e1c44949Sopenharmony_ci /** 715e1c44949Sopenharmony_ci * Indicates the password required to set call restrictions. 716e1c44949Sopenharmony_ci */ 717e1c44949Sopenharmony_ci char password[kMaxNumberLen + 1] = { 0 }; 718e1c44949Sopenharmony_ci /** 719e1c44949Sopenharmony_ci * Indicates the type of call restriction. 720e1c44949Sopenharmony_ci */ 721e1c44949Sopenharmony_ci CallRestrictionType fac = CallRestrictionType::RESTRICTION_TYPE_ALL_INCOMING; 722e1c44949Sopenharmony_ci /** 723e1c44949Sopenharmony_ci * Indicates the mode of call restriction. 724e1c44949Sopenharmony_ci */ 725e1c44949Sopenharmony_ci CallRestrictionMode mode = CallRestrictionMode::RESTRICTION_MODE_DEACTIVATION; 726e1c44949Sopenharmony_ci}; 727e1c44949Sopenharmony_ci} // namespace Telephony 728e1c44949Sopenharmony_ci} // namespace OHOS 729e1c44949Sopenharmony_ci#endif // CALL_MANAGER_INFO_H