ofono/drivers/isimodem/sim.h

211 lines
5.9 KiB
C

/*
*
* oFono - Open Source Telephony
*
* Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#ifndef __ISIMODEM_SIM_H
#define __ISIMODEM_SIM_H
#ifdef __cplusplus
extern "C" {
#endif
#define PN_SIM 0x09
#define SIM_TIMEOUT 5
#define PN_SECURITY 0x08
#define SIM_MAX_IMSI_LENGTH 15
enum sim_isi_cause {
SIM_SERV_NOT_AVAIL = 0x00,
SIM_SERV_OK = 0x01,
SIM_SERV_PIN_VERIFY_REQUIRED = 0x02,
SIM_SERV_PIN_REQUIRED = 0x03,
SIM_SERV_SIM_BLOCKED = 0x04,
SIM_SERV_SIM_PERMANENTLY_BLOCKED = 0x05,
SIM_SERV_SIM_DISCONNECTED = 0x06,
SIM_SERV_SIM_REJECTED = 0x07,
SIM_SERV_LOCK_ACTIVE = 0x08,
SIM_SERV_AUTOLOCK_CLOSED = 0x09,
SIM_SERV_AUTOLOCK_ERROR = 0x0A,
SIM_SERV_INIT_OK = 0x0B,
SIM_SERV_INIT_NOT_OK = 0x0C,
SIM_SERV_WRONG_OLD_PIN = 0x0D,
SIM_SERV_PIN_DISABLED = 0x0E,
SIM_SERV_COMMUNICATION_ERROR = 0x0F,
SIM_SERV_UPDATE_IMPOSSIBLE = 0x10,
SIM_SERV_NO_SECRET_CODE_IN_SIM = 0x11,
SIM_SERV_PIN_ENABLE_OK = 0x12,
SIM_SERV_PIN_DISABLE_OK = 0x13,
SIM_SERV_WRONG_UNBLOCKING_KEY = 0x15,
SIM_SERV_ILLEGAL_NUMBER = 0x2E,
SIM_SERV_NOT_OK = 0x1C,
SIM_SERV_PN_LIST_ENABLE_OK = 0x1E,
SIM_SERV_PN_LIST_DISABLE_OK = 0x1F,
SIM_SERV_NO_PIN = 0x20,
SIM_SERV_PIN_VERIFY_OK = 0x21,
SIM_SERV_PIN_BLOCKED = 0x22,
SIM_SERV_PIN_PERM_BLOCKED = 0x23,
SIM_SERV_DATA_NOT_AVAIL = 0x24,
SIM_SERV_IN_HOME_ZONE = 0x25,
SIM_SERV_STATE_CHANGED = 0x27,
SIM_SERV_INF_NBR_READ_OK = 0x28,
SIM_SERV_INF_NBR_READ_NOT_OK = 0x29,
SIM_SERV_IMSI_EQUAL = 0x2A,
SIM_SERV_IMSI_NOT_EQUAL = 0x2B,
SIM_SERV_INVALID_LOCATION = 0x2C,
SIM_SERV_STA_SIM_REMOVED = 0x35,
SIM_SERV_SECOND_SIM_REMOVED_CS = 0x36,
SIM_SERV_CONNECTED_INDICATION_CS = 0x37,
SIM_SERV_SECOND_SIM_CONNECTED_CS = 0x38,
SIM_SERV_PIN_RIGHTS_LOST_IND_CS = 0x39,
SIM_SERV_PIN_RIGHTS_GRANTED_IND_CS = 0x3A,
SIM_SERV_INIT_OK_CS = 0x3B,
SIM_SERV_INIT_NOT_OK_CS = 0x3C,
SIM_FDN_ENABLED = 0x19,
SIM_FDN_DISABLED = 0x1A,
SIM_SERV_INVALID_FILE = 0x45,
SIM_SERV_DATA_AVAIL = 0x4F,
SIM_SERV_ICC_EQUAL = 0x49,
SIM_SERV_ICC_NOT_EQUAL = 0x4A,
SIM_SERV_SIM_NOT_INITIALISED = 0x4B,
SIM_SERV_SERVICE_NOT_AVAIL = 0x50,
SIM_SERV_FDN_STATUS_ERROR = 0x57,
SIM_SERV_FDN_CHECK_PASSED = 0x58,
SIM_SERV_FDN_CHECK_FAILED = 0x59,
SIM_SERV_FDN_CHECK_DISABLED = 0x5A,
SIM_SERV_FDN_CHECK_NO_FDN_SIM = 0x5B,
SIM_STA_ISIM_AVAILEBLE_PIN_REQUIRED = 0x5C,
SIM_STA_ISIM_AVAILEBLE = 0x5D,
SIM_STA_USIM_AVAILEBLE = 0x5E,
SIM_STA_SIM_AVAILEBLE = 0x5F,
SIM_STA_ISIM_NOT_INITIALIZED = 0x60,
SIM_STA_IMS_READY = 0x61,
SIM_STA_APP_DATA_READ_OK = 0x96,
SIM_STA_APP_ACTIVATE_OK = 0x97,
SIM_STA_APP_ACTIVATE_NOT_OK = 0x98,
SIM_SERV_NOT_DEFINED = 0xF9,
SIM_SERV_NOSERVICE = 0xFA,
SIM_SERV_NOTREADY = 0xFB,
SIM_SERV_ERROR = 0xFC,
SIM_SERV_CIPHERING_INDICATOR_DISPLAY_REQUIRED = 0x30,
SIM_SERV_CIPHERING_INDICATOR_DISPLAY_NOT_REQUIRED = 0x31,
SIM_SERV_FILE_NOT_AVAILABLE = 0x4D
};
enum sim_subblock {
SIM_PB_INFO_REQUEST = 0xE4,
SIM_PB_STATUS = 0xFB,
SIM_PB_LOCATION = 0xFE,
SIM_PB_LOCATION_SEARCH = 0xFF,
};
enum sim_pb_type {
SIM_PB_ADN = 0xC8,
};
enum sim_pb_tag {
SIM_PB_ANR = 0xCA,
SIM_PB_EMAIL = 0xDD,
SIM_PB_SNE = 0xF7,
};
enum sim_message_id {
SIM_NETWORK_INFO_REQ = 0x19,
SIM_NETWORK_INFO_RESP = 0x1A,
SIM_IMSI_REQ_READ_IMSI = 0x1D,
SIM_IMSI_RESP_READ_IMSI = 0x1E,
SIM_SERV_PROV_NAME_REQ = 0x21,
SIM_SERV_PROV_NAME_RESP = 0x22,
SIM_DYNAMIC_FLAGS_REQ = 0x29,
SIM_DYNAMIC_FLAGS_RESP = 0x2A,
SIM_READ_FIELD_REQ = 0xBA,
SIM_READ_FIELD_RESP = 0xBB,
SIM_SMS_REQ = 0xBC,
SIM_SMS_RESP = 0xBD,
SIM_STATUS_REQ = 0xC0,
SIM_STATUS_RESP = 0xC1,
SIM_PB_REQ_SIM_PB_READ = 0xDC,
SIM_PB_RESP_SIM_PB_READ = 0xDD,
SIM_SERVER_READY_IND = 0xED,
SIM_IND = 0xEF,
};
enum sim_service_type {
SIM_ST_CARD_STATUS = 0x00,
SIM_ST_PIN = 0x01,
SIM_ST_ALL_SERVICES = 0x05,
SIM_ST_INFO = 0x0D,
SIM_PB_READ = 0x0F,
SIM_ST_CAT_SUPPORT_ENABLE = 0x15,
SIM_ST_CAT_SUPPORT_DISABLE = 0x16,
SIM_ST_READ_SERV_PROV_NAME = 0x2C,
READ_IMSI = 0x2D,
READ_HPLMN = 0x2F,
READ_DYN_FLAGS = 0x35,
READ_PARAMETER = 0x52,
UPDATE_PARAMETER = 0x53,
ICC = 0x66,
};
#define SEC_CODE_MAX_LENGTH 0x0A
enum sec_message_id {
SEC_CODE_STATE_REQ = 0x01,
SEC_CODE_STATE_OK_RESP = 0x02,
SEC_CODE_STATE_FAIL_RESP = 0x03,
SEC_CODE_CHANGE_REQ = 0x04,
SEC_CODE_CHANGE_OK_RESP = 0x05,
SEC_CODE_CHANGE_FAIL_RESP = 0x06,
SEC_CODE_VERIFY_REQ = 0x07,
SEC_CODE_VERIFY_OK_RESP = 0x08,
SEC_CODE_VERIFY_FAIL_RESP = 0x09,
SEC_STATE_REQ = 0x11,
SEC_STATE_RESP = 0x12,
};
enum sec_code_id_info {
SEC_CODE_PIN = 0x02,
SEC_CODE_PUK = 0x03,
SEC_CODE_PIN2 = 0x04,
SEC_CODE_PUK2 = 0x05,
};
enum sec_code_state_info {
SEC_CODE_DISABLE = 0x00,
SEC_CODE_ENABLE = 0x01,
SEC_CODE_STATE_QUERY = 0x04,
};
enum sec_state_cause_info {
SEC_CAUSE_PIN_REQUIRED = 0x02,
SEC_CAUSE_PUK_REQUIRED = 0x03,
SEC_STARTUP_OK = 0x05,
SEC_STARTUP_ONGOING = 0x07,
SEC_CAUSE_CODE_BLOCKED = 0x08,
SEC_CAUSE_NO_SIM = 0x16,
SEC_CAUSE_SIM_REJECTED = 0x1A,
SEC_CAUSE_INVALID_SIM = 0x1E,
};
#ifdef __cplusplus
};
#endif
#endif /* __ISIMODEM_SIM_H */