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 17 package com.android.ims.internal.uce.options; 18 19 import com.android.ims.internal.uce.options.IOptionsListener; 20 import com.android.ims.internal.uce.options.OptionsCapInfo; 21 import com.android.ims.internal.uce.common.CapInfo; 22 import com.android.ims.internal.uce.common.StatusCode; 23 import com.android.ims.internal.uce.common.UceLong; 24 25 /** {@hide} */ 26 interface IOptionsService 27 { 28 29 /** 30 * Gets the version of the Options service implementation. 31 * the result of this Call is received in getVersionCb 32 * @param optionsServiceHandle, received in serviceCreated() of IOptionsListener. 33 * @return StatusCode, status of the request placed. 34 * @hide 35 */ getVersion(int optionsServiceHandle)36 StatusCode getVersion(int optionsServiceHandle); 37 38 /** 39 * Adds a listener to the Options service. 40 * @param optionsServiceHandle, this returned in serviceCreated() of IOptionsListener. 41 * @param optionsListener, IOptionsListener object. 42 * @param optionsServiceListenerHdl wrapper for client's listener handle to be stored. 43 * 44 * The service will fill UceLong.mUceLong with optionsServiceListenerHdl 45 * @return StatusCode, status of the request placed. 46 */ addListener(int optionsServiceHandle, IOptionsListener optionsListener, inout UceLong optionsServiceListenerHdl)47 StatusCode addListener(int optionsServiceHandle, IOptionsListener optionsListener, 48 inout UceLong optionsServiceListenerHdl); 49 50 /** 51 * Removes a listener from the Options service. 52 * @param optionsServiceHandle, received in serviceCreated() of IOptionsListener. 53 * @param optionsListenerHandle, received in serviceCreated() of IOptionsListener. 54 * @param optionsServiceListenerHdl provided in createOptionsService() or Addlistener(). 55 * @return StatusCode, status of the request placed. 56 */ removeListener(int optionsServiceHandle, in UceLong optionsServiceListenerHdl)57 StatusCode removeListener(int optionsServiceHandle, in UceLong optionsServiceListenerHdl); 58 59 /** 60 * Sets the capabilities information of the self device. 61 * The status of the call is received in cmdStatus callback 62 * @param optionsServiceHandle, this returned in serviceCreated() of IOptionsListener. 63 * @param capInfo, capability information to store. 64 * @param reqUserData, userData provided by client to identify the request/API call, it 65 * is returned in the cmdStatus() callback for client to match response 66 * with original request. 67 * @return StatusCode, status of the request placed. 68 */ setMyInfo(int optionsServiceHandle , in CapInfo capInfo, int reqUserData)69 StatusCode setMyInfo(int optionsServiceHandle , in CapInfo capInfo, int reqUserData); 70 71 72 /** 73 * Gets the capabilities information of remote device. 74 * The Capability information is received in cmdStatus callback 75 * @param optionsServiceHandle, this returned in serviceCreated() of IOptionsListener. 76 * @param reqUserData, userData provided by client to identify the request/API call, it 77 * is returned in the cmdStatus() callback for client to match response 78 * with original request. 79 * @return StatusCode, status of the request placed. 80 */ getMyInfo(int optionsServiceHandle , int reqUserdata)81 StatusCode getMyInfo(int optionsServiceHandle , int reqUserdata); 82 83 /** 84 * Requests the capabilities information of a remote URI. 85 * the remote party capability is received in sipResponseReceived() callback. 86 * @param optionsServiceHandle, this returned in serviceCreated() of IOptionsListener. 87 * @param remoteURI, URI of the remote contact. 88 * @param reqUserData, userData provided by client to identify the request/API call, it 89 * is returned in the cmdStatus() callback for client to match response 90 * with original request. 91 * @return StatusCode, status of the request placed. 92 */ getContactCap(int optionsServiceHandle , String remoteURI, int reqUserData)93 StatusCode getContactCap(int optionsServiceHandle , String remoteURI, int reqUserData); 94 95 96 /** 97 * Requests the capabilities information of specified contacts. 98 * For each remote party capability is received in sipResponseReceived() callback 99 * @param optionsServiceHandle, this returned in serviceCreated() of IOptionsListener. 100 * @param remoteURIList, list of remote contact URI's. 101 * @param reqUserData, userData provided by client to identify the request/API call, it 102 * is returned in the cmdStatus() callback for client to match response 103 * with original request. 104 * @return StatusCode, status of the request placed. 105 */ getContactListCap(int optionsServiceHandle, in String[] remoteURIList, int reqUserData)106 StatusCode getContactListCap(int optionsServiceHandle, in String[] remoteURIList, 107 int reqUserData); 108 109 110 /** 111 * Requests the capabilities information of specified contacts. 112 * The incoming Options request is received in incomingOptions() callback. 113 * 114 * @param optionsServiceHandle, this returned in serviceCreated() of IOptionsListener. 115 * @param tId, transaction ID received in incomingOptions() call of IOptionsListener. 116 * @param sipResponseCode, SIP response code the UE needs to share to network. 117 * @param reasonPhrase, response phrase corresponding to the response code. 118 * @param capInfo, capabilities to share in the resonse to network. 119 * @param bContactInBL, true if the contact is blacklisted, else false. 120 * @return StatusCode, status of the request placed. 121 */ responseIncomingOptions(int optionsServiceHandle, int tId, int sipResponseCode, String reasonPhrase, in OptionsCapInfo capInfo, in boolean bContactInBL)122 StatusCode responseIncomingOptions(int optionsServiceHandle, int tId, int sipResponseCode, 123 String reasonPhrase, in OptionsCapInfo capInfo, 124 in boolean bContactInBL); 125 126 } 127