/* * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package android.telephony.ims.stub; import android.os.Message; import android.os.RemoteException; import com.android.ims.ImsCallProfile; import com.android.ims.ImsStreamMediaProfile; import com.android.ims.internal.ImsCallSession; import com.android.ims.internal.IImsCallSession; import com.android.ims.internal.IImsCallSessionListener; import com.android.ims.internal.IImsVideoCallProvider; /** * Base implementation of IImsCallSession, which implements stub versions of the methods in the * IImsCallSession AIDL. Override the methods that your implementation of ImsCallSession supports. * * DO NOT remove or change the existing APIs, only add new ones to this Base implementation or you * will break other implementations of ImsCallSession maintained by other ImsServices. * * @hide */ public class ImsCallSessionImplBase extends IImsCallSession.Stub { /** * Closes the object. This object is not usable after being closed. */ @Override public void close() throws RemoteException { } /** * Gets the call ID of the session. * * @return the call ID */ @Override public String getCallId() throws RemoteException { return null; } /** * Gets the call profile that this session is associated with * * @return the {@link ImsCallProfile} that this session is associated with */ @Override public ImsCallProfile getCallProfile() throws RemoteException { return null; } /** * Gets the local call profile that this session is associated with * * @return the local {@link ImsCallProfile} that this session is associated with */ @Override public ImsCallProfile getLocalCallProfile() throws RemoteException { return null; } /** * Gets the remote call profile that this session is associated with * * @return the remote {@link ImsCallProfile} that this session is associated with */ @Override public ImsCallProfile getRemoteCallProfile() throws RemoteException { return null; } /** * Gets the value associated with the specified property of this session. * * @return the string value associated with the specified property */ @Override public String getProperty(String name) throws RemoteException { return null; } /** * Gets the session state. * The value returned must be one of the states in {@link ImsCallSession.State}. * * @return the session state */ @Override public int getState() throws RemoteException { return ImsCallSession.State.INVALID; } /** * Checks if the session is in call. * * @return true if the session is in call, false otherwise */ @Override public boolean isInCall() throws RemoteException { return false; } /** * Sets the listener to listen to the session events. An {@link ImsCallSession} * can only hold one listener at a time. Subsequent calls to this method * override the previous listener. * * @param listener to listen to the session events of this object */ @Override public void setListener(IImsCallSessionListener listener) throws RemoteException { } /** * Mutes or unmutes the mic for the active call. * * @param muted true if the call is muted, false otherwise */ @Override public void setMute(boolean muted) throws RemoteException { } /** * Initiates an IMS call with the specified target and call profile. * The session listener set in {@link #setListener} is called back upon defined session events. * The method is only valid to call when the session state is in * {@link ImsCallSession.State#IDLE}. * * @param callee dialed string to make the call to * @param profile call profile to make the call with the specified service type, * call type and media information * @see {@link ImsCallSession.Listener#callSessionStarted}, * {@link ImsCallSession.Listener#callSessionStartFailed} */ @Override public void start(String callee, ImsCallProfile profile) throws RemoteException { } /** * Initiates an IMS call with the specified participants and call profile. * The session listener set in {@link #setListener} is called back upon defined session events. * The method is only valid to call when the session state is in * {@link ImsCallSession.State#IDLE}. * * @param participants participant list to initiate an IMS conference call * @param profile call profile to make the call with the specified service type, * call type and media information * @see {@link ImsCallSession.Listener#callSessionStarted}, * {@link ImsCallSession.Listener#callSessionStartFailed} */ @Override public void startConference(String[] participants, ImsCallProfile profile) throws RemoteException { } /** * Accepts an incoming call or session update. * * @param callType call type specified in {@link ImsCallProfile} to be answered * @param profile stream media profile {@link ImsStreamMediaProfile} to be answered * @see {@link ImsCallSession.Listener#callSessionStarted} */ @Override public void accept(int callType, ImsStreamMediaProfile profile) throws RemoteException { } /** * Rejects an incoming call or session update. * * @param reason reason code to reject an incoming call, defined in * com.android.ims.ImsReasonInfo * {@link ImsCallSession.Listener#callSessionStartFailed} */ @Override public void reject(int reason) throws RemoteException { } /** * Terminates a call. * * @param reason reason code to terminate a call, defined in * com.android.ims.ImsReasonInfo * * @see {@link ImsCallSession.Listener#callSessionTerminated} */ @Override public void terminate(int reason) throws RemoteException { } /** * Puts a call on hold. When it succeeds, {@link ImsCallSession.Listener#callSessionHeld} is * called. * * @param profile stream media profile {@link ImsStreamMediaProfile} to hold the call * @see {@link ImsCallSession.Listener#callSessionHeld}, * {@link ImsCallSession.Listener#callSessionHoldFailed} */ @Override public void hold(ImsStreamMediaProfile profile) throws RemoteException { } /** * Continues a call that's on hold. When it succeeds, * {@link ImsCallSession.Listener#callSessionResumed} is called. * * @param profile stream media profile with {@link ImsStreamMediaProfile} to resume the call * @see {@link ImsCallSession.Listener#callSessionResumed}, * {@link ImsCallSession.Listener#callSessionResumeFailed} */ @Override public void resume(ImsStreamMediaProfile profile) throws RemoteException { } /** * Merges the active & hold call. When the merge starts, * {@link ImsCallSession.Listener#callSessionMergeStarted} is called. * {@link ImsCallSession.Listener#callSessionMergeComplete} is called if the merge is * successful, and {@link ImsCallSession.Listener#callSessionMergeFailed} is called if the merge * fails. * * @see {@link ImsCallSession.Listener#callSessionMergeStarted}, * {@link ImsCallSession.Listener#callSessionMergeComplete}, * {@link ImsCallSession.Listener#callSessionMergeFailed} */ @Override public void merge() throws RemoteException { } /** * Updates the current call's properties (ex. call mode change: video upgrade / downgrade). * * @param callType call type specified in {@link ImsCallProfile} to be updated * @param profile stream media profile {@link ImsStreamMediaProfile} to be updated * @see {@link ImsCallSession.Listener#callSessionUpdated}, * {@link ImsCallSession.Listener#callSessionUpdateFailed} */ @Override public void update(int callType, ImsStreamMediaProfile profile) throws RemoteException { } /** * Extends this call to the conference call with the specified recipients. * * @param participants participant list to be invited to the conference call after extending the * call * @see {@link ImsCallSession.Listener#callSessionConferenceExtended}, * {@link ImsCallSession.Listener#callSessionConferenceExtendFailed} */ @Override public void extendToConference(String[] participants) throws RemoteException { } /** * Requests the conference server to invite an additional participants to the conference. * * @param participants participant list to be invited to the conference call * @see {@link ImsCallSession.Listener#callSessionInviteParticipantsRequestDelivered}, * {@link ImsCallSession.Listener#callSessionInviteParticipantsRequestFailed} */ @Override public void inviteParticipants(String[] participants) throws RemoteException { } /** * Requests the conference server to remove the specified participants from the conference. * * @param participants participant list to be removed from the conference call * @see {@link ImsCallSession.Listener#callSessionRemoveParticipantsRequestDelivered}, * {@link ImsCallSession.Listener#callSessionRemoveParticipantsRequestFailed} */ @Override public void removeParticipants(String[] participants) throws RemoteException { } /** * Sends a DTMF code. According to RFC 2833, * event 0 ~ 9 maps to decimal value 0 ~ 9, '*' to 10, '#' to 11, event 'A' ~ 'D' to 12 ~ 15, * and event flash to 16. Currently, event flash is not supported. * * @param c the DTMF to send. '0' ~ '9', 'A' ~ 'D', '*', '#' are valid inputs. */ @Override public void sendDtmf(char c, Message result) throws RemoteException { } /** * Start a DTMF code. According to RFC 2833, * event 0 ~ 9 maps to decimal value 0 ~ 9, '*' to 10, '#' to 11, event 'A' ~ 'D' to 12 ~ 15, * and event flash to 16. Currently, event flash is not supported. * * @param c the DTMF to send. '0' ~ '9', 'A' ~ 'D', '*', '#' are valid inputs. */ @Override public void startDtmf(char c) throws RemoteException { } /** * Stop a DTMF code. */ @Override public void stopDtmf() throws RemoteException { } /** * Sends an USSD message. * * @param ussdMessage USSD message to send */ @Override public void sendUssd(String ussdMessage) throws RemoteException { } /** * Returns a binder for the video call provider implementation contained within the IMS service * process. This binder is used by the VideoCallProvider subclass in Telephony which * intermediates between the propriety implementation and Telecomm/InCall. */ @Override public IImsVideoCallProvider getVideoCallProvider() throws RemoteException { return null; } /** * Determines if the current session is multiparty. * @return {@code True} if the session is multiparty. */ @Override public boolean isMultiparty() throws RemoteException { return false; } }