diff options
author | Aki Niemi <aki.niemi@nokia.com> | 2010-01-08 10:53:42 +0200 |
---|---|---|
committer | Aki Niemi <aki.niemi@nokia.com> | 2010-01-11 10:51:00 +0200 |
commit | c03cdaed9a16559e40360a601c07dbfacbce24ad (patch) | |
tree | 8e1f7a30b4495ba61eb5aaabab966eff74f54815 | |
parent | 06afe598f542eb4dc8a17fb4e80bf440f85f7e27 (diff) | |
download | ofono-c03cdaed9a16559e40360a601c07dbfacbce24ad.tar.bz2 |
Split ISI codepoints to separate files
Also, adding infrastructure for debugging ISI messages, with APIs for
turning most common fields into human readable string format.
-rw-r--r-- | drivers/isimodem/call-meter.c | 7 | ||||
-rw-r--r-- | drivers/isimodem/call.h | 409 | ||||
-rw-r--r-- | drivers/isimodem/cbs.c | 47 | ||||
-rw-r--r-- | drivers/isimodem/debug.h | 74 | ||||
-rw-r--r-- | drivers/isimodem/devinfo.c | 44 | ||||
-rw-r--r-- | drivers/isimodem/info.h | 73 | ||||
-rw-r--r-- | drivers/isimodem/isi-call.h | 421 | ||||
-rw-r--r-- | drivers/isimodem/mtc.h | 79 | ||||
-rw-r--r-- | drivers/isimodem/network-registration.c | 102 | ||||
-rw-r--r-- | drivers/isimodem/network.h | 209 | ||||
-rw-r--r-- | drivers/isimodem/phonebook.c | 39 | ||||
-rw-r--r-- | drivers/isimodem/sim.c | 31 | ||||
-rw-r--r-- | drivers/isimodem/sim.h | 147 | ||||
-rw-r--r-- | drivers/isimodem/sms.c | 75 | ||||
-rw-r--r-- | drivers/isimodem/sms.h | 180 | ||||
-rw-r--r-- | drivers/isimodem/ss.h | 11 | ||||
-rw-r--r-- | drivers/isimodem/voicecall.c | 6 |
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; |