IPhoneSubInfo.aidl revision bc0272754df7a2fb71bf709a2a8a7c852ee69e5c
1/*
2 * Copyright (C) 2007 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.internal.telephony;
18
19/**
20 * Interface used to retrieve various phone-related subscriber information.
21 *
22 */
23interface IPhoneSubInfo {
24
25    /**
26     * Retrieves the unique device ID, e.g., IMEI for GSM phones.
27     */
28    String getDeviceId();
29
30    /**
31     * Retrieves the unique device ID of a subId for the device, e.g., IMEI
32     * for GSM phones.
33     */
34    String getDeviceIdForSubscriber(long subId);
35
36    /**
37     * Retrieves the IMEI.
38     */
39    String getImeiForSubscriber(long subId);
40
41    /**
42     * Retrieves the software version number for the device, e.g., IMEI/SV
43     * for GSM phones.
44     */
45    String getDeviceSvn();
46
47    /**
48     * Retrieves the unique sbuscriber ID, e.g., IMSI for GSM phones.
49     */
50    String getSubscriberId();
51
52    /**
53     * Retrieves the unique subscriber ID of a given subId, e.g., IMSI for GSM phones.
54     */
55    String getSubscriberIdForSubscriber(long subId);
56
57    /**
58     * Retrieves the Group Identifier Level1 for GSM phones.
59     */
60    String getGroupIdLevel1();
61
62    /**
63     * Retrieves the Group Identifier Level1 for GSM phones of a subId.
64     */
65    String getGroupIdLevel1ForSubscriber(long subId);
66
67    /**
68     * Retrieves the serial number of the ICC, if applicable.
69     */
70    String getIccSerialNumber();
71
72    /**
73     * Retrieves the serial number of a given subId.
74     */
75    String getIccSerialNumberForSubscriber(long subId);
76
77    /**
78     * Retrieves the phone number string for line 1.
79     */
80    String getLine1Number();
81
82    /**
83     * Retrieves the phone number string for line 1 of a subcription.
84     */
85    String getLine1NumberForSubscriber(long subId);
86
87
88    /**
89     * Retrieves the alpha identifier for line 1.
90     */
91    String getLine1AlphaTag();
92
93    /**
94     * Retrieves the alpha identifier for line 1 of a subId.
95     */
96    String getLine1AlphaTagForSubscriber(long subId);
97
98
99    /**
100     * Retrieves MSISDN Number.
101     */
102    String getMsisdn();
103
104    /**
105     * Retrieves the Msisdn of a subId.
106     */
107    String getMsisdnForSubscriber(long subId);
108
109    /**
110     * Retrieves the voice mail number.
111     */
112    String getVoiceMailNumber();
113
114    /**
115     * Retrieves the voice mail number of a given subId.
116     */
117    String getVoiceMailNumberForSubscriber(long subId);
118
119    /**
120     * Retrieves the complete voice mail number.
121     */
122    String getCompleteVoiceMailNumber();
123
124    /**
125     * Retrieves the complete voice mail number for particular subId
126     */
127    String getCompleteVoiceMailNumberForSubscriber(long subId);
128
129    /**
130     * Retrieves the alpha identifier associated with the voice mail number.
131     */
132    String getVoiceMailAlphaTag();
133
134    /**
135     * Retrieves the alpha identifier associated with the voice mail number
136     * of a subId.
137     */
138    String getVoiceMailAlphaTagForSubscriber(long subId);
139
140    /**
141     * Returns the IMS private user identity (IMPI) that was loaded from the ISIM.
142     * @return the IMPI, or null if not present or not loaded
143     */
144    String getIsimImpi();
145
146    /**
147     * Returns the IMS home network domain name that was loaded from the ISIM.
148     * @return the IMS domain name, or null if not present or not loaded
149     */
150    String getIsimDomain();
151
152    /**
153     * Returns the IMS public user identities (IMPU) that were loaded from the ISIM.
154     * @return an array of IMPU strings, with one IMPU per string, or null if
155     *      not present or not loaded
156     */
157    String[] getIsimImpu();
158
159    /**
160     * Returns the IMS Service Table (IST) that was loaded from the ISIM.
161     * @return IMS Service Table or null if not present or not loaded
162     */
163    String getIsimIst();
164
165    /**
166     * Returns the IMS Proxy Call Session Control Function(PCSCF) that were loaded from the ISIM.
167     * @return an array of PCSCF strings with one PCSCF per string, or null if
168     *      not present or not loaded
169     */
170    String[] getIsimPcscf();
171
172    /**
173     * TODO: Deprecate and remove this interface. Superceded by getIccsimChallengeResponse.
174     * Returns the response of ISIM Authetification through RIL.
175     * @return the response of ISIM Authetification, or null if
176     *     the Authentification hasn't been successed or isn't present iphonesubinfo.
177     */
178    String getIsimChallengeResponse(String nonce);
179
180    /**
181     * Returns the response of the SIM application on the UICC to authentication
182     * challenge/response algorithm. The data string and challenge response are
183     * Base64 encoded Strings.
184     * Can support EAP-SIM, EAP-AKA with results encoded per 3GPP TS 31.102.
185     *
186     * @param subId subscription ID to be queried
187     * @param appType ICC application type (@see com.android.internal.telephony.PhoneConstants#APPTYPE_xxx)
188     * @param data authentication challenge data
189     * @return challenge response
190     */
191    String getIccSimChallengeResponse(long subId, int appType, String data);
192}
193