1216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger/*
2216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger * Copyright (c) 2017 The Android Open Source Project
3216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger *
4216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger * Licensed under the Apache License, Version 2.0 (the "License");
5216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger * you may not use this file except in compliance with the License.
6216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger * You may obtain a copy of the License at
7216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger *
8216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger *      http://www.apache.org/licenses/LICENSE-2.0
9216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger *
10216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger * Unless required by applicable law or agreed to in writing, software
11216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger * distributed under the License is distributed on an "AS IS" BASIS,
12216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger * See the License for the specific language governing permissions and
14216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger * limitations under the License.
15216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger */
16216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger
17216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebingerpackage com.android.ims.internal;
18216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger
19216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebingerimport android.app.PendingIntent;
20216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger
21f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebingerimport android.telephony.ims.ImsCallProfile;
22216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebingerimport com.android.ims.internal.IImsCallSession;
23216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebingerimport com.android.ims.internal.IImsConfig;
24216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebingerimport com.android.ims.internal.IImsEcbm;
25216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebingerimport com.android.ims.internal.IImsMultiEndpoint;
26216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebingerimport com.android.ims.internal.IImsRegistrationListener;
27216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebingerimport com.android.ims.internal.IImsUt;
28216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger
29216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebingerimport android.os.Message;
30216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger
31216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger/**
32216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger * See MMTelFeature for more information.
33216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger * {@hide}
34216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger */
35216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebingerinterface IImsMMTelFeature {
36216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    int startSession(in PendingIntent incomingCallIntent,
37216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger            in IImsRegistrationListener listener);
38216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    void endSession(int sessionId);
39216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    boolean isConnected(int callSessionType, int callType);
40216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    boolean isOpened();
41216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    int getFeatureStatus();
42216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    void addRegistrationListener(in IImsRegistrationListener listener);
43216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    void removeRegistrationListener(in IImsRegistrationListener listener);
44216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    ImsCallProfile createCallProfile(int sessionId, int callSessionType, int callType);
45264625486becc65fac29d7094cfba6d591daeae4Brad Ebinger    IImsCallSession createCallSession(int sessionId, in ImsCallProfile profile);
46216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    IImsCallSession getPendingCallSession(int sessionId, String callId);
47216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    IImsUt getUtInterface();
48216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    IImsConfig getConfigInterface();
49216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    void turnOnIms();
50216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    void turnOffIms();
51216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    IImsEcbm getEcbmInterface();
52216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    void setUiTTYMode(int uiTtyMode, in Message onComplete);
53216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger    IImsMultiEndpoint getMultiEndpointInterface();
54216b3ce485ccd0c42a778c3ca0668f371465a8d4Brad Ebinger}
55