Commit 23b0081c authored by nikolajev's avatar nikolajev
Browse files

template restrictions added for LibSIP_SMS templates

parent d3e3b35d
Loading
Loading
Loading
Loading
+55 −119
Original line number Diff line number Diff line
/*
 *	@author 	STF 435
 *	@author 	STF 435, STF 471
 *  @version    $Id$
 *	@desc		This module provides the types used by the test component 
 *              for SIP-SMS over IMS as specified in 3GPP 24.341 tests.
 *              This module is part of LibSipV2.
 *              This module is part of LibSipV3.
 */
module LibSip_SMSTemplates {
    import from LibCommon_DataStrings all;
@@ -13,9 +13,6 @@ module LibSip_SMSTemplates {
    group SMS_Templates_Group {
        
        /* Non-SMS Type Constraints */
        
        
        
        template(present) TypeOfNumberingPlan cr_TypeOfNumberingPlanAny :=
        {
          extBit := ?,
@@ -30,16 +27,11 @@ module LibSip_SMSTemplates {
          numberingPlanId := '0001'B // ISDN/telephony numbering plan (Rec. E.164/E.163)
        };
        
        template (present) TypeOfNumberingPlan cr_TypeOfNumberingPlan :=
        {
          extBit := ?,
          typeOfNumber := ?,
          numberingPlanId := ?
        };
        template(present) TypeOfNumberingPlan cr_TypeOfNumberingPlan := cr_TypeOfNumberingPlanAny;
        
        /* End Non-SMS Type Constraints */
        
        template (omit) RP_OriginatorAddress_dl cs_RP_OriginatorAddress_dl :=
        template(value) RP_OriginatorAddress_dl cs_RP_OriginatorAddress_dl :=
        {
          spare := omit,
          iei := omit,
@@ -48,14 +40,14 @@ module LibSip_SMSTemplates {
          digits := '001122'O
        };
        
        template (omit) RP_OriginatorAddress_ul cr_RP_OriginatorAddress_ul :=
        template (present) RP_OriginatorAddress_ul cr_RP_OriginatorAddress_ul :=
        {
          spare := omit,
          iei := omit,
          iel := '00'O
        };
        
        template RP_DestinationAddress_ul cr_RP_DestinationAddress_ul :=
        template(present) RP_DestinationAddress_ul cr_RP_DestinationAddress_ul :=
        {
          spare := omit,
          iei := omit,
@@ -78,35 +70,23 @@ module LibSip_SMSTemplates {
          tP_PDU := {SMS_DELIVER := cs_SMS_DELIVER (p_Digits)}
        };
        
        template (omit) RP_UserData cs_RP_UserData_SUBMIT_REPORT :=
        template(value) RP_UserData cs_RP_UserData_SUBMIT_REPORT :=
        {
          spare := '0'B,
          iei := tsc_IEI_RP_UserData,
          iel := '0A'O, // the TPDU data length is 10 octets
          tP_PDU := {SMS_SUBMIT_REPORT := cs_SMS_SUBMIT_REPORT}
        };
        template (omit) RP_UserData cs_RP_UserData_STATUS_REPORT  
                                   (TP_MessageReference_Type p_MessageRef,
                                   TP_Address_Type p_RecipientAddress,
                                   TP_ServiceCentreTimeStamp_Type p_SCTP 
                                   ) :=
        template(value) RP_UserData cs_RP_UserData_STATUS_REPORT  
                                   (template(value) TP_MessageReference_Type p_MessageRef,
                                   template(value) TP_Address_Type p_RecipientAddress,
                                   template(value) TP_ServiceCentreTimeStamp_Type p_SCTP 
                                   ) modifies cs_RP_UserData_SUBMIT_REPORT :=
        {
          spare := '0'B,
          iei := tsc_IEI_RP_UserData,
          iel := '0A'O, // the TPDU data length is 10 octets
          tP_PDU := {SMS_STATUS_REPORT := cs_SMS_STATUS_REPORT(p_MessageRef, p_RecipientAddress, p_SCTP)}
        };
        
        /*
        template RP_UserData cr_RP_UserData (TP_PDU_Type p_TP_PDU) :=
        {
          spare := omit,
          iei := omit,
          iel := ?,
          tP_PDU := p_TP_PDU
        };
        */
        template RP_UserData cr_RP_UserData_SUBMIT :=
        template(present) RP_UserData cr_RP_UserData_SUBMIT :=
        {
          spare := omit,
          iei := omit,
@@ -114,7 +94,7 @@ module LibSip_SMSTemplates {
          tP_PDU := {SMS_SUBMIT := cr_SMS_SUBMIT_VPF_REF} 
        };
        
        template RP_UserData cr_RP_UserData_DELIVER_REPORT :=
        template(present) RP_UserData cr_RP_UserData_DELIVER_REPORT :=
        {
          spare := '0'B,
          iei := tsc_IEI_RP_UserData,
@@ -126,27 +106,27 @@ module LibSip_SMSTemplates {
        
        /* SM-RP PDU Constraints */
        
        template (value) RP_DATA_dl_Type cs_RP_DATA_dl_DELIVER (octetstring p_Digits) :=
		template(value) RP_DATA_dl_Type cs_RP_DATA_dl_base :=
        {
          spare5 := '00000'B,
          rP_MessageTypeIndicator := tsc_MT_RP_DATA_dl,
          rP_MessageReference := '00'O,
          rP_OriginatorAddress := cs_RP_OriginatorAddress_dl,
          rP_DestinationAddress := cs_RP_DestinationAddress_dl,
          rP_UserData := cs_RP_UserData_DELIVER('0000'O)
        };
		
        template(value) RP_DATA_dl_Type cs_RP_DATA_dl_DELIVER (octetstring p_Digits) modifies cs_RP_DATA_dl_base :=
        {
          rP_UserData := cs_RP_UserData_DELIVER(p_Digits)
        };
        
        template(value) RP_DATA_dl_Type cs_RP_DATA_dl_STATUS_REPORT (
                                   TP_MessageReference_Type p_MessageRef,
                                   TP_Address_Type p_RecipientAddress,
                                    TP_ServiceCentreTimeStamp_Type p_SCTP  
                                   ) :=
                                   template(value) TP_MessageReference_Type p_MessageRef,
                                   template(value) TP_Address_Type p_RecipientAddress,
                                   template(value) TP_ServiceCentreTimeStamp_Type p_SCTP  
                                   ) modifies cs_RP_DATA_dl_base :=
        {
          spare5 := '00000'B,
          rP_MessageTypeIndicator := tsc_MT_RP_DATA_dl,
          rP_MessageReference := '00'O,
          rP_OriginatorAddress := cs_RP_OriginatorAddress_dl,
          rP_DestinationAddress := cs_RP_DestinationAddress_dl,
          rP_UserData := cs_RP_UserData_STATUS_REPORT (p_MessageRef, p_RecipientAddress, p_SCTP)
        };
        
@@ -161,7 +141,7 @@ module LibSip_SMSTemplates {
          rP_UserData := cr_RP_UserData_SUBMIT
        };
        
        template (value) RP_ACK_Type cs_RP_ACK_SUBMIT_REPORT (Oct1 p_msgReference := '00'O):=
        template(value) RP_ACK_Type cs_RP_ACK_SUBMIT_REPORT (template(value) Oct1 p_msgReference := '00'O):=
        {
          spare5 := '00000'B,
          rP_MessageTypeIndicator := tsc_MT_RP_ACK_dl,
@@ -200,7 +180,7 @@ module LibSip_SMSTemplates {
          codeValue := '0000'B
        };
        
        template TP_Address_Type cr_TP_AddressAny :=
        template(present) TP_Address_Type cr_TP_AddressAny :=
        {
          iel := ?,
          typeOfNumberingPlan := cr_TypeOfNumberingPlanAny,
@@ -245,7 +225,7 @@ module LibSip_SMSTemplates {
          tP_UserData := f_IA5_2oct(tsc_Fox)
        };
        
        template SMS_DELIVER_REPORT_Type cr_SMS_DELIVER_REPORT :=
        template(present) SMS_DELIVER_REPORT_Type cr_SMS_DELIVER_REPORT :=
        {
          spare1 := '0'B,
          tP_UserDataHeaderIndicator  := '0'B,
@@ -259,7 +239,7 @@ module LibSip_SMSTemplates {
          tP_UserData := *
        };
        
        template SMS_SUBMIT_Type cr_SMS_SUBMIT :=
        template(present) SMS_SUBMIT_Type cr_SMS_SUBMIT :=
        {
          tP_ReplyPath := '0'B,
          tP_UserDataHeaderIndicator := '0'B,
@@ -276,72 +256,28 @@ module LibSip_SMSTemplates {
          tP_UserData := ? // any data will do: 140 octets
        };
        
        template SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_NP :=
        template(present) SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_NP modifies cr_SMS_SUBMIT:=
        {
          tP_ReplyPath := '0'B,
          tP_UserDataHeaderIndicator := '0'B,
          tP_StatusReportRequest := '1'B,
          tP_ValidityPeriodFormat := '00'B,
          tP_RejectDuplicates := '0'B,
          tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT,
          tP_MessageReference := ?,
          tP_DestinationAddress := cr_TP_AddressAny,
          tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
          tP_DataCodingScheme_Type := ?,
          tP_ValidityPeriod  := omit,
          tP_UserDataLength := int2oct(160,1),
          tP_UserData := ? // any data will do: 140 octets
          tP_ValidityPeriod  := omit
        };
        
        template SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_REF :=
        template(present) SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_REF modifies cr_SMS_SUBMIT:=
        {
          tP_ReplyPath := '0'B,
          tP_UserDataHeaderIndicator := '0'B,
          tP_StatusReportRequest := '1'B,
          tP_ValidityPeriodFormat := '10'B,
          tP_RejectDuplicates := '0'B,
          tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT,
          tP_MessageReference := ?,
          tP_DestinationAddress := cr_TP_AddressAny,
          tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
          tP_DataCodingScheme_Type := ?,
          tP_ValidityPeriod  := ?,
          tP_UserDataLength := int2oct(160,1),
          tP_UserData := ? // any data will do: 140 octets
          tP_ValidityPeriod  := ?
        };
        
        template SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_ENH :=
        template(present) SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_ENH modifies cr_SMS_SUBMIT:=
        {
          tP_ReplyPath := '0'B,
          tP_UserDataHeaderIndicator := '0'B,
          tP_StatusReportRequest := '1'B,
          tP_ValidityPeriodFormat := '01'B,
          tP_RejectDuplicates := '0'B,
          tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT,
          tP_MessageReference := ?,
          tP_DestinationAddress := cr_TP_AddressAny,
          tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
          tP_DataCodingScheme_Type := ?,
          tP_ValidityPeriod  := ?,
          tP_UserDataLength := int2oct(160,1),
          tP_UserData := ? // any data will do: 140 octets
          tP_ValidityPeriod  := ?
        };
        
        template SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_ABS :=
        template(present) SMS_SUBMIT_Type cr_SMS_SUBMIT_VPF_ABS modifies cr_SMS_SUBMIT:=
        {
          tP_ReplyPath := '0'B,
          tP_UserDataHeaderIndicator := '0'B,
          tP_StatusReportRequest := '1'B,
          tP_ValidityPeriodFormat := '11'B,
          tP_RejectDuplicates := '0'B,
          tP_MessageTypeIndicator := tsc_MT_SMS_SUBMIT,
          tP_MessageReference := ?,
          tP_DestinationAddress := cr_TP_AddressAny,
          tP_ProtocolIdentifier := cr_TP_ProtocolIdentifier,
          tP_DataCodingScheme_Type := ?,
          tP_ValidityPeriod  := ?,
          tP_UserDataLength := int2oct(160,1),
          tP_UserData := ? // any data will do: 140 octets
          tP_ValidityPeriod  := ?
        };
        
        template(value) SMS_SUBMIT_REPORT_Type cs_SMS_SUBMIT_REPORT :=
@@ -360,9 +296,9 @@ module LibSip_SMSTemplates {
        };
        
        template(value) SMS_STATUS_REPORT_Type cs_SMS_STATUS_REPORT (
                                  TP_MessageReference_Type p_MessageRef,
                                   TP_Address_Type p_RA,
                                   TP_ServiceCentreTimeStamp_Type p_SCTP  
                                  template(value) TP_MessageReference_Type p_MessageRef,
                                  template(value) TP_Address_Type p_RA,
                                  template(value) TP_ServiceCentreTimeStamp_Type p_SCTP  
                                ) :=
        {
          // TS 34.229-1 clause A.7.5