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; 24f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 25f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville/** 26f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * A listener type for receiving notification on IMS call session events. 27f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * When an event is generated for an {@link IImsCallSession}, the application is notified 28f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * by having one of the methods called on the {@link IImsCallSessionListener}. 29f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * {@hide} 30f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 31f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleinterface IImsCallSessionListener { 32f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 33f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the result of the basic session operation (setup / terminate). 34f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 35f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionProgressing(in IImsCallSession session, in ImsStreamMediaProfile profile); 36f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionStarted(in IImsCallSession session, in ImsCallProfile profile); 37f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionStartFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo); 38f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionTerminated(in IImsCallSession session, in ImsReasonInfo reasonInfo); 39f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 40f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 41f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the result of the call hold/resume operation. 42f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 43f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionHeld(in IImsCallSession session, in ImsCallProfile profile); 44f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionHoldFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo); 45f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionHoldReceived(in IImsCallSession session, in ImsCallProfile profile); 46f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionResumed(in IImsCallSession session, in ImsCallProfile profile); 47f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionResumeFailed(in IImsCallSession session, in ImsReasonInfo reasonInfo); 48f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionResumeReceived(in IImsCallSession session, in ImsCallProfile profile); 49f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 50f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 51f764e8075775f84df0c5c51a529548ba64707517Tyler Gunn * Notifies the result of call merge operation. 52f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 53f764e8075775f84df0c5c51a529548ba64707517Tyler Gunn void callSessionMergeStarted(in IImsCallSession session, 54f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in IImsCallSession newSession, in ImsCallProfile profile); 55f764e8075775f84df0c5c51a529548ba64707517Tyler Gunn void callSessionMergeComplete(in IImsCallSession session); 56f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionMergeFailed(in IImsCallSession session, 57f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsReasonInfo reasonInfo); 58f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 59f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 60f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the result of call upgrade / downgrade or any other call updates. 61f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 62f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionUpdated(in IImsCallSession session, 63f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsCallProfile profile); 64f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionUpdateFailed(in IImsCallSession session, 65f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsReasonInfo reasonInfo); 66f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionUpdateReceived(in IImsCallSession session, 67f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsCallProfile profile); 68f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 69f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 70f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the result of conference extension. 71f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 72f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionConferenceExtended(in IImsCallSession session, 73f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in IImsCallSession newSession, in ImsCallProfile profile); 74f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionConferenceExtendFailed(in IImsCallSession session, 75f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsReasonInfo reasonInfo); 76f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionConferenceExtendReceived(in IImsCallSession session, 77f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in IImsCallSession newSession, in ImsCallProfile profile); 78f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 79f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 80f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the result of the participant invitation / removal to/from the conference session. 81f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 82f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionInviteParticipantsRequestDelivered(in IImsCallSession session); 83f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionInviteParticipantsRequestFailed(in IImsCallSession session, 84f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsReasonInfo reasonInfo); 85f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionRemoveParticipantsRequestDelivered(in IImsCallSession session); 86f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionRemoveParticipantsRequestFailed(in IImsCallSession session, 87f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsReasonInfo reasonInfo); 88f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 89f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 90f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the changes of the conference info. in the conference session. 91f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 92f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionConferenceStateUpdated(in IImsCallSession session, 93f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville in ImsConferenceState state); 94f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 95f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 96f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Notifies the incoming USSD message. 97f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 98f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void callSessionUssdMessageReceived(in IImsCallSession session, 99f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville int mode, String ussdMessage); 100af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh 101af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh /** 102af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh * Notifies of handover information for this call 103af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh */ 104af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh void callSessionHandover(in IImsCallSession session, 105af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo); 106af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh void callSessionHandoverFailed(in IImsCallSession session, 107af9a696b20d6ede46215dbb479b66592afebab94Shriram Ganesh in int srcAccessTech, in int targetAccessTech, in ImsReasonInfo reasonInfo); 10869f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh 10969f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh /** 11069f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * Notifies the TTY mode change by remote party. 11169f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * @param mode one of the following: 11269f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF} 11369f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL} 11469f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO} 11569f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO} 11669f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh */ 11769f35c8e1bc5b7bd087907d7d88a5de4cf57ba42Shriram Ganesh void callSessionTtyModeReceived(in IImsCallSession session, in int mode); 118f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville} 119