1f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville/* 2f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Copyright (c) 2013 The Android Open Source Project 3f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 4f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 5f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * you may not use this file except in compliance with the License. 6f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * You may obtain a copy of the License at 7f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 8f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 9f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 10f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Unless required by applicable law or agreed to in writing, software 11f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 12f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * See the License for the specific language governing permissions and 14f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * limitations under the License. 15f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 16f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 17f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savillepackage com.android.ims.internal; 18f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 19f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleimport com.android.ims.ImsStreamMediaProfile; 20f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleimport com.android.ims.ImsCallProfile; 21f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleimport com.android.ims.ImsReasonInfo; 22f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleimport com.android.ims.ImsConferenceState; 23f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleimport com.android.ims.internal.IImsCallSession; 24ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganeshimport com.android.ims.ImsSuppServiceNotification; 25f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 26f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville/** 27f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * A listener type for receiving notification on IMS call session events. 28f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * When an event is generated for an {@link IImsCallSession}, the application is notified 29f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * by having one of the methods called on the {@link IImsCallSessionListener}. 30f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * {@hide} 31f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 32f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleinterface IImsCallSessionListener { 33f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 34f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the result of the basic session operation (setup / terminate). 35f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 36f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionProgressing(in IImsCallSession session, in ImsStreamMediaProfile profile); 37f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionStarted(in IImsCallSession session, in ImsCallProfile profile); 38f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionStartFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo); 39f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionTerminated(in IImsCallSession session, in ImsReasonInfo reasonInfo); 40f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 41f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 42f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the result of the call hold/resume operation. 43f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 44f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionHeld(in IImsCallSession session, in ImsCallProfile profile); 45f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionHoldFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo); 46f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionHoldReceived(in IImsCallSession session, in ImsCallProfile profile); 47f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionResumed(in IImsCallSession session, in ImsCallProfile profile); 48f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionResumeFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo); 49f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionResumeReceived(in IImsCallSession session, in ImsCallProfile profile); 50f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 51f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 52f764e8075775f84df0c5c51a529548ba64707517Tyler Gunn * Notifies the result of call merge operation. 53f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 54f764e8075775f84df0c5c51a529548ba64707517Tyler Gunn void callSessionMergeStarted(in IImsCallSession session, 55f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in IImsCallSession newSession, in ImsCallProfile profile); 56f764e8075775f84df0c5c51a529548ba64707517Tyler Gunn void callSessionMergeComplete(in IImsCallSession session); 57f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionMergeFailed(in IImsCallSession session, 58f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsReasonInfo reasonInfo); 59f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 60f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 61f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the result of call upgrade / downgrade or any other call updates. 62f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 63f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionUpdated(in IImsCallSession session, 64f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsCallProfile profile); 65f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionUpdateFailed(in IImsCallSession session, 66f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsReasonInfo reasonInfo); 67f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionUpdateReceived(in IImsCallSession session, 68f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsCallProfile profile); 69f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 70f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 71f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the result of conference extension. 72f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 73f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionConferenceExtended(in IImsCallSession session, 74f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in IImsCallSession newSession, in ImsCallProfile profile); 75f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionConferenceExtendFailed(in IImsCallSession session, 76f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsReasonInfo reasonInfo); 77f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionConferenceExtendReceived(in IImsCallSession session, 78f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in IImsCallSession newSession, in ImsCallProfile profile); 79f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 80f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 81f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the result of the participant invitation / removal to/from the conference session. 82f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 83f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionInviteParticipantsRequestDelivered(in IImsCallSession session); 84f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionInviteParticipantsRequestFailed(in IImsCallSession session, 85f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsReasonInfo reasonInfo); 86f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionRemoveParticipantsRequestDelivered(in IImsCallSession session); 87f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionRemoveParticipantsRequestFailed(in IImsCallSession session, 88f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsReasonInfo reasonInfo); 89f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 90f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 91f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the changes of the conference info. in the conference session. 92f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 93f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionConferenceStateUpdated(in IImsCallSession session, 94f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsConferenceState state); 95f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 96f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 97f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the incoming USSD message. 98f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 99f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionUssdMessageReceived(in IImsCallSession session, 100f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville int mode, String ussdMessage); 101af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh 102af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh /** 103af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh * Notifies of handover information for this call 104af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh */ 105af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh void callSessionHandover(in IImsCallSession session, 106af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo); 107af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh void callSessionHandoverFailed(in IImsCallSession session, 108af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo); 10969f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh 11069f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh /** 11169f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * Notifies the TTY mode change by remote party. 11269f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * @param mode one of the following: 11369f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF} 11469f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL} 11569f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO} 11669f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO} 11769f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh */ 11869f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh void callSessionTtyModeReceived(in IImsCallSession session, in int mode); 1196b91ebf58c928987ead635bb1c49a16965d4c835Tyler Gunn 1206b91ebf58c928987ead635bb1c49a16965d4c835Tyler Gunn /** 1216b91ebf58c928987ead635bb1c49a16965d4c835Tyler Gunn * Notifies of a change to the multiparty state for this {@code ImsCallSession}. 1226b91ebf58c928987ead635bb1c49a16965d4c835Tyler Gunn * 1236b91ebf58c928987ead635bb1c49a16965d4c835Tyler Gunn * @param session The call session. 1246b91ebf58c928987ead635bb1c49a16965d4c835Tyler Gunn * @param isMultiParty {@code true} if the session became multiparty, {@code false} otherwise. 1256b91ebf58c928987ead635bb1c49a16965d4c835Tyler Gunn */ 1266b91ebf58c928987ead635bb1c49a16965d4c835Tyler Gunn void callSessionMultipartyStateChanged(in IImsCallSession session, in boolean isMultiParty); 127ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh 128ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh /** 129ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh * Notifies the supplementary service information for the current session. 130ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh */ 131ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh void callSessionSuppServiceReceived(in IImsCallSession session, 132ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh in ImsSuppServiceNotification suppSrvNotification); 133f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville} 134