aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-gsm_sim.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/epan/dissectors/packet-gsm_sim.c b/epan/dissectors/packet-gsm_sim.c
index 59f6a2377b..1a4d9a9e66 100644
--- a/epan/dissectors/packet-gsm_sim.c
+++ b/epan/dissectors/packet-gsm_sim.c
@@ -1101,6 +1101,8 @@ dissect_bertlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
subtvb = tvb_new_subset(tvb, pos, len, len);
switch (tag) {
case 0xD0: /* proactive command */
+ case 0xD6: /* event download */
+ case 0xD7: /* timer expiration */
call_dissector(sub_handle_cap, subtvb, pinfo, tree);
break;
}
@@ -1297,7 +1299,12 @@ dissect_gsm_apdu(guint8 ins, guint8 p1, guint8 p2, guint8 p3, tvbuff_t *tvb,
proto_tree_add_item(tree, hf_apdu_data, tvb, offset+DATA_OFFS, p3, ENC_NA);
}
break;
- /* FIXME: Missing SLEEP, ENVELOPE */
+ case 0xC2: /* ENVELOPE */
+ proto_tree_add_item(tree, hf_le, tvb, offset+P3_OFFS, 1, ENC_BIG_ENDIAN);
+ subtvb = tvb_new_subset(tvb, offset+DATA_OFFS, p3, p3);
+ dissect_bertlv(subtvb, pinfo, tree);
+ break;
+ /* FIXME: Missing SLEEP */
case 0x04: /* INVALIDATE */
case 0x44: /* REHABILITATE */
default: