R3C
diff --git a/DSS1_ETSI_CNL113435.tpd b/DSS1_ETSI_CNL113435.tpd
new file mode 100644
index 0000000..a2d68c1
--- /dev/null
+++ b/DSS1_ETSI_CNL113435.tpd
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>DSS1_ETSI_CNL113435</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/DSS1_ETSI_ProtocolModule.grp" relativeURI="src/DSS1_ETSI_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/DSS1_EncDec.cc" relativeURI="src/DSS1_EncDec.cc"/>
+    <FileResource projectRelativePath="src/DSS1_Types.ttcn" relativeURI="src/DSS1_Types.ttcn"/>
+    <FileResource projectRelativePath="src/Facility_EncDec.cc" relativeURI="src/Facility_EncDec.cc"/>
+    <FileResource projectRelativePath="src/Facility_IE_Defs.asn" relativeURI="src/Facility_IE_Defs.asn"/>
+    <FileResource projectRelativePath="src/Facility_Operations.asn" relativeURI="src/Facility_Operations.asn"/>
+    <FileResource projectRelativePath="src/Facility_Types.ttcn" relativeURI="src/Facility_Types.ttcn"/>
+    <FileResource projectRelativePath="src/Revised_Addressing_Data_Elements.asn" relativeURI="src/Revised_Addressing_Data_Elements.asn"/>
+    <FileResource projectRelativePath="src/Revised_Advice_of_Charge_Interaction_Operations.asn" relativeURI="src/Revised_Advice_of_Charge_Interaction_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_Advice_of_Charge_Operations.asn" relativeURI="src/Revised_Advice_of_Charge_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_Basic_Service_Elements.asn" relativeURI="src/Revised_Basic_Service_Elements.asn"/>
+    <FileResource projectRelativePath="src/Revised_CCBS_Operation_and_Errors.asn" relativeURI="src/Revised_CCBS_Operation_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_CCBS_private_networks_Operations_and_Errors.asn" relativeURI="src/Revised_CCBS_private_networks_Operations_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_Closed_User_Group_Service_Operations.asn" relativeURI="src/Revised_Closed_User_Group_Service_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_Conference_Add_On_Operations.asn" relativeURI="src/Revised_Conference_Add_On_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_Diversion_Operations.asn" relativeURI="src/Revised_Diversion_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_Embedded_Q931_Types.asn" relativeURI="src/Revised_Embedded_Q931_Types.asn"/>
+    <FileResource projectRelativePath="src/Revised_Explicit_Call_Transfer_Operations_and_Errors.asn" relativeURI="src/Revised_Explicit_Call_Transfer_Operations_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_Explicit_Network_Controlled_Channel_Reservation.asn" relativeURI="src/Revised_Explicit_Network_Controlled_Channel_Reservation.asn"/>
+    <FileResource projectRelativePath="src/Revised_Facility_Information_Element_Components.asn" relativeURI="src/Revised_Facility_Information_Element_Components.asn"/>
+    <FileResource projectRelativePath="src/Revised_Freephone_Operations.asn" relativeURI="src/Revised_Freephone_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_General_Errors.asn" relativeURI="src/Revised_General_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_MCID_Operations.asn" relativeURI="src/Revised_MCID_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_MWI_Operations_and_Errors.asn" relativeURI="src/Revised_MWI_Operations_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_Notification_Indicator_IE_Data_Structure.asn" relativeURI="src/Revised_Notification_Indicator_IE_Data_Structure.asn"/>
+    <FileResource projectRelativePath="src/Revised_Outgoing_Call_Barring_Operations_and_Errors.asn" relativeURI="src/Revised_Outgoing_Call_Barring_Operations_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_Set_Operations_and_Errors.asn" relativeURI="src/Revised_Set_Operations_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_Status_Request_Procedure.asn" relativeURI="src/Revised_Status_Request_Procedure.asn"/>
+    <FileResource projectRelativePath="src/Revised_Three_Party_Operations.asn" relativeURI="src/Revised_Three_Party_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_UUS_Operations.asn" relativeURI="src/Revised_UUS_Operations.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/DSS1_ETSI_CNL113435</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/src/DSS1_ETSI_ProtocolModule.grp b/src/DSS1_ETSI_ProtocolModule.grp
new file mode 100644
index 0000000..aeb1a2f
--- /dev/null
+++ b/src/DSS1_ETSI_ProtocolModule.grp
@@ -0,0 +1,50 @@
+<!--
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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_ETSI_ProtocolModule.grp
+//  Description:        MAP v1 Protocol Module group file
+//  Rev:                <RnXnn>
+//  Prodnr:             CNL 113 435
+//  Updated:            2012-05-14
+//  Contact:            http://ttcn.ericsson.se
+//
+-->
+
+<!DOCTYPE TITAN_GUI_FileGroup_file>
+<File_Group name="DSS1_ETSI_ProtocolModule" >
+    <File path="DSS1_Types.ttcn" />
+    <File path="Facility_IE_Defs.asn" />
+    <File path="Facility_Operations.asn" />
+    <File path="Facility_Types.ttcn" />
+    <File path="Revised_Addressing_Data_Elements.asn" />
+    <File path="Revised_Advice_of_Charge_Interaction_Operations.asn" />
+    <File path="Revised_Advice_of_Charge_Operations.asn" />
+    <File path="Revised_Basic_Service_Elements.asn" />
+    <File path="Revised_CCBS_Operation_and_Errors.asn" />
+    <File path="Revised_CCBS_private_networks_Operations_and_Errors.asn" />
+    <File path="Revised_Closed_User_Group_Service_Operations.asn" />
+    <File path="Revised_Conference_Add_On_Operations.asn" />
+    <File path="Revised_Diversion_Operations.asn" />
+    <File path="Revised_Embedded_Q931_Types.asn" />
+    <File path="Revised_Explicit_Call_Transfer_Operations_and_Errors.asn" />
+    <File path="Revised_Explicit_Network_Controlled_Channel_Reservation.asn" />
+    <File path="Revised_Facility_Information_Element_Components.asn" />
+    <File path="Revised_Freephone_Operations.asn" />
+    <File path="Revised_General_Errors.asn" />
+    <File path="Revised_MCID_Operations.asn" />
+    <File path="Revised_MWI_Operations_and_Errors.asn" />
+    <File path="Revised_Notification_Indicator_IE_Data_Structure.asn" />
+    <File path="Revised_Outgoing_Call_Barring_Operations_and_Errors.asn" />
+    <File path="Revised_Set_Operations_and_Errors.asn" />
+    <File path="Revised_Status_Request_Procedure.asn" />
+    <File path="Revised_Three_Party_Operations.asn" />
+    <File path="Revised_UUS_Operations.asn" />
+</File_Group> 
diff --git a/src/DSS1_EncDec.cc b/src/DSS1_EncDec.cc
new file mode 100644
index 0000000..14d827d
--- /dev/null
+++ b/src/DSS1_EncDec.cc
@@ -0,0 +1,20 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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_EncDec.cc
+//  Rev:                <RnXnn>
+//  Prodnr:             CNL 113 435
+//  Updated:            2007-07-17
+//  Contact:            http://ttcn.ericsson.se
+///////////////////////////////////////////////////////////////////////////////
+
+// Please note: Because the encoder/decoder functions are generated by the 
+// TITAN, the DSS1_EncDec.cc is kept only for compatibility issue and 
+// should be removed from the projects.
diff --git a/src/DSS1_Types.ttcn b/src/DSS1_Types.ttcn
new file mode 100644
index 0000000..daa030d
--- /dev/null
+++ b/src/DSS1_Types.ttcn
@@ -0,0 +1,1915 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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
diff --git a/src/Facility_EncDec.cc b/src/Facility_EncDec.cc
new file mode 100644
index 0000000..c781063
--- /dev/null
+++ b/src/Facility_EncDec.cc
@@ -0,0 +1,20 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:               Facility_EncDec.cc
+//  Description:        Encoder/decoder for Facility Information element
+//  Prodnr:             CNL 113 435
+//  Rev:                <RnXnn>
+//  Updated:            2007-07-17
+//  Contact:            http://ttcn.ericsson.se
+
+// Please note: Because the encoder/decoder functions are generated by the 
+// TITAN, the BICC_ANSI_EncDec.cc is kept only for compatibility issue and 
+// should be removed from the projects.
diff --git a/src/Facility_IE_Defs.asn b/src/Facility_IE_Defs.asn
new file mode 100644
index 0000000..b38bc5f
--- /dev/null
+++ b/src/Facility_IE_Defs.asn
@@ -0,0 +1,49 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:               Facility_IE_Defs.asn
+//  Prodnr:             CNL 113 435
+//  Rev:                <RnXnn>
+//  Updated:            2006-01-12
+//  Contact:            http://ttcn.ericsson.se
+//  Reference:          
+*/ 
+Facility-IE-Defs 
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+Supported-Facility-Operations
+FROM
+  Facility-Operations
+
+
+
+OPERATION, ERROR
+FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+  remote-operations(4) informationObjects(5) version1(0)}
+	  
+ROS{}, Invoke{}, ReturnResult{}, ReturnError{},
+-- Invoke-help{}, ReturnResult-help{}, ReturnError-help{},
+Errors{}, GFPInvokeIDSet
+FROM Revised-Facility-Information-Element-Components
+  {itu-t identified-organization etsi(0) 196 
+  revised-facility-information-element-component(11)}
+;
+
+Facility-IE ::= ROS{{GFPInvokeIDSet}, {Supported-Facility-Operations},
+ {Supported-Facility-Operations}}
+
+
+END
diff --git a/src/Facility_Operations.asn b/src/Facility_Operations.asn
new file mode 100644
index 0000000..d783f5d
--- /dev/null
+++ b/src/Facility_Operations.asn
@@ -0,0 +1,257 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:               Facility_Operations.asn
+//  Prodnr:             CNL 113 435
+//  Rev:                <RnXnn>
+//  Updated:            2012-06-27
+//  Contact:            http://ttcn.ericsson.se
+//  Reference:          
+*/ 
+Facility-Operations
+
+DEFINITIONS
+
+::=
+
+BEGIN
+
+IMPORTS
+
+OPERATION
+FROM Remote-Operations-Information-Objects {
+joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+ statusRequest
+FROM Revised-Status-Request-Procedure 
+ { itu-t identified-organization etsi(0) 196 
+   revised-status-request-procedure(17)}
+
+  explicitReservationCreationControl,
+  explicitReservationManagement,
+  explicitReservationCancel
+FROM Revised-Explicit-Network-Controlled-Channel-Reservation 
+{ itu-t identified-organization etsi(0) 196
+  revised-explicit-network-controlled-channel-reservation(12)}
+  
+  userUserService
+FROM Revised-UUS-Operations 
+{itu-t identified-organization etsi (0) 286 operations-and-errors (1)} 
+
+  
+  begin3PTY,
+  end3PTY
+FROM Revised-Three-Party-Operations 
+{itu-t identified-organization etsi (0) 188 operations-and-types (1)}
+
+  
+  activationOcb,
+  activationStatusNotificationOcb,
+  deactivationOcb,
+  deactivationStatusNotificationOcb,
+  interrogationOcb,
+  disableOcb,
+  ocbInvoked
+FROM Revised-Outgoing-Call-Barring-Operations-and-Errors 
+{itu-t identified-organization etsi(0) 1001 operations-and-errors(1)}
+
+  
+  mWIActivate,
+  mWIDeactivate,
+  mWIIndicate
+FROM Revised-MWI-Operations-and-Errors 
+{itu-t identified-organization etsi (0) 745 operations-and-errors (1)}
+
+  
+  mCIDRequest
+FROM Revised-MCID-Operations 
+{itu-t identified-organization etsi (0) 130 operations-and-errors (1)} 
+
+  
+  callFPH 
+FROM Revised-Freephone-Operations  
+{itu-t identified-organization etsi (0) 210 operations-and-errors (1)}
+
+  
+  chargingRequest,
+  aOCSCurrency,
+  aOCSSpecialArr,
+  aOCDCurrency,
+  aOCDChargingUnit,
+  aOCECurrency,
+  aOCEChargingUnit
+FROM Revised-Advice-of-Charge-Operations 
+{itu-t identified-organization etsi (0) 182 operations-and-errors (1)}
+
+  
+  callInfoRetain,
+  eraseCallLinkageID,
+  cCBSRequest,
+  cCBSDeactivate,
+  cCBSInterrogate,
+  cCBSErase,
+  cCBSRemoteUserFree,
+  cCBSCall,
+  cCBSStatusRequest,
+  cCBSBFree,
+  cCBSStopAlerting
+FROM Revised-CCBS-Operation-and-Errors 
+{itu-t identified-organization etsi(0) 359 operations-and-errors (1)}
+  
+  
+  cUGCall
+FROM Revised-Closed-User-Group-Service-Operations 
+{itu-t identified-organization etsi (0) 138 operations-and-errors (1)}
+
+
+  cCBS-T-Request,
+  cCBS-T-Call,
+  cCBS-T-Suspend,
+  cCBS-T-Resume,
+  cCBS-T-RemoteUserFree,
+  cCBS-T-Available
+FROM Revised-CCBS-private-networks-Operations-and-Errors 
+{itu-t identified-organization etsi (0) 359 private-networks-operations-and-errors (2)}
+
+  
+  beginCONF,
+  addCONF,
+  splitCONF,
+  dropCONF,
+  isolateCONF,
+  reattachCONF,
+  partyDISC
+FROM Revised-Conference-Add-On-Operations 
+{itu-t identified-organization etsi (0) 185 operations-and-types (1)}  
+  
+  activationDiversion,
+  deactivationDiversion,
+  activationStatusNotificationDiv,
+  deactivationStatusNotificationDiv,
+  interrogationDiversion,
+  interrogateServedUserNumbers,
+  diversionInformation,
+  callDeflection,
+  callRerouting,
+  divertingLegInformation1,
+  divertingLegInformation2,
+  divertingLegInformation3
+FROM Revised-Diversion-Operations 
+{itu-t identified-organization etsi (0) 207 operations-and-errors (1)}  
+  
+  ectLinkIdRequest,
+  ectExecute,
+  requestSubaddress,
+  subaddressTransfer,
+  explicitEctExecute,  
+  ectLoopTest,
+  ectInform
+FROM Revised-Explicit-Call-Transfer-Operations-and-Errors 
+{itu-t identified-organization etsi (0) 369 operations-and-errors (1)}  
+  
+  identificationOfCharge 
+FROM Revised-Advice-of-Charge-Interaction-Operations 
+{itu-t identified-organization etsi (0) 195 operations-and-errors (1)};   
+  
+
+Supported-Facility-Operations OPERATION ::= 
+  {
+  statusRequest |
+
+  explicitReservationCreationControl |
+  explicitReservationManagement |
+  explicitReservationCancel |
+
+  userUserService |
+  
+  begin3PTY |
+  end3PTY |
+  
+  activationOcb |
+  activationStatusNotificationOcb |
+  deactivationOcb |
+  deactivationStatusNotificationOcb |
+  interrogationOcb |
+  disableOcb |
+  ocbInvoked |
+  
+  mWIActivate |
+  mWIDeactivate |
+  mWIIndicate |
+  
+  mCIDRequest |
+  
+  callFPH | 
+  
+  chargingRequest |
+  aOCSCurrency |
+  aOCSSpecialArr |
+  aOCDCurrency |
+  aOCDChargingUnit |
+  aOCECurrency |
+  aOCEChargingUnit |
+  
+  callInfoRetain |
+  eraseCallLinkageID |
+  cCBSRequest |
+  cCBSDeactivate |
+  cCBSInterrogate |
+  cCBSErase |
+  cCBSRemoteUserFree |
+  cCBSCall |
+  cCBSStatusRequest |
+  cCBSBFree |
+  cCBSStopAlerting |
+  
+  cUGCall |
+
+  cCBS-T-Request |
+  cCBS-T-Call |
+  cCBS-T-Suspend |
+  cCBS-T-Resume |
+  cCBS-T-RemoteUserFree |
+  cCBS-T-Available |
+  
+  beginCONF |
+  addCONF |
+  splitCONF |
+  dropCONF |
+  isolateCONF |
+  reattachCONF |
+  partyDISC |
+  
+  activationDiversion |
+  deactivationDiversion |
+  activationStatusNotificationDiv |
+  deactivationStatusNotificationDiv |
+  interrogationDiversion |
+  interrogateServedUserNumbers |
+  diversionInformation |
+  callDeflection |
+  callRerouting |
+  divertingLegInformation1 |
+  divertingLegInformation2 |
+  divertingLegInformation3 |
+  
+  ectLinkIdRequest |
+  ectExecute |
+  requestSubaddress |
+  subaddressTransfer |
+  explicitEctExecute |
+  ectLoopTest |
+  ectInform |
+  
+  identificationOfCharge 
+  
+  }
+
+
+END
diff --git a/src/Facility_Types.ttcn b/src/Facility_Types.ttcn
new file mode 100644
index 0000000..f5744d4
--- /dev/null
+++ b/src/Facility_Types.ttcn
@@ -0,0 +1,47 @@
+ ///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Facility_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:      2007-07-17
+//  Contact:      http://ttcn.ericsson.se
+//
+
+module Facility_Types
+{
+
+//=========================================================================
+// Import Part
+//=========================================================================
+import from Facility_IE_Defs all;
+import from General_Types all;
+
+//=========================================================================
+// External functions
+//=========================================================================
+external function enc_Facility_IE ( in Facility_IE pdu ) return octetstring
+ with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };
+external function dec_Facility_IE ( in octetstring stream ) return Facility_IE
+ with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
+
+external function enc_Facility_IE_fast(in Facility_IE pdu, out octetstring stream)
+ with { extension "prototype(fast) encode(BER:BER_ENCODE_DER)" }; 
+ 
+external function dec_Facility_IE_backtrack(in octetstring stream,out Facility_IE pdu) return integer
+ with { extension "prototype(backtrack) decode(BER:BER_ACCEPT_ALL)" };
+
+}//module
diff --git a/src/Revised_Addressing_Data_Elements.asn b/src/Revised_Addressing_Data_Elements.asn
new file mode 100644
index 0000000..bcd2efe
--- /dev/null
+++ b/src/Revised_Addressing_Data_Elements.asn
@@ -0,0 +1,163 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Addressing_Data_Elements.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 196-1 V1.3.2 (2001-06)
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2006.01.10.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Addressing-Data-Elements {itu-t identified-organization etsi(0) 196 revised-addressing-data-elements(14)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS	PresentedAddressScreened, PresentedAddressUnscreened, PresentedNumberScreened, PresentedNumberUnscreened, Address, PartyNumber, PartySubaddress, ScreeningIndicator, PresentationAllowedIndicator;
+
+IMPORTS;
+
+PresentedAddressScreened ::= CHOICE {
+						presentationAllowedAddress [0] IMPLICIT AddressScreened,
+						presentationRestricted [1] IMPLICIT NULL,
+						numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+						presentationRestrictedAddress [3] IMPLICIT AddressScreened }
+
+PresentedAddressUnscreened ::= CHOICE {
+						presentationAllowedAddress [0] IMPLICIT Address,
+						presentationRestricted [1] IMPLICIT NULL,
+						numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+						presentationRestrictedAddress [3] IMPLICIT Address}
+
+PresentedNumberScreened ::= CHOICE {
+						presentationAllowedNumber [0] IMPLICIT NumberScreened,
+						presentationRestricted [1] IMPLICIT NULL,
+						numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+						presentationRestrictedNumber [3] IMPLICIT NumberScreened}
+
+PresentedNumberUnscreened ::= CHOICE {
+						presentationAllowedNumber [0] PartyNumber,
+						presentationRestricted [1] IMPLICIT NULL,
+						numberNotAvailableDueToInterworking [2] IMPLICIT NULL,
+						presentationRestrictedNumber [3] PartyNumber}
+
+AddressScreened ::= SEQUENCE {
+						partyNumber PartyNumber,  --anonymous Notation is no longer supported in X.680
+						screeningIndicator ScreeningIndicator,
+						partySubaddress PartySubaddress OPTIONAL}
+
+NumberScreened ::= SEQUENCE {
+						partyNumber PartyNumber,
+						screeningIndicator ScreeningIndicator}
+
+Address ::= SEQUENCE {
+						partyNumber PartyNumber,
+						partySubaddress PartySubaddress OPTIONAL}
+
+PartyNumber                     ::= CHOICE {
+                                        unknownPartyNumber [0] IMPLICIT NumberDigits,
+                                        -- the numbering plan is the default numbering plan of the
+                                        -- network. It is recommended that this value is used.
+                                        publicPartyNumber [1] IMPLICIT PublicPartyNumber,
+                                        -- the numbering plan is according to
+                                        -- ITU-T Recommendation E.164.
+										nsapEncodedNumber [2] IMPLICIT NsapEncodedNumber,
+										-- ATM endsystem address encoded as an NSAP address.
+                                        dataPartyNumber [3] IMPLICIT NumberDigits,
+                                        -- not used, value reserved.
+                                        telexPartyNumber [4] IMPLICIT NumberDigits,
+                                        -- not used, value reserved.
+                                        privatePartyNumber [5] IMPLICIT PrivatePartyNumber,
+                                        nationalStandardPartyNumber [8] IMPLICIT NumberDigits}
+                                        -- not used, value reserved.
+
+PublicPartyNumber ::= SEQUENCE {
+						publicTypeOfNumber PublicTypeOfNumber,
+						publicNumberDigits NumberDigits}
+
+NsapEncodedNumber 				::= OCTET STRING (SIZE(20))
+
+
+
+
+PrivatePartyNumber ::= SEQUENCE {
+						privateTypeOfNumber PrivateTypeOfNumber,
+						privateNumberDigits NumberDigits}
+
+NumberDigits ::= NumericString (SIZE(1..20))
+
+PublicTypeOfNumber ::= ENUMERATED {
+						unknown-PublicTypeOfNumber (0),
+							-- if used number digits carry prefix indicating type of
+							-- number according to national recommendations
+						internationalNumber (1),
+						nationalNumber (2),
+						networkSpecificNumber (3),
+							-- not used, value reserved
+						subscriberNumber (4),
+						abbreviated-PublicNumber (6)}
+							-- valid only for called party number at the outgoing
+							-- access, network substitutes appropriate number.
+
+PrivateTypeOfNumber ::= ENUMERATED {
+						unknownPrivateTypeOfNumber (0),
+						level2RegionalNumber (1),
+						level1RegionalNumber (2),
+						pTNSpecificNumber (3),
+						localNumber (4),
+						abbreviated-PrivateNumber (6)}
+
+PartySubaddress ::= CHOICE {
+						userSpecifiedSubaddress UserSpecifiedSubaddress,
+							-- not recommended
+						nSAPSubaddress NSAPSubaddress}
+							-- according to ITU-T Recommendation X.213
+
+UserSpecifiedSubaddress ::= SEQUENCE {
+						subaddressInformation SubaddressInformation,
+						oddCountIndicator BOOLEAN OPTIONAL}
+							-- used when the coding of subaddress is BCD
+
+NSAPSubaddress ::= OCTET STRING (SIZE(1..20))
+						-- specified according to ITU-T Recommendation X.213. Some
+						-- networks may limit the subaddress value to some other
+						-- length, e.g. 4 octets
+
+SubaddressInformation ::= OCTET STRING (SIZE(1..20))
+						-- coded according to user requirements. Some networks may
+						-- limit the subaddress value to some other length,
+						-- e.g. 4 octets
+
+ScreeningIndicator ::= ENUMERATED {
+					userProvidedNotScreened (0),
+						-- number was provided by a remote user terminal equipment,
+						-- and has been screened by a network that is not the
+						-- local public or local private network.
+					userProvidedVerifiedAndPassed (1),
+						-- number was provided by a remote user terminal equipment
+						-- (or by a remote private network), and has been screened
+						-- by the local public or local private network.
+					userProvidedVerifiedAndFailed (2),
+						-- not used, value reserved
+					networkProvided (3)}
+						-- number was provided by local public or local
+						-- private network
+
+PresentationAllowedIndicator ::= BOOLEAN
+
+END -- of Revised-Addressing-Data-Elements
diff --git a/src/Revised_Advice_of_Charge_Interaction_Operations.asn b/src/Revised_Advice_of_Charge_Interaction_Operations.asn
new file mode 100644
index 0000000..5bb6604
--- /dev/null
+++ b/src/Revised_Advice_of_Charge_Interaction_Operations.asn
@@ -0,0 +1,67 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Advice_of_Charge_Interaction_Operations.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 182-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Advice-of-Charge-Interaction-Operations {itu-t identified-organization etsi (0) 195 operations-and-errors (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+ 
+BEGIN
+
+ 
+  EXPORTS
+      identificationOfCharge;
+
+ 
+  IMPORTS
+      OPERATION
+    FROM Remote-Operations-Information-Objects
+    {joint-iso-itu-t remote-operations (4) notation (0)} 
+
+ 
+      notSubscribed,
+      notAvailable,
+      supplementaryServiceInteractionNotAllowed
+    FROM Revised-General-Errors
+    {itu-t identified-organization etsi (0) 196 general-errors (2)}
+
+      ChargingAssociation
+    FROM Revised-Advice-of-Charge-Operations
+    {itu-t identified-organization etsi (0) 182 operations-and-errors (1)};
+
+ 
+  identificationOfCharge OPERATION::=
+    {  
+      ARGUMENT
+          ChargingAssociation    
+ 
+      ERRORS {
+        notSubscribed |
+        notAvailable |
+        supplementaryServiceInteractionNotAllowed }    
+        
+      CODE local:37      
+    }
+
+END -- of Advice-of-Charge-Interaction-Operations 
diff --git a/src/Revised_Advice_of_Charge_Operations.asn b/src/Revised_Advice_of_Charge_Operations.asn
new file mode 100644
index 0000000..57cf9bb
--- /dev/null
+++ b/src/Revised_Advice_of_Charge_Operations.asn
@@ -0,0 +1,340 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Advice_of_Charge_Operations.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 182-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Advice-of-Charge-Operations  {itu-t identified-organization etsi (0) 182 operations-and-errors (1)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS
+  chargingRequest,
+  aOCSCurrency,
+  aOCSSpecialArr,
+  aOCDCurrency,
+  aOCDChargingUnit,
+  aOCECurrency,
+  aOCEChargingUnit,
+  noChargingInfoAvailable,
+  ChargingAssociation;
+  
+IMPORTS
+    OPERATION,
+    ERROR
+  FROM Remote-Operations-Information-Objects
+  {joint-iso-itu-t remote-operations (4) notation (0)}    
+    
+    notSubscribed,
+    notAvailable,
+    notImplemented,
+    invalidCallState
+  FROM Revised-General-Errors
+  {itu-t identified-organization etsi (0) 196 general-errors (2)}    
+  
+    PartyNumber
+  FROM Revised-Addressing-Data-Elements
+  {itu-t identified-organization etsi (0) 196 addressing-data-elements (6)};
+  
+  chargingRequest OPERATION ::=
+  {
+    ARGUMENT ChargingCase
+    
+    RESULT  CHOICE {
+      aOCSCurrencyInfoList  AOCSCurrencyInfoList,
+      aOCSSpecialArrInfo    AOCSSpecialArrInfo,
+      chargingInfoFollows   NULL  
+    }  
+    
+    CODE  local:30
+  }
+  
+  aOCSCurrency OPERATION ::=                    -- AOC-S given in currency units
+  {    
+    ARGUMENT CHOICE {
+      chargeNotAvailable    NULL,
+      aOCSCurrencyInfoList  AOCSCurrencyInfoList }
+      
+    CODE  local:31  
+  }
+ 
+  aOCSSpecialArr OPERATION ::=                  -- AOC-S for special charging arrangement
+  {      
+    ARGUMENT CHOICE {
+      chargeNotAvailable  NULL,
+      aOCSSpecialArrInfo  AOCSSpecialArrInfo }
+      
+    CODE  local:32  
+  }
+ 
+  aOCDCurrency OPERATION ::=                    -- AOC-D given in currency units
+  {    
+    ARGUMENT CHOICE {
+      chargeNotAvailable  NULL,
+      aOCDCurrencyInfo    AOCDCurrencyInfo }
+      
+    CODE local:33  
+  }
+ 
+  aOCDChargingUnit OPERATION ::=                -- AOC-D given in charging units
+  {    
+    ARGUMENT CHOICE {
+      chargeNotAvailable    NULL,
+      aOCDChargingUnitInfo  AOCDChargingUnitInfo }
+      
+    CODE local:34  
+  }
+ 
+  aOCECurrency OPERATION ::=                    -- AOC-E given in currency units
+  {    
+    ARGUMENT CHOICE {
+      chargeNotAvailable NULL,
+      aOCECurrencyInfo   AOCECurrencyInfo }
+      
+    CODE local:35  
+  }
+ 
+  aOCEChargingUnit OPERATION ::=                -- AOC-E given in charging units
+  {    
+    ARGUMENT CHOICE {
+      chargeNotAvailable    NULL,
+      aOCEChargingUnitInfo  AOCEChargingUnitInfo }
+      
+    CODE  local:36  
+  }
+ 
+  ChargingCase ::=
+      ENUMERATED {
+        chargingInformationAtCallSetup (0),
+        chargingDuringACall            (1),
+        chargingAtTheEndOfACall        (2) }
+
+ 
+  AOCSCurrencyInfoList ::= SEQUENCE SIZE (1..10) OF AOCSCurrencyInfo
+  
+  AOCSCurrencyInfo ::=
+      SEQUENCE {
+        chargedItem                ChargedItem,
+        cc                
+        CHOICE {
+          specificCurrency
+          CHOICE {
+            durationCurrency       [1] DurationCurrency,
+            flatRateCurrency       [2] FlatRateCurrency,
+            volumeRateCurrency     [3] VolumeRateCurrency },
+          specialChargingCode      SpecialChargingCode,
+          freeOfCharge             [4] NULL,
+          currencyInfoNotAvailable [5] NULL } }
+
+ 
+  AOCSSpecialArrInfo ::= INTEGER (1..10)
+
+ 
+  ChargedItem ::=
+      ENUMERATED {
+        basicCommunication              (0),
+        callAttempt                     (1),
+        callSetup                       (2),
+        userToUserInfo                  (3),
+        operationOfSupplementaryService (4) }
+
+ 
+  DurationCurrency ::=
+      SEQUENCE {
+        dCurrency     [1] Currency,
+        dAmount       [2] Amount,
+        dChargingType [3] ChargingType,
+        dTime         [4] Time,
+        dGranularity  [5] Time OPTIONAL }
+
+ 
+  FlatRateCurrency ::=
+      SEQUENCE {
+        fRCurrency    [1] Currency,
+        fRAmount      [2] Amount }
+
+ 
+  VolumeRateCurrency ::=
+      SEQUENCE {
+        vRCurrency     [1] Currency,
+        vRAmount       [2] Amount,
+        vRVolumeUnit   [3] VolumeUnit }
+
+ 
+  SpecialChargingCode ::= INTEGER (1..10)
+
+ 
+  AOCDCurrencyInfo ::=
+      CHOICE {
+        specificCurrency
+          SEQUENCE {
+            recordedCurrency   [1] RecordedCurrency,
+            typeOfChargingInfo [2] TypeOfChargingInfo,
+            aOCDBillingId      [3] AOCDBillingId OPTIONAL },
+        freeOfCharge           [1] NULL }
+
+ 
+  AOCDChargingUnitInfo ::=
+      CHOICE {
+        specificChargingUnits
+          SEQUENCE {
+            recordedUnitsList  [1] RecordedUnitsList,
+            typeOfChargingInfo [2] TypeOfChargingInfo,
+            aOCDBillingId      [3] AOCDBillingId OPTIONAL },
+        freeOfCharge           [1] NULL }
+
+ 
+  RecordedCurrency ::=
+      SEQUENCE {
+        rCurrency    [1] Currency,
+        rAmount      [2] Amount }
+
+ 
+  RecordedUnitsList ::= SEQUENCE SIZE (1..32) OF RecordedUnits
+
+ 
+  TypeOfChargingInfo ::=
+      ENUMERATED {
+        subTotal (0),
+        total    (1) }
+
+ 
+  RecordedUnits ::=
+      SEQUENCE {
+        cc CHOICE {
+          recordedNumberOfUnits NumberOfUnits,
+          notAvailable          NULL },
+        recordedTypeOfUnits     TypeOfUnit OPTIONAL }
+
+ 
+  AOCDBillingId ::=
+      ENUMERATED {
+        normalCharging     (0),
+        reverseCharging    (1),
+        creditCardCharging (2) }
+
+ 
+  AOCECurrencyInfo ::=
+      SEQUENCE {
+        cc CHOICE {
+          specificCurrency SEQUENCE {
+            recordedCurrency  [1] RecordedCurrency,
+            aOCEBillingId     [2] AOCEBillingId OPTIONAL },
+          freeOfCharge  [1] NULL },
+        chargingAssociation  ChargingAssociation OPTIONAL }
+
+ 
+  AOCEChargingUnitInfo ::=
+      SEQUENCE {
+        cc CHOICE {
+          specificChargingUnits  SEQUENCE {
+            recordedUnitsList  [1] RecordedUnitsList,
+            aOCEBillingId      [2] AOCEBillingId OPTIONAL },
+          freeOfCharge  [1] NULL },
+        chargingAssociation  ChargingAssociation OPTIONAL }
+
+  AOCEBillingId ::=
+      ENUMERATED {
+        normalCharging              (0),
+        reverseCharging             (1),
+        creditCardCharging          (2),
+        callForwardingUnconditional (3),
+        callForwardingBusy          (4),
+        callForwardingNoReply       (5),
+        callDeflection              (6),
+        callTransfer                (7) }
+
+ 
+  Currency ::= IA5String (SIZE (1..10))
+
+ 
+  Amount ::=
+      SEQUENCE {
+        currencyAmount [1] CurrencyAmount,
+        multiplier     [2] Multiplier }
+
+ 
+  CurrencyAmount ::= INTEGER (0..16777215)
+
+ 
+  Multiplier ::=
+      ENUMERATED {
+        oneThousandth (0),
+        oneHundredth  (1),
+        oneTenth      (2),
+        one           (3),
+        ten           (4),
+        hundred       (5),
+        thousand      (6) }
+
+ 
+  Time ::=
+      SEQUENCE {
+        lengthOfTimeUnit [1] LengthOfTimeUnit,
+        scale            [2] Scale }
+
+ 
+  LengthOfTimeUnit ::= INTEGER (0..16777215)
+
+  Scale ::=
+      ENUMERATED {
+        oneHundredthSecond (0),
+        oneTenthSecond     (1),
+        oneSecond          (2),
+        tenSeconds         (3),
+        oneMinute          (4),
+        oneHour            (5),
+        twentyFourHours    (6) }
+
+ 
+  VolumeUnit ::=
+      ENUMERATED {
+        octet   (0),
+        segment (1),
+        message (2) }
+
+ 
+  TypeOfUnit ::= INTEGER (1..16)     -- Value 1-16
+
+ 
+  NumberOfUnits ::= INTEGER (0..16777215)
+
+ 
+  ChargingType ::=
+      ENUMERATED {
+        continuousCharging (0),
+        stepFunction       (1) }
+
+ 
+  ChargingAssociation ::=
+      CHOICE {
+        chargeNumber      [0] EXPLICIT PartyNumber,
+        chargeIdentifier  ChargeIdentifier }
+
+ 
+  ChargeIdentifier ::= INTEGER (-32768..32767)
+  
+  noChargingInfoAvailable  ERROR ::= {CODE local:16}
+  
+
+END
diff --git a/src/Revised_Basic_Service_Elements.asn b/src/Revised_Basic_Service_Elements.asn
new file mode 100644
index 0000000..6167629
--- /dev/null
+++ b/src/Revised_Basic_Service_Elements.asn
@@ -0,0 +1,55 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Basic_Service_Elements.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 196-1 V1.3.2 (2001-06)
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2006.01.10.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Basic-Service-Elements {itu-t identified-organization etsi(0) 196 revised-basic-service-elements(16)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS BasicService;
+
+IMPORTS;
+
+BasicService ::= ENUMERATED {
+				allServices (0),
+				speech (1),
+				unrestrictedDigitalInformation (2),
+				audio3k1Hz (3),
+				unrestrictedDigitalInformationWithTonesAndAnnouncements (4),
+				multirate(5),
+				telephony3k1Hz (32),
+				teletex (33),
+				telefaxGroup4Class1 (34),
+				videotexSyntaxBased (35),
+				videotelephony (36),
+				telefaxGroup2-3 (37),
+				telephony7kHz (38),
+				euroFileTransfer (39),
+				fileTransferAndAccessManagement (40),
+				videoconference (41),
+				audioGraphicConference (42)
+				}
+
+END -- of Revised-Basic-Service-Elements
diff --git a/src/Revised_CCBS_Operation_and_Errors.asn b/src/Revised_CCBS_Operation_and_Errors.asn
new file mode 100644
index 0000000..639515b
--- /dev/null
+++ b/src/Revised_CCBS_Operation_and_Errors.asn
@@ -0,0 +1,282 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_CCBS_Operation_and_Errors.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 359-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-CCBS-Operation-and-Errors {itu-t identified-organization etsi(0) 359 operations-and-errors (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+ 
+BEGIN
+
+ 
+  EXPORTS
+      callInfoRetain,
+      eraseCallLinkageID,
+      cCBSRequest,
+      cCBSDeactivate,
+      cCBSInterrogate,
+      cCBSErase,
+      cCBSRemoteUserFree,
+      cCBSCall,
+      cCBSStatusRequest,
+      cCBSBFree,
+      cCBSStopAlerting,
+      invalidCallLinkageID,
+      invalidCCBSReference,
+      longTermDenial,
+      shortTermDenial,
+      cCBSIsAlreadyActivated,
+      alreadyAccepted,
+      outgoingCCBSQueueFull,
+      callFailureReasonNotBusy,
+      notReadyForCall;
+
+
+  IMPORTS
+      OPERATION,
+      ERROR
+    FROM Remote-Operations-Information-Objects
+    {joint-iso-itu-t remote-operations (4) notation (0)} 
+
+ 
+      notSubscribed,
+      supplementaryServiceInteractionNotAllowed
+    FROM Revised-General-Errors
+    {itu-t identified-organization etsi (0) 196 general-errors (2)}
+
+ 
+      Address,
+      PartyNumber,
+      PartySubaddress
+    FROM Revised-Addressing-Data-Elements
+    {itu-t identified-organization etsi (0) 196 addressing-data-elements (6)}
+
+ 
+      Q931InformationElement
+    FROM Revised-Embedded-Q931-Types
+    {itu-t identified-organization etsi (0) 196 embedded-q931-types (7)};
+
+  callInfoRetain OPERATION::=
+    {  
+      ARGUMENT CallLinkageID
+      
+      CODE global: {cCBSOID 1}
+    }
+ 
+  eraseCallLinkageID OPERATION::=
+    {
+      ARGUMENT CallLinkageID 
+      
+      CODE global: {cCBSOID 10}         
+    }
+ 
+  cCBSRequest OPERATION::=
+    {
+      ARGUMENT CallLinkageID      
+     
+      RESULT
+        SEQUENCE {
+          recallMode    RecallMode,
+          cCBCReference CCBSReference }
+
+ 
+      ERRORS {
+        notSubscribed |
+        invalidCallLinkageID |
+        shortTermDenial |
+        longTermDenial |
+        cCBSIsAlreadyActivated |
+        supplementaryServiceInteractionNotAllowed |
+        outgoingCCBSQueueFull |
+        callFailureReasonNotBusy }        
+        
+      CODE global: {cCBSOID 2}  
+    }
+
+ 
+  cCBSInterrogate OPERATION::=
+    {
+      ARGUMENT SEQUENCE {
+          cCBSReference     CCBSReference OPTIONAL,
+          partyNumberOfA    PartyNumber OPTIONAL }
+
+ 
+      RESULT SEQUENCE {
+        recallMode        RecallMode,
+        callDetails       CallDetails OPTIONAL }
+
+ 
+      ERRORS {
+        invalidCCBSReference |
+        notSubscribed }    
+        
+      CODE global: {cCBSOID 4}      
+    }
+
+ 
+  cCBSDeactivate OPERATION::=
+    {
+      ARGUMENT CCBSReference
+ 
+      ERRORS {
+        invalidCCBSReference }     
+        
+      CODE global: {cCBSOID 3}     
+    }
+
+ 
+  cCBSErase OPERATION::=
+    {
+      ARGUMENT SEQUENCE {
+          recallMode        RecallMode,
+          cCBSReference     CCBSReference,
+          addressOfB        Address,
+          q931InfoElement   Q931InformationElement,
+          eraseReason       CCBSEraseReason }
+          -- The Bearer capability, High layer compatibility (optional) and
+          -- Low layer compatibility (optional) information elements shall be
+          -- embedded in q931InfoElement. 
+          
+      CODE global: {cCBSOID 5}             
+    }
+
+ 
+  cCBSRemoteUserFree OPERATION::=
+    {  
+      ARGUMENT SEQUENCE {
+        recallMode        RecallMode,
+        cCBSReference     CCBSReference,
+        addressOfB        Address,
+        q931InfoElement   Q931InformationElement }
+          -- The Bearer capability, High layer compatibility (optional) and
+          -- Low layer compatibility (optional) information elements shall be
+          -- embedded in q931InfoElement.   
+          
+      CODE global: {cCBSOID 6}           
+    }
+
+ 
+  cCBSBFree OPERATION::=
+    {  
+      ARGUMENT SEQUENCE {
+          recallMode        RecallMode,
+          cCBSReference     CCBSReference,
+          addressOfB        Address,
+          q931InfoElement   Q931InformationElement }
+          -- The Bearer capability, High layer compatibility (optional) and
+          -- Low layer compatibility (optional) information elements shall be
+          -- embedded in q931InfoElement.  
+          
+      CODE global: {cCBSOID 9}            
+    }
+
+ 
+  cCBSCall OPERATION::=
+    {
+      ARGUMENT CCBSReference
+
+ 
+      ERRORS {
+        invalidCCBSReference |
+        alreadyAccepted |
+        notReadyForCall }  
+        
+      CODE global: {cCBSOID 7}        
+    }
+
+ 
+  cCBSStatusRequest OPERATION::=
+    {
+        ARGUMENT SEQUENCE {
+          recallMode        RecallMode,
+          cCBSReference     CCBSReference,
+          q931InfoElement   Q931InformationElement }
+          -- The Bearer capability, High layer compatibility (optional) and
+          -- Low layer compatibility (optional) information elements shall be
+          -- embedded in q931InfoElement.
+          
+ 
+        RESULT BOOLEAN -- free=TRUE, busy=FALSE    
+        
+        CODE global: {cCBSOID 8}    
+    }
+
+ 
+  cCBSStopAlerting OPERATION::=
+    {
+      ARGUMENT CCBSReference
+      
+      CODE global: {cCBSOID 11}          
+    }
+
+ 
+  CallDetails ::= SEQUENCE SIZE(1..5) OF CallInformation
+
+ 
+  CallInformation ::=
+      SEQUENCE {
+        addressOfB        Address,
+        q931InfoElement   Q931InformationElement,
+        cCBSReference     CCBSReference,
+        subAddressOfA     PartySubaddress OPTIONAL }
+        -- The Bearer capability, High layer compatibility (optional) and Low
+        -- layer compatibility (optional) information elements shall be
+        -- embedded in q931InfoElement.
+
+ 
+  CallLinkageID ::= INTEGER (0..127)
+  CCBSReference ::= INTEGER (0..127)
+
+ 
+  CCBSEraseReason ::=
+      ENUMERATED {
+        normal-unspecified (0),
+        t-CCBS2-timeout    (1),
+        t-CCBS3-timeout    (2),
+        basic-call-failed  (3) }
+
+ 
+  RecallMode ::=
+      ENUMERATED {
+        globalRecall   (0),
+        specificRecall (1) }
+
+ 
+  cCBSOID OBJECT IDENTIFIER ::= {itu-t identified-organization etsi (0) 359
+                                 operations-and-errors (1)}
+
+ 
+  invalidCallLinkageID         ERROR ::={ CODE global:{cCBSOID 20}}
+  invalidCCBSReference         ERROR ::={ CODE global:{cCBSOID 21}}
+  longTermDenial               ERROR ::={ CODE global:{cCBSOID 22}}
+  shortTermDenial              ERROR ::={ CODE global:{cCBSOID 23}}
+  cCBSIsAlreadyActivated       ERROR ::={ CODE global:{cCBSOID 24}}
+  alreadyAccepted              ERROR ::={ CODE global:{cCBSOID 25}}
+  outgoingCCBSQueueFull        ERROR ::={ CODE global:{cCBSOID 26}}
+  callFailureReasonNotBusy     ERROR ::={ CODE global:{cCBSOID 27}}
+  notReadyForCall              ERROR ::={ CODE global:{cCBSOID 28}}
+
+
+ 
+END -- of CCBS-Operations-and-Errors
diff --git a/src/Revised_CCBS_private_networks_Operations_and_Errors.asn b/src/Revised_CCBS_private_networks_Operations_and_Errors.asn
new file mode 100644
index 0000000..2428fd9
--- /dev/null
+++ b/src/Revised_CCBS_private_networks_Operations_and_Errors.asn
@@ -0,0 +1,125 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_CCBS_private_networks_Operations_and_Errors.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 359-2 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-CCBS-private-networks-Operations-and-Errors {itu-t identified-organization etsi (0) 359 private-networks-operations-and-errors (2)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+ 
+BEGIN
+
+ 
+  EXPORTS
+      cCBS-T-Request,
+      cCBS-T-Call,
+      cCBS-T-Suspend,
+      cCBS-T-Resume,
+      cCBS-T-RemoteUserFree,
+      cCBS-T-Available,
+      longTermDenial,
+      shortTermDenial;
+
+ 
+  IMPORTS
+      OPERATION,
+      ERROR
+    FROM Remote-Operations-Information-Objects
+    {joint-iso-itu-t remote-operations (4) notation (0)} 
+
+ 
+      notSubscribed
+    FROM Revised-General-Errors
+    {itu-t identified-organization etsi (0) 196 general-errors (2)}
+
+ 
+      Address
+    FROM Revised-Addressing-Data-Elements
+    {itu-t identified-organization etsi (0) 196 addressing-data-elements (6)}
+
+ 
+      Q931InformationElement
+    FROM Revised-Embedded-Q931-Types
+    {itu-t identified-organization etsi (0) 196 embedded-q931-types (7)};
+
+  cCBS-T-Request OPERATION::=
+    {
+        ARGUMENT SEQUENCE {
+          destinationAddress           Address,
+          q931InfoElement              Q931InformationElement,
+          retentionSupported           [1] IMPLICIT BOOLEAN DEFAULT FALSE,
+          presentationAllowedIndicator [2] IMPLICIT BOOLEAN OPTIONAL,
+          originatingAddress           Address OPTIONAL }
+          -- contains HLC, LLC and BC information
+          -- The use of presentationAllowedIndicator and originating-
+          -- Address is specified in ..ETS 300 195.. for the interaction
+          -- of CCBS and CLIP
+
+          RESULT  BOOLEAN -- Default False
+ 
+          ERRORS {
+            shortTermDenial |
+            notSubscribed |
+            longTermDenial }   
+            
+          CODE global:{cCBS-T-OID 1}           
+    }
+
+  cCBS-T-Call OPERATION ::=
+    {
+      CODE global:{cCBS-T-OID 2}
+    }  
+
+ 
+  cCBS-T-Suspend OPERATION ::=
+    {
+      CODE global:{cCBS-T-OID 3}
+    }
+
+ 
+  cCBS-T-Resume OPERATION::=
+    {
+      CODE global:{cCBS-T-OID 4}
+    }
+
+ 
+  cCBS-T-RemoteUserFree OPERATION::=
+    {
+      CODE global:{cCBS-T-OID 5}
+    }
+
+ 
+  cCBS-T-Available OPERATION::=
+    {
+      CODE global:{cCBS-T-OID 6}
+    }
+
+ 
+  cCBS-T-OID OBJECT IDENTIFIER ::= {itu-t identified-organization etsi (0) 359 private-network-operations-and-errors (2)}
+
+ 
+  longTermDenial   ERROR ::={CODE global:{cCBS-T-OID 20}}
+  shortTermDenial  ERROR ::={CODE global:{cCBS-T-OID 21}}
+
+ 
+END -- of CCBS-private-networks-operations-and-errors
diff --git a/src/Revised_Closed_User_Group_Service_Operations.asn b/src/Revised_Closed_User_Group_Service_Operations.asn
new file mode 100644
index 0000000..5ea9d51
--- /dev/null
+++ b/src/Revised_Closed_User_Group_Service_Operations.asn
@@ -0,0 +1,85 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Explicit_Call_Transfer_Operations_and_Errors.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 138-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Closed-User-Group-Service-Operations {itu-t identified-organization etsi (0) 138 operations-and-errors (1)}
+
+DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS 
+  cUGCall,
+  invalidOrUnregisteredCUGIndex,
+  requestedBasicServiceViolatesCUGConstraints,
+  outgoingCallsBarredWithinCUG,
+  incomingCallsBarredWithinCUG,
+  userNotMemberOfCUG,
+  inconsistencyInDesignatedFacilityAndSubscriberClass;
+  
+IMPORTS 
+    OPERATION,
+    ERROR
+  FROM Remote-Operations-Information-Objects
+  {joint-iso-itu-t remote-operations (4) notation (0)}
+
+    notSubscribed,
+    basicServiceNotProvided
+  FROM Revised-General-Errors
+  {itu-t identified-organization etsi (0) 196 general-errors (2)};    
+    
+  cUGCall OPERATION ::=
+  {
+    -- in Facility Information element. Invoked from calling user to
+    -- originating network side. Also from destination network side to
+    -- called user
+    ARGUMENT SEQUENCE {
+      oARequested  OARequested  DEFAULT  FALSE,
+      cUGIndex     CUGIndex     OPTIONAL }
+      
+    ERRORS {
+      invalidOrUnregisteredCUGIndex |
+      requestedBasicServiceViolatesCUGConstraints |
+      outgoingCallsBarredWithinCUG |
+      incomingCallsBarredWithinCUG |
+      userNotMemberOfCUG |
+      basicServiceNotProvided |
+      inconsistencyInDesignatedFacilityAndSubscriberClass |
+      notSubscribed }
+    
+    CODE  local:2      
+           
+  }
+  
+  OARequested ::= [1] IMPLICIT BOOLEAN
+ 
+  CUGIndex    ::= [2] IMPLICIT INTEGER (0..32767)
+  
+  invalidOrUnregisteredCUGIndex                        ERROR ::= {CODE local:16}
+  requestedBasicServiceViolatesCUGConstraints          ERROR ::= {CODE local:17}
+  outgoingCallsBarredWithinCUG                         ERROR ::= {CODE local:18}
+  incomingCallsBarredWithinCUG                         ERROR ::= {CODE local:19}
+  userNotMemberOfCUG                                   ERROR ::= {CODE local:20}  
+  inconsistencyInDesignatedFacilityAndSubscriberClass  ERROR ::= {CODE local:21}    
+  
+END
diff --git a/src/Revised_Conference_Add_On_Operations.asn b/src/Revised_Conference_Add_On_Operations.asn
new file mode 100644
index 0000000..b53f723
--- /dev/null
+++ b/src/Revised_Conference_Add_On_Operations.asn
@@ -0,0 +1,181 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Explicit_Call_Transfer_Operations_and_Errors.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 185-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Conference-Add-On-Operations {itu-t identified-organization etsi (0) 185 operations-and-types (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+ 
+EXPORTS
+  beginCONF,
+  addCONF,
+  splitCONF,
+  dropCONF,
+  isolateCONF,
+  reattachCONF,
+  partyDISC,
+  illConferenceId,
+  illPartyId,
+  identifyConferee,
+  numberOfPartiesExceeded,
+  notActive,
+  notAllowed,
+  PartyId,
+  ConferenceId,
+  ConfSize;
+
+IMPORTS
+    OPERATION,
+    ERROR
+  FROM Remote-Operations-Information-Objects
+  {joint-iso-itu-t remote-operations (4) notation (0)}
+
+ 
+    notSubscribed,
+    notAvailable,
+    supplementaryServiceInteractionNotAllowed,
+    resourceUnavailable,
+    invalidCallState
+  FROM Revised-General-Errors
+  {itu-t identified-organization etsi (0) 196 general-errors (2)};
+
+ 
+  beginCONF OPERATION::=
+    {    
+      ARGUMENT  ConfSize    -- optional
+       
+      RESULT SEQUENCE {
+        conferenceId  ConferenceId,
+        partyId       PartyId OPTIONAL }
+ 
+      ERRORS {
+        notSubscribed |
+        notAvailable |
+        resourceUnavailable |
+        invalidCallState |
+        numberOfPartiesExceeded }
+        
+      CODE local:40  
+    }
+ 
+  addCONF OPERATION::=
+    {    
+      ARGUMENT  ConferenceId
+     
+      RESULT  PartyId
+ 
+      ERRORS {
+        illConferenceId |
+        numberOfPartiesExceeded |
+        notAllowed |
+        supplementaryServiceInteractionNotAllowed |
+        invalidCallState }
+        
+      CODE local:41  
+    }    
+
+ 
+  splitCONF OPERATION::=
+    {    
+      ARGUMENT SEQUENCE {
+        conferenceId  ConferenceId,
+        partyId       PartyId }        
+             
+      ERRORS {
+        illConferenceId |
+        illPartyId }
+        
+      CODE local:42  
+     }
+     
+
+  dropCONF OPERATION ::=
+    {  
+      ARGUMENT  PartyId
+ 
+      ERRORS {
+        illPartyId |
+        notActive }     
+        
+      CODE local:43    
+    }
+
+ 
+  isolateCONF OPERATION::=
+    {  
+      ARGUMENT  PartyId
+ 
+      ERRORS {
+        illPartyId |
+        notActive }     
+        
+      CODE local:44     
+    }
+
+ 
+  reattachCONF OPERATION::=
+    {  
+      ARGUMENT PartyId
+
+      ERRORS {
+        illPartyId |
+        notActive }    
+        
+      CODE local:45      
+    }
+    
+ 
+  partyDISC OPERATION::=
+    {     
+      ARGUMENT  PartyId   
+      
+      CODE local:46  
+    }
+    
+  identifyConferee OPERATION::=
+    {
+      ARGUMENT PartyId
+      
+      CODE local:49
+    }  
+
+ 
+  PartyId        ::= INTEGER (0..127)
+
+ 
+  ConferenceId   ::= INTEGER (0..127)
+
+ 
+  ConfSize       ::= INTEGER (0..127)
+
+ 
+  illConferenceId          ERROR ::= {CODE local:28}
+  illPartyId               ERROR ::= {CODE local:29}
+  numberOfPartiesExceeded  ERROR ::= {CODE local:30}
+  notActive                ERROR ::= {CODE local:31}
+  notAllowed               ERROR ::= {CODE local:32}
+
+ 
+END -- of Conference-Add-On-Operations
diff --git a/src/Revised_Diversion_Operations.asn b/src/Revised_Diversion_Operations.asn
new file mode 100644
index 0000000..29df596
--- /dev/null
+++ b/src/Revised_Diversion_Operations.asn
@@ -0,0 +1,395 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Diversion_Operations.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 207-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Diversion-Operations {itu-t identified-organization etsi (0) 207 operations-and-errors (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+  EXPORTS
+      activationDiversion,
+      deactivationDiversion,
+      activationStatusNotificationDiv,
+      deactivationStatusNotificationDiv,
+      interrogationDiversion,
+      interrogateServedUserNumbers,
+      diversionInformation,
+      callDeflection,
+      callRerouting,
+      divertingLegInformation1,
+      divertingLegInformation2,
+      divertingLegInformation3,
+      invalidDivertedToNr,
+      specialServiceNr,
+      diversionToServedUserNr,
+      incomingCallAccepted,
+      numberOfDiversionsExceeded,
+      requestAlreadyAccepted,
+      notActivated;
+      
+  IMPORTS
+      OPERATION,
+      ERROR
+    FROM Remote-Operations-Information-Objects
+    {joint-iso-itu-t remote-operations (4) notation (0)}
+
+ 
+      PartyNumber,
+      PartySubaddress,
+      Address,
+      PresentationAllowedIndicator,
+      PresentedAddressScreened,
+      PresentedNumberUnscreened
+    FROM Revised-Addressing-Data-Elements
+    {itu-t identified-organization etsi (0) 196 addressing-data-elements (6)}
+
+ 
+      BasicService
+    FROM Revised-Basic-Service-Elements
+    {itu-t identified-organization etsi (0) 196 basic-service-elements (8)}   
+    
+      notSubscribed,
+      notAvailable,
+      supplementaryServiceInteractionNotAllowed,
+      basicServiceNotProvided,
+      invalidServedUserNr,
+      resourceUnavailable
+    FROM Revised-General-Errors
+    {itu-t identified-organization etsi (0) 196 general-errors (2)}
+    
+      Service,
+      Preferred
+    FROM Revised-UUS-Operations
+    {itu-t identified-organization etsi (0) 286 operations-and-errors (1)}
+
+ 
+      Q931InformationElement
+    FROM Revised-Embedded-Q931-Types
+    {itu-t identified-organization etsi (0) 196 embedded-q931-types (7)};   
+    
+  activationDiversion OPERATION::=
+    {    
+     ARGUMENT SEQUENCE {
+          procedure          Procedure,
+          basicService       BasicService,
+          forwardedToAddress Address,
+          servedUserNr       ServedUserNr }
+
+      ERRORS {
+        notSubscribed |
+        notAvailable |
+        invalidServedUserNr |
+        supplementaryServiceInteractionNotAllowed |
+        basicServiceNotProvided |
+        resourceUnavailable |
+        invalidDivertedToNr |
+        specialServiceNr |
+        diversionToServedUserNr }
+        
+      CODE local:7  
+    }
+    
+ 
+  -- End of ActivationDiversion operation definition
+
+ 
+  deactivationDiversion OPERATION::=
+    {
+      ARGUMENT SEQUENCE {
+          procedure          Procedure,
+          basicService       BasicService,
+          servedUserNr       ServedUserNr }
+
+      ERRORS {
+        notSubscribed |
+        notAvailable |
+        invalidServedUserNr |
+        notActivated }     
+        
+      CODE local:8    
+     }
+
+ 
+  -- End of DeactivationDiversion operation definition
+
+ 
+  activationStatusNotificationDiv OPERATION::=
+    {    
+      ARGUMENT SEQUENCE {
+          procedure          Procedure,
+          basicService       BasicService,
+          forwardedToAddress Address,
+          servedUserNr       ServedUserNr }
+          
+      CODE local:9    
+    }
+ 
+  -- End of ActivationStatusNotificationDiv operation definition
+
+ 
+  deactivationStatusNotificationDiv OPERATION::=
+    {
+      ARGUMENT SEQUENCE {
+          procedure          Procedure,
+          basicService       BasicService,
+          servedUserNr       ServedUserNr }   
+          
+      CODE local:10                 
+    }
+
+ 
+  -- End of DeactivationStatusNotificationDiv operation definition
+
+ 
+  interrogationDiversion OPERATION::=
+   {
+      ARGUMENT SEQUENCE {
+          procedure          Procedure,
+          basicService       BasicService DEFAULT allServices,
+          servedUserNr       ServedUserNr }   
+   
+      RESULT
+        IntResultList
+ 
+      ERRORS {
+        notSubscribed |
+        notAvailable |
+        invalidServedUserNr }      
+        
+      CODE local:11          
+   }
+
+ 
+  -- End of InterrogationDiversion operation definition
+
+ 
+  interrogateServedUserNumbers OPERATION::=
+    {   
+      RESULT
+        ServedUserNumberList
+
+ 
+      ERRORS {
+        notSubscribed |
+        notAvailable }    
+        
+      CODE local:17            
+    }
+
+ 
+  -- End of InterrogateServedUserNumbers operation definition
+
+ 
+  diversionInformation OPERATION::=
+    {  
+      ARGUMENT SEQUENCE {
+          diversionReason      DiversionReason,
+          basicService         BasicService,
+          servedUserSubaddress PartySubaddress OPTIONAL,
+          callingAddress       [0] PresentedAddressScreened OPTIONAL,
+          originalCalledNr     [1] PresentedNumberUnscreened OPTIONAL,
+          lastDivertingNr      [2] PresentedNumberUnscreened OPTIONAL,
+          lastDivertingReason  [3] DiversionReason OPTIONAL,
+          userInfo             Q931InformationElement OPTIONAL }
+          -- The User-user information element, as specified in the DSS1 L3
+          -- protocol FS shall be embedded in the userInfo parameter
+          
+      CODE local:12          
+ 
+   }
+  -- End of DiversionInformation operation definition
+
+ 
+  callDeflection OPERATION::=
+    {      
+      ARGUMENT SEQUENCE {
+          deflectionAddress                 Address,
+          presentationAllowedDivertedToUser PresentationAllowedIndicator
+           OPTIONAL }
+           
+            
+      ERRORS {
+        notSubscribed |
+        notAvailable |
+        invalidDivertedToNr |
+        specialServiceNr |
+        diversionToServedUserNr |
+        incomingCallAccepted |
+        numberOfDiversionsExceeded |
+        supplementaryServiceInteractionNotAllowed |
+        requestAlreadyAccepted }      
+        
+      CODE local:13    
+    }
+
+ 
+  -- End of CallDeflection operation definition
+
+ 
+  callRerouting OPERATION::=
+    {    
+      ARGUMENT SEQUENCE {
+          reroutingReason        DiversionReason,
+          calledAddress          Address,
+          reroutingCounter       DiversionCounter,
+          q931InfoElement        Q931InformationElement,
+          lastReroutingNr        [1] PresentedNumberUnscreened,
+          subscriptionOption     [2] SubscriptionOption DEFAULT noNotification,
+          callingPartySubaddress [3] PartySubaddress OPTIONAL }
+          -- The User-user information element (optional), High layer
+          -- compatibility information element (optional), Bearer capability
+          -- information element and Low layer compatibility information
+          -- element (optional) as specified in the DSS1 L3 protocol FS shall be
+          -- embedded in the q931InfoElement
+ 
+      ERRORS {
+        notSubscribed |
+        notAvailable |
+        supplementaryServiceInteractionNotAllowed |
+        resourceUnavailable |
+        invalidDivertedToNr |
+        specialServiceNr |
+        diversionToServedUserNr |
+        numberOfDiversionsExceeded }  
+        
+      CODE local:14        
+    }
+
+ 
+  -- End of CallRerouting operation definition
+
+ 
+  divertingLegInformation1 OPERATION::=
+    {  
+      ARGUMENT SEQUENCE {
+          diversionReason    DiversionReason,
+          subscriptionOption SubscriptionOption,
+          divertedToNumber   PresentedNumberUnscreened OPTIONAL }   
+          
+      CODE local:18           
+    }
+
+ 
+  -- End of DivertingLegInformation1 operation definition
+
+ 
+  divertingLegInformation2 OPERATION::=
+    {
+        ARGUMENT SEQUENCE {
+          diversionCounter   DiversionCounter,
+          diversionReason    DiversionReason,
+          divertingNr        [1] PresentedNumberUnscreened OPTIONAL,
+          originalCalledNr   [2] PresentedNumberUnscreened OPTIONAL }   
+          
+        CODE local:15         
+    }
+
+ 
+  -- End of DivertingLegInformation2 operation definition
+
+  divertingLegInformation3 OPERATION::=
+    {
+        ARGUMENT PresentationAllowedIndicator
+        
+        CODE local:19
+    }
+    
+  uUSRequest OPERATION::=
+    {
+      ARGUMENT SEQUENCE {
+          service   [1] IMPLICIT Service,
+          preferred [2] IMPLICIT Preferred }
+          
+      CODE local:66    
+    }  
+ 
+  -- End of DivertingLegInformation3 operation definition
+
+ 
+  -- The ETS specifies SIZE (0..29)
+  -- Buffer implementation only supports SIZE (0..10)
+  -- IntResultList ::= SET SIZE (0..29) OF IntResult
+  IntResultList ::= SET SIZE (0..10) OF IntResult
+
+ 
+  IntResult ::=
+      SEQUENCE {
+        servedUserNr       ServedUserNr,
+        basicService       BasicService,
+        procedure          Procedure,
+        forwardedToAddress Address }
+
+ 
+  ServedUserNr ::=
+      CHOICE {
+        individualNumbers PartyNumber,
+        allNumbers        NULL }
+
+ 
+  DiversionCounter ::= INTEGER (1..5)
+
+ 
+  SubscriptionOption ::=
+      ENUMERATED {
+        noNotification                  (0),
+        notificationWithoutDivertedToNr (1),
+        notificationWithDivertedToNr    (2) }
+
+ 
+  Procedure ::=
+      ENUMERATED {
+        cfu  (0),
+        cfb  (1),
+        cfnr (2) }
+
+ 
+  -- The ETS specifies SIZE (0..99)
+  -- Buffer implementation only supports SIZE (0..31)
+  -- ServedUserNumberList ::= SET SIZE (0..99) OF PartyNumber
+  ServedUserNumberList ::= SET SIZE (0..31) OF PartyNumber
+
+ 
+  DiversionReason ::=
+      ENUMERATED {
+        unknown     (0),
+        cfu         (1),
+        cfb         (2),
+        cfnr        (3),
+        cdAlerting  (4),
+        cdImmediate (5) }
+
+ 
+  invalidDivertedToNr         ERROR  ::= {CODE local:12}
+  specialServiceNr            ERROR  ::= {CODE local:14}
+  diversionToServedUserNr     ERROR  ::= {CODE local:15}
+  incomingCallAccepted        ERROR  ::= {CODE local:23}
+  numberOfDiversionsExceeded  ERROR  ::= {CODE local:24}
+  requestAlreadyAccepted      ERROR  ::= {CODE local:48}
+  notActivated                ERROR  ::= {CODE local:46}
+
+
+ 
+END -- of diversion operation definitions
+   
\ No newline at end of file
diff --git a/src/Revised_Embedded_Q931_Types.asn b/src/Revised_Embedded_Q931_Types.asn
new file mode 100644
index 0000000..8d74166
--- /dev/null
+++ b/src/Revised_Embedded_Q931_Types.asn
@@ -0,0 +1,35 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Embedded_Q931_Types.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 196-1 V1.3.2 (2001-06)
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2006.01.10.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Embedded-Q931-Types {itu-t identified-organization etsi(0) 196 revised-embedded-q931-types(15)}
+DEFINITIONS EXPLICIT TAGS ::=
+BEGIN
+
+EXPORTS	Q931InformationElement;
+
+IMPORTS;
+
+Q931InformationElement  ::= [APPLICATION 0] IMPLICIT OCTET STRING
+
+END -- of Revised-Embedded-Q931-Types
diff --git a/src/Revised_Explicit_Call_Transfer_Operations_and_Errors.asn b/src/Revised_Explicit_Call_Transfer_Operations_and_Errors.asn
new file mode 100644
index 0000000..7a9bd26
--- /dev/null
+++ b/src/Revised_Explicit_Call_Transfer_Operations_and_Errors.asn
@@ -0,0 +1,174 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Explicit_Call_Transfer_Operations_and_Errors.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 369-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Explicit-Call-Transfer-Operations-and-Errors {itu-t identified-organization etsi (0) 369 operations-and-errors (1)}
+
+DEFINITIONS ::=
+
+ 
+BEGIN
+
+ 
+  EXPORTS
+      ectLinkIdRequest,
+      ectExecute,
+      requestSubaddress,
+      subaddressTransfer,
+      explicitEctExecute,
+      linkIdNotAssignedByNetwork,
+      ectLoopTest,
+      ectInform;
+
+ 
+  IMPORTS
+      OPERATION,
+      ERROR
+    FROM Remote-Operations-Information-Objects
+    {joint-iso-itu-t remote-operations (4) notation (0)} 
+
+ 
+      notAvailable,
+      notSubscribed,
+      resourceUnavailable,
+      supplementaryServiceInteractionNotAllowed,
+      invalidCallState
+    FROM Revised-General-Errors
+    {itu-t identified-organization etsi (0) 196 general-errors (2)}
+
+ 
+      PartySubaddress,
+      PresentedNumberUnscreened
+    FROM Revised-Addressing-Data-Elements
+    {itu-t identified-organization etsi (0) 196 addressing-data-elements (6)};
+
+ 
+  ectLinkIdRequest OPERATION::=
+    {  
+      RESULT
+        LinkId
+
+ 
+      ERRORS {
+        resourceUnavailable }  
+        
+      CODE global:{eCTOID ectLinkIdRequest-operation (4)}      
+    }
+
+ 
+  ectExecute OPERATION::=
+    {
+      ERRORS {
+        notAvailable |
+        notSubscribed |
+        invalidCallState |
+        supplementaryServiceInteractionNotAllowed }  
+        
+      CODE local:6        
+    }
+
+ 
+  explicitEctExecute OPERATION::=
+    {  
+      ARGUMENT
+        LinkId        
+        
+      ERRORS {
+        notAvailable |
+        notSubscribed |
+        invalidCallState |
+        supplementaryServiceInteractionNotAllowed |    
+        linkIdNotAssignedByNetwork }
+        
+      CODE global:{eCTOID explicitEctExecute-operation (1)}          
+    }
+
+ 
+  requestSubaddress OPERATION::=
+    {
+      CODE global:{eCTOID requestSubAddress-operation (2)}
+    }      
+
+ 
+  subaddressTransfer OPERATION::=
+     {
+      ARGUMENT  PartySubaddress   
+      
+      CODE global:{eCTOID subaddressTransfer-operation (3)}     
+     }
+
+
+  ectInform OPERATION::=
+    {
+      ARGUMENT SEQUENCE {
+          en ENUMERATED {
+            alerting (0),
+            active   (1) },
+          redirectionNumber    PresentedNumberUnscreened OPTIONAL }   
+          
+      CODE global:{eCTOID ectInform-operation (5)}           
+    }
+
+ 
+  ectLoopTest OPERATION::=
+    {
+      ARGUMENT
+          CallTransferIdentity
+
+ 
+      RESULT
+        LoopResult
+
+ 
+      ERRORS {
+        notAvailable }   
+        
+      CODE global:{eCTOID ectLoopTest-operation (6)}       
+    }
+
+ 
+  LoopResult ::=
+      ENUMERATED {
+        insufficientInformation (0),
+        noLoopExists            (1),
+        simultaneousTransfer    (2) }
+
+ 
+  CallTransferIdentity ::= INTEGER (-128..127)
+
+ 
+  LinkId ::= INTEGER (-32768..32767)
+
+
+ 
+  eCTOID OBJECT IDENTIFIER ::= {itu-t identified-organization etsi (0) 369
+                                operation-and-errors (1)}
+
+ 
+  linkIdNotAssignedByNetwork ERROR ::= {CODE global:{eCTOID linkIdNotAssignedByNetwork-error (21)}}
+
+
+
+
+ 
+END --Explicit-Call-Transfer-Operations-And-Errors
diff --git a/src/Revised_Explicit_Network_Controlled_Channel_Reservation.asn b/src/Revised_Explicit_Network_Controlled_Channel_Reservation.asn
new file mode 100644
index 0000000..7cdbc3e
--- /dev/null
+++ b/src/Revised_Explicit_Network_Controlled_Channel_Reservation.asn
@@ -0,0 +1,86 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Explicit_Network_Controlled_Channel_Reservation.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 196-1 V1.3.2 (2001-06)
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2006.01.10.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Explicit-Network-Controlled-Channel-Reservation {itu-t identified-organization etsi(0) 196 
+							revised-explicit-network-controlled-channel-reservation(12)}
+
+DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS 	explicitReservationCreationControl, explicitReservationManagement, explicitReservationCancel, maximumNumberOfReservationsReached, noExplicitReservationExistsOrInvalidReservationIndicator, unwantedReservationCreated, implicitReservationUsed, ReservationIndicator;
+
+IMPORTS	OPERATION, ERROR
+			FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+		notAvailable, notSubscribed
+		FROM Revised-General-Errors {itu-t identified-organization etsi(0) 196 revised-general-errors(10)};
+
+explicitReservationCreationControl  OPERATION ::=
+			{
+			ARGUMENT /*controlOption*/ ENUMERATED {
+						noReservationRequired (0),
+						reservationRequiredWithReservationIndicator (1),
+						reservationRequiredWithoutReservationIndicator (2)} -- optional
+			RESULT ReservationIndicator -- optional
+			ERRORS { 		maximumNumberOfReservationsReached|
+						notAvailable|
+						notSubscribed|
+						unwantedReservationCreated}
+			CODE 	local:20
+			}
+
+explicitReservationManagement  OPERATION ::=
+			{
+			ARGUMENT ReservationIndicator -- optional
+			-- RESULT
+			ERRORS { 		noExplicitReservationExistsOrInvalidReservationIndicator|
+						notAvailable|
+						notSubscribed|
+						implicitReservationUsed}
+			CODE	local:21
+			}
+
+explicitReservationCancel  OPERATION ::=
+			{
+			ARGUMENT ReservationIndicator -- optional
+			-- RESULT 
+			ERRORS { 		noExplicitReservationExistsOrInvalidReservationIndicator|
+						notAvailable|
+						notSubscribed}
+			CODE	local:22
+			}
+
+maximumNumberOfReservationsReached  						ERROR ::= {CODE local:33}
+
+noExplicitReservationExistsOrInvalidReservationIndicator  	ERROR ::= {CODE local:34}
+
+unwantedReservationCreated									ERROR ::= {CODE local:35}
+
+implicitReservationUsed  									ERROR ::= {CODE local:36}
+
+ReservationIndicator	::=	INTEGER (-128..127)
+
+
+END -- of Revised-Explicit-Network-Controlled-Channel-Reservation
diff --git a/src/Revised_Facility_Information_Element_Components.asn b/src/Revised_Facility_Information_Element_Components.asn
new file mode 100644
index 0000000..d20e000
--- /dev/null
+++ b/src/Revised_Facility_Information_Element_Components.asn
@@ -0,0 +1,202 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Facility_Information_Element_Components.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 196-1 V1.3.2 (2001-06)
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.06.27.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Facility-Information-Element-Components
+	{itu-t identified-organization etsi(0) 196 revised-facility-information-element-component(11)}
+DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+-- exports everything
+IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)};
+ROS {InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable} ::=	CHOICE
+		{
+			invoke		[1]	Invoke {{InvokeIdSet}, {Invokable}},
+			returnResult	[2]	ReturnResult {{Returnable}},
+			returnError	[3]	ReturnError {{Errors{{Returnable}}}},
+			reject		[4]	Reject
+		}
+(CONSTRAINED BY { -- must conform to the above definition -- }
+! RejectProblem : general-unrecognizedPDU)
+Invoke {InvokeId:InvokeIdSet, OPERATION:Operations} ::=	SEQUENCE
+		{
+			invokeId	InvokeId	(InvokeIdSet)
+								(CONSTRAINED BY {-- must be unambiguous --}
+								! RejectProblem : invoke-duplicateInvocation),
+			linkedId	CHOICE	
+							{
+							present	[0]	IMPLICIT	present <	InvokeId,
+							absent	[1]	IMPLICIT NULL
+							}
+							(CONSTRAINED BY {-- must identify an outstanding operation --}
+							! RejectProblem : invoke-unrecognizedLinkedId) 
+							(CONSTRAINED BY {-- which has one or more linked operations--}
+							! RejectProblem : invoke-linkedResponseUnexpected) 
+								OPTIONAL,
+			opcode	OPERATION.&operationCode
+								({Operations}
+								! RejectProblem : invoke-unrecognizedOperation), 
+			argument	OPERATION.&ArgumentType
+								({Operations} {@opcode}
+								! RejectProblem : invoke-mistypedArgument) 
+									OPTIONAL
+		}
+(CONSTRAINED BY { -- must conform to the above definition -- }
+! RejectProblem : general-mistypedPDU) 
+(
+	WITH COMPONENTS
+	{..., 
+		linkedId	ABSENT
+	}
+|	WITH COMPONENTS
+	{..., 
+		linkedId	PRESENT, 
+		opcode
+		(CONSTRAINED BY {-- must be in the &Linked field of the associated operation --}
+		! RejectProblem : invoke-unexpectedLinkedOperation) 
+	}
+)
+ReturnResult {OPERATION:Operations}::=	SEQUENCE
+		{
+			invokeId	InvokeId
+						(CONSTRAINED BY {-- must be that for an outstanding operation  --}
+						! RejectProblem : returnResult-unrecognizedInvocation) 
+						(CONSTRAINED BY {-- which returns a result --}
+						! RejectProblem : returnResult-resultResponseUnexpected),
+			result	SEQUENCE
+		{
+			opcode	OPERATION.&operationCode
+						({Operations})(CONSTRAINED BY {-- identified by invokeId --}
+						! RejectProblem : returnResult-unrecognizedInvocation),
+			result 		OPERATION.&ResultType
+						({Operations} {@.opcode}   -- added a little period from the Corrigendum
+						! RejectProblem : returnResult-mistypedResult) 
+		}
+				OPTIONAL
+		}
+(CONSTRAINED BY { -- must conform to the above definition -- }
+! RejectProblem : general-mistypedPDU) 
+ReturnError {ERROR:Errors} ::=	SEQUENCE
+		{
+			invokeId	InvokeId
+						(CONSTRAINED BY {-- must be that for an outstanding operation --}
+						! RejectProblem : returnError-unrecognizedInvocation) 
+						(CONSTRAINED BY {-- which returns an error --}
+						! RejectProblem : returnError-errorResponseUnexpected),
+			errcode	ERROR.&errorCode
+							({Errors}
+							! RejectProblem : returnError-unrecognizedError) 
+							(CONSTRAINED BY 
+								{--must be in the &Errors field of the associated opÕn --}
+							! RejectProblem : returnError-unexpectedError),
+			parameter 	ERROR.&ParameterType
+							({Errors}{@errcode}
+							! RejectProblem : returnError-mistypedParameter) OPTIONAL 
+		}
+(CONSTRAINED BY { -- must conform to the above definition -- }
+! RejectProblem : general-mistypedPDU) 
+Reject ::=	SEQUENCE
+		{
+			invokeId	InvokeId,
+			problem	CHOICE
+						{
+						general		[0]	GeneralProblem,
+						invoke		[1]	InvokeProblem,
+						returnResult	[2]	ReturnResultProblem,
+						returnError	[3]	ReturnErrorProblem
+						}
+		}
+(CONSTRAINED BY { -- must conform to the above definition -- }
+! RejectProblem : general-mistypedPDU) 
+GeneralProblem ::=	INTEGER
+		{
+			unrecognizedComponent (0),
+			mistypedComponent (1),
+			badlyStructuredComponent (2)
+		}
+InvokeProblem ::=	INTEGER
+		{
+			duplicateInvocation (0),
+			unrecognizedOperation (1),
+			mistypedArgument (2),
+			resourceLimitation (3),
+			releaseInProgress (4),
+			unrecognizedLinkedId (5),
+			linkedResponseUnexpected (6),
+			unexpectedLinkedOperation (7)
+		}
+ReturnResultProblem ::=	INTEGER
+		{
+			unrecognizedInvocation (0),
+			resultResponseUnexpected (1),
+			mistypedResult (2)
+		}
+ReturnErrorProblem ::=	INTEGER
+		{
+			unrecognizedInvocation (0),
+			errorResponseUnexpected (1),
+			unrecognizedError (2),
+			unexpectedError (3),
+			mistypedParameter (4)
+		}
+RejectProblem ::=		INTEGER
+		{
+			general-unrecognizedPDU (0),
+			general-mistypedPDU (1),
+			general-badlyStructuredPDU (2),
+			invoke-duplicateInvocation (10),
+			invoke-unrecognizedOperation (11),
+			invoke-mistypedArgument (12),
+			invoke-resourceLimitation (13),
+			invoke-releaseInProgress (14),
+			invoke-unrecognizedLinkedId (15),
+			invoke-linkedResponseUnexpected (16),
+			invoke-unexpectedLinkedOperation (17),
+			returnResult-unrecognizedInvocation (20),
+			returnResult-resultResponseUnexpected (21),
+			returnResult-mistypedResult (22),
+			returnError-unrecognizedInvocation (30),
+			returnError-errorResponseUnexpected (31),
+			returnError-unrecognizedError (32),
+			returnError-unexpectedError (33),
+			returnError-mistypedParameter (34)
+		}
+InvokeId ::=	CHOICE
+		{
+			present	INTEGER,
+			absent	NULL
+		}
+noInvokeId InvokeId ::=	absent:NULL
+NoInvokeId InvokeId ::=	{noInvokeId}
+Errors {OPERATION:Operations} ERROR ::=	{Operations.&Errors}
+
+
+Components {OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE
+{
+gfpROS	ROS {GFPInvokeIDSet, {Invokable}, {Returnable}}
+}
+
+--GFPInvokeIDSet INTEGER  ::= {-32768..32767}
+GFPInvokeIDSet InvokeId ::= { WITH COMPONENTS { ..., present (-32768..32767) } }
+
+END -- of Revised-Facility-Information-Element-Components
diff --git a/src/Revised_Freephone_Operations.asn b/src/Revised_Freephone_Operations.asn
new file mode 100644
index 0000000..fbee1b4
--- /dev/null
+++ b/src/Revised_Freephone_Operations.asn
@@ -0,0 +1,124 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Freephone_Operations.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 210-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Freephone-Operations  {itu-t identified-organization etsi (0) 210 operations-and-errors (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+
+ 
+  EXPORTS
+      callFPH -- ,
+--      Monitor-T-FPH,
+--      Free-T-FPH,
+--      Call-T-FPH -- ;
+
+ 
+  IMPORTS
+      OPERATION -- ,
+--      ERROR
+    FROM Remote-Operations-Information-Objects
+    {joint-iso-itu-t remote-operations (4) notation (0)}    
+
+ 
+--      notAvailable,
+--      notImplemented
+--        FROM General-Errors
+--        {ccitt identified-organisation etsi (0) 196 general-errors (2)}
+
+ 
+      PartyNumber
+    FROM Revised-Addressing-Data-Elements
+    {itu-t identified-organisation etsi (0) 196 addressing-data-elements
+         (6)}
+
+ 
+--      Q931InformationElement
+--        FROM Embedded-Q931-Types
+--        {ccitt identified-organisation etsi (0) 196 embedded-q931-types
+--         (7)} --;
+
+ 
+  callFPH OPERATION::=
+    {
+        ARGUMENT CalledFreephoneNr -- optional    
+        
+        CODE global:{fPHOID callFPH-operation (1)}   
+    }
+
+ 
+--  Monitor-T-FPH ::=
+--      OPERATION
+--        ARGUMENT SEQUENCE {
+--          q931InfoElement         Q931InformationElement,
+--          servedUserDestination   PartyNumber,
+--          queueIdentity           QueueIdentity OPTIONAL }
+          -- the Bearer capability, High layer compatibility (optional)
+          -- and Low layer compatibility (optional) information elements
+          -- shall be embedded in q931InfoElement.
+
+ 
+--        RESULT
+
+ 
+--        ERRORS {
+--          notAvailable,
+--          notImplemented }
+
+ 
+--  Free-T-FPH ::=
+--      OPERATION
+--        ARGUMENT SEQUENCE {
+--          servedUserDestination   PartyNumber,
+--          fPHReference            FPHReference }
+
+ 
+--  Call-T-FPH ::=
+--      OPERATION
+--        ARGUMENT SEQUENCE {
+--          fPHReference            FPHReference,
+--          calledFreephoneNr       CalledFreephoneNr OPTIONAL }
+
+ 
+--  FPHReference      ::= INTEGER (0..127)
+  CalledFreephoneNr ::= PartyNumber
+--  QueueIdentity     ::= INTEGER (0..127)
+
+ 
+  fPHOID OBJECT IDENTIFIER ::= {itu-t identified-organization etsi (0) 210 freephone-operations (1)}
+
+ 
+
+
+--  monitor-T-FPH Monitor-T-FPH ::= globalValue
+--                                  {fPHOID monitor-T-FPH-operation (2)}
+--  free-T-FPH Free-T-FPH       ::= globalValue
+--                                  {fPHOID free-T-FPH-operation (3)}
+--  call-T-FPH Call-T-FPH       ::= globalValue
+--                                  {fPHOID call-T-FPH-operation (4)}
+
+ 
+END -- of Freephone-Operations
diff --git a/src/Revised_General_Errors.asn b/src/Revised_General_Errors.asn
new file mode 100644
index 0000000..5094c35
--- /dev/null
+++ b/src/Revised_General_Errors.asn
@@ -0,0 +1,69 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_General_Errors.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 196-1 V1.3.2 (2001-06)
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2006.01.10.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-General-Errors {itu-t identified-organization etsi(0) 196 revised-general-errors(10)}
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS	notSubscribed, notAvailable, notImplemented, invalidServedUserNr, invalidCallState, basicServiceNotProvided, notIncomingCall, supplementaryServiceInteractionNotAllowed, resourceUnavailable;
+IMPORTS 	ERROR
+			FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)};
+
+notSubscribed 								ERROR 		::= 	{CODE local:0}
+	-- The requested service or function has not been subscribed for the basic service, and
+	-- optionally the served user's ISDN number, included in the activation invoke component.
+	-- Alternatively the basic service may not have been subscribed.
+
+notAvailable 								ERROR 		::= 	{CODE local:3}
+	-- The requested supplementary service or function is not available for the basic service,
+	-- and optionally the served user's ISDN number (e.g. temporary fault).
+
+notImplemented 								ERROR 		::= 	{CODE local:4}
+	-- The supplementary service or function requested is not implemented for the basic
+	-- service, and optionally the served user's ISDN number (e.g. service not provided).
+
+invalidServedUserNr				 			ERROR 	::= 	{CODE local:6}
+	-- The served user's number provided is not a valid number.
+
+invalidCallState 							ERROR 		::= 	{CODE local:7}
+	-- The supplementary service or function cannot be requested in the current basic call state
+	-- or auxiliary state.
+
+basicServiceNotProvided 					ERROR 	::= 	{CODE local:8}
+	-- The served user has not subscribed to the basic service (bearer and/or teleservice) for
+	-- which the supplementary service or function was requested.
+
+notIncomingCall 							ERROR 		::= 	{CODE local:9}
+	-- The supplementary service or function was not requested for an incoming call.
+
+supplementaryServiceInteractionNotAllowed 	ERROR 		::= 	{CODE local:10}
+	-- The performance of the requested supplementary service or function is prohibited
+	-- by another supplementary service or function.
+
+resourceUnavailable 						ERROR 		::= 	{CODE local:11}
+	-- The resources required to perform adequately the requested supplementary service or
+	-- function are not available.
+
+END -- of Revised-General-Errors
diff --git a/src/Revised_MCID_Operations.asn b/src/Revised_MCID_Operations.asn
new file mode 100644
index 0000000..956d440
--- /dev/null
+++ b/src/Revised_MCID_Operations.asn
@@ -0,0 +1,59 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_MCID_Operations.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 130-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-MCID-Operations {itu-t identified-organization etsi (0) 130 operations-and-errors (1)} 
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS 
+  mCIDRequest;
+
+IMPORTS 
+    OPERATION
+  FROM Remote-Operations-Information-Objects
+  {joint-iso-itu-t remote-operations (4) notation (0)}
+        
+    notAvailable,
+    notSubscribed,
+    invalidCallState,
+    notIncomingCall,
+    supplementaryServiceInteractionNotAllowed
+  FROM Revised-General-Errors
+  {itu-t identified-organization etsi (0) 196 general-errors (2)};
+
+mCIDRequest OPERATION ::= 
+  {
+    ERRORS
+    {
+      notSubscribed    |
+      notAvailable     |
+      invalidCallState |
+      notIncomingCall  |
+      supplementaryServiceInteractionNotAllowed
+    }     
+  }
+
+END
diff --git a/src/Revised_MWI_Operations_and_Errors.asn b/src/Revised_MWI_Operations_and_Errors.asn
new file mode 100644
index 0000000..d8ed499
--- /dev/null
+++ b/src/Revised_MWI_Operations_and_Errors.asn
@@ -0,0 +1,192 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_MWI_Operations_and_Errors.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 745-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-MWI-Operations-and-Errors {itu-t identified-organization etsi (0) 745 operations-and-errors (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+ 
+BEGIN
+
+ 
+  EXPORTS
+      mWIActivate,
+      mWIDeactivate,
+      mWIIndicate,
+      invalidReceivingUserNr,
+      receivingUserNotSubscribed,
+      controllingUserNotRegistered,
+      maxNumOfControllingUsersReached,
+      maxNumOfActiveInstancesReached;
+
+ 
+  IMPORTS
+      OPERATION,
+      ERROR
+    FROM Remote-Operations-Information-Objects
+    {joint-iso-itu-t remote-operations (4) notation (0)} 
+
+ 
+      notSubscribed,
+      supplementaryServiceInteractionNotAllowed,
+      resourceUnavailable,
+      invalidServedUserNr
+    FROM Revised-General-Errors
+    {itu-t identified-organization etsi (0) 196 general-errors (2)}
+
+ 
+      BasicService
+    FROM Revised-Basic-Service-Elements
+    {itu-t identified-organization etsi (0) 196 basic-service-elements (8)}
+
+ 
+      PartyNumber
+    FROM Revised-Addressing-Data-Elements
+    {itu-t identified-organization etsi (0) 196 addressing-data-elements (6)};
+
+ 
+  mWIActivate OPERATION::=
+    {  
+        ARGUMENT SEQUENCE {
+          receivingUserNr             PartyNumber,
+          basicService                BasicService,
+          controllingUserNr           [1] PartyNumber OPTIONAL,
+          numberOfMessages            [2] MessageCounter OPTIONAL,
+          controllingUserProvidedNr   [3] PartyNumber OPTIONAL,
+          time                        [4] GeneralizedTime OPTIONAL,
+          messageId                   [5] MessageID OPTIONAL,
+          mode                        [6] InvocationMode OPTIONAL }
+ 
+        ERRORS {
+          notSubscribed |
+          supplementaryServiceInteractionNotAllowed |
+          resourceUnavailable |
+          invalidReceivingUserNr |
+          invalidServedUserNr |
+          receivingUserNotSubscribed |
+          controllingUserNotRegistered |
+          indicationNotDelivered |
+          maxNumOfControllingUsersReached |
+          maxNumOfActiveInstancesReached }     
+          
+        CODE global:{mWIOID 1}       
+    }
+
+ 
+  -- End of MWIActivate operation definition
+
+ 
+  mWIDeactivate OPERATION::=
+    {  
+        ARGUMENT SEQUENCE {
+          receivingUserNr     PartyNumber,
+          basicService        BasicService,
+          controllingUserNr   PartyNumber OPTIONAL,
+          mode                InvocationMode OPTIONAL }
+ 
+        ERRORS {
+          notSubscribed |
+          supplementaryServiceInteractionNotAllowed |
+          resourceUnavailable |
+          invalidReceivingUserNr |
+          invalidServedUserNr |
+          receivingUserNotSubscribed |
+          controllingUserNotRegistered |
+          indicationNotDelivered }    
+          
+        CODE global:{mWIOID 2}         
+    }
+
+ 
+  -- End of MWIDeactivate operation definition
+
+ 
+  mWIIndicate OPERATION::=
+    {  
+        ARGUMENT SEQUENCE {
+          controllingUserNr           [1] PartyNumber OPTIONAL,
+          basicService                [2] BasicService OPTIONAL,
+          numberOfMessages            [3] MessageCounter OPTIONAL,
+          controllingUserProvidedNr   [4] PartyNumber OPTIONAL,
+          time                        [5] GeneralizedTime OPTIONAL,
+          messageId                   [6] MessageID OPTIONAL }  
+          
+        CODE global:{mWIOID 3}            
+    }
+
+ 
+  -- End of MWIIndicate operation definition
+
+
+ 
+  -- For information only:
+  -- GeneralizedTime ::= [UNIVERSAL 24] IMPLICIT VisibleString
+  -- NOTE: Only GeneralizedTime values of a maximum of 23 characters
+  --       are supported. This implies a limit on the precision of
+  --       fractions in time values of:
+  --       * 3 decimal places if seconds are specified,
+  --       * 5 decimal places if minutes but not seconds are
+  --         specified, and
+  --       * 7 decimal places if neither minutes nor seconds are
+  --         specified.
+
+ 
+  MessageCounter ::= INTEGER (0..65535)
+
+ 
+  MessageID ::=
+      SEQUENCE {
+        messageRef   MessageRef,
+        status       MessageStatus }
+
+ 
+  MessageRef ::= INTEGER (0..65535)
+
+ 
+  MessageStatus ::=
+      ENUMERATED {
+        addedMessage     (0),
+        removedMessage   (1) }
+
+  InvocationMode ::=
+      ENUMERATED {
+        deferred    (0),
+        immediate   (1),
+        combined    (2) }
+
+ 
+  mWIOID OBJECT IDENTIFIER ::= {itu-t identified-organization etsi (0) 745
+                                operations-and-errors (1)}
+
+
+ 
+  invalidReceivingUserNr           ERROR ::= {CODE global:{mWIOID 10}}   
+  receivingUserNotSubscribed       ERROR ::= {CODE global:{mWIOID 11}}
+  controllingUserNotRegistered     ERROR ::= {CODE global:{mWIOID 12}}
+  indicationNotDelivered           ERROR ::= {CODE global:{mWIOID 13}}
+  maxNumOfControllingUsersReached  ERROR ::= {CODE global:{mWIOID 14}}
+  maxNumOfActiveInstancesReached   ERROR ::= {CODE global:{mWIOID 15}}
+
+ 
+END -- MWI-Operations-and-Errors
diff --git a/src/Revised_Notification_Indicator_IE_Data_Structure.asn b/src/Revised_Notification_Indicator_IE_Data_Structure.asn
new file mode 100644
index 0000000..4254721
--- /dev/null
+++ b/src/Revised_Notification_Indicator_IE_Data_Structure.asn
@@ -0,0 +1,62 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Notification_Indicator_IE_Data_Structure.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 196-1 V1.3.2 (2001-06)
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2006.01.10.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Notification-Indicator-IE-Data-Structure {itu-t identified-organization etsi(0) 196
+							  revised-notification-data-structure(13)}
+
+DEFINITIONS ::=
+
+BEGIN
+
+EXPORTS	NOTIFICATION;
+
+IMPORTS;
+
+NOTIFICATION ::=	CLASS
+			{
+			  &ArgumentType	  OPTIONAL,
+			  &operationCode  Code-NotificationIndicator UNIQUE OPTIONAL
+			}
+WITH SYNTAX
+			{
+				[ARGUMENT      &ArgumentType]
+				[CODE          &operationCode]
+			}
+
+Code-NotificationIndicator ::=		CHOICE
+			{
+				local			INTEGER,
+				global			OBJECT IDENTIFIER
+			}
+
+
+
+
+NotificationDataStructure ::=	SEQUENCE
+		{
+			opcode		NOTIFICATION.&operationCode,
+			argument	NOTIFICATION.&ArgumentType
+		}
+
+END -- of Revised-Notification-Indicator-IE-Data-Structure
diff --git a/src/Revised_Outgoing_Call_Barring_Operations_and_Errors.asn b/src/Revised_Outgoing_Call_Barring_Operations_and_Errors.asn
new file mode 100644
index 0000000..fb9383d
--- /dev/null
+++ b/src/Revised_Outgoing_Call_Barring_Operations_and_Errors.asn
@@ -0,0 +1,254 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Outgoing_Call_Barring_Operations_and_Errors.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 301 001-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Outgoing-Call-Barring-Operations-and-Errors {itu-t identified-organization etsi(0) 1001 operations-and-errors(1)}
+
+DEFINITIONS EXPLICIT TAGS  ::=
+
+ 
+BEGIN
+
+ 
+EXPORTS
+    activationOcb,
+    activationStatusNotificationOcb,
+    deactivationOcb,
+    deactivationStatusNotificationOcb,
+    interrogationOcb,
+    disableOcb,
+    ocbInvoked,
+    invalidBarringProgram,
+    noBarringProgram;
+    
+IMPORTS
+      OPERATION,
+      ERROR
+    FROM Remote-Operations-Information-Objects
+    {joint-iso-itu-t remote-operations (4) notation (0)} 
+
+ 
+     PartyNumber
+    FROM Revised-Addressing-Data-Elements
+    {itu-t identified-organization etsi (0) 196 addressing-data-elements (6)}
+
+ 
+     BasicService
+    FROM Revised-Basic-Service-Elements
+    {itu-t identified-organization etsi (0) 196 basic-service-elements (8)}
+
+ 
+      notSubscribed,
+      notAvailable,
+      basicServiceNotProvided,
+      invalidServedUserNr,
+      resourceUnavailable,
+      notImplemented,
+      supplementaryServiceInteractionNotAllowed
+    FROM Revised-General-Errors
+    {itu-t identified-organization etsi (0) 196 general-errors (2)}
+
+ 
+      notActivated
+    FROM Revised-Diversion-Operations
+    {itu-t identified-organization etsi (0) 207 operations-and-errors(1)}
+
+ 
+      Pin,
+      invalidPin,
+      userControlBlocked,
+      changeOfPinRequired
+    FROM Revised-Set-Operations-and-Errors
+    {itu-t identified-organization etsi (0) 1002 operations-and-errors(1)};
+
+ 
+  activationOcb OPERATION::=
+    {  
+      ARGUMENT
+          ActivationOcbArgument
+ 
+      ERRORS {
+          notSubscribed |
+          notAvailable |
+          basicServiceNotProvided |
+          invalidServedUserNr |
+          invalidPin |
+          invalidBarringProgram |
+          noBarringProgram |
+          userControlBlocked |
+          supplementaryServiceInteractionNotAllowed |
+          resourceUnavailable |
+          changeOfPinRequired }   
+          
+       CODE global:{oCBOID  1}         
+      }
+
+ 
+  deactivationOcb OPERATION::=
+     {
+       ARGUMENT
+         DeactivationOcbArgument
+
+       ERRORS {
+         notSubscribed |
+         notAvailable |
+         basicServiceNotProvided |
+         invalidServedUserNr |
+         notActivated |
+         invalidPin |
+         userControlBlocked |
+         changeOfPinRequired }      
+         
+       CODE global:{oCBOID  2}             
+     }
+
+ 
+  interrogationOcb OPERATION::=
+    {
+       ARGUMENT
+         InterrogationOcbArgument
+
+ 
+       RESULT 
+         IntOcbResultList
+
+ 
+       ERRORS {
+         notSubscribed |
+         notAvailable |
+         basicServiceNotProvided |
+         invalidServedUserNr }    
+         
+       CODE global:{oCBOID  5}                
+     }
+
+ 
+  activationStatusNotificationOcb OPERATION::=
+    {
+       ARGUMENT
+         ActStatusNotificationOcbArg   
+         
+       CODE global:{oCBOID  3}                 
+    }
+
+ 
+  deactivationStatusNotificationOcb OPERATION::=
+    {
+       ARGUMENT
+         DeactStatusNotificationOcbArg  
+         
+       CODE global:{oCBOID  4}                  
+    }
+
+ 
+  disableOcb OPERATION::=
+    {
+       ARGUMENT
+         Pin  
+  
+       ERRORS {
+         notImplemented |
+         invalidPin |
+         userControlBlocked |
+         changeOfPinRequired }  
+         
+       CODE global:{oCBOID  6}                  
+    }
+
+  ocbInvoked OPERATION::=
+    {
+       CODE global:{oCBOID  7}        
+    } 
+  
+  ActivationOcbArgument ::=    
+      SEQUENCE {
+        basicService           BasicService,
+        pin                    Pin,
+        barringProgram         BarringProgram   OPTIONAL,
+        servedUserNr           ServedUserNr     OPTIONAL}        
+    
+
+ 
+  DeactivationOcbArgument ::=    
+      SEQUENCE {
+        basicService           BasicService,
+        pin                    Pin,
+        barringProgram         BarringProgram    OPTIONAL,
+        servedUserNr           ServedUserNr      OPTIONAL}        
+    
+
+ 
+  InterrogationOcbArgument ::=    
+      SEQUENCE {
+        basicService           BasicService,
+        servedUserNr           ServedUserNr      OPTIONAL}        
+    
+
+ 
+  ActStatusNotificationOcbArg ::=
+      SEQUENCE {
+        basicService           BasicService,
+        barringProgram         BarringProgram,
+        servedUserNr           ServedUserNr}        
+  
+
+ 
+  DeactStatusNotificationOcbArg ::=
+      SEQUENCE {
+        basicService           BasicService,
+        barringProgram         BarringProgram    OPTIONAL,
+        servedUserNr           ServedUserNr}        
+
+
+ 
+  ServedUserNr ::=
+      CHOICE {
+        individualNumber       PartyNumber,
+        allNumbers             NULL}
+
+ 
+  IntOcbResultList ::=
+      SET SIZE (0..30) OF IntOcbResult
+
+ 
+  IntOcbResult ::=
+      SEQUENCE {
+        servedUserNr           ServedUserNr,
+        basicService           BasicService,
+        barringProgramList     BarringProgramList}
+
+  BarringProgram ::=           INTEGER (0..255)
+  BarringProgramList ::=
+      SET SIZE (0..63) OF BarringProgram
+
+
+  oCBOID OBJECT IDENTIFIER ::= {itu-t identified-organization etsi(0) 1001
+                                operations-and-errors(1)}
+
+  
+  invalidBarringProgram ERROR ::={CODE global:{oCBOID 10}}
+  noBarringProgram      ERROR ::={CODE global:{oCBOID 11}}
+        -- notActivated       NotActivated       ::= localValue 46
+
+END -- of Outgoing-Call-Barring-Operations-and-Errors
+
diff --git a/src/Revised_Set_Operations_and_Errors.asn b/src/Revised_Set_Operations_and_Errors.asn
new file mode 100644
index 0000000..9f10f04
--- /dev/null
+++ b/src/Revised_Set_Operations_and_Errors.asn
@@ -0,0 +1,84 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Set_Operations_and_Errors.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 301 002-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Set-Operations-and-Errors {itu-t identified-organization etsi(0) 1002 operations-and-errors(1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+ 
+BEGIN
+
+ 
+  EXPORTS
+      Pin,
+      invalidPin,
+      userControlBlocked,
+      changeOfPinRequired;
+
+
+ 
+  IMPORTS
+      OPERATION,
+      ERROR
+    FROM Remote-Operations-Information-Objects
+    {joint-iso-itu-t remote-operations (4) notation (0)} 
+
+ 
+      PartyNumber
+    FROM Revised-Addressing-Data-Elements
+    {itu-t identified-organization etsi (0) 196 addressing-data-elements (6)}
+
+ 
+      invalidServedUserNr
+    FROM Revised-General-Errors
+    {itu-t identified-organization etsi (0) 196 general-errors (2)};
+
+ 
+    Pin ::=       NumericString (SIZE(4..12))
+
+ 
+       --    Pin ::=       IA5String (SIZE(4..12))  (FROM ("0"!"1"!"2"!"3"!"4"
+       --                                                 !"5"!"6"!"7"!"8"!"9"
+       --                                                 !"A"!"B"!"C"!"D"!"E"!"F"
+       --                                                 !"G"!"H"!"I"!"J"!"K"
+       --                                                 !"L"!"M"!"N"!"O"!"P"
+       --                                                 !"Q"!"R"!"S"!"T"!"U"
+       --                                                 !"V"!"W"!"X"!"Y"!"Z"
+       --                                                 !"a"!"b"!"c"!"d"!"e"!"f"
+       --                                                 !"g"!"h"!"i"!"j"!"k"
+       --                                                 !"l"!"m"!"n"!"o"!"p"
+       --                                                 !"q"!"r"!"s"!"t"!"u"
+       --                                                 !"v"!"w"!"x"!"y"!"z"))
+
+
+ 
+  sETOID OBJECT IDENTIFIER ::= {itu-t identified-organization etsi(0)
+                             1002 operations-and-errors(1)}
+
+ 
+  invalidPin            ERROR ::= {CODE global:{sETOID 10}}
+  userControlBlocked    ERROR ::= {CODE global:{sETOID 13}}
+  changeOfPinRequired   ERROR ::= {CODE global:{sETOID 14}}
+
+ END --of Set-Operations-and-Errors
diff --git a/src/Revised_Status_Request_Procedure.asn b/src/Revised_Status_Request_Procedure.asn
new file mode 100644
index 0000000..50db9e8
--- /dev/null
+++ b/src/Revised_Status_Request_Procedure.asn
@@ -0,0 +1,64 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Status_Request_Procedure.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 196-1 V1.3.2 (2001-06)
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2006.01.10.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Status-Request-Procedure {itu-t identified-organization etsi(0) 196 revised-status-request-procedure(17)}
+
+DEFINITIONS EXPLICIT TAGS::=
+
+BEGIN
+
+EXPORTS	statusRequest;
+
+IMPORTS	OPERATION, ERROR
+					FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}
+
+		Q931InformationElement
+					FROM Revised-Embedded-Q931-Types
+						{itu-t identified-organization etsi(0) 196 
+										revised-embedded-q931-types(15)};
+
+statusRequest  OPERATION ::=
+			{
+			ARGUMENT SEQUENCE {
+						compatibilityMode CompatibilityMode,
+						q931InformationElement Q931InformationElement}
+							-- The BC, HLC (optional) and LLC (optional) information
+							-- elements shall be embedded in q931InfoElement
+			RESULT StatusResult
+			CODE global: {itu-t identified-organization etsi(0) 196
+							status-request-procedure(9) statusRequest-operation(1)}
+			}
+
+StatusResult ::= ENUMERATED {
+						compatibleAndFree (0),
+						compatibleAndBusy (1),
+						incompatible (2)}
+
+CompatibilityMode ::= ENUMERATED {
+						allBasicServices (0),
+						oneOrMoreBasicServices (1)}
+
+
+
+END  -- of Revised-Status-Request-Procedure
diff --git a/src/Revised_Three_Party_Operations.asn b/src/Revised_Three_Party_Operations.asn
new file mode 100644
index 0000000..77790cf
--- /dev/null
+++ b/src/Revised_Three_Party_Operations.asn
@@ -0,0 +1,74 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_Three_Party_Operations.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 188-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-Three-Party-Operations {itu-t identified-organization etsi (0) 188 operations-and-types (1)}
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+EXPORTS
+  begin3PTY,
+  end3PTY;
+  
+IMPORTS
+    OPERATION
+  FROM Remote-Operations-Information-Objects
+  {joint-iso-itu-t remote-operations (4) notation (0)}
+
+ 
+    notSubscribed,
+    notAvailable,
+    invalidCallState,
+    resourceUnavailable,
+    supplementaryServiceInteractionNotAllowed
+  FROM Revised-General-Errors
+  {itu-t identified-organization etsi (0) 196 general-errors (2)};
+  
+  begin3PTY OPERATION ::=
+    {
+      ERRORS {
+        notSubscribed |
+        notAvailable |
+        invalidCallState |
+        resourceUnavailable |
+        supplementaryServiceInteractionNotAllowed }
+        -- ETS 300 188, aug 1993 does not provide procedures for the generation
+        -- of the error 'notAvailable'
+        
+      CODE local:4          
+    }
+    
+ 
+  end3PTY OPERATION ::=
+    {
+      ERRORS {
+        invalidCallState }
+        
+      CODE local:5  
+    }
+
+
+ 
+END 
\ No newline at end of file
diff --git a/src/Revised_UUS_Operations.asn b/src/Revised_UUS_Operations.asn
new file mode 100644
index 0000000..d42abc5
--- /dev/null
+++ b/src/Revised_UUS_Operations.asn
@@ -0,0 +1,78 @@
+/*
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:          Revised_UUS_Operations.asn
+//  Description:   Functional protocol for ISDN
+//
+//  References:    ETSI EN 300 286-1 
+//                 Integrated Services Digital Network (ISDN);
+//                 Generic functional protocol for the support
+//                 of supplementary services;
+//  Rev:          <RnXnn>
+//  Prodnr:       CNL 113 435
+//  Updated:      2012.04.19.
+//  Contact:      http://ttcn.ericsson.se
+*/
+
+Revised-UUS-Operations {itu-t identified-organization etsi (0) 286 operations-and-errors (1)} 
+
+DEFINITIONS ::=
+
+BEGIN
+
+ 
+  EXPORTS
+      userUserService,
+      rejectedByTheUser,
+      rejectedByTheNetwork,
+      Service,
+      Preferred;
+
+  IMPORTS
+      OPERATION,
+      ERROR
+    FROM Remote-Operations-Information-Objects
+    {joint-iso-itu-t remote-operations (4) notation (0)};   
+    
+    
+  userUserService OPERATION ::=
+    {
+      ARGUMENT SEQUENCE {
+          service   [1] IMPLICIT Service,
+          preferred [2] IMPLICIT Preferred }
+
+      ERRORS {
+        rejectedByTheUser |
+        rejectedByTheNetwork }   
+        
+      CODE local:1       
+    }
+
+ 
+  Service ::=
+      INTEGER {
+        service1 (1),
+        service2 (2),
+        service3 (3) } (1..3)
+
+ 
+  Preferred ::= BOOLEAN
+                -- True  = preferred request
+                -- False = required request
+
+
+ 
+  rejectedByTheNetwork ERROR ::= {CODE local:1}
+  rejectedByTheUser    ERROR ::= {CODE local:2}
+
+
+ 
+END
\ No newline at end of file