Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
LI - Lawful Interception
Trial
Commits
f548e21e
Commit
f548e21e
authored
Sep 28, 2020
by
canterburym
Browse files
Merge branch 'master' into 'updating_asn_testing'
# Conflicts: # 102232-1/LI-PS-PDU.asn
parent
8ed38ba8
Changes
25
Hide whitespace changes
Inline
Side-by-side
testing/check_asn1.py
View file @
f548e21e
import
logging
from
asn1tools
import
parse_files
,
compile_dict
,
ParseError
,
CompileError
from
glob
import
glob
from
pathlib
import
Path
from
pprint
import
pprint
def
parseASN1File
(
asnFile
):
try
:
parse_files
(
asnFile
)
except
ParseError
as
ex
:
return
[
ex
]
return
[]
def
parseASN1Files
(
fileList
):
if
len
(
fileList
)
==
0
:
logging
.
warning
(
"No files specified"
)
return
{}
errors
=
{}
logging
.
info
(
"Parsing files..."
)
for
f
in
fileList
:
ex
=
parseASN1File
(
f
)
if
ex
:
logging
.
info
(
f
"
{
f
}
: Failed -
{
ex
!r}
"
)
else
:
logging
.
info
(
f
"
{
f
}
: OK"
)
errors
[
f
]
=
ex
return
errors
def
compileASN1Files
(
fileList
):
logging
.
info
(
"Compiling files..."
)
errors
=
[]
try
:
d
=
parse_files
(
fileList
)
for
modulename
,
module
in
d
.
items
():
# Weird fix because the compiler doesn't like RELATIVE-OID as a type
# Not sure if the on-the-wire encoding would be affected or not
# but for most checking purposes this doesn't matter
module
[
'types'
][
"RELATIVE-OID"
]
=
{
'type'
:
'OBJECT IDENTIFIER'
}
c
=
compile_dict
(
d
)
except
CompileError
as
ex
:
logging
.
info
(
f
"Compiler error:
{
ex
}
"
)
errors
.
append
(
ex
)
except
ParseError
as
ex
:
logging
.
info
(
f
"Parse error:
{
ex
}
"
)
errors
.
append
(
ex
)
logging
.
info
(
"Compiled OK"
)
return
errors
def
validateASN1Files
(
fileList
):
parseErrors
=
parseASN1Files
(
fileList
)
# if len(parseErrors > 0):
# logging.info ("Abandonding compile due to parse errors")
# compileErrors = compileASN1Files(fileList)
# leave this for now - TBD
compileErrors
=
[]
return
parseErrors
,
compileErrors
def
validateAllASN1FilesInPath
(
path
):
p
=
Path
(
path
)
fileGlob
=
[
str
(
f
)
for
f
in
p
.
rglob
(
'*.asn'
)]
fileGlob
+=
[
str
(
f
)
for
f
in
p
.
rglob
(
'*.asn1'
)]
return
validateASN1Files
(
fileGlob
)
from
compile_asn
import
*
if
__name__
==
'__main__'
:
parseErrors
,
compileErrors
=
validateAllASN1FilesInPath
(
"./"
)
parseErrors
,
compileErrors
,
parser
=
validateAllASN1FilesInPath
(
"./"
)
parseErrorCount
=
0
print
(
"ASN.1 Parser checks:"
)
print
(
"-----------------------------"
)
...
...
testing/compile_asn.py
0 → 100644
View file @
f548e21e
import
logging
import
copy
from
asn1tools
import
parse_files
,
compile_dict
,
ParseError
,
CompileError
from
glob
import
glob
from
pathlib
import
Path
from
pprint
import
pprint
def
parseASN1File
(
asnFile
):
try
:
parse_files
(
asnFile
)
except
ParseError
as
ex
:
return
[
ex
]
return
[]
def
parseASN1Files
(
fileList
):
if
len
(
fileList
)
==
0
:
logging
.
warning
(
"No files specified"
)
return
{}
errors
=
{}
logging
.
info
(
"Parsing files..."
)
for
f
in
fileList
:
ex
=
parseASN1File
(
f
)
if
ex
:
logging
.
info
(
f
"
{
f
}
: Failed -
{
ex
!r}
"
)
else
:
logging
.
info
(
f
"
{
f
}
: OK"
)
errors
[
f
]
=
ex
return
errors
def
fixDottedReference
(
dict
,
importingModule
,
importingType
,
importingMember
,
importedModule
,
importedType
):
newName
=
importedModule
+
"_"
+
importedType
dict
[
importedModule
][
'types'
][
newName
]
=
copy
.
deepcopy
(
dict
[
importedModule
][
'types'
][
importedType
])
dict
[
importingModule
][
'imports'
][
importedModule
].
append
(
newName
)
member
=
[
x
for
x
in
dict
[
importingModule
][
'types'
][
importingType
][
'members'
]
if
x
is
not
None
and
x
[
'name'
]
==
importingMember
][
0
]
member
[
'type'
]
=
newName
def
compileASN1Files
(
fileList
):
logging
.
info
(
"Compiling files..."
)
errors
=
[]
imports
=
{}
#p = re.compile(r"]\s+\S+\.\S+")
#for f in fileList:
# with open(f) as fh:
# s = fh.read()
# for match in p.findall(s):
# print (f"In {f}: {match}")
#exit()
try
:
dr
=
parse_files
(
fileList
)
for
modulename
,
module
in
dr
.
items
():
# Weird fix because the compiler doesn't like RELATIVE-OID as a type
# Not sure if the on-the-wire encoding would be affected or not
# but for most checking purposes this doesn't matter
module
[
'types'
][
"RELATIVE-OID"
]
=
{
'type'
:
'OBJECT IDENTIFIER'
}
for
k
,
v
in
module
[
'imports'
].
items
():
if
not
k
in
imports
:
imports
[
k
]
=
[]
imports
[
k
].
append
({
"in"
:
modulename
,
"types"
:
v
})
for
k
,
v
in
imports
.
items
():
if
not
k
in
dr
.
keys
():
importers
=
[
i
[
'in'
]
for
i
in
v
]
errors
.
append
(
f
"Unsatisfied import [
{
k
}
] for
{
importers
}
"
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'Location'
,
'umtsHI2Location'
,
'UmtsHI2Operations'
,
'Location'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'Location'
,
'epsLocation'
,
'EpsHI2Operations'
,
'Location'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'Location'
,
'eTSI671HI2Location'
,
'HI2Operations'
,
'Location'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'UMTSIRI'
,
'iRI-Parameters'
,
'UmtsHI2Operations'
,
'IRI-Parameters'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'UMTSIRI'
,
'iRI-CS-Parameters'
,
'UmtsCS-HI2Operations'
,
'IRI-Parameters'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'ETSI671IRI'
,
'iRI-Parameters'
,
'HI2Operations'
,
'IRI-Parameters'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'EPSIRI'
,
'iRI-EPS-Parameters'
,
'EpsHI2Operations'
,
'IRI-Parameters'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'ConfIRI'
,
'iRI-Conf-Parameters'
,
'CONFHI2Operations'
,
'IRI-Parameters'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'ProSeIRI'
,
'iRI-ProSe-Parameters'
,
'ProSeHI2Operations'
,
'IRI-Parameters'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'GcseIRI'
,
'iRI-Gcse-Parameters'
,
'GCSEHI2Operations'
,
'IRI-Parameters'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'CCContents'
,
'tTRAFFIC-1'
,
'TS101909201'
,
'TTRAFFIC'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'CCContents'
,
'cTTRAFFIC-1'
,
'TS101909201'
,
'CTTRAFFIC'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'CCContents'
,
'tTRAFFIC-2'
,
'TS101909202'
,
'TTRAFFIC'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'CCContents'
,
'cTTRAFFIC-2'
,
'TS101909202'
,
'CTTRAFFIC'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'CCContents'
,
'cCIPPacketHeader'
,
'CDMA2000CCModule'
,
'CCIPPacketHeader'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'CCContents'
,
'uMTSCC-CC-PDU'
,
'Umts-HI3-PS'
,
'CC-PDU'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'CCContents'
,
'ePSCC-CC-PDU'
,
'Eps-HI3-PS'
,
'CC-PDU'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'CCContents'
,
'confCC-CC-PDU'
,
'CONF-HI3-IMS'
,
'Conf-CC-PDU'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'CCContents'
,
'voipCC-CC-PDU'
,
'VoIP-HI3-IMS'
,
'Voip-CC-PDU'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'CCContents'
,
'gcseCC-CC-PDU'
,
'GCSE-HI3'
,
'Gcse-CC-PDU'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'CCContents'
,
'cSvoice-CC-PDU'
,
'CSvoice-HI3-IP'
,
'CSvoice-CC-PDU'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'IRIContents'
,
'tARGETACTIVITYMONITOR-1'
,
'TS101909201'
,
'TARGETACTIVITYMONITOR-1'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'IRIContents'
,
'tARGETACTIVITYMONITOR-2'
,
'TS101909202'
,
'TARGETACTIVITYMONITOR'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'IRIContents'
,
'lAESProtocol'
,
'Laesp-j-std-025-b'
,
'LAESProtocol'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'IRIContents'
,
'cDMA2000LAESMessage'
,
'CDMA2000CIIModule'
,
'CDMA2000LAESMessage'
)
fixDottedReference
(
dr
,
'LI-PS-PDU'
,
'HI4Payload'
,
'threeGPP-LI-Notification'
,
'TS33128Payloads'
,
'LINotificationPayload'
)
fixDottedReference
(
dr
,
'ILHIPDU'
,
'TimestampMapping'
,
'timeStampQualifier'
,
'LI-PS-PDU'
,
'TimeStampQualifier'
)
fixDottedReference
(
dr
,
'ILHIPDU'
,
'ILHITimestamp'
,
'qualifiedDateTime'
,
'Common-Parameters'
,
'QualifiedDateTime'
)
fixDottedReference
(
dr
,
'ILHIPDU'
,
'ILHITimestamp'
,
'qualifiedMicrosecondDateTime'
,
'Common-Parameters'
,
'QualifiedMicrosecondDateTime'
)
fixDottedReference
(
dr
,
'ILHIPDU'
,
'OriginalTimestamp'
,
'microSecondTimeStamp'
,
'LI-PS-PDU'
,
'MicroSecondTimeStamp'
)
fixDottedReference
(
dr
,
'ILHIPDU'
,
'LocationMapping'
,
'originalLocation'
,
'LI-PS-PDU'
,
'Location'
)
fixDottedReference
(
dr
,
'ILHIPDU'
,
'GeocodedLocationData'
,
'wGS84CoordinateDecimal'
,
'Common-Parameters'
,
'WGS84CoordinateDecimal'
)
fixDottedReference
(
dr
,
'ILHIPDU'
,
'GeocodedLocationData'
,
'wGS84CoordinateAngular'
,
'Common-Parameters'
,
'WGS84CoordinateAngular'
)
c
=
compile_dict
(
dr
)
except
CompileError
as
ex
:
logging
.
info
(
f
"Compiler error:
{
ex
}
"
)
errors
.
append
(
ex
)
except
ParseError
as
ex
:
logging
.
info
(
f
"Parse error:
{
ex
}
"
)
errors
.
append
(
ex
)
logging
.
info
(
"Compiled OK"
)
return
errors
,
c
def
validateASN1Files
(
fileList
):
parseErrors
=
parseASN1Files
(
fileList
)
if
len
(
parseErrors
)
>
0
:
logging
.
info
(
"Abandonding compile due to parse errors"
)
compileErrors
,
parser
=
compileASN1Files
(
fileList
)
return
parseErrors
,
compileErrors
,
parser
def
validateAllASN1FilesInPath
(
path
):
p
=
Path
(
path
)
fileGlob
=
[
str
(
f
)
for
f
in
p
.
rglob
(
'*.asn'
)]
fileGlob
+=
[
str
(
f
)
for
f
in
p
.
rglob
(
'*.asn1'
)]
return
validateASN1Files
(
fileGlob
)
\ No newline at end of file
testing/deps/101671/HI1NotificationOperations,ver7.asn
0 → 100644
View file @
f548e21e
HI1NotificationOperations
{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) hi1(0) notificationOperations(1) version7(7)}
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
IMPORTS
-- from clause�D.5
CommunicationIdentifier,
TimeStamp,
LawfulInterceptionIdentifier
FROM HI2Operations
{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) hi2(1) version10(10)};
-- =============================
-- Object Identifier Definitions
-- =============================
-- LawfulIntercept DomainId
lawfulInterceptDomainId OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2)}
-- hi1 Domain
hi1NotificationOperationsId OBJECT IDENTIFIER ::= {lawfulInterceptDomainId hi1(0) notificationOperations(1)}
hi1OperationId OBJECT IDENTIFIER ::= {hi1NotificationOperationsId version6(6)}
-- Class 2 operation. The timer shall be set to a value between 3s and 240s.
-- The timer default value is 60s.
-- NOTE: The value for this timer is to be set on the equipment waiting for the returned message;
-- its value shall be agreed between the NWO/AP/SvP and the LEA, depending on their equipment
-- properties.
HI1-Operation ::= CHOICE
{
liActivated [1] Notification,
liDeactivated [2] Notification,
liModified [3] Notification,
alarms-indicator [4] Alarm-Indicator,
...,
national-HI1-ASN1parameters [5] National-HI1-ASN1parameters
}
-- ==================
-- PARAMETERS FORMATS
-- ==================
Notification ::= SEQUENCE
{
domainID [0] OBJECT IDENTIFIER (hi1OperationId) OPTIONAL,
-- Once using FTP delivery mechanism
lawfulInterceptionIdentifier [1] LawfulInterceptionIdentifier,
-- This identifier is the LIID identity provided with the lawful authorization
-- for each target.
communicationIdentifier [2] CommunicationIdentifier OPTIONAL,
-- Only the NWO/PA/SvPIdentifier is provided (the one provided with the Lawful
-- authorization).
-- Called "callIdentifier" in V1.1.1 of ES 201 671
timeStamp [3] TimeStamp,
-- date and time of the report.
...,
national-HI1-ASN1parameters [5] National-HI1-ASN1parameters OPTIONAL,
target-Information [6] OCTET STRING (SIZE (1..256)) OPTIONAL
-- provides information about the number or the characteristic of the target
-- (e.g. E-mail address, E.164 number), ASCII format
}
Alarm-Indicator ::= SEQUENCE
{
domainID [0] OBJECT IDENTIFIER (hi1OperationId) OPTIONAL,
-- Once using FTP delivery mechanism
communicationIdentifier [1] CommunicationIdentifier OPTIONAL,
-- Only the NWO/PA/SvPIdentifier is provided (the one provided with the
-- Lawful authorization)
timeStamp [2] TimeStamp,
-- date and time of the report.
alarm-information [3] OCTET STRING (SIZE (1..256)),
-- Provides information about alarms (free format).
-- Until ASN.1 version 6 (document version v3.12.1) the octet string
-- was limited to a size of 25
...,
lawfulInterceptionIdentifier [4] LawfulInterceptionIdentifier OPTIONAL,
-- This identifier is the LIID identity provided with the lawful authorization
-- for each target in according to national law.
national-HI1-ASN1parameters [5] National-HI1-ASN1parameters OPTIONAL
}
National-HI1-ASN1parameters ::= SEQUENCE
{
domainID [0] OBJECT IDENTIFIER (hi1OperationId) OPTIONAL,
-- Once using FTP delivery mechanism.
countryCode [1] PrintableString (SIZE (2)),
-- Country Code according to ISO 3166-1 [67],
-- the country to which the parameters inserted after the extension marker apply.
...
-- In case a given country wants to use additional national parameters according to its law,
-- these national parameters should be defined using the ASN.1 syntax and added after the
-- extension marker (...).
-- It is recommended that "version parameter" and "vendor identification parameter" are
-- included in the national parameters definition. Vendor identifications can be
-- retrieved from IANA web site (see�annex�K). Besides, it is recommended to avoid
-- using tags from 240 to 255 in a formal type definition.
}
END -- end of HI1NotificationOperations
testing/deps/101671/HI2Operations,ver18.asn
0 → 100644
View file @
f548e21e
HI2Operations
{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2) hi2(1) version17(18)}
-- It is advised not to use version11(11) of this ASN.1 module since it contains a syntax error.
-- Version11(11) of HI2Operations is only defined in TS 101 671 v3.5.1 [81].
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
IMPORTS
-- from 3GPP TS 33.108 [61]
UmtsQos,
IMSevent,
LDIevent,
CorrelationValues
FROM UmtsHI2Operations
{itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulintercept(2) threeGPP(4) hi2(1) r11(11) version-0(0)}
-- from TS 101 909-20-01 [69]
TARGETACTIVITYMONITOR-1
FROM TS101909201
{itu-t(0) identified-organization(4) etsi(0) ts101909(1909) part20(20) subpart1(1) interceptVersion(0)}
-- from EN 301 040 [72]
TARGETACTIVITYMONITORind,
TARGETCOMMSMONITORind,
TTRAFFICind,
CTTRAFFICind
FROM EN301040
{itu-t(0) identified-organization(4) etsi(0) en301040 (1040) interceptVersion (0)};
-- =============================
-- Object Identifier Definitions
-- =============================
-- LawfulIntercept DomainId
lawfulInterceptDomainId OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) lawfulIntercept(2)}
-- Security Subdomains
hi2DomainId OBJECT IDENTIFIER ::= {lawfulInterceptDomainId hi2(1)}
hi2OperationId OBJECT IDENTIFIER ::= {hi2DomainId version18(18)}
-- Class 2 operation. The timer shall be set to a value between 3s and 240s.
-- The timer default value is 60s.
-- NOTE: The same note as for HI management operation applies.
IRIsContent ::= CHOICE
{
iRIContent IRIContent,
iRISequence IRISequence
}
IRISequence ::= SEQUENCE OF IRIContent
-- Aggregation of IRIContent is an optional feature.
-- It may be applied in cases when at a given point in time several IRI records are
-- available for delivery to the same LEA destination.
-- As a general rule, records created at any event shall be sent immediately and shall
-- not held in the DF or MF in order to apply aggregation.
-- When aggregation is not to be applied, IRIContent needs to be chosen.
IRIContent ::= CHOICE
{
iRI-Begin-record [1] IRI-Parameters,
-- At least one optional parameter must be included within the iRI-Begin-Record.
iRI-End-record [2] IRI-Parameters,
iRI-Continue-record [3] IRI-Parameters,
-- At least one optional parameter must be included within the iRI-Continue-Record.
iRI-Report-record [4] IRI-Parameters,
-- At least one optional parameter must be included within the iRI-Report-Record.
...
}
-- These values may be sent by the LEMF, when an operation or a parameter is misunderstood.
IRI-Parameters ::= SEQUENCE
{
domainID [0] OBJECT IDENTIFIER (hi2OperationId) OPTIONAL,
-- for the sending entity the inclusion of the Object Identifier is mandatory
iRIversion [23] ENUMERATED
{
version2(2),
...,
version3(3),
version4(4),
version5(5),
version6(6),
version7(7),
lastVersion(8)
} OPTIONAL,
-- Optional parameter "iRIversion" (tag 23) is redundant starting
-- from TS 101 671 v2.5.1 [81]
-- where to the object identifier "domainID" was introduced into IRI-Parameters.
-- In order to keep backward compatibility, even when the version of the "domainID"
-- parameter will be incremented it is recommended to always send to LEMF the same:
-- enumeration value "lastVersion(8)".
-- if not present, it means version 1 is handled
lawfulInterceptionIdentifier [1] LawfulInterceptionIdentifier,
-- This identifier is associated to the target.
communicationIdentifier [2] CommunicationIdentifier,
-- used to uniquely identify an intercepted call.
-- Called "callIdentifier" in v1.1.1 of ES 201 671 [i.5].
timeStamp [3] TimeStamp,
-- date and time of the event triggering the report.
intercepted-Call-Direct [4] ENUMERATED
{
not-Available(0),
originating-Target(1),
-- In case of GPRS, this indicates that the PDP context activation, modification
-- or deactivation is MS requested.
terminating-Target(2),
-- In case of GPRS, this indicates that the PDP context activation, modification
-- or deactivation is network initiated.
...
} OPTIONAL,
intercepted-Call-State [5] Intercepted-Call-State OPTIONAL,
ringingDuration [6] OCTET STRING (SIZE (3)) OPTIONAL,
-- Duration in seconds. BCD coded: HHMMSS
conversationDuration [7] OCTET STRING (SIZE (3)) OPTIONAL,
-- Duration in seconds. BCD coded: HHMMSS
locationOfTheTarget [8] Location OPTIONAL,
-- location of the target subscriber
partyInformation [9] SET SIZE (1..10) OF PartyInformation OPTIONAL,
-- This parameter provides the concerned party (Originating, Terminating or forwarded
-- party), the identity(ies) of the party and all the information provided by the party.
callContentLinkInformation [10] SEQUENCE
{
cCLink1Characteristics [1] CallContentLinkCharacteristics OPTIONAL,
-- Information concerning the Content of Communication Link Tx channel established
-- toward the LEMF (or the sum signal channel, in case of mono mode).
cCLink2Characteristics [2] CallContentLinkCharacteristics OPTIONAL,
-- Information concerning the Content of Communication Link Rx channel established
-- toward the LEMF.
...
} OPTIONAL,
release-Reason-Of-Intercepted-Call [11] OCTET STRING (SIZE (2)) OPTIONAL,
-- Release cause coded in ITU-T Q.850 [31] format.
-- This parameter indicates the reason why the intercepted call cannot be established or
-- why the intercepted call has been released after the active phase.
nature-Of-The-intercepted-call [12] ENUMERATED
{
-- Nature of the intercepted "call":
gSM-ISDN-PSTN-circuit-call(0),
-- the possible UUS content is sent through the HI2 or HI3 "data" interface
-- the possible call content call is established through the HI3 "circuit" interface
gSM-SMS-Message(1),
-- the SMS content is sent through the HI2 or HI3 "data" interface
uUS4-Messages(2),
-- the UUS content is sent through the HI2 or HI3 "data" interface
tETRA-circuit-call(3),
-- the possible call content call is established through the HI3 "circuit" interface
-- the possible data are sent through the HI3 "data" interface
teTRA-Packet-Data(4),
-- the data are sent through the HI3 "data" interface
gPRS-Packet-Data(5),
-- the data are sent through the HI3 "data" interface
...,
uMTS-circuit-call(6),
-- the possible call content call is established through the HI3 "circuit" interface
-- the possible data are sent through the HI3 "data" interface
lTE-SMS-Message(7),
-- indicator for SMS from LTE handset
-- the SMS content is sent through the HI2 or HI3 "data" interface
lTE-circuit-call(8)
-- indicator for CS call from LTE handset
} OPTIONAL,
serverCenterAddress [13] PartyInformation OPTIONAL,
-- e.g. in case of SMS message this parameter provides the address of the relevant
-- server within the calling (if server is originating) or called
-- (if server is terminating) party address parameters
sMS [14] SMS-report OPTIONAL,
-- this parameter provides the SMS content and associated information
cC-Link-Identifier [15] CC-Link-Identifier OPTIONAL,
-- Depending on a network option, this parameter may be used to identify a CC link
-- in case of multiparty calls.
national-Parameters [16] National-Parameters OPTIONAL,
gPRSCorrelationNumber [18] GPRSCorrelationNumber OPTIONAL,
gPRSevent [20] GPRSEvent OPTIONAL,
-- This information is used to provide particular action of the target
-- such as attach/detach
sgsnAddress [21] DataNodeAddress OPTIONAL,
gPRSOperationErrorCode [22] GPRSOperationErrorCode OPTIONAL,
...,
ggsnAddress [24] DataNodeAddress OPTIONAL,
qOS [25] UmtsQos OPTIONAL,
-- This parameter is duplicated from 3GPP TS 33.108 [61].
networkIdentifier [26] Network-Identifier OPTIONAL,
-- This parameter is duplicated from 3GPP TS 33.108 [61].
sMSOriginatingAddress [27] DataNodeAddress OPTIONAL,
-- This parameter is duplicated from 3GPP TS 33.108 [61].
sMSTerminatingAddress [28] DataNodeAddress OPTIONAL,
-- This parameter is duplicated from 3GPP TS 33.108 [61].
iMSevent [29] IMSevent OPTIONAL,
sIPMessage [30] OCTET STRING OPTIONAL,
-- This parameter is duplicated from 3GPP TS 33.108 [61].
servingSGSN-number [31] OCTET STRING (SIZE (1..20)) OPTIONAL,
-- This parameter is duplicated from 3GPP TS 33.108 [61].
servingSGSN-address [32] OCTET STRING (SIZE (5..17)) OPTIONAL,
-- Octets are coded according to 3GPP TS 23.003 [76]
-- This parameter is duplicated from 3GPP TS 33.108 [61].
tARGETACTIVITYMONITOR [33] TARGETACTIVITYMONITOR-1 OPTIONAL,
-- Parameter is used in TS 101 909-20-1 [69]
ldiEvent [34] LDIevent OPTIONAL,
-- The "Location Dependent Interception" parameter is duplicated from 3GPP TS 33.108 [61]
correlation [35] CorrelationValues OPTIONAL,
-- This parameter is duplicated from 3GPP TS 33.108 [61]
tARGETACTIVITYMONITORind [36] TARGETACTIVITYMONITORind OPTIONAL,
-- Parameter is used in EN 301 040 [72]
tARGETCOMMSMONITORind [37] TARGETCOMMSMONITORind OPTIONAL,
-- Parameter is used in EN 301 040 [72]
tTRAFFICind [38] TTRAFFICind OPTIONAL,
-- Parameter is used in EN 301 040 [72]
cTTRAFFICind [39] CTTRAFFICind OPTIONAL,
-- Parameter is used in EN 301 040 [72]
servingSystem [40] Network-Element-Identifier OPTIONAL,
-- Parameter identifies the visited network element
national-HI2-ASN1parameters [255] National-HI2-ASN1parameters OPTIONAL
}
-- ==================
-- PARAMETERS FORMATS
-- ==================
CommunicationIdentifier ::= SEQUENCE
{
communication-Identity-Number [0] OCTET STRING (SIZE (1..8)) OPTIONAL,
-- Temporary Identifier of an intercepted call to uniquely identify an intercepted call
-- within the node. This parameter is mandatory if there is associated
-- information sent over HI3interface (CClink, data,..) or when
-- CommunicationIdentifier is used for IRI other than IRI-Report-record
-- This parameter was called "call-Identity-Number" in V1.1.1 of ES 201 671 [i.5]
-- The individual digits of the communication-Identity-Number shall be represented in
-- ASCII format, e.g. "12345678" = 8 octets 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38.
-- For subaddress option only "0"..."9" shall be used.
network-Identifier [1] Network-Identifier,
...
}
-- NOTE: The same "CommunicationIdentifier" value is sent:
-- with the HI3 information for correlation purpose between the IRI and the information sent
-- on the HI3 interfaces (CCLink, data, ..) with each IRI associated to a same intercepted
-- call for correlation purpose between the different IRI.
Network-Identifier ::= SEQUENCE
{
operator-Identifier [0] OCTET STRING (SIZE (1..5)),
-- It is a notification of the NWO/AP/SvP in ASCII- characters.
-- For subaddress option only "0"..."9" shall be used.
-- The parameter is mandatory.
network-Element-Identifier [1] Network-Element-Identifier OPTIONAL,
...
}
Network-Element-Identifier ::= CHOICE
{
e164-Format [1] OCTET STRING (SIZE (1..25)),
-- E164 address of the node in international format. Coded in the same format as the
-- calling party number parameter of the ISUP (parameter part: EN 300 356 [5]).
x25-Format [2] OCTET STRING (SIZE (1..25)),
-- X25 address
iP-Format [3] OCTET STRING (SIZE (1..25)),
-- IP address
dNS-Format [4] OCTET STRING (SIZE (1..25)),
-- DNS address
...,
iP-Address [5] IPAddress
}
CC-Link-Identifier ::= OCTET STRING (SIZE (1..8))
-- Depending on a network option, this parameter may be used to identify a CClink
-- in case of multiparty calls.
-- The individual digits of the CC-Link-Identifier shall be represented in
-- ASCII format, e.g. "12345678" = 8 octets 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38.
-- For subaddress option only "0"..."9" shall be used.
TimeStamp ::= CHOICE
{
-- The minimum resolution required is one second.
-- "Resolution" is the smallest incremental change that can be measured for time and
-- is expressed with a definite number of decimal digits or bits.
localTime [0] LocalTimeStamp,
utcTime [1] UTCTime
}
LocalTimeStamp ::= SEQUENCE
{
generalizedTime [0] GeneralizedTime,
-- The minimum resolution required is one second.
-- "Resolution" is the smallest incremental change that can be measured for time and
-- is expressed with a definite number of decimal digits or bits.