///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2023 Ericsson Telecom AB
//
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v2.0
// which accompanies this distribution, and is available at
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
///////////////////////////////////////////////////////////////////////////////
//  File:         SCCPasp_Types.ttcn
//  Description:  SS7 SCCP definitions according to specification
//                 ITU-T SS7 SCCP, ANSI ..., TCC ...
//  References:   ITU-T: Recommendation Q.711-Q.714,
//                ANSI:  T1.112-2001,
//                TCC:   JT-Q711 - JT-Q714
//  Rev:          R7A
//  Prodnr:       CNL 113 341
//  Updated:      2006-01-26
//  Contact:      http://ttcn.ericsson.se

module SCCPasp_Types.objid
{
    itu_t(0) identified_organization (4) etsi(0) reserved(127)
    etsi_identified_organization(0) ericsson(5) testing (0)
    generic(0) sccp(1) v96(3) aspDefinitions(3) patchNo(0)
}


{//startmodule

//content: the following groups:
//Field Definitions
//ASPParameters
//ASPTypes
//SCCPportTypeDefinitions
//ASPTemplateDefinitionsSending
//ASPTemplateDefinitionsReceiving
//ethlel: 08.23:"reserved" fields removed
//SCCP_PAR_Importance chenged from structure to integer
//type enumerated SCCP_ASPfield_ParameterName removed

import from General_Types  all;

group FieldDefinitions
{

//--------------------------------------------------------------------------------
// Field Address Indicator (Q713 $3.4.1)
//--------------------------------------------------------------------------------
type record  SCCP_ASPfield_AddressIndicator
{
  BIT1n          pointCodeIndic,
  BIT1n          ssnIndicator,
  BIT4n          globalTitleIndic,
  BIT1n          routingIndicator
}

//--------------------------------------------------------------------------------
// Subfield Signalling Point Code (Q713 $3.4.2.1)
//--------------------------------------------------------------------------------
// type changed from BIT14 to bitstring 2003.11.04 baat


// supposed that the leading zeros are filled in according to specification
// i.e.: length itu: 16 (2 reserved)
//              ansi:24
//              ttc national: 16 (0 spare)

type bitstring SCCP_ASPfield_SignallingPointCode;

type union  SCCP_ASPfield_GlobalTitle
{
   SCCP_ASPfield_GlobalTitle_NoA                    gti0001,
   SCCP_ASPfield_GlobalTitle_TT                     gti0010,
   SCCP_ASPfield_GlobalTitle_TT_NP_ES               gti0011, //ansi: gti=0001
   SCCP_ASPfield_SignallingPointCode_TT_NP_ES_NoA   gti0100
   //octetstring					                            gti0000
}


//--------------------------------------------------------------------------------
// Subfield Global Title, Nature of address only
  //ITU: GTI=0001, Q713 $3.4.2.3.1
  //ANSI: -

type record  SCCP_ASPfield_GlobalTitle_NoA
{
   BIT7n          natureOfAddress,
   BIT1n          oddeven,
   hexstring      globalTitleAddress
   //it should be hexstring, number digits are in BCD;
   //hexstring already supported by ETH compiler
}


//--------------------------------------------------------------------------------
// Global Title, Translation type only
// ITU:   GTI=0010, Q713 $3.4.2.3.2
// ANSI:  GTI=0010, Figure6A/T1.112.3

type record  SCCP_ASPfield_GlobalTitle_TT
{
  OCT1n           translationType,
  hexstring       globalTitleAddress
}


//--------------------------------------------------------------------------------
// Global Title, Translation type & numbering plan & encoding scheme
// ITU: GTI=0011, Q713 $3.4.2.3.3)
// ANSI GTI=0001, Figure6/T1.112.3

type record  SCCP_ASPfield_GlobalTitle_TT_NP_ES
{
   OCT1n          translationType,
   BIT4n          encodingScheme,
   BIT4n          numberingPlan,
   hexstring      globalTitleAddress
}


//--------------------------------------------------------------------------------
// Global Title, Translation type & numbering plan & encoding scheme & nature of
// address
  // GTI=0100, Q713 $3.4.2.3.4)
  // ANSI: -

type record  SCCP_ASPfield_SignallingPointCode_TT_NP_ES_NoA
{
   OCT1n          translationType,
   BIT4n          encodingScheme,
   BIT4n          numberingPlan,
   BIT7n          natureOfAddress,
   hexstring      globalTitleAddress
}


}//endgroup FieldDefinitions




//********************************************************************************
//********************************************************************************
//                                   ASPDefinitions
//********************************************************************************
//********************************************************************************
group ASPParameters
{
//--------------------------------------------------------------------------------
// Parameter Address
//--------------------------------------------------------------------------------

type  record SCCP_PAR_Address
{
  SCCP_ASPfield_AddressIndicator      addressIndicator,
  SCCP_ASPfield_SignallingPointCode   signPointCode      optional,
  integer                             subsystemNumber    optional,
  SCCP_ASPfield_GlobalTitle           globalTitle        optional
}

//--------------------------------------------------------------------------------
// Parameter Quality of service
//--------------------------------------------------------------------------------


type integer SCCP_PAR_Quality_Of_Service;

//--------------------------------------------------------------------------------
// Parameter Expedited data selection
//--------------------------------------------------------------------------------

type integer SCCP_PAR_Expedited_Data_Sel;

//--------------------------------------------------------------------------------
// Parameter User Data
//--------------------------------------------------------------------------------

//type  SCCP_param_Data SCCP_PAR_UserData;

type  octetstring SCCP_PAR_UserData;
// ETHLAFA: type changed from RANAP_PDU to octetstring 020718

//--------------------------------------------------------------------------------
// Parameter Connection Id
//--------------------------------------------------------------------------------

type integer SCCP_PAR_Connection_Id;


//--------------------------------------------------------------------------------
// Parameter Importance
//--------------------------------------------------------------------------------


type    integer         SCCP_PAR_Importance;


//--------------------------------------------------------------------------------
// Parameter Originator
//--------------------------------------------------------------------------------
//Undefined (0)
//SCCP User (or Network Service User-NSU)(1)
//SCCP itself (or Network Service Provider-NSP)(2)

type integer SCCP_PAR_Originator;

//--------------------------------------------------------------------------------
// Parameter Reason
//--------------------------------------------------------------------------------

type integer SCCP_PAR_Reason;


//--------------------------------------------------------------------------------
// Parameter Return Option
//--------------------------------------------------------------------------------
//bit0==0-return option off
//bit0==1-return option on

type BIT8n SCCP_PAR_Return_Option;


//--------------------------------------------------------------------------------
// Parameter Sequence Control
//--------------------------------------------------------------------------------
//bit0 == 0-sequence control off
//bit0 == 1-sequence control on

type BIT8n SCCP_PAR_Sequence_Control;

//--------------------------------------------------------------------------------
// Parameter Reason For Return
//--------------------------------------------------------------------------------

type integer SCCP_PAR_Reason_For_Return;


//--------------------------------------------------------------------------------
// Parameter Subsystem Number
//--------------------------------------------------------------------------------

type integer SCCP_PAR_SubSystemNumber;

//--------------------------------------------------------------------------------
// Parameter User Status
//--------------------------------------------------------------------------------

type integer SCCP_PAR_User_Status;

//--------------------------------------------------------------------------------
// Parameter Subsystem Multiplicity Indicator
//--------------------------------------------------------------------------------

type integer SCCP_PAR_Subsystem_multi_indicator;

//--------------------------------------------------------------------------------
// Parameter Signalling point status (Q711 6.3.2.2.5)
//--------------------------------------------------------------------------------

type integer SCCP_PAR_SP_Status;

const integer SCCP_PAR_SP_Status_inaccessible:=1;
const integer SCCP_PAR_SP_Status_congested:=2;
const integer SCCP_PAR_SP_Status_accessible:=3;

//--------------------------------------------------------------------------------
// Parameter Remote SCCP status (Q711 6.3.2.2.6)
//--------------------------------------------------------------------------------

type integer SCCP_PAR_Remote_SCCP_Status;

const integer SCCP_PAR_Remote_SCCP_Status_available:=1;
const integer SCCP_PAR_Remote_SCCP_Status_unavailable_unknown:=2;
const integer SCCP_PAR_Remote_SCCP_Status_unequipped:=3;
const integer SCCP_PAR_Remote_SCCP_Status_inaccessible:=4;
const integer SCCP_PAR_Remote_SCCP_Status_congested:=5;

}//endgroup ASPParameters

group ASPTypes
{
//********************************************************************************
// Network service primitives  Q711
//********************************************************************************


type record ASP_SCCP_N_CONNECT_req
{
   SCCP_PAR_Address                 calledAddress,
   SCCP_PAR_Address                 callingAddress     optional,
   SCCP_PAR_Expedited_Data_Sel	    expeditedDataSel   optional,
   SCCP_PAR_Quality_Of_Service      qualityOfService   optional,
   SCCP_PAR_UserData                userData           optional,
   SCCP_PAR_Connection_Id           connectionId       optional,
   SCCP_PAR_Importance              importance         optional
}


type record ASP_SCCP_N_CONNECT_ind
{
   SCCP_PAR_Address                 calledAddress,
   SCCP_PAR_Address                 callingAddress     optional,
   SCCP_PAR_Quality_Of_Service      qualityOfService   optional,
   SCCP_PAR_UserData                userData           optional,
   SCCP_PAR_Connection_Id           connectionId       optional,
   SCCP_PAR_Importance              importance         optional
}


type record ASP_SCCP_N_CONNECT_res
{
   SCCP_PAR_Address                	respondingAddress optional,
   SCCP_PAR_Expedited_Data_Sel 		  expeditedDataSel  optional,
   SCCP_PAR_Quality_Of_Service 		  qualityOfService  optional,
   SCCP_PAR_UserData  			        userData	        optional,
   SCCP_PAR_Connection_Id 		      connectionId 	    optional,
   SCCP_PAR_Importance 			        importance        optional
}


type record ASP_SCCP_N_CONNECT_cfm
{
  SCCP_PAR_Address              respondingAddress optional,
  SCCP_PAR_Quality_Of_Service   qualityOfService  optional,
  SCCP_PAR_UserData             userData          optional,
  SCCP_PAR_Connection_Id        connectionId      optional,
  SCCP_PAR_Importance           importance        optional
}


type record ASP_SCCP_N_DATA_req
{
  SCCP_PAR_UserData       userData               ,
  SCCP_PAR_Connection_Id  connectionId  optional ,
  SCCP_PAR_Importance     importance    optional
}


type record ASP_SCCP_N_DATA_ind
{
  SCCP_PAR_UserData       userData               ,
  SCCP_PAR_Connection_Id  connectionId optional  ,
  SCCP_PAR_Importance     importance   optional
}


type record ASP_SCCP_N_DISCONNECT_req
{
  SCCP_PAR_Address         respondingAddress  optional,
  SCCP_PAR_Reason          reason                      ,
  SCCP_PAR_UserData        userData           optional ,
  SCCP_PAR_Connection_Id   connectionId       optional ,
  SCCP_PAR_Importance      importance         optional
}


type record ASP_SCCP_N_DISCONNECT_ind
{
  SCCP_PAR_Originator     originator                  ,
  SCCP_PAR_Address        respondingAddress  optional ,
  SCCP_PAR_Reason         reason                      ,
  SCCP_PAR_UserData       userData           optional ,
  SCCP_PAR_Connection_Id  connectionId       optional ,
  SCCP_PAR_Importance     importance         optional
}


type record ASP_SCCP_N_UNITDATA_req
{
  SCCP_PAR_Address          calledAddress               ,
  SCCP_PAR_Address          callingAddress              ,
  SCCP_PAR_Sequence_Control sequenceControl    optional ,
  SCCP_PAR_Return_Option    returnOption       optional ,
  SCCP_PAR_UserData         userData                    ,
  SCCP_PAR_Importance       importance         optional
 }


type record ASP_SCCP_N_UNITDATA_ind
{
  SCCP_PAR_Address           calledAddress              ,
  SCCP_PAR_Address           callingAddress             ,
  SCCP_PAR_Sequence_Control  sequenceControl  optional  ,
  SCCP_PAR_Return_Option     returnOption     optional  ,
  SCCP_PAR_UserData          userData                   ,
  SCCP_PAR_Importance        importance       optional
}


type record ASP_SCCP_N_NOTICE_ind
{
  SCCP_PAR_Address               calledAddress            ,
  SCCP_PAR_Address               callingAddress           ,
  SCCP_PAR_Reason_For_Return     reasonForReturn          ,
  SCCP_PAR_UserData              userData                 ,
  SCCP_PAR_Importance            importance       optional
}


type record ASP_SCCP_N_NOTICE_req
{
  SCCP_PAR_Address               calledAddress            ,
  SCCP_PAR_Address               callingAddress           ,
  SCCP_PAR_Reason_For_Return     reasonForReturn          ,
  SCCP_PAR_UserData              userData                 ,
  SCCP_PAR_Importance            importance       optional
}


type record ASP_SCCP_N_STATE_ind
{
  SCCP_PAR_SubSystemNumber           affectedSubSystem    ,
  SCCP_PAR_User_Status               userStatus           ,
  SCCP_PAR_Subsystem_multi_indicator subsystmultiindicator  optional
}


type record ASP_SCCP_N_PCSTATE_ind
{
  SCCP_ASPfield_SignallingPointCode  affectedSP   ,
  SCCP_PAR_SP_Status                 spStatus     ,
  SCCP_PAR_Remote_SCCP_Status        remSCCPStatus optional,
  SCCP_PAR_Importance                restrictedImportanceLevel optional
}


type record ASP_SCCP_N_RESET_req
{
  SCCP_PAR_Originator     originator,  //always NSU
  SCCP_PAR_Reason         reason,
  SCCP_PAR_Connection_Id  connectionId optional
}

type record ASP_SCCP_N_RESET_ind
{
  SCCP_PAR_Originator     originator,
  SCCP_PAR_Reason         reason,
  SCCP_PAR_Connection_Id  connectionId optional
}

type record ASP_SCCP_N_RESET_resp
{
    SCCP_PAR_Connection_Id  connectionId optional
}

type record ASP_SCCP_N_RESET_cfm
{
    SCCP_PAR_Connection_Id  connectionId optional
}

} //endgroup  ASPTypes


group SCCP_PT_Definitions
{
//*******************************************************************
//   Port Type definitions
//*******************************************************************

type port SCCPasp_SP_PT
message
{

  in    ASP_SCCP_N_CONNECT_req,   ASP_SCCP_N_CONNECT_res,
        ASP_SCCP_N_DATA_req,      ASP_SCCP_N_DISCONNECT_req,
        ASP_SCCP_N_UNITDATA_req,  ASP_SCCP_N_RESET_req,
        ASP_SCCP_N_RESET_resp,    ASP_SCCP_N_NOTICE_req;

  out   ASP_SCCP_N_CONNECT_ind,   ASP_SCCP_N_CONNECT_cfm,
        ASP_SCCP_N_DATA_ind,      ASP_SCCP_N_DISCONNECT_ind,
        ASP_SCCP_N_UNITDATA_ind,  ASP_SCCP_N_NOTICE_ind,
        ASP_SCCP_N_STATE_ind,     ASP_SCCP_N_PCSTATE_ind,
        ASP_SCCP_N_RESET_ind,     ASP_SCCP_N_RESET_cfm;

} with {extension "internal"}


type port SCCPasp_PT
message
{

  in  ASP_SCCP_N_CONNECT_ind,   ASP_SCCP_N_CONNECT_cfm,
      ASP_SCCP_N_DATA_ind,      ASP_SCCP_N_DISCONNECT_ind,
      ASP_SCCP_N_UNITDATA_ind,  ASP_SCCP_N_NOTICE_ind,
      ASP_SCCP_N_STATE_ind,     ASP_SCCP_N_PCSTATE_ind,
      ASP_SCCP_N_RESET_ind,     ASP_SCCP_N_RESET_cfm;

  out ASP_SCCP_N_CONNECT_req,   ASP_SCCP_N_CONNECT_res,
      ASP_SCCP_N_DATA_req,      ASP_SCCP_N_DISCONNECT_req,
      ASP_SCCP_N_UNITDATA_req,  ASP_SCCP_N_RESET_req,
      ASP_SCCP_N_RESET_resp,    ASP_SCCP_N_NOTICE_req;

} with {extension "internal"}



}// endgroup SCCP_PT_Definitions




//********************************************************************************
// ASP    Template         Definitions
//********************************************************************************


group ASPTemplateDefinitionsSending


{


template         ASP_SCCP_N_CONNECT_req   t_ASP_N_CONNECT_req
(

 template          SCCP_PAR_Address            PAR_CalledAddress  ,
 template          SCCP_PAR_Address            PAR_CallingAddress ,
 template          SCCP_PAR_Expedited_Data_Sel PAR_ExpDataSel     ,
 template          SCCP_PAR_Quality_Of_Service PAR_QoS            ,
 template          SCCP_PAR_UserData           PAR_UserData       ,
 template          SCCP_PAR_Connection_Id      PAR_ConnID         ,
 template          SCCP_PAR_Importance         PAR_Imp
):=
  {
    calledAddress      :=PAR_CalledAddress  ,
    callingAddress     :=PAR_CallingAddress ,
    expeditedDataSel   :=PAR_ExpDataSel     ,
    qualityOfService   :=PAR_QoS            ,
    userData           :=PAR_UserData       ,
    connectionId       :=PAR_ConnID         ,
    importance         :=PAR_Imp
  }


template         ASP_SCCP_N_CONNECT_ind  t_ASP_N_CONNECT_ind
(
 template          SCCP_PAR_Address            PAR_CalledAddress  ,
 template          SCCP_PAR_Address            PAR_CallingAddress ,
 template          SCCP_PAR_Quality_Of_Service PAR_QoS            ,
 template          SCCP_PAR_UserData           PAR_UserData       ,
 template          SCCP_PAR_Connection_Id      PAR_ConnID         ,
 template          SCCP_PAR_Importance         PAR_Imp
):=
  {
    calledAddress      :=PAR_CalledAddress ,
    callingAddress     :=PAR_CallingAddress,
    qualityOfService   :=PAR_QoS           ,
    userData           :=PAR_UserData      ,
    connectionId       :=PAR_ConnID        ,
    importance         := PAR_Imp
  }


template         ASP_SCCP_N_CONNECT_res  t_ASP_N_CONNECT_res
(

  template          SCCP_PAR_Address            PAR_RespondingAddress  ,
  template          SCCP_PAR_Expedited_Data_Sel PAR_ExpDataSel         ,
  template          SCCP_PAR_Quality_Of_Service PAR_QoS                ,
  template          SCCP_PAR_UserData           PAR_UserData           ,
  template          SCCP_PAR_Connection_Id      PAR_ConnID             ,
  template          SCCP_PAR_Importance         PAR_Imp

):=
  {
    respondingAddress:= PAR_RespondingAddress ,
    expeditedDataSel := PAR_ExpDataSel        ,
    qualityOfService := PAR_QoS               ,
    userData         := PAR_UserData          ,
    connectionId     := PAR_ConnID            ,
    importance       := PAR_Imp
  }


template         ASP_SCCP_N_CONNECT_cfm t_ASP_N_CONNECT_cfm
(
  template          SCCP_PAR_Address            PAR_RespondingAddress  ,
  template          SCCP_PAR_Quality_Of_Service PAR_QoS                ,
  template          SCCP_PAR_UserData           PAR_UserData           ,
  template          SCCP_PAR_Connection_Id      PAR_ConnID             ,
  template          SCCP_PAR_Importance         PAR_Imp
):=
  {
    respondingAddress:= PAR_RespondingAddress ,
    qualityOfService := PAR_QoS               ,
    userData         := PAR_UserData          ,
    connectionId     := PAR_ConnID            ,
    importance       := PAR_Imp
  }


template         ASP_SCCP_N_DATA_req   t_ASP_N_DATA_req
(
  template          SCCP_PAR_UserData           PAR_UserData           ,
  template          SCCP_PAR_Connection_Id      PAR_ConnID             ,
  template          SCCP_PAR_Importance         PAR_Imp
):=
  {
    userData         := PAR_UserData          ,
    connectionId     := PAR_ConnID            ,
    importance       := PAR_Imp
  }


template         ASP_SCCP_N_DATA_ind    t_ASP_N_DATA_ind
(
  template          SCCP_PAR_UserData           PAR_UserData           ,
  template          SCCP_PAR_Connection_Id      PAR_ConnID             ,
  template          SCCP_PAR_Importance         PAR_Imp
):=
  {
    userData         := PAR_UserData          ,
    connectionId     := PAR_ConnID            ,
    importance       := PAR_Imp
  }


template         ASP_SCCP_N_DISCONNECT_req  t_ASP_N_DISCONNECT_req
(
 template          SCCP_PAR_Address            PAR_RespondingAddress  ,
 template          SCCP_PAR_Reason             PAR_Reason             ,
 template          SCCP_PAR_UserData           PAR_UserData           ,
 template          SCCP_PAR_Connection_Id      PAR_ConnID             ,
 template          SCCP_PAR_Importance         PAR_Imp
):=
  {
   respondingAddress:= PAR_RespondingAddress ,
   reason           := PAR_Reason            ,
   userData         := PAR_UserData          ,
   connectionId     := PAR_ConnID            ,
   importance       := PAR_Imp
}


template         ASP_SCCP_N_DISCONNECT_ind    t_ASP_N_DISCONNECT_ind
(
  template         SCCP_PAR_Originator         PAR_Originator         ,
  template         SCCP_PAR_Address            PAR_RespondingAddress  ,
  template         SCCP_PAR_Reason             PAR_Reason             ,
  template         SCCP_PAR_UserData           PAR_UserData           ,
  template         SCCP_PAR_Connection_Id      PAR_ConnID             ,
  template         SCCP_PAR_Importance         PAR_Imp

):=
  {
    originator       :=PAR_Originator	     ,
    respondingAddress:= PAR_RespondingAddress ,
    reason           := PAR_Reason            ,
    userData         := PAR_UserData          ,
    connectionId     := PAR_ConnID            ,
    importance       := PAR_Imp
  }




template         ASP_SCCP_N_UNITDATA_req    t_ASP_N_UNITDATA_req
(

template           SCCP_PAR_Address            PAR_CalledAddress  ,
template           SCCP_PAR_Address            PAR_CallingAddress ,
template           SCCP_PAR_Sequence_Control   PAR_SeqCtrl        ,
template           SCCP_PAR_Return_Option      PAR_RetOpt         ,
template           SCCP_PAR_UserData           PAR_UserData       ,
template           SCCP_PAR_Importance         PAR_Imp
):=
  {
    calledAddress               :=PAR_CalledAddress ,
    callingAddress              :=PAR_CallingAddress,
    sequenceControl             :=PAR_SeqCtrl       ,
    returnOption                :=PAR_RetOpt        ,
    userData                    :=PAR_UserData      ,
    importance                  :=PAR_Imp
  }


template         ASP_SCCP_N_UNITDATA_ind t_ASP_N_UNITDATA_ind
(
  template          SCCP_PAR_Address            PAR_CalledAddress  ,
  template          SCCP_PAR_Address            PAR_CallingAddress ,
  template          SCCP_PAR_Sequence_Control   PAR_SeqCtrl        ,
  template          SCCP_PAR_Return_Option      PAR_RetOpt         ,
  template          SCCP_PAR_UserData           PAR_UserData       ,
  template          SCCP_PAR_Importance         PAR_Imp
):=
  {
    calledAddress               :=PAR_CalledAddress ,
    callingAddress              :=PAR_CallingAddress,
    sequenceControl             :=PAR_SeqCtrl       ,
    returnOption                :=PAR_RetOpt        ,
    userData                    :=PAR_UserData      ,
    importance                  :=PAR_Imp
  }


template         ASP_SCCP_N_NOTICE_ind t_ASP_N_NOTICE_ind
(
  template          SCCP_PAR_Address            PAR_CalledAddress  ,
  template          SCCP_PAR_Address            PAR_CallingAddress ,
  template          SCCP_PAR_Reason_For_Return  PAR_ReasForRet     ,
  template          SCCP_PAR_UserData           PAR_UserData       ,
  template          SCCP_PAR_Importance         PAR_Imp
):=
  {
    calledAddress               :=PAR_CalledAddress ,
    callingAddress              :=PAR_CallingAddress,
    reasonForReturn             :=PAR_ReasForRet   ,
    userData                    :=PAR_UserData      ,
    importance                  :=PAR_Imp
  }


template         ASP_SCCP_N_NOTICE_req t_ASP_N_NOTICE_req
(
  template          SCCP_PAR_Address            PAR_CalledAddress  ,
  template          SCCP_PAR_Address            PAR_CallingAddress ,
  template          SCCP_PAR_Reason_For_Return  PAR_ReasForRet     ,
  template          SCCP_PAR_UserData           PAR_UserData       ,
  template          SCCP_PAR_Importance         PAR_Imp
):=
  {
    calledAddress               :=PAR_CalledAddress ,
    callingAddress              :=PAR_CallingAddress,
    reasonForReturn             :=PAR_ReasForRet   ,
    userData                    :=PAR_UserData      ,
    importance                  :=PAR_Imp
  }


template         ASP_SCCP_N_STATE_ind  t_ASP_N_STATE_ind
(
  template              SCCP_PAR_SubSystemNumber             PAR_SSN         ,
  template              SCCP_PAR_User_Status                 PAR_UserStatus  ,
  template              SCCP_PAR_Subsystem_multi_indicator   PAR_Smi
):=
  {
    affectedSubSystem     :=PAR_SSN        ,
    userStatus            :=PAR_UserStatus ,
    subsystmultiindicator :=PAR_Smi
  }

template         ASP_SCCP_N_PCSTATE_ind  t_ASP_N_PCSTATE_ind
(
  template              SCCP_ASPfield_SignallingPointCode   affectedSP                ,
  template              SCCP_PAR_SP_Status                  spStatus                  ,
  template              SCCP_PAR_Remote_SCCP_Status         remSCCPStatus             ,
  template              SCCP_PAR_Importance                 restrictedImportanceLevel
):=
  {
  affectedSP := affectedSP,
  spStatus :=  spStatus,
  remSCCPStatus := remSCCPStatus,
  restrictedImportanceLevel := restrictedImportanceLevel
  }

template          ASP_SCCP_N_RESET_req t_ASP_N_RESET_req
(
  template        	SCCP_PAR_Originator     PAR_Originator,
  template       	        SCCP_PAR_Reason         PAR_Reason,
  template        	SCCP_PAR_Connection_Id  PAR_Connection_Id
):=
  {
    originator     :=PAR_Originator,
    reason         :=PAR_Reason,
    connectionId  :=PAR_Connection_Id
  }


template         ASP_SCCP_N_RESET_ind  t_ASP_N_RESET_ind
(
  template        	SCCP_PAR_Originator     PAR_Originator,
  template        	SCCP_PAR_Reason         PAR_Reason,
  template        	SCCP_PAR_Connection_Id  PAR_Connection_Id
):=
  {
    originator     :=PAR_Originator,
    reason         :=PAR_Reason,
    connectionId  :=PAR_Connection_Id
  }

template         ASP_SCCP_N_RESET_resp  t_ASP_N_RESET_resp
(
  template        	SCCP_PAR_Connection_Id  PAR_Connection_Id
):=
  {
    connectionId  :=PAR_Connection_Id
  }

template         ASP_SCCP_N_RESET_cfm  t_ASP_N_RESET_cfm
(
  template       	SCCP_PAR_Connection_Id  PAR_Connection_Id
):=
  {
    connectionId  :=PAR_Connection_Id
  }



}//endgroup ASPTemplateDefinitionsSending

//********************************************************************************

group ASPTemplateDefinitionsReceiving


{


template         ASP_SCCP_N_CONNECT_req   tr_ASP_N_CONNECT_req:=
{
  calledAddress      :=?,
  callingAddress     :=*,
  expeditedDataSel   :=*,
  qualityOfService   :=*,
  userData           :=*,
  connectionId       :=*,
  importance         :=*
}


template         ASP_SCCP_N_CONNECT_ind  tr_ASP_N_CONNECT_ind:=
{
  calledAddress      :=?,
  callingAddress     :=*,
  qualityOfService   :=*,
  userData           :=*,
  connectionId       :=*,
  importance         :=*
}


template         ASP_SCCP_N_CONNECT_res  tr_ASP_N_CONNECT_res:=
{
  respondingAddress:= *,
  expeditedDataSel := *,
  qualityOfService := *,
  userData         := *,
  connectionId     := *,
  importance       := *
}


template         ASP_SCCP_N_CONNECT_cfm tr_ASP_N_CONNECT_cfm:=
{
  respondingAddress:= *,
  qualityOfService := *,
  userData         := *,
  connectionId     := *,
  importance       := *
}


template         ASP_SCCP_N_DATA_req   tr_ASP_N_DATA_req :=
{
  userData         := ?,
  connectionId     := *,
  importance       := *
}


template         ASP_SCCP_N_DATA_ind    tr_ASP_N_DATA_ind:=
{
  userData         := ?,
  connectionId     := *,
  importance       := *
}


template         ASP_SCCP_N_DISCONNECT_req  tr_ASP_N_DISCONNECT_req:=
{
  respondingAddress:= *,
  reason           := ?,
  userData         := *,
  connectionId     := *,
  importance       := *
}


template         ASP_SCCP_N_DISCONNECT_ind    tr_ASP_N_DISCONNECT_ind:=
{
  originator       := ?,
  respondingAddress:= *,
  reason           := ?,
  userData         := *,
  connectionId     := *,
  importance       := *
}




template         ASP_SCCP_N_UNITDATA_req    tr_ASP_N_UNITDATA_req:=
{
  calledAddress               :=?,
  callingAddress              :=?,
  sequenceControl             :=*,
  returnOption                :=*,
  userData                    :=?,
  importance                  :=*
}


template         ASP_SCCP_N_UNITDATA_ind tr_ASP_N_UNITDATA_ind:=
{
  calledAddress               :=?,
  callingAddress              :=?,
  sequenceControl             :=*,
  returnOption                :=*,
  userData                    :=?,
  importance                  :=*
}


template         ASP_SCCP_N_NOTICE_ind tr_ASP_N_NOTICE_ind:=
{
  calledAddress               :=?,
  callingAddress              :=?,
  reasonForReturn             :=?,
  userData                    :=?,
  importance                  :=*
}


template         ASP_SCCP_N_NOTICE_req tr_ASP_N_NOTICE_req:=
{
  calledAddress               :=?,
  callingAddress              :=?,
  reasonForReturn             :=?,
  userData                    :=?,
  importance                  :=*
}


template         ASP_SCCP_N_STATE_ind  tr_ASP_N_STATE_ind:=
{
  affectedSubSystem     :=?,
  userStatus            :=?,
  subsystmultiindicator :=*
}

template         ASP_SCCP_N_PCSTATE_ind  tr_ASP_N_PCSTATE_ind:=
{
  affectedSP := ?,
  spStatus :=  ?,
  remSCCPStatus := ?,
  restrictedImportanceLevel := ?
}

template          ASP_SCCP_N_RESET_req tr_ASP_N_RESET_req:=
{
  originator     :=?,
  reason         :=?,
  connectionId   :=*
}


template         ASP_SCCP_N_RESET_ind  tr_ASP_N_RESET_ind:=
{
  originator     :=?,
  reason         :=?,
  connectionId   :=*
}

template         ASP_SCCP_N_RESET_resp  tr_ASP_N_RESET_resp:=
{
  connectionId  :=*
}

template         ASP_SCCP_N_RESET_cfm  tr_ASP_N_RESET_cfm:=
{
   connectionId  :=*
}



}//endgroup ASPTemplateDefinitionsReceiving



} //with { encode "RAW"}
//endmodule SCCP ASP types

