Use value_string_ext fcns to access certain value_string arrays;
Sort certain value_string arrays so the values are in ascending order; Use val_to_str_ext() instead of for loops to do value_string array lookups (voip_calls.c). Minor whitespace cleanup. svn path=/trunk/; revision=34794
This commit is contained in:
parent
76bc0e537b
commit
b78ec52693
|
@ -7102,7 +7102,7 @@ void proto_register_camel(void) {
|
|||
"ERROR code", HFILL }},
|
||||
{ &hf_camel_cause_indicator, /* Currently not enabled */
|
||||
{ "Cause indicator", "camel.cause_indicator",
|
||||
FT_UINT8, BASE_DEC, VALS(q850_cause_code_vals), 0x7f,
|
||||
FT_UINT8, BASE_DEC|BASE_EXT_STRING, &q850_cause_code_vals_ext, 0x7f,
|
||||
NULL, HFILL }},
|
||||
{ &hf_digit,
|
||||
{ "Digit Value", "camel.digit_value",
|
||||
|
@ -8654,7 +8654,7 @@ void proto_register_camel(void) {
|
|||
NULL, HFILL }},
|
||||
{ &hf_camel_callingPartysCategory,
|
||||
{ "callingPartysCategory", "camel.callingPartysCategory",
|
||||
FT_UINT16, BASE_DEC, VALS(isup_calling_partys_category_value), 0,
|
||||
FT_UINT16, BASE_DEC|BASE_EXT_STRING, &isup_calling_partys_category_value_ext, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_camel_redirectingPartyID,
|
||||
{ "redirectingPartyID", "camel.redirectingPartyID",
|
||||
|
|
|
@ -2307,7 +2307,7 @@ de_call_state(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
|
|||
case 0:
|
||||
proto_tree_add_uint_format_value(subtree, hf_gsm_a_dtap_call_state, tvb,
|
||||
offset, 1, call_state, "%s (%u)",
|
||||
val_to_str(call_state, q931_call_state_vals, "Reserved"),
|
||||
val_to_str_ext_const(call_state, &q931_call_state_vals_ext, "Reserved"),
|
||||
call_state);
|
||||
break;
|
||||
case 1:
|
||||
|
@ -3030,7 +3030,7 @@ de_prog_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
|
|||
case 0:
|
||||
proto_tree_add_uint_format_value(tree, hf_gsm_a_dtap_progress_description, tvb,
|
||||
curr_offset, 1, progress_description, "%s (%u)",
|
||||
val_to_str(progress_description, q931_progress_description_vals, "Reserved"),
|
||||
val_to_str_ext_const(progress_description, &q931_progress_description_vals_ext, "Reserved"),
|
||||
progress_description);
|
||||
break;
|
||||
case 1:
|
||||
|
@ -6605,7 +6605,7 @@ proto_register_gsm_a_dtap(void)
|
|||
},
|
||||
{ &hf_gsm_a_dtap_afi,
|
||||
{ "Authority and Format Identifier", "gsm_a.dtap.afi",
|
||||
FT_UINT8, BASE_HEX, VALS(x213_afi_value), 0x0,
|
||||
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &x213_afi_value_ext, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_dtap_rej_cause,
|
||||
|
|
|
@ -7636,7 +7636,7 @@ void proto_register_h225(void) {
|
|||
NULL, HFILL }},
|
||||
{ &hf_h225_protocol_discriminator,
|
||||
{ "protocol-discriminator", "h225.protocol_discriminator",
|
||||
FT_UINT32, BASE_DEC, VALS(q931_protocol_discriminator_vals), 0,
|
||||
FT_UINT32, BASE_DEC|BASE_EXT_STRING, &q931_protocol_discriminator_vals_ext, 0,
|
||||
"INTEGER_0_255", HFILL }},
|
||||
{ &hf_h225_user_information,
|
||||
{ "user-information", "h225.user_information",
|
||||
|
|
|
@ -1245,7 +1245,7 @@ void proto_register_h248_annex_c(void) {
|
|||
|
||||
{ &hf_h248_pkg_annexc_tmr,
|
||||
{ "TMR", "h248.pkg.annexc.tmr",
|
||||
FT_UINT8, BASE_HEX, VALS(isup_transmission_medium_requirement_value), 0,
|
||||
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &isup_transmission_medium_requirement_value_ext, 0,
|
||||
"Transmission Medium Requirement", HFILL }},
|
||||
{ &hf_h248_pkg_annexc_tmrsr,
|
||||
{ "TMSR", "h248.pkg.annexc.tmsr",
|
||||
|
|
|
@ -443,7 +443,7 @@ void proto_register_q1950(void) {
|
|||
},
|
||||
{ &hf_h248_pkg_BCP_BNCChar,
|
||||
{ "BNCChar (BNC Characteristics)", "h248.pkg.bcp.bncchar",
|
||||
FT_UINT32, BASE_HEX, VALS(bearer_network_connection_characteristics_vals), 0, "BNC Characteristics", HFILL }
|
||||
FT_UINT32, BASE_HEX|BASE_EXT_STRING, &bearer_network_connection_characteristics_vals_ext, 0, "BNC Characteristics", HFILL }
|
||||
},
|
||||
|
||||
/* A.4 Bearer Network connection cut-through package */
|
||||
|
|
|
@ -9985,7 +9985,7 @@ void proto_register_inap(void) {
|
|||
NULL, HFILL }},
|
||||
{ &hf_inap_callingPartysCategory,
|
||||
{ "callingPartysCategory", "inap.callingPartysCategory",
|
||||
FT_UINT16, BASE_DEC, VALS(isup_calling_partys_category_value), 0,
|
||||
FT_UINT16, BASE_DEC|BASE_EXT_STRING, &isup_calling_partys_category_value_ext, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_inap_iPSSPCapabilities,
|
||||
{ "iPSSPCapabilities", "inap.iPSSPCapabilities",
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -27,144 +27,145 @@
|
|||
#ifndef PACKET_ISUP_H
|
||||
#define PACKET_ISUP_H
|
||||
|
||||
#define ISUP_MAX_NUM_MESSAGE_TYPES 256
|
||||
#define ISUP_MAX_NUM_MESSAGE_TYPES 256
|
||||
|
||||
typedef struct _isup_tap_rec_t {
|
||||
guint8 message_type;
|
||||
guint8 message_type;
|
||||
/* added for VoIP calls analysis, see gtk/voip_calls.c*/
|
||||
gchar *called_number;
|
||||
gchar *calling_number;
|
||||
guint8 cause_value;
|
||||
guint8 cause_value;
|
||||
} isup_tap_rec_t;
|
||||
|
||||
|
||||
/*
|
||||
* the following allows TAP code access to the messages
|
||||
* without having to duplicate it. With MSVC and a
|
||||
* without having to duplicate it. With MSVC and a
|
||||
* libwireshark.dll, we need a special declaration.
|
||||
*/
|
||||
WS_VAR_IMPORT const value_string isup_message_type_value[];
|
||||
WS_VAR_IMPORT const value_string isup_message_type_value_acro[];
|
||||
WS_VAR_IMPORT const value_string q850_cause_code_vals[];
|
||||
WS_VAR_IMPORT value_string_ext isup_message_type_value_acro_ext;
|
||||
WS_VAR_IMPORT value_string_ext q850_cause_code_vals_ext;
|
||||
/*
|
||||
* Export some definitions and value_string tables for other dissectors
|
||||
*/
|
||||
|
||||
/* Definition of Parameter Types */
|
||||
#define PARAM_TYPE_END_OF_OPT_PARAMS 0
|
||||
#define PARAM_TYPE_CALL_REF 1
|
||||
#define PARAM_TYPE_TRANSM_MEDIUM_REQU 2
|
||||
#define PARAM_TYPE_ACC_TRANSP 3
|
||||
#define PARAM_TYPE_CALLED_PARTY_NR 4
|
||||
#define PARAM_TYPE_SUBSQT_NR 5
|
||||
#define PARAM_TYPE_NATURE_OF_CONN_IND 6
|
||||
#define PARAM_TYPE_FORW_CALL_IND 7
|
||||
#define PARAM_TYPE_OPT_FORW_CALL_IND 8
|
||||
#define PARAM_TYPE_CALLING_PRTY_CATEG 9
|
||||
#define PARAM_TYPE_CALLING_PARTY_NR 10
|
||||
#define PARAM_TYPE_REDIRECTING_NR 11
|
||||
#define PARAM_TYPE_REDIRECTION_NR 12
|
||||
#define PARAM_TYPE_CONNECTION_REQ 13
|
||||
#define PARAM_TYPE_INFO_REQ_IND 14
|
||||
#define PARAM_TYPE_INFO_IND 15
|
||||
#define PARAM_TYPE_CONTINUITY_IND 16
|
||||
#define PARAM_TYPE_BACKW_CALL_IND 17
|
||||
#define PARAM_TYPE_CAUSE_INDICATORS 18
|
||||
#define PARAM_TYPE_REDIRECTION_INFO 19
|
||||
#define PARAM_TYPE_CIRC_GRP_SV_MSG_TYPE 21
|
||||
#define PARAM_TYPE_RANGE_AND_STATUS 22
|
||||
#define PARAM_TYPE_FACILITY_IND 24
|
||||
#define PARAM_TYPE_CLSD_USR_GRP_ILOCK_CD 26
|
||||
#define PARAM_TYPE_USER_SERVICE_INFO 29
|
||||
#define PARAM_TYPE_SIGNALLING_POINT_CODE 30
|
||||
#define PARAM_TYPE_USER_TO_USER_INFO 32
|
||||
#define PARAM_TYPE_CONNECTED_NR 33
|
||||
#define PARAM_TYPE_SUSP_RESUME_IND 34
|
||||
#define PARAM_TYPE_TRANSIT_NETW_SELECT 35
|
||||
#define PARAM_TYPE_EVENT_INFO 36
|
||||
#define PARAM_TYPE_CIRC_ASSIGN_MAP 37
|
||||
#define PARAM_TYPE_CIRC_STATE_IND 38
|
||||
#define PARAM_TYPE_AUTO_CONG_LEVEL 39
|
||||
#define PARAM_TYPE_ORIG_CALLED_NR 40
|
||||
#define PARAM_TYPE_OPT_BACKW_CALL_IND 41
|
||||
#define PARAM_TYPE_USER_TO_USER_IND 42
|
||||
#define PARAM_TYPE_ORIG_ISC_POINT_CODE 43
|
||||
#define PARAM_TYPE_GENERIC_NOTIF_IND 44
|
||||
#define PARAM_TYPE_CALL_HIST_INFO 45
|
||||
#define PARAM_TYPE_ACC_DELIV_INFO 46
|
||||
#define PARAM_TYPE_NETW_SPECIFIC_FACLTY 47
|
||||
#define PARAM_TYPE_USER_SERVICE_INFO_PR 48
|
||||
#define PARAM_TYPE_PROPAG_DELAY_COUNTER 49
|
||||
#define PARAM_TYPE_REMOTE_OPERATIONS 50
|
||||
#define PARAM_TYPE_SERVICE_ACTIVATION 51
|
||||
#define PARAM_TYPE_USER_TELESERV_INFO 52
|
||||
#define PARAM_TYPE_TRANSM_MEDIUM_USED 53
|
||||
#define PARAM_TYPE_CALL_DIV_INFO 54
|
||||
#define PARAM_TYPE_ECHO_CTRL_INFO 55
|
||||
#define PARAM_TYPE_MSG_COMPAT_INFO 56
|
||||
#define PARAM_TYPE_PARAM_COMPAT_INFO 57
|
||||
#define PARAM_TYPE_MLPP_PRECEDENCE 58
|
||||
#define PARAM_TYPE_MCID_REQ_IND 59
|
||||
#define PARAM_TYPE_MCID_RSP_IND 60
|
||||
#define PARAM_TYPE_HOP_COUNTER 61
|
||||
#define PARAM_TYPE_TRANSM_MEDIUM_RQUR_PR 62
|
||||
#define PARAM_TYPE_LOCATION_NR 63
|
||||
#define PARAM_TYPE_REDIR_NR_RSTRCT 64
|
||||
#define PARAM_TYPE_CALL_TRANS_REF 67
|
||||
#define PARAM_TYPE_LOOP_PREV_IND 68
|
||||
#define PARAM_TYPE_CALL_TRANS_NR 69
|
||||
#define PARAM_TYPE_CCSS 75
|
||||
#define PARAM_TYPE_FORW_GVNS 76
|
||||
#define PARAM_TYPE_BACKW_GVNS 77
|
||||
#define PARAM_TYPE_REDIRECT_CAPAB 78
|
||||
#define PARAM_TYPE_NETW_MGMT_CTRL 91
|
||||
#define PARAM_TYPE_CORRELATION_ID 101
|
||||
#define PARAM_TYPE_SCF_ID 102
|
||||
#define PARAM_TYPE_CALL_DIV_TREAT_IND 110
|
||||
#define PARAM_TYPE_CALLED_IN_NR 111
|
||||
#define PARAM_TYPE_CALL_OFF_TREAT_IND 112
|
||||
#define PARAM_TYPE_CHARGED_PARTY_IDENT 113
|
||||
#define PARAM_TYPE_CONF_TREAT_IND 114
|
||||
#define PARAM_TYPE_DISPLAY_INFO 115
|
||||
#define PARAM_TYPE_UID_ACTION_IND 116
|
||||
#define PARAM_TYPE_UID_CAPAB_IND 117
|
||||
#define PARAM_TYPE_REDIRECT_COUNTER 119
|
||||
#define PARAM_TYPE_APPLICATON_TRANS 120
|
||||
#define PARAM_TYPE_COLLECT_CALL_REQ 121
|
||||
#define PARAM_TYPE_CALLING_GEODETIC_LOCATION 129 /* ANSI is the same */
|
||||
#define PARAM_TYPE_GENERIC_NR 192
|
||||
#define PARAM_TYPE_GENERIC_DIGITS 193
|
||||
#define PARAM_TYPE_JURISDICTION 196
|
||||
#define PARAM_TYPE_GENERIC_NAME 199
|
||||
#define PARAM_TYPE_ORIG_LINE_INFO 234
|
||||
#define PARAM_TYPE_CHARGE_NR 235
|
||||
#define PARAM_TYPE_END_OF_OPT_PARAMS 0
|
||||
#define PARAM_TYPE_CALL_REF 1
|
||||
#define PARAM_TYPE_TRANSM_MEDIUM_REQU 2
|
||||
#define PARAM_TYPE_ACC_TRANSP 3
|
||||
#define PARAM_TYPE_CALLED_PARTY_NR 4
|
||||
#define PARAM_TYPE_SUBSQT_NR 5
|
||||
#define PARAM_TYPE_NATURE_OF_CONN_IND 6
|
||||
#define PARAM_TYPE_FORW_CALL_IND 7
|
||||
#define PARAM_TYPE_OPT_FORW_CALL_IND 8
|
||||
#define PARAM_TYPE_CALLING_PRTY_CATEG 9
|
||||
#define PARAM_TYPE_CALLING_PARTY_NR 10
|
||||
#define PARAM_TYPE_REDIRECTING_NR 11
|
||||
#define PARAM_TYPE_REDIRECTION_NR 12
|
||||
#define PARAM_TYPE_CONNECTION_REQ 13
|
||||
#define PARAM_TYPE_INFO_REQ_IND 14
|
||||
#define PARAM_TYPE_INFO_IND 15
|
||||
#define PARAM_TYPE_CONTINUITY_IND 16
|
||||
#define PARAM_TYPE_BACKW_CALL_IND 17
|
||||
#define PARAM_TYPE_CAUSE_INDICATORS 18
|
||||
#define PARAM_TYPE_REDIRECTION_INFO 19
|
||||
#define PARAM_TYPE_CIRC_GRP_SV_MSG_TYPE 21
|
||||
#define PARAM_TYPE_RANGE_AND_STATUS 22
|
||||
#define PARAM_TYPE_FACILITY_IND 24
|
||||
#define PARAM_TYPE_CLSD_USR_GRP_ILOCK_CD 26
|
||||
#define PARAM_TYPE_USER_SERVICE_INFO 29
|
||||
#define PARAM_TYPE_SIGNALLING_POINT_CODE 30
|
||||
#define PARAM_TYPE_USER_TO_USER_INFO 32
|
||||
#define PARAM_TYPE_CONNECTED_NR 33
|
||||
#define PARAM_TYPE_SUSP_RESUME_IND 34
|
||||
#define PARAM_TYPE_TRANSIT_NETW_SELECT 35
|
||||
#define PARAM_TYPE_EVENT_INFO 36
|
||||
#define PARAM_TYPE_CIRC_ASSIGN_MAP 37
|
||||
#define PARAM_TYPE_CIRC_STATE_IND 38
|
||||
#define PARAM_TYPE_AUTO_CONG_LEVEL 39
|
||||
#define PARAM_TYPE_ORIG_CALLED_NR 40
|
||||
#define PARAM_TYPE_OPT_BACKW_CALL_IND 41
|
||||
#define PARAM_TYPE_USER_TO_USER_IND 42
|
||||
#define PARAM_TYPE_ORIG_ISC_POINT_CODE 43
|
||||
#define PARAM_TYPE_GENERIC_NOTIF_IND 44
|
||||
#define PARAM_TYPE_CALL_HIST_INFO 45
|
||||
#define PARAM_TYPE_ACC_DELIV_INFO 46
|
||||
#define PARAM_TYPE_NETW_SPECIFIC_FACLTY 47
|
||||
#define PARAM_TYPE_USER_SERVICE_INFO_PR 48
|
||||
#define PARAM_TYPE_PROPAG_DELAY_COUNTER 49
|
||||
#define PARAM_TYPE_REMOTE_OPERATIONS 50
|
||||
#define PARAM_TYPE_SERVICE_ACTIVATION 51
|
||||
#define PARAM_TYPE_USER_TELESERV_INFO 52
|
||||
#define PARAM_TYPE_TRANSM_MEDIUM_USED 53
|
||||
#define PARAM_TYPE_CALL_DIV_INFO 54
|
||||
#define PARAM_TYPE_ECHO_CTRL_INFO 55
|
||||
#define PARAM_TYPE_MSG_COMPAT_INFO 56
|
||||
#define PARAM_TYPE_PARAM_COMPAT_INFO 57
|
||||
#define PARAM_TYPE_MLPP_PRECEDENCE 58
|
||||
#define PARAM_TYPE_MCID_REQ_IND 59
|
||||
#define PARAM_TYPE_MCID_RSP_IND 60
|
||||
#define PARAM_TYPE_HOP_COUNTER 61
|
||||
#define PARAM_TYPE_TRANSM_MEDIUM_RQUR_PR 62
|
||||
#define PARAM_TYPE_LOCATION_NR 63
|
||||
#define PARAM_TYPE_REDIR_NR_RSTRCT 64
|
||||
#define PARAM_TYPE_CALL_TRANS_REF 67
|
||||
#define PARAM_TYPE_LOOP_PREV_IND 68
|
||||
#define PARAM_TYPE_CALL_TRANS_NR 69
|
||||
#define PARAM_TYPE_CCSS 75
|
||||
#define PARAM_TYPE_FORW_GVNS 76
|
||||
#define PARAM_TYPE_BACKW_GVNS 77
|
||||
#define PARAM_TYPE_REDIRECT_CAPAB 78
|
||||
#define PARAM_TYPE_NETW_MGMT_CTRL 91
|
||||
#define PARAM_TYPE_CORRELATION_ID 101
|
||||
#define PARAM_TYPE_SCF_ID 102
|
||||
#define PARAM_TYPE_CALL_DIV_TREAT_IND 110
|
||||
#define PARAM_TYPE_CALLED_IN_NR 111
|
||||
#define PARAM_TYPE_CALL_OFF_TREAT_IND 112
|
||||
#define PARAM_TYPE_CHARGED_PARTY_IDENT 113
|
||||
#define PARAM_TYPE_CONF_TREAT_IND 114
|
||||
#define PARAM_TYPE_DISPLAY_INFO 115
|
||||
#define PARAM_TYPE_UID_ACTION_IND 116
|
||||
#define PARAM_TYPE_UID_CAPAB_IND 117
|
||||
#define PARAM_TYPE_REDIRECT_COUNTER 119
|
||||
#define PARAM_TYPE_APPLICATON_TRANS 120
|
||||
#define PARAM_TYPE_COLLECT_CALL_REQ 121
|
||||
#define PARAM_TYPE_CALLING_GEODETIC_LOCATION 129 /* ANSI is the same */
|
||||
#define PARAM_TYPE_GENERIC_NR 192
|
||||
#define PARAM_TYPE_GENERIC_DIGITS 193
|
||||
#define PARAM_TYPE_JURISDICTION 196
|
||||
#define PARAM_TYPE_GENERIC_NAME 199
|
||||
#define PARAM_TYPE_ORIG_LINE_INFO 234
|
||||
#define PARAM_TYPE_CHARGE_NR 235
|
||||
|
||||
#define ANSI_ISUP_PARAM_TYPE_OPER_SERV_INF 0xC2
|
||||
#define ANSI_ISUP_PARAM_TYPE_EGRESS 0xC3
|
||||
#define ANSI_ISUP_PARAM_TYPE_JURISDICTION 0xC4
|
||||
#define ANSI_ISUP_PARAM_TYPE_CARRIER_ID 0xC5
|
||||
#define ANSI_ISUP_PARAM_TYPE_BUSINESS_GRP 0xC6
|
||||
#define ANSI_ISUP_PARAM_TYPE_GENERIC_NAME 0xC7
|
||||
#define ANSI_ISUP_PARAM_TYPE_NOTIF_IND 0xE1
|
||||
#define ANSI_ISUP_PARAM_TYPE_OPER_SERV_INF 0xC2 /* 194 */
|
||||
#define ANSI_ISUP_PARAM_TYPE_EGRESS 0xC3 /* 195 */
|
||||
#define ANSI_ISUP_PARAM_TYPE_JURISDICTION 0xC4 /* 196 */
|
||||
#define ANSI_ISUP_PARAM_TYPE_CARRIER_ID 0xC5 /* 197 */
|
||||
#define ANSI_ISUP_PARAM_TYPE_BUSINESS_GRP 0xC6 /* 198 */
|
||||
#define ANSI_ISUP_PARAM_TYPE_GENERIC_NAME 0xC7 /* 199*/
|
||||
#define ANSI_ISUP_PARAM_TYPE_NOTIF_IND 0xE1 /* 225 */
|
||||
|
||||
#define ANSI_ISUP_PARAM_TYPE_CG_CHAR_IND 229
|
||||
#define ANSI_ISUP_PARAM_TYPE_CVR_RESP_IND 230
|
||||
#define ANSI_ISUP_PARAM_TYPE_OUT_TRK_GRP_NM 231
|
||||
#define ANSI_ISUP_PARAM_TYPE_CI_NAME_IND 232
|
||||
#define ANSI_ISUP_PARAM_CLLI_CODE 233
|
||||
#define ANSI_ISUP_PARAM_TYPE_CG_CHAR_IND 229
|
||||
#define ANSI_ISUP_PARAM_TYPE_CVR_RESP_IND 230
|
||||
#define ANSI_ISUP_PARAM_TYPE_OUT_TRK_GRP_NM 231
|
||||
#define ANSI_ISUP_PARAM_TYPE_CI_NAME_IND 232
|
||||
#define ANSI_ISUP_PARAM_CLLI_CODE 233
|
||||
|
||||
#define ANSI_ISUP_PARAM_ORIG_LINE_INF 0xEA
|
||||
#define ANSI_ISUP_PARAM_CHRG_NO 0xEB
|
||||
#define ANSI_ISUP_PARAM_SERV_CODE_IND 0xEC
|
||||
#define ANSI_ISUP_PARAM_SPEC_PROC_REQ 0xED
|
||||
#define ANSI_ISUP_PARAM_CARRIER_SEL_INF 0xEE
|
||||
#define ANSI_ISUP_PARAM_NET_TRANS 0xEF
|
||||
#define ANSI_ISUP_PARAM_ORIG_LINE_INF 0xEA /* 234 */
|
||||
#define ANSI_ISUP_PARAM_CHRG_NO 0xEB /* 235 */
|
||||
#define ANSI_ISUP_PARAM_SERV_CODE_IND 0xEC /* 236 */
|
||||
#define ANSI_ISUP_PARAM_SPEC_PROC_REQ 0xED /* 237 */
|
||||
#define ANSI_ISUP_PARAM_CARRIER_SEL_INF 0xEE /* 238 */
|
||||
#define ANSI_ISUP_PARAM_NET_TRANS 0xEF /* 239 */
|
||||
|
||||
extern const value_string isup_parameter_type_value[];
|
||||
extern const value_string isup_transmission_medium_requirement_value[];
|
||||
WS_VAR_IMPORT const value_string isup_calling_partys_category_value[];
|
||||
extern const value_string bearer_network_connection_characteristics_vals[];
|
||||
extern const value_string x213_afi_value[];
|
||||
extern const value_string isup_parameter_type_value[];
|
||||
|
||||
extern value_string_ext isup_transmission_medium_requirement_value_ext;
|
||||
extern value_string_ext bearer_network_connection_characteristics_vals_ext;
|
||||
extern value_string_ext x213_afi_value_ext;
|
||||
|
||||
WS_VAR_IMPORT value_string_ext isup_calling_partys_category_value_ext;
|
||||
/*
|
||||
* Export dissection of some parameters
|
||||
*/
|
||||
|
|
|
@ -112,8 +112,8 @@ static int hf_q931_segment_overlap_conflict = -1;
|
|||
static int hf_q931_segment_multiple_tails = -1;
|
||||
static int hf_q931_segment_too_long_segment = -1;
|
||||
static int hf_q931_segment_error = -1;
|
||||
static int hf_q931_reassembled_in = -1;
|
||||
static int hf_q931_reassembled_length = -1;
|
||||
static int hf_q931_reassembled_in = -1;
|
||||
static int hf_q931_reassembled_length = -1;
|
||||
|
||||
static gint ett_q931 = -1;
|
||||
static gint ett_q931_ie = -1;
|
||||
|
@ -154,7 +154,7 @@ static gboolean q931_desegment = TRUE;
|
|||
static dissector_handle_t h225_handle;
|
||||
static dissector_handle_t q931_tpkt_handle;
|
||||
static dissector_handle_t q931_tpkt_pdu_handle;
|
||||
static dissector_handle_t data_handle = NULL;
|
||||
static dissector_handle_t data_handle = NULL;
|
||||
|
||||
static heur_dissector_list_t q931_user_heur_subdissector_list;
|
||||
|
||||
|
@ -166,50 +166,52 @@ const value_string q931_message_type_vals[] = {
|
|||
{ Q931_ESCAPE, "ESCAPE" },
|
||||
{ Q931_ALERTING, "ALERTING" },
|
||||
{ Q931_CALL_PROCEEDING, "CALL PROCEEDING" },
|
||||
{ Q931_CONNECT, "CONNECT" },
|
||||
{ Q931_CONNECT_ACK, "CONNECT ACKNOWLEDGE" },
|
||||
{ Q931_PROGRESS, "PROGRESS" },
|
||||
{ Q931_SETUP, "SETUP" },
|
||||
{ Q931_GROUIP_SERVICE, "GROUP SERVICE" },
|
||||
{ Q931_CONNECT, "CONNECT" },
|
||||
{ Q931_RESYNC_REQ, "RESYNC REQ" },
|
||||
{ Q931_RESYNC_RESP, "RESYNC RESP" },
|
||||
{ Q931_VERSION, "VERSION" },
|
||||
{ Q931_GROUIP_SERVICE_ACK, "GROUP SERVICE ACK" },
|
||||
{ Q931_SETUP_ACK, "SETUP ACKNOWLEDGE" },
|
||||
{ Q931_HOLD, "HOLD" },
|
||||
{ Q931_HOLD_ACK, "HOLD_ACKNOWLEDGE" },
|
||||
{ Q931_HOLD_REJECT, "HOLD_REJECT" },
|
||||
{ Q931_RESUME, "RESUME" },
|
||||
{ Q931_RESUME_ACK, "RESUME ACKNOWLEDGE" },
|
||||
{ Q931_CONNECT_ACK, "CONNECT ACKNOWLEDGE" },
|
||||
{ Q931_USER_INFORMATION, "USER INFORMATION" },
|
||||
{ Q931_SUSPEND_REJECT, "SUSPEND REJECT" },
|
||||
{ Q931_RESUME_REJECT, "RESUME REJECT" },
|
||||
{ Q931_HOLD, "HOLD" },
|
||||
{ Q931_SUSPEND, "SUSPEND" },
|
||||
{ Q931_RESUME, "RESUME" },
|
||||
{ Q931_HOLD_ACK, "HOLD_ACKNOWLEDGE" },
|
||||
{ Q931_SUSPEND_ACK, "SUSPEND ACKNOWLEDGE" },
|
||||
{ Q931_RESUME_ACK, "RESUME ACKNOWLEDGE" },
|
||||
{ Q931_HOLD_REJECT, "HOLD_REJECT" },
|
||||
{ Q931_RETRIEVE, "RETRIEVE" },
|
||||
{ Q931_RETRIEVE_ACK, "RETRIEVE ACKNOWLEDGE" },
|
||||
{ Q931_RETRIEVE_REJECT, "RETRIEVE REJECT" },
|
||||
{ Q931_SUSPEND, "SUSPEND" },
|
||||
{ Q931_SUSPEND_ACK, "SUSPEND ACKNOWLEDGE" },
|
||||
{ Q931_SUSPEND_REJECT, "SUSPEND REJECT" },
|
||||
{ Q931_USER_INFORMATION, "USER INFORMATION" },
|
||||
{ Q931_DETACH, "DETACH" },
|
||||
{ Q931_DETACH_ACKNOWLEDGE, "DETACH ACKNOWLEDGE" },
|
||||
{ Q931_DISCONNECT, "DISCONNECT" },
|
||||
{ Q931_RELEASE, "RELEASE" },
|
||||
{ Q931_RELEASE_COMPLETE, "RELEASE COMPLETE" },
|
||||
{ Q931_RESTART, "RESTART" },
|
||||
{ Q931_DETACH_ACKNOWLEDGE, "DETACH ACKNOWLEDGE" },
|
||||
{ Q931_RELEASE, "RELEASE" },
|
||||
{ Q931_RESTART_ACK, "RESTART ACKNOWLEDGE" },
|
||||
{ Q931_CONGESTION_CONTROL, "CONGESTION CONTROL" },
|
||||
{ Q931_FACILITY, "FACILITY" },
|
||||
{ Q931_FACILITY_ACKNOWLEDGE, "FACILITY ACKNOWLEDGE" },
|
||||
{ Q931_FACILITY_REJECT, "FACILITY REJECT" },
|
||||
{ Q931_INFORMATION, "INFORMATION" },
|
||||
{ Q931_NOTIFY, "NOTIFY" },
|
||||
{ Q931_REGISTER, "REGISTER" },
|
||||
{ Q931_RELEASE_COMPLETE, "RELEASE COMPLETE" },
|
||||
{ Q931_SEGMENT, "SEGMENT" },
|
||||
{ Q931_STATUS, "STATUS" },
|
||||
{ Q931_FACILITY, "FACILITY" },
|
||||
{ Q931_REGISTER, "REGISTER" },
|
||||
{ Q931_FACILITY_ACKNOWLEDGE, "FACILITY ACKNOWLEDGE" },
|
||||
{ Q931_NOTIFY, "NOTIFY" },
|
||||
{ Q931_FACILITY_REJECT, "FACILITY REJECT" },
|
||||
{ Q931_STATUS_ENQUIRY, "STATUS ENQUIRY" },
|
||||
{ Q931_VERSION, "VERSION" },
|
||||
{ Q931_GROUIP_SERVICE, "GROUP SERVICE" },
|
||||
{ Q931_GROUIP_SERVICE_ACK, "GROUP SERVICE ACK" },
|
||||
{ Q931_RESYNC_REQ, "RESYNC REQ" },
|
||||
{ Q931_RESYNC_RESP, "RESYNC RESP" },
|
||||
{ Q931_CONGESTION_CONTROL, "CONGESTION CONTROL" },
|
||||
{ Q931_INFORMATION, "INFORMATION" },
|
||||
{ Q931_STATUS, "STATUS" },
|
||||
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext q931_message_type_vals_ext = VALUE_STRING_EXT_INIT(q931_message_type_vals);
|
||||
|
||||
const value_string dms_message_type_vals[] = {
|
||||
static const value_string dms_message_type_vals[] = {
|
||||
{ DMS_SERVICE_ACKNOWLEDGE, "SERVICE ACKNOWLEDGE" },
|
||||
{ DMS_SERVICE, "SERVICE" },
|
||||
{ 0, NULL }
|
||||
|
@ -426,6 +428,7 @@ static const value_string q931_info_element_vals0[] = {
|
|||
{ Q931_IE_CONNECTED_SUBADDR, "Connected subaddress" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
/* Codeset 1 */
|
||||
static const value_string q931_info_element_vals1[] = {
|
||||
{ 0, NULL }
|
||||
|
@ -572,6 +575,7 @@ static const value_string q931_uil1_vals[] = {
|
|||
{ 0x0b, "Recommendation G.729 CS-ACELP" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext q931_uil1_vals_ext = VALUE_STRING_EXT_INIT(q931_uil1_vals);
|
||||
|
||||
static const value_string q931_l1_user_rate_vals[] = {
|
||||
{ 0x00, "Rate indicated by E-bits" },
|
||||
|
@ -603,6 +607,7 @@ static const value_string q931_l1_user_rate_vals[] = {
|
|||
{ 0x1F, "12 kbit/s" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext q931_l1_user_rate_vals_ext = VALUE_STRING_EXT_INIT(q931_l1_user_rate_vals);
|
||||
|
||||
static const value_string q931_l1_intermediate_rate_vals[] = {
|
||||
{ 0x20, "8 kbit/s" },
|
||||
|
@ -650,6 +655,7 @@ static const value_string q931_l1_modem_type_vals[] = {
|
|||
{ 0x1E, "V.34" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext q931_l1_modem_type_vals_ext = VALUE_STRING_EXT_INIT(q931_l1_modem_type_vals);
|
||||
|
||||
#define Q931_UIL2_USER_SPEC 0x10
|
||||
|
||||
|
@ -670,6 +676,7 @@ static const value_string q931_uil2_vals[] = {
|
|||
{ 0x11, "ISO 7776 DTE-DTE operation" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext q931_uil2_vals_ext = VALUE_STRING_EXT_INIT(q931_uil2_vals);
|
||||
|
||||
static const value_string q931_mode_vals[] = {
|
||||
{ 0x20, "Normal mode" },
|
||||
|
@ -736,7 +743,7 @@ static const value_string q931_bearer_capability_layer_ident_vals[] = {
|
|||
{ 0x02, "Layer 2 identifier" },
|
||||
{ 0x03, "Layer 3 identifier" },
|
||||
{ 0x00, NULL }
|
||||
};
|
||||
};
|
||||
|
||||
void
|
||||
dissect_q931_bearer_capability_ie(tvbuff_t *tvb, int offset, int len,
|
||||
|
@ -830,7 +837,7 @@ dissect_q931_bearer_capability_ie(tvbuff_t *tvb, int offset, int len,
|
|||
(octet & 0x20) ? "" : "not ");
|
||||
proto_tree_add_text(tree, tvb, offset, 1,
|
||||
"User rate: %s",
|
||||
val_to_str(octet & 0x1F, q931_l1_user_rate_vals,
|
||||
val_to_str_ext(octet & 0x1F, &q931_l1_user_rate_vals_ext,
|
||||
"Unknown (0x%02X)"));
|
||||
offset += 1;
|
||||
len -= 1;
|
||||
|
@ -922,7 +929,7 @@ dissect_q931_bearer_capability_ie(tvbuff_t *tvb, int offset, int len,
|
|||
} else {
|
||||
proto_tree_add_text(tree, tvb, offset, 1,
|
||||
"Modem type: %s",
|
||||
val_to_str(modem_type, q931_l1_modem_type_vals,
|
||||
val_to_str_ext(modem_type, &q931_l1_modem_type_vals_ext,
|
||||
"Unknown (0x%02X)"));
|
||||
}
|
||||
offset += 1;
|
||||
|
@ -943,7 +950,7 @@ l1_done:
|
|||
uil2_protocol = octet & 0x1F;
|
||||
proto_tree_add_text(tree, tvb, offset, 1,
|
||||
"User information layer 2 protocol: %s",
|
||||
val_to_str(uil2_protocol, q931_uil2_vals,
|
||||
val_to_str_ext(uil2_protocol, &q931_uil2_vals_ext,
|
||||
"Unknown (0x%02X)"));
|
||||
offset += 1;
|
||||
len -= 1;
|
||||
|
@ -1075,7 +1082,7 @@ l3_done:
|
|||
*/
|
||||
|
||||
|
||||
const value_string q931_cause_location_vals[] = {
|
||||
static const value_string q931_cause_location_vals[] = {
|
||||
{ 0x00, "User (U)" },
|
||||
{ 0x01, "Private network serving the local user (LPN)" },
|
||||
{ 0x02, "Public network serving the local user (LN)" },
|
||||
|
@ -1086,6 +1093,7 @@ const value_string q931_cause_location_vals[] = {
|
|||
{ 0x0A, "Network beyond interworking point (BI)" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
value_string_ext q931_cause_location_vals_ext = VALUE_STRING_EXT_INIT(q931_cause_location_vals);
|
||||
|
||||
static const value_string q931_cause_recommendation_vals[] = {
|
||||
{ 0x00, "Q.931" },
|
||||
|
@ -1113,7 +1121,7 @@ static const value_string q931_cause_recommendation_vals[] = {
|
|||
#define Q931_CAUSE_MSG_INCOMPAT_W_CS 0x65
|
||||
#define Q931_CAUSE_REC_TIMER_EXP 0x66
|
||||
|
||||
const value_string q931_cause_code_vals[] = {
|
||||
static const value_string q931_cause_code_vals[] = {
|
||||
{ 0x00, "Valid cause code not yet received" },
|
||||
{ Q931_CAUSE_UNALLOC_NUMBER, "Unallocated (unassigned) number" },
|
||||
{ 0x02, "No route to specified transit network" },
|
||||
|
@ -1211,6 +1219,7 @@ const value_string q931_cause_code_vals[] = {
|
|||
{ 0x7F, "Internetworking, unspecified" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
value_string_ext q931_cause_code_vals_ext = VALUE_STRING_EXT_INIT(q931_cause_code_vals);
|
||||
|
||||
static const value_string q931_cause_condition_vals[] = {
|
||||
{ 0x00, "Unknown" },
|
||||
|
@ -1234,7 +1243,7 @@ static const gchar *get_message_name(guint8 prot_discr, guint8 message_type) {
|
|||
if (prot_discr == NLPID_DMS)
|
||||
return val_to_str(message_type, dms_message_type_vals, "Unknown (0x%02X)");
|
||||
else
|
||||
return val_to_str(message_type, q931_message_type_vals, "Unknown (0x%02X)");
|
||||
return val_to_str_ext(message_type, &q931_message_type_vals_ext, "Unknown (0x%02X)");
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1378,7 +1387,7 @@ dissect_q931_cause_ie_unsafe(tvbuff_t *tvb, int offset, int len,
|
|||
case Q931_CAUSE_MSG_INCOMPAT_W_CS:
|
||||
proto_tree_add_text(tree, tvb, offset, 1,
|
||||
"Message type: %s",
|
||||
val_to_str(tvb_get_guint8(tvb, offset), q931_message_type_vals,
|
||||
val_to_str_ext(tvb_get_guint8(tvb, offset), &q931_message_type_vals_ext,
|
||||
"Unknown (0x%02X)"));
|
||||
break;
|
||||
|
||||
|
@ -1441,7 +1450,7 @@ dissect_q931_change_status_ie(tvbuff_t *tvb, int offset, int len _U_, proto_tree
|
|||
/*
|
||||
* Dissect a Call state information element.
|
||||
*/
|
||||
const value_string q931_call_state_vals[] = {
|
||||
static const value_string q931_call_state_vals[] = {
|
||||
{ 0x00, "Null" },
|
||||
{ 0x01, "Call initiated" },
|
||||
{ 0x02, "Overlap sending" },
|
||||
|
@ -1463,6 +1472,7 @@ const value_string q931_call_state_vals[] = {
|
|||
{ 0x3E, "Restart" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
value_string_ext q931_call_state_vals_ext = VALUE_STRING_EXT_INIT(q931_call_state_vals);
|
||||
|
||||
static void
|
||||
dissect_q931_call_state_ie(tvbuff_t *tvb, int offset, int len,
|
||||
|
@ -1488,7 +1498,7 @@ dissect_q931_call_state_ie(tvbuff_t *tvb, int offset, int len,
|
|||
}
|
||||
proto_tree_add_text(tree, tvb, offset, 1,
|
||||
"Call state: %s",
|
||||
val_to_str(octet & 0x3F, q931_call_state_vals,
|
||||
val_to_str_ext(octet & 0x3F, &q931_call_state_vals_ext,
|
||||
"Unknown (0x%02X)"));
|
||||
}
|
||||
|
||||
|
@ -1539,7 +1549,7 @@ dissect_q931_channel_identification_ie(tvbuff_t *tvb, int offset, int len,
|
|||
proto_tree_add_item(tree, hf_q931_channel_interface_type, tvb, offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_q931_channel_exclusive, tvb, offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_q931_channel_dchan, tvb, offset, 1, FALSE);
|
||||
|
||||
|
||||
if (octet & Q931_NOT_BASIC_CHANNEL) {
|
||||
proto_tree_add_item(tree, hf_q931_channel_selection_pri, tvb, offset, 1, FALSE);
|
||||
} else {
|
||||
|
@ -1590,7 +1600,7 @@ dissect_q931_channel_identification_ie(tvbuff_t *tvb, int offset, int len,
|
|||
}
|
||||
proto_tree_add_item(tree, hf_q931_channel_map, tvb, offset, 1, FALSE);
|
||||
proto_tree_add_item(tree, hf_q931_channel_element_type, tvb, offset, 1, FALSE);
|
||||
|
||||
|
||||
offset += 1;
|
||||
len -= 1;
|
||||
|
||||
|
@ -1602,7 +1612,7 @@ dissect_q931_channel_identification_ie(tvbuff_t *tvb, int offset, int len,
|
|||
"Slot map: 0x%02x", octet2);
|
||||
offset += 1;
|
||||
len -= 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
guint8 octet2;
|
||||
do {
|
||||
|
@ -1623,7 +1633,7 @@ dissect_q931_channel_identification_ie(tvbuff_t *tvb, int offset, int len,
|
|||
/*
|
||||
* Dissect a Progress indicator information element.
|
||||
*/
|
||||
const value_string q931_progress_description_vals[] = {
|
||||
static const value_string q931_progress_description_vals[] = {
|
||||
{ 0x01, "Call is not end-to-end ISDN - progress information available in-band" },
|
||||
{ 0x02, "Destination address is non-ISDN" },
|
||||
{ 0x03, "Origination address is non-ISDN" },
|
||||
|
@ -1632,6 +1642,7 @@ const value_string q931_progress_description_vals[] = {
|
|||
{ 0x08, "In-band information or an appropriate pattern is now available" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
value_string_ext q931_progress_description_vals_ext = VALUE_STRING_EXT_INIT(q931_progress_description_vals);
|
||||
|
||||
void
|
||||
dissect_q931_progress_indicator_ie(tvbuff_t *tvb, int offset, int len,
|
||||
|
@ -1657,7 +1668,7 @@ dissect_q931_progress_indicator_ie(tvbuff_t *tvb, int offset, int len,
|
|||
}
|
||||
proto_tree_add_text(tree, tvb, offset, 1,
|
||||
"Location: %s",
|
||||
val_to_str(octet & 0x0F, q931_cause_location_vals,
|
||||
val_to_str_ext(octet & 0x0F, &q931_cause_location_vals_ext,
|
||||
"Unknown (0x%X)"));
|
||||
offset += 1;
|
||||
len -= 1;
|
||||
|
@ -1667,7 +1678,7 @@ dissect_q931_progress_indicator_ie(tvbuff_t *tvb, int offset, int len,
|
|||
octet = tvb_get_guint8(tvb, offset);
|
||||
proto_tree_add_text(tree, tvb, offset, 1,
|
||||
"Progress description: %s",
|
||||
val_to_str(octet & 0x7F, q931_progress_description_vals,
|
||||
val_to_str_ext(octet & 0x7F, &q931_progress_description_vals_ext,
|
||||
"Unknown (0x%02X)"));
|
||||
}
|
||||
|
||||
|
@ -1823,6 +1834,7 @@ static const value_string q931_signal_vals[] = {
|
|||
{ 0x4F, "Alerting off" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext q931_signal_vals_ext = VALUE_STRING_EXT_INIT(q931_signal_vals);
|
||||
|
||||
static void
|
||||
dissect_q931_signal_ie(tvbuff_t *tvb, int offset, int len,
|
||||
|
@ -1835,7 +1847,7 @@ dissect_q931_signal_ie(tvbuff_t *tvb, int offset, int len,
|
|||
}
|
||||
proto_tree_add_text(tree, tvb, offset, 1,
|
||||
"Signal: %s",
|
||||
val_to_str(tvb_get_guint8(tvb, offset), q931_signal_vals,
|
||||
val_to_str_ext(tvb_get_guint8(tvb, offset), &q931_signal_vals_ext,
|
||||
"Unknown (0x%02X)"));
|
||||
}
|
||||
|
||||
|
@ -1856,6 +1868,7 @@ static const value_string q931_throughput_class_vals[] = {
|
|||
{ 0x0D, "64000 bit/s" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext q931_throughput_class_vals_ext = VALUE_STRING_EXT_INIT(q931_throughput_class_vals);
|
||||
|
||||
static void
|
||||
dissect_q931_information_rate_ie(tvbuff_t *tvb, int offset, int len,
|
||||
|
@ -1868,20 +1881,20 @@ dissect_q931_information_rate_ie(tvbuff_t *tvb, int offset, int len,
|
|||
}
|
||||
proto_tree_add_text(tree, tvb, offset + 0, 1,
|
||||
"Incoming information rate: %s",
|
||||
val_to_str(tvb_get_guint8(tvb, offset + 0) & 0x1F,
|
||||
q931_throughput_class_vals, "Unknown (0x%02X)"));
|
||||
val_to_str_ext(tvb_get_guint8(tvb, offset + 0) & 0x1F,
|
||||
&q931_throughput_class_vals_ext, "Unknown (0x%02X)"));
|
||||
proto_tree_add_text(tree, tvb, offset + 1, 1,
|
||||
"Outgoing information rate: %s",
|
||||
val_to_str(tvb_get_guint8(tvb, offset + 1) & 0x1F,
|
||||
q931_throughput_class_vals, "Unknown (0x%02X)"));
|
||||
val_to_str_ext(tvb_get_guint8(tvb, offset + 1) & 0x1F,
|
||||
&q931_throughput_class_vals_ext, "Unknown (0x%02X)"));
|
||||
proto_tree_add_text(tree, tvb, offset + 2, 1,
|
||||
"Minimum incoming information rate: %s",
|
||||
val_to_str(tvb_get_guint8(tvb, offset + 2) & 0x1F,
|
||||
q931_throughput_class_vals, "Unknown (0x%02X)"));
|
||||
val_to_str_ext(tvb_get_guint8(tvb, offset + 2) & 0x1F,
|
||||
&q931_throughput_class_vals_ext, "Unknown (0x%02X)"));
|
||||
proto_tree_add_text(tree, tvb, offset + 3, 1,
|
||||
"Minimum outgoing information rate: %s",
|
||||
val_to_str(tvb_get_guint8(tvb, offset + 3) & 0x1F,
|
||||
q931_throughput_class_vals, "Unknown (0x%02X)"));
|
||||
val_to_str_ext(tvb_get_guint8(tvb, offset + 3) & 0x1F,
|
||||
&q931_throughput_class_vals_ext, "Unknown (0x%02X)"));
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -2189,7 +2202,7 @@ dissect_q931_number_ie(tvbuff_t *tvb, int offset, int len,
|
|||
proto_tree_add_uint(tree, hf_q931_numbering_plan, tvb, offset, 1, octet);
|
||||
proto_tree_add_uint(tree, hf_q931_number_type, tvb, offset, 1, octet);
|
||||
proto_tree_add_boolean(tree, hf_q931_extension_ind, tvb, offset, 1, octet);
|
||||
|
||||
|
||||
offset += 1;
|
||||
len -= 1;
|
||||
|
||||
|
@ -2330,9 +2343,10 @@ static const value_string q931_high_layer_characteristics_vals[] = {
|
|||
{ Q931_AUDIOVISUAL, "F.720/F.821 and F.731 Profile 1a videotelephony" },
|
||||
{ 0x61, "F.702 and F.731 Profile 1b videoconferencing" },
|
||||
{ 0x62, "F.702 and F.731 audiographic conferencing" },
|
||||
{ 0x68, "F.700-series Multimedia services" },
|
||||
{ 0x68, "F.700-series Multimedia services" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext q931_high_layer_characteristics_vals_ext = VALUE_STRING_EXT_INIT(q931_high_layer_characteristics_vals);
|
||||
|
||||
static const value_string q931_extended_high_layer_characteristics_vals[] = {
|
||||
{ 0x01, "Telephony" },
|
||||
|
@ -2352,9 +2366,10 @@ static const value_string q931_extended_high_layer_characteristics_vals[] = {
|
|||
{ Q931_AUDIOVISUAL, "F.720/F.821 and F.731 Profile 1a videotelephony" },
|
||||
{ 0x61, "F.702 and F.731 Profile 1b videoconferencing" },
|
||||
{ 0x62, "F.702 and F.731 audiographic conferencing" },
|
||||
{ 0x68, "F.700-series Multimedia services" },
|
||||
{ 0x68, "F.700-series Multimedia services" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext q931_extended_high_layer_characteristics_vals_ext = VALUE_STRING_EXT_INIT(q931_extended_high_layer_characteristics_vals);
|
||||
|
||||
static const value_string q931_audiovisual_characteristics_vals[] = {
|
||||
{ 0x01, "Capability set of initial channel of H.221" },
|
||||
|
@ -2430,11 +2445,11 @@ dissect_q931_high_layer_compat_ie(tvbuff_t *tvb, int offset, int len,
|
|||
(characteristics == 0x68)) {
|
||||
proto_tree_add_item(tree, hf_q931_extension_ind, tvb, offset, 1, FALSE);
|
||||
proto_tree_add_uint(tree, hf_q931_extended_audiovisual_characteristics, tvb, offset, 1, octet);
|
||||
}
|
||||
}
|
||||
else if ((characteristics == Q931_MANAGEMENT) || (characteristics == Q931_MAINTENANCE)) {
|
||||
proto_tree_add_item(tree, hf_q931_extension_ind, tvb, offset, 1, FALSE);
|
||||
proto_tree_add_uint(tree, hf_q931_extended_high_layer_characteristics, tvb, offset, 1, octet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2446,7 +2461,7 @@ dissect_q931_high_layer_compat_ie(tvbuff_t *tvb, int offset, int len,
|
|||
#define Q931_PROTOCOL_DISCRIMINATOR_IA5 0x04
|
||||
#define Q931_PROTOCOL_DISCRIMINATOR_ASN1 0x05
|
||||
|
||||
const value_string q931_protocol_discriminator_vals[] = {
|
||||
static const value_string q931_protocol_discriminator_vals[] = {
|
||||
{ Q931_PROTOCOL_DISCRIMINATOR_USER, "User-specific protocol" },
|
||||
{ 0x01, "OSI high layer protocols" },
|
||||
{ 0x02, "X.244" },
|
||||
|
@ -2456,6 +2471,7 @@ const value_string q931_protocol_discriminator_vals[] = {
|
|||
{ 0x08, "Q.931/I.451 user-network call control messages" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
value_string_ext q931_protocol_discriminator_vals_ext = VALUE_STRING_EXT_INIT(q931_protocol_discriminator_vals);
|
||||
|
||||
void
|
||||
dissect_q931_user_user_ie(tvbuff_t *tvb, packet_info *pinfo, int offset, int len,
|
||||
|
@ -2469,7 +2485,7 @@ dissect_q931_user_user_ie(tvbuff_t *tvb, packet_info *pinfo, int offset, int len
|
|||
octet = tvb_get_guint8(tvb, offset);
|
||||
proto_tree_add_text(tree, tvb, offset, 1,
|
||||
"Protocol discriminator: %s",
|
||||
val_to_str(octet, q931_protocol_discriminator_vals,
|
||||
val_to_str_ext(octet, &q931_protocol_discriminator_vals_ext,
|
||||
"Unknown (0x%02x)"));
|
||||
offset += 1;
|
||||
len -= 1;
|
||||
|
@ -2556,7 +2572,7 @@ dissect_q931_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
guint8 message_type, segmented_message_type;
|
||||
guint8 info_element;
|
||||
guint16 info_element_len;
|
||||
gboolean first_frag, more_frags;
|
||||
gboolean first_frag, more_frags;
|
||||
guint32 frag_len;
|
||||
fragment_data *fd_head;
|
||||
tvbuff_t *next_tvb = NULL;
|
||||
|
@ -2588,7 +2604,7 @@ dissect_q931_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
case 2: call_ref_val = tvb_get_ntohs(tvb, offset); break;
|
||||
case 3: call_ref_val = tvb_get_ntoh24(tvb, offset); break;
|
||||
default: call_ref_val = tvb_get_ntohl(tvb, offset);
|
||||
}
|
||||
}
|
||||
if (call_ref_len != 0) {
|
||||
tvb_memcpy(tvb, call_ref, offset, call_ref_len);
|
||||
if (q931_tree != NULL) {
|
||||
|
@ -2623,7 +2639,7 @@ dissect_q931_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
/*
|
||||
* And now for the information elements....
|
||||
*/
|
||||
if ((message_type != Q931_SEGMENT) || !q931_reassembly ||
|
||||
if ((message_type != Q931_SEGMENT) || !q931_reassembly ||
|
||||
(tvb_reported_length_remaining(tvb, offset) <= 4)) {
|
||||
dissect_q931_IEs(tvb, pinfo, tree, q931_tree, is_over_ip, offset, 0);
|
||||
return;
|
||||
|
@ -2646,8 +2662,8 @@ dissect_q931_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
more_frags = (tvb_get_guint8(tvb, offset + 2) & 0x7F) != 0;
|
||||
segmented_message_type = tvb_get_guint8(tvb, offset + 3);
|
||||
if (check_col(pinfo->cinfo, COL_INFO)) {
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " of %s",
|
||||
val_to_str(segmented_message_type, q931_message_type_vals, "Unknown message type (0x%02X)"));
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " of %s",
|
||||
val_to_str_ext(segmented_message_type, &q931_message_type_vals_ext, "Unknown message type (0x%02X)"));
|
||||
}
|
||||
offset += 1 + 1 + info_element_len;
|
||||
/* Reassembly */
|
||||
|
@ -2674,7 +2690,7 @@ dissect_q931_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
}
|
||||
if (check_col(pinfo->cinfo, COL_INFO)) {
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s [reassembled]",
|
||||
val_to_str(segmented_message_type, q931_message_type_vals, "Unknown message type (0x%02X)"));
|
||||
val_to_str_ext(segmented_message_type, &q931_message_type_vals_ext, "Unknown message type (0x%02X)"));
|
||||
}
|
||||
} else {
|
||||
if (tree) proto_tree_add_uint(q931_tree, hf_q931_reassembled_in, tvb, offset, frag_len, fd_head->reassembled_in);
|
||||
|
@ -2755,7 +2771,7 @@ dissect_q931_IEs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *root_tree,
|
|||
switch ((codeset << 8) | (info_element & Q931_IE_SO_IDENTIFIER_MASK)) {
|
||||
|
||||
case CS0 | Q931_IE_MORE_DATA_OR_SEND_COMP:
|
||||
switch (info_element) {
|
||||
switch (info_element) {
|
||||
|
||||
case Q931_IE_MORE_DATA:
|
||||
if (q931_tree != NULL) {
|
||||
|
@ -2845,14 +2861,14 @@ dissect_q931_IEs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *root_tree,
|
|||
2, "Length: %u", info_element_len);
|
||||
proto_tree_add_text(ie_tree, tvb, offset + 3,
|
||||
1, "Protocol discriminator: %s",
|
||||
val_to_str(tvb_get_guint8(tvb, offset + 3),
|
||||
q931_protocol_discriminator_vals,
|
||||
val_to_str_ext(tvb_get_guint8(tvb, offset + 3),
|
||||
&q931_protocol_discriminator_vals_ext,
|
||||
"Unknown (0x%02x)"));
|
||||
}
|
||||
|
||||
if (info_element_len > 1) {
|
||||
/*
|
||||
* If we don't desegment limit the length
|
||||
* If we don't desegment limit the length
|
||||
* to the actual size in the frame
|
||||
*/
|
||||
if (!pinfo->can_desegment) {
|
||||
|
@ -2921,7 +2937,7 @@ dissect_q931_IEs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *root_tree,
|
|||
dissect_q931_segmented_message_ie(tvb, offset + 2, info_element_len, ie_tree);
|
||||
if (check_col(pinfo->cinfo, COL_INFO)) {
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, " of %s",
|
||||
val_to_str(tvb_get_guint8(tvb, offset + 3), q931_message_type_vals, "Unknown message type (0x%02X)"));
|
||||
val_to_str_ext(tvb_get_guint8(tvb, offset + 3), &q931_message_type_vals_ext, "Unknown message type (0x%02X)"));
|
||||
}
|
||||
if (tvb_get_guint8(tvb, offset + 2) & 0x80) { /* the 1st segment */
|
||||
first_segment = TRUE;
|
||||
|
@ -3317,7 +3333,7 @@ dissect_q931_ie_cs7(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
dissect_q931_IEs(tvb, pinfo, NULL, tree, FALSE, 0, 7);
|
||||
}
|
||||
|
||||
static void
|
||||
static void
|
||||
q931_init(void) {
|
||||
/* Initialize the fragment and reassembly tables */
|
||||
fragment_table_init(&q931_fragment_table);
|
||||
|
@ -3345,7 +3361,7 @@ proto_register_q931(void)
|
|||
NULL, HFILL }},
|
||||
|
||||
{ &hf_q931_message_type,
|
||||
{ "Message type", "q931.message_type", FT_UINT8, BASE_HEX, VALS(q931_message_type_vals), 0x0,
|
||||
{ "Message type", "q931.message_type", FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q931_message_type_vals_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_q931_maintenance_message_type,
|
||||
|
@ -3353,7 +3369,7 @@ proto_register_q931(void)
|
|||
NULL, HFILL }},
|
||||
|
||||
{ &hf_q931_segment_type,
|
||||
{ "Segmented message type", "q931.segment_type", FT_UINT8, BASE_HEX, VALS(q931_message_type_vals), 0x0,
|
||||
{ "Segmented message type", "q931.segment_type", FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q931_message_type_vals_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_q931_coding_standard,
|
||||
|
@ -3369,12 +3385,12 @@ proto_register_q931(void)
|
|||
VALS(q931_pres_meth_prot_prof_vals), 0x03, NULL, HFILL}},
|
||||
|
||||
{ &hf_q931_high_layer_characteristics,
|
||||
{ "High layer characteristics identification", "q931.high_layer_characteristics", FT_UINT8, BASE_HEX,
|
||||
VALS(q931_high_layer_characteristics_vals), 0x7f, NULL, HFILL }},
|
||||
{ "High layer characteristics identification", "q931.high_layer_characteristics", FT_UINT8, BASE_HEX|BASE_EXT_STRING,
|
||||
&q931_high_layer_characteristics_vals_ext, 0x7f, NULL, HFILL }},
|
||||
|
||||
{ &hf_q931_extended_high_layer_characteristics,
|
||||
{ "Extended high layer characteristics identification", "q931.extended_high_layer_characteristics", FT_UINT8, BASE_HEX,
|
||||
VALS(q931_extended_high_layer_characteristics_vals), 0x7f, NULL, HFILL }},
|
||||
{ "Extended high layer characteristics identification", "q931.extended_high_layer_characteristics", FT_UINT8, BASE_HEX|BASE_EXT_STRING,
|
||||
&q931_extended_high_layer_characteristics_vals_ext, 0x7f, NULL, HFILL }},
|
||||
|
||||
{ &hf_q931_extended_audiovisual_characteristics,
|
||||
{ "Extended audiovisual characteristics identification", "q931.extended_audiovisual_characteristics", FT_UINT8, BASE_HEX,
|
||||
|
@ -3397,15 +3413,15 @@ proto_register_q931(void)
|
|||
VALS(q931_bearer_capability_layer_ident_vals), 0x60, NULL, HFILL }},
|
||||
|
||||
{ &hf_q931_uil1,
|
||||
{ "User information layer 1 protocol", "q931.uil1", FT_UINT8, BASE_HEX,
|
||||
VALS(q931_uil1_vals), 0x1f,NULL, HFILL }},
|
||||
{ "User information layer 1 protocol", "q931.uil1", FT_UINT8, BASE_HEX|BASE_EXT_STRING,
|
||||
&q931_uil1_vals_ext, 0x1f,NULL, HFILL }},
|
||||
|
||||
{ &hf_q931_cause_location,
|
||||
{ "Cause location", "q931.cause_location", FT_UINT8, BASE_DEC, VALS(q931_cause_location_vals), 0x0f,
|
||||
{ "Cause location", "q931.cause_location", FT_UINT8, BASE_DEC|BASE_EXT_STRING, &q931_cause_location_vals_ext, 0x0f,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_q931_cause_value,
|
||||
{ "Cause value", "q931.cause_value", FT_UINT8, BASE_DEC, VALS(q931_cause_code_vals), 0x7f,
|
||||
{ "Cause value", "q931.cause_value", FT_UINT8, BASE_DEC|BASE_EXT_STRING, &q931_cause_code_vals_ext, 0x7f,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_q931_number_type,
|
||||
|
@ -3517,11 +3533,11 @@ proto_register_q931(void)
|
|||
|
||||
{ &hf_q931_reassembled_in,
|
||||
{ "Reassembled Q.931 in frame", "q931.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
|
||||
"This Q.931 message is reassembled in this frame", HFILL}},
|
||||
"This Q.931 message is reassembled in this frame", HFILL}},
|
||||
|
||||
{ &hf_q931_reassembled_length,
|
||||
{ "Reassembled Q.931 length", "q931.reassembled.length", FT_UINT32, BASE_DEC, NULL, 0x0,
|
||||
"The total length of the reassembled payload", HFILL}},
|
||||
"The total length of the reassembled payload", HFILL}},
|
||||
};
|
||||
static gint *ett[] = {
|
||||
&ett_q931,
|
||||
|
|
|
@ -42,14 +42,14 @@ extern void dissect_q931_high_layer_compat_ie(tvbuff_t *, int, int,
|
|||
extern void dissect_q931_user_user_ie(tvbuff_t *tvb, packet_info *pinfo, int offset, int len,
|
||||
proto_tree *tree);
|
||||
|
||||
extern const value_string q931_cause_location_vals[];
|
||||
extern value_string_ext q931_cause_location_vals_ext;
|
||||
|
||||
typedef struct _q931_packet_info {
|
||||
gchar *calling_number;
|
||||
gchar *called_number;
|
||||
guint8 cause_value;
|
||||
gint32 crv;
|
||||
guint8 message_type;
|
||||
guint8 message_type;
|
||||
} q931_packet_info;
|
||||
|
||||
/*
|
||||
|
@ -57,65 +57,65 @@ typedef struct _q931_packet_info {
|
|||
* without having to duplicate it. With MSVC and a
|
||||
* libwireshark.dll, we need a special declaration.
|
||||
*/
|
||||
WS_VAR_IMPORT const value_string q931_cause_code_vals[];
|
||||
WS_VAR_IMPORT value_string_ext q931_cause_code_vals_ext;
|
||||
WS_VAR_IMPORT const value_string q931_message_type_vals[];
|
||||
|
||||
extern const value_string q931_protocol_discriminator_vals[];
|
||||
extern const value_string q931_progress_description_vals[];
|
||||
extern const value_string q931_call_state_vals[];
|
||||
extern value_string_ext q931_protocol_discriminator_vals_ext;
|
||||
extern value_string_ext q931_progress_description_vals_ext;
|
||||
extern value_string_ext q931_call_state_vals_ext;
|
||||
|
||||
/*
|
||||
* Q.931 message types.
|
||||
*/
|
||||
#define Q931_ESCAPE 0x00
|
||||
#define Q931_ALERTING 0x01
|
||||
#define Q931_CALL_PROCEEDING 0x02
|
||||
#define Q931_CONNECT 0x07
|
||||
#define Q931_CONNECT_ACK 0x0F
|
||||
#define Q931_PROGRESS 0x03
|
||||
#define Q931_SETUP 0x05
|
||||
#define Q931_SETUP_ACK 0x0D
|
||||
#define Q931_HOLD 0x24
|
||||
#define Q931_HOLD_ACK 0x28
|
||||
#define Q931_HOLD_REJECT 0x30
|
||||
#define Q931_RESUME 0x26
|
||||
#define Q931_RESUME_ACK 0x2E
|
||||
#define Q931_RESUME_REJECT 0x22
|
||||
#define Q931_RETRIEVE 0x31
|
||||
#define Q931_RETRIEVE_ACK 0x33
|
||||
#define Q931_RETRIEVE_REJECT 0x37
|
||||
#define Q931_SUSPEND 0x25
|
||||
#define Q931_SUSPEND_ACK 0x2D
|
||||
#define Q931_SUSPEND_REJECT 0x21
|
||||
#define Q931_USER_INFORMATION 0x20
|
||||
#define Q931_DETACH 0x40
|
||||
#define Q931_DETACH_ACKNOWLEDGE 0x48
|
||||
#define Q931_DISCONNECT 0x45
|
||||
#define Q931_RELEASE 0x4D
|
||||
#define Q931_RELEASE_COMPLETE 0x5A
|
||||
#define Q931_RESTART 0x46
|
||||
#define Q931_RESTART_ACK 0x4E
|
||||
#define Q931_CONGESTION_CONTROL 0x79
|
||||
#define Q931_FACILITY 0x62
|
||||
#define Q931_FACILITY_ACKNOWLEDGE 0x6A
|
||||
#define Q931_FACILITY_REJECT 0x72
|
||||
#define Q931_INFORMATION 0x7B
|
||||
#define Q931_NOTIFY 0x6E
|
||||
#define Q931_REGISTER 0x64
|
||||
#define Q931_SEGMENT 0x60
|
||||
#define Q931_STATUS 0x7D
|
||||
#define Q931_STATUS_ENQUIRY 0x75
|
||||
#define Q931_VERSION 0x0a
|
||||
#define Q931_GROUIP_SERVICE 0x06
|
||||
#define Q931_GROUIP_SERVICE_ACK 0x0b
|
||||
#define Q931_RESYNC_REQ 0x08
|
||||
#define Q931_RESYNC_RESP 0x09
|
||||
#define Q931_ESCAPE 0x00
|
||||
#define Q931_ALERTING 0x01
|
||||
#define Q931_CALL_PROCEEDING 0x02
|
||||
#define Q931_PROGRESS 0x03
|
||||
#define Q931_SETUP 0x05
|
||||
#define Q931_GROUIP_SERVICE 0x06
|
||||
#define Q931_CONNECT 0x07
|
||||
#define Q931_RESYNC_REQ 0x08
|
||||
#define Q931_RESYNC_RESP 0x09
|
||||
#define Q931_VERSION 0x0A
|
||||
#define Q931_GROUIP_SERVICE_ACK 0x0B
|
||||
#define Q931_SETUP_ACK 0x0D
|
||||
#define Q931_CONNECT_ACK 0x0F
|
||||
#define Q931_USER_INFORMATION 0x20
|
||||
#define Q931_SUSPEND_REJECT 0x21
|
||||
#define Q931_RESUME_REJECT 0x22
|
||||
#define Q931_HOLD 0x24
|
||||
#define Q931_SUSPEND 0x25
|
||||
#define Q931_RESUME 0x26
|
||||
#define Q931_HOLD_ACK 0x28
|
||||
#define Q931_SUSPEND_ACK 0x2D
|
||||
#define Q931_RESUME_ACK 0x2E
|
||||
#define Q931_HOLD_REJECT 0x30
|
||||
#define Q931_RETRIEVE 0x31
|
||||
#define Q931_RETRIEVE_ACK 0x33
|
||||
#define Q931_RETRIEVE_REJECT 0x37
|
||||
#define Q931_DETACH 0x40
|
||||
#define Q931_DISCONNECT 0x45
|
||||
#define Q931_RESTART 0x46
|
||||
#define Q931_DETACH_ACKNOWLEDGE 0x48
|
||||
#define Q931_RELEASE 0x4D
|
||||
#define Q931_RESTART_ACK 0x4E
|
||||
#define Q931_RELEASE_COMPLETE 0x5A
|
||||
#define Q931_SEGMENT 0x60
|
||||
#define Q931_FACILITY 0x62
|
||||
#define Q931_REGISTER 0x64
|
||||
#define Q931_FACILITY_ACKNOWLEDGE 0x6A
|
||||
#define Q931_NOTIFY 0x6E
|
||||
#define Q931_FACILITY_REJECT 0x72
|
||||
#define Q931_STATUS_ENQUIRY 0x75
|
||||
#define Q931_CONGESTION_CONTROL 0x79
|
||||
#define Q931_INFORMATION 0x7B
|
||||
#define Q931_STATUS 0x7D
|
||||
|
||||
/*
|
||||
* Maintenance message types.
|
||||
* AT&T TR41459, Nortel NIS A211-1, Telcordia SR-4994, ...
|
||||
*/
|
||||
#define DMS_SERVICE_ACKNOWLEDGE 0x07
|
||||
#define DMS_SERVICE 0x0F
|
||||
#define DMS_SERVICE_ACKNOWLEDGE 0x07
|
||||
#define DMS_SERVICE 0x0F
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1414,7 +1414,7 @@ dissect_sip_reason_header(tvbuff_t *tvb, proto_tree *tree, gint start_offset, gi
|
|||
cause_value = atoi(tvb_get_ephemeral_string(tvb, current_offset, length));
|
||||
proto_tree_add_text(tree, tvb, current_offset, length,
|
||||
"Cause: %u(0x%x)[%s]", cause_value,cause_value,
|
||||
val_to_str(cause_value, q850_cause_code_vals, "Unknown (%d)" ));
|
||||
val_to_str_ext(cause_value, &q850_cause_code_vals_ext, "Unknown (%d)" ));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -622,9 +622,8 @@ ipv4_get_net_order_addr
|
|||
is_big_endian
|
||||
is_default_profile
|
||||
is_tpkt
|
||||
isup_calling_partys_category_value DATA
|
||||
isup_message_type_value_acro DATA
|
||||
isup_message_type_value DATA
|
||||
isup_calling_partys_category_value_ext DATA
|
||||
isup_message_type_value_acro_ext DATA
|
||||
list_stat_cmd_args
|
||||
llc_add_oui
|
||||
LocationRejectReason_vals DATA
|
||||
|
@ -845,8 +844,8 @@ ptvcursor_pop_subtree
|
|||
ptvcursor_add_with_subtree
|
||||
ptvcursor_add_text_with_subtree
|
||||
ptvcursor_set_subtree
|
||||
q850_cause_code_vals DATA
|
||||
q931_cause_code_vals DATA
|
||||
q850_cause_code_vals_ext DATA
|
||||
q931_cause_code_vals_ext DATA
|
||||
q931_message_type_vals DATA
|
||||
range_convert_range
|
||||
range_convert_str
|
||||
|
|
|
@ -632,7 +632,11 @@ static void RTP_packet_draw(void *prs _U_)
|
|||
new_gai->port_src = rtp_listinfo->src_port;
|
||||
new_gai->port_dst = rtp_listinfo->dest_port;
|
||||
duration = (guint32)(nstime_to_msec(&rtp_listinfo->stop_rel) - nstime_to_msec(&rtp_listinfo->start_rel));
|
||||
new_gai->frame_label = g_strdup_printf("%s (%s) %s", (rtp_listinfo->is_srtp)?"SRTP":"RTP", rtp_listinfo->pt_str, (rtp_listinfo->rtp_event == -1)?"":val_to_str(rtp_listinfo->rtp_event, rtp_event_type_values, "Unknown RTP Event"));
|
||||
new_gai->frame_label = g_strdup_printf("%s (%s) %s",
|
||||
(rtp_listinfo->is_srtp)?"SRTP":"RTP",
|
||||
rtp_listinfo->pt_str,
|
||||
(rtp_listinfo->rtp_event == -1)?
|
||||
"":val_to_str_const(rtp_listinfo->rtp_event, rtp_event_type_values, "Unknown RTP Event"));
|
||||
new_gai->comment = g_strdup_printf("%s Num packets:%u Duration:%u.%03us SSRC:0x%X",
|
||||
(rtp_listinfo->is_srtp)?"SRTP":"RTP", rtp_listinfo->npackets,
|
||||
duration/1000,(duration%1000), rtp_listinfo->ssrc);
|
||||
|
@ -1086,7 +1090,6 @@ isup_calls_packet(void *ptr _U_, packet_info *pinfo, epan_dissect_t *edt _U_, co
|
|||
GList *list;
|
||||
gchar *frame_label = NULL;
|
||||
gchar *comment = NULL;
|
||||
int i;
|
||||
|
||||
/*voip_calls_tapinfo_t *tapinfo = &the_tapinfo_struct; unused */
|
||||
const isup_tap_rec_t *pi = isup_info;
|
||||
|
@ -1173,15 +1176,7 @@ isup_calls_packet(void *ptr _U_, packet_info *pinfo, epan_dissect_t *edt _U_, co
|
|||
|
||||
/* Let's analyze the call state */
|
||||
|
||||
|
||||
for (i=0;(isup_message_type_value[i].strptr!=NULL)&& (isup_message_type_value[i].value!=pi->message_type);i++);
|
||||
|
||||
if (isup_message_type_value[i].value==pi->message_type){
|
||||
frame_label = g_strdup(isup_message_type_value_acro[i].strptr);
|
||||
}
|
||||
else{
|
||||
frame_label = g_strdup("Unknown");
|
||||
}
|
||||
frame_label = g_strdup(val_to_str_ext_const(pi->message_type, &isup_message_type_value_acro_ext, "Unknown"));
|
||||
|
||||
if (callsinfo->npackets == 1){ /* this is the first packet, that must be an IAM */
|
||||
|
||||
|
@ -1224,13 +1219,9 @@ isup_calls_packet(void *ptr _U_, packet_info *pinfo, epan_dissect_t *edt _U_, co
|
|||
callsinfo->call_state = VOIP_COMPLETED;
|
||||
tapinfo->completed_calls++;
|
||||
}
|
||||
for (i=0;(q931_cause_code_vals[i].strptr!=NULL)&& (q931_cause_code_vals[i].value!=pi->cause_value);i++);
|
||||
if (q931_cause_code_vals[i].value==pi->cause_value){
|
||||
comment = g_strdup_printf("Cause %i - %s",pi->cause_value, q931_cause_code_vals[i].strptr);
|
||||
}
|
||||
else{
|
||||
comment = g_strdup_printf("Cause %i",pi->cause_value);
|
||||
}
|
||||
comment = g_strdup_printf("Cause %i - %s",
|
||||
pi->cause_value,
|
||||
val_to_str_ext_const(pi->cause_value, &q931_cause_code_vals_ext, "(Unknown)"));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1515,7 +1506,8 @@ q931_calls_packet(void *ptr _U_, packet_info *pinfo, epan_dissect_t *edt _U_, co
|
|||
} else if (h225_cstype == H225_RELEASE_COMPLET) {
|
||||
/* get the Q931 Release cause code */
|
||||
if (q931_cause_value != 0xFF){
|
||||
comment = g_strdup_printf("H225 Q931 Rel Cause (%i):%s", q931_cause_value, val_to_str(q931_cause_value, q931_cause_code_vals, "<unknown>"));
|
||||
comment = g_strdup_printf("H225 Q931 Rel Cause (%i):%s", q931_cause_value,
|
||||
val_to_str_ext_const(q931_cause_value, &q931_cause_code_vals_ext, "<unknown>"));
|
||||
} else { /* Cause not set */
|
||||
comment = g_strdup("H225 No Q931 Rel Cause");
|
||||
}
|
||||
|
@ -1635,7 +1627,8 @@ q931_calls_packet(void *ptr _U_, packet_info *pinfo, epan_dissect_t *edt _U_, co
|
|||
tapinfo->completed_calls++;
|
||||
}
|
||||
if (q931_cause_value != 0xFF){
|
||||
comment = g_strdup_printf("AC_ISDN trunk:%u Q931 Rel Cause (%i):%s", actrace_trunk, q931_cause_value, val_to_str(q931_cause_value, q931_cause_code_vals, "<unknown>"));
|
||||
comment = g_strdup_printf("AC_ISDN trunk:%u Q931 Rel Cause (%i):%s", actrace_trunk, q931_cause_value,
|
||||
val_to_str_ext_const(q931_cause_value, &q931_cause_code_vals_ext, "<unknown>"));
|
||||
} else { /* Cause not set */
|
||||
comment = g_strdup("AC_ISDN No Q931 Rel Cause");
|
||||
}
|
||||
|
@ -1927,7 +1920,7 @@ H225calls_packet(void *ptr _U_, packet_info *pinfo, epan_dissect_t *edt _U_, con
|
|||
default:
|
||||
comment = g_strdup("H225 RAS");
|
||||
}
|
||||
frame_label = g_strdup(val_to_str(pi->msg_tag, h225_RasMessage_vals, "<unknown>"));
|
||||
frame_label = g_strdup(val_to_str_const(pi->msg_tag, h225_RasMessage_vals, "<unknown>"));
|
||||
} else {
|
||||
frame_label = g_strdup("H225: Unknown");
|
||||
comment = NULL;
|
||||
|
|
Loading…
Reference in New Issue