/* * 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.internal; import android.app.PendingIntent; import android.telephony.ims.ImsCallProfile; import com.android.ims.internal.IImsCallSession; import com.android.ims.internal.IImsCallSessionListener; import com.android.ims.internal.IImsConfig; import com.android.ims.internal.IImsEcbm; import com.android.ims.internal.IImsMultiEndpoint; import com.android.ims.internal.IImsRegistrationListener; import com.android.ims.internal.IImsUt; import android.os.Message; /** * {@hide} */ interface IImsService { int open(int phoneId, int serviceClass, in PendingIntent incomingCallIntent, in IImsRegistrationListener listener); void close(int serviceId); boolean isConnected(int serviceId, int serviceType, int callType); boolean isOpened(int serviceId); /** * Replace existing registration listener * */ void setRegistrationListener(int serviceId, in IImsRegistrationListener listener); /** * Add new registration listener */ void addRegistrationListener(int phoneId, int serviceClass, in IImsRegistrationListener listener); ImsCallProfile createCallProfile(int serviceId, int serviceType, int callType); IImsCallSession createCallSession(int serviceId, in ImsCallProfile profile, in IImsCallSessionListener listener); IImsCallSession getPendingCallSession(int serviceId, String callId); /** * Ut interface for the supplementary service configuration. */ IImsUt getUtInterface(int serviceId); /** * Config interface to get/set IMS service/capability parameters. */ IImsConfig getConfigInterface(int phoneId); /** * Used for turning on IMS when its in OFF state. */ void turnOnIms(int phoneId); /** * Used for turning off IMS when its in ON state. * When IMS is OFF, device will behave as CSFB'ed. */ void turnOffIms(int phoneId); /** * ECBM interface for Emergency Callback mode mechanism. */ IImsEcbm getEcbmInterface(int serviceId); /** * Used to set current TTY Mode. */ void setUiTTYMode(int serviceId, int uiTtyMode, in Message onComplete); /** * MultiEndpoint interface for DEP. */ IImsMultiEndpoint getMultiEndpointInterface(int serviceId); }