ofono/drivers/isimodem/debug.c

1499 lines
38 KiB
C

/*
*
* oFono - Open Source Telephony
*
* Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <errno.h>
#include <glib.h>
#define OFONO_API_SUBJECT_TO_CHANGE
#include <ofono/log.h>
#include <ofono/modem.h>
#include <ofono/sim.h>
#include "debug.h"
#define COMMON_MESSAGE 0xF0
#define _(X) case X: return #X
const char *pn_resource_name(int value)
{
switch (value) {
_(PN_NETWORK);
_(PN_MODEM_NETWORK);
_(PN_PHONE_INFO);
_(PN_MODEM_INFO);
_(PN_EPOC_INFO);
_(PN_SS);
_(PN_CALL);
_(PN_MODEM_CALL);
_(PN_SMS);
_(PN_SIM);
_(PN_SECURITY);
_(PN_MTC);
_(PN_MODEM_MCE);
_(PN_GSS);
_(PN_GPDS);
_(PN_WRAN);
_(PN_UICC);
}
return "PN_<UNKNOWN>";
}
const char *ss_message_id_name(enum ss_message_id value)
{
switch (value) {
_(SS_SERVICE_REQ);
_(SS_SERVICE_COMPLETED_RESP);
_(SS_SERVICE_FAILED_RESP);
_(SS_SERVICE_NOT_SUPPORTED_RESP);
_(SS_GSM_USSD_SEND_REQ);
_(SS_GSM_USSD_SEND_RESP);
_(SS_GSM_USSD_RECEIVE_IND);
_(SS_STATUS_IND);
_(SS_SERVICE_COMPLETED_IND);
}
return "SS_<UNKNOWN>";
}
const char *ss_ussd_type_name(enum ss_ussd_type value)
{
switch (value) {
_(SS_GSM_USSD_MT_REPLY);
_(SS_GSM_USSD_COMMAND);
_(SS_GSM_USSD_REQUEST);
_(SS_GSM_USSD_NOTIFY);
_(SS_GSM_USSD_END);
}
return "SS_<UNKNOWN>";
}
const char *ss_subblock_name(enum ss_subblock value)
{
switch (value) {
_(SS_FORWARDING);
_(SS_STATUS_RESULT);
_(SS_GSM_PASSWORD);
_(SS_GSM_FORWARDING_INFO);
_(SS_GSM_FORWARDING_FEATURE);
_(SS_GSM_DATA);
_(SS_GSM_BSC_INFO);
_(SS_GSM_GENERIC_SERVICE_INFO);
_(SS_GSM_CLIR_INFO);
_(SS_GSM_PASSWORD_INFO);
_(SS_GSM_INDICATE_PASSWORD_ERROR);
_(SS_GSM_INDICATE_ERROR);
_(SS_GSM_ADDITIONAL_INFO);
_(SS_GSM_BARRING_INFO);
_(SS_GSM_BARRING_FEATURE);
_(SS_GSM_USSD_STRING);
}
return "SS_<UNKNOWN>";
}
const char *mtc_isi_cause_name(enum mtc_isi_cause value)
{
switch (value) {
_(MTC_OK);
_(MTC_FAIL);
_(MTC_NOT_ALLOWED);
_(MTC_STATE_TRANSITION_GOING_ON);
_(MTC_ALREADY_ACTIVE);
_(MTC_SERVICE_DISABLED);
_(MTC_NOT_READY_YET);
_(MTC_NOT_SUPPORTED);
_(MTC_TRANSITION_ONGOING);
_(MTC_RESET_REQUIRED);
}
return "MTC_<UNKNOWN>";
}
const char *mtc_message_id_name(enum mtc_message_id value)
{
switch (value) {
_(MTC_STATE_REQ);
_(MTC_STATE_QUERY_REQ);
_(MTC_POWER_OFF_REQ);
_(MTC_POWER_ON_REQ);
_(MTC_STARTUP_SYNQ_REQ);
_(MTC_SHUTDOWN_SYNC_REQ);
_(MTC_STATE_RESP);
_(MTC_STATE_QUERY_RESP);
_(MTC_POWER_OFF_RESP);
_(MTC_POWER_ON_RESP);
_(MTC_STARTUP_SYNQ_RESP);
_(MTC_SHUTDOWN_SYNC_RESP);
_(MTC_STATE_INFO_IND);
}
return "MTC_<UNKNOWN>";
}
const char *mtc_modem_state_name(enum mtc_modem_state value)
{
switch (value) {
_(MTC_POWER_OFF);
_(MTC_NORMAL);
_(MTC_CHARGING);
_(MTC_ALARM);
_(MTC_TEST);
_(MTC_LOCAL);
_(MTC_WARRANTY);
_(MTC_RELIABILITY);
_(MTC_SELFTEST_FAIL);
_(MTC_SWDL);
_(MTC_RF_INACTIVE);
_(MTC_ID_WRITE);
_(MTC_DISCHARGING);
_(MTC_DISK_WIPE);
_(MTC_SW_RESET);
_(MTC_CMT_ONLY_MODE);
_(MTC_STATE_NONE);
}
return "MTC_<UNKNOWN>";
}
const char *mce_message_id_name(enum mce_message_id value)
{
switch (value) {
_(MCE_MODEM_STATE_IND);
_(MCE_MODEM_STATE_QUERY_REQ);
_(MCE_MODEM_STATE_QUERY_RESP);
_(MCE_RF_STATE_REQ);
_(MCE_RF_STATE_RESP);
_(MCE_RF_STATE_IND);
_(MCE_RF_STATE_QUERY_REQ);
_(MCE_RF_STATE_QUERY_RESP);
_(MCE_POWER_OFF_REQ);
_(MCE_POWER_OFF_RESP);
}
return "MCE_<UNKNOWN>";
}
const char *mce_modem_state_name(enum mce_modem_state value)
{
switch (value) {
_(MCE_NORMAL);
_(MCE_LOCAL);
_(MCE_SW_RESET);
_(MCE_POWER_OFF);
}
return "MCE_<UNKNOWN>";
}
const char *mce_status_info(enum mce_status_info value)
{
switch (value) {
_(MCE_OK);
_(MCE_FAIL);
_(MCE_ALREADY_ACTIVE);
_(MCE_TRANSITION_ONGOING);
}
return "MCE_<UNKNOWN>";
}
const char *mce_rf_state_name(enum mce_rf_state value)
{
switch (value) {
_(MCE_RF_OFF);
_(MCE_RF_ON);
}
return "MCE_RF<UNKNOWN>";
}
const char *uicc_service_type_name(uint8_t value)
{
switch (value) {
_(UICC_APPL_LIST);
_(UICC_APPL_HOST_ACTIVATE);
/*_(UICC_APPL_DEACTIVATE);*/
_(UICC_APPL_START_UP_COMPLETE);
/*_(UICC_SHUT_DOWN_INITIATED);*/
_(UICC_APPL_SHUT_DOWN_INITIATED);
_(UICC_APPL_STATUS_GET);
_(UICC_APPL_HOST_DEACTIVATE);
_(UICC_PIN_VERIFY);
_(UICC_PIN_UNBLOCK);
_(UICC_PIN_DISABLE);
_(UICC_PIN_ENABLE);
_(UICC_PIN_CHANGE);
_(UICC_PIN_SUBSTITUTE);
_(UICC_PIN_INFO);
_(UICC_PIN_PROMPT_VERIFY);
_(UICC_APPL_READ_TRANSPARENT);
_(UICC_APPL_UPDATE_TRANSPARENT);
_(UICC_APPL_READ_LINEAR_FIXED);
_(UICC_APPL_UPDATE_LINEAR_FIXED);
_(UICC_APPL_FILE_INFO);
_(UICC_APPL_APDU_SEND);
_(UICC_APPL_CLEAR_CACHE);
_(UICC_APPL_SESSION_START);
_(UICC_APPL_SESSION_END);
_(UICC_APPL_READ_CYCLIC);
_(UICC_APPL_UPDATE_CYCLIC);
/*_(UICC_APPL_CACHE_UPDATED);*/
_(UICC_CONNECT);
_(UICC_DISCONNECT);
_(UICC_RECONNECT);
_(UICC_CAT_ENABLE);
_(UICC_CAT_DISABLE);
_(UICC_CAT_TERMINAL_PROFILE);
_(UICC_CAT_TERMINAL_RESPONSE);
_(UICC_CAT_ENVELOPE);
_(UICC_CAT_POLLING_SET);
_(UICC_CAT_REFRESH);
_(UICC_CAT_POLL);
_(UICC_APDU_SEND);
_(UICC_APDU_ATR_GET);
_(UICC_APDU_CONTROL);
_(UICC_REFRESH_STATUS);
_(UICC_APPL_TERMINATED);
_(UICC_APPL_RECOVERED);
/*_(UICC_APPL_UNAVAILABLE);*/
/*_(UICC_APPL_SHUT_DOWN);*/
_(UICC_APPL_ACTIVATED);
_(UICC_PIN_VERIFY_NEEDED);
_(UICC_PIN_UNBLOCK_NEEDED);
_(UICC_PIN_PERMANENTLY_BLOCKED);
_(UICC_PIN_VERIFIED);
_(UICC_CAT_FETCHED_CMD);
_(UICC_CAT_NOT_SUPPORTED);
_(UICC_CAT_REG_FAILED);
_(UICC_CAT_REG_OK);
_(UICC_REFRESH_PERMISSION);
_(UICC_REFRESH_STARTING);
_(UICC_REFRESH_CANCELLED);
_(UICC_REFRESH_NOW);
_(UICC_START_UP_COMPLETE);
_(UICC_STATUS_GET);
_(UICC_READY);
/*_(UICC_READY_FOR_ACTIVATION);*/
_(UICC_INITIALIZED);
_(UICC_SHUTTING_DOWN);
/*_(UICC_SHUT_DOWN_CONFIG);*/
_(UICC_ERROR);
_(UICC_CARD_DISCONNECTED);
_(UICC_CARD_REMOVED);
_(UICC_CARD_NOT_PRESENT);
/*_(UICC_CARD_RESET);*/
_(UICC_CARD_READY);
_(UICC_CARD_STATUS_GET);
_(UICC_CARD_REJECTED);
_(UICC_CARD_INFO_GET);
_(UICC_SIMLOCK_ACTIVE);
_(UICC_APDU_SAP_ACTIVATE);
_(UICC_APDU_SAP_DEACTIVATE);
_(UICC_APDU_SAP_ATR_GET);
_(UICC_APDU_SAP_COLD_RESET);
_(UICC_APDU_SAP_WARM_RESET);
_(UICC_APDU_SAP_APDU_SEND);
_(UICC_APDU_SAP_RECOVERY);
_(UICC_APDU_SAP_CONFIG_GET);
_(UICC_PWR_CTRL_ENABLE);
_(UICC_PWR_CTRL_DISABLE);
_(UICC_PWR_CTRL_WAIT);
_(UICC_PWR_CTRL_PROCEED);
_(UICC_PWR_CTRL_PERMISSION);
}
return "UICC_SERVICE_<UNKNOWN>";
}
const char *uicc_details_name(uint8_t value)
{
switch (value) {
/* Used when status differs from UICC_STATUS_FAIL */
_(UICC_NO_DETAILS);
/* Request was sent with one or more invalid parameter */
_(UICC_INVALID_PARAMETERS);
/* The file wasn't found */
_(UICC_FILE_NOT_FOUND);
/* User does not have the required priviledges for this */
_(UICC_SECURITY_CONDITIONS_NOT_SATISFIED);
/* Application can not be activated due to already active app */
_(UICC_APPL_CONFLICT);
/* Card Communication error */
_(UICC_CARD_ERROR);
/* Operation not supported */
_(UICC_SERVICE_NOT_SUPPORTED);
/* Session expired */
_(UICC_SESSION_EXPIRED);
}
return "UICC_STATUS<UNKNOWN>";
}
const char *uicc_message_id_name(enum uicc_message_id value)
{
switch (value) {
_(UICC_REQ);
_(UICC_RESP);
_(UICC_IND);
_(UICC_CARD_REQ);
_(UICC_CARD_RESP);
_(UICC_CARD_IND);
_(UICC_APPLICATION_REQ);
_(UICC_APPLICATION_RESP);
_(UICC_APPLICATION_IND);
_(UICC_PIN_REQ);
_(UICC_PIN_RESP);
_(UICC_PIN_IND);
_(UICC_APPL_CMD_REQ);
_(UICC_APPL_CMD_RESP);
_(UICC_APPL_CMD_IND);
_(UICC_CONNECTOR_REQ);
_(UICC_CONNECTOR_RESP);
_(UICC_CAT_REQ);
_(UICC_CAT_RESP);
_(UICC_CAT_IND);
_(UICC_APDU_REQ);
_(UICC_APDU_RESP);
_(UICC_APDU_RESET_IND);
_(UICC_REFRESH_REQ);
_(UICC_REFRESH_RESP);
_(UICC_REFRESH_IND);
_(UICC_SIMLOCK_REQ);
_(UICC_SIMLOCK_RESP);
_(UICC_APDU_SAP_REQ);
_(UICC_APDU_SAP_RESP);
_(UICC_APDU_SAP_IND);
_(UICC_PWR_CTRL_REQ);
_(UICC_PWR_CTRL_RESP);
_(UICC_PWR_CTRL_IND);
_(UICC_CARD_READER_IND);
}
return "UICC_<UNKNOWN>";
}
const char *uicc_status_name(uint8_t value)
{
switch (value) {
/* Request performed successfully */
_(UICC_STATUS_OK);
/* Error in performing the command */
_(UICC_STATUS_FAIL);
/* Status is Unknown */
_(UICC_STATUS_UNKNOWN);
/* Server is not ready */
_(UICC_STATUS_NOT_READY);
/* Server start up is completed */
_(UICC_STATUS_START_UP_COMPLETED);
/* Server is shutting down */
_(UICC_STATUS_SHUTTING_DOWN);
/* Smart card is not ready */
_(UICC_STATUS_CARD_NOT_READY);
/* Smart card is ready */
_(UICC_STATUS_CARD_READY);
/* Smart card is disconnected */
_(UICC_STATUS_CARD_DISCONNECTED);
/* Smart card is not present */
_(UICC_STATUS_CARD_NOT_PRESENT);
/* Smart card has been rejected */
_(UICC_STATUS_CARD_REJECTED);
/* Application is active */
_(UICC_STATUS_APPL_ACTIVE);
/* Application is not active */
_(UICC_STATUS_APPL_NOT_ACTIVE);
/* PIN verification used */
_(UICC_STATUS_PIN_ENABLED);
/* PIN verification not used */
_(UICC_STATUS_PIN_DISABLED);
}
return "UICC_STATUS<UNKNOWN>";
}
const char *uicc_subblock_name(uint8_t value)
{
switch (value) {
_(UICC_SB_SHUT_DOWN_CONFIG);
_(UICC_SB_CARD_STATUS);
_(UICC_SB_CARD_INFO);
_(UICC_SB_CARD_REJECT_CAUSE);
_(UICC_SB_CLIENT);
_(UICC_SB_APPL_DATA_OBJECT);
_(UICC_SB_APPLICATION);
_(UICC_SB_APPL_INFO);
_(UICC_SB_APPL_STATUS);
_(UICC_SB_FCP);
_(UICC_SB_FCI);
_(UICC_SB_CHV);
_(UICC_SB_PIN);
_(UICC_SB_PIN_REF);
_(UICC_SB_PUK);
_(UICC_SB_PIN_SUBST);
_(UICC_SB_PIN_INFO);
_(UICC_SB_APPL_PATH);
_(UICC_SB_SESSION);
_(UICC_SB_FILE_DATA);
_(UICC_SB_APDU);
_(UICC_SB_TRANSPARENT_READ);
_(UICC_SB_TRANSPARENT_UPDATE);
_(UICC_SB_TRANSPARENT);
_(UICC_SB_LINEAR_FIXED);
_(UICC_SB_CYCLIC);
_(UICC_SB_TERMINAL_PROFILE);
_(UICC_SB_TERMINAL_RESPONSE);
_(UICC_SB_ENVELOPE);
_(UICC_SB_POLLING_SET);
_(UICC_SB_REFRESH);
_(UICC_SB_AID);
_(UICC_SB_REFRESH_RESULT);
_(UICC_SB_APDU_ACTIONS);
_(UICC_SB_OBJECT_ID);
_(UICC_SB_STATUS_WORD);
_(UICC_SB_APDU_SAP_INFO);
_(UICC_SB_ACCESS_MODE);
_(UICC_SB_RESP_INFO);
_(UICC_SB_APDU_SAP_CONFIG);
}
return "UICC_<UNKNOWN>";
}
const char *sms_isi_cause_name(enum sms_isi_cause value)
{
switch (value) {
_(SMS_OK);
_(SMS_ERR_ROUTING_RELEASED);
_(SMS_ERR_INVALID_PARAMETER);
_(SMS_ERR_DEVICE_FAILURE);
_(SMS_ERR_PP_RESERVED);
_(SMS_ERR_ROUTE_NOT_AVAILABLE);
_(SMS_ERR_ROUTE_NOT_ALLOWED);
_(SMS_ERR_SERVICE_RESERVED);
_(SMS_ERR_INVALID_LOCATION);
_(SMS_ERR_NO_SIM);
_(SMS_ERR_SIM_NOT_READY);
_(SMS_ERR_NO_NETW_RESPONSE);
_(SMS_ERR_DEST_ADDR_FDN_RESTRICTED);
_(SMS_ERR_SMSC_ADDR_FDN_RESTRICTED);
_(SMS_ERR_RESEND_ALREADY_DONE);
_(SMS_ERR_SMSC_ADDR_NOT_AVAILABLE);
_(SMS_ERR_ROUTING_FAILED);
_(SMS_ERR_CS_INACTIVE);
_(SMS_ERR_SAT_MO_CONTROL_MODIFIED);
_(SMS_ERR_SAT_MO_CONTROL_REJECT);
_(SMS_ERR_TRACFONE_FAILED);
}
return "SMS_<UNKNOWN>";
}
const char *sms_gsm_cause_name(enum sms_gsm_cause value)
{
switch (value) {
_(SMS_GSM_ERR_UNASSIGNED_NUMBER);
_(SMS_GSM_ERR_OPER_DETERMINED_BARR);
_(SMS_GSM_ERR_CALL_BARRED);
_(SMS_GSM_ERR_RESERVED);
_(SMS_GSM_ERR_MSG_TRANSFER_REJ);
_(SMS_GSM_ERR_MEMORY_CAPACITY_EXC);
_(SMS_GSM_ERR_DEST_OUT_OF_ORDER);
_(SMS_GSM_ERR_UNDEFINED_SUBSCRIBER);
_(SMS_GSM_ERR_FACILITY_REJECTED);
_(SMS_GSM_ERR_UNKNOWN_SUBSCRIBER);
_(SMS_GSM_ERR_NETW_OUT_OF_ORDER);
_(SMS_GSM_ERR_TEMPORARY_FAILURE);
_(SMS_GSM_ERR_CONGESTION);
_(SMS_GSM_ERR_RESOURCE_UNAVAILABLE);
_(SMS_GSM_ERR_REQ_FACILITY_NOT_SUB);
_(SMS_GSM_ERR_REQ_FACILITY_NOT_IMP);
_(SMS_GSM_ERR_INVALID_REFERENCE);
_(SMS_GSM_ERR_INCORRECT_MESSAGE);
_(SMS_GSM_ERR_INVALID_MAND_INFO);
_(SMS_GSM_ERR_INVALID_MSG_TYPE);
_(SMS_GSM_ERR_MSG_NOT_COMP_WITH_ST);
_(SMS_GSM_ERR_INVALID_INFO_ELEMENT);
_(SMS_GSM_ERR_PROTOCOL_ERROR);
_(SMS_GSM_ERR_INTERWORKING);
_(SMS_GSM_ERR_NO_CAUSE);
_(SMS_GSM_ERR_IMSI_UNKNOWN_HLR);
_(SMS_GSM_ERR_ILLEGAL_MS);
_(SMS_GSM_ERR_IMSI_UNKNOWN_VLR);
_(SMS_GSM_ERR_IMEI_NOT_ACCEPTED);
_(SMS_GSM_ERR_ILLEGAL_ME);
_(SMS_GSM_ERR_PLMN_NOT_ALLOWED);
_(SMS_GSM_ERR_LA_NOT_ALLOWED);
_(SMS_GSM_ERR_ROAM_NOT_ALLOWED_LA);
_(SMS_GSM_ERR_NO_SUITABLE_CELLS_LA);
_(SMS_GSM_ERR_NETWORK_FAILURE);
_(SMS_GSM_ERR_MAC_FAILURE);
_(SMS_GSM_ERR_SYNC_FAILURE);
_(SMS_GSM_ERR_LOW_LAYER_CONGESTION);
_(SMS_GSM_ERR_AUTH_UNACCEPTABLE);
_(SMS_GSM_ERR_SERV_OPT_NOT_SUPPORTED);
_(SMS_GSM_ERR_SERV_OPT_NOT_SUBSCRIBED);
_(SMS_GSM_ERR_SERV_OPT_TEMP_OUT_OF_ORDER);
_(SMS_GSM_ERR_CALL_CANNOT_BE_IDENTIFIED);
_(SMS_GSM_ERR_SEMANTICALLY_INCORR_MSG);
_(SMS_GSM_ERR_LOW_LAYER_INVALID_MAND_INFO);
_(SMS_GSM_ERR_LOW_LAYER_INVALID_MSG_TYPE);
_(SMS_GSM_ERR_LOW_LAYER_MSG_TYPE_NOT_COMP_WITH_ST);
_(SMS_GSM_ERR_LOW_LAYER_INVALID_INFO_ELEMENT);
_(SMS_GSM_ERR_CONDITIONAL_IE_ERROR);
_(SMS_GSM_ERR_LOW_LAYER_MSG_NOT_COMP_WITH_ST);
_(SMS_GSM_ERR_CS_BARRED);
_(SMS_GSM_ERR_LOW_LAYER_PROTOCOL_ERROR);
}
return "SMS_<UNKNOWN>";
}
const char *sms_message_id_name(enum sms_message_id value)
{
switch (value) {
_(SMS_MESSAGE_SEND_REQ);
_(SMS_MESSAGE_SEND_RESP);
_(SMS_PP_ROUTING_REQ);
_(SMS_PP_ROUTING_RESP);
_(SMS_PP_ROUTING_NTF);
_(SMS_GSM_RECEIVED_PP_REPORT_REQ);
_(SMS_GSM_RECEIVED_PP_REPORT_RESP);
_(SMS_GSM_CB_ROUTING_REQ);
_(SMS_GSM_CB_ROUTING_RESP);
_(SMS_GSM_CB_ROUTING_NTF);
_(SMS_MESSAGE_SEND_STATUS_IND);
_(SMS_SETTINGS_UPDATE_REQ);
_(SMS_SETTINGS_UPDATE_RESP);
_(SMS_SETTINGS_READ_REQ);
_(SMS_SETTINGS_READ_RESP);
_(SMS_RECEIVED_MSG_REPORT_REQ);
_(SMS_RECEIVED_MSG_REPORT_RESP);
_(SMS_RECEIVE_MESSAGE_REQ);
_(SMS_RECEIVE_MESSAGE_RESP);
_(SMS_RECEIVED_MSG_IND);
}
return "SMS_<UNKNOWN>";
}
const char *sms_subblock_name(enum sms_subblock value)
{
switch (value) {
_(SMS_GSM_DELIVER);
_(SMS_GSM_STATUS_REPORT);
_(SMS_GSM_SUBMIT);
_(SMS_GSM_COMMAND);
_(SMS_GSM_DELIVER_REPORT);
_(SMS_GSM_REPORT);
_(SMS_GSM_ROUTING);
_(SMS_GSM_CB_MESSAGE);
_(SMS_GSM_TPDU);
_(SMS_SB_TPDU);
_(SMS_SB_ROUTE_INFO);
_(SMS_SB_SMS_PARAMETERS);
_(SMS_COMMON_DATA);
_(SMS_ADDRESS);
/* _(SMS_SB_ADDRESS); */
}
return "SMS_<UNKNOWN>";
}
const char *sim_isi_cause_name(enum sim_isi_cause value)
{
switch (value) {
_(SIM_SERV_NOT_AVAIL);
_(SIM_SERV_OK);
_(SIM_SERV_PIN_VERIFY_REQUIRED);
_(SIM_SERV_PIN_REQUIRED);
_(SIM_SERV_SIM_BLOCKED);
_(SIM_SERV_SIM_PERMANENTLY_BLOCKED);
_(SIM_SERV_SIM_DISCONNECTED);
_(SIM_SERV_SIM_REJECTED);
_(SIM_SERV_LOCK_ACTIVE);
_(SIM_SERV_AUTOLOCK_CLOSED);
_(SIM_SERV_AUTOLOCK_ERROR);
_(SIM_SERV_INIT_OK);
_(SIM_SERV_INIT_NOT_OK);
_(SIM_SERV_WRONG_OLD_PIN);
_(SIM_SERV_PIN_DISABLED);
_(SIM_SERV_COMMUNICATION_ERROR);
_(SIM_SERV_UPDATE_IMPOSSIBLE);
_(SIM_SERV_NO_SECRET_CODE_IN_SIM);
_(SIM_SERV_PIN_ENABLE_OK);
_(SIM_SERV_PIN_DISABLE_OK);
_(SIM_SERV_WRONG_UNBLOCKING_KEY);
_(SIM_SERV_ILLEGAL_NUMBER);
_(SIM_SERV_NOT_OK);
_(SIM_SERV_PN_LIST_ENABLE_OK);
_(SIM_SERV_PN_LIST_DISABLE_OK);
_(SIM_SERV_NO_PIN);
_(SIM_SERV_PIN_VERIFY_OK);
_(SIM_SERV_PIN_BLOCKED);
_(SIM_SERV_PIN_PERM_BLOCKED);
_(SIM_SERV_DATA_NOT_AVAIL);
_(SIM_SERV_IN_HOME_ZONE);
_(SIM_SERV_STATE_CHANGED);
_(SIM_SERV_INF_NBR_READ_OK);
_(SIM_SERV_INF_NBR_READ_NOT_OK);
_(SIM_SERV_IMSI_EQUAL);
_(SIM_SERV_IMSI_NOT_EQUAL);
_(SIM_SERV_INVALID_LOCATION);
_(SIM_SERV_STA_SIM_REMOVED);
_(SIM_SERV_SECOND_SIM_REMOVED_CS);
_(SIM_SERV_CONNECTED_INDICATION_CS);
_(SIM_SERV_SECOND_SIM_CONNECTED_CS);
_(SIM_SERV_PIN_RIGHTS_LOST_IND_CS);
_(SIM_SERV_PIN_RIGHTS_GRANTED_IND_CS);
_(SIM_SERV_INIT_OK_CS);
_(SIM_SERV_INIT_NOT_OK_CS);
_(SIM_FDN_ENABLED);
_(SIM_FDN_DISABLED);
_(SIM_SERV_INVALID_FILE);
_(SIM_SERV_DATA_AVAIL);
_(SIM_SERV_ICC_EQUAL);
_(SIM_SERV_ICC_NOT_EQUAL);
_(SIM_SERV_SIM_NOT_INITIALISED);
_(SIM_SERV_SERVICE_NOT_AVAIL);
_(SIM_SERV_FDN_STATUS_ERROR);
_(SIM_SERV_FDN_CHECK_PASSED);
_(SIM_SERV_FDN_CHECK_FAILED);
_(SIM_SERV_FDN_CHECK_DISABLED);
_(SIM_SERV_FDN_CHECK_NO_FDN_SIM);
_(SIM_STA_ISIM_AVAILEBLE_PIN_REQUIRED);
_(SIM_STA_ISIM_AVAILEBLE);
_(SIM_STA_USIM_AVAILEBLE);
_(SIM_STA_SIM_AVAILEBLE);
_(SIM_STA_ISIM_NOT_INITIALIZED);
_(SIM_STA_IMS_READY);
_(SIM_STA_APP_DATA_READ_OK);
_(SIM_STA_APP_ACTIVATE_OK);
_(SIM_STA_APP_ACTIVATE_NOT_OK);
_(SIM_SERV_NOT_DEFINED);
_(SIM_SERV_NOSERVICE);
_(SIM_SERV_NOTREADY);
_(SIM_SERV_ERROR);
_(SIM_SERV_CIPHERING_INDICATOR_DISPLAY_REQUIRED);
_(SIM_SERV_CIPHERING_INDICATOR_DISPLAY_NOT_REQUIRED);
_(SIM_SERV_FILE_NOT_AVAILABLE);
}
return "SIM_<UNKNOWN>";
}
const char *sim_message_id_name(enum sim_message_id value)
{
switch (value) {
_(SIM_NETWORK_INFO_REQ);
_(SIM_NETWORK_INFO_RESP);
_(SIM_IMSI_REQ_READ_IMSI);
_(SIM_IMSI_RESP_READ_IMSI);
_(SIM_SERV_PROV_NAME_REQ);
_(SIM_SERV_PROV_NAME_RESP);
_(SIM_DYNAMIC_FLAGS_REQ);
_(SIM_DYNAMIC_FLAGS_RESP);
_(SIM_READ_FIELD_REQ);
_(SIM_READ_FIELD_RESP);
_(SIM_SMS_REQ);
_(SIM_SMS_RESP);
_(SIM_STATUS_REQ);
_(SIM_STATUS_RESP);
_(SIM_PB_REQ_SIM_PB_READ);
_(SIM_PB_RESP_SIM_PB_READ);
_(SIM_SERVER_READY_IND);
_(SIM_IND);
}
return "SIM_<UNKNOWN>";
}
const char *sim_password_name(enum ofono_sim_password_type type)
{
static const char *const passwd_name[] = {
[OFONO_SIM_PASSWORD_NONE] = "none",
[OFONO_SIM_PASSWORD_SIM_PIN] = "pin",
[OFONO_SIM_PASSWORD_SIM_PUK] = "puk",
[OFONO_SIM_PASSWORD_PHSIM_PIN] = "phone",
[OFONO_SIM_PASSWORD_PHFSIM_PIN] = "firstphone",
[OFONO_SIM_PASSWORD_PHFSIM_PUK] = "firstphonepuk",
[OFONO_SIM_PASSWORD_SIM_PIN2] = "pin2",
[OFONO_SIM_PASSWORD_SIM_PUK2] = "puk2",
[OFONO_SIM_PASSWORD_PHNET_PIN] = "network",
[OFONO_SIM_PASSWORD_PHNET_PUK] = "networkpuk",
[OFONO_SIM_PASSWORD_PHNETSUB_PIN] = "netsub",
[OFONO_SIM_PASSWORD_PHNETSUB_PUK] = "netsubpuk",
[OFONO_SIM_PASSWORD_PHSP_PIN] = "service",
[OFONO_SIM_PASSWORD_PHSP_PUK] = "servicepuk",
[OFONO_SIM_PASSWORD_PHCORP_PIN] = "corp",
[OFONO_SIM_PASSWORD_PHCORP_PUK] = "corppuk",
[OFONO_SIM_PASSWORD_INVALID] = "invalid",
};
if (OFONO_SIM_PASSWORD_NONE <= (int)type &&
type <= OFONO_SIM_PASSWORD_PHCORP_PUK)
return passwd_name[type];
else
return "UNKNOWN";
}
const char *sec_message_id_name(enum sec_message_id value)
{
switch (value) {
_(SEC_CODE_STATE_REQ);
_(SEC_CODE_STATE_OK_RESP);
_(SEC_CODE_STATE_FAIL_RESP);
_(SEC_CODE_CHANGE_REQ);
_(SEC_CODE_CHANGE_OK_RESP);
_(SEC_CODE_CHANGE_FAIL_RESP);
_(SEC_CODE_VERIFY_REQ);
_(SEC_CODE_VERIFY_OK_RESP);
_(SEC_CODE_VERIFY_FAIL_RESP);
_(SEC_STATE_REQ);
_(SEC_STATE_RESP);
}
return "SEC_<UNKNOWN>";
}
const char *sim_subblock_name(enum sim_subblock value)
{
switch (value) {
_(SIM_PB_INFO_REQUEST);
_(SIM_PB_STATUS);
_(SIM_PB_LOCATION);
_(SIM_PB_LOCATION_SEARCH);
}
return "SIM_<UNKNOWN>";
}
const char *info_isi_cause_name(enum info_isi_cause value)
{
switch (value) {
_(INFO_OK);
_(INFO_FAIL);
_(INFO_NO_NUMBER);
_(INFO_NOT_SUPPORTED);
}
return "INFO_<UNKNOWN>";
}
const char *info_message_id_name(enum info_message_id value)
{
switch (value) {
_(INFO_SERIAL_NUMBER_READ_REQ);
_(INFO_SERIAL_NUMBER_READ_RESP);
_(INFO_PP_READ_REQ);
_(INFO_PP_READ_RESP);
_(INFO_VERSION_READ_REQ);
_(INFO_VERSION_READ_RESP);
_(INFO_PRODUCT_INFO_READ_REQ);
_(INFO_PRODUCT_INFO_READ_RESP);
}
return "INFO_<UNKNOWN>";
}
const char *info_subblock_name(enum info_subblock value)
{
switch (value) {
_(INFO_SB_MODEMSW_VERSION);
_(INFO_SB_PRODUCT_INFO_NAME);
_(INFO_SB_PRODUCT_INFO_MANUFACTURER);
_(INFO_SB_SN_IMEI_PLAIN);
_(INFO_SB_SN_IMEI_SV_TO_NET);
_(INFO_SB_PP);
_(INFO_SB_MCUSW_VERSION);
}
return "INFO_<UNKNOWN>";
}
const char *call_status_name(enum call_status value)
{
switch (value) {
_(CALL_STATUS_IDLE);
_(CALL_STATUS_CREATE);
_(CALL_STATUS_COMING);
_(CALL_STATUS_PROCEEDING);
_(CALL_STATUS_MO_ALERTING);
_(CALL_STATUS_MT_ALERTING);
_(CALL_STATUS_WAITING);
_(CALL_STATUS_ANSWERED);
_(CALL_STATUS_ACTIVE);
_(CALL_STATUS_MO_RELEASE);
_(CALL_STATUS_MT_RELEASE);
_(CALL_STATUS_HOLD_INITIATED);
_(CALL_STATUS_HOLD);
_(CALL_STATUS_RETRIEVE_INITIATED);
_(CALL_STATUS_RECONNECT_PENDING);
_(CALL_STATUS_TERMINATED);
_(CALL_STATUS_SWAP_INITIATED);
}
return "CALL_<UNKNOWN>";
}
char const *call_message_id_name(enum call_message_id value)
{
switch (value) {
_(CALL_CREATE_REQ);
_(CALL_CREATE_RESP);
_(CALL_COMING_IND);
_(CALL_MO_ALERT_IND);
_(CALL_MT_ALERT_IND);
_(CALL_WAITING_IND);
_(CALL_ANSWER_REQ);
_(CALL_ANSWER_RESP);
_(CALL_RELEASE_REQ);
_(CALL_RELEASE_RESP);
_(CALL_RELEASE_IND);
_(CALL_TERMINATED_IND);
_(CALL_STATUS_REQ);
_(CALL_STATUS_RESP);
_(CALL_STATUS_IND);
_(CALL_SERVER_STATUS_IND);
_(CALL_CONTROL_REQ);
_(CALL_CONTROL_RESP);
_(CALL_CONTROL_IND);
_(CALL_MODE_SWITCH_REQ);
_(CALL_MODE_SWITCH_RESP);
_(CALL_MODE_SWITCH_IND);
_(CALL_DTMF_SEND_REQ);
_(CALL_DTMF_SEND_RESP);
_(CALL_DTMF_STOP_REQ);
_(CALL_DTMF_STOP_RESP);
_(CALL_DTMF_STATUS_IND);
_(CALL_DTMF_TONE_IND);
_(CALL_RECONNECT_IND);
_(CALL_PROPERTY_GET_REQ);
_(CALL_PROPERTY_GET_RESP);
_(CALL_PROPERTY_SET_REQ);
_(CALL_PROPERTY_SET_RESP);
_(CALL_PROPERTY_SET_IND);
_(CALL_EMERGENCY_NBR_CHECK_REQ);
_(CALL_EMERGENCY_NBR_CHECK_RESP);
_(CALL_EMERGENCY_NBR_GET_REQ);
_(CALL_EMERGENCY_NBR_GET_RESP);
_(CALL_EMERGENCY_NBR_MODIFY_REQ);
_(CALL_EMERGENCY_NBR_MODIFY_RESP);
_(CALL_GSM_NOTIFICATION_IND);
_(CALL_GSM_USER_TO_USER_REQ);
_(CALL_GSM_USER_TO_USER_RESP);
_(CALL_GSM_USER_TO_USER_IND);
_(CALL_GSM_BLACKLIST_CLEAR_REQ);
_(CALL_GSM_BLACKLIST_CLEAR_RESP);
_(CALL_GSM_BLACKLIST_TIMER_IND);
_(CALL_GSM_DATA_CH_INFO_IND);
_(CALL_GSM_CCP_GET_REQ);
_(CALL_GSM_CCP_GET_RESP);
_(CALL_GSM_CCP_CHECK_REQ);
_(CALL_GSM_CCP_CHECK_RESP);
_(CALL_GSM_COMING_REJ_IND);
_(CALL_GSM_RAB_IND);
_(CALL_GSM_IMMEDIATE_MODIFY_IND);
_(CALL_CREATE_NO_SIMATK_REQ);
_(CALL_GSM_SS_DATA_IND);
_(CALL_TIMER_REQ);
_(CALL_TIMER_RESP);
_(CALL_TIMER_NTF);
_(CALL_TIMER_IND);
_(CALL_TIMER_RESET_REQ);
_(CALL_TIMER_RESET_RESP);
_(CALL_EMERGENCY_NBR_IND);
_(CALL_SERVICE_DENIED_IND);
_(CALL_RELEASE_END_REQ);
_(CALL_RELEASE_END_RESP);
_(CALL_USER_CONNECT_IND);
_(CALL_AUDIO_CONNECT_IND);
_(CALL_KODIAK_ALLOW_CTRL_REQ);
_(CALL_KODIAK_ALLOW_CTRL_RESP);
_(CALL_SERVICE_ACTIVATE_IND);
_(CALL_SERVICE_ACTIVATE_REQ);
_(CALL_SERVICE_ACTIVATE_RESP);
_(CALL_SIM_ATK_IND);
_(CALL_CONTROL_OPER_IND);
_(CALL_TEST_CALL_STATUS_IND);
_(CALL_SIM_ATK_INFO_IND);
_(CALL_SECURITY_IND);
_(CALL_MEDIA_HANDLE_REQ);
_(CALL_MEDIA_HANDLE_RESP);
}
return "CALL_<UNKNOWN>";
}
char const *call_isi_cause_name(enum call_isi_cause value)
{
switch (value) {
_(CALL_CAUSE_NO_CAUSE);
_(CALL_CAUSE_NO_CALL);
_(CALL_CAUSE_TIMEOUT);
_(CALL_CAUSE_RELEASE_BY_USER);
_(CALL_CAUSE_BUSY_USER_REQUEST);
_(CALL_CAUSE_ERROR_REQUEST);
_(CALL_CAUSE_COST_LIMIT_REACHED);
_(CALL_CAUSE_CALL_ACTIVE);
_(CALL_CAUSE_NO_CALL_ACTIVE);
_(CALL_CAUSE_INVALID_CALL_MODE);
_(CALL_CAUSE_SIGNALLING_FAILURE);
_(CALL_CAUSE_TOO_LONG_ADDRESS);
_(CALL_CAUSE_INVALID_ADDRESS);
_(CALL_CAUSE_EMERGENCY);
_(CALL_CAUSE_NO_TRAFFIC_CHANNEL);
_(CALL_CAUSE_NO_COVERAGE);
_(CALL_CAUSE_CODE_REQUIRED);
_(CALL_CAUSE_NOT_ALLOWED);
_(CALL_CAUSE_NO_DTMF);
_(CALL_CAUSE_CHANNEL_LOSS);
_(CALL_CAUSE_FDN_NOT_OK);
_(CALL_CAUSE_USER_TERMINATED);
_(CALL_CAUSE_BLACKLIST_BLOCKED);
_(CALL_CAUSE_BLACKLIST_DELAYED);
_(CALL_CAUSE_NUMBER_NOT_FOUND);
_(CALL_CAUSE_NUMBER_CANNOT_REMOVE);
_(CALL_CAUSE_EMERGENCY_FAILURE);
_(CALL_CAUSE_CS_SUSPENDED);
_(CALL_CAUSE_DCM_DRIVE_MODE);
_(CALL_CAUSE_MULTIMEDIA_NOT_ALLOWED);
_(CALL_CAUSE_SIM_REJECTED);
_(CALL_CAUSE_NO_SIM);
_(CALL_CAUSE_SIM_LOCK_OPERATIVE);
_(CALL_CAUSE_SIMATKCC_REJECTED);
_(CALL_CAUSE_SIMATKCC_MODIFIED);
_(CALL_CAUSE_DTMF_INVALID_DIGIT);
_(CALL_CAUSE_DTMF_SEND_ONGOING);
_(CALL_CAUSE_CS_INACTIVE);
_(CALL_CAUSE_SECURITY_MODE);
_(CALL_CAUSE_TRACFONE_FAILED);
_(CALL_CAUSE_TRACFONE_WAIT_FAILED);
_(CALL_CAUSE_TRACFONE_CONF_FAILED);
_(CALL_CAUSE_TEMPERATURE_LIMIT);
_(CALL_CAUSE_KODIAK_POC_FAILED);
_(CALL_CAUSE_NOT_REGISTERED);
_(CALL_CAUSE_CS_CALLS_ONLY);
_(CALL_CAUSE_VOIP_CALLS_ONLY);
_(CALL_CAUSE_LIMITED_CALL_ACTIVE);
_(CALL_CAUSE_LIMITED_CALL_NOT_ALLOWED);
_(CALL_CAUSE_SECURE_CALL_NOT_POSSIBLE);
_(CALL_CAUSE_INTERCEPT);
}
return "CALL_<UNKNOWN>";
}
char const *call_gsm_cause_name(enum call_gsm_cause value)
{
switch (value) {
_(CALL_GSM_CAUSE_UNASSIGNED_NUMBER);
_(CALL_GSM_CAUSE_NO_ROUTE);
_(CALL_GSM_CAUSE_CH_UNACCEPTABLE);
_(CALL_GSM_CAUSE_OPER_BARRING);
_(CALL_GSM_CAUSE_NORMAL);
_(CALL_GSM_CAUSE_USER_BUSY);
_(CALL_GSM_CAUSE_NO_USER_RESPONSE);
_(CALL_GSM_CAUSE_ALERT_NO_ANSWER);
_(CALL_GSM_CAUSE_CALL_REJECTED);
_(CALL_GSM_CAUSE_NUMBER_CHANGED);
_(CALL_GSM_CAUSE_NON_SELECT_CLEAR);
_(CALL_GSM_CAUSE_DEST_OUT_OF_ORDER);
_(CALL_GSM_CAUSE_INVALID_NUMBER);
_(CALL_GSM_CAUSE_FACILITY_REJECTED);
_(CALL_GSM_CAUSE_RESP_TO_STATUS);
_(CALL_GSM_CAUSE_NORMAL_UNSPECIFIED);
_(CALL_GSM_CAUSE_NO_CHANNEL);
_(CALL_GSM_CAUSE_NETW_OUT_OF_ORDER);
_(CALL_GSM_CAUSE_TEMPORARY_FAILURE);
_(CALL_GSM_CAUSE_CONGESTION);
_(CALL_GSM_CAUSE_ACCESS_INFO_DISC);
_(CALL_GSM_CAUSE_CHANNEL_NA);
_(CALL_GSM_CAUSE_RESOURCES_NA);
_(CALL_GSM_CAUSE_QOS_NA);
_(CALL_GSM_CAUSE_FACILITY_UNSUBS);
_(CALL_GSM_CAUSE_COMING_BARRED_CUG);
_(CALL_GSM_CAUSE_BC_UNAUTHORIZED);
_(CALL_GSM_CAUSE_BC_NA);
_(CALL_GSM_CAUSE_SERVICE_NA);
_(CALL_GSM_CAUSE_BEARER_NOT_IMPL);
_(CALL_GSM_CAUSE_ACM_MAX);
_(CALL_GSM_CAUSE_FACILITY_NOT_IMPL);
_(CALL_GSM_CAUSE_ONLY_RDI_BC);
_(CALL_GSM_CAUSE_SERVICE_NOT_IMPL);
_(CALL_GSM_CAUSE_INVALID_TI);
_(CALL_GSM_CAUSE_NOT_IN_CUG);
_(CALL_GSM_CAUSE_INCOMPATIBLE_DEST);
_(CALL_GSM_CAUSE_INV_TRANS_NET_SEL);
_(CALL_GSM_CAUSE_SEMANTICAL_ERR);
_(CALL_GSM_CAUSE_INVALID_MANDATORY);
_(CALL_GSM_CAUSE_MSG_TYPE_INEXIST);
_(CALL_GSM_CAUSE_MSG_TYPE_INCOMPAT);
_(CALL_GSM_CAUSE_IE_NON_EXISTENT);
_(CALL_GSM_CAUSE_COND_IE_ERROR);
_(CALL_GSM_CAUSE_MSG_INCOMPATIBLE);
_(CALL_GSM_CAUSE_TIMER_EXPIRY);
_(CALL_GSM_CAUSE_PROTOCOL_ERROR);
_(CALL_GSM_CAUSE_INTERWORKING);
}
return "CALL_<UNKNOWN>";
}
const char *net_gsm_cause_name(enum net_gsm_cause value)
{
switch (value) {
_(NET_GSM_IMSI_UNKNOWN_IN_HLR);
_(NET_GSM_ILLEGAL_MS);
_(NET_GSM_IMSI_UNKNOWN_IN_VLR);
_(NET_GSM_IMEI_NOT_ACCEPTED);
_(NET_GSM_ILLEGAL_ME);
_(NET_GSM_GPRS_SERVICES_NOT_ALLOWED);
_(NET_GSM_GPRS_AND_NON_GPRS_NA);
_(NET_GSM_MS_ID_CANNOT_BE_DERIVED);
_(NET_GSM_IMPLICITLY_DETACHED);
_(NET_GSM_PLMN_NOT_ALLOWED);
_(NET_GSM_LA_NOT_ALLOWED);
_(NET_GSM_ROAMING_NOT_IN_THIS_LA);
_(NET_GSM_GPRS_SERV_NA_IN_THIS_PLMN);
_(NET_GSM_NO_SUITABLE_CELLS_IN_LA);
_(NET_GSM_MSC_TEMP_NOT_REACHABLE);
_(NET_GSM_NETWORK_FAILURE);
_(NET_GSM_MAC_FAILURE);
_(NET_GSM_SYNCH_FAILURE);
_(NET_GSM_CONGESTION);
_(NET_GSM_AUTH_UNACCEPTABLE);
_(NET_GSM_SERV_OPT_NOT_SUPPORTED);
_(NET_GSM_SERV_OPT_NOT_SUBSCRIBED);
_(NET_GSM_SERV_TEMP_OUT_OF_ORDER);
_(NET_GSM_RETRY_ENTRY_NEW_CELL_LOW);
_(NET_GSM_RETRY_ENTRY_NEW_CELL_HIGH);
_(NET_GSM_SEMANTICALLY_INCORRECT);
_(NET_GSM_INVALID_MANDATORY_INFO);
_(NET_GSM_MSG_TYPE_NONEXISTENT);
_(NET_GSM_CONDITIONAL_IE_ERROR);
_(NET_GSM_MSG_TYPE_WRONG_STATE);
_(NET_GSM_PROTOCOL_ERROR_UNSPECIFIED);
}
return "NET_<UNKNOWN>";
}
const char *net_isi_cause_name(enum net_isi_cause value)
{
switch (value) {
_(NET_CAUSE_OK);
_(NET_CAUSE_COMMUNICATION_ERROR);
_(NET_CAUSE_INVALID_PARAMETER);
_(NET_CAUSE_NO_SIM);
_(NET_CAUSE_SIM_NOT_YET_READY);
_(NET_CAUSE_NET_NOT_FOUND);
_(NET_CAUSE_REQUEST_NOT_ALLOWED);
_(NET_CAUSE_CALL_ACTIVE);
_(NET_CAUSE_SERVER_BUSY);
_(NET_CAUSE_SECURITY_CODE_REQUIRED);
_(NET_CAUSE_NOTHING_TO_CANCEL);
_(NET_CAUSE_UNABLE_TO_CANCEL);
_(NET_CAUSE_NETWORK_FORBIDDEN);
_(NET_CAUSE_REQUEST_REJECTED);
_(NET_CAUSE_CS_NOT_SUPPORTED);
_(NET_CAUSE_PAR_INFO_NOT_AVAILABLE);
_(NET_CAUSE_NOT_DONE);
_(NET_CAUSE_NO_SELECTED_NETWORK);
_(NET_CAUSE_REQUEST_INTERRUPTED);
_(NET_CAUSE_TOO_BIG_INDEX);
_(NET_CAUSE_MEMORY_FULL);
_(NET_CAUSE_SERVICE_NOT_ALLOWED);
_(NET_CAUSE_NOT_SUPPORTED_IN_TECH);
}
return "NET_<UNKNOWN>";
}
const char *net_status_name(enum net_reg_status value)
{
switch (value) {
_(NET_REG_STATUS_HOME);
_(NET_REG_STATUS_ROAM);
_(NET_REG_STATUS_ROAM_BLINK);
_(NET_REG_STATUS_NOSERV);
_(NET_REG_STATUS_NOSERV_SEARCHING);
_(NET_REG_STATUS_NOSERV_NOTSEARCHING);
_(NET_REG_STATUS_NOSERV_NOSIM);
_(NET_REG_STATUS_POWER_OFF);
_(NET_REG_STATUS_NSPS);
_(NET_REG_STATUS_NSPS_NO_COVERAGE);
_(NET_REG_STATUS_NOSERV_SIM_REJECTED_BY_NW);
}
return "NET_<UNKNOWN>";
}
const char *net_message_id_name(enum net_message_id value)
{
switch (value) {
_(NET_MODEM_REG_STATUS_GET_REQ);
_(NET_MODEM_REG_STATUS_GET_RESP);
_(NET_MODEM_REG_STATUS_IND);
_(NET_MODEM_AVAILABLE_GET_REQ);
_(NET_MODEM_AVAILABLE_GET_RESP);
_(NET_SET_REQ);
_(NET_SET_RESP);
_(NET_RSSI_GET_REQ);
_(NET_RSSI_GET_RESP);
_(NET_CS_STATE_IND);
_(NET_RSSI_IND);
_(NET_CIPHERING_IND);
_(NET_TIME_IND);
_(NET_CHANNEL_INFO_IND);
_(NET_RAT_IND);
_(NET_RAT_REQ);
_(NET_RAT_RESP);
_(NET_CS_STATE_REQ);
_(NET_CS_STATE_RESP);
_(NET_CELL_INFO_GET_REQ);
_(NET_CELL_INFO_GET_RESP);
_(NET_CELL_INFO_IND);
_(NET_NITZ_NAME_IND);
_(NET_NW_ACCESS_CONF_REQ);
_(NET_NW_ACCESS_CONF_RESP);
_(NET_REG_STATUS_GET_REQ);
_(NET_REG_STATUS_GET_RESP);
_(NET_REG_STATUS_IND);
_(NET_AVAILABLE_GET_REQ);
_(NET_AVAILABLE_GET_RESP);
_(NET_OPER_NAME_READ_REQ);
_(NET_OPER_NAME_READ_RESP);
_(NET_OLD_OPER_NAME_READ_REQ);
_(NET_OLD_OPER_NAME_READ_RESP);
}
return "NET_<UNKNOWN>";
}
const char *net_subblock_name(enum net_subblock value)
{
switch (value) {
_(NET_REG_INFO_COMMON);
_(NET_MODEM_AVAIL_NETWORK_INFO_COMMON);
_(NET_OPERATOR_INFO_COMMON);
_(NET_RSSI_CURRENT);
_(NET_GSM_REG_INFO);
_(NET_DETAILED_NETWORK_INFO);
_(NET_GSM_OPERATOR_INFO);
_(NET_TIME_INFO);
_(NET_GSM_BAND_INFO);
_(NET_RAT_INFO);
_(NET_GSM_CELL_INFO);
_(NET_WCDMA_CELL_INFO);
_(NET_FULL_NITZ_NAME);
_(NET_SHORT_NITZ_NAME);
_(NET_REGISTRATION_CONF_INFO);
_(NET_ROAMING_CONF_INFO);
_(NET_REGISTRATION_CONF1_INFO);
_(NET_ROAMING_CONF1_INFO);
_(NET_AVAIL_NETWORK_INFO_COMMON);
_(NET_OPER_NAME_INFO);
}
return "NET_<UNKNOWN>";
}
const char *gss_message_id_name(enum gss_message_id value)
{
switch (value) {
_(GSS_CS_SERVICE_REQ);
_(GSS_CS_SERVICE_RESP);
_(GSS_CS_SERVICE_FAIL_RESP);
}
return "GSS_<UNKNOWN>";
}
const char *gss_subblock_name(enum gss_subblock value)
{
switch (value) {
_(GSS_RAT_INFO);
}
return "GSS_<UNKNOWN>";
}
const char *gpds_message_id_name(enum gpds_message_id value)
{
switch (value) {
_(GPDS_LL_CONFIGURE_REQ);
_(GPDS_LL_CONFIGURE_RESP);
_(GPDS_CONTEXT_ID_CREATE_REQ);
_(GPDS_CONTEXT_ID_CREATE_RESP);
_(GPDS_CONTEXT_ID_CREATE_IND);
_(GPDS_CONTEXT_ID_DELETE_IND);
_(GPDS_CONTEXT_CONFIGURE_REQ);
_(GPDS_CONTEXT_CONFIGURE_RESP);
_(GPDS_CONTEXT_ACTIVATE_REQ);
_(GPDS_CONTEXT_ACTIVATE_RESP);
_(GPDS_CONTEXT_ACTIVATE_IND);
_(GPDS_CONTEXT_DEACTIVATE_REQ);
_(GPDS_CONTEXT_DEACTIVATE_RESP);
_(GPDS_CONTEXT_DEACTIVATE_IND);
_(GPDS_CONTEXT_MWI_ACT_REQUEST_IND);
_(GPDS_CONTEXT_NWI_ACT_REJECT_REQ);
_(GPDS_CONTEXT_NWI_ACT_REJECT_RESP);
_(GPDS_CONFIGURE_REQ);
_(GPDS_CONFIGURE_RESP);
_(GPDS_ATTACH_REQ);
_(GPDS_ATTACH_RESP);
_(GPDS_ATTACH_IND);
_(GPDS_DETACH_REQ);
_(GPDS_DETACH_RESP);
_(GPDS_DETACH_IND);
_(GPDS_STATUS_REQ);
_(GPDS_STATUS_RESP);
_(GPDS_SMS_PDU_SEND_REQ);
_(GPDS_SMS_PDU_SEND_RESP);
_(GPDS_SMS_PDU_RECEIVE_IND);
_(GPDS_TRANSFER_STATUS_IND);
_(GPDS_CONTEXT_ACTIVATE_FAIL_IND);
_(GPDS_LL_BIND_REQ);
_(GPDS_LL_BIND_RESP);
_(GPDS_CONTEXT_STATUS_REQ);
_(GPDS_CONTEXT_STATUS_RESP);
_(GPDS_CONTEXT_STATUS_IND);
_(GPDS_CONTEXT_ACTIVATING_IND);
_(GPDS_CONTEXT_MODIFY_REQ);
_(GPDS_CONTEXT_MODIFY_RESP);
_(GPDS_CONTEXT_MODIFY_IND);
_(GPDS_ATTACH_FAIL_IND);
_(GPDS_CONTEXT_DEACTIVATING_IND);
_(GPDS_CONFIGURATION_INFO_REQ);
_(GPDS_CONFIGURATION_INFO_RESP);
_(GPDS_CONFIGURATION_INFO_IND);
_(GPDS_CONTEXT_AUTH_REQ);
_(GPDS_CONTEXT_AUTH_RESP);
_(GPDS_TEST_MODE_REQ);
_(GPDS_TEST_MODE_RESP);
_(GPDS_RADIO_ACTIVITY_IND);
_(GPDS_FORCED_READY_STATE_REQ);
_(GPDS_FORCED_READY_STATE_RESP);
_(GPDS_CONTEXTS_CLEAR_REQ);
_(GPDS_CONTEXTS_CLEAR_RESP);
_(GPDS_MBMS_SERVICE_SELECTION_REQ);
_(GPDS_MBMS_SERVICE_SELECTION_RESP);
_(GPDS_MBMS_STATUS_IND);
_(GPDS_MBMS_CONTEXT_CREATE_REQ);
_(GPDS_MBMS_CONTEXT_CREATE_RESP);
_(GPDS_MBMS_CONTEXT_ACTIVATE_REQ);
_(GPDS_MBMS_CONTEXT_ACTIVATE_RESP);
_(GPDS_MBMS_CONTEXT_DELETE_REQ);
_(GPDS_MBMS_CONTEXT_DELETE_RESP);
_(GPDS_MBMS_CONTEXT_DELETE_IND);
_(GPDS_MBMS_SERVICE_SELECTION_IND);
_(GPDS_MBMS_SERVICE_AVAILABLE_IND);
_(GPDS_TEST_REQ);
_(GPDS_TEST_RESP);
}
return "GPSD_<UNKNOWN>";
}
const char *gpds_subblock_name(enum gpds_subblock value)
{
switch (value) {
_(GPDS_COMP_INFO);
_(GPDS_QOS_REQ_INFO);
_(GPDS_QOS_MIN_INFO);
_(GPDS_QOS_NEG_INFO);
_(GPDS_PDP_ADDRESS_INFO);
_(GPDS_APN_INFO);
_(GPDS_QOS99_REQ_INFO);
_(GPDS_QOS99_MIN_INFO);
_(GPDS_QOS99_NEG_INFO);
_(GPDS_TFT_INFO);
_(GPDS_TFT_FILTER_INFO);
_(GPDS_USER_NAME_INFO);
_(GPDS_PASSWORD_INFO);
_(GPDS_PDNS_ADDRESS_INFO);
_(GPDS_SDNS_ADDRESS_INFO);
_(GPDS_CHALLENGE_INFO);
_(GPDS_DNS_ADDRESS_REQ_INFO);
}
return "GPDS_<UNKNOWN>";
}
const char *gpds_status_name(enum gpds_status value)
{
switch (value) {
_(GPDS_ERROR);
_(GPDS_OK);
_(GPDS_FAIL);
}
return "GPDS_<UNKNOWN>";
}
const char *gpds_isi_cause_name(enum gpds_isi_cause value)
{
switch (value) {
_(GPDS_CAUSE_UNKNOWN);
_(GPDS_CAUSE_IMSI);
_(GPDS_CAUSE_MS_ILLEGAL);
_(GPDS_CAUSE_ME_ILLEGAL);
_(GPDS_CAUSE_GPRS_NOT_ALLOWED);
_(GPDS_NOT_ALLOWED);
_(GPDS_CAUSE_MS_IDENTITY);
_(GPDS_CAUSE_DETACH);
_(GPDS_PLMN_NOT_ALLOWED);
_(GPDS_LA_NOT_ALLOWED);
_(GPDS_ROAMING_NOT_ALLOWED);
_(GPDS_CAUSE_GPRS_NOT_ALLOWED_IN_PLMN);
_(GPDS_CAUSE_MSC_NOT_REACH);
_(GPDS_CAUSE_PLMN_FAIL);
_(GPDS_CAUSE_NETWORK_CONGESTION);
_(GPDS_CAUSE_MBMS_BEARER_CAPABILITY_INSUFFICIENT);
_(GPDS_CAUSE_LLC_SNDCP_FAILURE);
_(GPDS_CAUSE_RESOURCE_INSUFF);
_(GPDS_CAUSE_APN);
_(GPDS_CAUSE_PDP_UNKNOWN);
_(GPDS_CAUSE_AUTHENTICATION);
_(GPDS_CAUSE_ACT_REJECT_GGSN);
_(GPDS_CAUSE_ACT_REJECT);
_(GPDS_CAUSE_SERV_OPT_NOT_SUPPORTED);
_(GPDS_CAUSE_SERV_OPT_NOT_SUBSCRIBED);
_(GPDS_CAUSE_SERV_OPT_OUT_OF_ORDER);
_(GPDS_CAUSE_NSAPI_ALREADY_USED);
_(GPDS_CAUSE_DEACT_REGULAR);
_(GPDS_CAUSE_QOS);
_(GPDS_CAUSE_NETWORK_FAIL);
_(GPDS_CAUSE_REACTIVATION_REQ);
_(GPDS_CAUSE_FEAT_NOT_SUPPORTED);
_(GPDS_CAUSE_TFT_SEMANTIC_ERROR);
_(GPDS_CAUSE_TFT_SYNTAX_ERROR);
_(GPDS_CAUSE_CONTEXT_UNKNOWN);
_(GPDS_CAUSE_FILTER_SEMANTIC_ERROR);
_(GPDS_CAUSE_FILTER_SYNTAX_ERROR);
_(GPDS_CAUSE_CONT_WITHOUT_TFT);
_(GPDS_CAUSE_MULTICAST_MEMBERSHIP_TIMEOUT);
_(GPDS_CAUSE_INVALID_MANDATORY_INFO);
_(GPDS_CAUSE_MSG_TYPE_NON_EXISTENTOR_NOT_IMPLTD);
_(GPDS_CAUSE_MSG_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE);
_(GPDS_CAUSE_IE_NON_EXISTENT_OR_NOT_IMPLEMENTED);
_(GPDS_CAUSE_CONDITIONAL_IE_ERROR);
_(GPDS_CUASEMSG_NOT_COMPATIBLE_WITH_PROTOCOL_STATE);
_(GPDS_CAUSE_UNSPECIFIED);
_(GPDS_CAUSE_APN_INCOMPATIBLE_WITH_CURR_CTXT);
_(GPDS_CAUSE_FDN);
_(GPDS_CAUSE_USER_ABORT);
_(GPDS_CAUSE_CS_INACTIVE);
_(GPDS_CAUSE_CSD_OVERRIDE);
_(GPDS_CAUSE_APN_CONTROL);
_(GPDS_CAUSE_CALL_CONTROL);
_(GPDS_CAUSE_TEMPERATURE_LIMIT);
_(GPDS_CAUSE_RETRY_COUNTER_EXPIRED);
_(GPDS_CAUSE_NO_CONNECTION);
_(GPDS_CAUSE_DETACHED);
_(GPDS_CAUSE_NO_SERVICE_POWER_SAVE);
_(GPDS_CAUSE_SIM_REMOVED);
_(GPDS_CAUSE_POWER_OFF);
_(GPDS_CAUSE_LAI_FORBIDDEN_NATIONAL_ROAM_LIST);
_(GPDS_CAUSE_LAI_FORBIDDEN_REG_PROVISION_LIST);
_(GPDS_CAUSE_ACCESS_BARRED);
_(GPDS_CAUSE_FATAL_FAILURE);
_(GPDS_CAUSE_AUT_FAILURE);
}
return "GPDS_<UNKNOWN>";
}
const char *gpds_transfer_status_name(enum gpds_transfer_status value)
{
switch (value) {
_(GPDS_TRANSFER_NOT_AVAIL);
_(GPDS_TRANSFER_AVAIL);
}
return "GPDS_<UNKNOWN>";
}
const char *gpds_transfer_cause_name(enum gpds_transfer_cause value)
{
switch (value) {
_(GPDS_TRANSFER_CAUSE_ATTACHED);
_(GPDS_TRANSFER_CAUSE_DETACHED);
_(GPDS_TRANSFER_CAUSE_RESUMED);
_(GPDS_TRANSFER_CAUSE_SUSPENDED_NO_COVERAGE);
_(GPDS_TRANSFER_CAUSE_SUSPENDED_CALL_SMS);
_(GPDS_TRANSFER_CAUSE_SUSPENDED_CALL);
_(GPDS_TRANSFER_CAUSE_SUSPENDED_RAU);
_(GPDS_TRANSFER_CAUSE_SUSPENDED_LU);
_(GPDS_TRANSFER_CAUSE_DSAC_RESTRICTION);
}
return "GPDS_<UNKNOWN>";
}
#undef _
static void hex_dump(const char *resname, uint8_t res, const char *name,
uint8_t id, uint8_t utid, const uint8_t m[], size_t len)
{
char hex[3 * 16 + 1];
char ascii[16 + 1];
size_t i, j, k;
ofono_debug("%s (0x%02X): %s [id=0x%02X utid=0x%02X len=%zu]:",
resname, res, name, id, utid, len);
strcpy(hex, ""), j = 0;
strcpy(ascii, "."), k = 1;
for (i = 0; i < len; i++) {
sprintf(hex + j, " %02X", m[i]), j += 3;
ascii[k++] = g_ascii_isgraph(m[i]) ? m[i] : '.';
if ((j & 48) == 48) {
ofono_debug(" *%-48s : %.*s", hex, (int) k, ascii);
j = 0, k = 0;
}
}
if (j)
ofono_debug(" *%-48s : %.*s", hex, (int) k, ascii);
}
static const char *res_to_name(uint8_t res, uint8_t id)
{
if (id == COMMON_MESSAGE)
return "COMMON_MESSAGE";
switch (res) {
case PN_MODEM_NETWORK:
case PN_NETWORK:
return net_message_id_name(id);
case PN_PHONE_INFO:
case PN_MODEM_INFO:
case PN_EPOC_INFO:
return info_message_id_name(id);
case PN_SS:
return ss_message_id_name(id);
case PN_MODEM_CALL:
case PN_CALL:
return call_message_id_name(id);
case PN_SECURITY:
return sec_message_id_name(id);
case PN_SMS:
return sms_message_id_name(id);
case PN_SIM:
return sim_message_id_name(id);
case PN_MTC:
return mtc_message_id_name(id);
case PN_GSS:
return gss_message_id_name(id);
case PN_GPDS:
return gpds_message_id_name(id);
case PN_UICC:
return uicc_message_id_name(id);
}
return "UNKNOWN";
}
void isi_trace(const GIsiMessage *msg, void *data)
{
uint8_t id = g_isi_msg_id(msg);
uint8_t res = g_isi_msg_resource(msg);
const char *resname = pn_resource_name(res);
const char *name = res_to_name(res, id);
uint8_t const *dump = g_isi_msg_data(msg);
hex_dump(resname, res, name, id, g_isi_msg_utid(msg),
dump - 2, g_isi_msg_data_len(msg) + 2);
}