• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
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 
17 package com.android.ims.internal;
18 
19 import com.android.ims.ImsStreamMediaProfile;
20 import com.android.ims.ImsCallProfile;
21 import com.android.ims.ImsReasonInfo;
22 import com.android.ims.ImsConferenceState;
23 import com.android.ims.internal.IImsCallSession;
24 import com.android.ims.ImsSuppServiceNotification;
25 
26 /**
27  * A listener type for receiving notification on IMS call session events.
28  * When an event is generated for an {@link IImsCallSession}, the application is notified
29  * by having one of the methods called on the {@link IImsCallSessionListener}.
30  * {@hide}
31  */
32 oneway interface IImsCallSessionListener {
33     /**
34      * Notifies the result of the basic session operation (setup / terminate).
35      */
callSessionProgressing(in IImsCallSession session, in ImsStreamMediaProfile profile)36     void callSessionProgressing(in IImsCallSession session, in ImsStreamMediaProfile profile);
callSessionStarted(in IImsCallSession session, in ImsCallProfile profile)37     void callSessionStarted(in IImsCallSession session, in ImsCallProfile profile);
callSessionStartFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo)38     void callSessionStartFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
callSessionTerminated(in IImsCallSession session, in ImsReasonInfo reasonInfo)39     void callSessionTerminated(in IImsCallSession session, in ImsReasonInfo reasonInfo);
40 
41     /**
42      * Notifies the result of the call hold/resume operation.
43      */
callSessionHeld(in IImsCallSession session, in ImsCallProfile profile)44     void callSessionHeld(in IImsCallSession session, in ImsCallProfile profile);
callSessionHoldFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo)45     void callSessionHoldFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
callSessionHoldReceived(in IImsCallSession session, in ImsCallProfile profile)46     void callSessionHoldReceived(in IImsCallSession session, in ImsCallProfile profile);
callSessionResumed(in IImsCallSession session, in ImsCallProfile profile)47     void callSessionResumed(in IImsCallSession session, in ImsCallProfile profile);
callSessionResumeFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo)48     void callSessionResumeFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo);
callSessionResumeReceived(in IImsCallSession session, in ImsCallProfile profile)49     void callSessionResumeReceived(in IImsCallSession session, in ImsCallProfile profile);
50 
51     /**
52      * Notifies the result of call merge operation.
53      */
callSessionMergeStarted(in IImsCallSession session, in IImsCallSession newSession, in ImsCallProfile profile)54     void callSessionMergeStarted(in IImsCallSession session,
55             in IImsCallSession newSession, in ImsCallProfile profile);
callSessionMergeComplete(in IImsCallSession session)56     void callSessionMergeComplete(in IImsCallSession session);
callSessionMergeFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo)57     void callSessionMergeFailed(in IImsCallSession session,
58             in ImsReasonInfo reasonInfo);
59 
60     /**
61      * Notifies the result of call upgrade / downgrade or any other call updates.
62      */
callSessionUpdated(in IImsCallSession session, in ImsCallProfile profile)63     void callSessionUpdated(in IImsCallSession session,
64             in ImsCallProfile profile);
callSessionUpdateFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo)65     void callSessionUpdateFailed(in IImsCallSession session,
66             in ImsReasonInfo reasonInfo);
callSessionUpdateReceived(in IImsCallSession session, in ImsCallProfile profile)67     void callSessionUpdateReceived(in IImsCallSession session,
68             in ImsCallProfile profile);
69 
70     /**
71      * Notifies the result of conference extension.
72      */
callSessionConferenceExtended(in IImsCallSession session, in IImsCallSession newSession, in ImsCallProfile profile)73     void callSessionConferenceExtended(in IImsCallSession session,
74             in IImsCallSession newSession, in ImsCallProfile profile);
callSessionConferenceExtendFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo)75     void callSessionConferenceExtendFailed(in IImsCallSession session,
76             in ImsReasonInfo reasonInfo);
callSessionConferenceExtendReceived(in IImsCallSession session, in IImsCallSession newSession, in ImsCallProfile profile)77     void callSessionConferenceExtendReceived(in IImsCallSession session,
78             in IImsCallSession newSession, in ImsCallProfile profile);
79 
80     /**
81      * Notifies the result of the participant invitation / removal to/from the conference session.
82      */
callSessionInviteParticipantsRequestDelivered(in IImsCallSession session)83     void callSessionInviteParticipantsRequestDelivered(in IImsCallSession session);
callSessionInviteParticipantsRequestFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo)84     void callSessionInviteParticipantsRequestFailed(in IImsCallSession session,
85             in ImsReasonInfo reasonInfo);
callSessionRemoveParticipantsRequestDelivered(in IImsCallSession session)86     void callSessionRemoveParticipantsRequestDelivered(in IImsCallSession session);
callSessionRemoveParticipantsRequestFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo)87     void callSessionRemoveParticipantsRequestFailed(in IImsCallSession session,
88             in ImsReasonInfo reasonInfo);
89 
90     /**
91      * Notifies the changes of the conference info. in the conference session.
92      */
callSessionConferenceStateUpdated(in IImsCallSession session, in ImsConferenceState state)93     void callSessionConferenceStateUpdated(in IImsCallSession session,
94             in ImsConferenceState state);
95 
96     /**
97      * Notifies the incoming USSD message.
98      */
callSessionUssdMessageReceived(in IImsCallSession session, int mode, String ussdMessage)99     void callSessionUssdMessageReceived(in IImsCallSession session,
100             int mode, String ussdMessage);
101 
102     /**
103      * Notifies of handover information for this call
104      */
callSessionHandover(in IImsCallSession session, in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo)105     void callSessionHandover(in IImsCallSession session,
106             in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo);
callSessionHandoverFailed(in IImsCallSession session, in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo)107     void callSessionHandoverFailed(in IImsCallSession session,
108             in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo);
callSessionMayHandover(in IImsCallSession session, in int srcAccessTech, in int targetAccessTech)109     void callSessionMayHandover(in IImsCallSession session,
110             in int srcAccessTech, in int targetAccessTech);
111 
112     /**
113      * Notifies the TTY mode change by remote party.
114      * @param mode one of the following:
115      * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF}
116      * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL}
117      * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO}
118      * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO}
119      */
callSessionTtyModeReceived(in IImsCallSession session, in int mode)120     void callSessionTtyModeReceived(in IImsCallSession session, in int mode);
121 
122     /**
123      * Notifies of a change to the multiparty state for this {@code ImsCallSession}.
124      *
125      * @param session The call session.
126      * @param isMultiParty {@code true} if the session became multiparty, {@code false} otherwise.
127      */
callSessionMultipartyStateChanged(in IImsCallSession session, in boolean isMultiParty)128     void callSessionMultipartyStateChanged(in IImsCallSession session, in boolean isMultiParty);
129 
130     /**
131      * Notifies the supplementary service information for the current session.
132      */
callSessionSuppServiceReceived(in IImsCallSession session, in ImsSuppServiceNotification suppSrvNotification)133     void callSessionSuppServiceReceived(in IImsCallSession session,
134          in ImsSuppServiceNotification suppSrvNotification);
135 
136     /**
137      * Device received RTT modify request from Remote UE
138      * @param session ImsCallProfile with updated attribute
139      */
callSessionRttModifyRequestReceived(in IImsCallSession session, in ImsCallProfile callProfile)140     void callSessionRttModifyRequestReceived(in IImsCallSession session,
141             in ImsCallProfile callProfile);
142 
143     /* Device issued RTT modify request and inturn received response
144      * from Remote UE
145      * @param status Will be one of the following values from:
146      * - {@link Connection.RttModifyStatus}
147      */
callSessionRttModifyResponseReceived(in int status)148     void callSessionRttModifyResponseReceived(in int status);
149 
150     /*
151      * While in call, device received RTT message from Remote UE
152      * @param rttMessage Received RTT message
153      */
callSessionRttMessageReceived(in String rttMessage)154     void callSessionRttMessageReceived(in String rttMessage);
155 }
156