2005-12-18 18:17:29 +00:00
|
|
|
# ansi_map.cnf
|
|
|
|
# ansi_map conformation file
|
2007-01-01 22:03:01 +00:00
|
|
|
# Copyright 2005-2007 Anders Broman
|
2006-01-07 13:07:04 +00:00
|
|
|
# $Id$
|
2005-12-18 18:17:29 +00:00
|
|
|
|
2007-01-06 20:51:03 +00:00
|
|
|
#.INCLUDE ../gsmmap/gsm_map-exp.cnf
|
2005-12-18 18:17:29 +00:00
|
|
|
#.EXPORTS
|
|
|
|
|
|
|
|
#.PDU
|
2005-12-28 21:32:41 +00:00
|
|
|
AuthenticationDirective
|
|
|
|
AuthenticationDirectiveRes
|
|
|
|
|
|
|
|
OriginationRequest
|
|
|
|
OriginationRequestRes
|
2005-12-18 18:17:29 +00:00
|
|
|
|
|
|
|
#.NO_EMIT
|
|
|
|
|
|
|
|
#.TYPE_RENAME
|
|
|
|
|
|
|
|
#.FIELD_RENAME
|
|
|
|
|
|
|
|
#.FN_BODY InvokeParameters
|
2007-01-13 16:08:30 +00:00
|
|
|
gint *opcode;
|
2007-01-14 22:20:02 +00:00
|
|
|
struct tcap_private_t *p_private_tcap;
|
2007-01-13 16:08:30 +00:00
|
|
|
|
|
|
|
/* Data from the TCAP dissector */
|
|
|
|
if (pinfo->private_data != NULL){
|
|
|
|
p_private_tcap=pinfo->private_data;
|
|
|
|
opcode = g_malloc(sizeof(gint));
|
|
|
|
OperationCode = OperationCode&0x00ff;
|
|
|
|
*opcode = OperationCode;
|
2007-01-14 22:20:02 +00:00
|
|
|
if ((!pinfo->fd->flags.visited)&&(p_private_tcap->TransactionID_str)){
|
2007-01-13 16:08:30 +00:00
|
|
|
/* Only do this once XXX I hope its the right thing to do */
|
|
|
|
g_hash_table_insert(TransactionId_table, g_strdup(p_private_tcap->TransactionID_str), opcode);
|
2007-01-14 22:20:02 +00:00
|
|
|
}
|
2007-01-13 16:08:30 +00:00
|
|
|
}
|
|
|
|
ansi_map_is_invoke = TRUE;
|
|
|
|
if (check_col(pinfo->cinfo, COL_INFO)){
|
|
|
|
col_set_str(pinfo->cinfo, COL_INFO, val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown ANSI-MAP PDU (%u)"));
|
|
|
|
}
|
|
|
|
/* No Data */
|
|
|
|
if(tvb_length_remaining(tvb, offset)<=0){
|
|
|
|
return offset;
|
|
|
|
|
|
|
|
}
|
2007-01-14 22:20:02 +00:00
|
|
|
|
2005-12-18 18:17:29 +00:00
|
|
|
offset = dissect_invokeData(pinfo, tree, tvb, offset);
|
|
|
|
|
|
|
|
#.FN_BODY ReturnParameters
|
2007-01-07 15:38:29 +00:00
|
|
|
gint *opcode;
|
|
|
|
struct tcap_private_t *p_private_tcap;
|
|
|
|
proto_item *item;
|
|
|
|
|
|
|
|
/* Data from the TCAP dissector */
|
|
|
|
if (pinfo->private_data != NULL){
|
|
|
|
p_private_tcap=pinfo->private_data;
|
|
|
|
opcode = g_hash_table_lookup(TransactionId_table, p_private_tcap->TransactionID_str);
|
|
|
|
if(opcode){
|
|
|
|
OperationCode = *opcode;
|
|
|
|
}else{
|
|
|
|
OperationCode = OperationCode & 0x00ff;
|
2007-01-01 22:03:01 +00:00
|
|
|
}
|
2007-01-07 15:38:29 +00:00
|
|
|
}else{
|
|
|
|
OperationCode = OperationCode & 0x00ff;
|
|
|
|
}
|
|
|
|
if (check_col(pinfo->cinfo, COL_INFO)){
|
|
|
|
col_clear(pinfo->cinfo, COL_INFO);
|
|
|
|
col_add_fstr(pinfo->cinfo, COL_INFO,"%s Response", val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown ANSI-MAP PDU (%u)"));
|
|
|
|
}
|
|
|
|
/* No Data */
|
|
|
|
if(tvb_length_remaining(tvb, offset)<=0){
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
item = proto_tree_add_text(tree, tvb, 0, -1, "OperationCode %s",val_to_str(OperationCode, ansi_map_opr_code_strings, "Unknown %u"));
|
|
|
|
PROTO_ITEM_SET_GENERATED(item);
|
2007-01-01 22:03:01 +00:00
|
|
|
|
2007-01-07 15:38:29 +00:00
|
|
|
offset = dissect_returnData(pinfo, tree, tvb, offset);
|
2005-12-18 18:17:29 +00:00
|
|
|
|
|
|
|
#.FN_BODY ErrorParameters
|
|
|
|
|
|
|
|
#.FN_BODY RejectParameters
|
|
|
|
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY PrivateOperationCode VAL_PTR = &OperationCode
|
2005-12-18 18:17:29 +00:00
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
proto_tree_add_item(tree, hf_ansi_map_op_code_fam, tvb, offset-2,1,FALSE);
|
|
|
|
proto_tree_add_item(tree, hf_ansi_map_op_code, tvb, offset-1,1,FALSE);
|
2005-12-20 18:26:28 +00:00
|
|
|
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY MINType VAL_PTR = ¶meter_tvb
|
2006-01-03 15:13:26 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_min_type(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY DigitsType VAL_PTR = ¶meter_tvb
|
2005-12-20 18:26:28 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
2005-12-28 21:32:41 +00:00
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_digits_type(parameter_tvb,pinfo,tree);
|
2005-12-20 18:26:28 +00:00
|
|
|
}
|
2006-01-03 15:13:26 +00:00
|
|
|
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY Subaddress VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_subaddress(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2006-01-07 13:07:04 +00:00
|
|
|
# 6.5.2.3 AlertCode
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY AlertCode VAL_PTR = ¶meter_tvb
|
2006-01-03 15:13:26 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
2006-01-07 13:07:04 +00:00
|
|
|
dissect_ansi_map_alertcode(parameter_tvb,pinfo,tree);
|
2006-01-03 15:13:26 +00:00
|
|
|
}
|
|
|
|
|
2006-01-07 13:07:04 +00:00
|
|
|
# 6.5.2.5 AnnouncementCode
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY AnnouncementCode VAL_PTR = ¶meter_tvb
|
2006-01-03 15:13:26 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
2006-01-07 13:07:04 +00:00
|
|
|
dissect_ansi_map_announcementcode(parameter_tvb,pinfo,tree);
|
2006-01-03 15:13:26 +00:00
|
|
|
}
|
|
|
|
|
2006-01-07 13:07:04 +00:00
|
|
|
# 6.5.2.14 AuthorizationPeriod
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY AuthorizationPeriod VAL_PTR = ¶meter_tvb
|
2006-01-07 13:07:04 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_authorizationperiod(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 6.5.2.16 BillingID
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY BillingID VAL_PTR = ¶meter_tvb
|
2006-01-03 15:13:26 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_billingid(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2006-01-07 13:07:04 +00:00
|
|
|
# 6.5.2.20 CallingFeaturesIndicator
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY CallingFeaturesIndicator VAL_PTR = ¶meter_tvb
|
2006-01-07 13:07:04 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_callingfeaturesindicator(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
# 6.5.2.29 CDMACallMode
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY CDMACallMode VAL_PTR = ¶meter_tvb
|
2006-01-07 13:07:04 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_cdmacallmode(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
2007-01-11 22:26:15 +00:00
|
|
|
# 6.5.2.30 CDMAChannelData
|
|
|
|
#.FN_BODY CDMAChannelData VAL_PTR = ¶meter_tvb
|
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_cdmachanneldata(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2006-01-07 13:07:04 +00:00
|
|
|
# 6.5.2.41 CDMAStationClassMark
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY CDMAStationClassMark VAL_PTR = ¶meter_tvb
|
2006-01-07 13:07:04 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_cdmastationclassmark(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.47 ChannelData
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY ChannelData VAL_PTR = ¶meter_tvb
|
2006-01-07 13:07:04 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_channeldata(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.50 ConfidentialityModes
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY ConfidentialityModes VAL_PTR = ¶meter_tvb
|
2006-01-07 13:07:04 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_confidentialitymodes(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2006-01-12 19:27:56 +00:00
|
|
|
# 6.5.2.53 DeniedAuthorizationPeriod
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY DeniedAuthorizationPeriod VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_deniedauthorizationperiod(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.64 ExtendedMSCID
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY ExtendedMSCID VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_extendedmscid(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.65 ExtendedSystemMyTypeCode
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY ExtendedSystemMyTypeCode VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_extendedsystemmytypecode(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
#6.5.2.71 HandoffState
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY HandoffState VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_handoffstate(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.72 InterMSCCircuitID
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY InterMSCCircuitID VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_intermsccircuitid(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.78 MessageWaitingNotificationCount
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY MessageWaitingNotificationCount VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_messagewaitingnotificationcount(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.79 MessageWaitingNotificationType
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY MessageWaitingNotificationType VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_messagewaitingnotificationtype(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2006-01-07 13:07:04 +00:00
|
|
|
|
|
|
|
# 6.5.2.82 MSCID
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY MSCID VAL_PTR = ¶meter_tvb
|
2006-01-03 15:13:26 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_mscid(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
2006-01-12 19:27:56 +00:00
|
|
|
|
2007-01-05 07:32:39 +00:00
|
|
|
# 6.5.2.84 MSLocation
|
|
|
|
#.FN_BODY MSLocation VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_mscid(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.85 NAMPSCallMode
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY NAMPSCallMode VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_nampscallmode(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.86 NAMPSChannelData
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY NAMPSChannelData VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_nampschanneldata(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.88 OneTimeFeatureIndicator
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY OneTimeFeatureIndicator VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_onetimefeatureindicator(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2006-01-07 13:07:04 +00:00
|
|
|
# 6.5.2.90 OriginationTriggers
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY OriginationTriggers VAL_PTR = ¶meter_tvb
|
2006-01-07 13:07:04 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_originationtriggers(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.91 PACAIndicator
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY PACAIndicator VAL_PTR = ¶meter_tvb
|
2006-01-07 13:07:04 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_pacaindicator(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2006-01-12 19:27:56 +00:00
|
|
|
# 6.5.2.93 PC_SSN
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY PC-SSN VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_pc_ssn(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.94 PilotBillingID
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY PilotBillingID VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
|
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_pilotbillingid(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2007-01-01 22:03:01 +00:00
|
|
|
# 6.5.2.124
|
2007-01-03 07:55:40 +00:00
|
|
|
#.FN_BODY SMS-BearerData VAL_PTR = &SMS_BearerData_tvb
|
2007-01-14 22:20:02 +00:00
|
|
|
int length;
|
|
|
|
proto_item *item;
|
|
|
|
proto_tree *subtree;
|
2007-01-03 07:55:40 +00:00
|
|
|
SMS_BearerData_tvb = NULL;
|
2007-01-01 22:03:01 +00:00
|
|
|
|
|
|
|
%(DEFAULT_BODY)s
|
2007-01-14 22:20:02 +00:00
|
|
|
if (SMS_BearerData_tvb){
|
|
|
|
/* A zero length OCTET STRING will return a zero length tvb */
|
|
|
|
length = tvb_length_remaining(SMS_BearerData_tvb,0);
|
|
|
|
if (length <=0){
|
|
|
|
item = get_ber_last_created_item();
|
|
|
|
subtree = proto_item_add_subtree(item, ett_sms_bearer_data);
|
|
|
|
proto_item_append_text(item," length %%u",length);
|
|
|
|
SMS_BearerData_tvb = NULL;
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
}
|
2006-01-12 19:27:56 +00:00
|
|
|
|
2007-01-03 07:55:40 +00:00
|
|
|
# 6.5.2.137
|
|
|
|
# N.S0005-0 v 1.0
|
2007-01-13 16:08:30 +00:00
|
|
|
#.FN_BODY SMS-TeleserviceIdentifier VAL_PTR = ¶meter_tvb
|
|
|
|
|
2007-01-14 22:20:02 +00:00
|
|
|
int length;
|
|
|
|
proto_item *item;
|
|
|
|
proto_tree *subtree;
|
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
static gint32 ansi_map_sms_tele_id = -1;
|
2007-01-03 07:55:40 +00:00
|
|
|
|
|
|
|
%(DEFAULT_BODY)s
|
2007-01-13 16:08:30 +00:00
|
|
|
if (parameter_tvb){
|
2007-01-14 22:20:02 +00:00
|
|
|
/* A zero length OCTET STRING will return a zero length tvb */
|
|
|
|
length = tvb_length_remaining(parameter_tvb,0);
|
|
|
|
if (length <=0){
|
|
|
|
item = get_ber_last_created_item();
|
|
|
|
subtree = proto_item_add_subtree(item, ett_sms_teleserviceIdentifier);
|
|
|
|
proto_item_append_text(item, " length %%u",length);
|
|
|
|
return offset;
|
|
|
|
}
|
2007-01-13 16:08:30 +00:00
|
|
|
ansi_map_sms_tele_id = tvb_get_ntohs(tvb,0);
|
|
|
|
if ((ansi_map_sms_tele_id != -1)&&(SMS_BearerData_tvb !=NULL))
|
|
|
|
{
|
|
|
|
dissector_try_port(is637_tele_id_dissector_table, ansi_map_sms_tele_id, SMS_BearerData_tvb, g_pinfo, g_tree);
|
|
|
|
}
|
2007-01-03 07:55:40 +00:00
|
|
|
}
|
|
|
|
|
2007-01-04 07:51:26 +00:00
|
|
|
# 6.5.2.146 SystemCapabilities */
|
|
|
|
# Updated in N.S0008-0 v 1.0 */
|
|
|
|
#.FN_BODY SystemCapabilities VAL_PTR = ¶meter_tvb
|
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_systemcapabilities(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-01-03 07:55:40 +00:00
|
|
|
# 6.5.2.159 TerminationTriggers
|
2007-01-04 07:51:26 +00:00
|
|
|
#.FN_BODY TerminationTriggers VAL_PTR = ¶meter_tvb
|
2006-01-07 13:07:04 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
2007-01-03 07:55:40 +00:00
|
|
|
dissect_ansi_map_terminationtriggers(parameter_tvb,pinfo,tree);
|
2006-01-07 13:07:04 +00:00
|
|
|
}
|
2006-01-03 15:13:26 +00:00
|
|
|
|
2006-01-07 13:07:04 +00:00
|
|
|
# 6.5.2.160 TransactionCapability
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY TransactionCapability VAL_PTR = ¶meter_tvb
|
2006-01-03 15:13:26 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_transactioncapability(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
2006-01-07 13:07:04 +00:00
|
|
|
|
2007-01-12 12:05:56 +00:00
|
|
|
# 6.5.2.f (TSB76) CDMAServiceOption N.S0010-0 v 1.0
|
|
|
|
#.FN_BODY CDMAServiceOption VAL_PTR = ¶meter_tvb
|
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_cdmaserviceoption(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2006-01-12 19:27:56 +00:00
|
|
|
# 6.5.2.aj SecondInterMSCCircuitID
|
|
|
|
# -- XXX Same code as ISLPinformation???
|
|
|
|
|
|
|
|
# 6.5.2.bw CallingPartyName N.S0012-0 v 1.0
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY CallingPartyName VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_callingpartyname(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2006-01-07 13:07:04 +00:00
|
|
|
# 6.5.2.df TriggerCapability
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY TriggerCapability VAL_PTR = ¶meter_tvb
|
2006-01-07 13:07:04 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_triggercapability(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
|
|
|
# 6.5.2.dj WINOperationsCapability
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY WINOperationsCapability VAL_PTR = ¶meter_tvb
|
2006-01-07 13:07:04 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_winoperationscapability(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2006-01-12 19:27:56 +00:00
|
|
|
# 6.5.2.ek ControlNetworkID
|
2007-01-05 07:32:39 +00:00
|
|
|
#.FN_BODY ControlNetworkID VAL_PTR = ¶meter_tvb
|
2006-01-12 19:27:56 +00:00
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
dissect_ansi_map_controlnetworkid(parameter_tvb,pinfo,tree);
|
|
|
|
}
|
|
|
|
|
2007-01-14 15:29:29 +00:00
|
|
|
#6.5.2.gm CDMA2000HandoffInvokeIOSData
|
|
|
|
#.FN_BODY CDMA2000HandoffInvokeIOSData VAL_PTR = ¶meter_tvb
|
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
proto_item *item;
|
|
|
|
proto_tree *subtree;
|
|
|
|
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
item = get_ber_last_created_item();
|
|
|
|
subtree = proto_item_add_subtree(item, ett_CDMA2000HandoffInvokeIOSData);
|
|
|
|
dissect_cdma2000_a1_elements(parameter_tvb, pinfo, subtree,
|
|
|
|
0, tvb_length_remaining(parameter_tvb,0));
|
|
|
|
}
|
|
|
|
#6.5.2.gn CDMA2000HandoffResponseIOSData
|
|
|
|
#.FN_BODY CDMA2000HandoffResponseIOSData VAL_PTR = ¶meter_tvb
|
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
proto_item *item;
|
|
|
|
proto_tree *subtree;
|
|
|
|
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
item = get_ber_last_created_item();
|
|
|
|
subtree = proto_item_add_subtree(item, ett_CDMA2000HandoffResponseIOSData);
|
|
|
|
dissect_cdma2000_a1_elements(parameter_tvb, pinfo, subtree,
|
|
|
|
0, tvb_length_remaining(parameter_tvb,0));
|
|
|
|
}
|
2007-01-05 07:32:39 +00:00
|
|
|
#6.5.2.wB ServiceIndicator
|
|
|
|
#.FN_BODY ServiceIndicator VAL_PTR = ¶meter_tvb
|
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
guint8 ServiceIndicator;
|
|
|
|
%(DEFAULT_BODY)s
|
|
|
|
if (parameter_tvb){
|
|
|
|
if (SMS_BearerData_tvb !=NULL)
|
|
|
|
{
|
|
|
|
ServiceIndicator = tvb_get_guint8(parameter_tvb,0);
|
|
|
|
switch(ServiceIndicator){
|
|
|
|
case 1: /* CDMA OTASP Service */
|
|
|
|
case 3: /* CDMA OTAPA Service */
|
|
|
|
dissector_try_port(is683_dissector_table, ansi_map_is_invoke ? 0 : 1, SMS_BearerData_tvb, g_pinfo, g_tree);
|
|
|
|
break;
|
|
|
|
case 4: /* CDMA Position Determination Service */
|
|
|
|
dissector_try_port(is801_dissector_table, ansi_map_is_invoke ? 0 : 1, SMS_BearerData_tvb, g_pinfo, g_tree);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2005-12-20 18:26:28 +00:00
|
|
|
|
2005-12-28 21:32:41 +00:00
|
|
|
#.TYPE_ATTR
|
2006-01-03 15:13:26 +00:00
|
|
|
ActionCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ActionCode_vals)
|
2006-01-07 13:07:04 +00:00
|
|
|
AuthenticationCapability TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_AuthenticationCapability_vals)
|
|
|
|
AlertResult TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_AlertResult_result_vals)
|
|
|
|
AvailabilityType TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_AvailabilityType_vals)
|
|
|
|
CancellationType TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_CancellationType_vals)
|
2006-01-12 19:27:56 +00:00
|
|
|
GeographicAuthorization TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_GeographicAuthorization_vals)
|
2007-01-14 15:29:29 +00:00
|
|
|
InterMSCCircuitID TYPE = FT_NONE DISPLAY = BASE_DEC STRINGS = NULL
|
|
|
|
MobileIdentificationNumber TYPE = FT_NONE DISPLAY = BASE_DEC STRINGS = NULL
|
2007-01-14 22:20:02 +00:00
|
|
|
MobileStationMIN TYPE = FT_NONE DISPLAY = BASE_DEC STRINGS = NULL
|
2006-01-07 13:07:04 +00:00
|
|
|
CountUpdateReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_CountUpdateReport_vals)
|
2005-12-28 21:32:41 +00:00
|
|
|
ControlChannelMode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ControlChannelMode_vals)
|
2006-01-07 13:07:04 +00:00
|
|
|
PageIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_PageIndicator_vals)
|
2006-01-03 15:13:26 +00:00
|
|
|
SMS-AccessDeniedReason TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_AccessDeniedReason_vals)
|
2006-06-17 16:19:23 +00:00
|
|
|
SMS-CauseCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_CauseCode_vals)
|
|
|
|
SMS-ChargeIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_ChargeIndicator_vals)
|
|
|
|
SMS-NotificationIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_NotificationIndicator_vals)
|
2007-01-13 16:08:30 +00:00
|
|
|
#SMS-TeleserviceIdentifier TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_TeleserviceIdentifier_vals)
|
2006-01-03 15:13:26 +00:00
|
|
|
TDMABandwidth TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x0f STRINGS = VALS(ansi_map_TDMABandwidth_vals)
|
|
|
|
TDMAServiceCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_TDMAServiceCode_vals)
|
|
|
|
OTASP-ResultCode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_OTASP_ResultCode_vals)
|
|
|
|
ServiceIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ServiceIndicator_vals)
|
2006-01-07 13:07:04 +00:00
|
|
|
TerminationAccessType TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_TerminationAccessType_vals)
|
|
|
|
TerminationTreatment TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_TerminationTreatment_vals)
|
2006-01-03 15:13:26 +00:00
|
|
|
SignalingMessageEncryptionReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMEReport_vals)
|
|
|
|
VoicePrivacyReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_VoicePrivacyReport_vals)
|
2006-01-12 19:27:56 +00:00
|
|
|
PreferredLanguageIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_PreferredLanguageIndicator_vals)
|
|
|
|
SetupResult TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SetupResult_vals)
|
|
|
|
UniqueChallengeReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_UniqueChallengeReport_vals)
|
|
|
|
ISLPInformation TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_islp_type_vals)
|
|
|
|
ServiceRedirectionCause TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ServiceRedirectionCause_type_vals)
|
|
|
|
SSDUpdateReport TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SSDUpdateReport_vals)
|
|
|
|
ReauthenticationReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ReauthenticationReport_vals)
|
|
|
|
MSIDUsage TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x03 STRINGS = VALS(ansi_MSIDUsage_m_or_i_vals)
|
|
|
|
BSMCStatus TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x03 STRINGS = VALS(ansi_map_BSMCStatus_vals)
|
|
|
|
PagingFrameClass TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x03 STRINGS = VALS(ansi_map_PagingFrameClass_vals)
|
|
|
|
ServicesResult TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x03 STRINGS = VALS(ansi_map_ServicesResult_ppr_vals)
|
|
|
|
SOCStatus TYPE = FT_UINT8 DISPLAY = BASE_DEC BITMASK = 0x03 STRINGS = VALS(ansi_map_SOCStatus_vals)
|
2005-12-18 18:17:29 +00:00
|
|
|
#.END
|