blob: 579369f4b54912a8a09ef60d727269a1777d8b43 [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 */
37 void callSessionProgressing(in IImsCallSession session, in ImsStreamMediaProfile profile);
38 void callSessionStarted(in IImsCallSession session, in ImsCallProfile profile);
39 void callSessionStartFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
40 void callSessionTerminated(in IImsCallSession session, in ImsReasonInfo reasonInfo);
41
42 /**
43 * Notifies the result of the call hold/resume operation.
44 */
45 void callSessionHeld(in IImsCallSession session, in ImsCallProfile profile);
46 void callSessionHoldFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
47 void callSessionHoldReceived(in IImsCallSession session, in ImsCallProfile profile);
48 void callSessionResumed(in IImsCallSession session, in ImsCallProfile profile);
49 void callSessionResumeFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
50 void callSessionResumeReceived(in IImsCallSession session, in ImsCallProfile profile);
51
52 /**
Tyler Gunnf764e802014-10-24 14:06:40 -070053 * Notifies the result of call merge operation.
Wink Savillef8458ff2014-06-25 16:08:02 -070054 */
Tyler Gunnf764e802014-10-24 14:06:40 -070055 void callSessionMergeStarted(in IImsCallSession session,
Wink Savillef8458ff2014-06-25 16:08:02 -070056 in IImsCallSession newSession, in ImsCallProfile profile);
Tyler Gunnf764e802014-10-24 14:06:40 -070057 void callSessionMergeComplete(in IImsCallSession session);
Wink Savillef8458ff2014-06-25 16:08:02 -070058 void callSessionMergeFailed(in IImsCallSession session,
59 in ImsReasonInfo reasonInfo);
60
61 /**
62 * Notifies the result of call upgrade / downgrade or any other call updates.
63 */
64 void callSessionUpdated(in IImsCallSession session,
65 in ImsCallProfile profile);
66 void callSessionUpdateFailed(in IImsCallSession session,
67 in ImsReasonInfo reasonInfo);
68 void callSessionUpdateReceived(in IImsCallSession session,
69 in ImsCallProfile profile);
70
71 /**
72 * Notifies the result of conference extension.
73 */
74 void callSessionConferenceExtended(in IImsCallSession session,
75 in IImsCallSession newSession, in ImsCallProfile profile);
76 void callSessionConferenceExtendFailed(in IImsCallSession session,
77 in ImsReasonInfo reasonInfo);
78 void callSessionConferenceExtendReceived(in IImsCallSession session,
79 in IImsCallSession newSession, in ImsCallProfile profile);
80
81 /**
82 * Notifies the result of the participant invitation / removal to/from the conference session.
83 */
84 void callSessionInviteParticipantsRequestDelivered(in IImsCallSession session);
85 void callSessionInviteParticipantsRequestFailed(in IImsCallSession session,
86 in ImsReasonInfo reasonInfo);
87 void callSessionRemoveParticipantsRequestDelivered(in IImsCallSession session);
88 void callSessionRemoveParticipantsRequestFailed(in IImsCallSession session,
89 in ImsReasonInfo reasonInfo);
90
91 /**
92 * Notifies the changes of the conference info. in the conference session.
93 */
94 void callSessionConferenceStateUpdated(in IImsCallSession session,
95 in ImsConferenceState state);
96
97 /**
98 * Notifies the incoming USSD message.
99 */
100 void callSessionUssdMessageReceived(in IImsCallSession session,
101 int mode, String ussdMessage);
Shriram Ganeshaf9a6962014-07-21 14:06:53 -0700102
103 /**
104 * Notifies of handover information for this call
105 */
106 void callSessionHandover(in IImsCallSession session,
107 in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo);
108 void callSessionHandoverFailed(in IImsCallSession session,
109 in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo);
Anju Mathapatif9c1c972017-03-27 15:43:20 -0700110 void callSessionMayHandover(in IImsCallSession session,
111 in int srcAccessTech, in int targetAccessTech);
Shriram Ganesh69f35c82014-09-11 22:33:03 +0530112
113 /**
114 * Notifies the TTY mode change by remote party.
115 * @param mode one of the following:
116 * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF}
117 * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL}
118 * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO}
119 * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO}
120 */
121 void callSessionTtyModeReceived(in IImsCallSession session, in int mode);
Tyler Gunn6b91ebf2015-04-01 09:36:19 -0700122
123 /**
124 * Notifies of a change to the multiparty state for this {@code ImsCallSession}.
125 *
126 * @param session The call session.
127 * @param isMultiParty {@code true} if the session became multiparty, {@code false} otherwise.
128 */
129 void callSessionMultipartyStateChanged(in IImsCallSession session, in boolean isMultiParty);
Shriram Ganeshddf570e2015-05-31 09:18:48 -0700130
131 /**
132 * Notifies the supplementary service information for the current session.
133 */
134 void callSessionSuppServiceReceived(in IImsCallSession session,
135 in ImsSuppServiceNotification suppSrvNotification);
Anju Mathapati7e177da2017-01-24 11:58:28 -0800136
137 /**
138 * Device received RTT modify request from Remote UE
139 * @param session ImsCallProfile with updated attribute
140 */
141 void callSessionRttModifyRequestReceived(in IImsCallSession session,
142 in ImsCallProfile callProfile);
143
Jordan Liu8218ddd2018-11-28 11:22:39 -0800144 /**
145 * Device issued RTT modify request and inturn received response
Anju Mathapati7e177da2017-01-24 11:58:28 -0800146 * from Remote UE
147 * @param status Will be one of the following values from:
148 * - {@link Connection.RttModifyStatus}
149 */
150 void callSessionRttModifyResponseReceived(in int status);
151
Jordan Liu8218ddd2018-11-28 11:22:39 -0800152 /**
Anju Mathapati7e177da2017-01-24 11:58:28 -0800153 * While in call, device received RTT message from Remote UE
154 * @param rttMessage Received RTT message
155 */
156 void callSessionRttMessageReceived(in String rttMessage);
Wileen Chiuf2ec2982018-07-01 14:21:50 -0700157
Jordan Liu8218ddd2018-11-28 11:22:39 -0800158 /**
Wileen Chiuf2ec2982018-07-01 14:21:50 -0700159 * While in call, there has been a change in RTT audio indicator.
160 * @param profile updated ImsStreamMediaProfile
161 */
162 void callSessionRttAudioIndicatorChanged(in ImsStreamMediaProfile profile);
Jordan Liu8218ddd2018-11-28 11:22:39 -0800163
164 /**
165 * Notifies of a change to the call quality.
166 * @param callQuality then updated call quality
167 */
168 void callQualityChanged(in CallQuality callQuality);
Wink Savillef8458ff2014-06-25 16:08:02 -0700169}