1bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad/*
22a46b90222e5c9c73de012382a604a71f9c0c30cSailesh Nepal * Copyright (C) 2014 The Android Open Source Project
3bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad *
4bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad * Licensed under the Apache License, Version 2.0 (the "License");
5bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad * you may not use this file except in compliance with the License.
6bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad * You may obtain a copy of the License at
7bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad *
8bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad *      http://www.apache.org/licenses/LICENSE-2.0
9bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad *
10bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad * Unless required by applicable law or agreed to in writing, software
11bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad * distributed under the License is distributed on an "AS IS" BASIS,
12bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad * See the License for the specific language governing permissions and
14bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad * limitations under the License.
15bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad */
16bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad
17ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnpackage com.android.internal.telecom;
18bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad
1974f6bf88eb0247b25caa8be9d170be6ba4cf5d28Evan Charltonimport android.os.Bundle;
2057006aa82a69740df73415a456d31993e2785e24Hall Liuimport android.os.ParcelFileDescriptor;
214af5935c71f1e31ef1aec27661c4ef60545a0924Yorke Leeimport android.telecom.CallAudioState;
22ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnimport android.telecom.ConnectionRequest;
23b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebingerimport android.telecom.Logging.Session;
24ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnimport android.telecom.PhoneAccountHandle;
25ab5d282dd6f487578ae86b2d53d0d8edc9b71747Sailesh Nepal
26ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnimport com.android.internal.telecom.IConnectionServiceAdapter;
27bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad
28bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad/**
292a46b90222e5c9c73de012382a604a71f9c0c30cSailesh Nepal * Internal remote interface for connection services.
30bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad *
31ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunn * @see android.telecom.ConnectionService
32bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad *
332f23664b4fb9527f3b4e12843926ffe2220ea559Ihab Awad * @hide
34bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad */
352a46b90222e5c9c73de012382a604a71f9c0c30cSailesh Nepaloneway interface IConnectionService {
36b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void addConnectionServiceAdapter(in IConnectionServiceAdapter adapter,
37b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    in Session.Info sessionInfo);
38e57944dd55f72aa1b9fc04c6b6bc48992076fdf6Ben Gilad
39b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void removeConnectionServiceAdapter(in IConnectionServiceAdapter adapter,
40b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    in Session.Info sessionInfo);
418aecfedb7b5ac1c909a83f97ef8dad7ca4c68d0fIhab Awad
42f8b69887b438683adee56ad1038d1414cc501ff9Ihab Awad    void createConnection(
43f8b69887b438683adee56ad1038d1414cc501ff9Ihab Awad            in PhoneAccountHandle connectionManagerPhoneAccount,
44b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad            String callId,
45f8b69887b438683adee56ad1038d1414cc501ff9Ihab Awad            in ConnectionRequest request,
46c3cf982d18e28fc27126265422f36c5e845808dbYorke Lee            boolean isIncoming,
47b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger            boolean isUnknown,
48b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger            in Session.Info sessionInfo);
49bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad
50d104a4f7f67ad6ca098bef0dc3824c5c47e7bcafTyler Gunn    void createConnectionComplete(String callId, in Session.Info sessionInfo);
51d104a4f7f67ad6ca098bef0dc3824c5c47e7bcafTyler Gunn
52159f35c8e4a2d5902cbbeb8d3b9a80bddf247de3Tyler Gunn    void createConnectionFailed(in PhoneAccountHandle connectionManagerPhoneAccount, String callId,
53159f35c8e4a2d5902cbbeb8d3b9a80bddf247de3Tyler Gunn            in ConnectionRequest request, boolean isIncoming, in Session.Info sessionInfo);
543edafc16ac334dd89d916b7745f2a8d655bbda61Tyler Gunn
55b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void abort(String callId, in Session.Info sessionInfo);
56bd63f90a789bfb608dbd036d60c4d08f9fd1f2d9Santos Cordon
57b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void answerVideo(String callId, int videoState, in Session.Info sessionInfo);
58be74de0978a7eaa577f6b61902b550a3161aff8bTyler Gunn
59b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void answer(String callId, in Session.Info sessionInfo);
60b340c331bca330e9cb60ce6e398b3c014e1a14c7Santos Cordon
61b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void reject(String callId, in Session.Info sessionInfo);
623fadaa923272675d841eda3d46b3e1d9dc08c819Ben Gilad
63b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void rejectWithMessage(String callId, String message, in Session.Info sessionInfo);
648190168077aa3ef02a1f5a3a636130d83c4eec1dBryce Lee
65b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void disconnect(String callId, in Session.Info sessionInfo);
6681ccaaa25cc90c576c7df7c2cccb8a232e8536a1Yorke Lee
67b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void silence(String callId, in Session.Info sessionInfo);
68cac50775b2e13c293d224b8d09feb15f9ee40c3fBryce Lee
69b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void hold(String callId, in Session.Info sessionInfo);
7081ccaaa25cc90c576c7df7c2cccb8a232e8536a1Yorke Lee
71b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void unhold(String callId, in Session.Info sessionInfo);
724cff392a2b3702514e78c5419bf15de6e39c59afSailesh Nepal
73b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void onCallAudioStateChanged(String activeCallId, in CallAudioState callAudioState,
74b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    in Session.Info sessionInfo);
752f23664b4fb9527f3b4e12843926ffe2220ea559Ihab Awad
76b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void playDtmfTone(String callId, char digit, in Session.Info sessionInfo);
772f23664b4fb9527f3b4e12843926ffe2220ea559Ihab Awad
78b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void stopDtmfTone(String callId, in Session.Info sessionInfo);
79980acb9bd6984a9daad5f584bd35e8d503820200Santos Cordon
80b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void conference(String conferenceCallId, String callId, in Session.Info sessionInfo);
81980acb9bd6984a9daad5f584bd35e8d503820200Santos Cordon
82b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void splitFromConference(String callId, in Session.Info sessionInfo);
836dea4aceba8f69ee4be346ec356d277a3c153f3dEvan Charlton
84b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void mergeConference(String conferenceCallId, in Session.Info sessionInfo);
85a48680427e022ab6eb73277faac6c57831ee6ff9Santos Cordon
86b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void swapConference(String conferenceCallId, in Session.Info sessionInfo);
87a48680427e022ab6eb73277faac6c57831ee6ff9Santos Cordon
88b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void onPostDialContinue(String callId, boolean proceed, in Session.Info sessionInfo);
89876dbfb4767da4a2ba5459d5b78fb6eb55e4516fTyler Gunn
90b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void pullExternalCall(String callId, in Session.Info sessionInfo);
91876dbfb4767da4a2ba5459d5b78fb6eb55e4516fTyler Gunn
92b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void sendCallEvent(String callId, String event, in Bundle extras, in Session.Info sessionInfo);
93dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn
94b32d4f8b5cd5b9c2415e291896b83267e1b4d5feBrad Ebinger    void onExtrasChanged(String callId, in Bundle extras, in Session.Info sessionInfo);
9557006aa82a69740df73415a456d31993e2785e24Hall Liu
9657006aa82a69740df73415a456d31993e2785e24Hall Liu    void startRtt(String callId, in ParcelFileDescriptor fromInCall,
9757006aa82a69740df73415a456d31993e2785e24Hall Liu    in ParcelFileDescriptor toInCall, in Session.Info sessionInfo);
9857006aa82a69740df73415a456d31993e2785e24Hall Liu
9957006aa82a69740df73415a456d31993e2785e24Hall Liu    void stopRtt(String callId, in Session.Info sessionInfo);
10057006aa82a69740df73415a456d31993e2785e24Hall Liu
10157006aa82a69740df73415a456d31993e2785e24Hall Liu    void respondToRttUpgradeRequest(String callId, in ParcelFileDescriptor fromInCall,
10257006aa82a69740df73415a456d31993e2785e24Hall Liu    in ParcelFileDescriptor toInCall, in Session.Info sessionInfo);
103bb69b0c2d821a9806fb00037284c399cbc78277dBen Gilad}
104