wds: implement "Call End Reason" type

This commit is contained in:
Aleksander Morgado 2012-08-27 20:29:16 +02:00
parent c18cd871b6
commit d39c997771
3 changed files with 175 additions and 13 deletions

View File

@ -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,

View File

@ -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",

View File

@ -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 */