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",
|
||||
|
|
|
@ -124,7 +124,7 @@ static gint isup_standard = ITU_STANDARD;
|
|||
#define ANSI_ISUP_MESSAGE_TYPE_CCT_VAL_TEST 0xEC
|
||||
#define ANSI_ISUP_MESSAGE_TYPE_EXIT 0xED
|
||||
|
||||
const value_string isup_message_type_value[] = {
|
||||
static const value_string isup_message_type_value[] = {
|
||||
{ MESSAGE_TYPE_INITIAL_ADDR, "Initial address"},
|
||||
{ MESSAGE_TYPE_SUBSEQ_ADDR, "Subsequent address"},
|
||||
{ MESSAGE_TYPE_INFO_REQ, "Information request (national use)"},
|
||||
|
@ -175,6 +175,7 @@ const value_string isup_message_type_value[] = {
|
|||
{ MESSAGE_TYPE_PRE_RELEASE_INFO, "Pre-release information"},
|
||||
{ MESSAGE_TYPE_SUBSEQUENT_DIR_NUM, "Subsequent Directory Number (national use)"},
|
||||
{ 0, NULL}};
|
||||
static value_string_ext isup_message_type_value_ext = VALUE_STRING_EXT_INIT(isup_message_type_value);
|
||||
|
||||
static const value_string ansi_isup_message_type_value[] = {
|
||||
{ MESSAGE_TYPE_INITIAL_ADDR, "Initial address"},
|
||||
|
@ -232,8 +233,10 @@ const value_string isup_message_type_value[] = {
|
|||
{ ANSI_ISUP_MESSAGE_TYPE_CCT_VAL_TEST, "Circuit Validation Test"},
|
||||
{ ANSI_ISUP_MESSAGE_TYPE_EXIT, "Exit"},
|
||||
{ 0, NULL}};
|
||||
static value_string_ext ansi_isup_message_type_value_ext = VALUE_STRING_EXT_INIT(ansi_isup_message_type_value);
|
||||
|
||||
/* Same as above but in acronym form (for the Info column) */
|
||||
const value_string isup_message_type_value_acro[] = {
|
||||
static const value_string isup_message_type_value_acro[] = {
|
||||
{ MESSAGE_TYPE_INITIAL_ADDR, "IAM"},
|
||||
{ MESSAGE_TYPE_SUBSEQ_ADDR, "SAM"},
|
||||
{ MESSAGE_TYPE_INFO_REQ, "INR"},
|
||||
|
@ -284,6 +287,7 @@ const value_string isup_message_type_value_acro[] = {
|
|||
{ MESSAGE_TYPE_PRE_RELEASE_INFO, "PRI"},
|
||||
{ MESSAGE_TYPE_SUBSEQUENT_DIR_NUM, "SDN"},
|
||||
{ 0, NULL}};
|
||||
value_string_ext isup_message_type_value_acro_ext = VALUE_STRING_EXT_INIT(isup_message_type_value_acro);
|
||||
|
||||
/* Same as above but in acronym form (for the Info column) */
|
||||
static const value_string ansi_isup_message_type_value_acro[] = {
|
||||
|
@ -342,6 +346,7 @@ static const value_string ansi_isup_message_type_value_acro[] = {
|
|||
{ ANSI_ISUP_MESSAGE_TYPE_CCT_VAL_TEST, "CVT"},
|
||||
{ ANSI_ISUP_MESSAGE_TYPE_EXIT, "EXIT"},
|
||||
{ 0, NULL}};
|
||||
static value_string_ext ansi_isup_message_type_value_acro_ext = VALUE_STRING_EXT_INIT(ansi_isup_message_type_value_acro);
|
||||
|
||||
const value_string isup_parameter_type_value[] = {
|
||||
{ PARAM_TYPE_END_OF_OPT_PARAMS, "End of optional parameters"},
|
||||
|
@ -422,11 +427,12 @@ const value_string isup_parameter_type_value[] = {
|
|||
{ PARAM_TYPE_UID_ACTION_IND, "UID action indicators"},
|
||||
{ PARAM_TYPE_UID_CAPAB_IND, "UID capability indicators"},
|
||||
{ PARAM_TYPE_REDIRECT_COUNTER, "Redirect counter (reserved for national use)"},
|
||||
{ PARAM_TYPE_APPLICATON_TRANS, "Application transport"},
|
||||
{ PARAM_TYPE_COLLECT_CALL_REQ, "Collect call request"},
|
||||
{ PARAM_TYPE_GENERIC_NR, "Generic number"},
|
||||
{ PARAM_TYPE_GENERIC_DIGITS, "Generic digits (national use)"},
|
||||
{ PARAM_TYPE_APPLICATON_TRANS, "Application transport"},
|
||||
{ 0, NULL}};
|
||||
static value_string_ext isup_parameter_type_value_ext = VALUE_STRING_EXT_INIT(isup_parameter_type_value);
|
||||
|
||||
static const value_string ansi_isup_parameter_type_value[] = {
|
||||
{ PARAM_TYPE_END_OF_OPT_PARAMS, "End of optional parameters"},
|
||||
|
@ -485,7 +491,6 @@ static const value_string ansi_isup_parameter_type_value[] = {
|
|||
{ PARAM_TYPE_MCID_REQ_IND, "MCID request indicators"},
|
||||
{ PARAM_TYPE_MCID_RSP_IND, "MCID response indicators"},
|
||||
{ PARAM_TYPE_HOP_COUNTER, "Hop counter"},
|
||||
{ PARAM_TYPE_ORIG_LINE_INFO, "Originating line info"},
|
||||
{ PARAM_TYPE_TRANSM_MEDIUM_RQUR_PR, "Transmission medium requirement prime"},
|
||||
{ PARAM_TYPE_LOCATION_NR, "Location number"},
|
||||
{ PARAM_TYPE_REDIR_NR_RSTRCT, "Redirection number restriction"},
|
||||
|
@ -508,13 +513,16 @@ static const value_string ansi_isup_parameter_type_value[] = {
|
|||
{ PARAM_TYPE_UID_ACTION_IND, "UID action indicators"},
|
||||
{ PARAM_TYPE_UID_CAPAB_IND, "UID capability indicators"},
|
||||
{ PARAM_TYPE_REDIRECT_COUNTER, "Redirect counter (reserved for national use)"},
|
||||
{ PARAM_TYPE_APPLICATON_TRANS, "Application transport"},
|
||||
{ PARAM_TYPE_COLLECT_CALL_REQ, "Collect call request"},
|
||||
{ PARAM_TYPE_CALLING_GEODETIC_LOCATION, "Calling geodetic location"},
|
||||
{ PARAM_TYPE_GENERIC_NR, "Generic number"},
|
||||
{ PARAM_TYPE_GENERIC_DIGITS, "Generic digits (national use)"},
|
||||
#if 0 /* XXX: Dups of below */
|
||||
{ PARAM_TYPE_JURISDICTION, "Jurisdiction"},
|
||||
{ PARAM_TYPE_GENERIC_NAME, "Generic name"},
|
||||
{ PARAM_TYPE_GENERIC_DIGITS, "Generic digits (national use)"},
|
||||
{ PARAM_TYPE_APPLICATON_TRANS, "Application transport"},
|
||||
{ PARAM_TYPE_ORIG_LINE_INFO, "Originating line info"},
|
||||
#endif
|
||||
{ ANSI_ISUP_PARAM_TYPE_OPER_SERV_INF, "Operator Services information"},
|
||||
{ ANSI_ISUP_PARAM_TYPE_EGRESS, "Egress"},
|
||||
{ ANSI_ISUP_PARAM_TYPE_JURISDICTION, "Jurisdiction"},
|
||||
|
@ -534,6 +542,7 @@ static const value_string ansi_isup_parameter_type_value[] = {
|
|||
{ ANSI_ISUP_PARAM_CARRIER_SEL_INF, "Carrier selection information"},
|
||||
{ ANSI_ISUP_PARAM_NET_TRANS, "Network transport"},
|
||||
{ 0, NULL}};
|
||||
static value_string_ext ansi_isup_parameter_type_value_ext = VALUE_STRING_EXT_INIT(ansi_isup_parameter_type_value);
|
||||
|
||||
#define CIC_LENGTH 2
|
||||
#define BICC_CIC_LENGTH 4
|
||||
|
@ -720,7 +729,7 @@ static const value_string isup_SCCP_method_ind_value[] = {
|
|||
#define DATA_CALL 12
|
||||
#define TEST_CALL 13
|
||||
#define PAYPHONE 15
|
||||
const value_string isup_calling_partys_category_value[] = {
|
||||
static const value_string isup_calling_partys_category_value[] = {
|
||||
{ UNKNOWN_AT_THIS_TIME, "Category unknown at this time (national use)"},
|
||||
{ OPERATOR_FRENCH, "operator, language French"},
|
||||
{ OPERATOR_ENGLISH, "operator, language English"},
|
||||
|
@ -735,6 +744,7 @@ const value_string isup_calling_partys_category_value[] = {
|
|||
{ 14, "IEPS call marking for preferential call set up"},
|
||||
{ PAYPHONE, "payphone"},
|
||||
{ 0, NULL}};
|
||||
value_string_ext isup_calling_partys_category_value_ext = VALUE_STRING_EXT_INIT(isup_calling_partys_category_value);
|
||||
|
||||
#define CVR_RSP_IND_FAILURE 0
|
||||
#define CVR_RSP_IND_SUCCESS 1
|
||||
|
@ -834,7 +844,7 @@ static const value_string isup_cvr_cont_chk_ind_value[ ] = {
|
|||
#define MEDIUM_28_64KBS 41
|
||||
#define MEDIUM_29_64KBS 42
|
||||
|
||||
const value_string isup_transmission_medium_requirement_value[] = {
|
||||
static const value_string isup_transmission_medium_requirement_value[] = {
|
||||
{ MEDIUM_SPEECH, "speech"},
|
||||
{ MEDIUM_64KBS, "64 kbit/s unrestricted"},
|
||||
{ MEDIUM_3_1_KHZ_AUDIO, "3.1 kHz audio"},
|
||||
|
@ -871,6 +881,8 @@ const value_string isup_transmission_medium_requirement_value[] = {
|
|||
{ MEDIUM_28_64KBS, "28x64 kbit/s unrestricted"},
|
||||
{ MEDIUM_29_64KBS, "29x64 kbit/s unrestricted"},
|
||||
{ 0, NULL}};
|
||||
value_string_ext isup_transmission_medium_requirement_value_ext = VALUE_STRING_EXT_INIT(isup_transmission_medium_requirement_value);
|
||||
|
||||
static const value_string isup_transmission_medium_requirement_prime_value[] = {
|
||||
{ MEDIUM_SPEECH, "speech"},
|
||||
{ MEDIUM_64KBS, "reserved for 64 kbit/s unrestricted"},
|
||||
|
@ -883,6 +895,7 @@ static const value_string isup_transmission_medium_requirement_prime_value[] = {
|
|||
{ MEDIUM_1536KBS, "reserved for 1536 kbit/s unrestricted"},
|
||||
{ MEDIUM_1920KBS, "reserved for 1920 kbit/s unrestricted"},
|
||||
{ 0, NULL}};
|
||||
static value_string_ext isup_transmission_medium_requirement_prime_value_ext = VALUE_STRING_EXT_INIT(isup_transmission_medium_requirement_prime_value);
|
||||
|
||||
|
||||
/* Definitions for Called and Calling Party number */
|
||||
|
@ -1887,7 +1900,7 @@ dissect_isup_calling_partys_category_parameter(tvbuff_t *parameter_tvb,proto_tre
|
|||
calling_partys_category = tvb_get_guint8(parameter_tvb, 0);
|
||||
proto_tree_add_uint(parameter_tree, hf_isup_calling_partys_category, parameter_tvb, 0, CALLING_PRTYS_CATEGORY_LENGTH, calling_partys_category);
|
||||
|
||||
proto_item_set_text(parameter_item, "Calling Party's category: 0x%x (%s)", calling_partys_category, val_to_str(calling_partys_category, isup_calling_partys_category_value, "reserved/spare"));
|
||||
proto_item_set_text(parameter_item, "Calling Party's category: 0x%x (%s)", calling_partys_category, val_to_str_ext_const(calling_partys_category, &isup_calling_partys_category_value_ext, "reserved/spare"));
|
||||
}
|
||||
|
||||
|
||||
|
@ -1902,7 +1915,7 @@ dissect_isup_transmission_medium_requirement_parameter(tvbuff_t *parameter_tvb,
|
|||
transmission_medium_requirement = tvb_get_guint8(parameter_tvb, 0);
|
||||
proto_tree_add_uint(parameter_tree, hf_isup_transmission_medium_requirement, parameter_tvb, 0, TRANSMISSION_MEDIUM_REQUIREMENT_LENGTH,transmission_medium_requirement);
|
||||
|
||||
proto_item_set_text(parameter_item, "Transmission medium requirement: %u (%s)", transmission_medium_requirement, val_to_str(transmission_medium_requirement, isup_transmission_medium_requirement_value, "spare"));
|
||||
proto_item_set_text(parameter_item, "Transmission medium requirement: %u (%s)", transmission_medium_requirement, val_to_str_ext_const(transmission_medium_requirement, &isup_transmission_medium_requirement_value_ext, "spare"));
|
||||
}
|
||||
/* ------------------------------------------------------------------
|
||||
Dissector Parameter Called party number
|
||||
|
@ -2111,7 +2124,7 @@ dissect_isup_backward_call_indicators_parameter(tvbuff_t *parameter_tvb,proto_tr
|
|||
* dissector, as that has some values not specified by the standard but
|
||||
* that appear to be used for purposes other than the ones in Q.850.
|
||||
*/
|
||||
const value_string q850_cause_code_vals[] = {
|
||||
static const value_string q850_cause_code_vals[] = {
|
||||
{ 0x00, "Valid cause code not yet received" },
|
||||
{ 0x01, "Unallocated (unassigned) number" },
|
||||
{ 0x02, "No route to specified transit network" },
|
||||
|
@ -2188,6 +2201,7 @@ const value_string q850_cause_code_vals[] = {
|
|||
{ 0x7F, "Internetworking, unspecified" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
value_string_ext q850_cause_code_vals_ext = VALUE_STRING_EXT_INIT(q850_cause_code_vals);
|
||||
|
||||
static const value_string ansi_isup_cause_code_vals[] = {
|
||||
{ 0x00, "Valid cause code not yet received" },
|
||||
|
@ -2269,6 +2283,7 @@ static const value_string ansi_isup_cause_code_vals[] = {
|
|||
{ 0x7F, "Internetworking, unspecified" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ansi_isup_cause_code_vals_ext = VALUE_STRING_EXT_INIT(ansi_isup_cause_code_vals);
|
||||
|
||||
static const value_string ansi_isup_coding_standard_vals[] = {
|
||||
{ 0, "CCITT Standard" },
|
||||
|
@ -2311,7 +2326,7 @@ dissect_ansi_isup_cause_indicators_parameter(tvbuff_t *parameter_tvb, proto_tree
|
|||
cause_value=tvb_get_guint8(parameter_tvb, offset)&0x7f;
|
||||
offset ++;
|
||||
length--;
|
||||
proto_item_set_text(parameter_item, "Cause indicators: %s (%u)", val_to_str(cause_value, q850_cause_code_vals, "spare"),cause_value );
|
||||
proto_item_set_text(parameter_item, "Cause indicators: %s (%u)", val_to_str_ext_const(cause_value, &q850_cause_code_vals_ext, "spare"),cause_value );
|
||||
if (length == 0) {
|
||||
return;
|
||||
}
|
||||
|
@ -2330,7 +2345,9 @@ dissect_ansi_isup_cause_indicators_parameter(tvbuff_t *parameter_tvb, proto_tree
|
|||
return;
|
||||
proto_tree_add_item(parameter_tree, hf_ansi_isup_cause_indicator, parameter_tvb, offset, 1, FALSE);
|
||||
cause_value=tvb_get_guint8(parameter_tvb, offset)&0x7f;
|
||||
proto_item_set_text(parameter_item, "Cause indicators: %s (%u)", val_to_str(cause_value, ansi_isup_cause_code_vals, "spare"),cause_value );
|
||||
proto_item_set_text(parameter_item, "Cause indicators: %s (%u)",
|
||||
val_to_str_ext_const(cause_value, &ansi_isup_cause_code_vals_ext, "spare"),
|
||||
cause_value );
|
||||
offset ++;
|
||||
length--;
|
||||
if (length == 0) {
|
||||
|
@ -2501,7 +2518,7 @@ dissect_isup_access_transport_parameter(tvbuff_t *parameter_tvb, proto_tree *par
|
|||
|
||||
/* dissect x.213 NSAP coded Address */
|
||||
|
||||
const value_string x213_afi_value[] = {
|
||||
static const value_string x213_afi_value[] = {
|
||||
{ 0x34, "IANA ICP"},
|
||||
{ 0x35, "IANA ICP"},
|
||||
{ 0x36, "X.121"},
|
||||
|
@ -2555,14 +2572,15 @@ const value_string x213_afi_value[] = {
|
|||
{ 0xcd, "F.69 Group no"},
|
||||
{ 0xce, "F.69 Group no"},
|
||||
{ 0xcf, "E.163 Group no"},
|
||||
{ 0xde, "E.163 Group no"},
|
||||
{ 0xd0, "E.164 Group no"},
|
||||
{ 0xd1, "E.164 Group no"},
|
||||
{ 0xde, "E.163 Group no"},
|
||||
|
||||
{ 0xe2, "ITU-T IND Group no"},
|
||||
{ 0xe3, "ITU-T IND Group no"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
value_string_ext x213_afi_value_ext = VALUE_STRING_EXT_INIT(x213_afi_value);
|
||||
|
||||
|
||||
/* Up-to-date information on the allocated ICP values can be found in */
|
||||
|
@ -2675,6 +2693,7 @@ static const value_string bat_ase_list_of_Identifiers_vals[] = {
|
|||
{ DURATION , "Duration" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext bat_ase_list_of_Identifiers_vals_ext = VALUE_STRING_EXT_INIT(bat_ase_list_of_Identifiers_vals);
|
||||
|
||||
/*ITU-T Q.765.5 (06/2000) 13*/
|
||||
static const value_string Instruction_indicator_for_general_action_vals[] =
|
||||
|
@ -2721,6 +2740,7 @@ static const value_string bat_ase_action_indicator_field_vals[] = {
|
|||
{ 0x18, "bearer redirect"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext bat_ase_action_indicator_field_vals_ext = VALUE_STRING_EXT_INIT(bat_ase_action_indicator_field_vals);
|
||||
|
||||
static const true_false_string BCTP_BVEI_value = {
|
||||
"Version Error Indication, BCTP version not supported",
|
||||
|
@ -2782,6 +2802,7 @@ static const value_string ITU_T_codec_type_subfield_vals[] = {
|
|||
{ G_729_Annex_B, "G.729 Annex B (silence suppression)"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ITU_T_codec_type_subfield_vals_ext = VALUE_STRING_EXT_INIT(ITU_T_codec_type_subfield_vals);
|
||||
|
||||
static const value_string ETSI_codec_type_subfield_vals[] = {
|
||||
|
||||
|
@ -2803,6 +2824,7 @@ static const value_string ETSI_codec_type_subfield_vals[] = {
|
|||
{ 0xff, "Reserved for MuMe dummy Codec Type ( MuMe )"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ETSI_codec_type_subfield_vals_ext = VALUE_STRING_EXT_INIT(ETSI_codec_type_subfield_vals);
|
||||
|
||||
static const value_string bat_initial_codec_mode_vals[] = {
|
||||
{0x7, "12.2 kbps"},
|
||||
|
@ -2822,7 +2844,7 @@ static const value_string optimisation_mode_vals[] = {
|
|||
{ 0, NULL }
|
||||
};
|
||||
|
||||
const value_string bearer_network_connection_characteristics_vals[] = {
|
||||
static const value_string bearer_network_connection_characteristics_vals[] = {
|
||||
|
||||
{ 0x00, "no indication"},
|
||||
{ 0x01, "AAL type 1"},
|
||||
|
@ -2832,6 +2854,7 @@ const value_string bearer_network_connection_characteristics_vals[] = {
|
|||
{ 0x05, "TDM (reserved for use by ITU-T Rec. Q.1950)"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
value_string_ext bearer_network_connection_characteristics_vals_ext = VALUE_STRING_EXT_INIT(bearer_network_connection_characteristics_vals);
|
||||
|
||||
static const true_false_string Bearer_Control_Tunnelling_ind_value = {
|
||||
"Tunnelling to be used",
|
||||
|
@ -2858,6 +2881,7 @@ static const value_string Bearer_Redirection_Indicator_vals[] = {
|
|||
{ 0x0b, "new connection identifier"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext Bearer_Redirection_Indicator_vals_ext = VALUE_STRING_EXT_INIT(Bearer_Redirection_Indicator_vals);
|
||||
|
||||
/*26/Q.765.5 - Signal Type */
|
||||
static const value_string BAt_ASE_Signal_Type_vals[] = {
|
||||
|
@ -2899,6 +2923,7 @@ static const value_string BAt_ASE_Signal_Type_vals[] = {
|
|||
{ 0x53, "negative indication tone"},
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext BAt_ASE_Signal_Type_vals_ext = VALUE_STRING_EXT_INIT(BAt_ASE_Signal_Type_vals);
|
||||
|
||||
static const value_string BAT_ASE_Report_Reason_vals[] = {
|
||||
|
||||
|
@ -3063,6 +3088,7 @@ dissect_bat_ase_Encapsulated_Application_Information(tvbuff_t *parameter_tvb, pa
|
|||
guint duration;
|
||||
guint diagnostic;
|
||||
guint32 bncid, Local_BCU_ID;
|
||||
|
||||
element_no = 0;
|
||||
|
||||
bat_ase_item = proto_tree_add_text(parameter_tree,parameter_tvb, offset, -1,
|
||||
|
@ -3094,7 +3120,7 @@ dissect_bat_ase_Encapsulated_Application_Information(tvbuff_t *parameter_tvb, pa
|
|||
|
||||
bat_ase_element_item = proto_tree_add_text(bat_ase_tree,parameter_tvb,
|
||||
( offset - length_ind_len),(length_indicator + 2),"BAT ASE Element %u, Identifier: %s",element_no,
|
||||
val_to_str(identifier,bat_ase_list_of_Identifiers_vals,"unknown (%u)"));
|
||||
val_to_str_ext(identifier,&bat_ase_list_of_Identifiers_vals_ext,"unknown (%u)"));
|
||||
bat_ase_element_tree = proto_item_add_subtree(bat_ase_element_item ,
|
||||
ett_bat_ase_element);
|
||||
if ( identifier != CODEC ) {
|
||||
|
@ -3123,7 +3149,7 @@ dissect_bat_ase_Encapsulated_Application_Information(tvbuff_t *parameter_tvb, pa
|
|||
content = tvb_get_guint8(parameter_tvb, offset);
|
||||
proto_tree_add_uint(bat_ase_element_tree, hf_Action_Indicator , parameter_tvb, offset, 1, content );
|
||||
proto_item_append_text(bat_ase_element_item, " - %s",
|
||||
val_to_str(content,bat_ase_action_indicator_field_vals, "unknown (%u)"));
|
||||
val_to_str_ext(content,&bat_ase_action_indicator_field_vals_ext, "unknown (%u)"));
|
||||
offset = offset + 1;
|
||||
break;
|
||||
case BACKBONE_NETWORK_CONNECTION_IDENTIFIER :
|
||||
|
@ -3198,7 +3224,7 @@ dissect_bat_ase_Encapsulated_Application_Information(tvbuff_t *parameter_tvb, pa
|
|||
proto_tree_add_uint(bat_ase_element_tree, hf_characteristics , parameter_tvb,
|
||||
offset, 1, tempdata );
|
||||
proto_item_append_text(bat_ase_element_item, " - %s",
|
||||
val_to_str(tempdata,bearer_network_connection_characteristics_vals, "unknown (%u)"));
|
||||
val_to_str_ext(tempdata,&bearer_network_connection_characteristics_vals_ext, "unknown (%u)"));
|
||||
|
||||
offset = offset + content_len;
|
||||
break;
|
||||
|
@ -4226,7 +4252,7 @@ dissect_isup_transmission_medium_used_parameter(tvbuff_t *parameter_tvb, proto_t
|
|||
transmission_medium_requirement = tvb_get_guint8(parameter_tvb, 0);
|
||||
proto_tree_add_uint(parameter_tree, hf_isup_transmission_medium_requirement_prime, parameter_tvb, 0, TRANSMISSION_MEDIUM_RQMT_PRIME_LENGTH,transmission_medium_requirement);
|
||||
|
||||
proto_item_set_text(parameter_item, "Transmission medium used: %u (%s)", transmission_medium_requirement, val_to_str(transmission_medium_requirement, isup_transmission_medium_requirement_prime_value, "spare/reserved"));
|
||||
proto_item_set_text(parameter_item, "Transmission medium used: %u (%s)", transmission_medium_requirement, val_to_str_ext_const(transmission_medium_requirement, &isup_transmission_medium_requirement_prime_value_ext, "spare/reserved"));
|
||||
}
|
||||
/* ------------------------------------------------------------------
|
||||
Dissector Parameter Call diversion information
|
||||
|
@ -4393,7 +4419,7 @@ dissect_isup_parameter_compatibility_information_parameter(tvbuff_t *parameter_t
|
|||
|
||||
proto_tree_add_text(parameter_tree, parameter_tvb, offset, 1,
|
||||
"Upgraded parameter no: %u = %s", upgraded_parameter_no,
|
||||
val_to_str(upgraded_parameter, isup_parameter_type_value, "unknown (%u)"));
|
||||
val_to_str_ext(upgraded_parameter, &isup_parameter_type_value_ext, "unknown (%u)"));
|
||||
offset += 1;
|
||||
len -= 1;
|
||||
instruction_indicators = tvb_get_guint8(parameter_tvb, offset);
|
||||
|
@ -4551,7 +4577,7 @@ dissect_isup_transmission_medium_requirement_prime_parameter(tvbuff_t *parameter
|
|||
transmission_medium_requirement = tvb_get_guint8(parameter_tvb, 0);
|
||||
proto_tree_add_uint(parameter_tree, hf_isup_transmission_medium_requirement_prime, parameter_tvb, 0, TRANSMISSION_MEDIUM_RQMT_PRIME_LENGTH,transmission_medium_requirement);
|
||||
|
||||
proto_item_set_text(parameter_item, "Transmission medium requirement prime: %u (%s)", transmission_medium_requirement, val_to_str(transmission_medium_requirement, isup_transmission_medium_requirement_prime_value, "spare/reserved"));
|
||||
proto_item_set_text(parameter_item, "Transmission medium requirement prime: %u (%s)", transmission_medium_requirement, val_to_str_ext_const(transmission_medium_requirement, &isup_transmission_medium_requirement_prime_value_ext, "spare/reserved"));
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------
|
||||
|
@ -5274,7 +5300,11 @@ dissect_isup_optional_parameter(tvbuff_t *optional_parameters_tvb,packet_info *p
|
|||
"Parameter: type %u",
|
||||
parameter_type);
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, optional_parameters_tvb, offset, PARAMETER_TYPE_LENGTH, parameter_type, "Optional Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, optional_parameters_tvb, offset, PARAMETER_TYPE_LENGTH,
|
||||
parameter_type,
|
||||
"Optional Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext,"unknown"));
|
||||
offset += PARAMETER_TYPE_LENGTH;
|
||||
|
||||
octet = tvb_get_guint8(optional_parameters_tvb,offset);
|
||||
|
@ -5544,7 +5574,8 @@ dissect_isup_optional_parameter(tvbuff_t *optional_parameters_tvb,packet_info *p
|
|||
}
|
||||
else {
|
||||
/* End of optional parameters is reached */
|
||||
proto_tree_add_uint_format(isup_tree, hf_isup_parameter_type, optional_parameters_tvb , offset, PARAMETER_TYPE_LENGTH, parameter_type, "End of optional parameters (%u)", parameter_type);
|
||||
proto_tree_add_uint_format(isup_tree, hf_isup_parameter_type, optional_parameters_tvb , offset, PARAMETER_TYPE_LENGTH,
|
||||
parameter_type, "End of optional parameters (%u)", parameter_type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5577,12 +5608,15 @@ dissect_ansi_isup_optional_parameter(tvbuff_t *optional_parameters_tvb,packet_in
|
|||
"Parameter: type %u",
|
||||
parameter_type);
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, optional_parameters_tvb, offset, PARAMETER_TYPE_LENGTH, parameter_type, "Optional Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, ansi_isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, optional_parameters_tvb, offset, PARAMETER_TYPE_LENGTH, parameter_type,
|
||||
"Optional Parameter: %u (%s)", parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &ansi_isup_parameter_type_value_ext,"unknown"));
|
||||
offset += PARAMETER_TYPE_LENGTH;
|
||||
|
||||
octet = tvb_get_guint8(optional_parameters_tvb,offset);
|
||||
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, optional_parameters_tvb, offset, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, optional_parameters_tvb, offset, PARAMETER_LENGTH_IND_LENGTH, parameter_length,
|
||||
"Parameter length: %u", parameter_length);
|
||||
offset += PARAMETER_LENGTH_IND_LENGTH;
|
||||
if ( octet == 0 )
|
||||
continue;
|
||||
|
@ -5888,7 +5922,10 @@ dissect_ansi_isup_circuit_validation_test_resp_message(tvbuff_t *message_tvb, pr
|
|||
parameter_item = proto_tree_add_text(isup_tree, message_tvb, offset, CVR_RESP_IND_LENGTH, "CVR Response Indicator");
|
||||
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"CVR Response Indicator"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext,"CVR Response Indicator"));
|
||||
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
||||
|
@ -5902,7 +5939,10 @@ dissect_ansi_isup_circuit_validation_test_resp_message(tvbuff_t *message_tvb, pr
|
|||
CG_CHAR_IND_LENGTH,
|
||||
"Circuit Group Characteristics Indicators");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"Circuit Group Characters"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "Circuit Group Characters"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(CG_CHAR_IND_LENGTH, actual_length), CG_CHAR_IND_LENGTH);
|
||||
dissect_isup_circuit_group_char_ind_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -5927,7 +5967,10 @@ dissect_ansi_isup_circuit_reservation_message(tvbuff_t *message_tvb, proto_tree
|
|||
NATURE_OF_CONNECTION_IND_LENGTH,
|
||||
"Nature of Connection Indicators");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext,"unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(NATURE_OF_CONNECTION_IND_LENGTH, actual_length), NATURE_OF_CONNECTION_IND_LENGTH);
|
||||
dissect_isup_nature_of_connection_indicators_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -5952,7 +5995,10 @@ dissect_isup_initial_address_message(tvbuff_t *message_tvb, proto_tree *isup_tre
|
|||
NATURE_OF_CONNECTION_IND_LENGTH,
|
||||
"Nature of Connection Indicators");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(NATURE_OF_CONNECTION_IND_LENGTH, actual_length), NATURE_OF_CONNECTION_IND_LENGTH);
|
||||
dissect_isup_nature_of_connection_indicators_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -5964,7 +6010,10 @@ dissect_isup_initial_address_message(tvbuff_t *message_tvb, proto_tree *isup_tre
|
|||
FORWARD_CALL_IND_LENGTH,
|
||||
"Forward Call Indicators");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(FORWARD_CALL_IND_LENGTH, actual_length), FORWARD_CALL_IND_LENGTH );
|
||||
dissect_isup_forward_call_indicators_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -5976,7 +6025,10 @@ dissect_isup_initial_address_message(tvbuff_t *message_tvb, proto_tree *isup_tre
|
|||
CALLING_PRTYS_CATEGORY_LENGTH,
|
||||
"Calling Party's category");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(CALLING_PRTYS_CATEGORY_LENGTH, actual_length),CALLING_PRTYS_CATEGORY_LENGTH );
|
||||
dissect_isup_calling_partys_category_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -5990,7 +6042,10 @@ dissect_isup_initial_address_message(tvbuff_t *message_tvb, proto_tree *isup_tre
|
|||
TRANSMISSION_MEDIUM_REQUIREMENT_LENGTH,
|
||||
"Transmission medium requirement");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(TRANSMISSION_MEDIUM_REQUIREMENT_LENGTH, actual_length), TRANSMISSION_MEDIUM_REQUIREMENT_LENGTH);
|
||||
dissect_isup_transmission_medium_requirement_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -6006,7 +6061,10 @@ dissect_isup_initial_address_message(tvbuff_t *message_tvb, proto_tree *isup_tre
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"User Service Information");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6026,7 +6084,10 @@ dissect_isup_initial_address_message(tvbuff_t *message_tvb, proto_tree *isup_tre
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"Called Party Number");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6057,7 +6118,10 @@ static gint dissect_isup_subsequent_address_message(tvbuff_t *message_tvb, proto
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"Subsequent Number");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6085,7 +6149,10 @@ dissect_isup_information_request_message(tvbuff_t *message_tvb, proto_tree *isup
|
|||
INFO_REQUEST_IND_LENGTH,
|
||||
"Information request indicators");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(INFO_REQUEST_IND_LENGTH, actual_length), INFO_REQUEST_IND_LENGTH);
|
||||
dissect_isup_information_request_indicators_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -6109,7 +6176,10 @@ dissect_isup_information_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
|
|||
INFO_IND_LENGTH,
|
||||
"Information indicators");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(INFO_IND_LENGTH, actual_length), INFO_IND_LENGTH);
|
||||
dissect_isup_information_indicators_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -6133,7 +6203,10 @@ dissect_isup_continuity_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
|
|||
CONTINUITY_IND_LENGTH,
|
||||
"Continuity indicators");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(CONTINUITY_IND_LENGTH, actual_length), CONTINUITY_IND_LENGTH);
|
||||
dissect_isup_continuity_indicators_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -6157,7 +6230,10 @@ dissect_isup_address_complete_message(tvbuff_t *message_tvb, proto_tree *isup_tr
|
|||
BACKWARD_CALL_IND_LENGTH,
|
||||
"Backward Call Indicators");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(BACKWARD_CALL_IND_LENGTH, actual_length), BACKWARD_CALL_IND_LENGTH);
|
||||
dissect_isup_backward_call_indicators_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -6181,7 +6257,10 @@ dissect_isup_connect_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
|
|||
BACKWARD_CALL_IND_LENGTH,
|
||||
"Backward Call Indicators");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(BACKWARD_CALL_IND_LENGTH, actual_length), BACKWARD_CALL_IND_LENGTH);
|
||||
dissect_isup_backward_call_indicators_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -6210,7 +6289,10 @@ dissect_isup_release_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"Cause indicators");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6244,7 +6326,10 @@ dissect_isup_suspend_resume_message(tvbuff_t *message_tvb, proto_tree *isup_tree
|
|||
SUSPEND_RESUME_IND_LENGTH,
|
||||
"Suspend/Resume indicator");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(SUSPEND_RESUME_IND_LENGTH, actual_length), SUSPEND_RESUME_IND_LENGTH);
|
||||
dissect_isup_suspend_resume_indicators_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -6273,7 +6358,10 @@ dissect_isup_circuit_group_reset_query_message(tvbuff_t *message_tvb, proto_tree
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"Range and status");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6300,7 +6388,10 @@ dissect_isup_circuit_group_blocking_messages(tvbuff_t *message_tvb, proto_tree *
|
|||
CIRC_GRP_SV_MSG_TYPE_LENGTH,
|
||||
"Circuit group supervision message type");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(CIRC_GRP_SV_MSG_TYPE_LENGTH, actual_length), CIRC_GRP_SV_MSG_TYPE_LENGTH);
|
||||
dissect_isup_circuit_group_supervision_message_type_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -6317,7 +6408,10 @@ dissect_isup_circuit_group_blocking_messages(tvbuff_t *message_tvb, proto_tree *
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"Range and status");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6345,7 +6439,10 @@ dissect_isup_facility_request_accepted_message(tvbuff_t *message_tvb, proto_tree
|
|||
FACILITY_IND_LENGTH,
|
||||
"Facility indicator");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(FACILITY_IND_LENGTH, actual_length), FACILITY_IND_LENGTH);
|
||||
dissect_isup_facility_ind_parameter(parameter_tvb, parameter_item);
|
||||
|
@ -6369,7 +6466,10 @@ dissect_isup_facility_reject_message(tvbuff_t *message_tvb, proto_tree *isup_tre
|
|||
FACILITY_IND_LENGTH,
|
||||
"Facility indicator");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(FACILITY_IND_LENGTH, actual_length), FACILITY_IND_LENGTH);
|
||||
dissect_isup_facility_ind_parameter(parameter_tvb, parameter_item);
|
||||
|
@ -6386,7 +6486,10 @@ dissect_isup_facility_reject_message(tvbuff_t *message_tvb, proto_tree *isup_tre
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"Cause indicators, see Q.850");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6425,7 +6528,10 @@ dissect_isup_circuit_group_reset_acknowledgement_message(tvbuff_t *message_tvb,
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"Range and status");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6457,7 +6563,10 @@ dissect_isup_circuit_group_query_response_message(tvbuff_t *message_tvb, proto_t
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"Range and status");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6476,7 +6585,10 @@ dissect_isup_circuit_group_query_response_message(tvbuff_t *message_tvb, proto_t
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"Circuit state indicator (national use)");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6503,7 +6615,10 @@ dissect_isup_call_progress_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
|
|||
EVENT_INFO_LENGTH,
|
||||
"Event information");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
parameter_tvb = tvb_new_subset(message_tvb, offset, MIN(EVENT_INFO_LENGTH, actual_length), EVENT_INFO_LENGTH);
|
||||
dissect_isup_event_information_parameter(parameter_tvb, parameter_tree, parameter_item);
|
||||
|
@ -6532,7 +6647,10 @@ dissect_isup_user_to_user_information_message(tvbuff_t *message_tvb, packet_info
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"User-to-user information, see Q.931");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6564,7 +6682,10 @@ dissect_isup_confusion_message(tvbuff_t *message_tvb, proto_tree *isup_tree)
|
|||
parameter_length + PARAMETER_LENGTH_IND_LENGTH,
|
||||
"Cause indicators, see Q.850");
|
||||
parameter_tree = proto_item_add_subtree(parameter_item, ett_isup_parameter);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type, "Mandatory Parameter: %u (%s)", parameter_type, val_to_str(parameter_type, isup_parameter_type_value,"unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_type, message_tvb, 0, 0, parameter_type,
|
||||
"Mandatory Parameter: %u (%s)",
|
||||
parameter_type,
|
||||
val_to_str_ext_const(parameter_type, &isup_parameter_type_value_ext, "unknown"));
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_mandatory_variable_parameter_pointer, message_tvb, offset, PARAMETER_POINTER_LENGTH, parameter_pointer, "Pointer to Parameter: %u", parameter_pointer);
|
||||
proto_tree_add_uint_format(parameter_tree, hf_isup_parameter_length, message_tvb, offset + parameter_pointer, PARAMETER_LENGTH_IND_LENGTH, parameter_length, "Parameter length: %u", parameter_length);
|
||||
actual_length = tvb_ensure_length_remaining(message_tvb, offset);
|
||||
|
@ -6603,10 +6724,14 @@ dissect_isup_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *isup
|
|||
|
||||
switch (isup_standard){
|
||||
case ITU_STANDARD:
|
||||
proto_tree_add_uint_format(isup_tree, hf_isup_message_type, message_tvb, 0, MESSAGE_TYPE_LENGTH, message_type, "Message type: %s (%u)", val_to_str(message_type, isup_message_type_value, "reserved"), message_type);
|
||||
proto_tree_add_uint_format(isup_tree, hf_isup_message_type, message_tvb, 0, MESSAGE_TYPE_LENGTH, message_type,
|
||||
"Message type: %s (%u)",
|
||||
val_to_str_ext_const(message_type, &isup_message_type_value_ext, "reserved"),
|
||||
message_type);
|
||||
break;
|
||||
case ANSI_STANDARD:
|
||||
proto_tree_add_uint_format(isup_tree, hf_isup_message_type, message_tvb, 0, MESSAGE_TYPE_LENGTH, message_type, "Message type: %s (%u)", val_to_str(message_type, ansi_isup_message_type_value, "reserved"), message_type);
|
||||
proto_tree_add_uint_format(isup_tree, hf_isup_message_type, message_tvb, 0, MESSAGE_TYPE_LENGTH, message_type, "Message type: %s (%u)",
|
||||
val_to_str_ext_const(message_type, &ansi_isup_message_type_value_ext, "reserved"), message_type);
|
||||
break;
|
||||
}
|
||||
offset += MESSAGE_TYPE_LENGTH;
|
||||
|
@ -6722,9 +6847,13 @@ dissect_isup_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *isup
|
|||
break;
|
||||
case MESSAGE_TYPE_PASS_ALONG:
|
||||
/* call dissect_isup_message recursively */
|
||||
{ guint8 pa_message_type;
|
||||
{
|
||||
guint8 pa_message_type;
|
||||
pa_message_type = tvb_get_guint8(parameter_tvb, 0);
|
||||
pass_along_item = proto_tree_add_text(isup_tree, parameter_tvb, offset, -1, "Pass-along: %s Message (%u)", val_to_str(pa_message_type, isup_message_type_value_acro, "reserved"), pa_message_type);
|
||||
pass_along_item = proto_tree_add_text(isup_tree, parameter_tvb, offset, -1,
|
||||
"Pass-along: %s Message (%u)",
|
||||
val_to_str_ext_const(pa_message_type, &isup_message_type_value_acro_ext, "reserved"),
|
||||
pa_message_type);
|
||||
pass_along_tree = proto_item_add_subtree(pass_along_item, ett_isup_pass_along_message);
|
||||
dissect_isup_message(parameter_tvb, pinfo, pass_along_tree);
|
||||
break;
|
||||
|
@ -6919,9 +7048,13 @@ dissect_isup_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *isup
|
|||
break;
|
||||
case MESSAGE_TYPE_PASS_ALONG:
|
||||
/* call dissect_isup_message recursively */
|
||||
{ guint8 pa_message_type;
|
||||
{
|
||||
guint8 pa_message_type;
|
||||
pa_message_type = tvb_get_guint8(parameter_tvb, 0);
|
||||
pass_along_item = proto_tree_add_text(isup_tree, parameter_tvb, offset, -1, "Pass-along: %s Message (%u)", val_to_str(pa_message_type, isup_message_type_value_acro, "reserved"), pa_message_type);
|
||||
pass_along_item = proto_tree_add_text(isup_tree, parameter_tvb, offset, -1,
|
||||
"Pass-along: %s Message (%u)",
|
||||
val_to_str_ext_const(pa_message_type, &isup_message_type_value_acro_ext, "reserved"),
|
||||
pa_message_type);
|
||||
pass_along_tree = proto_item_add_subtree(pass_along_item, ett_isup_pass_along_message);
|
||||
dissect_isup_message(parameter_tvb, pinfo, pass_along_tree);
|
||||
break;
|
||||
|
@ -7101,19 +7234,25 @@ dissect_isup(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
if (isup_show_cic_in_info){
|
||||
switch (isup_standard){
|
||||
case ITU_STANDARD:
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s (CIC %u) ", val_to_str(message_type, isup_message_type_value_acro, "reserved"), cic);
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO,
|
||||
"%s (CIC %u) ",
|
||||
val_to_str_ext_const(message_type, &isup_message_type_value_acro_ext, "reserved"),
|
||||
cic);
|
||||
break;
|
||||
case ANSI_STANDARD:
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s (CIC %u) ", val_to_str(message_type, ansi_isup_message_type_value_acro, "reserved"), cic);
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO,
|
||||
"%s (CIC %u) ",
|
||||
val_to_str_ext_const(message_type, &ansi_isup_message_type_value_acro_ext, "reserved"),
|
||||
cic);
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
switch (isup_standard){
|
||||
case ITU_STANDARD:
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ", val_to_str(message_type, isup_message_type_value_acro, "reserved"));
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ", val_to_str_ext_const(message_type, &isup_message_type_value_acro_ext, "reserved"));
|
||||
break;
|
||||
case ANSI_STANDARD:
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ", val_to_str(message_type, ansi_isup_message_type_value_acro, "reserved"));
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ", val_to_str_ext_const(message_type, &ansi_isup_message_type_value_acro_ext, "reserved"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -7160,9 +7299,14 @@ dissect_bicc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
|
||||
|
||||
if (isup_show_cic_in_info) {
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s (CIC %u) ", val_to_str(message_type, isup_message_type_value_acro, "reserved"), bicc_cic);
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO,
|
||||
"%s (CIC %u) ",
|
||||
val_to_str_ext_const(message_type, &isup_message_type_value_acro_ext, "reserved"),
|
||||
bicc_cic);
|
||||
} else {
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ", val_to_str(message_type, isup_message_type_value_acro, "reserved"));
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO,
|
||||
"%s ",
|
||||
val_to_str_ext_const(message_type, &isup_message_type_value_acro_ext, "reserved"));
|
||||
}
|
||||
/* dissect CIC in main dissector since pass-along message type carrying complete BICC/ISUP message w/o CIC needs
|
||||
* recursive message dissector call
|
||||
|
@ -7197,7 +7341,9 @@ dissect_application_isup(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
|||
/* Extract message type field */
|
||||
message_type = tvb_get_guint8(tvb, 0);
|
||||
/* application/ISUP has no CIC */
|
||||
col_append_sep_fstr(pinfo->cinfo, COL_INFO, ", ", "ISUP:%s", val_to_str(message_type, isup_message_type_value_acro, "reserved"));
|
||||
col_append_sep_fstr(pinfo->cinfo, COL_INFO, ", ",
|
||||
"ISUP:%s",
|
||||
val_to_str_ext_const(message_type, &isup_message_type_value_acro_ext, "reserved"));
|
||||
|
||||
/* In the interest of speed, if "tree" is NULL, don't do any work not
|
||||
necessary to generate protocol tree items. */
|
||||
|
@ -7224,7 +7370,7 @@ msg_stats_tree_init(stats_tree* st)
|
|||
static int
|
||||
msg_stats_tree_packet(stats_tree *st, packet_info *pinfo, epan_dissect_t *edt _U_, const void *p )
|
||||
{
|
||||
const gchar* msg = match_strval(((const isup_tap_rec_t*)p)->message_type, isup_message_type_value_acro);
|
||||
const gchar* msg = match_strval_ext(((const isup_tap_rec_t*)p)->message_type, &isup_message_type_value_acro_ext);
|
||||
gchar src[MAX_ADDR_STR_LEN];
|
||||
gchar dst[MAX_ADDR_STR_LEN];
|
||||
gchar dir[MAX_ADDR_STR_LEN];
|
||||
|
@ -7348,12 +7494,12 @@ proto_register_isup(void)
|
|||
|
||||
{ &hf_isup_calling_partys_category,
|
||||
{ "Calling Party's category", "isup.calling_partys_category",
|
||||
FT_UINT8, BASE_HEX, VALS(isup_calling_partys_category_value), 0x0,
|
||||
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &isup_calling_partys_category_value_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_isup_transmission_medium_requirement,
|
||||
{ "Transmission medium requirement", "isup.transmission_medium_requirement",
|
||||
FT_UINT8, BASE_DEC, VALS(isup_transmission_medium_requirement_value), 0x0,
|
||||
FT_UINT8, BASE_DEC|BASE_EXT_STRING, &isup_transmission_medium_requirement_value_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_isup_odd_even_indicator,
|
||||
|
@ -7578,12 +7724,12 @@ proto_register_isup(void)
|
|||
|
||||
{ &hf_isup_cause_indicator,
|
||||
{ "Cause indicator", "isup.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_ansi_isup_cause_indicator,
|
||||
{ "Cause indicator", "ansi_isup.cause_indicator",
|
||||
FT_UINT8, BASE_DEC, VALS(ansi_isup_cause_code_vals), 0x7f,
|
||||
FT_UINT8, BASE_DEC|BASE_EXT_STRING, &ansi_isup_cause_code_vals_ext, 0x7f,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_isup_suspend_resume_indicator,
|
||||
|
@ -7748,7 +7894,7 @@ proto_register_isup(void)
|
|||
|
||||
{ &hf_isup_transmission_medium_requirement_prime,
|
||||
{ "Transmission medium requirement prime", "isup.transmission_medium_requirement_prime",
|
||||
FT_UINT8, BASE_DEC, VALS(isup_transmission_medium_requirement_prime_value), 0x0,
|
||||
FT_UINT8, BASE_DEC|BASE_EXT_STRING, &isup_transmission_medium_requirement_prime_value_ext, 0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_isup_loop_prevention_response_ind,
|
||||
|
@ -7867,7 +8013,7 @@ proto_register_isup(void)
|
|||
NULL, HFILL }},
|
||||
{ &hf_isup_cause_location,
|
||||
{ "Cause location", "isup.cause_location",
|
||||
FT_UINT8, BASE_DEC, VALS(q931_cause_location_vals), 0x0f,
|
||||
FT_UINT8, BASE_DEC|BASE_EXT_STRING, &q931_cause_location_vals_ext, 0x0f,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_ansi_isup_coding_standard,
|
||||
|
@ -7876,7 +8022,7 @@ proto_register_isup(void)
|
|||
|
||||
{ &hf_bat_ase_identifier,
|
||||
{ "BAT ASE Identifiers", "bicc.bat_ase_identifier",
|
||||
FT_UINT8, BASE_HEX, VALS(bat_ase_list_of_Identifiers_vals),0x0,
|
||||
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &bat_ase_list_of_Identifiers_vals_ext,0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_length_indicator,
|
||||
|
@ -7886,7 +8032,7 @@ proto_register_isup(void)
|
|||
|
||||
{ &hf_Action_Indicator,
|
||||
{ "BAT ASE action indicator field", "bicc.bat_ase_bat_ase_action_indicator_field",
|
||||
FT_UINT8, BASE_HEX, VALS(bat_ase_action_indicator_field_vals),0x00,
|
||||
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &bat_ase_action_indicator_field_vals_ext,0x00,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_Instruction_ind_for_general_action,
|
||||
|
@ -7941,7 +8087,7 @@ proto_register_isup(void)
|
|||
|
||||
{ &hf_afi,
|
||||
{ "X.213 Address Format Information ( AFI )", "x213.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_bicc_nsap_dsp,
|
||||
|
@ -7950,7 +8096,7 @@ proto_register_isup(void)
|
|||
NULL, HFILL }},
|
||||
{ &hf_characteristics,
|
||||
{ "Backbone network connection characteristics", "bat_ase.char",
|
||||
FT_UINT8, BASE_HEX, VALS(bearer_network_connection_characteristics_vals),0x0,
|
||||
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &bearer_network_connection_characteristics_vals_ext,0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_Organization_Identifier,
|
||||
|
@ -7960,12 +8106,12 @@ proto_register_isup(void)
|
|||
|
||||
{ &hf_codec_type,
|
||||
{ "ITU-T codec type subfield", "bat_ase.ITU_T_codec_type_subfield",
|
||||
FT_UINT8, BASE_HEX, VALS(ITU_T_codec_type_subfield_vals),0x0,
|
||||
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &ITU_T_codec_type_subfield_vals_ext,0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_etsi_codec_type,
|
||||
{ "ETSI codec type subfield", "bat_ase.ETSI_codec_type_subfield",
|
||||
FT_UINT8, BASE_HEX, VALS(ETSI_codec_type_subfield_vals),0x0,
|
||||
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &ETSI_codec_type_subfield_vals_ext,0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_active_code_set,
|
||||
|
@ -8082,7 +8228,7 @@ proto_register_isup(void)
|
|||
|
||||
{ &hf_BAT_ASE_Comp_Report_ident,
|
||||
{ "Bearer control tunneling", "bat_ase.bearer_control_tunneling",
|
||||
FT_UINT8, BASE_HEX, VALS(bat_ase_list_of_Identifiers_vals),0x0,
|
||||
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &bat_ase_list_of_Identifiers_vals_ext,0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_BAT_ASE_Comp_Report_diagnostic,
|
||||
|
@ -8102,7 +8248,7 @@ proto_register_isup(void)
|
|||
|
||||
{ &hf_bat_ase_signal,
|
||||
{ "Q.765.5 - Signal Type", "bat_ase.signal_type",
|
||||
FT_UINT8, BASE_HEX, VALS(BAt_ASE_Signal_Type_vals),0x0,
|
||||
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &BAt_ASE_Signal_Type_vals_ext,0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_bat_ase_duration,
|
||||
|
@ -8112,7 +8258,7 @@ proto_register_isup(void)
|
|||
|
||||
{ &hf_bat_ase_bearer_redir_ind,
|
||||
{ "Redirection Indicator", "bat_ase.bearer_redir_ind",
|
||||
FT_UINT8, BASE_HEX, VALS(Bearer_Redirection_Indicator_vals),0x0,
|
||||
FT_UINT8, BASE_HEX|BASE_EXT_STRING, &Bearer_Redirection_Indicator_vals_ext,0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_nsap_ipv4_addr,
|
||||
|
|
|
@ -43,9 +43,8 @@ typedef struct _isup_tap_rec_t {
|
|||
* 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
|
||||
*/
|
||||
|
@ -139,13 +138,13 @@ WS_VAR_IMPORT const value_string q850_cause_code_vals[];
|
|||
#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
|
||||
|
@ -153,18 +152,20 @@ WS_VAR_IMPORT const value_string q850_cause_code_vals[];
|
|||
#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 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
|
||||
*/
|
||||
|
|
|
@ -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" },
|
||||
|
@ -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)"));
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -2333,6 +2346,7 @@ static const value_string q931_high_layer_characteristics_vals[] = {
|
|||
{ 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" },
|
||||
|
@ -2355,6 +2369,7 @@ static const value_string q931_extended_high_layer_characteristics_vals[] = {
|
|||
{ 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" },
|
||||
|
@ -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;
|
||||
|
@ -2647,7 +2663,7 @@ dissect_q931_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
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)"));
|
||||
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);
|
||||
|
@ -2845,8 +2861,8 @@ 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)"));
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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,
|
||||
|
|
|
@ -42,7 +42,7 @@ 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;
|
||||
|
@ -57,12 +57,12 @@ 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.
|
||||
|
@ -70,46 +70,46 @@ extern const value_string q931_call_state_vals[];
|
|||
#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_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_HOLD 0x24
|
||||
#define Q931_HOLD_ACK 0x28
|
||||
#define Q931_HOLD_REJECT 0x30
|
||||
#define Q931_RESUME 0x26
|
||||
#define Q931_RESUME_ACK 0x2E
|
||||
#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_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_DETACH_ACKNOWLEDGE 0x48
|
||||
#define Q931_RELEASE 0x4D
|
||||
#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_RELEASE_COMPLETE 0x5A
|
||||
#define Q931_SEGMENT 0x60
|
||||
#define Q931_STATUS 0x7D
|
||||
#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_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_CONGESTION_CONTROL 0x79
|
||||
#define Q931_INFORMATION 0x7B
|
||||
#define Q931_STATUS 0x7D
|
||||
|
||||
/*
|
||||
* Maintenance message types.
|
||||
|
|
|
@ -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