IImsCallSession.aidl revision 752217bfc662402cdf13368e4b2a0338e8e0aed8
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.ImsCallProfile; 20f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleimport com.android.ims.ImsStreamMediaProfile; 21f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleimport com.android.ims.internal.IImsCallSessionListener; 22752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Leeimport com.android.ims.internal.IImsVideoCallProvider; 23f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 24f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville/** 25f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * An IMS session that is associated with a SIP dialog which is established from/to 26f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * INVITE request or a mid-call transaction to control the session. 27f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * {@hide} 28f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 29f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleinterface IImsCallSession { 30f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 31f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Closes the object. This object is not usable after being closed. 32f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 33f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void close(); 34f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 35f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 36f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Gets the call ID of the session. 37f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 38f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @return the call ID 39f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 40f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville String getCallId(); 41f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 42f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 43f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Gets the call profile that this session is associated with 44f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 45f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @return the call profile that this session is associated with 46f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 47f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville ImsCallProfile getCallProfile(); 48f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 49f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 50f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Gets the local call profile that this session is associated with 51f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 52f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @return the local call profile that this session is associated with 53f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 54f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville ImsCallProfile getLocalCallProfile(); 55f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 56f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 57f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Gets the value associated with the specified property of this session. 58f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 59f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @return the string value associated with the specified property 60f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 61f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville String getProperty(String name); 62f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 63f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 64f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Gets the session state. The value returned must be one of the states in 65f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * {@link ImsCallSession#State}. 66f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 67f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @return the session state 68f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 69f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville int getState(); 70f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 71f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 72f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Checks if the session is in a call. 73f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 74f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @return true if the session is in a call 75f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 76f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville boolean isInCall(); 77f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 78f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 79f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Sets the listener to listen to the session events. A {@link IImsCallSession} 80f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * can only hold one listener at a time. Subsequent calls to this method 81f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * override the previous listener. 82f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 83f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param listener to listen to the session events of this object 84f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 85f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void setListener(in IImsCallSessionListener listener); 86f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 87f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 88f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Mutes or unmutes the mic for the active call. 89f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 90f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param muted true if the call is muted, false otherwise 91f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 92f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void setMute(boolean muted); 93f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 94f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 95f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Initiates an IMS call with the specified target and call profile. 96f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * The session listener is called back upon defined session events. 97f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * The method is only valid to call when the session state is in 98f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * {@link ImsCallSession#State#IDLE}. 99f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 100f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param callee dialed string to make the call to 101f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param profile call profile to make the call with the specified service type, 102f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * call type and media information 103f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#callSessionStarted, Listener#callSessionStartFailed 104f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 105f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void start(String callee, in ImsCallProfile profile); 106f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 107f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 108f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Initiates an IMS call with the specified participants and call profile. 109f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * The session listener is called back upon defined session events. 110f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * The method is only valid to call when the session state is in 111f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * {@link ImsCallSession#State#IDLE}. 112f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 113f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param participants participant list to initiate an IMS conference call 114f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param profile call profile to make the call with the specified service type, 115f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * call type and media information 116f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#callSessionStarted, Listener#callSessionStartFailed 117f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 118f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void startConference(in String[] participants, in ImsCallProfile profile); 119f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 120f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 121f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Accepts an incoming call or session update. 122f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 123f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param callType call type specified in {@link ImsCallProfile} to be answered 124f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param profile stream media profile {@link ImsStreamMediaProfile} to be answered 125f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#callSessionStarted 126f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 127f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void accept(int callType, in ImsStreamMediaProfile profile); 128f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 129f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 130f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Rejects an incoming call or session update. 131f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 132f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param reason reason code to reject an incoming call 133f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#callSessionStartFailed 134f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 135f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void reject(int reason); 136f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 137f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 138f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Terminates a call. 139f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 140f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#callSessionTerminated 141f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 142f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void terminate(int reason); 143f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 144f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 145f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Puts a call on hold. When it succeeds, {@link Listener#callSessionHeld} is called. 146f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 147f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param profile stream media profile {@link ImsStreamMediaProfile} to hold the call 148f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#callSessionHeld, Listener#callSessionHoldFailed 149f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 150f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void hold(in ImsStreamMediaProfile profile); 151f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 152f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 153f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Continues a call that's on hold. When it succeeds, {@link Listener#callSessionResumed} 154f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * is called. 155f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 156f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param profile stream media profile {@link ImsStreamMediaProfile} to resume the call 157f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#callSessionResumed, Listener#callSessionResumeFailed 158f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 159f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void resume(in ImsStreamMediaProfile profile); 160f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 161f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 162f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Merges the active & hold call. When it succeeds, {@link Listener#callSessionMerged} 163f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * is called. 164f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 165f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#callSessionMerged, Listener#callSessionMergeFailed 166f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 167f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void merge(); 168f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 169f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 170f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Updates the current call's properties (ex. call mode change: video upgrade / downgrade). 171f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 172f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param callType call type specified in {@link ImsCallProfile} to be updated 173f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param profile stream media profile {@link ImsStreamMediaProfile} to be updated 174f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#callSessionUpdated, Listener#callSessionUpdateFailed 175f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 176f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void update(int callType, in ImsStreamMediaProfile profile); 177f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 178f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 179f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Extends this call to the conference call with the specified recipients. 180f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 1810a493e87224e4b337a89d9fbaaa604d7a8c5bd5fWink Saville * @param participants participant list to be invited to the conference call after extending the call 182f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#sessionConferenceExtened, Listener#sessionConferenceExtendFailed 183f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 184f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void extendToConference(in String[] participants); 185f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 186f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 187f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Requests the conference server to invite an additional participants to the conference. 188f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 1890a493e87224e4b337a89d9fbaaa604d7a8c5bd5fWink Saville * @param participants participant list to be invited to the conference call 190f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#sessionInviteParticipantsRequestDelivered, 191f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Listener#sessionInviteParticipantsRequestFailed 192f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 193f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void inviteParticipants(in String[] participants); 194f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 195f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 196f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Requests the conference server to remove the specified participants from the conference. 197f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 198f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param participants participant list to be removed from the conference call 199f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @see Listener#sessionRemoveParticipantsRequestDelivered, 200f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Listener#sessionRemoveParticipantsRequestFailed 201f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 202f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void removeParticipants(in String[] participants); 203f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 204f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 205f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Sends a DTMF code. According to <a href="http://tools.ietf.org/html/rfc2833">RFC 2833</a>, 206f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * event 0 ~ 9 maps to decimal value 0 ~ 9, '*' to 10, '#' to 11, event 'A' ~ 'D' to 12 ~ 15, 207f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * and event flash to 16. Currently, event flash is not supported. 208f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 209f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param code the DTMF to send. Value 0 to 15 (inclusive) are valid inputs. 210f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param duration the interval in milli-seconds between the DTMFs 211f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 212f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void sendDtmf(int code, int duration); 213f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville 214f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville /** 215f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Sends an USSD message. 216f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * 217f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @param ussdMessage USSD message to send 218f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */ 219f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville void sendUssd(String ussdMessage); 220752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee 221752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee /** 222752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * Returns a binder for the video call provider implementation contained within the IMS service 223752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * process. This binder is used by the VideoCallProvider subclass in Telephony which 224752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee * intermediates between the propriety implementation and Telecomm/InCall. 225752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee */ 226752217bfc662402cdf13368e4b2a0338e8e0aed8Andrew Lee IImsVideoCallProvider getVideoCallProvider(); 227f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville} 228