From d1db2cb464ff12532d1d7cf242d8bd805d4e7b38 Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Sun, 14 Jan 2007 22:20:02 +0000 Subject: If a OCTET STRING has zero length a zero length tvb will be returned - handle that case and add pretifications by Graeme Lunt. svn path=/trunk/; revision=20430 --- asn1/ansi_map/ansi_map.asn | 153 +++++++++++++++- asn1/ansi_map/ansi_map.cnf | 40 ++++- asn1/ansi_map/packet-ansi_map-template.c | 290 ++++++++++++++++--------------- 3 files changed, 331 insertions(+), 152 deletions(-) (limited to 'asn1') diff --git a/asn1/ansi_map/ansi_map.asn b/asn1/ansi_map/ansi_map.asn index 680b558a19..a3be0585b7 100644 --- a/asn1/ansi_map/ansi_map.asn +++ b/asn1/ansi_map/ansi_map.asn @@ -6984,4 +6984,155 @@ MINType ::= OCTET STRING IMSIType ::= OCTET STRING -END \ No newline at end of file +-- Definition to support ASN2WRS generating hf_indices + +InvokeData ::= SEQUENCE { + handoffMeasurementRequest HandoffMeasurementRequest, + facilitiesDirective FacilitiesDirective, + handoffBack HandoffBack, + facilitiesRelease FacilitiesRelease, + qualificationRequest QualificationRequest, + qualificationDirective QualificationDirective, + blocking Blocking, + unblocking Unblocking, + resetCircuit ResetCircuit, + trunkTest TrunkTest, + trunkTestDisconnect TrunkTestDisconnect, + registrationNotification RegistrationNotification, + registrationCancellation RegistrationCancellation, + locationRequest LocationRequest, + routingRequest RoutingRequest, + featureRequest FeatureRequest, + unreliableRoamerDataDirective UnreliableRoamerDataDirective, + mSInactive MSInactive, + transferToNumberRequest TransferToNumberRequest, + redirectionRequest RedirectionRequest, + handoffToThird HandoffToThird, + flashRequest FlashRequest, + authenticationDirective AuthenticationDirective, + authenticationRequest AuthenticationRequest, + baseStationChallenge BaseStationChallenge, + authenticationFailureReport AuthenticationFailureReport, + countRequest CountRequest, + interSystemPage InterSystemPage, + unsolicitedResponse UnsolicitedResponse, + bulkDeregistration BulkDeregistration, + handoffMeasurementRequest2 HandoffMeasurementRequest2, + facilitiesDirective2 FacilitiesDirective2, + handoffBack2 HandoffBack2, + handoffToThird2 HandoffToThird2, + authenticationDirectiveForward AuthenticationDirectiveForward, + authenticationStatusReport AuthenticationStatusReport, + informationDirective InformationDirective, + informationForward InformationForward, + interSystemAnswer InterSystemAnswer, + interSystemPage2 InterSystemPage2, + interSystemSetup InterSystemSetup, + originationRequest OriginationRequest, + randomVariableRequest RandomVariableRequest, + redirectionDirective RedirectionDirective, + remoteUserInteractionDirective RemoteUserInteractionDirective, + sMSDeliveryBackward SMSDeliveryBackward, + sMSDeliveryForward SMSDeliveryForward, + sMSDeliveryPointToPoint SMSDeliveryPointToPoint, + sMSNotification SMSNotification, + sMSRequest SMSRequest, + oTASPRequest OTASPRequest, + changeFacilities ChangeFacilities, + changeService ChangeService, + parameterRequest ParameterRequest, + tMSIDirective TMSIDirective, + serviceRequest ServiceRequest, + analyzedInformation AnalyzedInformation, + connectionFailureReport ConnectionFailureReport, + connectResource ConnectResource, + facilitySelectedAndAvailable FacilitySelectedAndAvailable, + modify Modify, + search Search, + seizeResource SeizeResource, + sRFDirective SRFDirective, + tBusy TBusy, + tNoAnswer TNoAnswer, + messageDirective MessageDirective, + bulkDisconnection BulkDisconnection, + callControlDirective CallControlDirective, + oAnswer OAnswer, + oDisconnect ODisconnect, + callRecoveryReport CallRecoveryReport, + tAnswer TAnswer, + tDisconnect TDisconnect, + unreliableCallData UnreliableCallData, + oCalledPartyBusy OCalledPartyBusy, + oNoAnswer ONoAnswer, + positionRequest PositionRequest, + positionRequestForward PositionRequestForward, + aCGDirective ACGDirective, + roamerDatabaseVerificationRequest RoamerDatabaseVerificationRequest, + addService AddService, + dropService DropService +} + +ReturnData ::= SEQUENCE { + handoffMeasurementRequestRes HandoffMeasurementRequestRes, + facilitiesDirectiveRes FacilitiesDirectiveRes, + handoffBackRes HandoffBackRes, + facilitiesReleaseRes FacilitiesReleaseRes, + qualificationRequestRes QualificationRequestRes, + resetCircuitRes ResetCircuitRes, + registrationNotificationRes RegistrationNotificationRes, + registrationCancellationRes RegistrationCancellationRes, + locationRequestRes LocationRequestRes, + routingRequestRes RoutingRequestRes, + featureRequestRes FeatureRequestRes, + transferToNumberRequestRes TransferToNumberRequestRes, + handoffToThirdRes HandoffToThirdRes, + authenticationDirectiveRes AuthenticationDirectiveRes, + authenticationRequestRes AuthenticationRequestRes, + authenticationFailureReportRes AuthenticationFailureReportRes, + countRequestRes CountRequestRes, + interSystemPageRes InterSystemPageRes, + unsolicitedResponseRes UnsolicitedResponseRes, + handoffMeasurementRequest2Res HandoffMeasurementRequest2Res, + facilitiesDirective2Res FacilitiesDirective2Res, + handoffBack2Res HandoffBack2Res, + handoffToThird2Res HandoffToThird2Res, + authenticationDirectiveForwardRes AuthenticationDirectiveForwardRes, + authenticationStatusReportRes AuthenticationStatusReportRes, + informationForwardRes InformationForwardRes, + interSystemPage2Res InterSystemPage2Res, + interSystemSetupRes InterSystemSetupRes, + originationRequestRes OriginationRequestRes, + randomVariableRequestRes RandomVariableRequestRes, + remoteUserInteractionDirectiveRes RemoteUserInteractionDirectiveRes, + sMSDeliveryBackwardRes SMSDeliveryBackwardRes, + sMSDeliveryForwardRes SMSDeliveryForwardRes, + sMSDeliveryPointToPointRes SMSDeliveryPointToPointRes, + sMSNotificationRes SMSNotificationRes, + sMSRequestRes SMSRequestRes, + oTASPRequestRes OTASPRequestRes, + changeFacilitiesRes ChangeFacilitiesRes, + changeServiceRes ChangeServiceRes, + parameterRequestRes ParameterRequestRes, + tMSIDirectiveRes TMSIDirectiveRes, + serviceRequestRes ServiceRequestRes, + analyzedInformationRes AnalyzedInformationRes, + facilitySelectedAndAvailableRes FacilitySelectedAndAvailableRes, + modifyRes ModifyRes, + searchRes SearchRes, + seizeResourceRes SeizeResourceRes, + sRFDirectiveRes SRFDirectiveRes, + tBusyRes TBusyRes, + tNoAnswerRes TNoAnswerRes, + callControlDirectiveRes CallControlDirectiveRes, + oDisconnectRes ODisconnectRes, + tDisconnectRes TDisconnectRes, + oCalledPartyBusyRes OCalledPartyBusyRes, + oNoAnswerRes ONoAnswerRes, + positionRequestRes PositionRequestRes, + positionRequestForwardRes PositionRequestForwardRes, + roamerDatabaseVerificationRequestRes RoamerDatabaseVerificationRequestRes, + addServiceRes AddServiceRes, + dropServiceRes DropServiceRes +} + +END diff --git a/asn1/ansi_map/ansi_map.cnf b/asn1/ansi_map/ansi_map.cnf index 8692226b8c..3e90a56190 100644 --- a/asn1/ansi_map/ansi_map.cnf +++ b/asn1/ansi_map/ansi_map.cnf @@ -21,7 +21,7 @@ OriginationRequestRes #.FN_BODY InvokeParameters gint *opcode; - struct tcap_private_t * p_private_tcap; + struct tcap_private_t *p_private_tcap; /* Data from the TCAP dissector */ if (pinfo->private_data != NULL){ @@ -29,11 +29,11 @@ OriginationRequestRes opcode = g_malloc(sizeof(gint)); OperationCode = OperationCode&0x00ff; *opcode = OperationCode; - if ((!pinfo->fd->flags.visited)&&(p_private_tcap->TransactionID_str)) + if ((!pinfo->fd->flags.visited)&&(p_private_tcap->TransactionID_str)){ /* 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); + } } - 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)")); @@ -43,7 +43,7 @@ OriginationRequestRes return offset; } - proto_tree_add_item(tree, hf_ansi_map_invokeParameters, tvb, offset,-1,FALSE); + offset = dissect_invokeData(pinfo, tree, tvb, offset); #.FN_BODY ReturnParameters @@ -75,7 +75,6 @@ OriginationRequestRes 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); - proto_tree_add_item(tree, hf_ansi_map_returnResult, tvb, offset,-1,FALSE); offset = dissect_returnData(pinfo, tree, tvb, offset); #.FN_BODY ErrorParameters @@ -318,24 +317,48 @@ OriginationRequestRes # 6.5.2.124 #.FN_BODY SMS-BearerData VAL_PTR = &SMS_BearerData_tvb + int length; + proto_item *item; + proto_tree *subtree; SMS_BearerData_tvb = NULL; %(DEFAULT_BODY)s + 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; + } + } # 6.5.2.137 # N.S0005-0 v 1.0 #.FN_BODY SMS-TeleserviceIdentifier VAL_PTR = ¶meter_tvb -tvbuff_t *parameter_tvb = NULL; -static gint32 ansi_map_sms_tele_id = -1; + int length; + proto_item *item; + proto_tree *subtree; + tvbuff_t *parameter_tvb = NULL; + static gint32 ansi_map_sms_tele_id = -1; %(DEFAULT_BODY)s if (parameter_tvb){ + /* 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; + } 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); - ansi_map_sms_tele_id = -1; } } @@ -466,6 +489,7 @@ CancellationType TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_Ca GeographicAuthorization TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_GeographicAuthorization_vals) InterMSCCircuitID TYPE = FT_NONE DISPLAY = BASE_DEC STRINGS = NULL MobileIdentificationNumber TYPE = FT_NONE DISPLAY = BASE_DEC STRINGS = NULL +MobileStationMIN TYPE = FT_NONE DISPLAY = BASE_DEC STRINGS = NULL CountUpdateReport TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_CountUpdateReport_vals) ControlChannelMode TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_ControlChannelMode_vals) PageIndicator TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_PageIndicator_vals) diff --git a/asn1/ansi_map/packet-ansi_map-template.c b/asn1/ansi_map/packet-ansi_map-template.c index a9d69137c8..1dc1f4c43c 100644 --- a/asn1/ansi_map/packet-ansi_map-template.c +++ b/asn1/ansi_map/packet-ansi_map-template.c @@ -320,6 +320,8 @@ static gint ett_ansi_map = -1; static gint ett_mintype = -1; static gint ett_digitstype = -1; static gint ett_billingid = -1; +static gint ett_sms_bearer_data = -1; +static gint ett_sms_teleserviceIdentifier = -1; static gint ett_extendedmscid = -1; static gint ett_extendedsystemmytypecode = -1; static gint ett_handoffstate = -1; @@ -3440,55 +3442,55 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv switch(OperationCode){ case 1: /*Handoff Measurement Request*/ - offset = dissect_ansi_map_HandoffMeasurementRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffMeasurementRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffMeasurementRequest); break; case 2: /*Facilities Directive*/ - offset = dissect_ansi_map_FacilitiesDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_FacilitiesDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_facilitiesDirective); break; case 3: /*Mobile On Channel*/ proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob"); break; case 4: /*Handoff Back*/ - offset = dissect_ansi_map_HandoffBack(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffBack(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffBack); break; case 5: /*Facilities Release*/ - offset = dissect_ansi_map_FacilitiesRelease(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_FacilitiesRelease(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_facilitiesRelease); break; case 6: /*Qualification Request*/ - offset = dissect_ansi_map_QualificationRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_QualificationRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_qualificationRequest); break; case 7: /*Qualification Directive*/ - offset = dissect_ansi_map_QualificationDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_QualificationDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_qualificationDirective); break; case 8: /*Blocking*/ - offset = dissect_ansi_map_Blocking(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_Blocking(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_blocking); break; case 9: /*Unblocking*/ - offset = dissect_ansi_map_Unblocking(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_Unblocking(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_unblocking); break; case 10: /*Reset Circuit*/ - offset = dissect_ansi_map_ResetCircuit(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ResetCircuit(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_resetCircuit); break; case 11: /*Trunk Test*/ - offset = dissect_ansi_map_TrunkTest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TrunkTest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_trunkTest); break; case 12: /*Trunk Test Disconnect*/ - offset = dissect_ansi_map_TrunkTestDisconnect(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TrunkTestDisconnect(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_trunkTestDisconnect); break; case 13: /*Registration Notification*/ - offset = dissect_ansi_map_RegistrationNotification(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RegistrationNotification(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_registrationNotification); break; case 14: /*Registration Cancellation*/ - offset = dissect_ansi_map_RegistrationCancellation(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RegistrationCancellation(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_registrationCancellation); break; case 15: /*Location Request*/ - offset = dissect_ansi_map_LocationRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_LocationRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_locationRequest); break; case 16: /*Routing Request*/ - offset = dissect_ansi_map_RoutingRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RoutingRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_routingRequest); break; case 17: /*Feature Request*/ - offset = dissect_ansi_map_FeatureRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_FeatureRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_featureRequest); break; case 18: /*Reserved 18 (Service Profile Request, IS-41-C)*/ proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob(18 (Service Profile Request, IS-41-C)"); @@ -3497,118 +3499,118 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob(19 Service Profile Directive, IS-41-C)"); break; case 20: /*Unreliable Roamer Data Directive*/ - offset = dissect_ansi_map_UnreliableRoamerDataDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_UnreliableRoamerDataDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_unreliableRoamerDataDirective); break; case 21: /*Reserved 21 (Call Data Request, IS-41-C)*/ proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob(Reserved 21 (Call Data Request, IS-41-C)"); break; case 22: /*MS Inactive*/ - offset = dissect_ansi_map_MSInactive(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_MSInactive(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_mSInactive); break; case 23: /*Transfer To Number Request*/ - offset = dissect_ansi_map_TransferToNumberRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TransferToNumberRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_transferToNumberRequest); break; case 24: /*Redirection Request*/ - offset = dissect_ansi_map_RedirectionRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RedirectionRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_redirectionRequest); break; case 25: /*Handoff To Third*/ - offset = dissect_ansi_map_HandoffToThird(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffToThird(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffToThird); break; case 26: /*Flash Request*/ - offset = dissect_ansi_map_FlashRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_FlashRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_flashRequest); break; case 27: /*Authentication Directive*/ - offset = dissect_ansi_map_AuthenticationDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AuthenticationDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_authenticationDirective); break; case 28: /*Authentication Request*/ - offset = dissect_ansi_map_AuthenticationRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AuthenticationRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_authenticationRequest); break; case 29: /*Base Station Challenge*/ - offset = dissect_ansi_map_BaseStationChallenge(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_BaseStationChallenge(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_baseStationChallenge); break; case 30: /*Authentication Failure Report*/ - offset = dissect_ansi_map_AuthenticationFailureReport(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AuthenticationFailureReport(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_authenticationFailureReport); break; case 31: /*Count Request*/ - offset = dissect_ansi_map_CountRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_CountRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_countRequest); break; case 32: /*Inter System Page*/ - offset = dissect_ansi_map_InterSystemPage(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_InterSystemPage(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_interSystemPage); break; case 33: /*Unsolicited Response*/ - offset = dissect_ansi_map_UnsolicitedResponse(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_UnsolicitedResponse(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_unsolicitedResponse); break; case 34: /*Bulk Deregistration*/ - offset = dissect_ansi_map_BulkDeregistration(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_BulkDeregistration(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_bulkDeregistration); break; case 35: /*Handoff Measurement Request 2*/ - offset = dissect_ansi_map_HandoffMeasurementRequest2(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffMeasurementRequest2(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffMeasurementRequest2); break; case 36: /*Facilities Directive 2*/ - offset = dissect_ansi_map_FacilitiesDirective2(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_FacilitiesDirective2(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_facilitiesDirective2); break; case 37: /*Handoff Back 2*/ - offset = dissect_ansi_map_HandoffBack2(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffBack2(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffBack2); break; case 38: /*Handoff To Third 2*/ - offset = dissect_ansi_map_HandoffToThird2(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffToThird2(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffToThird2); break; case 39: /*Authentication Directive Forward*/ - offset = dissect_ansi_map_AuthenticationDirectiveForward(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AuthenticationDirectiveForward(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_authenticationDirectiveForward); break; case 40: /*Authentication Status Report*/ - offset = dissect_ansi_map_AuthenticationStatusReport(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AuthenticationStatusReport(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_authenticationStatusReport); break; case 41: /*Reserved 41*/ proto_tree_add_text(tree, tvb, offset, -1, "Reserved 41, Unknown invokeData blob"); break; case 42: /*Information Directive*/ - offset = dissect_ansi_map_InformationDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_InformationDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_informationDirective); break; case 43: /*Information Forward*/ - offset = dissect_ansi_map_InformationForward(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_InformationForward(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_informationForward); break; case 44: /*Inter System Answer*/ - offset = dissect_ansi_map_InterSystemAnswer(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_InterSystemAnswer(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_interSystemAnswer); break; case 45: /*Inter System Page 2*/ - offset = dissect_ansi_map_InterSystemPage2(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_InterSystemPage2(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_interSystemPage2); break; case 46: /*Inter System Setup*/ - offset = dissect_ansi_map_InterSystemSetup(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_InterSystemSetup(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_interSystemSetup); break; case 47: /*OriginationRequest*/ - offset = dissect_ansi_map_OriginationRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_OriginationRequest_PDU); + offset = dissect_ansi_map_OriginationRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_originationRequest); break; case 48: /*Random Variable Request*/ - offset = dissect_ansi_map_RandomVariableRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RandomVariableRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_randomVariableRequest); break; case 49: /*Redirection Directive*/ - offset = dissect_ansi_map_RedirectionDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RedirectionDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_redirectionDirective); break; case 50: /*Remote User Interaction Directive*/ - offset = dissect_ansi_map_RemoteUserInteractionDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RemoteUserInteractionDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_remoteUserInteractionDirective); break; case 51: /*SMS Delivery Backward*/ - offset = dissect_ansi_map_SMSDeliveryBackward(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SMSDeliveryBackward(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sMSDeliveryBackward); break; case 52: /*SMS Delivery Forward*/ - offset = dissect_ansi_map_SMSDeliveryForward(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SMSDeliveryForward(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sMSDeliveryForward); break; case 53: /*SMS Delivery Point to Point*/ - offset = dissect_ansi_map_SMSDeliveryPointToPoint(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SMSDeliveryPointToPoint(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sMSDeliveryPointToPoint); break; case 54: /*SMS Notification*/ - offset = dissect_ansi_map_SMSNotification(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SMSNotification(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sMSNotification); break; case 55: /*SMS Request*/ - offset = dissect_ansi_map_SMSRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SMSRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sMSRequest); break; /* End N.S0005*/ /* N.S0010-0 v 1.0 */ /* N.S0011-0 v 1.0 */ case 56: /*OTASP Request 6.4.2.CC*/ - offset = dissect_ansi_map_OTASPRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_OTASPRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_oTASPRequest); break; /*End N.S0011-0 v 1.0 */ case 57: /*Information Backward*/ @@ -3616,64 +3618,64 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv break; /* N.S0008-0 v 1.0 */ case 58: /*Change Facilities*/ - offset = dissect_ansi_map_ChangeFacilities(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ChangeFacilities(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_changeFacilities); break; case 59: /*Change Service*/ - offset = dissect_ansi_map_ChangeService(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ChangeService(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_changeService); break; /* End N.S0008-0 v 1.0 */ case 60: /*Parameter Request*/ - offset = dissect_ansi_map_ParameterRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ParameterRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_parameterRequest); break; case 61: /*TMSI Directive*/ - offset = dissect_ansi_map_TMSIDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TMSIDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_tMSIDirective); break; /*End N.S0010-0 v 1.0 */ case 62: /*Reserved 62*/ proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob(Reserved 62)"); break; case 63: /*Service Request N.S0012-0 v 1.0*/ - offset = dissect_ansi_map_ServiceRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ServiceRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_serviceRequest); break; /* N.S0013 */ case 64: /*Analyzed Information Request*/ - offset = dissect_ansi_map_AnalyzedInformation(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AnalyzedInformation(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_analyzedInformation); break; case 65: /*Connection Failure Report*/ - offset = dissect_ansi_map_ConnectionFailureReport(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ConnectionFailureReport(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_connectionFailureReport); break; case 66: /*Connect Resource*/ - offset = dissect_ansi_map_ConnectResource(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ConnectResource(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_connectResource); break; case 67: /*Disconnect Resource*/ /* No data */ break; case 68: /*Facility Selected and Available*/ - offset = dissect_ansi_map_FacilitySelectedAndAvailable(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_FacilitySelectedAndAvailable(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_facilitySelectedAndAvailable); break; case 69: /*Instruction Request*/ /* No data */ break; case 70: /*Modify*/ - offset = dissect_ansi_map_Modify(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_Modify(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_modify); break; case 71: /*Reset Timer*/ /*No Data*/ break; case 72: /*Search*/ - offset = dissect_ansi_map_Search(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_Search(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_search); break; case 73: /*Seize Resource*/ - offset = dissect_ansi_map_SeizeResource(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SeizeResource(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_seizeResource); break; case 74: /*SRF Directive*/ - offset = dissect_ansi_map_SRFDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SRFDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sRFDirective); break; case 75: /*T Busy*/ - offset = dissect_ansi_map_TBusy(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TBusy(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_tBusy); break; case 76: /*T NoAnswer*/ - offset = dissect_ansi_map_TNoAnswer(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TNoAnswer(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_tNoAnswer); break; /*END N.S0013 */ case 77: /*Release*/ @@ -3684,47 +3686,47 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv break; /* N.S0024*/ case 79: /*Message Directive*/ - offset = dissect_ansi_map_MessageDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_MessageDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_messageDirective); break; /*END N.S0024*/ /* N.S0018 PN-4287*/ case 80: /*Bulk Disconnection*/ - offset = dissect_ansi_map_BulkDisconnection(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_BulkDisconnection(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_bulkDisconnection); break; case 81: /*Call Control Directive*/ - offset = dissect_ansi_map_CallControlDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_CallControlDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_callControlDirective); break; case 82: /*O Answer*/ - offset = dissect_ansi_map_OAnswer(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_OAnswer(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_oAnswer); break; case 83: /*O Disconnect*/ - offset = dissect_ansi_map_ODisconnect(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ODisconnect(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_oDisconnect); break; case 84: /*Call Recovery Report*/ - offset = dissect_ansi_map_CallRecoveryReport(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_CallRecoveryReport(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_callRecoveryReport); break; case 85: /*T Answer*/ - offset = dissect_ansi_map_TAnswer(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TAnswer(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_tAnswer); break; case 86: /*T Disconnect*/ - offset = dissect_ansi_map_TDisconnect(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TDisconnect(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_tDisconnect); break; case 87: /*Unreliable Call Data*/ - offset = dissect_ansi_map_UnreliableCallData(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_UnreliableCallData(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_unreliableCallData); break; /* N.S0018 PN-4287*/ /*N.S0004 */ case 88: /*O CalledPartyBusy*/ - offset = dissect_ansi_map_OCalledPartyBusy(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_OCalledPartyBusy(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_oCalledPartyBusy); break; case 89: /*O NoAnswer*/ - offset = dissect_ansi_map_ONoAnswer(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ONoAnswer(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_oNoAnswer); break; case 90: /*Position Request*/ - offset = dissect_ansi_map_PositionRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_PositionRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_positionRequest); break; case 91: /*Position Request Forward*/ - offset = dissect_ansi_map_PositionRequestForward(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_PositionRequestForward(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_positionRequestForward); break; /*END N.S0004 */ case 92: /*Call Termination Report*/ @@ -3744,18 +3746,18 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv break; /* 3GPP2 N.S0023-0 */ case 97: /*ACG Directive*/ - offset = dissect_ansi_map_ACGDirective(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ACGDirective(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_aCGDirective); break; /* END 3GPP2 N.S0023-0 */ case 98: /*Roamer Database Verification Request*/ - offset = dissect_ansi_map_RoamerDatabaseVerificationRequest(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RoamerDatabaseVerificationRequest(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_roamerDatabaseVerificationRequest); break; /* N.S0029 */ case 99: /*Add Service*/ - offset = dissect_ansi_map_AddService(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AddService(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_addService); break; case 100: /*Drop Service*/ - offset = dissect_ansi_map_DropService(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_DropService(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_dropService); break; /*End N.S0029 */ default: @@ -3771,187 +3773,187 @@ static int dissect_returnData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv switch(OperationCode){ case 1: /*Handoff Measurement Request*/ - offset = dissect_ansi_map_HandoffMeasurementRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffMeasurementRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffMeasurementRequestRes); break; case 2: /*Facilities Directive*/ - offset = dissect_ansi_map_FacilitiesDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_FacilitiesDirectiveRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_facilitiesDirectiveRes); break; case 4: /*Handoff Back*/ - offset = dissect_ansi_map_HandoffBackRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffBackRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffBackRes); break; case 5: /*Facilities Release*/ - offset = dissect_ansi_map_FacilitiesReleaseRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_FacilitiesReleaseRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_facilitiesReleaseRes); break; case 6: /*Qualification Request*/ - offset = dissect_ansi_map_QualificationRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_QualificationRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_qualificationRequestRes); break; case 10: /*Reset Circuit*/ - offset = dissect_ansi_map_ResetCircuitRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ResetCircuitRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_resetCircuitRes); break; case 13: /*Registration Notification*/ - offset = dissect_ansi_map_RegistrationNotificationRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RegistrationNotificationRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_registrationNotificationRes); break; case 14: /*Registration Cancellation*/ - offset = dissect_ansi_map_RegistrationCancellationRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RegistrationCancellationRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_registrationCancellationRes); break; case 15: /*Location Request*/ - offset = dissect_ansi_map_LocationRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_LocationRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_locationRequestRes); break; case 16: /*Routing Request*/ - offset = dissect_ansi_map_RoutingRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RoutingRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_routingRequestRes); break; case 17: /*Feature Request*/ - offset = dissect_ansi_map_FeatureRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_FeatureRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_featureRequestRes); break; case 23: /*Transfer To Number Request*/ - offset = dissect_ansi_map_TransferToNumberRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TransferToNumberRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_transferToNumberRequestRes); break; case 25: /*Handoff To Third*/ - offset = dissect_ansi_map_HandoffToThirdRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffToThirdRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffToThirdRes); break; case 27: /*Authentication Directive*/ - offset = dissect_ansi_map_AuthenticationDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AuthenticationDirectiveRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_authenticationDirectiveRes); break; case 28: /*Authentication Request*/ - offset = dissect_ansi_map_AuthenticationRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AuthenticationRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_authenticationRequestRes); break; case 30: /*Authentication Failure Report*/ - offset = dissect_ansi_map_AuthenticationFailureReportRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AuthenticationFailureReportRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_authenticationFailureReportRes); break; case 31: /*Count Request*/ - offset = dissect_ansi_map_CountRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_CountRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_countRequestRes); break; case 32: /*Inter System Page*/ - offset = dissect_ansi_map_InterSystemPageRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_InterSystemPageRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_interSystemPageRes); break; case 33: /*Unsolicited Response*/ - offset = dissect_ansi_map_UnsolicitedResponseRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_UnsolicitedResponseRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_unsolicitedResponseRes); break; case 35: /*Handoff Measurement Request 2*/ - offset = dissect_ansi_map_HandoffMeasurementRequest2Res(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffMeasurementRequest2Res(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffMeasurementRequest2Res); break; case 36: /*Facilities Directive 2*/ - offset = dissect_ansi_map_FacilitiesDirective2Res(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_FacilitiesDirective2Res(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_facilitiesDirective2Res); break; case 37: /*Handoff Back 2*/ - offset = dissect_ansi_map_HandoffBack2Res(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffBack2Res(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffBack2Res); break; case 38: /*Handoff To Third 2*/ - offset = dissect_ansi_map_HandoffToThird2Res(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_HandoffToThird2Res(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_handoffToThird2Res); break; case 39: /*Authentication Directive Forward*/ - offset = dissect_ansi_map_AuthenticationDirectiveForwardRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AuthenticationDirectiveForwardRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_authenticationDirectiveForwardRes); break; case 40: /*Authentication Status Report*/ - offset = dissect_ansi_map_AuthenticationStatusReportRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AuthenticationStatusReportRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_authenticationStatusReportRes); break; /*Reserved 41*/ case 43: /*Information Forward*/ - offset = dissect_ansi_map_InformationForwardRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_InformationForwardRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_informationForwardRes); break; case 45: /*Inter System Page 2*/ - offset = dissect_ansi_map_InterSystemPage2Res(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_InterSystemPage2Res(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_interSystemPage2Res); break; case 46: /*Inter System Setup*/ - offset = dissect_ansi_map_InterSystemSetupRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_InterSystemSetupRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_interSystemSetupRes); break; case 47: /*OriginationRequest*/ - offset = dissect_ansi_map_OriginationRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_OriginationRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_originationRequestRes); break; case 48: /*Random Variable Request*/ - offset = dissect_ansi_map_RandomVariableRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RandomVariableRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_randomVariableRequestRes); break; case 50: /*Remote User Interaction Directive*/ - offset = dissect_ansi_map_RemoteUserInteractionDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RemoteUserInteractionDirectiveRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_remoteUserInteractionDirectiveRes); break; case 51: /*SMS Delivery Backward*/ - offset = dissect_ansi_map_SMSDeliveryBackwardRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SMSDeliveryBackwardRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sMSDeliveryBackwardRes); break; case 52: /*SMS Delivery Forward*/ - offset = dissect_ansi_map_SMSDeliveryForwardRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SMSDeliveryForwardRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sMSDeliveryForwardRes); break; case 53: /*SMS Delivery Point to Point*/ - offset = dissect_ansi_map_SMSDeliveryPointToPointRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SMSDeliveryPointToPointRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sMSDeliveryPointToPointRes); break; case 54: /*SMS Notification*/ - offset = dissect_ansi_map_SMSNotificationRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SMSNotificationRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sMSNotificationRes); break; case 55: /*SMS Request*/ - offset = dissect_ansi_map_SMSRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SMSRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sMSRequestRes); break; /* N.S0008-0 v 1.0 */ case 56: /*OTASP Request 6.4.2.CC*/ - offset = dissect_ansi_map_OTASPRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_OTASPRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_oTASPRequestRes); break; case 58: /*Change Facilities*/ - offset = dissect_ansi_map_ChangeFacilitiesRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ChangeFacilitiesRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_changeFacilitiesRes); break; case 59: /*Change Service*/ - offset = dissect_ansi_map_ChangeServiceRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ChangeServiceRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_changeServiceRes); break; case 60: /*Parameter Request*/ - offset = dissect_ansi_map_ParameterRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ParameterRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_parameterRequestRes); break; case 61: /*TMSI Directive*/ - offset = dissect_ansi_map_TMSIDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TMSIDirectiveRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_tMSIDirectiveRes); break; case 63: /*Service Request*/ - offset = dissect_ansi_map_ServiceRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ServiceRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_serviceRequestRes); break; /* N.S0013 */ case 64: /*Analyzed Information Request*/ - offset = dissect_ansi_map_AnalyzedInformationRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AnalyzedInformationRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_analyzedInformationRes); break; case 68: /*Facility Selected and Available*/ - offset = dissect_ansi_map_FacilitySelectedAndAvailableRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_FacilitySelectedAndAvailableRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_facilitySelectedAndAvailableRes); break; case 70: /*Modify*/ - offset = dissect_ansi_map_ModifyRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ModifyRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_modifyRes); break; case 72: /*Search*/ - offset = dissect_ansi_map_SearchRes(TRUE, tvb, offset, pinfo, tree, -1);; + offset = dissect_ansi_map_SearchRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_searchRes);; break; case 73: /*Seize Resource*/ - offset = dissect_ansi_map_SeizeResourceRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SeizeResourceRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_seizeResourceRes); break; case 74: /*SRF Directive*/ - offset = dissect_ansi_map_SRFDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_SRFDirectiveRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_sRFDirectiveRes); break; case 75: /*T Busy*/ - offset = dissect_ansi_map_TBusyRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TBusyRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_tBusyRes); break; case 76: /*T NoAnswer*/ - offset = dissect_ansi_map_TNoAnswerRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TNoAnswerRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_tNoAnswerRes); break; case 81: /*Call Control Directive*/ - offset = dissect_ansi_map_CallControlDirectiveRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_CallControlDirectiveRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_callControlDirectiveRes); break; case 83: /*O Disconnect*/ - offset = dissect_ansi_map_ODisconnectRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ODisconnectRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_oDisconnectRes); break; case 86: /*T Disconnect*/ - offset = dissect_ansi_map_TDisconnectRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_TDisconnectRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_tDisconnectRes); break; case 88: /*O CalledPartyBusy*/ - offset = dissect_ansi_map_OCalledPartyBusyRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_OCalledPartyBusyRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_oCalledPartyBusyRes); break; case 89: /*O NoAnswer*/ - offset = dissect_ansi_map_ONoAnswerRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_ONoAnswerRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_oNoAnswerRes); break; case 90: /*Position Request*/ - offset = dissect_ansi_map_PositionRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_PositionRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_positionRequestRes); break; case 91: /*Position Request Forward*/ - offset = dissect_ansi_map_PositionRequestForwardRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_PositionRequestForwardRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_positionRequestForwardRes); break; case 98: /*Roamer Database Verification Request*/ - offset = dissect_ansi_map_RoamerDatabaseVerificationRequestRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_RoamerDatabaseVerificationRequestRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_roamerDatabaseVerificationRequestRes); break; case 99: /*Add Service*/ - offset = dissect_ansi_map_AddServiceRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_AddServiceRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_addServiceRes); break; case 100: /*Drop Service*/ - offset = dissect_ansi_map_DropServiceRes(TRUE, tvb, offset, pinfo, tree, -1); + offset = dissect_ansi_map_DropServiceRes(TRUE, tvb, offset, pinfo, tree, hf_ansi_map_dropServiceRes); break; /*End N.S0029 */ @@ -4804,6 +4806,8 @@ void proto_register_ansi_map(void) { &ett_mintype, &ett_digitstype, &ett_billingid, + &ett_sms_bearer_data, + &ett_sms_teleserviceIdentifier, &ett_extendedmscid, &ett_extendedsystemmytypecode, &ett_handoffstate, -- cgit v1.2.3