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