1ef36ef67e009449300b0150c60c9f637e205d79eWink Saville/*
2ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * Copyright (c) 2013 The Android Open Source Project
3ef36ef67e009449300b0150c60c9f637e205d79eWink Saville *
4ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * Licensed under the Apache License, Version 2.0 (the "License");
5ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * you may not use this file except in compliance with the License.
6ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * You may obtain a copy of the License at
7ef36ef67e009449300b0150c60c9f637e205d79eWink Saville *
8ef36ef67e009449300b0150c60c9f637e205d79eWink Saville *      http://www.apache.org/licenses/LICENSE-2.0
9ef36ef67e009449300b0150c60c9f637e205d79eWink Saville *
10ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * Unless required by applicable law or agreed to in writing, software
11ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * distributed under the License is distributed on an "AS IS" BASIS,
12ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * See the License for the specific language governing permissions and
14ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * limitations under the License.
15ef36ef67e009449300b0150c60c9f637e205d79eWink Saville */
16ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
17ef36ef67e009449300b0150c60c9f637e205d79eWink Savillepackage com.android.ims;
18ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
19ef36ef67e009449300b0150c60c9f637e205d79eWink Savilleimport android.os.Message;
20ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
21ef36ef67e009449300b0150c60c9f637e205d79eWink Saville/**
22ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * Provides APIs for the supplementary service settings using IMS (Ut interface).
23ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * It is created from 3GPP TS 24.623 (XCAP(XML Configuration Access Protocol)
24ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * over the Ut interface for manipulating supplementary services).
25ef36ef67e009449300b0150c60c9f637e205d79eWink Saville *
26ef36ef67e009449300b0150c60c9f637e205d79eWink Saville * @hide
27ef36ef67e009449300b0150c60c9f637e205d79eWink Saville */
28ef36ef67e009449300b0150c60c9f637e205d79eWink Savillepublic interface ImsUtInterface {
29ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
30ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * Actions
31ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * @hide
32ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
33ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int ACTION_DEACTIVATION = 0;
34ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int ACTION_ACTIVATION = 1;
35ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int ACTION_REGISTRATION = 3;
36ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int ACTION_ERASURE = 4;
37ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int ACTION_INTERROGATION = 5;
38ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
39ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
40ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * OIR (Originating Identification Restriction, 3GPP TS 24.607)
41ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * OIP (Originating Identification Presentation, 3GPP TS 24.607)
42ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * TIR (Terminating Identification Restriction, 3GPP TS 24.608)
43ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * TIP (Terminating Identification Presentation, 3GPP TS 24.608)
44ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
45ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int OIR_DEFAULT = 0;    // "user subscription default value"
46ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int OIR_PRESENTATION_RESTRICTED = 1;
47ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int OIR_PRESENTATION_NOT_RESTRICTED = 2;
48ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
49ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
50ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * CW (Communication Waiting, 3GPP TS 24.615)
51ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
52ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
53ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
54ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * CDIV (Communication Diversion, 3GPP TS 24.604)
55ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     *     actions: target, no reply timer
56ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
57ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CDIV_CF_UNCONDITIONAL = 0;
58ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CDIV_CF_BUSY = 1;
59ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CDIV_CF_NO_REPLY = 2;
60ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CDIV_CF_NOT_REACHABLE = 3;
61ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    // For CS service code: 002
62ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CDIV_CF_ALL = 4;
63ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    // For CS service code: 004
64ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CDIV_CF_ALL_CONDITIONAL = 5;
65ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    // It's only supported in the IMS service (CS does not define it).
66ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    // IR.92 recommends that an UE activates both the CFNRc and the CFNL
67ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    // (CDIV using condition not-registered) to the same target.
68ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CDIV_CF_NOT_LOGGED_IN = 6;
69ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
70ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
71ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * CB (Communication Barring, 3GPP TS 24.611)
72ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
73ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    // Barring of All Incoming Calls
74ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CB_BAIC = 1;
75ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    // Barring of All Outgoing Calls
76ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CB_BAOC = 2;
77ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    // Barring of Outgoing International Calls
78ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CB_BOIC = 3;
79ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    // Barring of Outgoing International Calls - excluding Home Country
80ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CB_BOIC_EXHC = 4;
81ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    // Barring of Incoming Calls - when roaming
82ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CB_BIC_WR = 5;
83ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    // Barring of Anonymous Communication Rejection (ACR) - a particular case of ICB service
84ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int CB_BIC_ACR = 6;
85f54a9cc3d97915245086cdbf32cc2fbe8bfaea8cShriram Ganesh    // Barring of All Calls
86f54a9cc3d97915245086cdbf32cc2fbe8bfaea8cShriram Ganesh    public static final int CB_BA_ALL = 7;
87f54a9cc3d97915245086cdbf32cc2fbe8bfaea8cShriram Ganesh    // Barring of Outgoing Services (Service Code 333 - 3GPP TS 22.030 Table B-1)
88f54a9cc3d97915245086cdbf32cc2fbe8bfaea8cShriram Ganesh    public static final int CB_BA_MO = 8;
89f54a9cc3d97915245086cdbf32cc2fbe8bfaea8cShriram Ganesh    // Barring of Incoming Services (Service Code 353 - 3GPP TS 22.030 Table B-1)
90f54a9cc3d97915245086cdbf32cc2fbe8bfaea8cShriram Ganesh    public static final int CB_BA_MT = 9;
91f54a9cc3d97915245086cdbf32cc2fbe8bfaea8cShriram Ganesh    // Barring of Specific Incoming calls
92f54a9cc3d97915245086cdbf32cc2fbe8bfaea8cShriram Ganesh    public static final int CB_BS_MT = 10;
93ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
94ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
95ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * Invalid result value.
96ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
97ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public static final int INVALID = (-1);
98ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
99ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
100ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
101ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
102ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * Operations for the supplementary service configuration
103ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
104ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
105ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
106ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * Retrieves the configuration of the call barring.
107ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * The return value of ((AsyncResult)result.obj) is an array of {@link ImsSsInfo}.
108ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
109ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public void queryCallBarring(int cbType, Message result);
110ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
111ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
112ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * Retrieves the configuration of the call forward.
113ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * The return value of ((AsyncResult)result.obj) is an array of {@link ImsCallForwardInfo}.
114ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
115ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public void queryCallForward(int condition, String number, Message result);
116ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
117ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
118ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * Retrieves the configuration of the call waiting.
119ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * The return value of ((AsyncResult)result.obj) is an array of {@link ImsSsInfo}.
120ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
121ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public void queryCallWaiting(Message result);
122ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
123ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
1249b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     * Retrieves the default CLIR setting.
1259b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     */
1269b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    public void queryCLIR(Message result);
1279b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen
1289b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    /**
1299b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     * Retrieves the CLIP call setting.
1309b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     */
1319b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    public void queryCLIP(Message result);
1329b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen
1339b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    /**
1349b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     * Retrieves the COLR call setting.
1359b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     */
1369b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    public void queryCOLR(Message result);
1379b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen
1389b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    /**
1399b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     * Retrieves the COLP call setting.
1409b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     */
1419b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    public void queryCOLP(Message result);
1429b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen
1439b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    /**
144ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * Modifies the configuration of the call barring.
145ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
146f54a9cc3d97915245086cdbf32cc2fbe8bfaea8cShriram Ganesh    public void updateCallBarring(int cbType, boolean enable,
147f54a9cc3d97915245086cdbf32cc2fbe8bfaea8cShriram Ganesh            Message result, String[] barrList);
148ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
149ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
150ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * Modifies the configuration of the call forward.
151ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
152ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public void updateCallForward(int action, int condition, String number,
153ef36ef67e009449300b0150c60c9f637e205d79eWink Saville            int timeSeconds, Message result);
154ef36ef67e009449300b0150c60c9f637e205d79eWink Saville
155ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    /**
156ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     * Modifies the configuration of the call waiting.
157ef36ef67e009449300b0150c60c9f637e205d79eWink Saville     */
158ef36ef67e009449300b0150c60c9f637e205d79eWink Saville    public void updateCallWaiting(boolean enable, Message result);
1599b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen
1609b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    /**
1619b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     * Updates the configuration of the CLIR supplementary service.
1629b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     */
1639b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    public void updateCLIR(int clirMode, Message result);
1649b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen
1659b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    /**
1669b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     * Updates the configuration of the CLIP supplementary service.
1679b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     */
1689b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    public void updateCLIP(boolean enable, Message result);
1699b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen
1709b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    /**
1719b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     * Updates the configuration of the COLR supplementary service.
1729b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     */
1739b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    public void updateCOLR(int presentation, Message result);
1749b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen
1759b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    /**
1769b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     * Updates the configuration of the COLP supplementary service.
1779b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen     */
1789b4ca89882b8b403b36462972b826ac9199a34a4Etan Cohen    public void updateCOLP(boolean enable, Message result);
179ef36ef67e009449300b0150c60c9f637e205d79eWink Saville}
180