blob: b33a9f1ad23bda64ac018f17200af78143cfd5be [file] [log] [blame]
Wink Savillef8458ff2014-06-25 16:08:02 -07001/*
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
17package com.android.ims.internal;
18
Jordan Liu8218ddd2018-11-28 11:22:39 -080019import android.telephony.CallQuality;
Brad Ebinger0e370b42018-01-22 13:51:52 -080020import android.telephony.ims.ImsStreamMediaProfile;
21import android.telephony.ims.ImsCallProfile;
22import android.telephony.ims.ImsReasonInfo;
23import android.telephony.ims.ImsConferenceState;
Wink Savillef8458ff2014-06-25 16:08:02 -070024import com.android.ims.internal.IImsCallSession;
Brad Ebinger0e370b42018-01-22 13:51:52 -080025import android.telephony.ims.ImsSuppServiceNotification;
Wink Savillef8458ff2014-06-25 16:08:02 -070026
27/**
28 * A listener type for receiving notification on IMS call session events.
29 * When an event is generated for an {@link IImsCallSession}, the application is notified
30 * by having one of the methods called on the {@link IImsCallSessionListener}.
31 * {@hide}
32 */
Brad Ebinger14c4f3d2017-07-27 12:57:03 -070033oneway interface IImsCallSessionListener {
Wink Savillef8458ff2014-06-25 16:08:02 -070034 /**
35 * Notifies the result of the basic session operation (setup / terminate).
36 */
Andrei Onea903da372019-02-27 15:45:08 +000037 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070038 void callSessionProgressing(in IImsCallSession session, in ImsStreamMediaProfile profile);
Andrei Onea903da372019-02-27 15:45:08 +000039 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070040 void callSessionStarted(in IImsCallSession session, in ImsCallProfile profile);
Andrei Onea903da372019-02-27 15:45:08 +000041 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070042 void callSessionStartFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
Andrei Onea903da372019-02-27 15:45:08 +000043 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070044 void callSessionTerminated(in IImsCallSession session, in ImsReasonInfo reasonInfo);
45
46 /**
47 * Notifies the result of the call hold/resume operation.
48 */
Andrei Onea903da372019-02-27 15:45:08 +000049 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070050 void callSessionHeld(in IImsCallSession session, in ImsCallProfile profile);
Andrei Onea903da372019-02-27 15:45:08 +000051 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070052 void callSessionHoldFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
Andrei Onea903da372019-02-27 15:45:08 +000053 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070054 void callSessionHoldReceived(in IImsCallSession session, in ImsCallProfile profile);
Andrei Onea903da372019-02-27 15:45:08 +000055 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070056 void callSessionResumed(in IImsCallSession session, in ImsCallProfile profile);
Andrei Onea903da372019-02-27 15:45:08 +000057 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070058 void callSessionResumeFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
Andrei Onea903da372019-02-27 15:45:08 +000059 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070060 void callSessionResumeReceived(in IImsCallSession session, in ImsCallProfile profile);
61
62 /**
Tyler Gunnf764e802014-10-24 14:06:40 -070063 * Notifies the result of call merge operation.
Wink Savillef8458ff2014-06-25 16:08:02 -070064 */
Andrei Onea903da372019-02-27 15:45:08 +000065 @UnsupportedAppUsage
Tyler Gunnf764e802014-10-24 14:06:40 -070066 void callSessionMergeStarted(in IImsCallSession session,
Wink Savillef8458ff2014-06-25 16:08:02 -070067 in IImsCallSession newSession, in ImsCallProfile profile);
Andrei Onea903da372019-02-27 15:45:08 +000068 @UnsupportedAppUsage
Tyler Gunnf764e802014-10-24 14:06:40 -070069 void callSessionMergeComplete(in IImsCallSession session);
Andrei Onea903da372019-02-27 15:45:08 +000070 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070071 void callSessionMergeFailed(in IImsCallSession session,
72 in ImsReasonInfo reasonInfo);
73
74 /**
75 * Notifies the result of call upgrade / downgrade or any other call updates.
76 */
Andrei Onea903da372019-02-27 15:45:08 +000077 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070078 void callSessionUpdated(in IImsCallSession session,
79 in ImsCallProfile profile);
80 void callSessionUpdateFailed(in IImsCallSession session,
81 in ImsReasonInfo reasonInfo);
82 void callSessionUpdateReceived(in IImsCallSession session,
83 in ImsCallProfile profile);
84
85 /**
86 * Notifies the result of conference extension.
87 */
88 void callSessionConferenceExtended(in IImsCallSession session,
89 in IImsCallSession newSession, in ImsCallProfile profile);
90 void callSessionConferenceExtendFailed(in IImsCallSession session,
91 in ImsReasonInfo reasonInfo);
92 void callSessionConferenceExtendReceived(in IImsCallSession session,
93 in IImsCallSession newSession, in ImsCallProfile profile);
94
95 /**
96 * Notifies the result of the participant invitation / removal to/from the conference session.
97 */
Andrei Onea903da372019-02-27 15:45:08 +000098 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -070099 void callSessionInviteParticipantsRequestDelivered(in IImsCallSession session);
Andrei Onea903da372019-02-27 15:45:08 +0000100 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -0700101 void callSessionInviteParticipantsRequestFailed(in IImsCallSession session,
102 in ImsReasonInfo reasonInfo);
103 void callSessionRemoveParticipantsRequestDelivered(in IImsCallSession session);
104 void callSessionRemoveParticipantsRequestFailed(in IImsCallSession session,
105 in ImsReasonInfo reasonInfo);
106
107 /**
108 * Notifies the changes of the conference info. in the conference session.
109 */
Andrei Onea903da372019-02-27 15:45:08 +0000110 @UnsupportedAppUsage
Wink Savillef8458ff2014-06-25 16:08:02 -0700111 void callSessionConferenceStateUpdated(in IImsCallSession session,
112 in ImsConferenceState state);
113
114 /**
115 * Notifies the incoming USSD message.
116 */
117 void callSessionUssdMessageReceived(in IImsCallSession session,
118 int mode, String ussdMessage);
Shriram Ganeshaf9a6962014-07-21 14:06:53 -0700119
120 /**
121 * Notifies of handover information for this call
122 */
Andrei Onea903da372019-02-27 15:45:08 +0000123 @UnsupportedAppUsage
Shriram Ganeshaf9a6962014-07-21 14:06:53 -0700124 void callSessionHandover(in IImsCallSession session,
125 in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo);
Andrei Onea903da372019-02-27 15:45:08 +0000126 @UnsupportedAppUsage
Shriram Ganeshaf9a6962014-07-21 14:06:53 -0700127 void callSessionHandoverFailed(in IImsCallSession session,
128 in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo);
Anju Mathapatif9c1c972017-03-27 15:43:20 -0700129 void callSessionMayHandover(in IImsCallSession session,
130 in int srcAccessTech, in int targetAccessTech);
Shriram Ganesh69f35c82014-09-11 22:33:03 +0530131
132 /**
133 * Notifies the TTY mode change by remote party.
134 * @param mode one of the following:
135 * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF}
136 * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL}
137 * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO}
138 * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO}
139 */
Andrei Onea903da372019-02-27 15:45:08 +0000140 @UnsupportedAppUsage
Shriram Ganesh69f35c82014-09-11 22:33:03 +0530141 void callSessionTtyModeReceived(in IImsCallSession session, in int mode);
Tyler Gunn6b91ebf2015-04-01 09:36:19 -0700142
143 /**
144 * Notifies of a change to the multiparty state for this {@code ImsCallSession}.
145 *
146 * @param session The call session.
147 * @param isMultiParty {@code true} if the session became multiparty, {@code false} otherwise.
148 */
Andrei Onea903da372019-02-27 15:45:08 +0000149 @UnsupportedAppUsage
Tyler Gunn6b91ebf2015-04-01 09:36:19 -0700150 void callSessionMultipartyStateChanged(in IImsCallSession session, in boolean isMultiParty);
Shriram Ganeshddf570e2015-05-31 09:18:48 -0700151
152 /**
153 * Notifies the supplementary service information for the current session.
154 */
Andrei Onea903da372019-02-27 15:45:08 +0000155 @UnsupportedAppUsage
Shriram Ganeshddf570e2015-05-31 09:18:48 -0700156 void callSessionSuppServiceReceived(in IImsCallSession session,
157 in ImsSuppServiceNotification suppSrvNotification);
Anju Mathapati7e177da2017-01-24 11:58:28 -0800158
159 /**
160 * Device received RTT modify request from Remote UE
161 * @param session ImsCallProfile with updated attribute
162 */
163 void callSessionRttModifyRequestReceived(in IImsCallSession session,
164 in ImsCallProfile callProfile);
165
Jordan Liu8218ddd2018-11-28 11:22:39 -0800166 /**
167 * Device issued RTT modify request and inturn received response
Anju Mathapati7e177da2017-01-24 11:58:28 -0800168 * from Remote UE
169 * @param status Will be one of the following values from:
170 * - {@link Connection.RttModifyStatus}
171 */
172 void callSessionRttModifyResponseReceived(in int status);
173
Jordan Liu8218ddd2018-11-28 11:22:39 -0800174 /**
Anju Mathapati7e177da2017-01-24 11:58:28 -0800175 * While in call, device received RTT message from Remote UE
176 * @param rttMessage Received RTT message
177 */
178 void callSessionRttMessageReceived(in String rttMessage);
Wileen Chiuf2ec2982018-07-01 14:21:50 -0700179
Jordan Liu8218ddd2018-11-28 11:22:39 -0800180 /**
Wileen Chiuf2ec2982018-07-01 14:21:50 -0700181 * While in call, there has been a change in RTT audio indicator.
182 * @param profile updated ImsStreamMediaProfile
183 */
184 void callSessionRttAudioIndicatorChanged(in ImsStreamMediaProfile profile);
Jordan Liu8218ddd2018-11-28 11:22:39 -0800185
186 /**
187 * Notifies of a change to the call quality.
188 * @param callQuality then updated call quality
189 */
190 void callQualityChanged(in CallQuality callQuality);
Wink Savillef8458ff2014-06-25 16:08:02 -0700191}