1d95e75fdSopenharmony_ci/*
2d95e75fdSopenharmony_ci * Copyright (C) 2021-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 CELLULAR_CALL_CONFIG_REQUEST_H
17d95e75fdSopenharmony_ci#define CELLULAR_CALL_CONFIG_REQUEST_H
18d95e75fdSopenharmony_ci
19d95e75fdSopenharmony_ci#include "base_request.h"
20d95e75fdSopenharmony_ci#include "ims_feature.h"
21d95e75fdSopenharmony_ci#include "module_service_utils.h"
22d95e75fdSopenharmony_ci#include "telephony_log_wrapper.h"
23d95e75fdSopenharmony_ci#include "telephony_types.h"
24d95e75fdSopenharmony_ci
25d95e75fdSopenharmony_cinamespace OHOS {
26d95e75fdSopenharmony_cinamespace Telephony {
27d95e75fdSopenharmony_ciclass ConfigRequest : BaseRequest {
28d95e75fdSopenharmony_cipublic:
29d95e75fdSopenharmony_ci    /**
30d95e75fdSopenharmony_ci     * Set Domain Preference Mode Request
31d95e75fdSopenharmony_ci     *
32d95e75fdSopenharmony_ci     * @param slotId
33d95e75fdSopenharmony_ci     * @param mode
34d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
35d95e75fdSopenharmony_ci     */
36d95e75fdSopenharmony_ci    int32_t SetDomainPreferenceModeRequest(int32_t slotId, int32_t mode);
37d95e75fdSopenharmony_ci
38d95e75fdSopenharmony_ci    /**
39d95e75fdSopenharmony_ci     * Get Domain Preference Mode Request
40d95e75fdSopenharmony_ci     *
41d95e75fdSopenharmony_ci     * @param slotId
42d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
43d95e75fdSopenharmony_ci     */
44d95e75fdSopenharmony_ci    int32_t GetDomainPreferenceModeRequest(int32_t slotId);
45d95e75fdSopenharmony_ci
46d95e75fdSopenharmony_ci    /**
47d95e75fdSopenharmony_ci     * Set Lte Ims Switch Status Request
48d95e75fdSopenharmony_ci     *
49d95e75fdSopenharmony_ci     * @param slotId
50d95e75fdSopenharmony_ci     * @param active
51d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
52d95e75fdSopenharmony_ci     */
53d95e75fdSopenharmony_ci    int32_t SetImsSwitchStatusRequest(int32_t slotId, bool active);
54d95e75fdSopenharmony_ci
55d95e75fdSopenharmony_ci    /**
56d95e75fdSopenharmony_ci     * Get Lte Ims Switch Status Request
57d95e75fdSopenharmony_ci     *
58d95e75fdSopenharmony_ci     * @param slotId
59d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
60d95e75fdSopenharmony_ci     */
61d95e75fdSopenharmony_ci    int32_t GetImsSwitchStatusRequest(int32_t slotId);
62d95e75fdSopenharmony_ci
63d95e75fdSopenharmony_ci    /**
64d95e75fdSopenharmony_ci     * Set VoNR Switch Status Request
65d95e75fdSopenharmony_ci     *
66d95e75fdSopenharmony_ci     * @param slotId
67d95e75fdSopenharmony_ci     * @param state
68d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
69d95e75fdSopenharmony_ci     */
70d95e75fdSopenharmony_ci    int32_t SetVoNRSwitchStatusRequest(int32_t slotId, int32_t state);
71d95e75fdSopenharmony_ci
72d95e75fdSopenharmony_ci    /**
73d95e75fdSopenharmony_ci     * Set Ims Config Request
74d95e75fdSopenharmony_ci     *
75d95e75fdSopenharmony_ci     * @param ImsConfigItem
76d95e75fdSopenharmony_ci     * @param value
77d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
78d95e75fdSopenharmony_ci     */
79d95e75fdSopenharmony_ci    int32_t SetImsConfigRequest(ImsConfigItem item, const std::string &value);
80d95e75fdSopenharmony_ci
81d95e75fdSopenharmony_ci    /**
82d95e75fdSopenharmony_ci     * Set Ims Config Request
83d95e75fdSopenharmony_ci     *
84d95e75fdSopenharmony_ci     * @param ImsConfigItem
85d95e75fdSopenharmony_ci     * @param value
86d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
87d95e75fdSopenharmony_ci     */
88d95e75fdSopenharmony_ci    int32_t SetImsConfigRequest(ImsConfigItem item, int32_t value);
89d95e75fdSopenharmony_ci
90d95e75fdSopenharmony_ci    /**
91d95e75fdSopenharmony_ci     * Get Ims Config Request
92d95e75fdSopenharmony_ci     *
93d95e75fdSopenharmony_ci     * @param ImsConfigItem
94d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
95d95e75fdSopenharmony_ci     */
96d95e75fdSopenharmony_ci    int32_t GetImsConfigRequest(ImsConfigItem item);
97d95e75fdSopenharmony_ci
98d95e75fdSopenharmony_ci    /**
99d95e75fdSopenharmony_ci     * Set Ims Feature Value Request
100d95e75fdSopenharmony_ci     *
101d95e75fdSopenharmony_ci     * @param FeatureType
102d95e75fdSopenharmony_ci     * @param value
103d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
104d95e75fdSopenharmony_ci     */
105d95e75fdSopenharmony_ci    int32_t SetImsFeatureValueRequest(FeatureType type, int32_t value);
106d95e75fdSopenharmony_ci
107d95e75fdSopenharmony_ci    /**
108d95e75fdSopenharmony_ci     * Get Ims Feature Value Request
109d95e75fdSopenharmony_ci     *
110d95e75fdSopenharmony_ci     * @param FeatureType Indicate which feature type to query.
111d95e75fdSopenharmony_ci     * @param value Indicate the return value of the query feature type.
112d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
113d95e75fdSopenharmony_ci     */
114d95e75fdSopenharmony_ci    int32_t GetImsFeatureValueRequest(FeatureType type, int32_t &value);
115d95e75fdSopenharmony_ci
116d95e75fdSopenharmony_ci    /**
117d95e75fdSopenharmony_ci     * SetMuteRequest
118d95e75fdSopenharmony_ci     *
119d95e75fdSopenharmony_ci     * @param slotId
120d95e75fdSopenharmony_ci     * @param mute
121d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
122d95e75fdSopenharmony_ci     */
123d95e75fdSopenharmony_ci    int32_t SetMuteRequest(int32_t slotId, int32_t mute);
124d95e75fdSopenharmony_ci
125d95e75fdSopenharmony_ci    /**
126d95e75fdSopenharmony_ci     * GetMuteRequest
127d95e75fdSopenharmony_ci     *
128d95e75fdSopenharmony_ci     * @param slotId
129d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
130d95e75fdSopenharmony_ci     */
131d95e75fdSopenharmony_ci    int32_t GetMuteRequest(int32_t slotId);
132d95e75fdSopenharmony_ci
133d95e75fdSopenharmony_ci    /**
134d95e75fdSopenharmony_ci     * GetEmergencyCallListRequest
135d95e75fdSopenharmony_ci     *
136d95e75fdSopenharmony_ci     * @param slotId
137d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
138d95e75fdSopenharmony_ci     */
139d95e75fdSopenharmony_ci    int32_t GetEmergencyCallListRequest(int32_t slotId);
140d95e75fdSopenharmony_ci
141d95e75fdSopenharmony_ci     /**
142d95e75fdSopenharmony_ci     * SetEmergencyCallListRequest
143d95e75fdSopenharmony_ci     *
144d95e75fdSopenharmony_ci     * @param slotId
145d95e75fdSopenharmony_ci     * @param eccVec
146d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
147d95e75fdSopenharmony_ci     */
148d95e75fdSopenharmony_ci    int32_t SetEmergencyCallListRequest(int32_t slotId, std::vector<EmergencyCall>  &eccVec);
149d95e75fdSopenharmony_ci
150d95e75fdSopenharmony_ci    /**
151d95e75fdSopenharmony_ci     * Update Ims Capabilities
152d95e75fdSopenharmony_ci     *
153d95e75fdSopenharmony_ci     * @param slotId Indicates the card slot index number,
154d95e75fdSopenharmony_ci     * ranging from {@code 0} to the maximum card slot index number supported by the device.
155d95e75fdSopenharmony_ci     * @param imsCapabilityList Indicates the related ims capability
156d95e75fdSopenharmony_ci     * @return Returns TELEPHONY_SUCCESS on success, others on failure.
157d95e75fdSopenharmony_ci     */
158d95e75fdSopenharmony_ci    int32_t UpdateImsCapabilities(int32_t slotId, const ImsCapabilityList &imsCapabilityList);
159d95e75fdSopenharmony_ci
160d95e75fdSopenharmony_ciprivate:
161d95e75fdSopenharmony_ci    ModuleServiceUtils moduleUtils_;
162d95e75fdSopenharmony_ci};
163d95e75fdSopenharmony_ci} // namespace Telephony
164d95e75fdSopenharmony_ci} // namespace OHOS
165d95e75fdSopenharmony_ci#endif // CELLULAR_CALL_CONFIG_REQUEST_H
166