summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/isimodem/call-meter.c7
-rw-r--r--drivers/isimodem/call.h409
-rw-r--r--drivers/isimodem/cbs.c47
-rw-r--r--drivers/isimodem/debug.h74
-rw-r--r--drivers/isimodem/devinfo.c44
-rw-r--r--drivers/isimodem/info.h73
-rw-r--r--drivers/isimodem/isi-call.h421
-rw-r--r--drivers/isimodem/mtc.h79
-rw-r--r--drivers/isimodem/network-registration.c102
-rw-r--r--drivers/isimodem/network.h209
-rw-r--r--drivers/isimodem/phonebook.c39
-rw-r--r--drivers/isimodem/sim.c31
-rw-r--r--drivers/isimodem/sim.h147
-rw-r--r--drivers/isimodem/sms.c75
-rw-r--r--drivers/isimodem/sms.h180
-rw-r--r--drivers/isimodem/ss.h11
-rw-r--r--drivers/isimodem/voicecall.c6
17 files changed, 1208 insertions, 746 deletions
diff --git a/drivers/isimodem/call-meter.c b/drivers/isimodem/call-meter.c
index e4e84ad3..1f5cec4f 100644
--- a/drivers/isimodem/call-meter.c
+++ b/drivers/isimodem/call-meter.c
@@ -39,13 +39,12 @@
#include <ofono/modem.h>
#include <ofono/call-meter.h>
-#include "isi.h"
-
-#define PN_SS 0x06
+#include "isimodem.h"
+#include "isiutil.h"
+#include "ss.h"
struct call_meter_data {
GIsiClient *client;
- struct isi_version version;
};
static void isi_call_meter_query(struct ofono_call_meter *cm,
diff --git a/drivers/isimodem/call.h b/drivers/isimodem/call.h
new file mode 100644
index 00000000..29019719
--- /dev/null
+++ b/drivers/isimodem/call.h
@@ -0,0 +1,409 @@
+/*
+ * This file is part of oFono - Open Source Telephony
+ *
+ * Copyright (C) 2009 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_CALL_H
+#define __ISIMODEM_CALL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PN_CALL 0x01
+
+enum call_message_id {
+ CALL_CREATE_REQ = 0x01,
+ CALL_CREATE_RESP = 0x02,
+ CALL_COMING_IND = 0x03,
+ CALL_MO_ALERT_IND = 0x04,
+ CALL_MT_ALERT_IND = 0x05,
+ CALL_WAITING_IND = 0x06,
+ CALL_ANSWER_REQ = 0x07,
+ CALL_ANSWER_RESP = 0x08,
+ CALL_RELEASE_REQ = 0x09,
+ CALL_RELEASE_RESP = 0x0A,
+ CALL_RELEASE_IND = 0x0B,
+ CALL_TERMINATED_IND = 0x0C,
+ CALL_STATUS_REQ = 0x0D,
+ CALL_STATUS_RESP = 0x0E,
+ CALL_STATUS_IND = 0x0F,
+ CALL_SERVER_STATUS_IND = 0x10,
+ CALL_CONTROL_REQ = 0x11,
+ CALL_CONTROL_RESP = 0x12,
+ CALL_CONTROL_IND = 0x13,
+ CALL_MODE_SWITCH_REQ = 0x14,
+ CALL_MODE_SWITCH_RESP = 0x15,
+ CALL_MODE_SWITCH_IND = 0x16,
+ CALL_DTMF_SEND_REQ = 0x17,
+ CALL_DTMF_SEND_RESP = 0x18,
+ CALL_DTMF_STOP_REQ = 0x19,
+ CALL_DTMF_STOP_RESP = 0x1A,
+ CALL_DTMF_STATUS_IND = 0x1B,
+ CALL_DTMF_TONE_IND = 0x1C,
+ CALL_RECONNECT_IND = 0x1E,
+ CALL_PROPERTY_GET_REQ = 0x1F,
+ CALL_PROPERTY_GET_RESP = 0x20,
+ CALL_PROPERTY_SET_REQ = 0x21,
+ CALL_PROPERTY_SET_RESP = 0x22,
+ CALL_PROPERTY_SET_IND = 0x23,
+ CALL_EMERGENCY_NBR_CHECK_REQ = 0x28,
+ CALL_EMERGENCY_NBR_CHECK_RESP = 0x29,
+ CALL_EMERGENCY_NBR_GET_REQ = 0x26,
+ CALL_EMERGENCY_NBR_GET_RESP = 0x27,
+ CALL_EMERGENCY_NBR_MODIFY_REQ = 0x24,
+ CALL_EMERGENCY_NBR_MODIFY_RESP = 0x25,
+ CALL_GSM_NOTIFICATION_IND = 0xA0,
+ CALL_GSM_USER_TO_USER_REQ = 0xA1,
+ CALL_GSM_USER_TO_USER_RESP = 0xA2,
+ CALL_GSM_USER_TO_USER_IND = 0xA3,
+ CALL_GSM_BLACKLIST_CLEAR_REQ = 0xA4,
+ CALL_GSM_BLACKLIST_CLEAR_RESP = 0xA5,
+ CALL_GSM_BLACKLIST_TIMER_IND = 0xA6,
+ CALL_GSM_DATA_CH_INFO_IND = 0xA7,
+ CALL_GSM_CCP_GET_REQ = 0xAA,
+ CALL_GSM_CCP_GET_RESP = 0xAB,
+ CALL_GSM_CCP_CHECK_REQ = 0xAC,
+ CALL_GSM_CCP_CHECK_RESP = 0xAD,
+ CALL_GSM_COMING_REJ_IND = 0xA9,
+ CALL_GSM_RAB_IND = 0xA8,
+ CALL_GSM_IMMEDIATE_MODIFY_IND = 0xAE,
+ CALL_CREATE_NO_SIMATK_REQ = 0x2A,
+ CALL_GSM_SS_DATA_IND = 0xAF,
+ CALL_TIMER_REQ = 0x2B,
+ CALL_TIMER_RESP = 0x2C,
+ CALL_TIMER_NTF = 0x2D,
+ CALL_TIMER_IND = 0x2E,
+ CALL_TIMER_RESET_REQ = 0x2F,
+ CALL_TIMER_RESET_RESP = 0x30,
+ CALL_EMERGENCY_NBR_IND = 0x31,
+ CALL_SERVICE_DENIED_IND = 0x32,
+ CALL_RELEASE_END_REQ = 0x34,
+ CALL_RELEASE_END_RESP = 0x35,
+ CALL_USER_CONNECT_IND = 0x33,
+ CALL_AUDIO_CONNECT_IND = 0x40,
+ CALL_KODIAK_ALLOW_CTRL_REQ = 0x36,
+ CALL_KODIAK_ALLOW_CTRL_RESP = 0x37,
+ CALL_SERVICE_ACTIVATE_IND = 0x38,
+ CALL_SERVICE_ACTIVATE_REQ = 0x39,
+ CALL_SERVICE_ACTIVATE_RESP = 0x3A,
+ CALL_SIM_ATK_IND = 0x3B,
+ CALL_CONTROL_OPER_IND = 0x3C,
+ CALL_TEST_CALL_STATUS_IND = 0x3E,
+ CALL_SIM_ATK_INFO_IND = 0x3F,
+ CALL_SECURITY_IND = 0x41,
+ CALL_MEDIA_HANDLE_REQ = 0x42,
+ CALL_MEDIA_HANDLE_RESP = 0x43,
+ CALL_COMMON_MESSAGE = 0xF0
+};
+
+enum call_status {
+ CALL_STATUS_IDLE = 0x00,
+ CALL_STATUS_CREATE = 0x01,
+ CALL_STATUS_COMING = 0x02,
+ CALL_STATUS_PROCEEDING = 0x03,
+ CALL_STATUS_MO_ALERTING = 0x04,
+ CALL_STATUS_MT_ALERTING = 0x05,
+ CALL_STATUS_WAITING = 0x06,
+ CALL_STATUS_ANSWERED = 0x07,
+ CALL_STATUS_ACTIVE = 0x08,
+ CALL_STATUS_MO_RELEASE = 0x09,
+ CALL_STATUS_MT_RELEASE = 0x0A,
+ CALL_STATUS_HOLD_INITIATED = 0x0B,
+ CALL_STATUS_HOLD = 0x0C,
+ CALL_STATUS_RETRIEVE_INITIATED = 0x0D,
+ CALL_STATUS_RECONNECT_PENDING = 0x0E,
+ CALL_STATUS_TERMINATED = 0x0F,
+ CALL_STATUS_SWAP_INITIATED = 0x10,
+};
+
+enum call_isi_cause {
+ CALL_CAUSE_NO_CAUSE = 0x00,
+ CALL_CAUSE_NO_CALL = 0x01,
+ CALL_CAUSE_TIMEOUT = 0x02,
+ CALL_CAUSE_RELEASE_BY_USER = 0x03,
+ CALL_CAUSE_BUSY_USER_REQUEST = 0x04,
+ CALL_CAUSE_ERROR_REQUEST = 0x05,
+ CALL_CAUSE_COST_LIMIT_REACHED = 0x06,
+ CALL_CAUSE_CALL_ACTIVE = 0x07,
+ CALL_CAUSE_NO_CALL_ACTIVE = 0x08,
+ CALL_CAUSE_INVALID_CALL_MODE = 0x09,
+ CALL_CAUSE_SIGNALLING_FAILURE = 0x0A,
+ CALL_CAUSE_TOO_LONG_ADDRESS = 0x0B,
+ CALL_CAUSE_INVALID_ADDRESS = 0x0C,
+ CALL_CAUSE_EMERGENCY = 0x0D,
+ CALL_CAUSE_NO_TRAFFIC_CHANNEL = 0x0E,
+ CALL_CAUSE_NO_COVERAGE = 0x0F,
+ CALL_CAUSE_CODE_REQUIRED = 0x10,
+ CALL_CAUSE_NOT_ALLOWED = 0x11,
+ CALL_CAUSE_NO_DTMF = 0x12,
+ CALL_CAUSE_CHANNEL_LOSS = 0x13,
+ CALL_CAUSE_FDN_NOT_OK = 0x14,
+ CALL_CAUSE_USER_TERMINATED = 0x15,
+ CALL_CAUSE_BLACKLIST_BLOCKED = 0x16,
+ CALL_CAUSE_BLACKLIST_DELAYED = 0x17,
+ CALL_CAUSE_NUMBER_NOT_FOUND = 0x18,
+ CALL_CAUSE_NUMBER_CANNOT_REMOVE = 0x19,
+ CALL_CAUSE_EMERGENCY_FAILURE = 0x1A,
+ CALL_CAUSE_CS_SUSPENDED = 0x1B,
+ CALL_CAUSE_DCM_DRIVE_MODE = 0x1C,
+ CALL_CAUSE_MULTIMEDIA_NOT_ALLOWED = 0x1D,
+ CALL_CAUSE_SIM_REJECTED = 0x1E,
+ CALL_CAUSE_NO_SIM = 0x1F,
+ CALL_CAUSE_SIM_LOCK_OPERATIVE = 0x20,
+ CALL_CAUSE_SIMATKCC_REJECTED = 0x21,
+ CALL_CAUSE_SIMATKCC_MODIFIED = 0x22,
+ CALL_CAUSE_DTMF_INVALID_DIGIT = 0x23,
+ CALL_CAUSE_DTMF_SEND_ONGOING = 0x24,
+ CALL_CAUSE_CS_INACTIVE = 0x25,
+ CALL_CAUSE_SECURITY_MODE = 0x26,
+ CALL_CAUSE_TRACFONE_FAILED = 0x27,
+ CALL_CAUSE_TRACFONE_WAIT_FAILED = 0x28,
+ CALL_CAUSE_TRACFONE_CONF_FAILED = 0x29,
+ CALL_CAUSE_TEMPERATURE_LIMIT = 0x2A,
+ CALL_CAUSE_KODIAK_POC_FAILED = 0x2B,
+ CALL_CAUSE_NOT_REGISTERED = 0x2C,
+ CALL_CAUSE_CS_CALLS_ONLY = 0x2D,
+ CALL_CAUSE_VOIP_CALLS_ONLY = 0x2E,
+ CALL_CAUSE_LIMITED_CALL_ACTIVE = 0x2F,
+ CALL_CAUSE_LIMITED_CALL_NOT_ALLOWED = 0x30,
+ CALL_CAUSE_SECURE_CALL_NOT_POSSIBLE = 0x31,
+ CALL_CAUSE_INTERCEPT = 0x32,
+};
+
+enum call_gsm_cause {
+ CALL_GSM_CAUSE_UNASSIGNED_NUMBER = 0x01,
+ CALL_GSM_CAUSE_NO_ROUTE = 0x03,
+ CALL_GSM_CAUSE_CH_UNACCEPTABLE = 0x06,
+ CALL_GSM_CAUSE_OPER_BARRING = 0x08,
+ CALL_GSM_CAUSE_NORMAL = 0x10,
+ CALL_GSM_CAUSE_USER_BUSY = 0x11,
+ CALL_GSM_CAUSE_NO_USER_RESPONSE = 0x12,
+ CALL_GSM_CAUSE_ALERT_NO_ANSWER = 0x13,
+ CALL_GSM_CAUSE_CALL_REJECTED = 0x15,
+ CALL_GSM_CAUSE_NUMBER_CHANGED = 0x16,
+ CALL_GSM_CAUSE_NON_SELECT_CLEAR = 0x1A,
+ CALL_GSM_CAUSE_DEST_OUT_OF_ORDER = 0x1B,
+ CALL_GSM_CAUSE_INVALID_NUMBER = 0x1C,
+ CALL_GSM_CAUSE_FACILITY_REJECTED = 0x1D,
+ CALL_GSM_CAUSE_RESP_TO_STATUS = 0x1E,
+ CALL_GSM_CAUSE_NORMAL_UNSPECIFIED = 0x1F,
+ CALL_GSM_CAUSE_NO_CHANNEL = 0x22,
+ CALL_GSM_CAUSE_NETW_OUT_OF_ORDER = 0x26,
+ CALL_GSM_CAUSE_TEMPORARY_FAILURE = 0x29,
+ CALL_GSM_CAUSE_CONGESTION = 0x2A,
+ CALL_GSM_CAUSE_ACCESS_INFO_DISC = 0x2B,
+ CALL_GSM_CAUSE_CHANNEL_NA = 0x2C,
+ CALL_GSM_CAUSE_RESOURCES_NA = 0x2F,
+ CALL_GSM_CAUSE_QOS_NA = 0x31,
+ CALL_GSM_CAUSE_FACILITY_UNSUBS = 0x32,
+ CALL_GSM_CAUSE_COMING_BARRED_CUG = 0x37,
+ CALL_GSM_CAUSE_BC_UNAUTHORIZED = 0x39,
+ CALL_GSM_CAUSE_BC_NA = 0x3A,
+ CALL_GSM_CAUSE_SERVICE_NA = 0x3F,
+ CALL_GSM_CAUSE_BEARER_NOT_IMPL = 0x41,
+ CALL_GSM_CAUSE_ACM_MAX = 0x44,
+ CALL_GSM_CAUSE_FACILITY_NOT_IMPL = 0x45,
+ CALL_GSM_CAUSE_ONLY_RDI_BC = 0x46,
+ CALL_GSM_CAUSE_SERVICE_NOT_IMPL = 0x4F,
+ CALL_GSM_CAUSE_INVALID_TI = 0x51,
+ CALL_GSM_CAUSE_NOT_IN_CUG = 0x57,
+ CALL_GSM_CAUSE_INCOMPATIBLE_DEST = 0x58,
+ CALL_GSM_CAUSE_INV_TRANS_NET_SEL = 0x5B,
+ CALL_GSM_CAUSE_SEMANTICAL_ERR = 0x5F,
+ CALL_GSM_CAUSE_INVALID_MANDATORY = 0x60,
+ CALL_GSM_CAUSE_MSG_TYPE_INEXIST = 0x61,
+ CALL_GSM_CAUSE_MSG_TYPE_INCOMPAT = 0x62,
+ CALL_GSM_CAUSE_IE_NON_EXISTENT = 0x63,
+ CALL_GSM_CAUSE_COND_IE_ERROR = 0x64,
+ CALL_GSM_CAUSE_MSG_INCOMPATIBLE = 0x65,
+ CALL_GSM_CAUSE_TIMER_EXPIRY = 0x66,
+ CALL_GSM_CAUSE_PROTOCOL_ERROR = 0x6F,
+ CALL_GSM_CAUSE_INTERWORKING = 0x7F
+};
+
+enum call_cause_type {
+ CALL_CAUSE_TYPE_DEFAULT = 0x00,
+ CALL_CAUSE_TYPE_CLIENT = 0x01,
+ CALL_CAUSE_TYPE_SERVER = 0x02,
+ CALL_CAUSE_TYPE_NETWORK = 0x03,
+};
+
+enum call_subblock {
+ CALL_ORIGIN_ADDRESS = 0x01,
+ CALL_ORIGIN_SUBADDRESS = 0x02,
+ CALL_DESTINATION_ADDRESS = 0x03,
+ CALL_DESTINATION_SUBADDRESS = 0x04,
+ CALL_DESTINATION_PRE_ADDRESS = 0x05,
+ CALL_DESTINATION_POST_ADDRESS = 0x06,
+ CALL_MODE = 0x07,
+ CALL_CAUSE = 0x08,
+ CALL_OPERATION = 0x09,
+ CALL_STATUS = 0x0A,
+ CALL_STATUS_INFO = 0x0B,
+ CALL_ALERTING_INFO = 0x0C,
+ CALL_RELEASE_INFO = 0x0D,
+ CALL_ORIGIN_INFO = 0x0E,
+ CALL_DTMF_DIGIT = 0x0F,
+ CALL_DTMF_STRING = 0x10,
+ CALL_DTMF_BCD_STRING = 0x19,
+ CALL_DTMF_INFO = 0x1A,
+ CALL_PROPERTY_INFO = 0x13,
+ CALL_EMERGENCY_NUMBER = 0x14,
+ CALL_DTMF_STATUS = 0x11,
+ CALL_DTMF_TONE = 0x12,
+ CALL_GSM_CUG_INFO = 0xA0,
+ CALL_GSM_ALERTING_PATTERN = 0xA1,
+ CALL_GSM_DEFLECTION_ADDRESS = 0xA2,
+ CALL_GSM_DEFLECTION_SUBADDRESS = 0xA3,
+ CALL_GSM_REDIRECTING_ADDRESS = 0xA4,
+ CALL_GSM_REDIRECTING_SUBADDRESS = 0xA5,
+ CALL_GSM_REMOTE_ADDRESS = 0xA6,
+ CALL_GSM_REMOTE_SUBADDRESS = 0xA7,
+ CALL_GSM_USER_TO_USER_INFO = 0xA8,
+ CALL_GSM_DIAGNOSTICS = 0xA9,
+ CALL_GSM_SS_DIAGNOSTICS = 0xAA,
+ CALL_GSM_NEW_DESTINATION = 0xAB,
+ CALL_GSM_CCBS_INFO = 0xAC,
+ CALL_GSM_ADDRESS_OF_B = 0xAD,
+ CALL_GSM_SUBADDRESS_OF_B = 0xB0,
+ CALL_GSM_NOTIFY = 0xB1,
+ CALL_GSM_SS_NOTIFY = 0xB2,
+ CALL_GSM_SS_CODE = 0xB3,
+ CALL_GSM_SS_STATUS = 0xB4,
+ CALL_GSM_SS_NOTIFY_INDICATOR = 0xB5,
+ CALL_GSM_SS_HOLD_INDICATOR = 0xB6,
+ CALL_GSM_SS_ECT_INDICATOR = 0xB7,
+ CALL_GSM_DATA_CH_INFO = 0xB8,
+ CALL_DESTINATION_CS_ADDRESS = 0x16,
+ CALL_GSM_CCP = 0xBA,
+ CALL_GSM_RAB_INFO = 0xB9,
+ CALL_GSM_FNUR_INFO = 0xBB,
+ CALL_GSM_CAUSE_OF_NO_CLI = 0xBC,
+ CALL_GSM_MM_CAUSE = 0xBD,
+ CALL_GSM_EVENT_INFO = 0xBE,
+ CALL_GSM_DETAILED_CAUSE = 0xBF,
+ CALL_GSM_SS_DATA = 0xC0,
+ CALL_TIMER = 0x17,
+ CALL_GSM_ALS_INFO = 0xC1,
+ CALL_STATE_AUTO_CHANGE = 0x18,
+ CALL_EMERGENCY_NUMBER_INFO = 0x1B,
+ CALL_STATUS_MODE = 0x1C,
+ CALL_ADDR_AND_STATUS_INFO = 0x1D,
+ CALL_DTMF_TIMERS = 0x1E,
+ CALL_NAS_SYNC_INDICATOR = 0x1F,
+ CALL_NW_CAUSE = 0x20,
+ CALL_TRACFONE_RESULT = 0x21,
+ CALL_KODIAK_POC = 0x22,
+ CALL_DISPLAY_NUMBER = 0x23,
+ CALL_DESTINATION_URI = 0x24,
+ CALL_ORIGIN_URI = 0x25,
+ CALL_URI = 0x26,
+ CALL_SYSTEM_INFO = 0x27,
+ CALL_SYSTEMS = 0x28,
+ CALL_VOIP_TIMER = 0x29,
+ CALL_REDIRECTING_URI = 0x2A,
+ CALL_REMOTE_URI = 0x2B,
+ CALL_DEFLECTION_URI = 0x2C,
+ CALL_TRANSFER_INFO = 0x2D,
+ CALL_FORWARDING_INFO = 0x2E,
+ CALL_ID_INFO = 0x2F,
+ CALL_TEST_CALL = 0x30,
+ CALL_AUDIO_CONF_INFO = 0x31,
+ CALL_SECURITY_INFO = 0x33,
+ CALL_SINGLE_TIMERS = 0x32,
+ CALL_MEDIA_INFO = 0x35,
+ CALL_MEDIA_HANDLE = 0x34,
+ CALL_MODE_CHANGE_INFO = 0x36,
+ CALL_ADDITIONAL_PARAMS = 0x37,
+ CALL_DSAC_INFO = 0x38
+};
+
+enum call_id {
+ CALL_ID_NONE = 0x00,
+ CALL_ID_1 = 0x01,
+ CALL_ID_2 = 0x02,
+ CALL_ID_3 = 0x03,
+ CALL_ID_4 = 0x04,
+ CALL_ID_5 = 0x05,
+ CALL_ID_6 = 0x06,
+ CALL_ID_7 = 0x07,
+ CALL_ID_CONFERENCE = 0x10,
+ CALL_ID_WAITING = 0x20,
+ CALL_ID_HOLD = 0x40,
+ CALL_ID_ACTIVE = 0x80,
+ CALL_ID_ALL = 0xF0
+};
+
+enum call_mode {
+ CALL_MODE_EMERGENCY = 0x00,
+ CALL_MODE_SPEECH = 0x01,
+ CALL_GSM_MODE_ALS_LINE_1 = 0xA5,
+ CALL_GSM_MODE_ALS_LINE_2 = 0xA2
+};
+
+enum {
+ CALL_MODE_INFO_NONE = 0,
+ CALL_MODE_ORIGINATOR = 0x01
+};
+
+enum {
+ CALL_PRESENTATION_ALLOWED = 0x00,
+ CALL_PRESENTATION_RESTRICTED = 0x01,
+ CALL_GSM_PRESENTATION_DEFAULT = 0x07
+};
+
+enum call_operation {
+ CALL_OP_HOLD = 0x01,
+ CALL_OP_RETRIEVE = 0x02,
+ CALL_OP_SWAP = 0x03,
+ CALL_OP_CONFERENCE_BUILD = 0x04,
+ CALL_OP_CONFERENCE_SPLIT = 0x05,
+ CALL_OP_DATA_RATE_CHANGE = 0x06,
+ CALL_GSM_OP_CUG = 0xA0,
+ CALL_GSM_OP_TRANSFER = 0xA1,
+ CALL_GSM_OP_DEFLECT = 0xA2,
+ CALL_GSM_OP_CCBS = 0xA3,
+ CALL_GSM_OP_UUS1 = 0xA4,
+ CALL_GSM_OP_UUS2 = 0xA5,
+ CALL_GSM_OP_UUS3 = 0xA6
+};
+
+enum {
+ CALL_GSM_OP_UUS_REQUIRED = 0x01
+};
+
+enum call_status_mode {
+ CALL_STATUS_MODE_DEFAULT = 0x00,
+ CALL_STATUS_MODE_ADDR = 0x01,
+ CALL_STATUS_MODE_ADDR_AND_ORIGIN = 0x02,
+ CALL_STATUS_MODE_POC = 0x03,
+ CALL_STATUS_MODE_VOIP_ADDR = 0x04
+};
+
+enum {
+ CALL_DTMF_ENABLE_TONE_IND_SEND = 0x01,
+ CALL_DTMF_DISABLE_TONE_IND_SEND = 0x02
+};
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* !__ISIMODEM_CALL_H */
diff --git a/drivers/isimodem/cbs.c b/drivers/isimodem/cbs.c
index 6b54614a..3b422a55 100644
--- a/drivers/isimodem/cbs.c
+++ b/drivers/isimodem/cbs.c
@@ -39,54 +39,15 @@
#include <ofono/modem.h>
#include <ofono/cbs.h>
-#include "isi.h"
-
-#define PN_SMS 0x02
-#define CBS_TIMEOUT 5
-
-enum message_id {
- SMS_GSM_CB_ROUTING_REQ = 0x0B,
- SMS_GSM_CB_ROUTING_RESP = 0x0C,
- SMS_GSM_CB_ROUTING_NTF = 0x0D
-};
-
-enum routing_command {
- SMS_ROUTING_RELEASE = 0x00,
- SMS_ROUTING_SET = 0x01,
- SMS_ROUTING_SUSPEND = 0x02,
- SMS_ROUTING_RESUME = 0x03,
- SMS_ROUTING_UPDATE = 0x04
-};
-
-enum routing_mode {
- SMS_GSM_ROUTING_MODE_ALL = 0x0B,
- SMS_GSM_ROUTING_MODE_CB_DDL = 0x0C
-};
-
-enum cause {
- SMS_OK = 0x00,
- SMS_ERR_ROUTING_RELEASED = 0x01,
- SMS_ERR_INVALID_PARAMETER = 0x02,
- SMS_ERR_DEVICE_FAILURE = 0x03,
- SMS_ERR_PP_RESERVED = 0x04
-};
-
-enum subject_list_type {
- SMS_CB_ALLOWED_IDS_LIST = 0x00,
- SMS_CB_NOT_ALLOWED_IDS_LIST = 0x01
-};
+#include "isimodem.h"
+#include "isiutil.h"
+#include "sms.h"
+#include "debug.h"
struct cbs_data {
GIsiClient *client;
- struct isi_version version;
};
-static void cbs_debug(const void *restrict buf, size_t len, void *data)
-{
- DBG("");
- dump_msg(buf, len);
-}
-
static void isi_set_topics(struct ofono_cbs *cbs, const char *topics,
ofono_cbs_set_cb_t cb, void *data)
{
diff --git a/drivers/isimodem/debug.h b/drivers/isimodem/debug.h
new file mode 100644
index 00000000..b9ee39a1
--- /dev/null
+++ b/drivers/isimodem/debug.h
@@ -0,0 +1,74 @@
+/*
+ * This file is part of oFono - Open Source Telephony
+ *
+ * Copyright (C) 2009 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_DEBUG_H
+#define __ISIMODEM_DEBUG_H
+
+#include "ss.h"
+#include "mtc.h"
+#include "sms.h"
+#include "sim.h"
+#include "info.h"
+#include "call.h"
+#include "network.h"
+
+const char *ss_message_id_name(enum ss_message_id value);
+const char *ss_subblock_name(enum ss_subblock value);
+
+const char *mtc_isi_cause_name(enum mtc_isi_cause value);
+const char *mtc_message_id_name(enum mtc_message_id value);
+const char *mtc_modem_state_name(enum mtc_modem_state value);
+
+const char *sms_gsm_cause_name(enum sms_gsm_cause value);
+const char *sms_isi_cause_name(enum sms_isi_cause value);
+const char *sms_message_id_name(enum sms_message_id value);
+const char *sms_subblock_name(enum sms_subblock value);
+
+const char *sim_isi_cause_name(enum sim_isi_cause value);
+const char *sim_message_id_name(enum sim_message_id value);
+const char *sim_subblock_name(enum sim_subblock value);
+
+const char *info_isi_cause_name(enum info_isi_cause value);
+const char *info_message_id_name(enum info_message_id value);
+const char *info_subblock_name(enum info_subblock value);
+
+const char *call_gsm_cause_name(enum call_gsm_cause value);
+const char *call_isi_cause_name(enum call_isi_cause value);
+const char *call_status_name(enum call_status value);
+const char *call_message_id_name(enum call_message_id value);
+
+const char *net_gsm_cause_name(enum net_gsm_cause value);
+const char *net_isi_cause_name(enum net_isi_cause value);
+const char *net_status_name(enum net_reg_status value);
+const char *net_message_id_name(enum net_message_id value);
+const char *net_subblock_name(enum net_subblock value);
+
+void ss_debug(const void *restrict buf, size_t len, void *data);
+void mtc_debug(const void *restrict buf, size_t len, void *data);
+void sms_debug(const void *restrict buf, size_t len, void *data);
+void sim_debug(const void *restrict buf, size_t len, void *data);
+void info_debug(const void *restrict buf, size_t len, void *data);
+void call_debug(const void *restrict buf, size_t len, void *data);
+void net_debug(const void *restrict buf, size_t len, void *data);
+
+const char *pn_resource_name(int value);
+
+#endif /* __ISIMODEM_DEBUG_H */
diff --git a/drivers/isimodem/devinfo.c b/drivers/isimodem/devinfo.c
index 481c5206..5f960003 100644
--- a/drivers/isimodem/devinfo.c
+++ b/drivers/isimodem/devinfo.c
@@ -40,46 +40,10 @@
#include <ofono/modem.h>
#include <ofono/devinfo.h>
-#include "isi.h"
-
-#define PN_PHONE_INFO 0x1B
-#define INFO_TIMEOUT 5
-
-enum return_code {
- INFO_OK = 0x00,
- INFO_FAIL = 0x01,
- INFO_NO_NUMBER = 0x02,
- INFO_NOT_SUPPORTED = 0x03
-};
-
-enum message_id {
- INFO_SERIAL_NUMBER_READ_REQ = 0x00,
- INFO_SERIAL_NUMBER_READ_RESP = 0x01,
- INFO_VERSION_READ_REQ = 0x07,
- INFO_VERSION_READ_RESP = 0x08,
- INFO_PRODUCT_INFO_READ_REQ = 0x15,
- INFO_PRODUCT_INFO_READ_RESP = 0x16
-};
-
-enum sub_block_id {
- INFO_SB_PRODUCT_INFO_NAME = 0x01,
- INFO_SB_PRODUCT_INFO_MANUFACTURER = 0x07,
- INFO_SB_SN_IMEI_PLAIN = 0x41,
- INFO_SB_MCUSW_VERSION = 0x48
-};
-
-enum product_info_type {
- INFO_PRODUCT_NAME = 0x01,
- INFO_PRODUCT_MANUFACTURER = 0x07
-};
-
-enum serial_number_type {
- INFO_SN_IMEI_PLAIN = 0x41
-};
-
-enum version_type {
- INFO_MCUSW = 0x01
-};
+#include "isimodem.h"
+#include "isiutil.h"
+#include "debug.h"
+#include "info.h"
struct devinfo_data {
GIsiClient *client;
diff --git a/drivers/isimodem/info.h b/drivers/isimodem/info.h
new file mode 100644
index 00000000..759721c9
--- /dev/null
+++ b/drivers/isimodem/info.h
@@ -0,0 +1,73 @@
+/*
+ * This file is part of oFono - Open Source Telephony
+ *
+ * Copyright (C) 2009 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_INFO_H
+#define __ISIMODEM_INFO_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PN_PHONE_INFO 0x1B
+#define INFO_TIMEOUT 5
+
+enum info_isi_cause {
+ INFO_OK = 0x00,
+ INFO_FAIL = 0x01,
+ INFO_NO_NUMBER = 0x02,
+ INFO_NOT_SUPPORTED = 0x03
+};
+
+enum info_message_id {
+ INFO_SERIAL_NUMBER_READ_REQ = 0x00,
+ INFO_SERIAL_NUMBER_READ_RESP = 0x01,
+ INFO_VERSION_READ_REQ = 0x07,
+ INFO_VERSION_READ_RESP = 0x08,
+ INFO_PRODUCT_INFO_READ_REQ = 0x15,
+ INFO_PRODUCT_INFO_READ_RESP = 0x16,
+ INFO_COMMON_MESSAGE = 0xF0
+};
+
+enum info_subblock {
+ INFO_SB_PRODUCT_INFO_NAME = 0x01,
+ INFO_SB_PRODUCT_INFO_MANUFACTURER = 0x07,
+ INFO_SB_SN_IMEI_PLAIN = 0x41,
+ INFO_SB_MCUSW_VERSION = 0x48
+};
+
+enum info_product_info_type {
+ INFO_PRODUCT_NAME = 0x01,
+ INFO_PRODUCT_MANUFACTURER = 0x07
+};
+
+enum info_serial_number_type {
+ INFO_SN_IMEI_PLAIN = 0x41
+};
+
+enum info_version_type {
+ INFO_MCUSW = 0x01
+};
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* !__ISIMODEM_INFO_H */
diff --git a/drivers/isimodem/isi-call.h b/drivers/isimodem/isi-call.h
deleted file mode 100644
index 98f7583f..00000000
--- a/drivers/isimodem/isi-call.h
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
- * This file is part of oFono - Open Source Telephony
- *
- * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
- *
- * Contact: <Pekka.Pessi@nokia.com>
- *
- * 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 __GISI_CALL_H
-#define __GISI_CALL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-
-#define PN_CALL 0x01
-
-enum isi_call_message_id {
- CALL_CREATE_REQ = 0x01,
- CALL_CREATE_RESP = 0x02,
- CALL_COMING_IND = 0x03,
- CALL_MO_ALERT_IND = 0x04,
- CALL_MT_ALERT_IND = 0x05,
- CALL_WAITING_IND = 0x06,
- CALL_ANSWER_REQ = 0x07,
- CALL_ANSWER_RESP = 0x08,
- CALL_RELEASE_REQ = 0x09,
- CALL_RELEASE_RESP = 0x0A,
- CALL_RELEASE_IND = 0x0B,
- CALL_TERMINATED_IND = 0x0C,
- CALL_STATUS_REQ = 0x0D,
- CALL_STATUS_RESP = 0x0E,
- CALL_STATUS_IND = 0x0F,
- CALL_SERVER_STATUS_IND = 0x10,
- CALL_CONTROL_REQ = 0x11,
- CALL_CONTROL_RESP = 0x12,
- CALL_CONTROL_IND = 0x13,
- CALL_MODE_SWITCH_REQ = 0x14,
- CALL_MODE_SWITCH_RESP = 0x15,
- CALL_MODE_SWITCH_IND = 0x16,
- CALL_DTMF_SEND_REQ = 0x17,
- CALL_DTMF_SEND_RESP = 0x18,
- CALL_DTMF_STOP_REQ = 0x19,
- CALL_DTMF_STOP_RESP = 0x1A,
- CALL_DTMF_STATUS_IND = 0x1B,
- CALL_DTMF_TONE_IND = 0x1C,
- CALL_RECONNECT_IND = 0x1E,
- CALL_PROPERTY_GET_REQ = 0x1F,
- CALL_PROPERTY_GET_RESP = 0x20,
- CALL_PROPERTY_SET_REQ = 0x21,
- CALL_PROPERTY_SET_RESP = 0x22,
- CALL_PROPERTY_SET_IND = 0x23,
- CALL_EMERGENCY_NBR_CHECK_REQ = 0x28,
- CALL_EMERGENCY_NBR_CHECK_RESP = 0x29,
- CALL_EMERGENCY_NBR_GET_REQ = 0x26,
- CALL_EMERGENCY_NBR_GET_RESP = 0x27,
- CALL_EMERGENCY_NBR_MODIFY_REQ = 0x24,
- CALL_EMERGENCY_NBR_MODIFY_RESP = 0x25,
- CALL_GSM_NOTIFICATION_IND = 0xA0,
- CALL_GSM_USER_TO_USER_REQ = 0xA1,
- CALL_GSM_USER_TO_USER_RESP = 0xA2,
- CALL_GSM_USER_TO_USER_IND = 0xA3,
- CALL_GSM_BLACKLIST_CLEAR_REQ = 0xA4,
- CALL_GSM_BLACKLIST_CLEAR_RESP = 0xA5,
- CALL_GSM_BLACKLIST_TIMER_IND = 0xA6,
- CALL_GSM_DATA_CH_INFO_IND = 0xA7,
- CALL_GSM_CCP_GET_REQ = 0xAA,
- CALL_GSM_CCP_GET_RESP = 0xAB,
- CALL_GSM_CCP_CHECK_REQ = 0xAC,
- CALL_GSM_CCP_CHECK_RESP = 0xAD,
- CALL_GSM_COMING_REJ_IND = 0xA9,
- CALL_GSM_RAB_IND = 0xA8,
- CALL_GSM_IMMEDIATE_MODIFY_IND = 0xAE,
- CALL_CREATE_NO_SIMATK_REQ = 0x2A,
- CALL_GSM_SS_DATA_IND = 0xAF,
- CALL_TIMER_REQ = 0x2B,
- CALL_TIMER_RESP = 0x2C,
- CALL_TIMER_NTF = 0x2D,
- CALL_TIMER_IND = 0x2E,
- CALL_TIMER_RESET_REQ = 0x2F,
- CALL_TIMER_RESET_RESP = 0x30,
- CALL_EMERGENCY_NBR_IND = 0x31,
- CALL_SERVICE_DENIED_IND = 0x32,
- CALL_RELEASE_END_REQ = 0x34,
- CALL_RELEASE_END_RESP = 0x35,
- CALL_USER_CONNECT_IND = 0x33,
- CALL_AUDIO_CONNECT_IND = 0x40,
- CALL_KODIAK_ALLOW_CTRL_REQ = 0x36,
- CALL_KODIAK_ALLOW_CTRL_RESP = 0x37,
- CALL_SERVICE_ACTIVATE_IND = 0x38,
- CALL_SERVICE_ACTIVATE_REQ = 0x39,
- CALL_SERVICE_ACTIVATE_RESP = 0x3A,
- CALL_SIM_ATK_IND = 0x3B,
- CALL_CONTROL_OPER_IND = 0x3C,
- CALL_TEST_CALL_STATUS_IND = 0x3E,
- CALL_SIM_ATK_INFO_IND = 0x3F,
- CALL_SECURITY_IND = 0x41,
- CALL_MEDIA_HANDLE_REQ = 0x42,
- CALL_MEDIA_HANDLE_RESP = 0x43,
- COMMON_MESSAGE = 0xF0,
-};
-
-enum isi_call_status {
- CALL_STATUS_IDLE = 0x00,
- CALL_STATUS_CREATE = 0x01,
- CALL_STATUS_COMING = 0x02,
- CALL_STATUS_PROCEEDING = 0x03,
- CALL_STATUS_MO_ALERTING = 0x04,
- CALL_STATUS_MT_ALERTING = 0x05,
- CALL_STATUS_WAITING = 0x06,
- CALL_STATUS_ANSWERED = 0x07,
- CALL_STATUS_ACTIVE = 0x08,
- CALL_STATUS_MO_RELEASE = 0x09,
- CALL_STATUS_MT_RELEASE = 0x0A,
- CALL_STATUS_HOLD_INITIATED = 0x0B,
- CALL_STATUS_HOLD = 0x0C,
- CALL_STATUS_RETRIEVE_INITIATED = 0x0D,
- CALL_STATUS_RECONNECT_PENDING = 0x0E,
- CALL_STATUS_TERMINATED = 0x0F,
- CALL_STATUS_SWAP_INITIATED = 0x10,
-};
-
-enum isi_call_isi_cause {
- CALL_CAUSE_NO_CAUSE = 0x00,
- CALL_CAUSE_NO_CALL = 0x01,
- CALL_CAUSE_TIMEOUT = 0x02,
- CALL_CAUSE_RELEASE_BY_USER = 0x03,
- CALL_CAUSE_BUSY_USER_REQUEST = 0x04,
- CALL_CAUSE_ERROR_REQUEST = 0x05,
- CALL_CAUSE_COST_LIMIT_REACHED = 0x06,
- CALL_CAUSE_CALL_ACTIVE = 0x07,
- CALL_CAUSE_NO_CALL_ACTIVE = 0x08,
- CALL_CAUSE_INVALID_CALL_MODE = 0x09,
- CALL_CAUSE_SIGNALLING_FAILURE = 0x0A,
- CALL_CAUSE_TOO_LONG_ADDRESS = 0x0B,
- CALL_CAUSE_INVALID_ADDRESS = 0x0C,
- CALL_CAUSE_EMERGENCY = 0x0D,
- CALL_CAUSE_NO_TRAFFIC_CHANNEL = 0x0E,
- CALL_CAUSE_NO_COVERAGE = 0x0F,
- CALL_CAUSE_CODE_REQUIRED = 0x10,
- CALL_CAUSE_NOT_ALLOWED = 0x11,
- CALL_CAUSE_NO_DTMF = 0x12,
- CALL_CAUSE_CHANNEL_LOSS = 0x13,
- CALL_CAUSE_FDN_NOT_OK = 0x14,
- CALL_CAUSE_USER_TERMINATED = 0x15,
- CALL_CAUSE_BLACKLIST_BLOCKED = 0x16,
- CALL_CAUSE_BLACKLIST_DELAYED = 0x17,
- CALL_CAUSE_NUMBER_NOT_FOUND = 0x18,
- CALL_CAUSE_NUMBER_CANNOT_REMOVE = 0x19,
- CALL_CAUSE_EMERGENCY_FAILURE = 0x1A,
- CALL_CAUSE_CS_SUSPENDED = 0x1B,
- CALL_CAUSE_DCM_DRIVE_MODE = 0x1C,
- CALL_CAUSE_MULTIMEDIA_NOT_ALLOWED = 0x1D,
- CALL_CAUSE_SIM_REJECTED = 0x1E,
- CALL_CAUSE_NO_SIM = 0x1F,
- CALL_CAUSE_SIM_LOCK_OPERATIVE = 0x20,
- CALL_CAUSE_SIMATKCC_REJECTED = 0x21,
- CALL_CAUSE_SIMATKCC_MODIFIED = 0x22,
- CALL_CAUSE_DTMF_INVALID_DIGIT = 0x23,
- CALL_CAUSE_DTMF_SEND_ONGOING = 0x24,
- CALL_CAUSE_CS_INACTIVE = 0x25,
- CALL_CAUSE_SECURITY_MODE = 0x26,
- CALL_CAUSE_TRACFONE_FAILED = 0x27,
- CALL_CAUSE_TRACFONE_WAIT_FAILED = 0x28,
- CALL_CAUSE_TRACFONE_CONF_FAILED = 0x29,
- CALL_CAUSE_TEMPERATURE_LIMIT = 0x2A,
- CALL_CAUSE_KODIAK_POC_FAILED = 0x2B,
- CALL_CAUSE_NOT_REGISTERED = 0x2C,
- CALL_CAUSE_CS_CALLS_ONLY = 0x2D,
- CALL_CAUSE_VOIP_CALLS_ONLY = 0x2E,
- CALL_CAUSE_LIMITED_CALL_ACTIVE = 0x2F,
- CALL_CAUSE_LIMITED_CALL_NOT_ALLOWED = 0x30,
- CALL_CAUSE_SECURE_CALL_NOT_POSSIBLE = 0x31,
- CALL_CAUSE_INTERCEPT = 0x32,
-};
-
-enum isi_call_gsm_cause {
- CALL_GSM_CAUSE_UNASSIGNED_NUMBER = 0x01,
- CALL_GSM_CAUSE_NO_ROUTE = 0x03,
- CALL_GSM_CAUSE_CH_UNACCEPTABLE = 0x06,
- CALL_GSM_CAUSE_OPER_BARRING = 0x08,
- CALL_GSM_CAUSE_NORMAL = 0x10,
- CALL_GSM_CAUSE_USER_BUSY = 0x11,
- CALL_GSM_CAUSE_NO_USER_RESPONSE = 0x12,
- CALL_GSM_CAUSE_ALERT_NO_ANSWER = 0x13,
- CALL_GSM_CAUSE_CALL_REJECTED = 0x15,
- CALL_GSM_CAUSE_NUMBER_CHANGED = 0x16,
- CALL_GSM_CAUSE_NON_SELECT_CLEAR = 0x1A,
- CALL_GSM_CAUSE_DEST_OUT_OF_ORDER = 0x1B,
- CALL_GSM_CAUSE_INVALID_NUMBER = 0x1C,
- CALL_GSM_CAUSE_FACILITY_REJECTED = 0x1D,
- CALL_GSM_CAUSE_RESP_TO_STATUS = 0x1E,
- CALL_GSM_CAUSE_NORMAL_UNSPECIFIED = 0x1F,
- CALL_GSM_CAUSE_NO_CHANNEL = 0x22,
- CALL_GSM_CAUSE_NETW_OUT_OF_ORDER = 0x26,
- CALL_GSM_CAUSE_TEMPORARY_FAILURE = 0x29,
- CALL_GSM_CAUSE_CONGESTION = 0x2A,
- CALL_GSM_CAUSE_ACCESS_INFO_DISC = 0x2B,
- CALL_GSM_CAUSE_CHANNEL_NA = 0x2C,
- CALL_GSM_CAUSE_RESOURCES_NA = 0x2F,
- CALL_GSM_CAUSE_QOS_NA = 0x31,
- CALL_GSM_CAUSE_FACILITY_UNSUBS = 0x32,
- CALL_GSM_CAUSE_COMING_BARRED_CUG = 0x37,
- CALL_GSM_CAUSE_BC_UNAUTHORIZED = 0x39,
- CALL_GSM_CAUSE_BC_NA = 0x3A,
- CALL_GSM_CAUSE_SERVICE_NA = 0x3F,
- CALL_GSM_CAUSE_BEARER_NOT_IMPL = 0x41,
- CALL_GSM_CAUSE_ACM_MAX = 0x44,
- CALL_GSM_CAUSE_FACILITY_NOT_IMPL = 0x45,
- CALL_GSM_CAUSE_ONLY_RDI_BC = 0x46,
- CALL_GSM_CAUSE_SERVICE_NOT_IMPL = 0x4F,
- CALL_GSM_CAUSE_INVALID_TI = 0x51,
- CALL_GSM_CAUSE_NOT_IN_CUG = 0x57,
- CALL_GSM_CAUSE_INCOMPATIBLE_DEST = 0x58,
- CALL_GSM_CAUSE_INV_TRANS_NET_SEL = 0x5B,
- CALL_GSM_CAUSE_SEMANTICAL_ERR = 0x5F,
- CALL_GSM_CAUSE_INVALID_MANDATORY = 0x60,
- CALL_GSM_CAUSE_MSG_TYPE_INEXIST = 0x61,
- CALL_GSM_CAUSE_MSG_TYPE_INCOMPAT = 0x62,
- CALL_GSM_CAUSE_IE_NON_EXISTENT = 0x63,
- CALL_GSM_CAUSE_COND_IE_ERROR = 0x64,
- CALL_GSM_CAUSE_MSG_INCOMPATIBLE = 0x65,
- CALL_GSM_CAUSE_TIMER_EXPIRY = 0x66,
- CALL_GSM_CAUSE_PROTOCOL_ERROR = 0x6F,
- CALL_GSM_CAUSE_INTERWORKING = 0x7F,
-};
-
-enum isi_call_cause_type {
- CALL_CAUSE_TYPE_DEFAULT = 0x00,
- CALL_CAUSE_TYPE_CLIENT = 0x01,
- CALL_CAUSE_TYPE_SERVER = 0x02,
- CALL_CAUSE_TYPE_NETWORK = 0x03,
-};
-
-enum isi_call_subblock {
- CALL_ORIGIN_ADDRESS = 0x01,
- CALL_ORIGIN_SUBADDRESS = 0x02,
- CALL_DESTINATION_ADDRESS = 0x03,
- CALL_DESTINATION_SUBADDRESS = 0x04,
- CALL_DESTINATION_PRE_ADDRESS = 0x05,
- CALL_DESTINATION_POST_ADDRESS = 0x06,
- CALL_MODE = 0x07,
- CALL_CAUSE = 0x08,
- CALL_OPERATION = 0x09,
- CALL_STATUS = 0x0A,
- CALL_STATUS_INFO = 0x0B,
- CALL_ALERTING_INFO = 0x0C,
- CALL_RELEASE_INFO = 0x0D,
- CALL_ORIGIN_INFO = 0x0E,
- CALL_DTMF_DIGIT = 0x0F,
- CALL_DTMF_STRING = 0x10,
- CALL_DTMF_BCD_STRING = 0x19,
- CALL_DTMF_INFO = 0x1A,
- CALL_PROPERTY_INFO = 0x13,
- CALL_EMERGENCY_NUMBER = 0x14,
- CALL_DTMF_STATUS = 0x11,
- CALL_DTMF_TONE = 0x12,
- CALL_GSM_CUG_INFO = 0xA0,
- CALL_GSM_ALERTING_PATTERN = 0xA1,
- CALL_GSM_DEFLECTION_ADDRESS = 0xA2,
- CALL_GSM_DEFLECTION_SUBADDRESS = 0xA3,
- CALL_GSM_REDIRECTING_ADDRESS = 0xA4,
- CALL_GSM_REDIRECTING_SUBADDRESS = 0xA5,
- CALL_GSM_REMOTE_ADDRESS = 0xA6,
- CALL_GSM_REMOTE_SUBADDRESS = 0xA7,
- CALL_GSM_USER_TO_USER_INFO = 0xA8,
- CALL_GSM_DIAGNOSTICS = 0xA9,
- CALL_GSM_SS_DIAGNOSTICS = 0xAA,
- CALL_GSM_NEW_DESTINATION = 0xAB,
- CALL_GSM_CCBS_INFO = 0xAC,
- CALL_GSM_ADDRESS_OF_B = 0xAD,
- CALL_GSM_SUBADDRESS_OF_B = 0xB0,
- CALL_GSM_NOTIFY = 0xB1,
- CALL_GSM_SS_NOTIFY = 0xB2,
- CALL_GSM_SS_CODE = 0xB3,
- CALL_GSM_SS_STATUS = 0xB4,
- CALL_GSM_SS_NOTIFY_INDICATOR = 0xB5,
- CALL_GSM_SS_HOLD_INDICATOR = 0xB6,
- CALL_GSM_SS_ECT_INDICATOR = 0xB7,
- CALL_GSM_DATA_CH_INFO = 0xB8,
- CALL_DESTINATION_CS_ADDRESS = 0x16,
- CALL_GSM_CCP = 0xBA,
- CALL_GSM_RAB_INFO = 0xB9,
- CALL_GSM_FNUR_INFO = 0xBB,
- CALL_GSM_CAUSE_OF_NO_CLI = 0xBC,
- CALL_GSM_MM_CAUSE = 0xBD,
- CALL_GSM_EVENT_INFO = 0xBE,
- CALL_GSM_DETAILED_CAUSE = 0xBF,
- CALL_GSM_SS_DATA = 0xC0,
- CALL_TIMER = 0x17,
- CALL_GSM_ALS_INFO = 0xC1,
- CALL_STATE_AUTO_CHANGE = 0x18,
- CALL_EMERGENCY_NUMBER_INFO = 0x1B,
- CALL_STATUS_MODE = 0x1C,
- CALL_ADDR_AND_STATUS_INFO = 0x1D,
- CALL_DTMF_TIMERS = 0x1E,
- CALL_NAS_SYNC_INDICATOR = 0x1F,
- CALL_NW_CAUSE = 0x20,
- CALL_TRACFONE_RESULT = 0x21,
- CALL_KODIAK_POC = 0x22,
- CALL_DISPLAY_NUMBER = 0x23,
- CALL_DESTINATION_URI = 0x24,
- CALL_ORIGIN_URI = 0x25,
- CALL_URI = 0x26,
- CALL_SYSTEM_INFO = 0x27,
- CALL_SYSTEMS = 0x28,
- CALL_VOIP_TIMER = 0x29,
- CALL_REDIRECTING_URI = 0x2A,
- CALL_REMOTE_URI = 0x2B,
- CALL_DEFLECTION_URI = 0x2C,
- CALL_TRANSFER_INFO = 0x2D,
- CALL_FORWARDING_INFO = 0x2E,
- CALL_ID_INFO = 0x2F,
- CALL_TEST_CALL = 0x30,
- CALL_AUDIO_CONF_INFO = 0x31,
- CALL_SECURITY_INFO = 0x33,
- CALL_SINGLE_TIMERS = 0x32,
- CALL_MEDIA_INFO = 0x35,
- CALL_MEDIA_HANDLE = 0x34,
- CALL_MODE_CHANGE_INFO = 0x36,
- CALL_ADDITIONAL_PARAMS = 0x37,
- CALL_DSAC_INFO = 0x38,
-};
-
-enum isi_call_id {
- CALL_ID_NONE = 0x00,
- CALL_ID_1 = 0x01,
- CALL_ID_2 = 0x02,
- CALL_ID_3 = 0x03,
- CALL_ID_4 = 0x04,
- CALL_ID_5 = 0x05,
- CALL_ID_6 = 0x06,
- CALL_ID_7 = 0x07,
- CALL_ID_CONFERENCE = 0x10,
- CALL_ID_WAITING = 0x20,
- CALL_ID_HOLD = 0x40,
- CALL_ID_ACTIVE = 0x80,
- CALL_ID_ALL = 0xF0,
-};
-
-enum isi_call_mode {
- CALL_MODE_EMERGENCY = 0x00,
- CALL_MODE_SPEECH = 0x01,
- CALL_GSM_MODE_ALS_LINE_1 = 0xA5,
- CALL_GSM_MODE_ALS_LINE_2 = 0xA2,
-};
-
-enum {
- CALL_MODE_INFO_NONE = 0,
- CALL_MODE_ORIGINATOR = 0x01,
-};
-
-enum {
- CALL_PRESENTATION_ALLOWED = 0x00,
- CALL_PRESENTATION_RESTRICTED = 0x01,
- CALL_GSM_PRESENTATION_DEFAULT = 0x07,
-};
-
-enum isi_call_operation {
- CALL_OP_HOLD = 0x01,
- CALL_OP_RETRIEVE = 0x02,
- CALL_OP_SWAP = 0x03,
- CALL_OP_CONFERENCE_BUILD = 0x04,
- CALL_OP_CONFERENCE_SPLIT = 0x05,
- CALL_OP_DATA_RATE_CHANGE = 0x06,
- CALL_GSM_OP_CUG = 0xA0,
- CALL_GSM_OP_TRANSFER = 0xA1,
- CALL_GSM_OP_DEFLECT = 0xA2,
- CALL_GSM_OP_CCBS = 0xA3,
- CALL_GSM_OP_UUS1 = 0xA4,
- CALL_GSM_OP_UUS2 = 0xA5,
- CALL_GSM_OP_UUS3 = 0xA6,
-};
-
-enum {
- CALL_GSM_OP_UUS_REQUIRED = 0x01,
-};
-
-enum call_status_mode {
- CALL_STATUS_MODE_DEFAULT = 0x00,
- CALL_STATUS_MODE_ADDR = 0x01,
- CALL_STATUS_MODE_ADDR_AND_ORIGIN = 0x02,
- CALL_STATUS_MODE_POC = 0x03,
- CALL_STATUS_MODE_VOIP_ADDR = 0x04,
-};
-
-enum {
- CALL_DTMF_ENABLE_TONE_IND_SEND = 0x01,
- CALL_DTMF_DISABLE_TONE_IND_SEND = 0x02,
-};
-
-char const *isi_call_cause_name(uint8_t cause_type, uint8_t cause);
-char const *isi_call_gsm_cause_name(enum isi_call_gsm_cause value);
-char const *isi_call_isi_cause_name(enum isi_call_isi_cause value);
-char const *isi_call_status_name(enum isi_call_status value);
-char const *isi_call_message_id_name(enum isi_call_message_id value);
-
-void isi_call_debug(const void *restrict buf, size_t len, void *data);
-
-#ifdef __cplusplus
-};
-#endif
-
-#endif
diff --git a/drivers/isimodem/mtc.h b/drivers/isimodem/mtc.h
new file mode 100644
index 00000000..59aaaf9f
--- /dev/null
+++ b/drivers/isimodem/mtc.h
@@ -0,0 +1,79 @@
+/*
+ * This file is part of oFono - Open Source Telephony
+ *
+ * Copyright (C) 2009 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_MTC_H
+#define __ISIMODEM_MTC_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PN_MTC 0x15
+#define MTC_TIMEOUT 5
+
+enum mtc_isi_cause {
+ MTC_OK = 0x00,
+ MTC_FAIL = 0x01,
+ MTC_NOT_ALLOWED = 0x02,
+ MTC_STATE_TRANSITION_GOING_ON = 0x05,
+ MTC_ALREADY_ACTIVE = 0x06,
+ MTC_SERVICE_DISABLED = 0x10,
+ MTC_NOT_READY_YET = 0x13,
+ MTC_NOT_SUPPORTED = 0x14,
+ MTC_TRANSITION_ONGOING = 0x16,
+ MTC_RESET_REQUIRED = 0x17
+};
+
+enum mtc_message_id {
+ MTC_STATE_QUERY_REQ = 0x02,
+ MTC_POWER_OFF_REQ = 0x03,
+ MTC_POWER_ON_REQ = 0x04,
+ MTC_STATE_QUERY_RESP = 0x65,
+ MTC_POWER_OFF_RESP = 0x66,
+ MTC_POWER_ON_RESP = 0x67,
+ MTC_STATE_INFO_IND = 0xC0,
+ MTC_COMMON_MESSAGE = 0xF0
+};
+
+enum mtc_modem_state {
+ MTC_POWER_OFF = 0x00,
+ MTC_NORMAL = 0x01,
+ MTC_CHARGING = 0x02,
+ MTC_ALARM = 0x03,
+ MTC_TEST = 0x04,
+ MTC_LOCAL = 0x05,
+ MTC_WARRANTY = 0x06,
+ MTC_RELIABILITY = 0x07,
+ MTC_SELFTEST_FAIL = 0x08,
+ MTC_SWDL = 0x09,
+ MTC_RF_INACTIVE = 0x0A,
+ MTC_ID_WRITE = 0x0B,
+ MTC_DISCHARGING = 0x0C,
+ MTC_DISK_WIPE = 0x0D,
+ MTC_SW_RESET = 0x0E,
+ MTC_CMT_ONLY_MODE = 0xFF
+};
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* __ISIMODEM_MTC_H */
diff --git a/drivers/isimodem/network-registration.c b/drivers/isimodem/network-registration.c
index e05f30eb..9ade176e 100644
--- a/drivers/isimodem/network-registration.c
+++ b/drivers/isimodem/network-registration.c
@@ -40,107 +40,13 @@
#include <ofono/modem.h>
#include <ofono/netreg.h>
-#include "isi.h"
-
-#define PN_NETWORK 0x0A
-#define NETWORK_TIMEOUT 5
-#define NETWORK_SCAN_TIMEOUT 180
-#define NETWORK_SET_TIMEOUT 240
-
-enum message_id {
- NET_SET_REQ = 0x07,
- NET_SET_RESP = 0x08,
- NET_RSSI_GET_REQ = 0x0B,
- NET_RSSI_GET_RESP = 0x0C,
- NET_RSSI_IND = 0x1E,
- NET_RAT_IND = 0x35,
- NET_RAT_REQ = 0x36,
- NET_RAT_RESP = 0x37,
- NET_REG_STATUS_GET_REQ = 0xE0,
- NET_REG_STATUS_GET_RESP = 0xE1,
- NET_REG_STATUS_IND = 0xE2,
- NET_AVAILABLE_GET_REQ = 0xE3,
- NET_AVAILABLE_GET_RESP = 0xE4,
- NET_OPER_NAME_READ_REQ = 0xE5,
- NET_OPER_NAME_READ_RESP = 0xE6,
-};
-
-enum sub_block_id {
- NET_REG_INFO_COMMON = 0x00,
- NET_OPERATOR_INFO_COMMON = 0x02,
- NET_RSSI_CURRENT = 0x04,
- NET_GSM_REG_INFO = 0x09,
- NET_DETAILED_NETWORK_INFO = 0x0B,
- NET_GSM_OPERATOR_INFO = 0x0C,
- NET_GSM_BAND_INFO = 0x11,
- NET_RAT_INFO = 0x2C,
- NET_AVAIL_NETWORK_INFO_COMMON = 0xE1,
- NET_OPER_NAME_INFO = 0xE7
-};
-
-enum reg_status {
- NET_REG_STATUS_HOME = 0x00,
- NET_REG_STATUS_ROAM = 0x01,
- NET_REG_STATUS_NOSERV = 0x03,
- NET_REG_STATUS_NOSERV_SEARCHING = 0x04,
- NET_REG_STATUS_NOSERV_NOTSEARCHING = 0x05,
- NET_REG_STATUS_NOSERV_NOSIM = 0x06,
- NET_REG_STATUS_POWER_OFF = 0x08,
- NET_REG_STATUS_NSPS = 0x09,
- NET_REG_STATUS_NSPS_NO_COVERAGE = 0x0A,
- NET_REG_STATUS_NOSERV_SIM_REJECTED_BY_NW = 0x0B
-};
-
-enum cs_type {
- NET_CS_GSM = 0x00
-};
-
-enum rat_name {
- NET_GSM_RAT = 0x01,
- NET_UMTS_RAT = 0x02
-};
-
-enum rat_type {
- NET_CURRENT_RAT = 0x00,
- NET_SUPPORTED_RATS = 0x01
-};
-
-enum measurement_type {
- NET_CURRENT_CELL_RSSI = 0x02
-};
-
-enum search_mode {
- NET_MANUAL_SEARCH = 0x00
-};
-
-enum oper_name_type {
- NET_HARDCODED_LATIN_OPER_NAME = 0x00
-};
-
-enum band_info {
- NET_GSM_BAND_INFO_NOT_AVAIL = 0x02,
- NET_GSM_BAND_ALL_SUPPORTED_BANDS = 0x03
-};
-
-enum select_mode {
- NET_SELECT_MODE_UNKNOWN = 0x00,
- NET_SELECT_MODE_MANUAL = 0x01,
- NET_SELECT_MODE_AUTOMATIC = 0x02,
- NET_SELECT_MODE_USER_RESELECTION = 0x03,
- NET_SELECT_MODE_NO_SELECTION = 0x04
-};
-
-enum return_code {
- NET_CAUSE_OK = 0x00,
- NET_CAUSE_COMMUNICATION_ERROR = 0x01,
- NET_CAUSE_NET_NOT_FOUND = 0x05,
- NET_CAUSE_NO_SELECTED_NETWORK = 0x11
-};
+#include "isimodem.h"
+#include "isiutil.h"
+#include "network.h"
+#include "debug.h"
struct netreg_data {
GIsiClient *client;
- struct isi_version version;
-
guint8 last_reg_mode;
guint8 rat;
guint8 gsm_compact;
diff --git a/drivers/isimodem/network.h b/drivers/isimodem/network.h
new file mode 100644
index 00000000..ec52321e
--- /dev/null
+++ b/drivers/isimodem/network.h
@@ -0,0 +1,209 @@
+/*
+ * This file is part of oFono - Open Source Telephony
+ *
+ * Copyright (C) 2009 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_NETWORK_H
+#define __ISIMODEM_NETWORK_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PN_NETWORK 0x0A
+#define NETWORK_TIMEOUT 5
+#define NETWORK_SCAN_TIMEOUT 180
+#define NETWORK_SET_TIMEOUT 240
+
+enum net_message_id {
+ NET_SET_REQ = 0x07,
+ NET_SET_RESP = 0x08,
+ NET_RSSI_GET_REQ = 0x0B,
+ NET_RSSI_GET_RESP = 0x0C,
+ NET_RSSI_IND = 0x1E,
+ NET_RAT_IND = 0x35,
+ NET_RAT_REQ = 0x36,
+ NET_RAT_RESP = 0x37,
+ NET_REG_STATUS_GET_REQ = 0xE0,
+ NET_REG_STATUS_GET_RESP = 0xE1,
+ NET_REG_STATUS_IND = 0xE2,
+ NET_AVAILABLE_GET_REQ = 0xE3,
+ NET_AVAILABLE_GET_RESP = 0xE4,
+ NET_OPER_NAME_READ_REQ = 0xE5,
+ NET_OPER_NAME_READ_RESP = 0xE6,
+ NET_COMMON_MESSAGE = 0xF0
+};
+
+enum net_subblock {
+ NET_REG_INFO_COMMON = 0x00,
+ NET_OPERATOR_INFO_COMMON = 0x02,
+ NET_RSSI_CURRENT = 0x04,
+ NET_GSM_REG_INFO = 0x09,
+ NET_DETAILED_NETWORK_INFO = 0x0B,
+ NET_GSM_OPERATOR_INFO = 0x0C,
+ NET_GSM_BAND_INFO = 0x11,
+ NET_RAT_INFO = 0x2C,
+ NET_AVAIL_NETWORK_INFO_COMMON = 0xE1,
+ NET_OPER_NAME_INFO = 0xE7
+};
+
+enum net_reg_status {
+ NET_REG_STATUS_HOME = 0x00,
+ NET_REG_STATUS_ROAM = 0x01,
+ NET_REG_STATUS_ROAM_BLINK = 0x02,
+ NET_REG_STATUS_NOSERV = 0x03,
+ NET_REG_STATUS_NOSERV_SEARCHING = 0x04,
+ NET_REG_STATUS_NOSERV_NOTSEARCHING = 0x05,
+ NET_REG_STATUS_NOSERV_NOSIM = 0x06,
+ NET_REG_STATUS_POWER_OFF = 0x08,
+ NET_REG_STATUS_NSPS = 0x09,
+ NET_REG_STATUS_NSPS_NO_COVERAGE = 0x0A,
+ NET_REG_STATUS_NOSERV_SIM_REJECTED_BY_NW = 0x0B
+};
+
+enum net_network_status {
+ NET_OPER_STATUS_UNKNOWN = 0x00,
+ NET_OPER_STATUS_AVAILABLE = 0x01,
+ NET_OPER_STATUS_CURRENT = 0x02,
+ NET_OPER_STATUS_FORBIDDEN = 0x03
+};
+
+enum net_network_pref {
+ NET_GSM_HOME_PLMN = 0x00,
+ NET_GSM_PREFERRED_PLMN = 0x01,
+ NET_GSM_FORBIDDEN_PLMN = 0x02,
+ NET_GSM_OTHER_PLMN = 0x03,
+ NET_GSM_NO_PLMN_AVAIL = 0x04
+};
+
+enum net_umts_available {
+ NET_UMTS_NOT_AVAILABLE = 0x00,
+ NET_UMTS_AVAILABLE = 0x01
+};
+
+enum net_band_info {
+ NET_GSM_BAND_900_1800 = 0x00,
+ NET_GSM_BAND_850_1900 = 0x01,
+ NET_GSM_BAND_INFO_NOT_AVAIL = 0x02,
+ NET_GSM_BAND_ALL_SUPPORTED_BANDS = 0x03,
+ NET_GSM_BAND_850_LOCKED = 0xB0,
+ NET_GSM_BAND_900_LOCKED = 0xA0,
+ NET_GSM_BAND_1800_LOCKED = 0xA1,
+ NET_GSM_BAND_1900_LOCKED = 0xB1,
+};
+
+enum net_gsm_cause {
+ NET_GSM_IMSI_UNKNOWN_IN_HLR = 0x02,
+ NET_GSM_ILLEGAL_MS = 0x03,
+ NET_GSM_IMSI_UNKNOWN_IN_VLR = 0x04,
+ NET_GSM_IMEI_NOT_ACCEPTED = 0x05,
+ NET_GSM_ILLEGAL_ME = 0x06,
+ NET_GSM_GPRS_SERVICES_NOT_ALLOWED = 0x07,
+ NET_GSM_GPRS_AND_NON_GPRS_NA = 0x08,
+ NET_GSM_MS_ID_CANNOT_BE_DERIVED = 0x09,
+ NET_GSM_IMPLICITLY_DETACHED = 0x0A,
+ NET_GSM_PLMN_NOT_ALLOWED = 0x0B,
+ NET_GSM_LA_NOT_ALLOWED = 0x0C,
+ NET_GSM_ROAMING_NOT_IN_THIS_LA = 0x0D,
+ NET_GSM_GPRS_SERV_NA_IN_THIS_PLMN = 0x0E,
+ NET_GSM_NO_SUITABLE_CELLS_IN_LA = 0x0F,
+ NET_GSM_MSC_TEMP_NOT_REACHABLE = 0x10,
+ NET_GSM_NETWORK_FAILURE = 0x11,
+ NET_GSM_MAC_FAILURE = 0x14,
+ NET_GSM_SYNCH_FAILURE = 0x15,
+ NET_GSM_CONGESTION = 0x16,
+ NET_GSM_AUTH_UNACCEPTABLE = 0x17,
+ NET_GSM_SERV_OPT_NOT_SUPPORTED = 0x20,
+ NET_GSM_SERV_OPT_NOT_SUBSCRIBED = 0x21,
+ NET_GSM_SERV_TEMP_OUT_OF_ORDER = 0x22,
+ NET_GSM_RETRY_ENTRY_NEW_CELL_LOW = 0x30,
+ NET_GSM_RETRY_ENTRY_NEW_CELL_HIGH = 0x3F,
+ NET_GSM_SEMANTICALLY_INCORRECT = 0x5F,
+ NET_GSM_INVALID_MANDATORY_INFO = 0x60,
+ NET_GSM_MSG_TYPE_NONEXISTENT = 0x61,
+ NET_GSM_CONDITIONAL_IE_ERROR = 0x64,
+ NET_GSM_MSG_TYPE_WRONG_STATE = 0x65,
+ NET_GSM_PROTOCOL_ERROR_UNSPECIFIED = 0x6F
+};
+
+enum net_cs_type {
+ NET_CS_GSM = 0x00
+};
+
+enum net_rat_name {
+ NET_GSM_RAT = 0x01,
+ NET_UMTS_RAT = 0x02
+};
+
+enum net_rat_type {
+ NET_CURRENT_RAT = 0x00,
+ NET_SUPPORTED_RATS = 0x01
+};
+
+enum net_measurement_type {
+ NET_CURRENT_CELL_RSSI = 0x02
+};
+
+enum net_search_mode {
+ NET_MANUAL_SEARCH = 0x00
+};
+
+enum net_oper_name_type {
+ NET_HARDCODED_LATIN_OPER_NAME = 0x00
+};
+
+enum net_select_mode {
+ NET_SELECT_MODE_UNKNOWN = 0x00,
+ NET_SELECT_MODE_MANUAL = 0x01,
+ NET_SELECT_MODE_AUTOMATIC = 0x02,
+ NET_SELECT_MODE_USER_RESELECTION = 0x03,
+ NET_SELECT_MODE_NO_SELECTION = 0x04
+};
+
+enum net_isi_cause {
+ NET_CAUSE_OK = 0x00,
+ NET_CAUSE_COMMUNICATION_ERROR = 0x01,
+ NET_CAUSE_INVALID_PARAMETER = 0x02,
+ NET_CAUSE_NO_SIM = 0x03,
+ NET_CAUSE_SIM_NOT_YET_READY = 0x04,
+ NET_CAUSE_NET_NOT_FOUND = 0x05,
+ NET_CAUSE_REQUEST_NOT_ALLOWED = 0x06,
+ NET_CAUSE_CALL_ACTIVE = 0x07,
+ NET_CAUSE_SERVER_BUSY = 0x08,
+ NET_CAUSE_SECURITY_CODE_REQUIRED = 0x09,
+ NET_CAUSE_NOTHING_TO_CANCEL = 0x0A,
+ NET_CAUSE_UNABLE_TO_CANCEL = 0x0B,
+ NET_CAUSE_NETWORK_FORBIDDEN = 0x0C,
+ NET_CAUSE_REQUEST_REJECTED = 0x0D,
+ NET_CAUSE_CS_NOT_SUPPORTED = 0x0E,
+ NET_CAUSE_PAR_INFO_NOT_AVAILABLE = 0x0F,
+ NET_CAUSE_NOT_DONE = 0x10,
+ NET_CAUSE_NO_SELECTED_NETWORK = 0x11,
+ NET_CAUSE_REQUEST_INTERRUPTED = 0x12,
+ NET_CAUSE_TOO_BIG_INDEX = 0x14,
+ NET_CAUSE_MEMORY_FULL = 0x15,
+ NET_CAUSE_SERVICE_NOT_ALLOWED = 0x16,
+ NET_CAUSE_NOT_SUPPORTED_IN_TECH = 0x17
+};
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* !__ISIMODEM_NETWORK_H */
diff --git a/drivers/isimodem/phonebook.c b/drivers/isimodem/phonebook.c
index f0e63097..f5c5e470 100644
--- a/drivers/isimodem/phonebook.c
+++ b/drivers/isimodem/phonebook.c
@@ -39,41 +39,10 @@
#include <ofono/phonebook.h>
#include "util.h"
-#include "isi.h"
-
-#define PHONEBOOK_TIMEOUT 5
-#define PN_SIM 0x09
-
-enum pb_message_id {
- SIM_PB_REQ_SIM_PB_READ = 0xDC,
- SIM_PB_RESP_SIM_PB_READ = 0xDD
-};
-
-enum pb_service_types {
- SIM_PB_READ = 0x0F
-};
-
-enum pb_sub_block_id {
- SIM_PB_INFO_REQUEST = 0xE4,
- SIM_PB_STATUS = 0xFB,
- SIM_PB_LOCATION = 0xFE,
- SIM_PB_LOCATION_SEARCH = 0xFF
-};
-
-enum pb_type {
- SIM_PB_ADN = 0xC8
-};
-
-enum pb_tag {
- SIM_PB_ANR = 0xCA,
- SIM_PB_EMAIL = 0xDD,
- SIM_PB_SNE = 0xF7
-};
-
-enum pb_status {
- SIM_SERV_OK = 0x01,
- SIM_SERV_NO_MATCH = 0x16
-};
+#include "isimodem.h"
+#include "isiutil.h"
+#include "sim.h"
+#include "debug.h"
struct pb_data {
GIsiClient *client;
diff --git a/drivers/isimodem/sim.c b/drivers/isimodem/sim.c
index a9e50f39..1e92a3d0 100644
--- a/drivers/isimodem/sim.c
+++ b/drivers/isimodem/sim.c
@@ -38,40 +38,17 @@
#include <ofono/log.h>
#include <ofono/modem.h>
#include <ofono/sim.h>
-
-#include "isi.h"
#include "simutil.h"
-#define PN_SIM 0x09
-#define SIM_TIMEOUT 5
-#define SIM_MAX_IMSI_LENGTH 15
-
-enum return_code {
- SIM_SERV_OK = 0x01,
-};
-
-enum message_id {
- SIM_IMSI_REQ_READ_IMSI = 0x1D,
- SIM_IMSI_RESP_READ_IMSI = 0x1E,
- SIM_SERV_PROV_NAME_REQ = 0x21,
- SIM_SERV_PROV_NAME_RESP = 0x22
-};
-
-enum service_types {
- SIM_ST_READ_SERV_PROV_NAME = 0x2C,
- READ_IMSI = 0x2D,
-};
+#include "isimodem.h"
+#include "isiutil.h"
+#include "sim.h"
+#include "debug.h"
struct sim_data {
GIsiClient *client;
};
-static void sim_debug(const void *restrict buf, size_t len, void *data)
-{
- DBG("");
- dump_msg(buf, len);
-}
-
/* Returns fake (static) file info for EFSPN */
static gboolean efspn_file_info(gpointer user)
{
diff --git a/drivers/isimodem/sim.h b/drivers/isimodem/sim.h
new file mode 100644
index 00000000..68ee8745
--- /dev/null
+++ b/drivers/isimodem/sim.h
@@ -0,0 +1,147 @@
+/*
+ * This file is part of oFono - Open Source Telephony
+ *
+ * Copyright (C) 2009 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 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_IMSI_REQ_READ_IMSI = 0x1D,
+ SIM_IMSI_RESP_READ_IMSI = 0x1E,
+ SIM_SERV_PROV_NAME_REQ = 0x21,
+ SIM_SERV_PROV_NAME_RESP = 0x22,
+ SIM_PB_REQ_SIM_PB_READ = 0xDC,
+ SIM_PB_RESP_SIM_PB_READ = 0xDD,
+ SIM_COMMON_MESSAGE = 0xF0
+};
+
+enum sim_service_type {
+ SIM_ST_READ_SERV_PROV_NAME = 0x2C,
+ SIM_PB_READ = 0x0F,
+ READ_IMSI = 0x2D
+};
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* __ISIMODEM_SIM_H */
diff --git a/drivers/isimodem/sms.c b/drivers/isimodem/sms.c
index de7470cc..79b16bb6 100644
--- a/drivers/isimodem/sms.c
+++ b/drivers/isimodem/sms.c
@@ -39,82 +39,15 @@
#include <ofono/modem.h>
#include <ofono/sms.h>
-#include "isi.h"
-
-#define PN_SMS 0x02
-#define SMS_TIMEOUT 5
+#include "isimodem.h"
+#include "isiutil.h"
+#include "sms.h"
+#include "debug.h"
struct sms_data {
GIsiClient *client;
- struct isi_version version;
-};
-
-enum message_id {
- SMS_MESSAGE_SEND_REQ = 0x02,
- SMS_MESSAGE_SEND_RESP = 0x03,
- SMS_PP_ROUTING_REQ = 0x06,
- SMS_PP_ROUTING_RESP = 0x07,
- SMS_PP_ROUTING_NTF = 0x08
-};
-
-enum sub_block_id {
- SMS_GSM_DELIVER = 0x00,
- SMS_GSM_STATUS_REPORT = 0x01,
- SMS_GSM_SUBMIT = 0x02,
- SMS_GSM_COMMAND = 0x03,
- SMS_GSM_ROUTING = 0x0D
-};
-
-enum routing_command {
- SMS_ROUTING_RELEASE = 0x00,
- SMS_ROUTING_SET = 0x01,
- SMS_ROUTING_SUSPEND = 0x02,
- SMS_ROUTING_RESUME = 0x03,
- SMS_ROUTING_UPDATE = 0x04
-};
-
-enum routing_mode {
- SMS_GSM_ROUTING_MODE_ALL = 0x0B
-};
-
-enum routing_type {
- SMS_GSM_TPDU_ROUTING = 0x06
-};
-
-enum message_type {
- SMS_GSM_MT_ALL_TYPE = 0x06
};
-enum route_preference {
- SMS_ROUTE_GPRS_PREF = 0x00,
- SMS_ROUTE_CS = 0x01,
- SMS_ROUTE_GPRS = 0x02,
- SMS_ROUTE_CS_PREF = 0x03,
- SMS_ROUTE_DEFAULT = 0x04
-};
-
-enum sender_type {
- SMS_SENDER_ANY = 0x00,
- SMS_SENDER_SIM_ATK = 0x01
-};
-
-enum content_type {
- SMS_TYPE_DEFAULT = 0x00,
- SMS_TYPE_TEXT_MESSAGE = 0x01
-};
-
-enum cause {
- SMS_OK = 0x00,
- SMS_ERR_ROUTING_RELEASED = 0x01,
- SMS_ERR_INVALID_PARAMETER = 0x02
-};
-
-static void sms_debug(const void *restrict buf, size_t len, void *data)
-{
- DBG("");
- dump_msg(buf, len);
-}
-
static void isi_sca_query(struct ofono_sms *sms, ofono_sms_sca_query_cb_t cb,
void *data)
{
diff --git a/drivers/isimodem/sms.h b/drivers/isimodem/sms.h
new file mode 100644
index 00000000..4e3edae9
--- /dev/null
+++ b/drivers/isimodem/sms.h
@@ -0,0 +1,180 @@
+/*
+ * This file is part of oFono - Open Source Telephony
+ *
+ * Copyright (C) 2009 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_SMS_H
+#define __ISIMODEM_SMS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PN_SMS 0x02
+#define CBS_TIMEOUT 5
+#define SMS_TIMEOUT 5
+
+enum sms_isi_cause {
+ SMS_OK = 0x00,
+ SMS_ERR_ROUTING_RELEASED = 0x01,
+ SMS_ERR_INVALID_PARAMETER = 0x02,
+ SMS_ERR_DEVICE_FAILURE = 0x03,
+ SMS_ERR_PP_RESERVED = 0x04,
+ SMS_ERR_ROUTE_NOT_AVAILABLE = 0x05,
+ SMS_ERR_ROUTE_NOT_ALLOWED = 0x06,
+ SMS_ERR_SERVICE_RESERVED = 0x07,
+ SMS_ERR_INVALID_LOCATION = 0x08,
+ SMS_ERR_NO_SIM = 0x09,
+ SMS_ERR_SIM_NOT_READY = 0x0A,
+ SMS_ERR_NO_NETW_RESPONSE = 0x0B,
+ SMS_ERR_DEST_ADDR_FDN_RESTRICTED = 0x0C,
+ SMS_ERR_SMSC_ADDR_FDN_RESTRICTED = 0x0D,
+ SMS_ERR_RESEND_ALREADY_DONE = 0x0E,
+ SMS_ERR_SMSC_ADDR_NOT_AVAILABLE = 0x0F,
+ SMS_ERR_ROUTING_FAILED = 0x10,
+ SMS_ERR_CS_INACTIVE = 0x11,
+ SMS_ERR_SAT_MO_CONTROL_MODIFIED = 0x12,
+ SMS_ERR_SAT_MO_CONTROL_REJECT = 0x13,
+ SMS_ERR_TRACFONE_FAILED = 0x14
+};
+
+enum sms_gsm_cause {
+ SMS_GSM_ERR_UNASSIGNED_NUMBER = 0x01,
+ SMS_GSM_ERR_OPER_DETERMINED_BARR = 0x08,
+ SMS_GSM_ERR_CALL_BARRED = 0x0A,
+ SMS_GSM_ERR_RESERVED = 0x0B,
+ SMS_GSM_ERR_MSG_TRANSFER_REJ = 0x15,
+ SMS_GSM_ERR_MEMORY_CAPACITY_EXC = 0x16,
+ SMS_GSM_ERR_DEST_OUT_OF_ORDER = 0x1B,
+ SMS_GSM_ERR_UNDEFINED_SUBSCRIBER = 0x1C,
+ SMS_GSM_ERR_FACILITY_REJECTED = 0x1D,
+ SMS_GSM_ERR_UNKNOWN_SUBSCRIBER = 0x1E,
+ SMS_GSM_ERR_NETW_OUT_OF_ORDER = 0x26,
+ SMS_GSM_ERR_TEMPORARY_FAILURE = 0x29,
+ SMS_GSM_ERR_CONGESTION = 0x2A,
+ SMS_GSM_ERR_RESOURCE_UNAVAILABLE = 0x2F,
+ SMS_GSM_ERR_REQ_FACILITY_NOT_SUB = 0x32,
+ SMS_GSM_ERR_REQ_FACILITY_NOT_IMP = 0x45,
+ SMS_GSM_ERR_INVALID_REFERENCE = 0x51,
+ SMS_GSM_ERR_INCORRECT_MESSAGE = 0x5F,
+ SMS_GSM_ERR_INVALID_MAND_INFO = 0x60,
+ SMS_GSM_ERR_INVALID_MSG_TYPE = 0x61,
+ SMS_GSM_ERR_MSG_NOT_COMP_WITH_ST = 0x62,
+ SMS_GSM_ERR_INVALID_INFO_ELEMENT = 0x63,
+ SMS_GSM_ERR_PROTOCOL_ERROR = 0x6F,
+ SMS_GSM_ERR_INTERWORKING = 0x7F,
+ SMS_GSM_ERR_NO_CAUSE = 0x80,
+ SMS_GSM_ERR_IMSI_UNKNOWN_HLR = 0x82,
+ SMS_GSM_ERR_ILLEGAL_MS = 0x83,
+ SMS_GSM_ERR_IMSI_UNKNOWN_VLR = 0x84,
+ SMS_GSM_ERR_IMEI_NOT_ACCEPTED = 0x85,
+ SMS_GSM_ERR_ILLEGAL_ME = 0x86,
+ SMS_GSM_ERR_PLMN_NOT_ALLOWED = 0x8B,
+ SMS_GSM_ERR_LA_NOT_ALLOWED = 0x8C,
+ SMS_GSM_ERR_ROAM_NOT_ALLOWED_LA = 0x8D,
+ SMS_GSM_ERR_NO_SUITABLE_CELLS_LA = 0x8F,
+ SMS_GSM_ERR_NETWORK_FAILURE = 0x91,
+ SMS_GSM_ERR_MAC_FAILURE = 0x94,
+ SMS_GSM_ERR_SYNC_FAILURE = 0x95,
+ SMS_GSM_ERR_LOW_LAYER_CONGESTION = 0x96,
+ SMS_GSM_ERR_AUTH_UNACCEPTABLE = 0x97,
+ SMS_GSM_ERR_SERV_OPT_NOT_SUPPORTED = 0xA0,
+ SMS_GSM_ERR_SERV_OPT_NOT_SUBSCRIBED = 0xA1,
+ SMS_GSM_ERR_SERV_OPT_TEMP_OUT_OF_ORDER = 0xA2,
+ SMS_GSM_ERR_CALL_CANNOT_BE_IDENTIFIED = 0xA6,
+ SMS_GSM_ERR_SEMANTICALLY_INCORR_MSG = 0xDF,
+ SMS_GSM_ERR_LOW_LAYER_INVALID_MAND_INFO = 0xE0,
+ SMS_GSM_ERR_LOW_LAYER_INVALID_MSG_TYPE = 0xE1,
+ SMS_GSM_ERR_LOW_LAYER_MSG_TYPE_NOT_COMP_WITH_ST = 0xE2,
+ SMS_GSM_ERR_LOW_LAYER_INVALID_INFO_ELEMENT = 0xE3,
+ SMS_GSM_ERR_CONDITIONAL_IE_ERROR = 0xE4,
+ SMS_GSM_ERR_LOW_LAYER_MSG_NOT_COMP_WITH_ST = 0xE5,
+ SMS_GSM_ERR_CS_BARRED = 0xE8,
+ SMS_GSM_ERR_LOW_LAYER_PROTOCOL_ERROR = 0xEF
+};
+
+enum sms_message_id {
+ SMS_MESSAGE_SEND_REQ = 0x02,
+ SMS_MESSAGE_SEND_RESP = 0x03,
+ SMS_PP_ROUTING_REQ = 0x06,
+ SMS_PP_ROUTING_RESP = 0x07,
+ SMS_PP_ROUTING_NTF = 0x08,
+ SMS_GSM_CB_ROUTING_REQ = 0x0B,
+ SMS_GSM_CB_ROUTING_RESP = 0x0C,
+ SMS_GSM_CB_ROUTING_NTF = 0x0D,
+ SMS_COMMON_MESSAGE = 0xF0
+};
+
+enum sms_subblock {
+ SMS_GSM_DELIVER = 0x00,
+ SMS_GSM_STATUS_REPORT = 0x01,
+ SMS_GSM_SUBMIT = 0x02,
+ SMS_GSM_COMMAND = 0x03,
+ SMS_GSM_ROUTING = 0x0D
+};
+
+enum sms_routing_command {
+ SMS_ROUTING_RELEASE = 0x00,
+ SMS_ROUTING_SET = 0x01,
+ SMS_ROUTING_SUSPEND = 0x02,
+ SMS_ROUTING_RESUME = 0x03,
+ SMS_ROUTING_UPDATE = 0x04
+};
+
+enum sms_route_preference {
+ SMS_ROUTE_GPRS_PREF = 0x00,
+ SMS_ROUTE_CS = 0x01,
+ SMS_ROUTE_GPRS = 0x02,
+ SMS_ROUTE_CS_PREF = 0x03,
+ SMS_ROUTE_DEFAULT = 0x04
+};
+
+enum sms_routing_mode {
+ SMS_GSM_ROUTING_MODE_ALL = 0x0B,
+ SMS_GSM_ROUTING_MODE_CB_DDL = 0x0C
+};
+
+enum sms_routing_type {
+ SMS_GSM_TPDU_ROUTING = 0x06
+};
+
+enum sms_message_type {
+ SMS_GSM_MT_ALL_TYPE = 0x06
+};
+
+enum sms_sender_type {
+ SMS_SENDER_ANY = 0x00,
+ SMS_SENDER_SIM_ATK = 0x01
+};
+
+enum sms_content_type {
+ SMS_TYPE_DEFAULT = 0x00,
+ SMS_TYPE_TEXT_MESSAGE = 0x01
+};
+
+enum sms_subject_list_type {
+ SMS_CB_ALLOWED_IDS_LIST = 0x00,
+ SMS_CB_NOT_ALLOWED_IDS_LIST = 0x01
+};
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif /* __ISIMODEM_SMS_H */
diff --git a/drivers/isimodem/ss.h b/drivers/isimodem/ss.h
index f6acf005..5118125b 100644
--- a/drivers/isimodem/ss.h
+++ b/drivers/isimodem/ss.h
@@ -24,13 +24,14 @@
#ifndef __ISIMODEM_SS_H
#define __ISIMODEM_SS_H
-#define PN_SS 0x06
-#define SS_TIMEOUT 15
+#define PN_SS 0x06
+#define SS_TIMEOUT 15
enum ss_message_id {
SS_SERVICE_REQ = 0x00,
SS_SERVICE_COMPLETED_RESP = 0x01,
- SS_SERVICE_FAILED_RESP = 0x02
+ SS_SERVICE_FAILED_RESP = 0x02,
+ SS_COMMON_MESSAGE = 0xF0
};
enum ss_operations {
@@ -80,7 +81,7 @@ enum ss_response_data {
SS_SEND_ADDITIONAL_INFO = 0x01
};
-enum ss_sub_block_id {
+enum ss_subblock {
SS_FORWARDING = 0x00,
SS_STATUS_RESULT = 0x01,
SS_GSM_PASSWORD = 0x03,
@@ -94,7 +95,7 @@ enum ss_sub_block_id {
SS_GSM_ADDITIONAL_INFO = 0x2F
};
-enum ss_status_codes {
+enum ss_isi_cause {
SS_GSM_ACTIVE = 0x01,
SS_GSM_REGISTERED = 0x02,
SS_GSM_PROVISIONED = 0x04,
diff --git a/drivers/isimodem/voicecall.c b/drivers/isimodem/voicecall.c
index 50784491..851a1960 100644
--- a/drivers/isimodem/voicecall.c
+++ b/drivers/isimodem/voicecall.c
@@ -42,8 +42,10 @@
#include <ofono/modem.h>
#include <ofono/voicecall.h>
-#include "isi.h"
-#include "isi-call.h"
+#include "isimodem.h"
+#include "isiutil.h"
+#include "call.h"
+#include "debug.h"
struct isi_call {
uint8_t id, call_id, status, mode, mode_info, cause_type, cause;