Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit def23576 authored by Brad Ebinger's avatar Brad Ebinger Committed by Android (Google) Code Review
Browse files

Merge "Modify ConnectionServiceAdapter to include Session" into stage-aosp-master

parents f41abccf 4d75bee9
Loading
Loading
Loading
Loading
+36 −31
Original line number Diff line number Diff line
@@ -93,7 +93,8 @@ final class ConnectionServiceAdapter implements DeathRecipient {
            ParcelableConnection connection) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.handleCreateConnectionComplete(id, request, connection);
                adapter.handleCreateConnectionComplete(id, request, connection,
                        Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -108,7 +109,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setActive(String callId) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setActive(callId);
                adapter.setActive(callId, Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -122,7 +123,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setRinging(String callId) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setRinging(callId);
                adapter.setRinging(callId, Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -136,7 +137,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setDialing(String callId) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setDialing(callId);
                adapter.setDialing(callId, Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -151,7 +152,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setPulling(String callId) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setPulling(callId);
                adapter.setPulling(callId, Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -167,7 +168,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setDisconnected(String callId, DisconnectCause disconnectCause) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setDisconnected(callId, disconnectCause);
                adapter.setDisconnected(callId, disconnectCause, Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -181,7 +182,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setOnHold(String callId) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setOnHold(callId);
                adapter.setOnHold(callId, Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -196,7 +197,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setRingbackRequested(String callId, boolean ringback) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setRingbackRequested(callId, ringback);
                adapter.setRingbackRequested(callId, ringback, Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -205,7 +206,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setConnectionCapabilities(String callId, int capabilities) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setConnectionCapabilities(callId, capabilities);
                adapter.setConnectionCapabilities(callId, capabilities, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -214,7 +215,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setConnectionProperties(String callId, int properties) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setConnectionProperties(callId, properties);
                adapter.setConnectionProperties(callId, properties, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -232,7 +233,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                Log.d(this, "sending connection %s with conference %s", callId, conferenceCallId);
                adapter.setIsConferenced(callId, conferenceCallId);
                adapter.setIsConferenced(callId, conferenceCallId, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -247,7 +248,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                Log.d(this, "merge failed for call %s", callId);
                adapter.setConferenceMergeFailed(callId);
                adapter.setConferenceMergeFailed(callId, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -262,7 +263,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void removeCall(String callId) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.removeCall(callId);
                adapter.removeCall(callId, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -271,7 +272,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void onPostDialWait(String callId, String remaining) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.onPostDialWait(callId, remaining);
                adapter.onPostDialWait(callId, remaining, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -280,7 +281,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void onPostDialChar(String callId, char nextChar) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.onPostDialChar(callId, nextChar);
                adapter.onPostDialChar(callId, nextChar, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -294,7 +295,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void addConferenceCall(String callId, ParcelableConference parcelableConference) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.addConferenceCall(callId, parcelableConference);
                adapter.addConferenceCall(callId, parcelableConference, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -307,7 +308,8 @@ final class ConnectionServiceAdapter implements DeathRecipient {
        // Only supported when there is only one adapter.
        if (mAdapters.size() == 1) {
            try {
                mAdapters.iterator().next().queryRemoteConnectionServices(callback);
                mAdapters.iterator().next().queryRemoteConnectionServices(callback,
                        Log.getExternalSession());
            } catch (RemoteException e) {
                Log.e(this, e, "Exception trying to query for remote CSs");
            }
@@ -326,7 +328,8 @@ final class ConnectionServiceAdapter implements DeathRecipient {
            try {
                adapter.setVideoProvider(
                        callId,
                        videoProvider == null ? null : videoProvider.getInterface());
                        videoProvider == null ? null : videoProvider.getInterface(),
                        Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -341,7 +344,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setIsVoipAudioMode(String callId, boolean isVoip) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setIsVoipAudioMode(callId, isVoip);
                adapter.setIsVoipAudioMode(callId, isVoip, Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -350,7 +353,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setStatusHints(String callId, StatusHints statusHints) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setStatusHints(callId, statusHints);
                adapter.setStatusHints(callId, statusHints, Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -359,7 +362,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setAddress(String callId, Uri address, int presentation) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setAddress(callId, address, presentation);
                adapter.setAddress(callId, address, presentation, Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -368,7 +371,8 @@ final class ConnectionServiceAdapter implements DeathRecipient {
    void setCallerDisplayName(String callId, String callerDisplayName, int presentation) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setCallerDisplayName(callId, callerDisplayName, presentation);
                adapter.setCallerDisplayName(callId, callerDisplayName, presentation,
                        Log.getExternalSession());
            } catch (RemoteException e) {
            }
        }
@@ -389,7 +393,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
        Log.v(this, "setVideoState: %d", videoState);
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setVideoState(callId, videoState);
                adapter.setVideoState(callId, videoState, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -399,7 +403,8 @@ final class ConnectionServiceAdapter implements DeathRecipient {
        Log.v(this, "setConferenceableConnections: %s, %s", callId, conferenceableCallIds);
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setConferenceableConnections(callId, conferenceableCallIds);
                adapter.setConferenceableConnections(callId, conferenceableCallIds,
                        Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -415,7 +420,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
        Log.v(this, "addExistingConnection: %s", callId);
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.addExistingConnection(callId, connection);
                adapter.addExistingConnection(callId, connection, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -431,7 +436,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
        Log.v(this, "putExtras: %s", callId);
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.putExtras(callId, extras);
                adapter.putExtras(callId, extras, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -450,7 +455,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
            try {
                Bundle bundle = new Bundle();
                bundle.putBoolean(key, value);
                adapter.putExtras(callId, bundle);
                adapter.putExtras(callId, bundle, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -469,7 +474,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
            try {
                Bundle bundle = new Bundle();
                bundle.putInt(key, value);
                adapter.putExtras(callId, bundle);
                adapter.putExtras(callId, bundle, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -488,7 +493,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
            try {
                Bundle bundle = new Bundle();
                bundle.putString(key, value);
                adapter.putExtras(callId, bundle);
                adapter.putExtras(callId, bundle, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -503,7 +508,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
        Log.v(this, "removeExtras: %s %s", callId, keys);
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.removeExtras(callId, keys);
                adapter.removeExtras(callId, keys, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
@@ -520,7 +525,7 @@ final class ConnectionServiceAdapter implements DeathRecipient {
        Log.v(this, "onConnectionEvent: %s", event);
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.onConnectionEvent(callId, event, extras);
                adapter.onConnectionEvent(callId, event, extras, Log.getExternalSession());
            } catch (RemoteException ignored) {
            }
        }
+98 −61

File changed.

Preview size limit exceeded, changes collapsed.

+41 −30
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.os.Bundle;
import android.os.IBinder;
import android.os.IBinder.DeathRecipient;
import android.os.RemoteException;
import android.telecom.Logging.Session;

import com.android.internal.telecom.IConnectionService;
import com.android.internal.telecom.IConnectionServiceAdapter;
@@ -54,7 +55,8 @@ final class RemoteConnectionService {
        public void handleCreateConnectionComplete(
                String id,
                ConnectionRequest request,
                ParcelableConnection parcel) {
                ParcelableConnection parcel,
                Session.Info info) {
            RemoteConnection connection =
                    findConnectionForAction(id, "handleCreateConnectionSuccessful");
            if (connection != NULL_CONNECTION && mPendingConnections.contains(connection)) {
@@ -95,7 +97,7 @@ final class RemoteConnectionService {
        }

        @Override
        public void setActive(String callId) {
        public void setActive(String callId, Session.Info sessionInfo) {
            if (mConnectionById.containsKey(callId)) {
                findConnectionForAction(callId, "setActive")
                        .setState(Connection.STATE_ACTIVE);
@@ -106,25 +108,26 @@ final class RemoteConnectionService {
        }

        @Override
        public void setRinging(String callId) {
        public void setRinging(String callId, Session.Info sessionInfo) {
            findConnectionForAction(callId, "setRinging")
                    .setState(Connection.STATE_RINGING);
        }

        @Override
        public void setDialing(String callId) {
        public void setDialing(String callId, Session.Info sessionInfo) {
            findConnectionForAction(callId, "setDialing")
                    .setState(Connection.STATE_DIALING);
        }

        @Override
        public void setPulling(String callId) {
        public void setPulling(String callId, Session.Info sessionInfo) {
            findConnectionForAction(callId, "setPulling")
                    .setState(Connection.STATE_PULLING_CALL);
        }

        @Override
        public void setDisconnected(String callId, DisconnectCause disconnectCause) {
        public void setDisconnected(String callId, DisconnectCause disconnectCause,
                Session.Info sessionInfo) {
            if (mConnectionById.containsKey(callId)) {
                findConnectionForAction(callId, "setDisconnected")
                        .setDisconnected(disconnectCause);
@@ -135,7 +138,7 @@ final class RemoteConnectionService {
        }

        @Override
        public void setOnHold(String callId) {
        public void setOnHold(String callId, Session.Info sessionInfo) {
            if (mConnectionById.containsKey(callId)) {
                findConnectionForAction(callId, "setOnHold")
                        .setState(Connection.STATE_HOLDING);
@@ -146,13 +149,14 @@ final class RemoteConnectionService {
        }

        @Override
        public void setRingbackRequested(String callId, boolean ringing) {
        public void setRingbackRequested(String callId, boolean ringing, Session.Info sessionInfo) {
            findConnectionForAction(callId, "setRingbackRequested")
                    .setRingbackRequested(ringing);
        }

        @Override
        public void setConnectionCapabilities(String callId, int connectionCapabilities) {
        public void setConnectionCapabilities(String callId, int connectionCapabilities,
                Session.Info sessionInfo) {
            if (mConnectionById.containsKey(callId)) {
                findConnectionForAction(callId, "setConnectionCapabilities")
                        .setConnectionCapabilities(connectionCapabilities);
@@ -163,7 +167,8 @@ final class RemoteConnectionService {
        }

        @Override
        public void setConnectionProperties(String callId, int connectionProperties) {
        public void setConnectionProperties(String callId, int connectionProperties,
                Session.Info sessionInfo) {
            if (mConnectionById.containsKey(callId)) {
                findConnectionForAction(callId, "setConnectionProperties")
                        .setConnectionProperties(connectionProperties);
@@ -174,7 +179,8 @@ final class RemoteConnectionService {
        }

        @Override
        public void setIsConferenced(String callId, String conferenceCallId) {
        public void setIsConferenced(String callId, String conferenceCallId,
                Session.Info sessionInfo) {
            // Note: callId should not be null; conferenceCallId may be null
            RemoteConnection connection =
                    findConnectionForAction(callId, "setIsConferenced");
@@ -195,7 +201,7 @@ final class RemoteConnectionService {
        }

        @Override
        public void setConferenceMergeFailed(String callId) {
        public void setConferenceMergeFailed(String callId, Session.Info sessionInfo) {
            // Nothing to do here.
            // The event has already been handled and there is no state to update
            // in the underlying connection or conference objects
@@ -203,8 +209,7 @@ final class RemoteConnectionService {

        @Override
        public void addConferenceCall(
                final String callId,
                ParcelableConference parcel) {
                final String callId, ParcelableConference parcel, Session.Info sessionInfo) {
            RemoteConference conference = new RemoteConference(callId,
                    mOutgoingConnectionServiceRpc);

@@ -238,7 +243,7 @@ final class RemoteConnectionService {
        }

        @Override
        public void removeCall(String callId) {
        public void removeCall(String callId, Session.Info sessionInfo) {
            if (mConnectionById.containsKey(callId)) {
                findConnectionForAction(callId, "removeCall")
                        .setDestroyed();
@@ -249,24 +254,26 @@ final class RemoteConnectionService {
        }

        @Override
        public void onPostDialWait(String callId, String remaining) {
        public void onPostDialWait(String callId, String remaining, Session.Info sessionInfo) {
            findConnectionForAction(callId, "onPostDialWait")
                    .setPostDialWait(remaining);
        }

        @Override
        public void onPostDialChar(String callId, char nextChar) {
        public void onPostDialChar(String callId, char nextChar, Session.Info sessionInfo) {
            findConnectionForAction(callId, "onPostDialChar")
                    .onPostDialChar(nextChar);
        }

        @Override
        public void queryRemoteConnectionServices(RemoteServiceCallback callback) {
        public void queryRemoteConnectionServices(RemoteServiceCallback callback,
                Session.Info sessionInfo) {
            // Not supported from remote connection service.
        }

        @Override
        public void setVideoProvider(String callId, IVideoProvider videoProvider) {
        public void setVideoProvider(String callId, IVideoProvider videoProvider,
                Session.Info sessionInfo) {
            RemoteConnection.VideoProvider remoteVideoProvider = null;
            if (videoProvider != null) {
                remoteVideoProvider = new RemoteConnection.VideoProvider(videoProvider);
@@ -276,32 +283,34 @@ final class RemoteConnectionService {
        }

        @Override
        public void setVideoState(String callId, int videoState) {
        public void setVideoState(String callId, int videoState, Session.Info sessionInfo) {
            findConnectionForAction(callId, "setVideoState")
                    .setVideoState(videoState);
        }

        @Override
        public void setIsVoipAudioMode(String callId, boolean isVoip) {
        public void setIsVoipAudioMode(String callId, boolean isVoip, Session.Info sessionInfo) {
            findConnectionForAction(callId, "setIsVoipAudioMode")
                    .setIsVoipAudioMode(isVoip);
        }

        @Override
        public void setStatusHints(String callId, StatusHints statusHints) {
        public void setStatusHints(String callId, StatusHints statusHints,
                Session.Info sessionInfo) {
            findConnectionForAction(callId, "setStatusHints")
                    .setStatusHints(statusHints);
        }

        @Override
        public void setAddress(String callId, Uri address, int presentation) {
        public void setAddress(String callId, Uri address, int presentation,
                Session.Info sessionInfo) {
            findConnectionForAction(callId, "setAddress")
                    .setAddress(address, presentation);
        }

        @Override
        public void setCallerDisplayName(String callId, String callerDisplayName,
                int presentation) {
                int presentation, Session.Info sessionInfo) {
            findConnectionForAction(callId, "setCallerDisplayName")
                    .setCallerDisplayName(callerDisplayName, presentation);
        }
@@ -312,8 +321,8 @@ final class RemoteConnectionService {
        }

        @Override
        public final void setConferenceableConnections(
                String callId, List<String> conferenceableConnectionIds) {
        public final void setConferenceableConnections(String callId,
                List<String> conferenceableConnectionIds, Session.Info sessionInfo) {
            List<RemoteConnection> conferenceable = new ArrayList<>();
            for (String id : conferenceableConnectionIds) {
                if (mConnectionById.containsKey(id)) {
@@ -331,7 +340,8 @@ final class RemoteConnectionService {
        }

        @Override
        public void addExistingConnection(String callId, ParcelableConnection connection) {
        public void addExistingConnection(String callId, ParcelableConnection connection,
                Session.Info sessionInfo) {
            // TODO: add contents of this method
            RemoteConnection remoteConnction = new RemoteConnection(callId,
                    mOutgoingConnectionServiceRpc, connection);
@@ -340,7 +350,7 @@ final class RemoteConnectionService {
        }

        @Override
        public void putExtras(String callId, Bundle extras) {
        public void putExtras(String callId, Bundle extras, Session.Info sessionInfo) {
            if (hasConnection(callId)) {
                findConnectionForAction(callId, "putExtras").putExtras(extras);
            } else {
@@ -349,7 +359,7 @@ final class RemoteConnectionService {
        }

        @Override
        public void removeExtras(String callId, List<String> keys) {
        public void removeExtras(String callId, List<String> keys, Session.Info sessionInfo) {
            if (hasConnection(callId)) {
                findConnectionForAction(callId, "removeExtra").removeExtras(keys);
            } else {
@@ -358,7 +368,8 @@ final class RemoteConnectionService {
        }

        @Override
        public void onConnectionEvent(String callId, String event, Bundle extras) {
        public void onConnectionEvent(String callId, String event, Bundle extras,
                Session.Info sessionInfo) {
            if (mConnectionById.containsKey(callId)) {
                findConnectionForAction(callId, "onConnectionEvent").onConnectionEvent(event,
                        extras);
+38 −28
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.telecom.ConnectionRequest;
import android.telecom.DisconnectCause;
import android.telecom.Logging.Session;
import android.telecom.ParcelableConnection;
import android.telecom.ParcelableConference;
import android.telecom.StatusHints;
@@ -39,59 +40,68 @@ oneway interface IConnectionServiceAdapter {
    void handleCreateConnectionComplete(
            String callId,
            in ConnectionRequest request,
            in ParcelableConnection connection);
            in ParcelableConnection connection,
            in Session.Info sessionInfo);

    void setActive(String callId);
    void setActive(String callId, in Session.Info sessionInfo);

    void setRinging(String callId);
    void setRinging(String callId, in Session.Info sessionInfo);

    void setDialing(String callId);
    void setDialing(String callId, in Session.Info sessionInfo);

    void setPulling(String callId);
    void setPulling(String callId, in Session.Info sessionInfo);

    void setDisconnected(String callId, in DisconnectCause disconnectCause);
    void setDisconnected(String callId, in DisconnectCause disconnectCause,
    in Session.Info sessionInfo);

    void setOnHold(String callId);
    void setOnHold(String callId, in Session.Info sessionInfo);

    void setRingbackRequested(String callId, boolean ringing);
    void setRingbackRequested(String callId, boolean ringing, in Session.Info sessionInfo);

    void setConnectionCapabilities(String callId, int connectionCapabilities);
    void setConnectionCapabilities(String callId, int connectionCapabilities,
    in Session.Info sessionInfo);

    void setConnectionProperties(String callId, int connectionProperties);
    void setConnectionProperties(String callId, int connectionProperties,
    in Session.Info sessionInfo);

    void setIsConferenced(String callId, String conferenceCallId);
    void setIsConferenced(String callId, String conferenceCallId, in Session.Info sessionInfo);

    void setConferenceMergeFailed(String callId);
    void setConferenceMergeFailed(String callId, in Session.Info sessionInfo);

    void addConferenceCall(String callId, in ParcelableConference conference);
    void addConferenceCall(String callId, in ParcelableConference conference,
    in Session.Info sessionInfo);

    void removeCall(String callId);
    void removeCall(String callId, in Session.Info sessionInfo);

    void onPostDialWait(String callId, String remaining);
    void onPostDialWait(String callId, String remaining, in Session.Info sessionInfo);

    void onPostDialChar(String callId, char nextChar);
    void onPostDialChar(String callId, char nextChar, in Session.Info sessionInfo);

    void queryRemoteConnectionServices(RemoteServiceCallback callback);
    void queryRemoteConnectionServices(RemoteServiceCallback callback, in Session.Info sessionInfo);

    void setVideoProvider(String callId, IVideoProvider videoProvider);
    void setVideoProvider(String callId, IVideoProvider videoProvider, in Session.Info sessionInfo);

    void setVideoState(String callId, int videoState);
    void setVideoState(String callId, int videoState, in Session.Info sessionInfo);

    void setIsVoipAudioMode(String callId, boolean isVoip);
    void setIsVoipAudioMode(String callId, boolean isVoip, in Session.Info sessionInfo);

    void setStatusHints(String callId, in StatusHints statusHints);
    void setStatusHints(String callId, in StatusHints statusHints, in Session.Info sessionInfo);

    void setAddress(String callId, in Uri address, int presentation);
    void setAddress(String callId, in Uri address, int presentation, in Session.Info sessionInfo);

    void setCallerDisplayName(String callId, String callerDisplayName, int presentation);
    void setCallerDisplayName(String callId, String callerDisplayName, int presentation,
    in Session.Info sessionInfo);

    void setConferenceableConnections(String callId, in List<String> conferenceableCallIds);
    void setConferenceableConnections(String callId, in List<String> conferenceableCallIds,
    in Session.Info sessionInfo);

    void addExistingConnection(String callId, in ParcelableConnection connection);
    void addExistingConnection(String callId, in ParcelableConnection connection,
    in Session.Info sessionInfo);

    void putExtras(String callId, in Bundle extras);
    void putExtras(String callId, in Bundle extras, in Session.Info sessionInfo);

    void removeExtras(String callId, in List<String> keys);
    void removeExtras(String callId, in List<String> keys, in Session.Info sessionInfo);

    void onConnectionEvent(String callId, String event, in Bundle extras);
    void onConnectionEvent(String callId, String event, in Bundle extras,
    in Session.Info sessionInfo);
}