|  | /* | 
|  | * Copyright (c) 2013 The Android Open Source Project | 
|  | * | 
|  | * Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | * you may not use this file except in compliance with the License. | 
|  | * You may obtain a copy of the License at | 
|  | * | 
|  | *      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, software | 
|  | * distributed under the License is distributed on an "AS IS" BASIS, | 
|  | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | * See the License for the specific language governing permissions and | 
|  | * limitations under the License. | 
|  | */ | 
|  |  | 
|  | package com.android.ims; | 
|  |  | 
|  | import android.os.Handler; | 
|  | import android.os.Message; | 
|  | import android.telephony.ims.ImsCallForwardInfo; | 
|  | import android.telephony.ims.ImsSsInfo; | 
|  |  | 
|  | /** | 
|  | * Provides APIs for the supplementary service settings using IMS (Ut interface). | 
|  | * It is created from 3GPP TS 24.623 (XCAP(XML Configuration Access Protocol) | 
|  | * over the Ut interface for manipulating supplementary services). | 
|  | * | 
|  | * @hide | 
|  | */ | 
|  | public interface ImsUtInterface { | 
|  | /** | 
|  | * Actions | 
|  | * @hide | 
|  | */ | 
|  | public static final int ACTION_DEACTIVATION = 0; | 
|  | public static final int ACTION_ACTIVATION = 1; | 
|  | public static final int ACTION_REGISTRATION = 3; | 
|  | public static final int ACTION_ERASURE = 4; | 
|  | public static final int ACTION_INTERROGATION = 5; | 
|  |  | 
|  | /** | 
|  | * OIR (Originating Identification Restriction, 3GPP TS 24.607) | 
|  | * OIP (Originating Identification Presentation, 3GPP TS 24.607) | 
|  | * TIR (Terminating Identification Restriction, 3GPP TS 24.608) | 
|  | * TIP (Terminating Identification Presentation, 3GPP TS 24.608) | 
|  | */ | 
|  | public static final int OIR_DEFAULT = 0;    // "user subscription default value" | 
|  | public static final int OIR_PRESENTATION_RESTRICTED = 1; | 
|  | public static final int OIR_PRESENTATION_NOT_RESTRICTED = 2; | 
|  |  | 
|  | /** | 
|  | * CW (Communication Waiting, 3GPP TS 24.615) | 
|  | */ | 
|  |  | 
|  | /** | 
|  | * CDIV (Communication Diversion, 3GPP TS 24.604) | 
|  | *     actions: target, no reply timer | 
|  | */ | 
|  | public static final int CDIV_CF_UNCONDITIONAL = 0; | 
|  | public static final int CDIV_CF_BUSY = 1; | 
|  | public static final int CDIV_CF_NO_REPLY = 2; | 
|  | public static final int CDIV_CF_NOT_REACHABLE = 3; | 
|  | // For CS service code: 002 | 
|  | public static final int CDIV_CF_ALL = 4; | 
|  | // For CS service code: 004 | 
|  | public static final int CDIV_CF_ALL_CONDITIONAL = 5; | 
|  | // It's only supported in the IMS service (CS does not define it). | 
|  | // IR.92 recommends that an UE activates both the CFNRc and the CFNL | 
|  | // (CDIV using condition not-registered) to the same target. | 
|  | public static final int CDIV_CF_NOT_LOGGED_IN = 6; | 
|  |  | 
|  | /** | 
|  | * CB (Communication Barring, 3GPP TS 24.611) | 
|  | */ | 
|  | // Barring of All Incoming Calls | 
|  | public static final int CB_BAIC = 1; | 
|  | // Barring of All Outgoing Calls | 
|  | public static final int CB_BAOC = 2; | 
|  | // Barring of Outgoing International Calls | 
|  | public static final int CB_BOIC = 3; | 
|  | // Barring of Outgoing International Calls - excluding Home Country | 
|  | public static final int CB_BOIC_EXHC = 4; | 
|  | // Barring of Incoming Calls - when roaming | 
|  | public static final int CB_BIC_WR = 5; | 
|  | // Barring of Anonymous Communication Rejection (ACR) - a particular case of ICB service | 
|  | public static final int CB_BIC_ACR = 6; | 
|  | // Barring of All Calls | 
|  | public static final int CB_BA_ALL = 7; | 
|  | // Barring of Outgoing Services (Service Code 333 - 3GPP TS 22.030 Table B-1) | 
|  | public static final int CB_BA_MO = 8; | 
|  | // Barring of Incoming Services (Service Code 353 - 3GPP TS 22.030 Table B-1) | 
|  | public static final int CB_BA_MT = 9; | 
|  | // Barring of Specific Incoming calls | 
|  | public static final int CB_BS_MT = 10; | 
|  |  | 
|  | /** | 
|  | * Invalid result value. | 
|  | */ | 
|  | public static final int INVALID = (-1); | 
|  |  | 
|  |  | 
|  |  | 
|  | /** | 
|  | * Operations for the supplementary service configuration | 
|  | */ | 
|  |  | 
|  | /** | 
|  | * Retrieves the configuration of the call barring. | 
|  | * The return value of ((AsyncResult)result.obj) is an array of {@link ImsSsInfo}. | 
|  | */ | 
|  | public void queryCallBarring(int cbType, Message result); | 
|  |  | 
|  | /** | 
|  | * Retrieves the configuration of the call barring for specified service class. | 
|  | * The return value of ((AsyncResult)result.obj) is an array of {@link ImsSsInfo}. | 
|  | */ | 
|  | public void queryCallBarring(int cbType, Message result, int serviceClass); | 
|  |  | 
|  | /** | 
|  | * Retrieves the configuration of the call forward. | 
|  | * The return value of ((AsyncResult)result.obj) is an array of {@link ImsCallForwardInfo}. | 
|  | */ | 
|  | public void queryCallForward(int condition, String number, Message result); | 
|  |  | 
|  | /** | 
|  | * Retrieves the configuration of the call waiting. | 
|  | * The return value of ((AsyncResult)result.obj) is an array of {@link ImsSsInfo}. | 
|  | */ | 
|  | public void queryCallWaiting(Message result); | 
|  |  | 
|  | /** | 
|  | * Retrieves the default CLIR setting. | 
|  | */ | 
|  | public void queryCLIR(Message result); | 
|  |  | 
|  | /** | 
|  | * Retrieves the CLIP call setting. | 
|  | */ | 
|  | public void queryCLIP(Message result); | 
|  |  | 
|  | /** | 
|  | * Retrieves the COLR call setting. | 
|  | */ | 
|  | public void queryCOLR(Message result); | 
|  |  | 
|  | /** | 
|  | * Retrieves the COLP call setting. | 
|  | */ | 
|  | public void queryCOLP(Message result); | 
|  |  | 
|  | /** | 
|  | * Modifies the configuration of the call barring. | 
|  | */ | 
|  | public void updateCallBarring(int cbType, int action, | 
|  | Message result, String[] barrList); | 
|  |  | 
|  | /** | 
|  | * Modifies the configuration of the call barring for specified service class. | 
|  | */ | 
|  | public void updateCallBarring(int cbType, int action, Message result, | 
|  | String[] barrList, int serviceClass); | 
|  |  | 
|  | /** | 
|  | * Modifies the configuration of the call forward. | 
|  | */ | 
|  | public void updateCallForward(int action, int condition, String number, | 
|  | int serviceClass, int timeSeconds, Message result); | 
|  |  | 
|  | /** | 
|  | * Modifies the configuration of the call waiting. | 
|  | */ | 
|  | public void updateCallWaiting(boolean enable, int serviceClass, Message result); | 
|  |  | 
|  | /** | 
|  | * Updates the configuration of the CLIR supplementary service. | 
|  | */ | 
|  | public void updateCLIR(int clirMode, Message result); | 
|  |  | 
|  | /** | 
|  | * Updates the configuration of the CLIP supplementary service. | 
|  | */ | 
|  | public void updateCLIP(boolean enable, Message result); | 
|  |  | 
|  | /** | 
|  | * Updates the configuration of the COLR supplementary service. | 
|  | */ | 
|  | public void updateCOLR(int presentation, Message result); | 
|  |  | 
|  | /** | 
|  | * Updates the configuration of the COLP supplementary service. | 
|  | */ | 
|  | public void updateCOLP(boolean enable, Message result); | 
|  |  | 
|  | /** | 
|  | * Register for UNSOL_ON_SS indications. | 
|  | * @param handler the {@link Handler} that is notified when there is an ss indication. | 
|  | * @param event  Supplimentary service indication event. | 
|  | * @param Object user object. | 
|  | */ | 
|  | public void registerForSuppServiceIndication(Handler handler, int event, Object object); | 
|  |  | 
|  | /** | 
|  | * Deregister for UNSOL_ON_SS indications. | 
|  | * @param handler the {@link Handler} that is notified when there is an ss indication. | 
|  | */ | 
|  | public void unregisterForSuppServiceIndication(Handler handler); | 
|  | } |