121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger/* 221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Copyright (C) 2017 The Android Open Source Project 321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Licensed under the Apache License, Version 2.0 (the "License"); 521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * you may not use this file except in compliance with the License. 621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * You may obtain a copy of the License at 721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * http://www.apache.org/licenses/LICENSE-2.0 921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 1021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Unless required by applicable law or agreed to in writing, software 1121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * distributed under the License is distributed on an "AS IS" BASIS, 1221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * See the License for the specific language governing permissions and 1421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * limitations under the License 1521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 1621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 1721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebingerpackage android.telephony.ims.stub; 1821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 1921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebingerimport android.os.Message; 2021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebingerimport android.os.RemoteException; 2121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 2221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebingerimport com.android.ims.ImsCallProfile; 2321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebingerimport com.android.ims.ImsStreamMediaProfile; 2421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebingerimport com.android.ims.internal.ImsCallSession; 2521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebingerimport com.android.ims.internal.IImsCallSession; 2621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebingerimport com.android.ims.internal.IImsCallSessionListener; 2721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebingerimport com.android.ims.internal.IImsVideoCallProvider; 2821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 2921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger/** 3021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Base implementation of IImsCallSession, which implements stub versions of the methods in the 3121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * IImsCallSession AIDL. Override the methods that your implementation of ImsCallSession supports. 3221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 3321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * DO NOT remove or change the existing APIs, only add new ones to this Base implementation or you 3421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * will break other implementations of ImsCallSession maintained by other ImsServices. 3521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 3621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @hide 3721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 3821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 3921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebingerpublic class ImsCallSessionImplBase extends IImsCallSession.Stub { 4021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 4121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 4221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Closes the object. This object is not usable after being closed. 4321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 4421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 4521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void close() throws RemoteException { 4621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 4721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 4821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 4921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 5021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Gets the call ID of the session. 5121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 5221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @return the call ID 5321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 5421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 5521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public String getCallId() throws RemoteException { 5621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger return null; 5721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 5821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 5921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 6021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Gets the call profile that this session is associated with 6121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 6221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @return the {@link ImsCallProfile} that this session is associated with 6321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 6421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 6521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public ImsCallProfile getCallProfile() throws RemoteException { 6621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger return null; 6721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 6821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 6921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 7021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Gets the local call profile that this session is associated with 7121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 7221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @return the local {@link ImsCallProfile} that this session is associated with 7321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 7421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 7521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public ImsCallProfile getLocalCallProfile() throws RemoteException { 7621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger return null; 7721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 7821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 7921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 8021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Gets the remote call profile that this session is associated with 8121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 8221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @return the remote {@link ImsCallProfile} that this session is associated with 8321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 8421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 8521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public ImsCallProfile getRemoteCallProfile() throws RemoteException { 8621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger return null; 8721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 8821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 8921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 9021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Gets the value associated with the specified property of this session. 9121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 9221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @return the string value associated with the specified property 9321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 9421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 9521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public String getProperty(String name) throws RemoteException { 9621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger return null; 9721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 9821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 9921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 10021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Gets the session state. 10121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * The value returned must be one of the states in {@link ImsCallSession.State}. 10221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 10321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @return the session state 10421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 10521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 10621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public int getState() throws RemoteException { 10721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger return ImsCallSession.State.INVALID; 10821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 10921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 11021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 11121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Checks if the session is in call. 11221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 11321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @return true if the session is in call, false otherwise 11421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 11521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 11621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public boolean isInCall() throws RemoteException { 11721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger return false; 11821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 11921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 12021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 12121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Sets the listener to listen to the session events. An {@link ImsCallSession} 12221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * can only hold one listener at a time. Subsequent calls to this method 12321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * override the previous listener. 12421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 12521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param listener to listen to the session events of this object 12621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 12721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 12821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void setListener(IImsCallSessionListener listener) throws RemoteException { 12921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 13021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 13121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 13221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Mutes or unmutes the mic for the active call. 13321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 13421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param muted true if the call is muted, false otherwise 13521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 13621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 13721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void setMute(boolean muted) throws RemoteException { 13821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 13921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 14021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 14121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Initiates an IMS call with the specified target and call profile. 14221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * The session listener set in {@link #setListener} is called back upon defined session events. 14321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * The method is only valid to call when the session state is in 14421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.State#IDLE}. 14521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 14621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param callee dialed string to make the call to 14721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param profile call profile to make the call with the specified service type, 14821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * call type and media information 14921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @see {@link ImsCallSession.Listener#callSessionStarted}, 15021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionStartFailed} 15121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 15221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 15321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void start(String callee, ImsCallProfile profile) throws RemoteException { 15421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 15521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 15621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 15721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Initiates an IMS call with the specified participants and call profile. 15821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * The session listener set in {@link #setListener} is called back upon defined session events. 15921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * The method is only valid to call when the session state is in 16021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.State#IDLE}. 16121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 16221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param participants participant list to initiate an IMS conference call 16321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param profile call profile to make the call with the specified service type, 16421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * call type and media information 16521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @see {@link ImsCallSession.Listener#callSessionStarted}, 16621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionStartFailed} 16721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 16821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 16921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void startConference(String[] participants, ImsCallProfile profile) 17021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger throws RemoteException { 17121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 17221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 17321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 17421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Accepts an incoming call or session update. 17521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 17621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param callType call type specified in {@link ImsCallProfile} to be answered 17721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param profile stream media profile {@link ImsStreamMediaProfile} to be answered 17821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @see {@link ImsCallSession.Listener#callSessionStarted} 17921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 18021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 18121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void accept(int callType, ImsStreamMediaProfile profile) throws RemoteException { 18221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 18321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 18421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 18521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Rejects an incoming call or session update. 18621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 18721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param reason reason code to reject an incoming call, defined in 18821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * com.android.ims.ImsReasonInfo 18921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionStartFailed} 19021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 19121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 19221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void reject(int reason) throws RemoteException { 19321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 19421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 19521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 19621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Terminates a call. 19721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 19821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param reason reason code to terminate a call, defined in 19921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * com.android.ims.ImsReasonInfo 20021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 20121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @see {@link ImsCallSession.Listener#callSessionTerminated} 20221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 20321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 20421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void terminate(int reason) throws RemoteException { 20521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 20621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 20721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 20821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Puts a call on hold. When it succeeds, {@link ImsCallSession.Listener#callSessionHeld} is 20921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * called. 21021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 21121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param profile stream media profile {@link ImsStreamMediaProfile} to hold the call 21221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @see {@link ImsCallSession.Listener#callSessionHeld}, 21321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionHoldFailed} 21421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 21521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 21621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void hold(ImsStreamMediaProfile profile) throws RemoteException { 21721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 21821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 21921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 22021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Continues a call that's on hold. When it succeeds, 22121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionResumed} is called. 22221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 22321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param profile stream media profile with {@link ImsStreamMediaProfile} to resume the call 22421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @see {@link ImsCallSession.Listener#callSessionResumed}, 22521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionResumeFailed} 22621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 22721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 22821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void resume(ImsStreamMediaProfile profile) throws RemoteException { 22921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 23021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 23121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 23221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Merges the active & hold call. When the merge starts, 23321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionMergeStarted} is called. 23421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionMergeComplete} is called if the merge is 23521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * successful, and {@link ImsCallSession.Listener#callSessionMergeFailed} is called if the merge 23621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * fails. 23721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 23821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @see {@link ImsCallSession.Listener#callSessionMergeStarted}, 23921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionMergeComplete}, 24021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionMergeFailed} 24121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 24221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 24321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void merge() throws RemoteException { 24421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 24521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 24621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 24721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Updates the current call's properties (ex. call mode change: video upgrade / downgrade). 24821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 24921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param callType call type specified in {@link ImsCallProfile} to be updated 25021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param profile stream media profile {@link ImsStreamMediaProfile} to be updated 25121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @see {@link ImsCallSession.Listener#callSessionUpdated}, 25221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionUpdateFailed} 25321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 25421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 25521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void update(int callType, ImsStreamMediaProfile profile) throws RemoteException { 25621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 25721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 25821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 25921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Extends this call to the conference call with the specified recipients. 26021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 26121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param participants participant list to be invited to the conference call after extending the 26221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * call 26321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @see {@link ImsCallSession.Listener#callSessionConferenceExtended}, 26421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionConferenceExtendFailed} 26521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 26621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 26721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void extendToConference(String[] participants) throws RemoteException { 26821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 26921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 27021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 27121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Requests the conference server to invite an additional participants to the conference. 27221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 27321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param participants participant list to be invited to the conference call 27421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @see {@link ImsCallSession.Listener#callSessionInviteParticipantsRequestDelivered}, 27521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionInviteParticipantsRequestFailed} 27621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 27721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 27821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void inviteParticipants(String[] participants) throws RemoteException { 27921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 28021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 28121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 28221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Requests the conference server to remove the specified participants from the conference. 28321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 28421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param participants participant list to be removed from the conference call 28521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @see {@link ImsCallSession.Listener#callSessionRemoveParticipantsRequestDelivered}, 28621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * {@link ImsCallSession.Listener#callSessionRemoveParticipantsRequestFailed} 28721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 28821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 28921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void removeParticipants(String[] participants) throws RemoteException { 29021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 29121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 29221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 29321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Sends a DTMF code. According to <a href="http://tools.ietf.org/html/rfc2833">RFC 2833</a>, 29421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * event 0 ~ 9 maps to decimal value 0 ~ 9, '*' to 10, '#' to 11, event 'A' ~ 'D' to 12 ~ 15, 29521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * and event flash to 16. Currently, event flash is not supported. 29621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 29721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param c the DTMF to send. '0' ~ '9', 'A' ~ 'D', '*', '#' are valid inputs. 29821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 29921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 30021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void sendDtmf(char c, Message result) throws RemoteException { 30121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 30221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 30321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 30421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Start a DTMF code. According to <a href="http://tools.ietf.org/html/rfc2833">RFC 2833</a>, 30521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * event 0 ~ 9 maps to decimal value 0 ~ 9, '*' to 10, '#' to 11, event 'A' ~ 'D' to 12 ~ 15, 30621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * and event flash to 16. Currently, event flash is not supported. 30721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 30821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param c the DTMF to send. '0' ~ '9', 'A' ~ 'D', '*', '#' are valid inputs. 30921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 31021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 31121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void startDtmf(char c) throws RemoteException { 31221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 31321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 31421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 31521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Stop a DTMF code. 31621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 31721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 31821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void stopDtmf() throws RemoteException { 31921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 32021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 32121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 32221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Sends an USSD message. 32321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * 32421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @param ussdMessage USSD message to send 32521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 32621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 32721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public void sendUssd(String ussdMessage) throws RemoteException { 32821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 32921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 33021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 33121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Returns a binder for the video call provider implementation contained within the IMS service 33221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * process. This binder is used by the VideoCallProvider subclass in Telephony which 33321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * intermediates between the propriety implementation and Telecomm/InCall. 33421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 33521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 33621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public IImsVideoCallProvider getVideoCallProvider() throws RemoteException { 33721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger return null; 33821013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 33921013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger 34021013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger /** 34121013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * Determines if the current session is multiparty. 34221013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger * @return {@code True} if the session is multiparty. 34321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger */ 34421013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger @Override 34521013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger public boolean isMultiparty() throws RemoteException { 34621013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger return false; 34721013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger } 3487e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati 3497e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati /** 3507e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati * Device issues RTT modify request 3517e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati * @param toProfile The profile with requested changes made 3527e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati */ 3537e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati @Override 3547e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati public void sendRttModifyRequest(ImsCallProfile toProfile) { 3557e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati } 3567e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati 3577e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati /** 3587e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati * Device responds to Remote RTT modify request 3597e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati * @param status true Accepted the request 3607e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati * false Declined the request 3617e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati */ 3627e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati @Override 3637e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati public void sendRttModifyResponse(boolean status) { 3647e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati } 3657e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati 3667e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati /** 3677e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati * Device sends RTT message 3687e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati * @param rttMessage RTT message to be sent 3697e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati */ 3707e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati @Override 3717e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati public void sendRttMessage(String rttMessage) { 3727e177da50c30b9ae56db29f373ea01ab68bfdcecAnju Mathapati } 37321013dcf1b1c0c740efba863b6b4962fe3da9095Brad Ebinger} 374