# gsm_map.cnf # gsm_map conformation file # $Id$ #.MODULE_IMPORT #.EXPORTS #.PDU #.NO_EMIT #.TYPE_RENAME InsertSubscriberDataArg/bearerServiceList bearerServiceList InsertSubscriberDataRes/bearerServiceList bearerServiceList InsertSubscriberDataRes/ss-List ss_List DeleteSubscriberDataArg/ss-List ss_List SendRoutingInfoRes/ss-List ss_List SendIdentificationRes/authenticationSetList SendId_authenticationSetList #.FIELD_RENAME RequestedInfo/locationInformation locationInformationFlag RequestedInfo/subscriberState subscriberStateFlag AdditionalSignalInfo/signalInfo ext_signalInfo ForwardingInfo/forwardingFeatureList forwardingFeatureList_1_32 SendIdentificationRes/authenticationSetList sendId_authenticationSetList AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/supportedVLR-CAMEL-Phases supportedVLR-CAMEL-Phases_flg AnyTimeSubscriptionInterrogationArg/requestedSubscriptionInfo/supportedSGSN-CAMEL-Phases supportedSGSN-CAMEL-Phases_flg RequestedInfo/imei imei_flg #---------------------------------------------------------------------------------------- #.FN_BODY Sm-RP-UI tvbuff_t *tpdu_tvb; offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, &tpdu_tvb); /* * dissect the embedded TPDU message */ if (!tpdu_tvb) return offset; dissector_try_port(sms_dissector_table, 0, tpdu_tvb, pinfo, top_tree); #.END #---------------------------------------------------------------------------------------- #.FN_BODY Imsi tvbuff_t *parameter_tvb; char *digit_str; offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; digit_str = unpack_digits(parameter_tvb, 0); proto_tree_add_string(tree, hf_gsm_map_imsi_digits, parameter_tvb, 0, -1, digit_str); #.END #---------------------------------------------------------------------------------------- #.FN_BODY ServiceCentreAddress tvbuff_t *parameter_tvb; char *digit_str; offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE); digit_str = unpack_digits(parameter_tvb, 1); proto_tree_add_string(tree, hf_gsm_map_servicecentreaddress_digits, parameter_tvb, 1, -1, digit_str); #.END #---------------------------------------------------------------------------------------- #.FN_BODY Msisdn tvbuff_t *parameter_tvb; char *digit_str; offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE); digit_str = unpack_digits(parameter_tvb, 1); proto_tree_add_string(tree, hf_gsm_map_misdn_digits, parameter_tvb, 1, -1, digit_str); #.END #---------------------------------------------------------------------------------------- #.FN_BODY Gmsc-Address tvbuff_t *parameter_tvb; char *digit_str; offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE); digit_str = unpack_digits(parameter_tvb, 1); proto_tree_add_string(tree, hf_gsm_map_map_gmsc_address_digits, parameter_tvb, 1, -1, digit_str); #.END #---------------------------------------------------------------------------------------- #.FN_BODY Hlr-Number tvbuff_t *parameter_tvb; char *digit_str; offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE); digit_str = unpack_digits(parameter_tvb, 1); proto_tree_add_string(tree, hf_gsm_map_map_hlr_number_digits, parameter_tvb, 1, -1, digit_str); #.END #---------------------------------------------------------------------------------------- #.FN_BODY RoamingNumber tvbuff_t *parameter_tvb; char *digit_str; offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE); digit_str = unpack_digits(parameter_tvb, 1); proto_tree_add_string(tree, hf_gsm_map_map_RoamingNumber_digits, parameter_tvb, 1, -1, digit_str); #.END #---------------------------------------------------------------------------------------- #.FN_BODY ForwardedToNumber tvbuff_t *parameter_tvb; char *digit_str; offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE); proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE); digit_str = unpack_digits(parameter_tvb, 1); proto_tree_add_string(tree, hf_gsm_map_map_ForwardedToNumber_digits, parameter_tvb, 1, -1, digit_str); #.END #---------------------------------------------------------------------------------------- #.FN_BODY Ss-Status tvbuff_t *parameter_tvb; guint8 octet; offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; octet = tvb_get_guint8(parameter_tvb,0); proto_tree_add_uint(tree, hf_gsm_map_Ss_Status_unused, parameter_tvb, 0,1,octet); if ((octet & 0x01)== 1) proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_q_bit, parameter_tvb, 0,1,octet); proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_p_bit, parameter_tvb, 0,1,octet); proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_r_bit, parameter_tvb, 0,1,octet); proto_tree_add_boolean(tree, hf_gsm_map_Ss_Status_a_bit, parameter_tvb, 0,1,octet); #.END #---------------------------------------------------------------------------------------- #.FN_BODY ProtocolId offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, &protocolId); #---------------------------------------------------------------------------------------- #.FN_BODY SignalInfo tvbuff_t *parameter_tvb; guint8 octet; guint8 length; offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, ¶meter_tvb); if (!parameter_tvb) return offset; switch (protocolId){ /* gsm-0408 */ case 1: break; /* gsm-0806 */ case 2: break; /* gsm-BSSMAP */ case 3: break; /* ets-300102-1 (~Q.931 ) */ case 4: octet = tvb_get_guint8(parameter_tvb,0); length = tvb_get_guint8(parameter_tvb,1); if ( octet == 4 ) dissect_q931_bearer_capability_ie(parameter_tvb, 2, length, tree); break; default: break; } #---------------------------------------------------------------------------------------- #.TYPE_ATTR Ss-Code TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ssCode_vals) Teleservice TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(Teleservice_vals) #.END