Commit f548e21e authored by canterburym's avatar canterburym
Browse files

Merge branch 'master' into 'updating_asn_testing'

# Conflicts:
#   102232-1/LI-PS-PDU.asn
parent 8ed38ba8
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 ("-----------------------------")
......
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
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
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.