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