diff --git a/cli/qmicli-wds.c b/cli/qmicli-wds.c index 73e287a..a69db30 100644 --- a/cli/qmicli-wds.c +++ b/cli/qmicli-wds.c @@ -300,7 +300,7 @@ start_network_ready (QmiClientWds *client, if (g_error_matches (error, QMI_PROTOCOL_ERROR, QMI_PROTOCOL_ERROR_CALL_FAILED)) { - guint16 cer; + QmiWdsCallEndReason cer; guint16 verbose_cer_type; guint16 verbose_cer_reason; @@ -308,7 +308,9 @@ start_network_ready (QmiClientWds *client, output, &cer, NULL)) - g_printerr ("call end reason: %u\n", cer); + g_printerr ("call end reason (%u): %s\n", + cer, + qmi_wds_call_end_reason_get_string (cer)); if (qmi_message_wds_start_network_output_get_verbose_call_end_reason ( output, diff --git a/data/qmi-service-wds.json b/data/qmi-service-wds.json index 5ef8f57..04c6ea8 100644 --- a/data/qmi-service-wds.json +++ b/data/qmi-service-wds.json @@ -119,17 +119,18 @@ "type" : "TLV", "format" : "guint32", "prerequisites": [ { "common-ref" : "Success" } ] }, - { "name" : "Call End Reason", - "id" : "0x10", - "mandatory" : "no", - "type" : "TLV", - "format" : "guint16", - "prerequisites": [ { "field" : "Result.Error Status", - "operation" : "!=", - "value" : "QMI_STATUS_SUCCESS" }, - { "field" : "Result.Error Code", - "operation" : "==", - "value" : "QMI_PROTOCOL_ERROR_CALL_FAILED" } ] }, + { "name" : "Call End Reason", + "id" : "0x10", + "mandatory" : "no", + "type" : "TLV", + "format" : "guint16", + "public-format" : "QmiWdsCallEndReason", + "prerequisites" : [ { "field" : "Result.Error Status", + "operation" : "!=", + "value" : "QMI_STATUS_SUCCESS" }, + { "field" : "Result.Error Code", + "operation" : "==", + "value" : "QMI_PROTOCOL_ERROR_CALL_FAILED" } ] }, { "name" : "Verbose Call End Reason", "id" : "0x11", "mandatory" : "no", diff --git a/libqmi-glib/qmi-enums-wds.h b/libqmi-glib/qmi-enums-wds.h index 09d8407..369a7ea 100644 --- a/libqmi-glib/qmi-enums-wds.h +++ b/libqmi-glib/qmi-enums-wds.h @@ -90,6 +90,165 @@ typedef enum { QMI_WDS_CALL_TYPE_EMBEDDED = 1 } QmiWdsCallType; +/** + * QmiWdsCallEndReason: + * @QMI_WDS_CALL_END_REASON_GENERIC_UNSPECIFIED: Unspecified reason. + * @QMI_WDS_CALL_END_REASON_GENERIC_CLIENT_END: Client end. + * @QMI_WDS_CALL_END_REASON_GENERIC_NO_SERVICE: No service. + * @QMI_WDS_CALL_END_REASON_GENERIC_FADE: Fade. + * @QMI_WDS_CALL_END_REASON_GENERIC_RELEASE_NORMAL: Release normal. + * @QMI_WDS_CALL_END_REASON_GENERIC_ACCESS_ATTEMPT_IN_PROGRESS: Access attempt in progress. + * @QMI_WDS_CALL_END_REASON_GENERIC_ACCESS_FAILURE: Access Failure. + * @QMI_WDS_CALL_END_REASON_GENERIC_REDIRECTION_OR_HANDOFF: Redirection or handoff. + * @QMI_WDS_CALL_END_REASON_GENERIC_CLOSE_IN_PROGRESS: Close in progress. + * @QMI_WDS_CALL_END_REASON_GENERIC_AUTHENTICATION_FAILED: Authentication failed. + * @QMI_WDS_CALL_END_REASON_GENERIC_INTERNAL_ERROR: Internal error. + * @QMI_WDS_CALL_END_REASON_CDMA_LOCK: (CDMA) Phone is CDMA-locked. + * @QMI_WDS_CALL_END_REASON_CDMA_INTERCEPT: (CDMA) Received intercept from the BS. + * @QMI_WDS_CALL_END_REASON_CDMA_REORDER: (CDMA) Received reorder from the BS. + * @QMI_WDS_CALL_END_REASON_CDMA_RELEASE_SO_REJECT: (CDMA) Received release from the BS, SO reject. + * @QMI_WDS_CALL_END_REASON_CDMA_INCOMING_CALL: (CDMA) Received incoming call from the BS. + * @QMI_WDS_CALL_END_REASON_CDMA_ALERT_STOP: (CDMA) Received alert stop from the BS. + * @QMI_WDS_CALL_END_REASON_CDMA_ACTIVATION: (CDMA) Received end activation. + * @QMI_WDS_CALL_END_REASON_CDMA_MAX_ACCESS_PROBES: (CDMA) Maximum access probes transmitted. + * @QMI_WDS_CALL_END_REASON_CDMA_CCS_NOT_SUPPORTED_BY_BS: (CDMA) Concurrent service not supported by the BS. + * @QMI_WDS_CALL_END_REASON_CDMA_NO_RESPONSE_FROM_BS: (CDMA) No response received from the BS. + * @QMI_WDS_CALL_END_REASON_CDMA_REJECTED_BY_BS: (CDMA) Rejected by the BS. + * @QMI_WDS_CALL_END_REASON_CDMA_INCOMPATIBLE: (CDMA) Concurrent services requested are incompatible. + * @QMI_WDS_CALL_END_REASON_CDMA_ALREADY_IN_TC: (CDMA) Already in TC. + * @QMI_WDS_CALL_END_REASON_CDMA_USER_CALL_ORIGINATED_DURING_GPS: (CDMA) Call originated during GPS. + * @QMI_WDS_CALL_END_REASON_CDMA_USER_CALL_ORIGINATED_DURING_SMS: (CDMA) Call originated during SMS. + * @QMI_WDS_CALL_END_REASON_CDMA_NO_SERVICE: (CDMA) No service. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_CONFERENCE_FAILED: (GSM/WCDMA) Call origination request failed. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_INCOMING_REJECTED: (GSM/WCDMA) Client rejected incoming call. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_NO_SERVICE: (GSM/WCDMA) No service. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_NETWORK_END: (GSM/WCDMA) Network ended the call. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_LLC_SNDCP_FAILURE: (GSM/WCDMA) LLC or SNDCP failure. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_INSUFFICIENT_RESOURCES: (GSM/WCDMA) Insufficient resources. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_OPTION_TEMPORARILY_OUT_OF_ORDER: (GSM/WCDMA) Service option temporarily out of order. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_NSAPI_ALREADY_USED: (GSM/WCDMA) NSAPI already used. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_REGULAR_DEACTIVATION: (GSM/WCDMA) Regular PDP context deactivation. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_NETWORK_FAILURE: (GSM/WCDMA) Network failure. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_REATTACH_REQUIRED: (GSM/WCDMA) Reattach required. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_PROTOCOL_ERROR: (GSM/WCDMA) Protocol error. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_OPERATOR_DETERMINED_BARRING: (GSM/WCDMA) Operator-determined barring. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_UNKNOWN_APN: (GSM/WCDMA) Unknown or missing APN. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_UNKNOWN_PDP: (GSM/WCDMA) Unknown PDP address or type. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_GGSN_REJECT: (GSM/WCDMA) Activation rejected by GGSN. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_ACTIVATION_REJECT: (GSM/WCDMA) Activation rejected. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_OPTION_NOT_SUPPORTED: (GSM/WCDMA) Service option not supported. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_OPTION_UNSUBSCRIBED: (GSM/WCDMA) Service option not subscribed. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_QOS_NOT_ACCEPTED: (GSM/WCDMA) QoS not accepted. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_TFT_SEMANTIC_ERROR: (GSM/WCDMA) Semantic error in TFT operation. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_TFT_SYNTAX_ERROR: (GSM/WCDMA) Syntax error in TFT operation. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_UNKNOWN_PDP_CONTEXT: (GSM/WCDMA) Unknown PDP context. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_FILTER_SEMANTIC_ERROR: (GSM/WCDMA) Semantic error in packet filters. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_FILTER_SYNTAX_ERROR: (GSM/WCDMA) Syntax error in packet filters. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_PDP_WITHOUT_ACTIVE_TFT: (GSM/WCDMA) PDP context without TFT activated. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_INVALID_TRANSACTION_ID: (GSM/WCDMA) Invalid transaction ID. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_MESSAGE_INCORRECT_SEMANTIC: (GSM/WCDMA) Message incorrect semantically. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_INVALID_MANDATORY_INFO: (GSM/WCDMA) Invalid mandatory information. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_MESSAGE_TYPE_UNSUPPORTED: (GSM/WCDMA) Message type not implemented. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_MESSAGE_TYPE_NONCOMPATIBLE_STATE: (GSM/WCDMA) Message not compatible with state. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_UNKNOWN_INFO_ELEMENT: (GSM/WCDMA) Information element unknown. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_CONDITIONAL_IE_ERROR: (GSM/WCDMA) Conditional IE error. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_MESSAGE_AND_PROTOCOL_STATE_UNCOMPATIBLE: (GSM/WCDMA) Message and protocol state uncompatible. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_APN_TYPE_CONFLICT: (GSM/WCDMA) APN type conflict. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_NO_GPRS_CONTEXT: (GSM/WCDMA) No GPRS context. + * @QMI_WDS_CALL_END_REASON_GSM_WCDMA_FEATURE_NOT_SUPPORTED: (GSM/WCDMA) Feature not supported. + * @QMI_WDS_CALL_END_REASON_EVDO_CONNECTION_DENY_GENERAL_OR_BUSY: (EV-DO) Received Connection Deny (General or Network busy). + * @QMI_WDS_CALL_END_REASON_EVDO_CONNECTION_DENY_BILLING_OR_AUTHENTICATION_FAILURE: (EV-DO) Received Connection Deny (Billing or Authentication failure). + * @QMI_WDS_CALL_END_REASON_EVDO_HDR_CHANGE: (EV-DO) Change HDR. + * @QMI_WDS_CALL_END_REASON_EVDO_HDR_EXIT: (EV-DO) Exit HDR. + * @QMI_WDS_CALL_END_REASON_EVDO_HDR_NO_SESSION: (EV-DO) No HDR session. + * @QMI_WDS_CALL_END_REASON_EVDO_HDR_ORIGINATION_DURING_GPS_FIX: (EV-DO) HDR call ended in favor of a GPS fix. + * @QMI_WDS_CALL_END_REASON_EVDO_HDR_CONNECTION_SETUP_TIMEOUT: (EV-DO) Connection setup timeout. + * @QMI_WDS_CALL_END_REASON_EVDO_HDR_RELEASED_BY_CM: (EV-DO) Released HDR call by call manager. + * + * Reason for ending the call. + */ +typedef enum { + /* Generic reasons */ + QMI_WDS_CALL_END_REASON_GENERIC_UNSPECIFIED = 1, + QMI_WDS_CALL_END_REASON_GENERIC_CLIENT_END = 2, + QMI_WDS_CALL_END_REASON_GENERIC_NO_SERVICE = 3, + QMI_WDS_CALL_END_REASON_GENERIC_FADE = 4, + QMI_WDS_CALL_END_REASON_GENERIC_RELEASE_NORMAL = 5, + QMI_WDS_CALL_END_REASON_GENERIC_ACCESS_ATTEMPT_IN_PROGRESS = 6, + QMI_WDS_CALL_END_REASON_GENERIC_ACCESS_FAILURE = 7, + QMI_WDS_CALL_END_REASON_GENERIC_REDIRECTION_OR_HANDOFF = 8, + QMI_WDS_CALL_END_REASON_GENERIC_CLOSE_IN_PROGRESS = 9, + QMI_WDS_CALL_END_REASON_GENERIC_AUTHENTICATION_FAILED = 10, + QMI_WDS_CALL_END_REASON_GENERIC_INTERNAL_ERROR = 11, + + /* CDMA specific reasons */ + QMI_WDS_CALL_END_REASON_CDMA_LOCK = 500, + QMI_WDS_CALL_END_REASON_CDMA_INTERCEPT = 501, + QMI_WDS_CALL_END_REASON_CDMA_REORDER = 502, + QMI_WDS_CALL_END_REASON_CDMA_RELEASE_SO_REJECT = 503, + QMI_WDS_CALL_END_REASON_CDMA_INCOMING_CALL = 504, + QMI_WDS_CALL_END_REASON_CDMA_ALERT_STOP = 505, + QMI_WDS_CALL_END_REASON_CDMA_ACTIVATION = 506, + QMI_WDS_CALL_END_REASON_CDMA_MAX_ACCESS_PROBES = 507, + QMI_WDS_CALL_END_REASON_CDMA_CCS_NOT_SUPPORTED_BY_BS = 508, + QMI_WDS_CALL_END_REASON_CDMA_NO_RESPONSE_FROM_BS = 509, + QMI_WDS_CALL_END_REASON_CDMA_REJECTED_BY_BS = 510, + QMI_WDS_CALL_END_REASON_CDMA_INCOMPATIBLE = 511, + QMI_WDS_CALL_END_REASON_CDMA_ALREADY_IN_TC = 512, + QMI_WDS_CALL_END_REASON_CDMA_USER_CALL_ORIGINATED_DURING_GPS = 513, + QMI_WDS_CALL_END_REASON_CDMA_USER_CALL_ORIGINATED_DURING_SMS = 514, + QMI_WDS_CALL_END_REASON_CDMA_NO_SERVICE = 515, + + /* GSM/WCDMA specific reasons */ + QMI_WDS_CALL_END_REASON_GSM_WCDMA_CONFERENCE_FAILED = 1000, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_INCOMING_REJECTED = 1001, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_NO_SERVICE = 1002, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_NETWORK_END = 1003, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_LLC_SNDCP_FAILURE = 1004, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_INSUFFICIENT_RESOURCES = 1005, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_OPTION_TEMPORARILY_OUT_OF_ORDER = 1006, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_NSAPI_ALREADY_USED = 1007, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_REGULAR_DEACTIVATION = 1008, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_NETWORK_FAILURE = 1009, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_REATTACH_REQUIRED = 1010, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_PROTOCOL_ERROR = 1011, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_OPERATOR_DETERMINED_BARRING = 1012, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_UNKNOWN_APN = 1013, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_UNKNOWN_PDP = 1014, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_GGSN_REJECT = 1015, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_ACTIVATION_REJECT = 1016, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_OPTION_NOT_SUPPORTED = 1017, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_OPTION_UNSUBSCRIBED = 1018, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_QOS_NOT_ACCEPTED = 1019, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_TFT_SEMANTIC_ERROR = 1020, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_TFT_SYNTAX_ERROR = 1021, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_UNKNOWN_PDP_CONTEXT = 1022, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_FILTER_SEMANTIC_ERROR = 1023, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_FILTER_SYNTAX_ERROR = 1024, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_PDP_WITHOUT_ACTIVE_TFT = 1025, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_INVALID_TRANSACTION_ID = 1026, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_MESSAGE_INCORRECT_SEMANTIC = 1027, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_INVALID_MANDATORY_INFO = 1028, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_MESSAGE_TYPE_UNSUPPORTED = 1029, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_MESSAGE_TYPE_NONCOMPATIBLE_STATE = 1030, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_UNKNOWN_INFO_ELEMENT = 1031, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_CONDITIONAL_IE_ERROR = 1032, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_MESSAGE_AND_PROTOCOL_STATE_UNCOMPATIBLE = 1033, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_APN_TYPE_CONFLICT = 1034, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_NO_GPRS_CONTEXT = 1035, + QMI_WDS_CALL_END_REASON_GSM_WCDMA_FEATURE_NOT_SUPPORTED = 1036, + + /* EV-DO specific reasons */ + QMI_WDS_CALL_END_REASON_EVDO_CONNECTION_DENY_GENERAL_OR_BUSY = 1500, + QMI_WDS_CALL_END_REASON_EVDO_CONNECTION_DENY_BILLING_OR_AUTHENTICATION_FAILURE = 1501, + QMI_WDS_CALL_END_REASON_EVDO_HDR_CHANGE = 1502, + QMI_WDS_CALL_END_REASON_EVDO_HDR_EXIT = 1503, + QMI_WDS_CALL_END_REASON_EVDO_HDR_NO_SESSION = 1504, + QMI_WDS_CALL_END_REASON_EVDO_HDR_ORIGINATION_DURING_GPS_FIX = 1505, + QMI_WDS_CALL_END_REASON_EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 1506, + QMI_WDS_CALL_END_REASON_EVDO_HDR_RELEASED_BY_CM = 1507 +} QmiWdsCallEndReason; + /*****************************************************************************/ /* Helper enums for the 'QMI WDS Get Packet Service Status' message */