1076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com/*
2076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Copyright (c) 2014 The Android Open Source Project
3076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com *
4076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Licensed under the Apache License, Version 2.0 (the "License");
5076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * you may not use this file except in compliance with the License.
6076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * You may obtain a copy of the License at
7076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com *
8076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com *      http://www.apache.org/licenses/LICENSE-2.0
9076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com *
10076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Unless required by applicable law or agreed to in writing, software
11076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * distributed under the License is distributed on an "AS IS" BASIS,
12076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * See the License for the specific language governing permissions and
14076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * limitations under the License.
15076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */
16076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
17076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.compackage com.android.ims;
18076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
1954953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.comimport android.content.Context;
20076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.comimport android.os.RemoteException;
21076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.comimport android.telephony.Rlog;
22076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
23076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.comimport com.android.ims.ImsConfigListener;
24076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.comimport com.android.ims.ImsReasonInfo;
25076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.comimport com.android.ims.internal.IImsConfig;
26076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com/**
27076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * Provides APIs to get/set the IMS service feature/capability/parameters.
28076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * The config items include:
29076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 1) Items provisioned by the operator.
30076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * 2) Items configured by user. Mainly service feature class.
31076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com *
32076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com * @hide
33076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com */
34076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.compublic class ImsConfig {
35076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    private static final String TAG = "ImsConfig";
36076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    private boolean DBG = true;
37076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    private final IImsConfig miConfig;
3854953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com    private Context mContext;
39076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
40076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    /**
41428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     * Broadcast action: the feature enable status was changed
42428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     *
43428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     * @hide
44428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     */
45428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing    public static final String ACTION_IMS_FEATURE_CHANGED =
46428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing            "com.android.intent.action.IMS_FEATURE_CHANGED";
47428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing
48428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing    /**
49428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     * Broadcast action: the configuration was changed
50428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     *
51428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     * @hide
52428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     */
53428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing    public static final String ACTION_IMS_CONFIG_CHANGED =
54428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing            "com.android.intent.action.IMS_CONFIG_CHANGED";
55428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing
56428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing    /**
57428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     * Extra parameter "item" of intent ACTION_IMS_FEATURE_CHANGED and ACTION_IMS_CONFIG_CHANGED.
58428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     * It is the value of FeatureConstants or ConfigConstants.
59428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     *
60428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     * @hide
61428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     */
62428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing    public static final String EXTRA_CHANGED_ITEM = "item";
63428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing
64428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing    /**
65428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     * Extra parameter "value" of intent ACTION_IMS_FEATURE_CHANGED and ACTION_IMS_CONFIG_CHANGED.
66428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     * It is the new value of "item".
67428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     *
68428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     * @hide
69428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing     */
70428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing    public static final String EXTRA_NEW_VALUE = "value";
71428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing
72428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing    /**
73076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    * Defines IMS service/capability feature constants.
74076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    */
75076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    public static class FeatureConstants {
76076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int FEATURE_TYPE_UNKNOWN = -1;
77076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
78076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
797da5a11accec318cc3da2087fb3a891db4f661f7ram         * FEATURE_TYPE_VOLTE supports features defined in 3GPP and
807da5a11accec318cc3da2087fb3a891db4f661f7ram         * GSMA IR.92 over LTE.
81076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
827da5a11accec318cc3da2087fb3a891db4f661f7ram        public static final int FEATURE_TYPE_VOICE_OVER_LTE = 0;
83076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
84076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
857da5a11accec318cc3da2087fb3a891db4f661f7ram         * FEATURE_TYPE_LVC supports features defined in 3GPP and
867da5a11accec318cc3da2087fb3a891db4f661f7ram         * GSMA IR.94 over LTE.
87076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
887da5a11accec318cc3da2087fb3a891db4f661f7ram        public static final int FEATURE_TYPE_VIDEO_OVER_LTE = 1;
89076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
90076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
917da5a11accec318cc3da2087fb3a891db4f661f7ram         * FEATURE_TYPE_VOICE_OVER_WIFI supports features defined in 3GPP and
927da5a11accec318cc3da2087fb3a891db4f661f7ram         * GSMA IR.92 over WiFi.
93076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
947da5a11accec318cc3da2087fb3a891db4f661f7ram        public static final int FEATURE_TYPE_VOICE_OVER_WIFI = 2;
957da5a11accec318cc3da2087fb3a891db4f661f7ram
967da5a11accec318cc3da2087fb3a891db4f661f7ram        /**
977da5a11accec318cc3da2087fb3a891db4f661f7ram         * FEATURE_TYPE_VIDEO_OVER_WIFI supports features defined in 3GPP and
987da5a11accec318cc3da2087fb3a891db4f661f7ram         * GSMA IR.94 over WiFi.
997da5a11accec318cc3da2087fb3a891db4f661f7ram         */
1007da5a11accec318cc3da2087fb3a891db4f661f7ram        public static final int FEATURE_TYPE_VIDEO_OVER_WIFI = 3;
1011d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati
1021d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati        /**
1031d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati         * FEATURE_TYPE_UT supports features defined in 3GPP and
1041d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati         * GSMA IR.92 over LTE.
1051d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati         */
1061d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati        public static final int FEATURE_TYPE_UT_OVER_LTE = 4;
1071d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati
1081d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati       /**
1091d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati         * FEATURE_TYPE_UT_OVER_WIFI supports features defined in 3GPP and
1101d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati         * GSMA IR.92 over WiFi.
1111d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati         */
1121d4a9a47e0c28988fe46a37969f2c39e31a16be1Anju Mathapati        public static final int FEATURE_TYPE_UT_OVER_WIFI = 5;
113076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    }
114076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
115076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    /**
116076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    * Defines IMS service/capability parameters.
117076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    */
118076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    public static class ConfigConstants {
119076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
120076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        // Define IMS config items
121076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int CONFIG_START = 0;
122076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
123076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        // Define operator provisioned config items
124076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int PROVISIONED_CONFIG_START = CONFIG_START;
125076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
126076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
127076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * AMR CODEC Mode Value set, 0-7 in comma separated sequence.
128076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in String format.
129076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
130076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int VOCODER_AMRMODESET = CONFIG_START;
131076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
132076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
133076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Wide Band AMR CODEC Mode Value set,0-7 in comma separated sequence.
134076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in String format.
135076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
136076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int VOCODER_AMRWBMODESET = 1;
137076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
138076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
139076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * SIP Session Timer value (seconds).
140076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in Integer format.
141076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
142076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int SIP_SESSION_TIMER = 2;
143076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
144076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
145076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Minimum SIP Session Expiration Timer in (seconds).
146076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in Integer format.
147076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
148076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int MIN_SE = 3;
149076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
150076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
15154953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * SIP_INVITE cancellation time out value (in milliseconds). Integer format.
152076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in Integer format.
153076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
154076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int CANCELLATION_TIMER = 4;
155076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
156076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
157076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Delay time when an iRAT transition from eHRPD/HRPD/1xRTT to LTE.
158076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in Integer format.
159076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
160076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int TDELAY = 5;
161076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
162076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
163076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Silent redial status of Enabled (True), or Disabled (False).
164076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in Integer format.
165076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
166076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int SILENT_REDIAL_ENABLE = 6;
167076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
168076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
16954953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * SIP T1 timer value in milliseconds. See RFC 3261 for define.
170076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in Integer format.
171076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
172076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int SIP_T1_TIMER = 7;
173076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
174076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
17554953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * SIP T2 timer value in milliseconds.  See RFC 3261 for define.
176076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in Integer format.
177076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
178076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int SIP_T2_TIMER  = 8;
179076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
180076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         /**
18154953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * SIP TF timer value in milliseconds.  See RFC 3261 for define.
182076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in Integer format.
183076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
184076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int SIP_TF_TIMER = 9;
185076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
186076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
187076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * VoLTE status for VLT/s status of Enabled (1), or Disabled (0).
188076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in Integer format.
189076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
190076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int VLT_SETTING_ENABLED = 10;
191076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
192076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        /**
193076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * VoLTE status for LVC/s status of Enabled (1), or Disabled (0).
194076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         * Value is in Integer format.
195076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com         */
196076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int LVC_SETTING_ENABLED = 11;
19754953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        /**
19854953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Domain Name for the device to populate the request URI for REGISTRATION.
19954953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in String format.
20054953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
20154953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        public static final int DOMAIN_NAME = 12;
20254953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         /**
20354953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Device Outgoing SMS based on either 3GPP or 3GPP2 standards.
20454953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in Integer format. 3GPP2(0), 3GPP(1)
20554953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
20654953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        public static final int SMS_FORMAT = 13;
20754953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         /**
20854953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Turns IMS ON/OFF on the device.
20954953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in Integer format. ON (1), OFF(0).
21054953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
21154953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        public static final int SMS_OVER_IP = 14;
21254953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        /**
21354953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Requested expiration for Published Online availability.
21454953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in Integer format.
21554953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
21654953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        public static final int PUBLISH_TIMER = 15;
21754953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        /**
21854953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Requested expiration for Published Offline availability.
21954953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in Integer format.
22054953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
22154953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        public static final int PUBLISH_TIMER_EXTENDED = 16;
22254953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        /**
223428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing         *
224428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing         * Value is in Integer format.
225428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing         */
226428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        public static final int CAPABILITY_DISCOVERY_ENABLED = 17;
227428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        /**
22854953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Period of time the capability information of the  contact is cached on handset.
22954953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in Integer format.
23054953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
231428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        public static final int CAPABILITIES_CACHE_EXPIRATION = 18;
23254953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        /**
23354953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Peiod of time the availability information of a contact is cached on device.
23454953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in Integer format.
23554953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
236428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        public static final int AVAILABILITY_CACHE_EXPIRATION = 19;
23754953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        /**
23854953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Interval between successive capabilities polling.
23954953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in Integer format.
24054953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
241428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        public static final int CAPABILITIES_POLL_INTERVAL = 20;
24254953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        /**
24354953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Minimum time between two published messages from the device.
24454953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in Integer format.
24554953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
246428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        public static final int SOURCE_THROTTLE_PUBLISH = 21;
24754953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        /**
24854953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * The Maximum number of MDNs contained in one Request Contained List.
24954953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in Integer format.
25054953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
251428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        public static final int MAX_NUMENTRIES_IN_RCL = 22;
25254953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        /**
25354953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Expiration timer for subscription of a Request Contained List, used in capability polling.
25454953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in Integer format.
25554953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
256428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        public static final int CAPAB_POLL_LIST_SUB_EXP = 23;
25754953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        /**
25854953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Applies compression to LIST Subscription.
25954953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         * Value is in Integer format. Enable (1), Disable(0).
26054953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com         */
261428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        public static final int GZIP_FLAG = 24;
2623fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com        /**
2633fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com         * VOLTE Status for EAB/s status of Enabled (1), or Disabled (0).
2643fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com         * Value is in Integer format.
2653fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com         */
266428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        public static final int EAB_SETTING_ENABLED = 25;
267a00c919698d1f5db98238994ad53dd223316a949Etan Cohen        /**
268a00c919698d1f5db98238994ad53dd223316a949Etan Cohen         * Wi-Fi calling roaming status.
269a00c919698d1f5db98238994ad53dd223316a949Etan Cohen         * Value is in Integer format. ON (1), OFF(0).
270a00c919698d1f5db98238994ad53dd223316a949Etan Cohen         */
271428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        public static final int VOICE_OVER_WIFI_ROAMING = 26;
272a00c919698d1f5db98238994ad53dd223316a949Etan Cohen        /**
273a00c919698d1f5db98238994ad53dd223316a949Etan Cohen         * Wi-Fi calling modem - WfcModeFeatureValueConstants.
274a00c919698d1f5db98238994ad53dd223316a949Etan Cohen         * Value is in Integer format.
275a00c919698d1f5db98238994ad53dd223316a949Etan Cohen         */
276428d404237972ea63a4b91be1b102b29bb4544d6Gao Bing        public static final int VOICE_OVER_WIFI_MODE = 27;
277394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
27894c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing         * VOLTE Status for voice over wifi status of Enabled (1), or Disabled (0).
27994c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing         * Value is in Integer format.
28094c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing         */
28194c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int VOICE_OVER_WIFI_SETTING_ENABLED = 28;
28294c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        /**
283394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Mobile data enabled.
284394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format. On (1), OFF(0).
285394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
28694c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int MOBILE_DATA_ENABLED = 29;
287394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
288394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * VoLTE user opted in status.
289394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format. Opted-in (1) Opted-out (0).
290394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
29194c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int VOLTE_USER_OPT_IN_STATUS = 30;
292394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
293394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Proxy for Call Session Control Function(P-CSCF) address for Local-BreakOut(LBO).
294394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in String format.
295394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
29694c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int LBO_PCSCF_ADDRESS = 31;
297394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
298394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Keep Alive Enabled for SIP.
299394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format. On(1), OFF(0).
300394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
30194c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int KEEP_ALIVE_ENABLED = 32;
302394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
303394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Registration retry Base Time value in seconds.
304394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
305394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
30694c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int REGISTRATION_RETRY_BASE_TIME_SEC = 33;
307394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
308394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Registration retry Max Time value in seconds.
309394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
310394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
31194c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int REGISTRATION_RETRY_MAX_TIME_SEC = 34;
312394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
313394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Smallest RTP port for speech codec.
314394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in integer format.
315394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
31694c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SPEECH_START_PORT = 35;
317394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
318394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Largest RTP port for speech code.
319394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
320394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
32194c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SPEECH_END_PORT = 36;
322394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
323394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * SIP Timer A's value in milliseconds. Timer A is the INVITE request
324394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * retransmit interval, for UDP only.
325394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
326394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
32794c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SIP_INVITE_REQ_RETX_INTERVAL_MSEC = 37;
328394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
329394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * SIP Timer B's value in milliseconds. Timer B is the wait time for
330394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * INVITE message to be acknowledged.
331394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
332394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
33394c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SIP_INVITE_RSP_WAIT_TIME_MSEC = 38;
334394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
335394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * SIP Timer D's value in milliseconds. Timer D is the wait time for
336394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * response retransmits of the invite client transactions.
337394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
338394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
33994c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SIP_INVITE_RSP_RETX_WAIT_TIME_MSEC = 39;
340394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
341394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * SIP Timer E's value in milliseconds. Timer E is the value Non-INVITE
342394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * request retransmit interval, for UDP only.
343394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
344394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
34594c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SIP_NON_INVITE_REQ_RETX_INTERVAL_MSEC = 40;
346394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
347394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * SIP Timer F's value in milliseconds. Timer F is the Non-INVITE transaction
348394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * timeout timer.
349394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
350394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
35194c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SIP_NON_INVITE_TXN_TIMEOUT_TIMER_MSEC = 41;
352394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
353394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * SIP Timer G's value in milliseconds. Timer G is the value of INVITE response
354394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * retransmit interval.
355394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
356394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
35794c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SIP_INVITE_RSP_RETX_INTERVAL_MSEC = 42;
358394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
359394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * SIP Timer H's value in milliseconds. Timer H is the value of wait time for
360394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * ACK receipt.
361394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
362394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
36394c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SIP_ACK_RECEIPT_WAIT_TIME_MSEC = 43;
364394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
365394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * SIP Timer I's value in milliseconds. Timer I is the value of wait time for
366394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * ACK retransmits.
367394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
368394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
36994c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SIP_ACK_RETX_WAIT_TIME_MSEC = 44;
370394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
371394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * SIP Timer J's value in milliseconds. Timer J is the value of wait time for
372394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * non-invite request retransmission.
373394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
374394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
37594c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SIP_NON_INVITE_REQ_RETX_WAIT_TIME_MSEC = 45;
376394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
377394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * SIP Timer K's value in milliseconds. Timer K is the value of wait time for
378394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * non-invite response retransmits.
379394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
380394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
38194c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SIP_NON_INVITE_RSP_RETX_WAIT_TIME_MSEC = 46;
382394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
383394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * AMR WB octet aligned dynamic payload type.
384394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
385394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
38694c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int AMR_WB_OCTET_ALIGNED_PT = 47;
387394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
388394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * AMR WB bandwidth efficient payload type.
389394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
390394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
39194c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int AMR_WB_BANDWIDTH_EFFICIENT_PT = 48;
392394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
393394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * AMR octet aligned dynamic payload type.
394394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
395394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
39694c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int AMR_OCTET_ALIGNED_PT = 49;
397394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
398394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * AMR bandwidth efficient payload type.
399394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
400394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
40194c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int AMR_BANDWIDTH_EFFICIENT_PT = 50;
402394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
403394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * DTMF WB payload type.
404394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
405394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
40694c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int DTMF_WB_PT = 51;
407394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
408394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * DTMF NB payload type.
409394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
410394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
41194c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int DTMF_NB_PT = 52;
412394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
413394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * AMR Default encoding mode.
414394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in Integer format.
415394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
41694c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int AMR_DEFAULT_MODE = 53;
417394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh        /**
418394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * SMS Public Service Identity.
419394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         * Value is in String format.
420394bd1e6bd4392bad9973ffcd808c4b4de2b61baShriram Ganesh         */
42194c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int SMS_PSI = 54;
422255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade        /**
423255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade         * Video Quality - VideoQualityFeatureValuesConstants.
424255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade         * Value is in Integer format.
425255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade         */
42694c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing        public static final int VIDEO_QUALITY = 55;
42794c7be93bb628a3d8ee6fe1ca18cebb918d4937eGao Bing
428a00c919698d1f5db98238994ad53dd223316a949Etan Cohen
429076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        // Expand the operator config items as needed here, need to change
430076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        // PROVISIONED_CONFIG_END after that.
431255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade        public static final int PROVISIONED_CONFIG_END = VIDEO_QUALITY;
432076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
433076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        // Expand the operator config items as needed here.
434076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    }
435076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
436076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    /**
437076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    * Defines IMS set operation status.
438076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    */
439076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    public static class OperationStatusConstants {
440076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int UNKNOWN = -1;
441076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int SUCCESS = 0;
442076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int FAILED =  1;
443076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int UNSUPPORTED_CAUSE_NONE = 2;
444076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int UNSUPPORTED_CAUSE_RAT = 3;
445076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int UNSUPPORTED_CAUSE_DISABLED = 4;
446076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    }
447076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
4485aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar    /**
4495aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar     * Defines IMS get operation values.
4505aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar     */
4515aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar    public static class OperationValuesConstants {
4525aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar        /**
4535aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar         * Values related to Video Quality
4545aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar         */
4555aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar        public static final int VIDEO_QUALITY_UNKNOWN = -1;
4565aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar        public static final int VIDEO_QUALITY_LOW = 0;
4575aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar        public static final int VIDEO_QUALITY_HIGH = 1;
4585aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar    }
4595aec2e957365f20b2e75d3b8c7034e3289729b81Rekha Kumar
460255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade    /**
461255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade     * Defines IMS video quality feature value.
462255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade     */
463255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade    public static class VideoQualityFeatureValuesConstants {
464255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade        public static final int LOW = 0;
465255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade        public static final int HIGH = 1;
466255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade    }
467255dca28a46aa31b70b64244f8beb1c9a965e7e1Omkar Kolangade
468076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com   /**
469076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    * Defines IMS feature value.
470076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    */
471076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    public static class FeatureValueConstants {
472076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int OFF = 0;
473076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        public static final int ON = 1;
474076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    }
475076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
476a00c919698d1f5db98238994ad53dd223316a949Etan Cohen    /**
477a00c919698d1f5db98238994ad53dd223316a949Etan Cohen     * Defines IMS feature value.
478a00c919698d1f5db98238994ad53dd223316a949Etan Cohen     */
479a00c919698d1f5db98238994ad53dd223316a949Etan Cohen    public static class WfcModeFeatureValueConstants {
480a00c919698d1f5db98238994ad53dd223316a949Etan Cohen        public static final int WIFI_ONLY = 0;
481a00c919698d1f5db98238994ad53dd223316a949Etan Cohen        public static final int CELLULAR_PREFERRED = 1;
482a00c919698d1f5db98238994ad53dd223316a949Etan Cohen        public static final int WIFI_PREFERRED = 2;
483a00c919698d1f5db98238994ad53dd223316a949Etan Cohen    }
484a00c919698d1f5db98238994ad53dd223316a949Etan Cohen
48554953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com    public ImsConfig(IImsConfig iconfig, Context context) {
486076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        if (DBG) Rlog.d(TAG, "ImsConfig creates");
487076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        miConfig = iconfig;
48854953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        mContext = context;
489076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    }
490076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
491076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    /**
4923fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com     * Gets the provisioned value for IMS service/capabilities parameters used by IMS stack.
493076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * This function should not be called from the mainthread as it could block the
4946dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     * mainthread.
495076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
496076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants.
497076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @return the value in Integer format.
498076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
499076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @throws ImsException if calling the IMS service results in an error.
500076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     */
5013fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com    public int getProvisionedValue(int item) throws ImsException {
502076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        int ret = 0;
503076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        try {
5043fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com            ret = miConfig.getProvisionedValue(item);
505076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }  catch (RemoteException e) {
506076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com            throw new ImsException("getValue()", e,
507076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com                    ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE);
508076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }
5093fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com        if (DBG) Rlog.d(TAG, "getProvisionedValue(): item = " + item + ", ret =" + ret);
510076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
511076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        return ret;
512076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    }
513076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
514076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    /**
5153fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com     * Gets the provisioned value for IMS service/capabilities parameters used by IMS stack.
516076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * This function should not be called from the mainthread as it could block the
5176dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     * mainthread.
518076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
519076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants.
520076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @return value in String format.
521076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
522076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @throws ImsException if calling the IMS service results in an error.
523076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     */
5243fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com    public String getProvisionedStringValue(int item) throws ImsException {
525076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        String ret = "Unknown";
526076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        try {
5273fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com            ret = miConfig.getProvisionedStringValue(item);
528076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }  catch (RemoteException e) {
5293fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com            throw new ImsException("getProvisionedStringValue()", e,
530076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com                    ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE);
531076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }
5323fd20025b87ff6828182d21668dd0b7a4a0435ecLibin.Tang@motorola.com        if (DBG) Rlog.d(TAG, "getProvisionedStringValue(): item = " + item + ", ret =" + ret);
533076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
534076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        return ret;
535076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    }
536076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
537076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    /**
538076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * Sets the value for IMS service/capabilities parameters by
539076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * the operator device management entity.
540076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * This function should not be called from main thread as it could block
5416dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     * mainthread.
542076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
543076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants.
544076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param value in Integer format.
54554953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com     * @return as defined in com.android.ims.ImsConfig#OperationStatusConstants
546076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
547076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @throws ImsException if calling the IMS service results in an error.
548076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     */
54954953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com    public int setProvisionedValue(int item, int value)
550076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com            throws ImsException {
55154953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        int ret = ImsConfig.OperationStatusConstants.UNKNOWN;
552076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        if (DBG) {
553076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com            Rlog.d(TAG, "setProvisionedValue(): item = " + item +
554076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com                    "value = " + value);
555076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }
556076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        try {
55754953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com            ret = miConfig.setProvisionedValue(item, value);
558076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }  catch (RemoteException e) {
559076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com            throw new ImsException("setProvisionedValue()", e,
560076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com                    ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE);
561076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }
56254953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        if (DBG) {
56354953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com            Rlog.d(TAG, "setProvisionedValue(): item = " + item +
56454953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com                    " value = " + value + " ret = " + ret);
56554953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        }
56654953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        return ret;
567076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    }
568076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
569076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    /**
570076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * Sets the value for IMS service/capabilities parameters by
571076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * the operator device management entity.
5726dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     * This function should not be called from main thread as it could block
5736dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     * mainthread.
574076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
575076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants.
576076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param value in String format.
57754953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com     * @return as defined in com.android.ims.ImsConfig#OperationStatusConstants
578076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
579076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @throws ImsException if calling the IMS service results in an error.
580076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     */
58154953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com    public int setProvisionedStringValue(int item, String value)
582076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com            throws ImsException {
58354953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        int ret = ImsConfig.OperationStatusConstants.UNKNOWN;
584076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        try {
58554953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com            ret = miConfig.setProvisionedStringValue(item, value);
586076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }  catch (RemoteException e) {
587076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com            throw new ImsException("setProvisionedStringValue()", e,
588076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com                    ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE);
589076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }
59054953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        if (DBG) {
59154953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com            Rlog.d(TAG, "setProvisionedStringValue(): item = " + item +
59254953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com                    ", value =" + value);
59354953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        }
59454953c79547a4e2f8e690a021d44f533e190427aLibin.Tang@motorola.com        return ret;
595076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    }
596076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
597076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    /**
598076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * Gets the value for IMS feature item for specified network type.
599076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
600076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param feature, defined as in FeatureConstants.
601076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param network, defined as in android.telephony.TelephonyManager#NETWORK_TYPE_XXX.
602076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param listener, provided to be notified for the feature on/off status.
603076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @return void
604076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
605076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @throws ImsException if calling the IMS service results in an error.
606076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     */
607076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    public void getFeatureValue(int feature, int network,
608076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com            ImsConfigListener listener) throws ImsException {
609076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        if (DBG) {
6105216bd9de165e7fd1ec9b1caea983ab6ca50784eLibin.Tang@motorola.com            Rlog.d(TAG, "getFeatureValue: feature = " + feature + ", network =" + network +
611076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com                    ", listener =" + listener);
612076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }
613076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        try {
614076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com            miConfig.getFeatureValue(feature, network, listener);
615076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        } catch (RemoteException e) {
6165216bd9de165e7fd1ec9b1caea983ab6ca50784eLibin.Tang@motorola.com            throw new ImsException("getFeatureValue()", e,
617076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com                    ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE);
618076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }
619076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    }
620076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com
621076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    /**
622076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * Sets the value for IMS feature item for specified network type.
623076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
624076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param feature, as defined in FeatureConstants.
625076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param network, as defined in android.telephony.TelephonyManager#NETWORK_TYPE_XXX.
626076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param value, as defined in FeatureValueConstants.
627076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @param listener, provided if caller needs to be notified for set result.
628076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @return void
629076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     *
630076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     * @throws ImsException if calling the IMS service results in an error.
631076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com     */
632076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    public void setFeatureValue(int feature, int network, int value,
633076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com            ImsConfigListener listener) throws ImsException {
634076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        if (DBG) {
6355216bd9de165e7fd1ec9b1caea983ab6ca50784eLibin.Tang@motorola.com            Rlog.d(TAG, "setFeatureValue: feature = " + feature + ", network =" + network +
636076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com                    ", value =" + value + ", listener =" + listener);
637076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }
638076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        try {
639076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com            miConfig.setFeatureValue(feature, network, value, listener);
640076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        } catch (RemoteException e) {
641076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com            throw new ImsException("setFeatureValue()", e,
642076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com                    ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE);
643076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com        }
644076c55df56906453aade4a741b435f1df72778a2Libin.Tang@motorola.com    }
6456dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com
6466dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com    /**
6476dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     * Gets the value for IMS Volte provisioned.
6486dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     * It should be the same as operator provisioned value if applies.
6496dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     *
6506dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     * @return boolean
6516dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     *
6526dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     * @throws ImsException if calling the IMS service results in an error.
6536dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com     */
6546dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com    public boolean getVolteProvisioned() throws ImsException {
6556dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com        try {
6566dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com           return miConfig.getVolteProvisioned();
6576dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com        } catch (RemoteException e) {
6586dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com            throw new ImsException("getVolteProvisioned()", e,
6596dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com                    ImsReasonInfo.CODE_LOCAL_SERVICE_UNAVAILABLE);
6606dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com        }
6616dd039f557a92eb308a94799da95e5fa27bec492Libin.Tang@motorola.com    }
6627da5a11accec318cc3da2087fb3a891db4f661f7ram}
663