19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.internal.telephony;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Interface used to retrieve various phone-related subscriber information.
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IPhoneSubInfo {
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the unique device ID, e.g., IMEI for GSM phones.
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getDeviceId();
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
31fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Retrieves the unique device ID of a subId for the device, e.g., IMEI
32fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * for GSM phones.
33fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
34bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    String getDeviceIdForSubscriber(long subId);
35fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
36284f1ec16e816f60cbbf243cebb2de90c50322bbAmit Mahajan    /**
37284f1ec16e816f60cbbf243cebb2de90c50322bbAmit Mahajan     * Retrieves the IMEI.
38284f1ec16e816f60cbbf243cebb2de90c50322bbAmit Mahajan     */
39bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    String getImeiForSubscriber(long subId);
40fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
41fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the software version number for the device, e.g., IMEI/SV
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * for GSM phones.
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getDeviceSvn();
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the unique sbuscriber ID, e.g., IMSI for GSM phones.
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getSubscriberId();
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
53fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Retrieves the unique subscriber ID of a given subId, e.g., IMSI for GSM phones.
54fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
55bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    String getSubscriberIdForSubscriber(long subId);
56fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
57fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
5852a08cf683a6d183222d795862cfd135cec5694fSungmin Choi     * Retrieves the Group Identifier Level1 for GSM phones.
5952a08cf683a6d183222d795862cfd135cec5694fSungmin Choi     */
6052a08cf683a6d183222d795862cfd135cec5694fSungmin Choi    String getGroupIdLevel1();
6152a08cf683a6d183222d795862cfd135cec5694fSungmin Choi
6252a08cf683a6d183222d795862cfd135cec5694fSungmin Choi    /**
63fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Retrieves the Group Identifier Level1 for GSM phones of a subId.
64fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
65bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    String getGroupIdLevel1ForSubscriber(long subId);
66fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
67fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
6804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville     * Retrieves the serial number of the ICC, if applicable.
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
7004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville    String getIccSerialNumber();
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
73fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Retrieves the serial number of a given subId.
74fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
75bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    String getIccSerialNumberForSubscriber(long subId);
76fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
77fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the phone number string for line 1.
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getLine1Number();
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
83fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Retrieves the phone number string for line 1 of a subcription.
84fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
85bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    String getLine1NumberForSubscriber(long subId);
86fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
87fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
88fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieves the alpha identifier for line 1.
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getLine1AlphaTag();
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville    /**
94fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Retrieves the alpha identifier for line 1 of a subId.
95fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
96bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    String getLine1AlphaTagForSubscriber(long subId);
97fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
98fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
99fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
10080c32a37b63ceff885199e22a8505ac557c86d35duckyoung.chai     * Retrieves MSISDN Number.
10180c32a37b63ceff885199e22a8505ac557c86d35duckyoung.chai     */
10280c32a37b63ceff885199e22a8505ac557c86d35duckyoung.chai    String getMsisdn();
10380c32a37b63ceff885199e22a8505ac557c86d35duckyoung.chai
10480c32a37b63ceff885199e22a8505ac557c86d35duckyoung.chai    /**
105fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Retrieves the Msisdn of a subId.
106fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
107bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    String getMsisdnForSubscriber(long subId);
108fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
109fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
11004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville     * Retrieves the voice mail number.
11104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville     */
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getVoiceMailNumber();
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville    /**
115fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Retrieves the voice mail number of a given subId.
116fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
117bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    String getVoiceMailNumberForSubscriber(long subId);
118fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
119fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
120c69f5be0ed3529564e5db6874de52775c2c99007Wink Saville     * Retrieves the complete voice mail number.
121c69f5be0ed3529564e5db6874de52775c2c99007Wink Saville     */
122c69f5be0ed3529564e5db6874de52775c2c99007Wink Saville    String getCompleteVoiceMailNumber();
123c69f5be0ed3529564e5db6874de52775c2c99007Wink Saville
124c69f5be0ed3529564e5db6874de52775c2c99007Wink Saville    /**
125fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Retrieves the complete voice mail number for particular subId
126fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
127bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    String getCompleteVoiceMailNumberForSubscriber(long subId);
128fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
129fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
13004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville     * Retrieves the alpha identifier associated with the voice mail number.
13104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville     */
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getVoiceMailAlphaTag();
133463f22114587344c96460179069a08d7381fbfd6Jake Hamby
134463f22114587344c96460179069a08d7381fbfd6Jake Hamby    /**
135fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Retrieves the alpha identifier associated with the voice mail number
136fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * of a subId.
137fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
138bc0272754df7a2fb71bf709a2a8a7c852ee69e5cWink Saville    String getVoiceMailAlphaTagForSubscriber(long subId);
139fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
140fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
141463f22114587344c96460179069a08d7381fbfd6Jake Hamby     * Returns the IMS private user identity (IMPI) that was loaded from the ISIM.
142463f22114587344c96460179069a08d7381fbfd6Jake Hamby     * @return the IMPI, or null if not present or not loaded
143463f22114587344c96460179069a08d7381fbfd6Jake Hamby     */
144463f22114587344c96460179069a08d7381fbfd6Jake Hamby    String getIsimImpi();
145463f22114587344c96460179069a08d7381fbfd6Jake Hamby
146463f22114587344c96460179069a08d7381fbfd6Jake Hamby    /**
147463f22114587344c96460179069a08d7381fbfd6Jake Hamby     * Returns the IMS home network domain name that was loaded from the ISIM.
148463f22114587344c96460179069a08d7381fbfd6Jake Hamby     * @return the IMS domain name, or null if not present or not loaded
149463f22114587344c96460179069a08d7381fbfd6Jake Hamby     */
150463f22114587344c96460179069a08d7381fbfd6Jake Hamby    String getIsimDomain();
151463f22114587344c96460179069a08d7381fbfd6Jake Hamby
152463f22114587344c96460179069a08d7381fbfd6Jake Hamby    /**
153463f22114587344c96460179069a08d7381fbfd6Jake Hamby     * Returns the IMS public user identities (IMPU) that were loaded from the ISIM.
154463f22114587344c96460179069a08d7381fbfd6Jake Hamby     * @return an array of IMPU strings, with one IMPU per string, or null if
155463f22114587344c96460179069a08d7381fbfd6Jake Hamby     *      not present or not loaded
156463f22114587344c96460179069a08d7381fbfd6Jake Hamby     */
157463f22114587344c96460179069a08d7381fbfd6Jake Hamby    String[] getIsimImpu();
158fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
159fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
160fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the IMS Service Table (IST) that was loaded from the ISIM.
161fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return IMS Service Table or null if not present or not loaded
162fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
163fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    String getIsimIst();
164fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
165fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
166fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the IMS Proxy Call Session Control Function(PCSCF) that were loaded from the ISIM.
167fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return an array of PCSCF strings with one PCSCF per string, or null if
168fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *      not present or not loaded
169fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
170fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    String[] getIsimPcscf();
171fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
172fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
173fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * TODO: Deprecate and remove this interface. Superceded by getIccsimChallengeResponse.
174fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the response of ISIM Authetification through RIL.
175fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return the response of ISIM Authetification, or null if
176fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *     the Authentification hasn't been successed or isn't present iphonesubinfo.
177fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
178fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    String getIsimChallengeResponse(String nonce);
179fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
180fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    /**
181fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Returns the response of the SIM application on the UICC to authentication
182fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * challenge/response algorithm. The data string and challenge response are
183fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Base64 encoded Strings.
184fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * Can support EAP-SIM, EAP-AKA with results encoded per 3GPP TS 31.102.
185fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     *
186fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param subId subscription ID to be queried
187fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param appType ICC application type (@see com.android.internal.telephony.PhoneConstants#APPTYPE_xxx)
188fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @param data authentication challenge data
189fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     * @return challenge response
190fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville     */
191fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    String getIccSimChallengeResponse(long subId, int appType, String data);
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
193