summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asn1/gsm_map/GSMMAP.asn4
-rw-r--r--asn1/gsm_map/packet-gsm_map-template.c2
-rw-r--r--epan/dissectors/packet-gsm_map.c8
3 files changed, 10 insertions, 4 deletions
diff --git a/asn1/gsm_map/GSMMAP.asn b/asn1/gsm_map/GSMMAP.asn
index d1334d4406..a47c237467 100644
--- a/asn1/gsm_map/GSMMAP.asn
+++ b/asn1/gsm_map/GSMMAP.asn
@@ -665,10 +665,10 @@ RoutingInfoForSM-ArgV1 ::= SEQUENCE {
serviceCentreAddress [2] AddressString,
-- WS specific change to be backwards compatible with phase 1 (See Bug 9704)
cug-Interlock [3] CUG-Interlock OPTIONAL,
- --teleserviceCode [5] TeleserviceCode OPTIONAL,
+ teleserviceCode [5] TeleserviceCode OPTIONAL,
-- END Ws specific change
--extensionContainer [6] ExtensionContainer OPTIONAL,
- --... ,
+ ... ,
--gprsSupportIndicator [7] NULL OPTIONAL,
-- gprsSupportIndicator is set only if the SMS-GMSC supports
-- receiving of two numbers from the HLR
diff --git a/asn1/gsm_map/packet-gsm_map-template.c b/asn1/gsm_map/packet-gsm_map-template.c
index 763cf788f5..9c75f01d8e 100644
--- a/asn1/gsm_map/packet-gsm_map-template.c
+++ b/asn1/gsm_map/packet-gsm_map-template.c
@@ -1148,7 +1148,7 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
}
break;
case 45: /*sendRoutingInfoForSM*/
- if (application_context_version == 1) {
+ if (application_context_version < 2) {
offset=dissect_gsm_old_RoutingInfoForSM_ArgV1(FALSE, tvb, offset, actx, tree, -1);
} else {
offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
diff --git a/epan/dissectors/packet-gsm_map.c b/epan/dissectors/packet-gsm_map.c
index 4e525c6bc3..be7f569144 100644
--- a/epan/dissectors/packet-gsm_map.c
+++ b/epan/dissectors/packet-gsm_map.c
@@ -1677,6 +1677,7 @@ static int hf_gsm_old_msisdn_02 = -1; /* AddressString */
static int hf_gsm_old_sm_RP_PRI = -1; /* BOOLEAN */
static int hf_gsm_old_serviceCentreAddress = -1; /* AddressString */
static int hf_gsm_old_cug_Interlock = -1; /* CUG_Interlock */
+static int hf_gsm_old_teleserviceCode = -1; /* TeleserviceCode */
static int hf_gsm_old_subscriberId = -1; /* SubscriberIdentity */
static int hf_gsm_old_requestParameterList = -1; /* RequestParameterList */
static int hf_gsm_old_RequestParameterList_item = -1; /* RequestParameter */
@@ -17888,6 +17889,7 @@ static const ber_sequence_t gsm_old_RoutingInfoForSM_ArgV1_sequence[] = {
{ &hf_gsm_old_sm_RP_PRI , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_old_BOOLEAN },
{ &hf_gsm_old_serviceCentreAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_AddressString },
{ &hf_gsm_old_cug_Interlock, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock },
+ { &hf_gsm_old_teleserviceCode, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_TeleserviceCode },
{ &hf_gsm_old_imsi , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
{ NULL, 0, 0, 0, NULL }
};
@@ -21159,7 +21161,7 @@ static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_
}
break;
case 45: /*sendRoutingInfoForSM*/
- if (application_context_version == 1) {
+ if (application_context_version < 2) {
offset=dissect_gsm_old_RoutingInfoForSM_ArgV1(FALSE, tvb, offset, actx, tree, -1);
} else {
offset=dissect_gsm_map_sm_RoutingInfoForSM_Arg(FALSE, tvb, offset, actx, tree, -1);
@@ -29002,6 +29004,10 @@ void proto_register_gsm_map(void) {
{ "cug-Interlock", "gsm_old.cug_Interlock",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_gsm_old_teleserviceCode,
+ { "teleserviceCode", "gsm_old.teleserviceCode",
+ FT_UINT8, BASE_DEC, VALS(Teleservice_vals), 0,
+ NULL, HFILL }},
{ &hf_gsm_old_subscriberId,
{ "subscriberId", "gsm_old.subscriberId",
FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberIdentity_vals), 0,