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