/* * Copyright (C) 2013 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.telephony; import com.android.internal.telephony.ICallServiceAdapter; /** * Service interface for services which would like to provide calls to be * managed by the system in-call UI. * * This interface provides methods that the android framework can use to deliver commands * for calls provided by this call service including making new calls and disconnecting * existing ones. A binding to ICallService implementations exists for two conditions: * 1) There exists one or more live calls for that call service, * 2) Prior to an outbound call to test if this call service is compatible with the outgoing call. */ oneway interface ICallService { /** * Determines if the CallService can make calls to the handle. * TODO(santoscordon): Move this method into its own service interface long term. * TODO(santoscordon): Add response callback parameter. */ void isCompatibleWith(String handle); /** * Attempts to call the relevant party using the specified handle, be it a phone number, * SIP address, or some other kind of user ID. Note that the set of handle types is * dynamically extensible since call providers should be able to implement arbitrary * handle-calling systems. See {@link #isCompatibleWith}. * TODO(santoscordon): Should this have a response attached to it to ensure that the call * service actually plans to make the call? */ void call(String handle); /** * Disconnects the call identified by callId. */ void disconnect(String callId); /** * Sets an implementation of ICallServiceAdapter which the call service can use to add new calls * and communicate state changes of existing calls. This is the first method that is called * after a the framework binds to the call service. */ void setCallServiceAdapter(ICallServiceAdapter callServiceAdapter); }