blob: daa030d3b4f89eb490e40d8338f3e6fc0b5183f3 [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2016 Ericsson Telecom AB
//
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
///////////////////////////////////////////////////////////////////////////////
//
// File: DSS1_Types.ttcn
// Description: Layer 3 protocol for ISDN
//
// References: 13/155 17-CRT 288 01 Uen Rev. C
// DSS1 LAYER 3 PROTOCOL SPECIFICATION, MESSAGES AND
// INFORMATION ELEMENTS FOR BOTH BASIC CALL AND SUPPLEMENTARY
// SERVICE CONTROL, ISDN-E
// Rev: <RnXnn>
// Prodnr: CNL 113 435
// Updated: 2012-06-27
// Contact: http://ttcn.ericsson.se
//
module DSS1_Types
{
//=========================================================================
// Import Part
//=========================================================================
import from General_Types all;
//=========================================================================
// External functions
//=========================================================================
external function enc_PDU_DSS1(in PDU_DSS1 pdu) return octetstring
with { extension "prototype(convert) encode(RAW)" };
external function dec_PDU_DSS1(in octetstring stream) return PDU_DSS1
with { extension "prototype(convert) decode(RAW)" };
external function enc_PDU_DSS1_fast(in PDU_DSS1 pdu, out octetstring stream)
with { extension "prototype(fast) encode(RAW)" };
external function dec_PDU_DSS1_backtrack(in octetstring stream,out PDU_DSS1 pdu) return integer
with { extension "prototype(backtrack) decode(RAW)" };
type charstring DSS1_NumberDigits ("0".."9");
//=========================================================================
// Module Parameters
//=========================================================================
// Insert module parameters here if applicable!
// You can use the module_param skeleton!
//=========================================================================
// Data Types
//=========================================================================
//****************************************************************************
// -- Data type elements used generally
//****************************************************************************
type record DSS1_NumberTypeETC {
BIT4 numberingPlanIdentification,
// '0000'B Unknown
// '0001'B ISDN/telephony numbering plan (E.164)
// '0011'B Data numbering plan (X.121)
// '1000'B National standard numbering plan
// '1001'B Private numbering plan
BIT3 typeOfNumber,
// '000'B unknown
// '001'B international number
// '010'B national number
// '011'B network-specific number
// '100'B subscriber number
BIT1 ext1,
BIT2 screeningIndicator optional,
// '00'B User_provided, not screened
// '01'B User_provided, verified and passed
// '10'B User_provided, verified and failed
// '11'B Network provided
BIT3 spare1_3 optional,
// '000'B
BIT2 presentationIndicator optional,
// '00'B Presentation allowed
// '01'B Presentation restricted
// '10'B Number not available due to interworking
// '11'B Reserved
BIT1 ext2 optional
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_NumberType {
BIT4 numberingPlanIdentification,
// '0000'B Unknown
// '0001'B ISDN/telephony numbering plan (E.164)
// '0011'B Data numbering plan (X.121)
// '1000'B National standard numbering plan
// '1001'B Private numbering plan
BIT3 typeOfNumber,
// '000'B unknown
// '001'B international number
// '010'B national number
// '011'B network-specific number
// '100'B subscriber number
BIT1 ext1
} with { variant "EXTENSION_BIT (yes)"};
//****************************************************************************
// 5.3. Call reference
//****************************************************************************
type union DSS1_CallReference {
DSS1_DummyCR dummy_CR,
DSS1_OneOctetCR oneOctetCR,
DSS1_TwoOctetCR twoOctetCR
} with { variant "TAG(dummy_CR, callReferenceLength = '0000'B;
oneOctetCR, callReferenceLength = '0001'B;
twoOctetCR, callReferenceLength = '0010'B)"};
type record DSS1_DummyCR {
BIT4 callReferenceLength, // '0000'B
BIT4 spare // '0000'B
} with { variant ""};
type record DSS1_OneOctetCR {
BIT4 callReferenceLength, // '0001'B
BIT4 spare, // '0000'B
BIT7 callReferenceValue,
BIT1 callReferenceFlag // '0'B: sent from originating side
} with { variant ""};
type record DSS1_TwoOctetCR {
BIT4 callReferenceLength, // '0010'B
BIT4 spare, // '0000'B
BIT7 callReferenceValue_upper,
BIT1 callReference_flag, // '0'B: sent from originating side
BIT8 callReferenceValue_lower
} with { variant ""};
//****************************************************************************
// 5.5.3; 5.5.4 Shift
//****************************************************************************
type record DSS1_Shift {
BIT3 newCodesetIdentification,
BIT1 lockingIndication,
// '0'B locking shift
// '1'B non-locking shift
BIT4 elementIdentifier ('1001'B)
} with { variant "PRESENCE (elementIdentifier = '1001'B)"};
//****************************************************************************
// 5.5.5 Bearer Capacity
//****************************************************************************
type record DSS1_BC_octet7 {
BIT5 userInformationLayer3Protocol,
// '00010'B Rec. Q.931 (I.451)
// '00110'B Rec. X.25 packet layer
// '00110'B rec. X.25, level link
BIT2 layerId ('11'B),
BIT1 extension7 ('1'B)
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_BC_octet6 {
BIT5 userInformationLayer2Protocol,
// '00010'B Rec. Q.921 (I.441)
// '00110'B CCITT Rec. X.25 link level
BIT2 layerId ('10'B),
BIT1 extension6 ('1'B)
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_BC_octet5 {
// OCTET 5:
BIT5 userInformationLayer1Protocol,
// '00001'B CCITT standardized Rate adaption V.110/X.30.
// '00011'B Rec. G.711 A-law
// '00100'B Rec. G.721 32 kbit/s ADPCM and Rec. I.460
// '00101'B Rec. H.221 and H.242
// '00110'B Rec. H.223 and H.245
// '00111'B Non-CCITT standardized rate adaption.
// '01001'B CCITT standardized rate adaption X.31 HDLC flag stuffing
BIT2 layerId ('01'B),
BIT1 extension5,
// '0'B (octet 5a following) or '1'B
// OCTET 5a:
BIT5 userRate optional,
// '00000'B Rate is indicated by E-bits or may be negotiated in-band
// '00001'B 0.6 Rec. V.6, X.1
// '00010'B 1.2 Rec. V.6
// '00011'B 2.4 Rec. V.6, X.1
// '00100'B 3.6 Rec. V.6
// '00101'B 4.8 Rec. V.6, X.1
// '00110'B 7.2 Rec. V.6
// '00111'B 8 Rec. I.460
// '01000'B 9.6 Rec. V.6, X.1
// '01001'B 14.4 Rec. V.6
// '01010'B 16 Rec. I.420
// '01011'B 19.2 Rec. V.6
// '01100'B 32 Rec. I.460
// '01101'B 38.4
// '01110'B 48 Rec. V.6, X.1
// '01111'B 56 Rec. V.6
// '10000'B 64 Rec. X.1
// '10001'B 38.4 Rec. V.14 extended
// '10010'B 57.6 Rec. V.14 extended
// '10101'B 0.1345 Rec. X.1
// '10110'B 0.100 Rec. X.1
// '10111'B 0.075/1.2 Rec. V.6, X.1 (Note 1)
// '11000'B 1.2/0.075 Rec. V.6, X.1 (Note 1)
// '11001'B 0.050 Rec. V.6, X.1
// '11010'B 0.075 Rec. V.6, X.1
// '11011'B 0.110 Rec. V.6, X.1
// '11100'B 0.150 Rec. V.6, X.1
// '11101'B 0.200 Rec. V.6, X.1
// '11110'B 0.300 Rec. V.6, X.1
// '11111'B 12 Rec. V.6
BIT1 negotiation optional,
// '0'B In-band negotiation not possible
// '1'B In-band negotiation possible
BIT1 synchronous_asynchronous optional,
// '0'B synchronous
// '1'B asynchronous
BIT1 extension5a optional,
// OCTET 5b:
BIT1 spare5b optional,
BIT1 flowContrlOnRX optional,
// '0'B not accepted
// '1'B accepted
BIT1 flowContrlOnTX optional,
// '0'B not required
// '1'B required
BIT1 networkIndependentClockOnRX optional,
// '0'B not accepted
// '1'B accepted
BIT1 networkIndependentClockOnTX optional,
// '0'B not required
// '1'B required
BIT2 intermediateRate optional,
// '00'B not used
// '01'B 8 kbit/s
// '10'B 16 kbit/s
// '11'B 32 kbit/s
BIT1 extension5b optional,
// OCTET 5c:
BIT3 parity optional,
// '000'B odd
// '010'B even
// '011'B none
// '100'B forced to 0
// '101'B forced to 1
BIT2 numberOfDataBits optional,
// '00'B Not used
// '01'B 5 bits
// '10'B 7 bits
// '11'B 8 bits
BIT2 numberOfStopBits optional,
// '00'B Not used
// '01'B 1 bit
// '10'B 1.5 bit
// '11'B 2 bits
BIT1 extension5c optional,
// OCTET 5d:
BIT6 modemType optional,
// '000000
// through National use
// '000101
// '010001 Rec. V.21
// '010010 Rec. V.22
// '010011 Rec. V.22 bis
// '010100 Rec. V.23
// '010101 Rec. V.26
// '010110 Rec. V.26 bis
// '010111 Rec. V.26 ter
// '011000 Rec. V.27
// '011001 Rec. V.27 bis
// '011010 Rec. V.27 ter
// '011011 Rec. V.29
// '011100 Rec. V.32
// '100000
// through National use
// '101111
// '110000
// through User specified
// '111111
BIT1 duplexMode optional,
// '0'B Half duplex
// '1'B Full duplex
BIT1 extension_octet_5d optional
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_BC_octet4 {
BIT5 informationTransferRate,
// '00000'B Used for packet-mode calls
// '10000'B 64 kbit/s
// '10001'B 2 x 64 kbit/
// '10011'B 384 kbit/s
// '10101'B 1536 kbit/s
// '10111'B 1920 kbit/s
// '11000'B multirate
BIT2 transferMode,
// '00'B circuit mode
// '10'B packet mode
BIT1 extension4,
BIT2 establishment optional,
BIT2 configuration optional,
BIT3 structure optional,
BIT1 extension4a optional,
BIT5 informationTransferRateDestination_Origination optional,
BIT2 symmetry optional,
BIT1 extension4b optional,
BIT7 rateMultiplier optional,
BIT1 extension4_1 optional
} with {variant "EXTENSION_BIT_GROUP (yes,informationTransferRate,extension4b)";
variant (rateMultiplier) "PRESENCE(informationTransferRate ='11000'B)";
variant (extension4_1) "PRESENCE(informationTransferRate ='11000'B)";};
type record DSS1_BC_octet3 {
BIT5 informationTransferCapability,
// '00000'B Speech
// '01000'B Unrestricted digital information
// '01001'B Restricted digital information
// '10000'B 3.1 kHz audio
// '10001'B Unrestricted digital information with tones/announcements
// '11000'B Video
BIT2 codingStandard ('00'B),
// '00'B CCITT Standardized coding
BIT1 extension3 ('1'B)
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_BearerCapability {
OCT1 elementIdentifier ('04'O),
LIN1 lengthIndicator, // (1..11),
DSS1_BC_octet3 octet3, // 1 octet
DSS1_BC_octet4 octet4, // 1-4 octets
DSS1_BC_octet5 octet5 optional, // 1-3 octets
DSS1_BC_octet6 octet6 optional, // 1-8 octets
DSS1_BC_octet7 octet7 optional // 1 octet
} with { variant "TAG (octet5, layerId = '01'B;
octet6, layerId = '10'B;
octet7, layerId = '11'B;)"
variant (lengthIndicator) "LENGTHTO (octet3, octet4, octet5, octet6,
octet7)";
variant "PRESENCE (elementIdentifier = '04'O)";};
//****************************************************************************
//5.5.6 Call Identity
//****************************************************************************
type record DSS1_CallIdentity {
OCT1 elementIdentifier ('10'O),
LIN1 lengthIndicator, // (1..8),
OCTN callIdentityPattern optional
} with { variant (lengthIndicator) "LENGTHTO (callIdentityPattern)";
variant "PRESENCE (elementIdentifier = '10'O)";};
//****************************************************************************
//5.5.7 Call State
//****************************************************************************
type record DSS1_CallState {
OCT1 elementIdentifier ('14'O),
LIN1 lengthIndicator, // (1),
BIT6 callStateValue,
BIT2 codingStandard ('00'B)
// '00'B CCITT Standardized coding
} with { variant (lengthIndicator) "LENGTHTO (callStateValue,codingStandard)";
variant "PRESENCE (elementIdentifier = '14'O)";};
//****************************************************************************
//5.5.8 Called Number
//****************************************************************************
type record DSS1_CalledNumber {
OCT1 elementIdentifier ('70'O),
LIN1 lengthIndicator, // (1..21),
DSS1_NumberType oct3,
DSS1_NumberDigits digits optional
} with { variant (lengthIndicator) "LENGTHTO (oct3,digits)";
variant "PRESENCE (elementIdentifier = '70'O)";};
type set of DSS1_CalledNumber DSS1_CalledNumber_list with { variant ""};
//****************************************************************************
//5.5.9 Called Party Subaddress
//****************************************************************************
type record DSS1_CalledSubaddress {
OCT1 elementIdentifier ('71'O),
LIN1 lengthIndicator, // (1..21),
BIT3 spare1_3 ('000'B) optional,
BIT1 oddEvenIndicator optional,
// '0'B even number of digits address
// '1'B odd number of address digits
BIT3 typeOfSubaddress optional,
// '000'B... NSAP
// '010'B... user specified
BIT1 ext1 ('1'B) optional,
OCTN subaddressInformation optional
} with { variant (lengthIndicator) "LENGTHTO (spare1_3, oddEvenIndicator,
typeOfSubaddress, ext1,
subaddressInformation)";
variant "PRESENCE (elementIdentifier = '71'O)"; };
//****************************************************************************
//5.5.10 Calling Party Number
//****************************************************************************
type record DSS1_CallingNumber {
OCT1 elementIdentifier ('6C'O),
LIN1 lengthIndicator, // (1..22),
DSS1_NumberTypeETC oct3,
DSS1_NumberDigits digits optional
} with { variant (lengthIndicator) "LENGTHTO (oct3,digits)";
variant "PRESENCE (elementIdentifier = '6C'O)";};
type set of DSS1_CallingNumber DSS1_CallingNumber_list with { variant ""};
//****************************************************************************
//5.5.11 Calling Party Subaddress
//****************************************************************************
type record DSS1_CallingSubaddress {
OCT1 elementIdentifier ('6D'O),
LIN1 lengthIndicator, // (1..21),
BIT3 spare1_3 ('000'B) optional,
BIT1 oddEvenIndicator optional,
// '0'B even number of digits address
// '1'B odd number of address digits
BIT3 typeOfSubaddress optional,
// '000'B... NSAP
// '010'B... user specified
BIT1 ext1 ('1'B) optional,
OCTN subaddressInformation optional
} with { variant (lengthIndicator) "LENGTHTO (spare1_3, oddEvenIndicator,
typeOfSubaddress, ext1,
subaddressInformation)";
variant "PRESENCE (elementIdentifier = '6D'O)" };
//****************************************************************************
//5.5.12 Cause
//****************************************************************************
type record DSS1_Cause_oct3 {
BIT4 location,
// '0000'B user
// '0001'B private network, local user
// '0010'B public network, local user
// '0011'B transit network
// '0100'B public network, remote user
// '0101'B private network, remote user
// '0111'B international network
// '1010'B network beyond interworking point
BIT1 spare3 ('0'B),
BIT2 codingStandard, // '00'B coding according Q.931
// '01'B reserved for standards other
// '10'B National standard
// '11'B standard other (e.g. one defined for GSM PLMNs)
BIT1 ext1, // '0'B or '1'B
// OCTET 3A:
BIT7 recommendation optional,
BIT1 ext2 optional
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_Cause {
OCT1 elementIdentifier ('08'O),
LIN1 lengthIndicator, // (1..30),
DSS1_Cause_oct3 oct3,
BIT7 causeValue,
BIT1 ext3 ('1'B),
octetstring diagnostics length (0..27) optional
} with { variant (lengthIndicator) "LENGTHTO (oct3, causeValue, ext3,
diagnostics)";
variant "PRESENCE (elementIdentifier = '08'O)";};
type set of DSS1_Cause DSS1_Cause_list with { variant ""};
//****************************************************************************
// 5.5.13 Channel identification
//****************************************************************************
type record DSS1_ChannelIdentification {
OCT1 elementIdentifier ('18'O),
LIN1 lengthIndicator, // (1..32),
BIT2 informationChannelSelection,
// Basic interface Primary interface
// '00'B no channel no channel
// '01'B B1 channel as indicated in following octets
// '10'B B2 channel reserved
// '11'B any channel any channel
BIT1 dChannelIndicator,
// '0'B The channel identified is not the D-channel
// '1'B The channel identified is the D-channel
BIT1 preferredExclusive,
// '0'B the indicated channel is preferred
// '1'B exclusive: only the indicated channel is acceptable
BIT1 spare ('0'B),
BIT1 interfaceType,
// '0'B basic interface
// '1'B primary rate
BIT1 interfaceIdentifierPresent,
// '0 Interface implicitly identified
// '1 Interface explicitly identified octet(s) beginning with octet 3.1
BIT1 extension3 ('1'B),
BIT7 interfaceIdentifier optional,
BIT1 extension3_1 ('1'B) optional,
BIT4 channelType optional,
// '0011'B B-channel units
BIT1 number optional,
// '0'B channel is indicated by the number in the following octet
BIT2 codingStandard ('00'B) optional,
// '00 CCITT standardized coding
BIT1 extension3_2 ('1'B) optional,
OCTN channelNumber optional
} with { variant (interfaceIdentifier)
"PRESENCE (interfaceIdentifierPresent = '1'B)";
variant (extension3_1) "PRESENCE (interfaceIdentifierPresent = '1'B)";
variant (lengthIndicator) "LENGTHTO(informationChannelSelection,
dChannelIndicator,
preferredExclusive,spare,
interfaceType,
interfaceIdentifierPresent,
extension3,interfaceIdentifier,
extension3_1,channelType,number,
codingStandard,extension3_2,
channelNumber)";
variant "PRESENCE (elementIdentifier = '18'O)"; };
type set of DSS1_ChannelIdentification DSS1_ChannelIdentification_list
with {variant ""};
//****************************************************************************
//5.5.14 Charge advice
//****************************************************************************
type record DSS1_ChargeAdvice {
DSS1_Shift shiftToCodeset5,
OCT1 elementIdentifier ('1A'O),
LIN1 lengthIndicator, // (2..6),
BIT3 typeOfCharging,
// '010'B Charging on answer
// '011'B Charge increment
// '100'B Total charge
BIT1 spare ('0'B),
BIT1 standard,
// '0'B National standard
// '1'B CEPT standard
BIT2 codingStandard ('10'B),
// '10'B National standard
BIT1 extension3,
BIT7 chargingPeriod optional,
// '0001000'B 0.1 seconds
// '0001001'B 1 second
// '0001010'B 10 seconds
// '0001011'B 1 minute
BIT1 extension3a optional,
OCTN chargingUnits
} with { variant "EXTENSION_BIT_GROUP(yes,typeOfCharging,extension3a)";
variant (lengthIndicator) "LENGTHTO(typeOfCharging,spare,standard,
codingStandard,extension3,
chargingPeriod,extension3a,
chargingUnits)";
variant "PRESENCE (elementIdentifier = '1A'O)";}
//****************************************************************************
//5.5.15 Congestion level
//****************************************************************************
type record DSS1_CongestionLevel {
BIT4 congestionLevel ('0000'B, '1111'B),
// '0000'B receiver ready
// '1111'B receiver not ready
BIT4 elementIdentifier ('1011'B)
} with { variant "" };
//****************************************************************************
//5.5.16 Connected Number
//****************************************************************************
type record DSS1_ConnectedNumber {
OCT1 elementIdentifier ('4C'O),
LIN1 lengthIndicator, // (1..22),
DSS1_NumberTypeETC oct3,
DSS1_NumberDigits digits optional
} with { variant (lengthIndicator) "LENGTHTO (oct3,digits)";
variant "PRESENCE (elementIdentifier = '4C'O)";};
//****************************************************************************
//5.6.17 Connected subaddress
//****************************************************************************
type record DSS1_ConnectedSubaddress {
OCT1 elementIdentifier ('4D'O),
LIN1 lengthIndicator, // (1..21),
BIT3 spare1_3 ('000'B),
BIT1 oddEvenIndicator,
// '0'B even number of digits address
// '1'B odd number of address digits
BIT3 typeOfSubaddress,
// '000'B... NSAP
// '010'B... user specified
BIT1 ext1 ('1'B),
OCTN subaddressInformation optional
} with { variant (lengthIndicator) "LENGTHTO (spare1_3,oddEvenIndicator,
typeOfSubaddress,ext1,
subaddressInformation)";
variant "PRESENCE (elementIdentifier = '4D'O)"};
//****************************************************************************
//5.5.18 Date/time
//****************************************************************************
type record DSS1_DateTime {
OCT1 elementIdentifier ('29'O),
LIN1 lengthIndicator, // (3..6),
BIT8 year,
BIT8 month,
BIT8 day,
BIT8 hour optional,
BIT8 minute optional,
BIT8 second optional
} with { variant (lengthIndicator) "LENGTHTO (year, month, day,
hour,minute,second)";
variant "PRESENCE (elementIdentifier = '29'O)";};
//****************************************************************************
// 5.5.19 Display
//****************************************************************************
type record DSS1_Display {
OCT1 elementIdentifier ('28'O),
LIN1 lengthIndicator, // (1..80),
charstring displayInformation
} with { variant (lengthIndicator) "LENGTHTO (displayInformation)";
variant "PRESENCE (elementIdentifier = '28'O)";};
//****************************************************************************
// 5.5.20 Extended facility
//****************************************************************************
type record DSS1_ExtendedFacility {
OCT1 elementIdentifier ('0D'O),
INT7b lengthOfLength,
BIT1 alwaysOne ('1'B),
LIN2 lengthIndicator,
BIT5 protocolProfile,
BIT2 spare ('00'B),
BIT1 extension1 ('1'B),
OCTN components
} with { variant (lengthOfLength) "LENGTHTO(lengthIndicator)";
variant (lengthIndicator) "LENGTHTO(protocolProfile,spare,extension1,
components)";
variant "PRESENCE (elementIdentifier = '0D'O)";};
type set of DSS1_ExtendedFacility DSS1_ExtendedFacility_list
with { variant ""};
//****************************************************************************
// 5.5.21 Facility
//****************************************************************************
type record DSS1_Facility {
OCT1 elementIdentifier ('1C'O),
LIN1 lengthIndicator,
BIT5 protocolProfile,
// '10001'B Remote operations protocol
// '11111'B Networking Extensions (VPN)
BIT2 spare ('00'B),
BIT1 extension1 ('1'B),
OCTN components
} with { variant (lengthIndicator) "LENGTHTO(protocolProfile,spare,extension1,
components)";
variant "PRESENCE (elementIdentifier = '1C'O)";};
type set of DSS1_Facility DSS1_Facility_list with { variant ""};
//****************************************************************************
// 5.5.22 High Layer Compatibility
//****************************************************************************
type record DSS1_HLC_octet3 {
BIT2 presentationMethod,
// '00'B High layer protocol profile
BIT3 interpretation,
// '000'B First HLC identification (in octet 4) to be used in the call.
BIT2 codingStandard,
// '00'B CCITT standardized coding
// '01'B reserved for ISO/IEC standards
// '10'B National standard
// '11'B Standard defined for the network
BIT1 extension_octet_3 // '1'B octet4 should follow
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_HLC_octet4 {
BIT7 highLayerCharId,
BIT1 extension_octet_4,
//OCTET 4a:
BIT7 extendedHighLayerCharId optional,
BIT1 extension_octet_4a optional // '1'B
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_HighLayerCompatibility {
OCT1 elementIdentifier ('7D'O),
LIN1 lengthIndicator, // (2..3),
DSS1_HLC_octet3 octet3 optional,
DSS1_HLC_octet4 octet4 optional // if octet3 present, octet4 must also be
} with { variant (lengthIndicator) "LENGTHTO (octet3, octet4)";
variant "PRESENCE (elementIdentifier = '7D'O)";};
type set of DSS1_HighLayerCompatibility DSS1_HighLayerCompatibility_list
with { variant ""};
//****************************************************************************
// 5.5.23 ISPBX additional information
//****************************************************************************
type record DSS1_ISPBXAdditionalInfo {
DSS1_Shift shiftToCodeset6,
OCT1 elementIdentifier ('01'O),
LIN1 lengthIndicator, // (1),
BIT2 typeOfCharging,
// '00'B Charging group
// '01'B Charging on line
// '10'B Reserved
// '11'B Not relevant
BIT2 classOfCall,
// '00'B Intrasubscriber
// '01'B Public Network
BIT3 spare ('000'B),
BIT1 extension3 ('1'B)
} with { variant (lengthIndicator) "LENGTHTO (typeOfCharging,classOfCall,
spare,extension3)";
variant "PRESENCE (elementIdentifier = '01'O)";};
//****************************************************************************
// 5.5.24 Keypad Facility
//****************************************************************************
type record DSS1_KeypadFacility {
OCT1 elementIdentifier ('2C'O),
LIN1 lengthIndicator, // (0..32),
charstring keypadInformation
} with { variant (lengthIndicator) "LENGTHTO (keypadInformation)";
variant "PRESENCE (elementIdentifier = '2C'O)";};
//****************************************************************************
//5.5.25 Low Layer Compatibility
//****************************************************************************
type record DSS1_LLC_octet3 {
BIT5 informationTransferCapability,
// '00000'B Speech
// '01000'B Unrestricted digital information
// '01001'B Restricted digital information
// '10000'B 3.1 kHz audio
// '10001'B Unrestricted digital information with tones/announcements
// '11000'B Video
BIT2 codingStandard,
// '00'B CCITT standardized coding
// '01'B reserved for ISO/IEC standards
// '10'B National standard
// '11'B Standard defined for the network
BIT1 extension_3,
BIT6 spare6 ('000000'B) optional,
BIT1 negotiationIndicator optional,
// '0'B Out-band negotiation not possible
// '1'B Out-band negotiation possible
BIT1 extension_3a optional
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_LLC_octet4 {
BIT5 informationTransferRate,
// '00000'B Used for packet-mode calls
// '10000'B 64 kbit/s
// '10001'B 2 x 64 kbit/
// '10011'B 384 kbit/s
// '10101'B 1536 kbit/s
// '10111'B 1920 kbit/s
// '11000'B multirate
BIT2 transferMode,
// '00'B circuit mode
// '10'B packet mode
BIT1 extension4,
BIT7 rateMultiplier optional,
BIT1 extension4_1 optional
} with { variant "EXTENSION_BIT (yes)";
variant (rateMultiplier)"PRESENCE (informationTransferRate='11000'B)";
variant (extension4_1) "PRESENCE (informationTransferRate='11000'B)"};
type record DSS1_LLC_octet5 {
// OCTET 5:
BIT5 userInformationLayer1Protocol,
// '00001'B CCITT standardized Rate adaption V.110/X.30.
// '00010'B Rec. G.711 u-law
// '00011'B Rec. G.711 A-law
// '00100'B Rec. G.721 32 kbit/s ADPCM and Rec. I.460
// '00101'B Rec. H.221 and H.242
// '00110'B Rec. H.223 and H.245
// '00111'B Non-CCITT standardized rate adaption.
// '01000'B CCITT standardized rate adaption V.120
// '01001'B CCITT standardized rate adaption X.31 HDLC flag stuffing
BIT2 layerId,
// '01'B identifier octet
BIT1 extension5,
// '0'B (octet 5a following) or '1'B
// OCTET 5a:
BIT5 userRate optional,
// '00000'B Rate is indicated by E-bits or may be negotiated in-band
// '00001'B 0.6 kbit/s Rec. V.6, X.1
// '00010'B 1.2 kbit/s Rec. V.6
// '00011'B 2.4 kbit/s Rec. V.6, X.1
// '00100'B 3.6 kbit/s Rec. V.6
// '00101'B 4.8 kbit/s Rec. V.6, X.1
// '00110'B 7.2 kbit/s Rec. V.6
// '00111'B 8 kbit/s Rec. I.460
// '01000'B 9.6 kbit/s Rec. V.6, X.1
// '01001'B 14.4 kbit/s Rec. V.6
// '01010'B 16 kbit/s Rec. I.420
// '01011'B 19.2 kbit/s Rec. V.6
// '01100'B 32 kbit/s Rec. I.460
// '01101'B 38.4 kbit/s
// '01110'B 48 kbit/s Rec. V.6, X.1
// '01111'B 56 kbit/s Rec. V.6
// '10000'B 64 kbit/s Rec. X.1
// '10001'B 38.4 kbit/s Rec. V.14 extended
// '10010'B 57.6 kbit/s Rec. V.14 extended
// '10101'B 0.1345 kbit/s Rec. X.1
// '10110'B 0.100 kbit/s Rec. X.1
// '10111'B 0.075/1.2 kbit/s Rec. V.6, X.1 (Note 1)
// '11000'B 1.2/0.075 kbit/s Rec. V.6, X.1 (Note 1)
// '11001'B 0.050 kbit/s Rec. V.6, X.1
// '11010'B 0.075 kbit/s Rec. V.6, X.1
// '11011'B 0.110 kbit/s Rec. V.6, X.1
// '11100'B 0.150 kbit/s Rec. V.6, X.1
// '11101'B 0.200 kbit/s Rec. V.6, X.1
// '11110'B 0.300 kbit/s Rec. V.6, X.1
// '11111'B 12 kbit/s Rec. V.6
BIT1 negotiation optional,
// '0'B In-band negotiation not possible
// '1'B In-band negotiation possible
BIT1 synchronous_asynchronous optional,
// '0'B synchronous
// '1'B asynchronous
BIT1 extension5a optional,
// OCTET 5b:
BIT1 spare5b ('0'B) optional,
BIT1 bit2 optional,
BIT1 bit3 optional,
BIT1 bit4 optional,
BIT1 bit5 optional,
BIT1 bit6 optional,
BIT1 bit7 optional,
BIT1 extension5b optional,
// OCTET 5c:
BIT3 parity optional,
// '000'B odd
// '010'B even
// '011'B none
// '100'B forced to 0
// '101'B forced to 1
BIT2 numberOfDataBits optional,
// '00'B Not used
// '01'B 5 bits
// '10'B 7 bits
// '11'B 8 bits
BIT2 numberOfStopBits optional,
// '00'B Not used
// '01'B 1 bit
// '10'B 1.5 bit
// '11'B 2 bits
BIT1 extension5c optional,
// OCTET 5d:
BIT6 modemType optional,
// '000000
// through National use
// '000101
// '010001 Rec. V.21
// '010010 Rec. V.22
// '010011 Rec. V.22 bis
// '010100 Rec. V.23
// '010101 Rec. V.26
// '010110 Rec. V.26 bis
// '010111 Rec. V.26 ter
// '011000 Rec. V.27
// '011001 Rec. V.27 bis
// '011010 Rec. V.27 ter
// '011011 Rec. V.29
// '011100 Rec. V.32
// '100000
// through National use
// '101111
// '110000
// through User specified
// '111111
BIT1 duplexMode optional,
// '0'B Half duplex
// '1'B Full duplex
BIT1 extension_octet_5d optional
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_LLC_octet6a_user {
BIT7 userSpecifiedLayer2information,
BIT1 extension6a
} with { variant ""};
type record DSS1_LLC_octet6a_other {
BIT2 q933Use,
// '00'B For use when coding defined in Rec. Q.933 is not used
BIT3 spare6a ('000'B),
BIT2 modeOfOperation,
// '01'B Normal mode of operation
// '10'B Extended mode of operation
BIT1 extension6a,
BIT7 windowSize optional,
BIT1 extension6b optional
} with { variant "EXTENSION_BIT (yes)"};
type union DSS1_LLC_octet6a {
DSS1_LLC_octet6a_user octet6a_user,
DSS1_LLC_octet6a_other octet6a_other
} with { variant ""};
type record DSS1_LLC_octet6 {
BIT5 userInformationLayer2Protocol,
// '00001'B Basic mode ISO 1745
// '00010'B CCITT Rec. Q.921 (I.441)
// '00110'B CCITT Rec. X.25 link layer
// '00111'B CCITT Rec. X.25 Multilink
// '01000'B Extented LAPB; for half duplex operation (T.71)
// '01001'B HDLC ARM (ISO 4335)
// '01010'B HDLC NRM (ISO 4335)
// '01011'B HDLC ABM (ISO 4335)
// '01100'B LAN Logical link control (ISO 8802/2)
// '01101'B CCITT Rec. X.75 Single Link Procedure SLP
// '01110'B CCITT Rec. Q.922
// '01111'B Core aspects of CCITT Rec. Q.922
// '10000'B User specified
// '10001'B ISO 7776 DTE - DTE operation
BIT2 layerId, // '10'B identifier octet
BIT1 extension6, // '1'B,
// OCTET 6a-b:
DSS1_LLC_octet6a octet6a optional
} with { variant "EXTENSION_BIT (yes)";
variant (octet6a)
"CROSSTAG(octet6a_other,{userInformationLayer2Protocol='00001'B,
userInformationLayer2Protocol='00010'B,
userInformationLayer2Protocol='00110'B,
userInformationLayer2Protocol='00111'B,
userInformationLayer2Protocol='01000'B,
userInformationLayer2Protocol='01001'B,
userInformationLayer2Protocol='01010'B,
userInformationLayer2Protocol='01011'B,
userInformationLayer2Protocol='01100'B,
userInformationLayer2Protocol='01101'B,
userInformationLayer2Protocol='01110'B,
userInformationLayer2Protocol='01111'B,
userInformationLayer2Protocol='10001'B};
octet6a_user, userInformationLayer2Protocol='10000'B)"
};
type record DSS1_LLC_octet7a_user {
BIT7 userSpecifiedLayer3information,
BIT1 extension7a
} with { variant ""};
type record DSS1_LLC_octet7a_other {
BIT5 spare7a ('00000'B),
BIT2 modeOfOperation,
// '01'B Normal packet sequence numbering
// '10'B Extended packet sequence numbering
BIT1 extension7a,
// OCTET 7b:
BIT4 defaultPacketSize optional,
// '0100'B Default packet size 16 octets
// '0101'B Default packet size 32 octets
// '0110'B Default packet size 64 octets
// '0111'B Default packet size 128 octets
// '1000'B Default packet size 256 octets
// '1001'B Default packet size 512 octets
// '1010'B Default packet size 1024 octets
// '1011'B Default packet size 2048 octets
// '1100'B Default packet size 4096 octets
BIT4 spare7b ('0000'B) optional,
BIT1 extension7b optional,
// OCTET 7c:
BIT7 packetWindowSize optional,
BIT1 extension7c optional
} with { variant "EXTENSION_BIT (yes)"};
type union DSS1_LLC_octet7a {
DSS1_LLC_octet7a_user octet7a_user,
DSS1_LLC_octet7a_other octet7a_other
} with { variant ""};
type record DSS1_LLC_octet7 {
BIT5 userInformationLayer3Protocol,
// '00010'B CCITT Rec. Q.931 (I.451)
// '00110'B CCITT Rec. X.25, packet layer (Note 2)
// '00111'B ISO 8208 (X.25 packet level protocol for data terminal equ.)
// '01000'B X.223/ISO 8878 use of ISO/IEC 8208 and CCITT X.25.
// '01001'B ISO 8473 (OSI connectionless mode protocol)
// '01010'B CCITT Rec. T.70 minimum network layer
// '01011'B ISO TR 9577 (non-ISO protocols)
// '10000'B User specified
BIT2 layerId ('11'B),
BIT1 extension7,
// OCTET 7a:
DSS1_LLC_octet7a octet7a optional
} with { variant "EXTENSION_BIT (yes)";
variant (octet7a)
"CROSSTAG(octet7a_other,{userInformationLayer3Protocol='00110'B,
userInformationLayer3Protocol='00111'B,
userInformationLayer3Protocol='01000'B};
octet7a_user, userInformationLayer3Protocol='10000'B)"
};
type record DSS1_LowLayerCompatibility {
OCT1 elementIdentifier ('7C'O),
LIN1 lengthIndicator, // (2..16),
DSS1_LLC_octet3 octet3,
DSS1_LLC_octet4 octet4,
DSS1_LLC_octet5 octet5 optional,
DSS1_LLC_octet6 octet6 optional,
DSS1_LLC_octet7 octet7 optional
} with { variant "TAG (octet5, layerId = '01'B;
octet6, layerId = '10'B;
octet7, layerId = '11'B;)"
variant (lengthIndicator) "LENGTHTO (octet3,octet4,octet5,
octet6,octet7)";
variant "PRESENCE (elementIdentifier = '7C'O)";};
//****************************************************************************
// 5.5.26 More data
//****************************************************************************
type record DSS1_MoreData {
OCT1 elementIdentifier ('A0'O)
} with { variant "PRESENCE (elementIdentifier = 'A0'O)"};
//****************************************************************************
// 5.5.27 Notification indicator
//****************************************************************************
type record DSS1_NotificationIndicator_3 {
BIT7 notificationDescription,
// '0000000'B User suspended
// '0000001'B User resumed
// '0000011'B Discriminator for BER encoded notification extension
// '0000100'B Call completion delay
// '1000000'B Discriminator for ext. to ASN.1 encoded component for ISO
// '1000010'B Conference established
// '1000011'B Conference disconnected
// '1000100'B Other party added
// '1000101'B Isolated
// '1000110'B Reattached
// '1000111'B Other party isolated
// '1001000'B Other party reattached
// '1001001'B Other party split
// '1001010'B Other party disconnected
// '1001011'B Conference floating
// '1100000'B Call is a waiting call
// '1101000'B Diversion is activated
// '1101001'B Call transferred, alerting
// '1101010'B Call transferred, active
// '1101011'B Call is queued
// '1111001'B Remote hold
// '1111010'B Remote retrieval
// '1111011'B Call is diverting
BIT1 extension3,
BIT7 notificationDescription_a optional,
BIT1 extension3a optional
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_NotificationIndicator {
OCT1 elementIdentifier ('27'O),
LIN1 lengthIndicator, // (1..253),
DSS1_NotificationIndicator_3 notificationIndicator_3,
OCTN notificationDataStructure optional
} with { variant (lengthIndicator) "LENGTHTO(notificationIndicator_3,
notificationDataStructure)";
variant "PRESENCE (elementIdentifier = '27'O)";};
type set of DSS1_NotificationIndicator DSS1_NotificationIndicator_list
with { variant ""};
//****************************************************************************
// 5.5.28 Progress indicator
//****************************************************************************
type record DSS1_ProgressIndicator {
OCT1 elementIdentifier ('1E'O),
LIN1 lengthIndicator, // (2),
BIT4 location,
// '0000'B User
// '0001'B Private network serving the local user
// '0010'B Public network serving the local user
// '0011'B Transit network
// '0100'B Public network serving the remote user
// '0101'B Private network serving the remote user
// '1010'B Network beyond interworking point
BIT1 spare ('0'B),
BIT2 codingStandard,
// '00'B CCITT Standardized coding
// '01'B ISO/IEC 11572 coding standard
BIT1 extension3 ('1'B),
BIT7 progressDescription,
// '0000001'B Call is not end-to-end ISDN
// '0000010'B Destination address is non-ISDN
// '0000011'B Origination address is non-ISDN
// '0000100'B Call has returned to the ISDN
// '0000101'B Interworking has occurred
// '0001000'B In-band information now available
// '0010000'B Interworking with a public network
// '0010001'B Interworking with a network unable to supply release sign
// '0010010'B Interworking with a network unable to
// supply a release signal before answer
// '0010011'B Interworking with a network unable to
// supply a release signal after answer
BIT1 extension4 ('1'B)
} with { variant (lengthIndicator) "LENGTHTO(location,spare,codingStandard,
extension3,progressDescription,
extension4)";
variant "PRESENCE (elementIdentifier = '1E'O)"};
type set of DSS1_ProgressIndicator DSS1_ProgressIndicator_list
with { variant ""};
//****************************************************************************
// 5.5.29 Redirecting number
//****************************************************************************
type record DSS1_RedirectingNumber_oct3 {
BIT4 numberingPlanIdentification,
// '0000'B Unknown
// '0001'B ISDN/telephony numbering plan (E.164)
// '0011'B Data numbering plan (X.121)
// '1000'B National standard numbering plan
// '1001'B Private numbering plan
BIT3 typeOfNumber,
// '000'B unknown
// '001'B international number
// '010'B national number
// '011'B network-specific number
// '100'B subscriber number
BIT1 ext3,
// OCTET 3a
BIT5 spare5 ('00000'B) optional,
BIT2 presentationIndicator optional,
// '00'B Presentation allowed
// '01'B Presentation restricted
// '10'B Number not available due to interworking
// '11'B Reserved
BIT1 ext3a optional,
// OCTET 3b
BIT4 reasonForDiversion optional,
// '0000'B Unknown
// '0001'B Call forwarding busy (CFB)
// '0010'B Call forwarding no reply (CFNR)
// '1010'B Call deflection (CD)
// '1111'B Call forwarding unconditional (CFU)
BIT3 spare3 ('000'B) optional,
BIT1 ext3b optional
} with { variant "EXTENSION_BIT (yes)"};
type record DSS1_RedirectingNumber {
OCT1 elementIdentifier ('74'O),
LIN1 lengthIndicator, // (3..22),
DSS1_RedirectingNumber_oct3 oct3,
DSS1_NumberDigits digits optional
} with { variant (lengthIndicator) "LENGTHTO (oct3,digits)";
variant "PRESENCE (elementIdentifier = '74'O)";};
//****************************************************************************
// 5.5.30 Redirection number
//****************************************************************************
type record DSS1_RedirectionNumber {
OCT1 elementIdentifier ('76'O),
LIN1 lengthIndicator, // (2..24),
DSS1_NumberTypeETC oct3,
DSS1_NumberDigits digits optional
} with { variant (lengthIndicator) "LENGTHTO (oct3,digits)";
variant "PRESENCE (elementIdentifier = '76'O)";};
//****************************************************************************
// 5.5.31 Restart indicator
//****************************************************************************
type record DSS1_RestartIndicator {
OCT1 elementIdentifier ('79'O),
LIN1 lengthIndicator, // (1),
BIT3 class,
// '000'B Indicated channels
// '110'B Single interface
// '111'B All interfaces
BIT4 spare ('0000'B),
BIT1 extension3 ('1'B)
} with { variant (lengthIndicator) "LENGTHTO (class,spare,extension3)";
variant "PRESENCE (elementIdentifier = '79'O)";};
//****************************************************************************
// 5.5.32 Segmented Message
//****************************************************************************
type record DSS1_SegmentedMessage {
OCT1 elementIdentifier ('00'O),
LIN1 lengthIndicator, // (2),
BIT7 numberOfSegmentsRemaining,
BIT1 firstSegmentsIndicator,
// '0'B Subsequent segment to first segment
// '1'B First segment of segmented message
BIT7 segmentedMessageType,
BIT1 spare4 ('0'B)
} with { variant (lengthIndicator) "LENGTHTO (numberOfSegmentsRemaining,
firstSegmentsIndicator,
segmentedMessageType,spare4)";};
//*****************************************************************************
// 5.5.33 Sending complete
//*****************************************************************************
type record DSS1_SendingComplete {
OCT1 elementIdentifier ('A1'O)
} with { variant "PRESENCE (elementIdentifier = 'A1'O)"};
//*****************************************************************************
//5.5.34 Transit counter
//*****************************************************************************
type record DSS1_TransitCounter {
OCT1 elementIdentifier ('31'O),
LIN1 lengthIndicator, // (1),
BIT5 transitCount,
BIT2 spare ('00'B),
BIT1 extension3 ('1'B)
} with { variant (lengthIndicator) "LENGTHTO (transitCount,spare,extension3)";
variant "PRESENCE (elementIdentifier = '31'O)"};
//*****************************************************************************
//5.5.35 Transit network selection
//*****************************************************************************
type record DSS1_TransitNetworkSelection {
OCT1 elementIdentifier ('78'O),
LIN1 lengthIndicator, // (1..7),
BIT4 networkIdentificationPlan,
// '0000'B Unknown
// '0001'B Carrier Identification Code
// '0011'B Data network identification code
BIT3 networkIdentificationType,
// '000'B User specified
// '010'B National network identification
// '011'B International network identification
BIT1 extension3 ('1'B),
charstring networkIdentification
} with { variant (lengthIndicator) "LENGTHTO(networkIdentificationPlan,
networkIdentificationType,
extension3,networkIdentification)";
variant "PRESENCE (elementIdentifier = '78'O)"; };
//*****************************************************************************
//5.5.36 User-user
//*****************************************************************************
type record DSS1_UserUser {
OCT1 elementIdentifier ('7E'O),
LIN1 lengthIndicator, // (2..129),
BIT8 userUserProtocolDiscriminator,
// '00000000'B User specific protocol
// '00000001'B OSI high layer protocol
// '00000010'B X.244
// '00000011'B Reserved for system management convergence function
// '00000100'B IA5 characters
// '00000101'B X.208/X.209 coded user information
// '00000111'B CCITT Recommendation V.120 rate adaption
// '00001000'B Q.931 (I.451) user-network call control messages
charstring userUserInformation length(0..128) //transparent
} with { variant (lengthIndicator) "LENGTHTO(userUserProtocolDiscriminator,
userUserInformation)";
variant "PRESENCE (elementIdentifier = '7E'O)"; };
//*****************************************************************************
//5.5.37 VPN Indicator
//*****************************************************************************
type record DSS1_VPNIndicator {
OCT1 elementIdentifier ('05'O),
LIN1 lengthIndicator, // (1..13),
BIT3 cNIndicator ('000'B, '001'B, '010'B),
// '000'B no indicator
// '001'B network specific
// '010'B global
BIT4 spare3 ('0000'B),
BIT1 extension3 ('1'B),
hexstring cNIdentifier
} with { variant (lengthIndicator) "LENGTHTO(cNIndicator,spare3,extension3,
cNIdentifier)";
variant "PRESENCE (elementIdentifier = '05'O)"; };
//****************************************************************************
// 4.1.1. Alerting
//****************************************************************************
type record PDU_DSS1_Alerting {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('01'O),
DSS1_BearerCapability bearerCapability optional, // '04'O
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_ChannelIdentification_list channelIdentification optional, // '18'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_ProgressIndicator_list progressIndicator optional, // '1E'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional, // '28'O
DSS1_RedirectionNumber redirectionNumber optional, // '76'O
DSS1_HighLayerCompatibility_list highLayerCompatibility optional, // '7D'O
DSS1_UserUser userUser optional // '7E'O
} with { variant "" };
//****************************************************************************
// 4.1.2. Call Proceeding
//****************************************************************************
type record PDU_DSS1_CallProceeding {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('02'O),
DSS1_BearerCapability bearerCapability optional, // '04'O
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_ChannelIdentification_list channelIdentification optional, // '18'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_ProgressIndicator_list progressIndicator optional, // '1E'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional, // '28'O
DSS1_HighLayerCompatibility_list highLayerCompatibility optional // '7D'O
} with { variant "" };
//****************************************************************************
// 4.1.3. Congestion Control
//****************************************************************************
type record PDU_DSS1_CongestionControl {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('79'O),
DSS1_CongestionLevel congestionLevel, // '1011'B
DSS1_Cause_list cause optional, // '08'O
DSS1_Display displaY optional // '28'O
} with { variant "" };
//****************************************************************************
// 4.1.4. Connect
//****************************************************************************
type record PDU_DSS1_Connect {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('07'O),
DSS1_BearerCapability bearerCapability optional, // '04'O
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_ChannelIdentification_list channelIdentification optional, // '18'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_ProgressIndicator_list progressIndicator optional, // '1E'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional, // '28'O
DSS1_DateTime dateTime optional, // '29'O
DSS1_ConnectedNumber connectedNumber optional, // '4C'O
DSS1_ConnectedSubaddress connectedSubaddress optional, // '4D'O
DSS1_RedirectionNumber redirectionNumber optional, // '76'O
DSS1_LowLayerCompatibility lowLayerCompatibility optional, // '7C'O
DSS1_HighLayerCompatibility_list highLayerCompatibility optional, // '7D'O
DSS1_UserUser userUser optional, // '7E'O
DSS1_ChargeAdvice chargeAdvice optional // '1A'O
} with { variant "" };
//****************************************************************************
// 4.1.5. Connect Acknowledge
//****************************************************************************
type record PDU_DSS1_ConnectAcknowledge {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('0F'O),
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_ChannelIdentification_list channelIdentification optional, // '18'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional // '28'O
} with { variant "" };
//****************************************************************************
// 4.1.6. Disonnect
//****************************************************************************
type record PDU_DSS1_Disconnect {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('45'O),
DSS1_Cause_list cause, // '08'O
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_ProgressIndicator_list progressIndicator optional, // '1E'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional, // '28'O
DSS1_KeypadFacility keypadFacility optional, // '2C'O
DSS1_UserUser userUser optional, // '7E'O
DSS1_ChargeAdvice chargeAdvice optional // '1A'O
} with { variant "" };
//****************************************************************************
// 4.1.7. Facility
//****************************************************************************
type record PDU_DSS1_Facility {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('62'O),
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional, // '28'O
DSS1_CalledNumber_list calledNumber optional, // '70'O
DSS1_CalledSubaddress calledSubaddress optional, // '71'O
DSS1_RedirectionNumber redirectionNumber optional // '76'O
} with { variant "" };
//****************************************************************************
// 4.1.8. Hold
//****************************************************************************
type record PDU_DSS1_Hold {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('24'O),
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_NotificationIndicator_list notificationIndicator optional // '27'O
} with { variant "" };
//****************************************************************************
// 4.1.9. Hold Acknowledge
//****************************************************************************
type record PDU_DSS1_HoldAcknowledge {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('28'O),
DSS1_Display displaY optional // '28'O
} with { variant "" };
//****************************************************************************
// 4.1.10. Hold Reject
//****************************************************************************
type record PDU_DSS1_HoldReject {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('30'O),
DSS1_Cause_list cause, // '08'O
DSS1_Display displaY optional // '28'O
} with { variant "" };
//****************************************************************************
// 4.1.11. Information
//****************************************************************************
type record PDU_DSS1_Information {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('7B'O),
DSS1_SendingComplete sendingComplete optional, // 'A1'O
DSS1_Cause_list cause optional, // '08'O
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional, // '28'O
DSS1_KeypadFacility keypadFacility optional, // '2C'O
DSS1_CalledNumber_list calledNumber optional, // '70'O
DSS1_ChargeAdvice chargeAdvice optional // '1A'O
} with { variant "" };
//****************************************************************************
// 4.1.12. National register
//****************************************************************************
const bitstring cg_escapeToNatlMessage := '00000000'B;
type record PDU_DSS1_NationalRegister {
BIT8 escape (cg_escapeToNatlMessage),
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('64'O),
DSS1_KeypadFacility keypadFacility, // '2C'O
DSS1_CallingNumber_list callingNumber optional // '6C'O
} with { variant "PRESENCE(escape = '00000000'B)" };
//****************************************************************************
// 4.1.13. National register acknowledge
//****************************************************************************
type record PDU_DSS1_NationalRegisterAcknowledge {
BIT8 escape (cg_escapeToNatlMessage),
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('6C'O),
DSS1_Cause_list cause optional, // '08'O
DSS1_Display displaY optional, // '28'O
DSS1_KeypadFacility keypadFacility optional, // '2C'O
DSS1_ChargeAdvice chargeAdvice optional // '1A'O
} with { variant "PRESENCE(escape = '00000000'B)" };
//****************************************************************************
// 4.1.14. Notify
//****************************************************************************
type record PDU_DSS1_Notify {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('6E'O),
DSS1_NotificationIndicator_list notificationIndicator, // '27'O
DSS1_Display displaY optional, // '28'O
DSS1_RedirectionNumber redirectionNumber optional // '76'O
} with { variant "" };
//****************************************************************************
// 4.1.15. Progress
//****************************************************************************
type record PDU_DSS1_Progress {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('03'O),
DSS1_BearerCapability bearerCapability optional, // '04'O
DSS1_Cause_list cause optional, // '08'O
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_ProgressIndicator_list progressIndicator, // '1E'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional, // '28'O
DSS1_RedirectionNumber redirectionNumber optional, // '76'O
DSS1_HighLayerCompatibility_list highLayerCompatibility optional, // '7D'O
DSS1_UserUser userUser optional // '7E'O
} with { variant "" };
//****************************************************************************
// 4.1.16. Register
//****************************************************************************
type record PDU_DSS1_Register {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('64'O),
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_Display displaY optional // '28'O
} with { variant "" };
//****************************************************************************
// 4.1.17. Release
//****************************************************************************
type record PDU_DSS1_Release {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('4D'O),
DSS1_Cause_list cause optional, // '08'O
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional, // '28'O
DSS1_KeypadFacility keypadFacility optional,// '2C'O
DSS1_UserUser userUser optional, // '7E'O
DSS1_ChargeAdvice chargeAdvice optional // '1A'O
} with { variant "" };
//****************************************************************************
// 4.1.18. Release Complete
//****************************************************************************
type record PDU_DSS1_ReleaseComplete {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('5A'O),
DSS1_Cause_list cause optional, // '08'O
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional, // '28'O
DSS1_KeypadFacility keypadFacility optional, // '2C'O
DSS1_UserUser userUser optional, // '7E'O
DSS1_ChargeAdvice chargeAdvice optional // '1A'O
} with { variant "" };
//****************************************************************************
// 4.1.19. Restart
//****************************************************************************
type record PDU_DSS1_Restart {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('46'O),
DSS1_ChannelIdentification_list channelIdentification optional, // '18'O
DSS1_Display displaY optional, // '28'O
DSS1_RestartIndicator restartIndicator
} with { variant "" };
//****************************************************************************
// 4.1.20. Restart acknowledge
//****************************************************************************
type record PDU_DSS1_RestartAcknowledge {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('4E'O),
DSS1_ChannelIdentification_list channelIdentification optional, // '18'O
DSS1_Display displaY optional, // '28'O
DSS1_RestartIndicator restartIndicator
} with { variant "" };
//****************************************************************************
// 4.1.21. Resume
//****************************************************************************
type record PDU_DSS1_Resume {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('26'O),
DSS1_CallIdentity callIdentity optional // '10'O
} with { variant "" };
//****************************************************************************
// 4.1.22. Resume Acknowledge
//****************************************************************************
type record PDU_DSS1_ResumeAcknowledge {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('2E'O),
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_ChannelIdentification_list channelIdentification, // '18'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_Display displaY optional, // '28'O
DSS1_KeypadFacility keypadFacility optional, // '2C'O
DSS1_ChargeAdvice chargeAdvice optional // '1A'O
} with { variant "" };
//****************************************************************************
// 4.1.23. Resume Reject
//****************************************************************************
type record PDU_DSS1_ResumeReject {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('22'O),
DSS1_Cause_list cause, // '08'O
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_Display displaY optional, // '28'O
DSS1_KeypadFacility keypadFacility optional, // '2C'O
DSS1_ChargeAdvice chargeAdvice optional // '1A'O
} with { variant "" };
//****************************************************************************
// 4.1.24. Retreive
//****************************************************************************
type record PDU_DSS1_Retrieve {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('31'O),
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_ChannelIdentification_list channelIdentification optional, // '18'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_NotificationIndicator_list notificationIndicator optional // '27'O
} with { variant "" };
//****************************************************************************
// 4.1.25. Retreive acknowledge
//****************************************************************************
type record PDU_DSS1_RetrieveAcknowledge {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('33'O),
DSS1_ChannelIdentification_list channelIdentification optional, // '18'O
DSS1_Display displaY optional // '28'O
} with { variant "" };
//****************************************************************************
// 4.1.26. Retreive Reject
//****************************************************************************
type record PDU_DSS1_RetrieveReject {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('37'O),
DSS1_Cause_list cause, // '08'O
DSS1_Display displaY optional // '28'O
} with { variant "" };
//****************************************************************************
// 4.1.27. Segment
//****************************************************************************
type record PDU_DSS1_Segment {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('60'O),
DSS1_SegmentedMessage segmentedMessage, // '00'O
OCTN octetsOfTheSegmentedMessage
} with { variant "" };
//****************************************************************************
// 4.1.28. Setup
//****************************************************************************
type record PDU_DSS1_Setup {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('05'O),
DSS1_SendingComplete sendingComplete optional, // 'A1'O
DSS1_BearerCapability bearerCapability,
DSS1_VPNIndicator vPNIndicator optional, // '05'O
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_ChannelIdentification_list channelIdentification optional, // '18'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_ProgressIndicator_list progressIndicator optional, // '1E'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional, // '28'O
DSS1_DateTime dateTime optional, // '29'O
DSS1_KeypadFacility keypadFacility optional, // '2C'O
DSS1_CallingNumber_list callingNumber optional, // '6C'O
DSS1_CallingSubaddress callingSubaddress optional, // '6D'O
DSS1_CalledNumber_list calledNumber optional, // '70'O
DSS1_CalledSubaddress calledSubaddress optional, // '71'O
DSS1_RedirectingNumber redirectingNumber optional, // '76'O
DSS1_TransitNetworkSelection transitNetworkSelection optional, // '78'O
DSS1_LowLayerCompatibility lowLayerCompatibility optional, // '7C'O
DSS1_HighLayerCompatibility_list highLayerCompatibility optional, // '7D'O
DSS1_UserUser userUser optional, // '7E'O
DSS1_TransitCounter transitCounter optional, // '31'O
DSS1_ISPBXAdditionalInfo iSPBXAdditionalInfo optional // '01'O
} with { variant "" };
//****************************************************************************
// 4.1.29. Setup acknowledge
//****************************************************************************
type record PDU_DSS1_SetupAcknowledge {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('0D'O),
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_ChannelIdentification_list channelIdentification optional, // '18'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_ProgressIndicator_list progressIndicator optional, // '1E'O
DSS1_NotificationIndicator_list notificationIndicator optional, // '27'O
DSS1_Display displaY optional // '28'O
} with { variant "" };
//****************************************************************************
// 4.1.30. Status
//****************************************************************************
type record PDU_DSS1_Status {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('7D'O),
DSS1_Cause_list cause, // '08'O
DSS1_CallState callState,
DSS1_Display displaY optional // '28'O
} with { variant "" };
//****************************************************************************
// 4.1.31. Status enquiry
//****************************************************************************
type record PDU_DSS1_StatusEnquiry {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('75'O),
DSS1_Display displaY optional // '28'O
} with { variant "" };
//****************************************************************************
// 4.1.32. Suspend
//****************************************************************************
type record PDU_DSS1_Suspend {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('25'O),
DSS1_CallIdentity callIdentity optional // '10'O
} with { variant "" };
//****************************************************************************
// 4.1.33. Suspend Acknowledge
//****************************************************************************
type record PDU_DSS1_SuspendAcknowledge {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('2D'O),
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_Display displaY optional, // '28'O
DSS1_KeypadFacility keypadFacility optional, // '2C'O
DSS1_ChargeAdvice chargeAdvice optional // '1A'O
} with { variant "" };
//****************************************************************************
// 4.1.34. Suspend Reject
//****************************************************************************
type record PDU_DSS1_SuspendReject {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('21'O),
DSS1_Cause_list cause, // '08'O
DSS1_Display displaY optional // '28'O
} with { variant "" };
//****************************************************************************
// 4.1.35. User information
//****************************************************************************
type record PDU_DSS1_UserInformation {
OCT1 protocolDiscriminator ('08'O),
DSS1_CallReference callReference,
OCT1 messageType ('20'O),
DSS1_MoreData moreData optional, // 'A0'O
DSS1_ExtendedFacility_list extendedFacility optional, // '0D'O
DSS1_Facility_list facility optional, // '1C'O
DSS1_UserUser userUser optional // '7E'O
} with { variant "" };
// **************************************************************************
// * 4.1 The container type of all DSS1 messages
// * Ref:13/155 17-CRT 288 01 Uen Rev. C
// **************************************************************************
type union PDU_DSS1 {
PDU_DSS1_Alerting alerting,
PDU_DSS1_CallProceeding callProceeding,
PDU_DSS1_CongestionControl congestionControl,
PDU_DSS1_Connect dss1_connect,
PDU_DSS1_ConnectAcknowledge connectAcknowledge,
PDU_DSS1_Disconnect dss1_disconnect,
PDU_DSS1_Facility facility,
PDU_DSS1_Hold hold,
PDU_DSS1_HoldAcknowledge holdAcknowledge,
PDU_DSS1_HoldReject holdReject,
PDU_DSS1_Information information,
PDU_DSS1_NationalRegister nationalRegister,
PDU_DSS1_NationalRegisterAcknowledge nationalRegisterAcknowledge,
PDU_DSS1_Notify notify,
PDU_DSS1_Progress progress,
PDU_DSS1_Register register,
PDU_DSS1_Release release,
PDU_DSS1_ReleaseComplete releaseComplete,
PDU_DSS1_Restart restart,
PDU_DSS1_RestartAcknowledge restartAcknowledge,
PDU_DSS1_Resume resume,
PDU_DSS1_ResumeAcknowledge resumeAcknowledge,
PDU_DSS1_ResumeReject resumeReject,
PDU_DSS1_Retrieve retrieve,
PDU_DSS1_RetrieveAcknowledge retrieveAcknowledge,
PDU_DSS1_RetrieveReject retrieveReject,
PDU_DSS1_Segment segment,
PDU_DSS1_Setup setup,
PDU_DSS1_SetupAcknowledge setupAcknowledge,
PDU_DSS1_Status status,
PDU_DSS1_StatusEnquiry statusEnquiry,
PDU_DSS1_Suspend suspend,
PDU_DSS1_SuspendAcknowledge suspendAcknowledge,
PDU_DSS1_SuspendReject suspendReject,
PDU_DSS1_UserInformation userInformation
} with {variant "TAG (
alerting, messageType = '01'O;
callProceeding, messageType = '02'O;
congestionControl, messageType = '79'O;
dss1_connect, messageType = '07'O;
connectAcknowledge, messageType = '0F'O;
dss1_disconnect, messageType = '45'O;
facility, messageType = '62'O;
hold, messageType = '24'O;
holdAcknowledge, messageType = '28'O;
holdReject, messageType = '30'O;
information, messageType = '7B'O;
nationalRegister, messageType = '64'O;
nationalRegisterAcknowledge, messageType = '6C'O;
notify, messageType = '6E'O;
progress, messageType = '03'O;
register, messageType = '64'O;
release, messageType = '4D'O;
releaseComplete, messageType = '5A'O;
restart, messageType = '46'O;
restartAcknowledge, messageType = '4E'O;
resume, messageType = '26'O;
resumeAcknowledge, messageType = '2E'O;
resumeReject, messageType = '22'O;
retrieve, messageType = '31'O;
retrieveAcknowledge, messageType = '33'O;
retrieveReject, messageType = '37'O;
segment, messageType = '60'O;
setup, messageType = '05'O;
setupAcknowledge, messageType = '0D'O;
status, messageType = '7D'O;
statusEnquiry, messageType = '75'O;
suspend, messageType = '25'O;
suspendAcknowledge, messageType = '2D'O;
suspendReject, messageType = '21'O;
userInformation, messageType = '20'O)"};
//=========================================================================
// Signatures
//=========================================================================
// Insert signature definitions here if applicable!
// You can use the signature skeleton!
//=========================================================================
//Port Types
//=========================================================================
// Insert port type defintions here if applicable!
// You can use the port_type skeleton!
//=========================================================================
//Component Types
//=========================================================================
// Insert component type dedfintions here if applicable!
// You can use the component_type skeleton!
//=========================================================================
// Constants
//=========================================================================
// Insert constants here if applicable!
// You can use the constant skeleton!
//=========================================================================
// Templates
//=========================================================================
// Insert templates here if applicable!
// You can use the template skeleton!
//=========================================================================
// Altsteps
//=========================================================================
// Insert altsteps here if applicable!
// You can use the altstep skeleton!
//=========================================================================
// Functions
//=========================================================================
// Insert functions here if applicable!
// You can use the function skeleton!
//=========================================================================
// Testcases
//=========================================================================
// Insert test cases here if applicable!
// You can use the test_case skeleton!
//=========================================================================
// Control
//=========================================================================
// Insert control part here if applicable!
// You can use the control_part skeleton!
}with{ encode "RAW"} // end of module