1/*
2 * Copyright (c) 2016 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.ims.internal.uce.options;
18
19import com.android.ims.internal.uce.options.OptionsSipResponse;
20import com.android.ims.internal.uce.options.OptionsCapInfo;
21import com.android.ims.internal.uce.options.OptionsCmdStatus;
22import com.android.ims.internal.uce.common.StatusCode;
23
24/** {@hide} */
25interface IOptionsListener
26{
27    /**
28     * Callback invoked with the version information of Options service implementation.
29     * @param version, version information of the service.
30     * @hide
31     */
32    void getVersionCb(in String version );
33
34    /**
35     * Callback function to be invoked by the Options service to notify the listener of service
36     * availability.
37     * @param statusCode, UCE_SUCCESS as service availability.
38     * @hide
39     */
40    void serviceAvailable(in StatusCode statusCode);
41
42    /**
43     * Callback function to be invoked by the Options service to notify the listener of service
44     * unavailability.
45     * @param statusCode, UCE_SUCCESS as service unavailability.
46     * @hide
47     */
48    void serviceUnavailable(in StatusCode statusCode);
49
50    /**
51     * Callback function to be invoked to inform the client when the response for a SIP OPTIONS
52     * has been received.
53     * @param uri, URI of the remote entity received in network response.
54     * @param sipResponse, data of the network response received.
55     * @param capInfo, capabilities of the remote entity received.
56     * @hide
57     */
58    void sipResponseReceived( String uri,
59                                in OptionsSipResponse sipResponse, in OptionsCapInfo capInfo);
60
61    /**
62     * Callback function to be invoked to inform the client of the status of an asynchronous call.
63     * @param cmdStatus, command status of the request placed.
64     * @hide
65     */
66    void cmdStatus(in OptionsCmdStatus cmdStatus);
67
68    /**
69     * Callback function to be invoked to inform the client of an incoming OPTIONS request
70     * from the network.
71     * @param uri, URI of the remote entity received.
72     * @param capInfo, capabilities of the remote entity.
73     * @param tID, transation of the request received from network.
74     * @hide
75     */
76    void incomingOptions( String uri, in OptionsCapInfo capInfo,
77                                            in int tID);
78}
79