1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# HI2Operations.cnf
# HI2Operations conformation file
#.MODULE
EpsHI2Operations EpsHI2
UmtsHI2Operations UmtsHI2
HI3CCLinkData hi3cclinkdata
#.MODULE_IMPORT
#.EXPORTS
#.REGISTER
#.PDU
IRIsContent
UUS1-Content
#.NO_EMIT
#.OMIT_ASSIGNMENT
# Get rid of unused code warnings
CallContentLinkCharacteristics
CCLink-State
Intercepted-Call-State
GPRSCorrelationNumber
GPRSEvent
TetraLocation
#.FIELD_RENAME
GSMLocation/geoCoordinates/latitude geoCoordinates_latitude
GSMLocation/geoCoordinates/longitude geoCoordinates_longitude
#.FN_HDR UUS1-Content
/* Heuristic test to see if it's our content */
int8_t tmp_class;
bool tmp_pc;
int32_t tmp_tag;
int tmp_offset;
unsigned length = tvb_captured_length(tvb);
uint32_t tmp_length;
bool tmp_ind;
/* Check for min length */
if (length < 6){
return 0;
}
/* We start with UUS1-Content ::= SEQUENCE */
tmp_offset = get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
if(tmp_class != BER_CLASS_UNI){
return 0;
}
if(tmp_pc != 1){
return 0;
}
if(tmp_tag != BER_UNI_TAG_SEQUENCE){
return 0;
}
/* Get length just to move offset forward */
tmp_offset = get_ber_length(tvb, tmp_offset, &tmp_length, &tmp_ind);
/* Next 2 mandatorry elements
* lawfullInterceptionIdentifier [1] LawfulInterceptionIdentifier,
* communicationIdentifier [2] CommunicationIdentifier,
*/
get_ber_identifier(tvb, tmp_offset, &tmp_class, &tmp_pc, &tmp_tag);
if(tmp_class != BER_CLASS_CON){
return 0;
}
if(tmp_pc != 0){
return 0;
}
if(tmp_tag != 1){
return 0;
}
#.FN_BODY Network-Element-Identifier/e164-Format VAL_PTR = ¶meter_tvb
tvbuff_t *parameter_tvb=NULL;
%(DEFAULT_BODY)s
if (!parameter_tvb)
return offset;
dissect_isup_calling_party_number_parameter(parameter_tvb, actx->pinfo, tree, NULL);
#.FN_BODY UUS1-Content/bearer-capability VAL_PTR =¶meter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
if (!parameter_tvb)
return offset;
dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb,0), tree);
#.FIELD_ATTR
GSMLocation/geoCoordinates/latitude ABBREV=geoCoordinates.latitude
GSMLocation/geoCoordinates/longitude ABBREV=geoCoordinates.longitude
#.END
|