Home | History | Annotate | Download | only in gsm
      1 /*
      2  * Copyright (C) 2011 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.internal.telephony.gsm;
     18 
     19 import com.android.internal.telephony.IccServiceTable;
     20 
     21 /**
     22  * Wrapper class for the USIM Service Table EF.
     23  * See 3GPP TS 31.102 Release 10 section 4.2.8
     24  */
     25 public final class UsimServiceTable extends IccServiceTable {
     26     public enum UsimService {
     27         PHONEBOOK,
     28         FDN,                                // Fixed Dialing Numbers
     29         FDN_EXTENSION,                      // FDN extension data in EF_EXT2
     30         SDN,                                // Service Dialing Numbers
     31         SDN_EXTENSION,                      // SDN extension data in EF_EXT3
     32         BDN,                                // Barred Dialing Numbers
     33         BDN_EXTENSION,                      // BDN extension data in EF_EXT4
     34         OUTGOING_CALL_INFO,
     35         INCOMING_CALL_INFO,
     36         SM_STORAGE,
     37         SM_STATUS_REPORTS,
     38         SM_SERVICE_PARAMS,
     39         ADVICE_OF_CHARGE,
     40         CAP_CONFIG_PARAMS_2,
     41         CB_MESSAGE_ID,
     42         CB_MESSAGE_ID_RANGES,
     43         GROUP_ID_LEVEL_1,
     44         GROUP_ID_LEVEL_2,
     45         SPN,                                // Service Provider Name
     46         USER_PLMN_SELECT,
     47         MSISDN,
     48         IMAGE,
     49         LOCALISED_SERVICE_AREAS,
     50         EMLPP,                              // Enhanced Multi-Level Precedence and Preemption
     51         EMLPP_AUTO_ANSWER,
     52         RFU,
     53         GSM_ACCESS,
     54         DATA_DL_VIA_SMS_PP,
     55         DATA_DL_VIA_SMS_CB,
     56         CALL_CONTROL_BY_USIM,
     57         MO_SMS_CONTROL_BY_USIM,
     58         RUN_AT_COMMAND,
     59         IGNORED_1,
     60         ENABLED_SERVICES_TABLE,
     61         APN_CONTROL_LIST,
     62         DEPERSONALISATION_CONTROL_KEYS,
     63         COOPERATIVE_NETWORK_LIST,
     64         GSM_SECURITY_CONTEXT,
     65         CPBCCH_INFO,
     66         INVESTIGATION_SCAN,
     67         MEXE,
     68         OPERATOR_PLMN_SELECT,
     69         HPLMN_SELECT,
     70         EXTENSION_5,                        // Extension data for ICI, OCI, MSISDN in EF_EXT5
     71         PLMN_NETWORK_NAME,
     72         OPERATOR_PLMN_LIST,
     73         MBDN,                               // Mailbox Dialing Numbers
     74         MWI_STATUS,                         // Message Waiting Indication status
     75         CFI_STATUS,                         // Call Forwarding Indication status
     76         IGNORED_2,
     77         SERVICE_PROVIDER_DISPLAY_INFO,
     78         MMS_NOTIFICATION,
     79         MMS_NOTIFICATION_EXTENSION,         // MMS Notification extension data in EF_EXT8
     80         GPRS_CALL_CONTROL_BY_USIM,
     81         MMS_CONNECTIVITY_PARAMS,
     82         NETWORK_INDICATION_OF_ALERTING,
     83         VGCS_GROUP_ID_LIST,
     84         VBS_GROUP_ID_LIST,
     85         PSEUDONYM,
     86         IWLAN_USER_PLMN_SELECT,
     87         IWLAN_OPERATOR_PLMN_SELECT,
     88         USER_WSID_LIST,
     89         OPERATOR_WSID_LIST,
     90         VGCS_SECURITY,
     91         VBS_SECURITY,
     92         WLAN_REAUTH_IDENTITY,
     93         MM_STORAGE,
     94         GBA,                                // Generic Bootstrapping Architecture
     95         MBMS_SECURITY,
     96         DATA_DL_VIA_USSD,
     97         EQUIVALENT_HPLMN,
     98         TERMINAL_PROFILE_AFTER_UICC_ACTIVATION,
     99         EQUIVALENT_HPLMN_PRESENTATION,
    100         LAST_RPLMN_SELECTION_INDICATION,
    101         OMA_BCAST_PROFILE,
    102         GBA_LOCAL_KEY_ESTABLISHMENT,
    103         TERMINAL_APPLICATIONS,
    104         SPN_ICON,
    105         PLMN_NETWORK_NAME_ICON,
    106         USIM_IP_CONNECTION_PARAMS,
    107         IWLAN_HOME_ID_LIST,
    108         IWLAN_EQUIVALENT_HPLMN_PRESENTATION,
    109         IWLAN_HPLMN_PRIORITY_INDICATION,
    110         IWLAN_LAST_REGISTERED_PLMN,
    111         EPS_MOBILITY_MANAGEMENT_INFO,
    112         ALLOWED_CSG_LISTS_AND_INDICATIONS,
    113         CALL_CONTROL_ON_EPS_PDN_CONNECTION_BY_USIM,
    114         HPLMN_DIRECT_ACCESS,
    115         ECALL_DATA,
    116         OPERATOR_CSG_LISTS_AND_INDICATIONS,
    117         SM_OVER_IP,
    118         CSG_DISPLAY_CONTROL,
    119         IMS_COMMUNICATION_CONTROL_BY_USIM,
    120         EXTENDED_TERMINAL_APPLICATIONS,
    121         UICC_ACCESS_TO_IMS,
    122         NAS_CONFIG_BY_USIM
    123     }
    124 
    125     public UsimServiceTable(byte[] table) {
    126         super(table);
    127     }
    128 
    129     public boolean isAvailable(UsimService service) {
    130         return super.isAvailable(service.ordinal());
    131     }
    132 
    133     @Override
    134     protected String getTag() {
    135         return "UsimServiceTable";
    136     }
    137 
    138     @Override
    139     protected Object[] getValues() {
    140         return UsimService.values();
    141     }
    142 }
    143