diff options
author | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2007-12-05 20:16:02 +0000 |
---|---|---|
committer | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2007-12-05 20:16:02 +0000 |
commit | bd3ac9d6c81eb05cb3e29f980812ddc4eaba848a (patch) | |
tree | b7e70cb7c1baeb6e9f0042b56d34bc2f52475cf4 /asn1 | |
parent | 8ef3ef69a93f3e5c8a682b0151fe27e4516253bd (diff) |
Insert asn1 code for SendRoutingInfov2 and update template
Partly fixes http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2064 GSM_MAP decodes SendRoutingInfov2 incorrectly
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@23774 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'asn1')
-rw-r--r-- | asn1/gsmmap/GSMMAP.asn | 24 | ||||
-rw-r--r-- | asn1/gsmmap/packet-gsmmap-template.c | 16 |
2 files changed, 34 insertions, 6 deletions
diff --git a/asn1/gsmmap/GSMMAP.asn b/asn1/gsmmap/GSMMAP.asn index 8044fec213..d20c794b3c 100644 --- a/asn1/gsmmap/GSMMAP.asn +++ b/asn1/gsmmap/GSMMAP.asn @@ -35,6 +35,13 @@ FROM MAP-CommonDataTypes { FROM MAP-ExtensionDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version11 (11)} + + CUG-CheckInfo, + NumberOfForwarding, + RoutingInfo +FROM MAP-CH-DataTypes { + itu-t identified-organization (4) etsi (0) mobileDomain (0) + gsm-Network (1) modules (3) map-CH-DataTypes (13) version11 (11)} ; -- ROS def's @@ -584,7 +591,22 @@ accessTypeNotAllowed-id OBJECT IDENTIFIER ::= --proprietary-extensions (1) --accessTypeNotAllowed (2) - +SendRoutingInfoArgV2 ::= SEQUENCE { + msisdn [0] ISDN-AddressString, + cug-CheckInfo [1] CUG-CheckInfo OPTIONAL, +-- cug-CheckInfo must be absent in version 1 + numberOfForwarding [2] NumberOfForwarding OPTIONAL, + networkSignalInfo [10] ExternalSignalInfo OPTIONAL, + ... + } + +SendRoutingInfoResV2 ::= SEQUENCE { + imsi IMSI, + routingInfo RoutingInfo, + cug-CheckInfo CUG-CheckInfo OPTIONAL, +-- cug-CheckInfo must be absent in version 1 + ... + } END diff --git a/asn1/gsmmap/packet-gsmmap-template.c b/asn1/gsmmap/packet-gsmmap-template.c index d14624b429..28215223c4 100644 --- a/asn1/gsmmap/packet-gsmmap-template.c +++ b/asn1/gsmmap/packet-gsmmap-template.c @@ -703,7 +703,7 @@ static int dissect_mc_message(tvbuff_t *tvb, } } else if (octet == 0x30) { if (sequence != NULL) { - offset= (sequence) (implicit_seq, tvb, offset, actx, tree, hf_index_seq); + offset= (sequence) (implicit_seq, tvb, 0, actx, tree, hf_index_seq); } else { cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown or not implemented sequence"); proto_item_set_expert_flags(cause, PI_UNDECODED, PI_ERROR); @@ -789,7 +789,11 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Arg(FALSE, tvb, offset, actx, tree, -1); break; case 22: /*sendRoutingInfo*/ - offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1); + if (application_context_version == 3){ + offset=dissect_gsm_map_ch_SendRoutingInfoArg(FALSE, tvb, offset, actx, tree, -1); + }else{ + offset=dissect_gsm_old_SendRoutingInfoArgV2(FALSE, tvb, offset, actx, tree, -1); + } break; case 23: /*updateGprsLocation*/ offset=dissect_gsm_map_ms_UpdateGprsLocationArg(FALSE, tvb, offset, actx, tree, -1); @@ -1129,7 +1133,7 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, case 22: /*sendRoutingInfo*/ offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi, - FALSE, NULL, -1, + FALSE, dissect_gsm_old_SendRoutingInfoResV2, -1, TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1); break; case 23: /*updateGprsLocation*/ @@ -1538,8 +1542,10 @@ dissect_gsm_map_GSMMAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, p_private_tcap=actx->pinfo->private_data; if (p_private_tcap->acv==TRUE ){ version_ptr = strrchr(p_private_tcap->oid,'.'); - if (version_ptr) - application_context_version = atoi(version_ptr+1); + if (version_ptr){ + application_context_version = atoi(version_ptr+1); + } + g_warning("AppCtx %u",application_context_version); } } |