aboutsummaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2007-01-13 16:08:30 +0000
committerAnders Broman <anders.broman@ericsson.com>2007-01-13 16:08:30 +0000
commit2ddd0fdf0a0353d1f44fbe4fdf8444570bf2a88c (patch)
tree353e923b5157ecadb1fb2746a08fab76797beefe /asn1
parent6fd190ecec3c8f14594f8468ef8c5a3638ef7287 (diff)
Handle zero length invokes and some asn1 fixes.
svn path=/trunk/; revision=20418
Diffstat (limited to 'asn1')
-rw-r--r--asn1/ansi_map/ansi_map.asn14
-rw-r--r--asn1/ansi_map/ansi_map.cnf40
2 files changed, 42 insertions, 12 deletions
diff --git a/asn1/ansi_map/ansi_map.asn b/asn1/ansi_map/ansi_map.asn
index 5a98e4117c..caa9f4fbd0 100644
--- a/asn1/ansi_map/ansi_map.asn
+++ b/asn1/ansi_map/ansi_map.asn
@@ -1677,7 +1677,7 @@ LocationRequest ::= [PRIVATE 18] SET {
-- O 6.5.2.i h
transactionCapability [123] IMPLICIT TransactionCapability OPTIONAL,
-- O 6.5.2.160 e
- triggerType [279] IMPLICIT TriggerType,
+ triggerType [279] IMPLICIT TriggerType OPTIONAL,
-- O 6.5.2.dh f
winCapability [280] IMPLICIT WINCapability OPTIONAL,
-- O 6.5.2.di
@@ -2510,7 +2510,9 @@ SMSDeliveryPointToPoint ::= [PRIVATE 18] SET {
-- mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
-- O 6.5.2.81 a
-- Exchanged by MSID
- msid MSID OPTIONAL,
+-- msid MSID OPTIONAL,
+ imsi [242] IMPLICIT IMSI OPTIONAL,
+ mobileIdentificationNumber [8] IMPLICIT MobileIdentificationNumber OPTIONAL,
--6.5.2.bv
newlyAssignedMIN [187] IMPLICIT NewlyAssignedMIN OPTIONAL,
-- O 6.5.2.rB j
@@ -2552,7 +2554,7 @@ SMSDeliveryPointToPointRes ::= [PRIVATE 18] SET {
-- O 6.5.2.63 d
mobileStationMSID MobileStationMSID OPTIONAL,
-- O 6.5.2.oC e
- mscid [21] IMPLICIT MSCID,
+ mscid [21] IMPLICIT MSCID OPTIONAL,
-- O 6.5.2.82 f
sms-BearerData [105] IMPLICIT SMS-BearerData OPTIONAL,
-- O 6.5.2.124 a
@@ -2634,7 +2636,7 @@ TransferToNumberRequest ::= [PRIVATE 18] SET {
-- (MSC) M 6.5.2.147
acgencountered [340] IMPLICIT ACGEncountered OPTIONAL,
-- O 6.5.2.fv h
- billingID [1] IMPLICIT BillingID,
+ billingID [1] IMPLICIT BillingID OPTIONAL,
-- (Originating) O 6.5.2.16 a
callingPartyName [243] IMPLICIT CallingPartyName OPTIONAL,
-- O 6.5.2.bw r, u, v
@@ -5382,8 +5384,8 @@ SMS-OriginationRestrictions ::= OCTET STRING
-- N.S0005-0 v 1.0
-- 1 0 0 1 1 1 1 1 (0x9f)
-- 0 1 1 1 0 1 0 0 (0x74)(116)
--- SMS-TeleserviceIdentifier ::= OCTET STRING
-SMS-TeleserviceIdentifier ::= INTEGER
+SMS-TeleserviceIdentifier ::= OCTET STRING
+-- SMS-TeleserviceIdentifier ::= INTEGER
-- 6.5.2.138
-- 1 0 0 1 1 1 1 1 (0x9f)
diff --git a/asn1/ansi_map/ansi_map.cnf b/asn1/ansi_map/ansi_map.cnf
index 0a51315348..c8b0c77bd5 100644
--- a/asn1/ansi_map/ansi_map.cnf
+++ b/asn1/ansi_map/ansi_map.cnf
@@ -20,6 +20,29 @@ OriginationRequestRes
#.FIELD_RENAME
#.FN_BODY InvokeParameters
+ gint *opcode;
+ struct tcap_private_t * p_private_tcap;
+
+ /* 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;
+ if (!pinfo->fd->flags.visited)
+ /* 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)"));
+ }
+ /* No Data */
+ if(tvb_length_remaining(tvb, offset)<=0){
+ return offset;
+
+ }
proto_tree_add_item(tree, hf_ansi_map_invokeParameters, tvb, offset,-1,FALSE);
offset = dissect_invokeData(pinfo, tree, tvb, offset);
@@ -301,14 +324,19 @@ OriginationRequestRes
# 6.5.2.137
# N.S0005-0 v 1.0
-#.FN_BODY SMS-TeleserviceIdentifier VAL_PTR = &ansi_map_sms_tele_id
+#.FN_BODY SMS-TeleserviceIdentifier VAL_PTR = &parameter_tvb
+
+tvbuff_t *parameter_tvb = NULL;
static gint32 ansi_map_sms_tele_id = -1;
%(DEFAULT_BODY)s
- 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;
+ if (parameter_tvb){
+ 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;
+ }
}
# 6.5.2.146 SystemCapabilities */
@@ -418,7 +446,7 @@ SMS-AccessDeniedReason TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(ansi
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)
-SMS-TeleserviceIdentifier TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_TeleserviceIdentifier_vals)
+#SMS-TeleserviceIdentifier TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(ansi_map_SMS_TeleserviceIdentifier_vals)
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)