1d95e75fdSopenharmony_ci/* 2d95e75fdSopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3d95e75fdSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4d95e75fdSopenharmony_ci * you may not use this file except in compliance with the License. 5d95e75fdSopenharmony_ci * You may obtain a copy of the License at 6d95e75fdSopenharmony_ci * 7d95e75fdSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8d95e75fdSopenharmony_ci * 9d95e75fdSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10d95e75fdSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11d95e75fdSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12d95e75fdSopenharmony_ci * See the License for the specific language governing permissions and 13d95e75fdSopenharmony_ci * limitations under the License. 14d95e75fdSopenharmony_ci */ 15d95e75fdSopenharmony_ci 16d95e75fdSopenharmony_ci#ifndef TELEPHONY_IMS_FEATURE_H 17d95e75fdSopenharmony_ci#define TELEPHONY_IMS_FEATURE_H 18d95e75fdSopenharmony_ci 19d95e75fdSopenharmony_ci#include <vector> 20d95e75fdSopenharmony_ci 21d95e75fdSopenharmony_ci#include "ims_reg_types.h" 22d95e75fdSopenharmony_ci 23d95e75fdSopenharmony_cinamespace OHOS { 24d95e75fdSopenharmony_cinamespace Telephony { 25d95e75fdSopenharmony_ci/** 26d95e75fdSopenharmony_ci * @brief Indicates the specific IMS capability type, 27d95e75fdSopenharmony_ci * includes voice, video, UT. 28d95e75fdSopenharmony_ci */ 29d95e75fdSopenharmony_cienum ImsCapabilityType { 30d95e75fdSopenharmony_ci /** 31d95e75fdSopenharmony_ci * Indicate the IMS voice capability. 32d95e75fdSopenharmony_ci */ 33d95e75fdSopenharmony_ci CAPABILITY_TYPE_VOICE = 0, 34d95e75fdSopenharmony_ci /** 35d95e75fdSopenharmony_ci * Indicate the IMS video capability. 36d95e75fdSopenharmony_ci */ 37d95e75fdSopenharmony_ci CAPABILITY_TYPE_VIDEO = 1, 38d95e75fdSopenharmony_ci /** 39d95e75fdSopenharmony_ci * Indicate the IMS UT capability. 40d95e75fdSopenharmony_ci */ 41d95e75fdSopenharmony_ci CAPABILITY_TYPE_UT = 2, 42d95e75fdSopenharmony_ci}; 43d95e75fdSopenharmony_ci 44d95e75fdSopenharmony_ci/** 45d95e75fdSopenharmony_ci * @brief Indicates the IMS capability type, status and the registered RAT. 46d95e75fdSopenharmony_ci */ 47d95e75fdSopenharmony_cistruct ImsCapability { 48d95e75fdSopenharmony_ci /** 49d95e75fdSopenharmony_ci * Indicates the specific IMS capability type. {@link ImsCapabilityType} 50d95e75fdSopenharmony_ci */ 51d95e75fdSopenharmony_ci ImsCapabilityType imsCapabilityType = ImsCapabilityType::CAPABILITY_TYPE_VOICE; 52d95e75fdSopenharmony_ci /** 53d95e75fdSopenharmony_ci * Indicates the IMS register RAT. none, LTE, NR, IWLAN {@link ImsRegTech} 54d95e75fdSopenharmony_ci */ 55d95e75fdSopenharmony_ci ImsRegTech imsRadioTech = ImsRegTech::IMS_REG_TECH_NONE; 56d95e75fdSopenharmony_ci /** 57d95e75fdSopenharmony_ci * Indicates whether the specific IMS capability is enabled. 58d95e75fdSopenharmony_ci * true: enabled, false: disabled 59d95e75fdSopenharmony_ci */ 60d95e75fdSopenharmony_ci bool enable = false; 61d95e75fdSopenharmony_ci}; 62d95e75fdSopenharmony_ci 63d95e75fdSopenharmony_ci/** 64d95e75fdSopenharmony_ci * @brief Indicates a list of IMS capability information. 65d95e75fdSopenharmony_ci */ 66d95e75fdSopenharmony_cistruct ImsCapabilityList { 67d95e75fdSopenharmony_ci /** 68d95e75fdSopenharmony_ci * Indicates a list of IMS capability information. {@link ImsCapability} 69d95e75fdSopenharmony_ci */ 70d95e75fdSopenharmony_ci std::vector<ImsCapability> imsCapabilities {}; 71d95e75fdSopenharmony_ci}; 72d95e75fdSopenharmony_ci 73d95e75fdSopenharmony_ci/** 74d95e75fdSopenharmony_ci * @brief Indicate the IMS feature status. 75d95e75fdSopenharmony_ci */ 76d95e75fdSopenharmony_cienum ImsFeatureIntResult { 77d95e75fdSopenharmony_ci /** 78d95e75fdSopenharmony_ci * Indicates the IMS feature statue is unknown. 79d95e75fdSopenharmony_ci */ 80d95e75fdSopenharmony_ci IMS_FEATURE_INT_RESULT_UNKNOWN = -1, 81d95e75fdSopenharmony_ci /** 82d95e75fdSopenharmony_ci * Indicates the IMS feature statue is disabled. 83d95e75fdSopenharmony_ci */ 84d95e75fdSopenharmony_ci IMS_FEATURE_INT_VALUE_DISABLED = 0, 85d95e75fdSopenharmony_ci /** 86d95e75fdSopenharmony_ci * Indicates the IMS feature statue is enabled. 87d95e75fdSopenharmony_ci */ 88d95e75fdSopenharmony_ci IMS_FEATURE_INT_VALUE_ENABLED = 1 89d95e75fdSopenharmony_ci}; 90d95e75fdSopenharmony_ci} // namespace Telephony 91d95e75fdSopenharmony_ci} // namespace OHOS 92d95e75fdSopenharmony_ci#endif // TELEPHONY_IMS_FEATURE_H 93