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.Handler; 20 import android.os.Message; 21 import android.telephony.ims.ImsCallForwardInfo; 22 import android.telephony.ims.ImsSsInfo; 23 24 /** 25 * Provides APIs for the supplementary service settings using IMS (Ut interface). 26 * It is created from 3GPP TS 24.623 (XCAP(XML Configuration Access Protocol) 27 * over the Ut interface for manipulating supplementary services). 28 * 29 * @hide 30 */ 31 public interface ImsUtInterface { 32 /** 33 * Actions 34 * @hide 35 */ 36 public static final int ACTION_DEACTIVATION = 0; 37 public static final int ACTION_ACTIVATION = 1; 38 public static final int ACTION_REGISTRATION = 3; 39 public static final int ACTION_ERASURE = 4; 40 public static final int ACTION_INTERROGATION = 5; 41 42 /** 43 * OIR (Originating Identification Restriction, 3GPP TS 24.607) 44 * OIP (Originating Identification Presentation, 3GPP TS 24.607) 45 * TIR (Terminating Identification Restriction, 3GPP TS 24.608) 46 * TIP (Terminating Identification Presentation, 3GPP TS 24.608) 47 */ 48 public static final int OIR_DEFAULT = 0; // "user subscription default value" 49 public static final int OIR_PRESENTATION_RESTRICTED = 1; 50 public static final int OIR_PRESENTATION_NOT_RESTRICTED = 2; 51 52 /** 53 * CW (Communication Waiting, 3GPP TS 24.615) 54 */ 55 56 /** 57 * CDIV (Communication Diversion, 3GPP TS 24.604) 58 * actions: target, no reply timer 59 */ 60 public static final int CDIV_CF_UNCONDITIONAL = 0; 61 public static final int CDIV_CF_BUSY = 1; 62 public static final int CDIV_CF_NO_REPLY = 2; 63 public static final int CDIV_CF_NOT_REACHABLE = 3; 64 // For CS service code: 002 65 public static final int CDIV_CF_ALL = 4; 66 // For CS service code: 004 67 public static final int CDIV_CF_ALL_CONDITIONAL = 5; 68 // It's only supported in the IMS service (CS does not define it). 69 // IR.92 recommends that an UE activates both the CFNRc and the CFNL 70 // (CDIV using condition not-registered) to the same target. 71 public static final int CDIV_CF_NOT_LOGGED_IN = 6; 72 73 /** 74 * CB (Communication Barring, 3GPP TS 24.611) 75 */ 76 // Barring of All Incoming Calls 77 public static final int CB_BAIC = 1; 78 // Barring of All Outgoing Calls 79 public static final int CB_BAOC = 2; 80 // Barring of Outgoing International Calls 81 public static final int CB_BOIC = 3; 82 // Barring of Outgoing International Calls - excluding Home Country 83 public static final int CB_BOIC_EXHC = 4; 84 // Barring of Incoming Calls - when roaming 85 public static final int CB_BIC_WR = 5; 86 // Barring of Anonymous Communication Rejection (ACR) - a particular case of ICB service 87 public static final int CB_BIC_ACR = 6; 88 // Barring of All Calls 89 public static final int CB_BA_ALL = 7; 90 // Barring of Outgoing Services (Service Code 333 - 3GPP TS 22.030 Table B-1) 91 public static final int CB_BA_MO = 8; 92 // Barring of Incoming Services (Service Code 353 - 3GPP TS 22.030 Table B-1) 93 public static final int CB_BA_MT = 9; 94 // Barring of Specific Incoming calls 95 public static final int CB_BS_MT = 10; 96 97 /** 98 * Invalid result value. 99 */ 100 public static final int INVALID = (-1); 101 102 103 104 /** 105 * Operations for the supplementary service configuration 106 */ 107 108 /** 109 * Retrieves the configuration of the call barring. 110 * The return value of ((AsyncResult)result.obj) is an array of {@link ImsSsInfo}. 111 */ queryCallBarring(int cbType, Message result)112 public void queryCallBarring(int cbType, Message result); 113 114 /** 115 * Retrieves the configuration of the call barring for specified service class. 116 * The return value of ((AsyncResult)result.obj) is an array of {@link ImsSsInfo}. 117 */ queryCallBarring(int cbType, Message result, int serviceClass)118 public void queryCallBarring(int cbType, Message result, int serviceClass); 119 120 /** 121 * Retrieves the configuration of the call forward. 122 * The return value of ((AsyncResult)result.obj) is an array of {@link ImsCallForwardInfo}. 123 */ queryCallForward(int condition, String number, Message result)124 public void queryCallForward(int condition, String number, Message result); 125 126 /** 127 * Retrieves the configuration of the call waiting. 128 * The return value of ((AsyncResult)result.obj) is an array of {@link ImsSsInfo}. 129 */ queryCallWaiting(Message result)130 public void queryCallWaiting(Message result); 131 132 /** 133 * Retrieves the default CLIR setting. 134 */ queryCLIR(Message result)135 public void queryCLIR(Message result); 136 137 /** 138 * Retrieves the CLIP call setting. 139 */ queryCLIP(Message result)140 public void queryCLIP(Message result); 141 142 /** 143 * Retrieves the COLR call setting. 144 */ queryCOLR(Message result)145 public void queryCOLR(Message result); 146 147 /** 148 * Retrieves the COLP call setting. 149 */ queryCOLP(Message result)150 public void queryCOLP(Message result); 151 152 /** 153 * Modifies the configuration of the call barring. 154 */ updateCallBarring(int cbType, int action, Message result, String[] barrList)155 public void updateCallBarring(int cbType, int action, 156 Message result, String[] barrList); 157 158 /** 159 * Modifies the configuration of the call barring for specified service class. 160 */ updateCallBarring(int cbType, int action, Message result, String[] barrList, int serviceClass)161 public void updateCallBarring(int cbType, int action, Message result, 162 String[] barrList, int serviceClass); 163 164 /** 165 * Modifies the configuration of the call forward. 166 */ updateCallForward(int action, int condition, String number, int serviceClass, int timeSeconds, Message result)167 public void updateCallForward(int action, int condition, String number, 168 int serviceClass, int timeSeconds, Message result); 169 170 /** 171 * Modifies the configuration of the call waiting. 172 */ updateCallWaiting(boolean enable, int serviceClass, Message result)173 public void updateCallWaiting(boolean enable, int serviceClass, Message result); 174 175 /** 176 * Updates the configuration of the CLIR supplementary service. 177 */ updateCLIR(int clirMode, Message result)178 public void updateCLIR(int clirMode, Message result); 179 180 /** 181 * Updates the configuration of the CLIP supplementary service. 182 */ updateCLIP(boolean enable, Message result)183 public void updateCLIP(boolean enable, Message result); 184 185 /** 186 * Updates the configuration of the COLR supplementary service. 187 */ updateCOLR(int presentation, Message result)188 public void updateCOLR(int presentation, Message result); 189 190 /** 191 * Updates the configuration of the COLP supplementary service. 192 */ updateCOLP(boolean enable, Message result)193 public void updateCOLP(boolean enable, Message result); 194 195 /** 196 * Register for UNSOL_ON_SS indications. 197 * @param handler the {@link Handler} that is notified when there is an ss indication. 198 * @param event Supplimentary service indication event. 199 * @param Object user object. 200 */ registerForSuppServiceIndication(Handler handler, int event, Object object)201 public void registerForSuppServiceIndication(Handler handler, int event, Object object); 202 203 /** 204 * Deregister for UNSOL_ON_SS indications. 205 * @param handler the {@link Handler} that is notified when there is an ss indication. 206 */ unregisterForSuppServiceIndication(Handler handler)207 public void unregisterForSuppServiceIndication(Handler handler); 208 } 209