1cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak/*
2cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Copyright (c) 2016 The Android Open Source Project
3cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak *
4cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Licensed under the Apache License, Version 2.0 (the "License");
5cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * you may not use this file except in compliance with the License.
6cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * You may obtain a copy of the License at
7cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak *
8cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak *      http://www.apache.org/licenses/LICENSE-2.0
9cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak *
10cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Unless required by applicable law or agreed to in writing, software
11cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * distributed under the License is distributed on an "AS IS" BASIS,
12cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * See the License for the specific language governing permissions and
14cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * limitations under the License.
15cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */
16cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak
17cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakpackage com.android.ims.internal.uce.presence;
18cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak
19cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.common.StatusCode;
20cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.PresPublishTriggerType;
21cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.PresCmdStatus;
22cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.PresCapInfo;
23cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.PresSipResponse;
24cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.PresTupleInfo;
25cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.PresResInstanceInfo;
26cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.PresResInfo;
27cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.PresRlmiInfo;
28cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak
29cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak
30cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak/**
31cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * IPresenceListener
32cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * {@hide} */
33cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakinterface IPresenceListener
34cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak{
35cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    /**
36cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * Gets the version of the presence listener implementation.
37cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * @param version, version information.
38cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     */
39cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    void getVersionCb(in String version );
40cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak
41cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    /**
42cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * Callback function to be invoked by the Presence service to notify the listener of service
43cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * availability.
44cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * @param statusCode, UCE_SUCCESS as service availability.
45cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     */
46cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    void serviceAvailable(in StatusCode statusCode);
47cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak
48cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    /**
49cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * Callback function to be invoked by the Presence service to notify the listener of service
50cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * unavailability.
51cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * @param statusCode, UCE_SUCCESS as service unAvailability.
52cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     */
53cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    void serviceUnAvailable(in StatusCode statusCode);
54cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak
55cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    /**
56cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * Callback function to be invoked by the Presence service to notify the listener to send a
57cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * publish request.
58cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * @param publishTrigger, Publish trigger for the network being supported.
59cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     */
60cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    void publishTriggering(in PresPublishTriggerType publishTrigger);
61cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak
62cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    /**
63cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * Callback function to be invoked to inform the client of the status of an asynchronous call.
64cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * @param cmdStatus, command status of the request placed.
65cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     */
66cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    void cmdStatus( in PresCmdStatus cmdStatus);
67cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak
68cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    /**
69cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * Callback function to be invoked to inform the client when the response for a SIP message,
70cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * such as PUBLISH or SUBSCRIBE, has been received.
71cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * @param sipResponse, network response received for the request placed.
72cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     */
73cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    void sipResponseReceived(in PresSipResponse sipResponse);
74cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak
75cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    /**
76cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * Callback function to be invoked to inform the client when the NOTIFY message carrying a
77cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * single contact's capabilities information is received.
78cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * @param presentityURI, URI of the remote entity the request was placed.
79cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * @param tupleInfo, array of capability information remote entity supports.
80cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     */
81cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    void capInfoReceived(in String presentityURI,
82cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak                         in PresTupleInfo [] tupleInfo);
83cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak
84cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    /**
85cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * Callback function to be invoked to inform the client when the NOTIFY message carrying
86cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * contact's capabilities information is received.
87cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * @param rlmiInfo, resource infomation received from network.
88cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     * @param resInfo, array of capabilities received from network for the list of  remore URI.
89cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak     */
90cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak    void listCapInfoReceived(in PresRlmiInfo rlmiInfo,
91cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak                             in PresResInfo [] resInfo);
92cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak}