2004-11-02 01:19:23 +00:00
|
|
|
# gsm_map.cnf
|
|
|
|
# gsm_map conformation file
|
|
|
|
|
|
|
|
# $Id$
|
|
|
|
|
|
|
|
#.MODULE_IMPORT
|
|
|
|
|
|
|
|
#.EXPORTS
|
|
|
|
|
|
|
|
#.PDU
|
|
|
|
|
|
|
|
#.NO_EMIT
|
|
|
|
|
2004-11-09 07:04:12 +00:00
|
|
|
|
2004-11-02 01:19:23 +00:00
|
|
|
#.TYPE_RENAME
|
2005-02-09 21:54:57 +00:00
|
|
|
InsertSubscriberDataArg/bearerServiceList bearerServiceList
|
|
|
|
InsertSubscriberDataRes/bearerServiceList bearerServiceList
|
|
|
|
InsertSubscriberDataRes/ss-List ss_List
|
|
|
|
DeleteSubscriberDataArg/ss-List ss_List
|
|
|
|
SendRoutingInfoRes/ss-List ss_List
|
2005-02-14 16:21:47 +00:00
|
|
|
SendIdentificationRes/authenticationSetList SendId_authenticationSetList
|
2004-11-02 01:19:23 +00:00
|
|
|
|
|
|
|
#.FIELD_RENAME
|
2004-11-09 07:04:12 +00:00
|
|
|
RequestedInfo/locationInformation locationInformationFlag
|
|
|
|
RequestedInfo/subscriberState subscriberStateFlag
|
2005-02-09 21:54:57 +00:00
|
|
|
AdditionalSignalInfo/signalInfo ext_signalInfo
|
|
|
|
ForwardingInfo/forwardingFeatureList forwardingFeatureList_1_32
|
2005-02-14 16:21:47 +00:00
|
|
|
SendIdentificationRes/authenticationSetList sendId_authenticationSetList
|
2005-01-24 22:33:36 +00:00
|
|
|
#----------------------------------------------------------------------------------------
|
|
|
|
#.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
|
|
|
|
*/
|
2005-02-03 21:22:09 +00:00
|
|
|
if (!tpdu_tvb)
|
|
|
|
return offset;
|
2005-01-24 22:33:36 +00:00
|
|
|
|
|
|
|
dissector_try_port(sms_dissector_table, 0, tpdu_tvb, pinfo, top_tree);
|
2005-01-26 20:07:35 +00:00
|
|
|
#.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);
|
2005-01-31 21:40:51 +00:00
|
|
|
if (!parameter_tvb)
|
|
|
|
return offset;
|
2005-01-26 20:07:35 +00:00
|
|
|
|
|
|
|
digit_str = unpack_digits(parameter_tvb, 0);
|
|
|
|
|
2005-02-03 21:22:09 +00:00
|
|
|
proto_tree_add_string(tree, hf_gsm_map_imsi_digits, parameter_tvb, 0, -1, digit_str);
|
2005-02-05 15:51:45 +00:00
|
|
|
|
2005-01-26 20:07:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
#.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);
|
2005-02-03 21:22:09 +00:00
|
|
|
if (!parameter_tvb)
|
|
|
|
return offset;
|
2005-01-26 20:07:35 +00:00
|
|
|
|
|
|
|
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);
|
2005-02-14 16:21:47 +00:00
|
|
|
|
2005-01-26 20:07:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
#.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);
|
|
|
|
|
2005-02-03 21:22:09 +00:00
|
|
|
if (!parameter_tvb)
|
|
|
|
return offset;
|
|
|
|
|
2005-01-26 20:07:35 +00:00
|
|
|
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);
|
2005-02-14 16:21:47 +00:00
|
|
|
|
2005-01-26 20:07:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
#.END
|
2005-02-03 21:22:09 +00:00
|
|
|
#----------------------------------------------------------------------------------------
|
|
|
|
#.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);
|
2005-02-14 16:21:47 +00:00
|
|
|
|
2005-02-03 21:22:09 +00:00
|
|
|
|
|
|
|
|
2005-02-09 21:54:57 +00:00
|
|
|
#.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);
|
2005-02-14 16:21:47 +00:00
|
|
|
|
2005-02-09 21:54:57 +00:00
|
|
|
|
|
|
|
|
2005-02-03 21:22:09 +00:00
|
|
|
#.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
|
2005-02-14 16:21:47 +00:00
|
|
|
#----------------------------------------------------------------------------------------
|
|
|
|
#.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);
|
2005-02-03 21:22:09 +00:00
|
|
|
|
2005-02-14 16:21:47 +00:00
|
|
|
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
|
2005-02-03 21:22:09 +00:00
|
|
|
|
2005-01-26 20:07:35 +00:00
|
|
|
#----------------------------------------------------------------------------------------
|
|
|
|
#.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);
|
2005-02-03 21:22:09 +00:00
|
|
|
if (!parameter_tvb)
|
|
|
|
return offset;
|
2005-01-26 20:07:35 +00:00
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
2005-01-24 22:33:36 +00:00
|
|
|
#.END
|
2005-02-03 21:22:09 +00:00
|
|
|
#----------------------------------------------------------------------------------------
|
|
|
|
#.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;
|
|
|
|
}
|
|
|
|
|
2005-01-24 22:33:36 +00:00
|
|
|
#----------------------------------------------------------------------------------------
|
2004-11-02 01:19:23 +00:00
|
|
|
#.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
|
2004-11-09 07:04:12 +00:00
|
|
|
|
|
|
|
|