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