Commit ec236bee authored by nikolajev's avatar nikolajev
Browse files

ENUM type redefined, templates updated

parent dd46adb6
Loading
Loading
Loading
Loading
+17 −5
Original line number Original line Diff line number Diff line
@@ -118,17 +118,29 @@ module AtsImsIot_Templates {
        template NAPTRmessage mw_EnumQuery_Base	:= {
        template NAPTRmessage mw_EnumQuery_Base	:= {
            enumMessage		:= {
            enumMessage		:= {
                query	:= {
                query	:= {
                    e164TelNumber		:= ?
                    enumQuestion_list := ? length (1 .. infinity)
                }
                }
            }
            }
        }
        }
        template NAPTRmessage mw_EnumResponse_Base	:= {
        template NAPTRmessage mw_EnumResponse_Base	:= {
            enumMessage		:= {
            enumMessage		:= {
                response	:= {
                response	:= {
                    ttl				:= ?,
                    header:=?,
					enumQuestion_list := ?,
					enumAnswer_list := 
					{
						{
							e164TelNumber 	:= ?,
							naptrType		:= 35,
							naptrType		:= 35,
                    sipUri			:= ?,
							class_ 			:= ?,
                    naptrRegexp		:= ?
							ttl				:= ?,
							rd_length 		:= ?,
							naptrRR := ?
						},//TODO:this might not be the first item
						*
					},
					authority_list := ?,
					additional_list := ?
                }
                }
            }
            }
        }
        }
+197 −99
Original line number Original line Diff line number Diff line
@@ -13,6 +13,7 @@ module AtsImsIot_TypesAndValues {
            SEND_request, 
            SEND_request, 
            RECEIVE_response 
            RECEIVE_response 
    };
    };
	import from LibCommon_DataStrings {type Bit1, Bit3};


	group SIPmessageTypes {
	group SIPmessageTypes {
		/**
		/**
@@ -22,6 +23,7 @@ module AtsImsIot_TypesAndValues {
		* @member msrpRequest MSRP SEND/AUTH request messages
		* @member msrpRequest MSRP SEND/AUTH request messages
		* @member msrpResponse MSRP response message
		* @member msrpResponse MSRP response message
		*/
		*/
		
		type union SipMessage {
		type union SipMessage {
			Request request,
			Request request,
			Response response,
			Response response,
@@ -57,44 +59,140 @@ module AtsImsIot_TypesAndValues {
            DnsResponse response	
            DnsResponse response	
        }
        }
        /**
        /**
		* @desc ENUM Message Type
		* @member request ENUM query
		* @member response ENUM response
		*/
		type union EnumMessage {
			EnumQuery		query,
			EnumResponse	response	
		}
        /**
        * @desc DnsQuery Message Type
        * @desc DnsQuery Message Type
        */
        */
        type record DnsQuery {
        type record DnsQuery {
			DnsHeader header,
			DnsQuestionList question_list optional,
			DnsAnswerList answer_list optional,
			DnsAuthorityList authority_list optional,
			DnsAdditionalList additional_list optional
         } with { encode "NAPTRCodec"}
         } with { encode "NAPTRCodec"}
		
		/**
		/**
        * @desc DnsResponse Message Type
        * @desc DnsResponse Message Type
        */
        */
        type record DnsResponse {
        type record DnsResponse {
            RessourceRecord	ressourceRecord
            DnsHeader header,
			DnsQuestionList question_list optional,
			DnsAnswerList answer_list optional,
			DnsAuthorityList authority_list optional,
			DnsAdditionalList additional_list optional
         } with { encode "NAPTRCodec"}
         } with { encode "NAPTRCodec"}
		
		type record DnsHeader
		{
			UInt16 id,
			Bit1 qR_flag,
			UInt4 opcode,
			Bit1 aA_flag,
			Bit1 tC_flag,
			Bit1 rD_flag,
			Bit1 rA_flag,
			Bit3 z_field,
			UInt4 rCODE,
			UInt16 qDCOUNT,
			UInt16 aNCOUNT,
			UInt16 nSCOUNT,
			UInt16 aRCOUNT
		} with { encode "NAPTRCodec"}
		
		type charstring DnsDomainName;//NB! DNS pointers are handled codec
		
		type record DnsQuestion
		{
			DnsDomainName qNAME,
			UInt16 qTYPE,
			UInt16 qCLASS
		} with { encode "NAPTRCodec"}
		
		type record of DnsQuestion DnsQuestionList;
		type record of DnsResourceRecord DnsAnswerList;
		type record of DnsResourceRecord DnsAuthorityList;
		type record of DnsResourceRecord DnsAdditionalList;
		
		type record DnsResourceRecord
		{
			DnsDomainName domainName,
			Int16 type_,
			Int16 class_,
			UInt32 ttl,
			UInt16 rd_length,
			DnsRDATA r_data
		} with { encode "NAPTRCodec"}
		
		type octetstring DnsRDATA;
		
		/**
		* @desc ENUM Message Type
		* @member request ENUM query
		* @member response ENUM response
		*/
		type union EnumMessage {
			EnumQuery		query,
			EnumResponse	response	
		}
		
        /**
        /**
        * @desc EnumQuery Message Type
        * @desc EnumQuery Message Type
        */
        */
        type record EnumQuery {
        type record EnumQuery {
            TN	e164TelNumber
			DnsHeader header,
			EnumQuestionList enumQuestion_list optional,
			EnumAnswerList enumResponse_list optional,
			DnsAuthorityList authority_list optional,
			DnsAdditionalList additional_list optional
		} with { encode "NAPTRCodec"}
		} with { encode "NAPTRCodec"}
		
		type record EnumResponse
		{
			DnsHeader header,
			EnumQuestionList enumQuestion_list optional,
			EnumAnswerList enumAnswer_list optional,
			DnsAuthorityList authority_list optional,
			DnsAdditionalList additional_list optional
		} with { encode "NAPTRCodec"}
		
		
		type record EnumQuestion
		{
			E164TN	e164TelNumber,
			UInt16 qTYPE, //35
			UInt16 qCLASS //
		}with { encode "NAPTRCodec"}
		
		type record of EnumQuestion EnumQuestionList;
		type record of EnumAnswer EnumAnswerList;
		
		/**
		/**
        * @desc EnumResponsee Message Type
        * @desc EnumAnswer Message Type
        */
        */
        type record EnumResponse { //FIXME To be checked with RFC
		type record EnumAnswer
            TTL				ttl,
		{
            ServiceType		naptrType,
			E164TN		e164TelNumber,			
            SipUrl			sipUri,
			Int16 	naptrType,
            Regexp			naptrRegexp
			Int16 	class_,
			UInt32 	ttl,
			UInt16 	rd_length,
			DnsNaptrRRData naptrRR
		} with { encode "NAPTRCodec"}
		} with { encode "NAPTRCodec"}
        type charstring	TN;
		type DnsDomainName E164TN;//NB! DNS pointers not recommended, but possible
		type Int32		TTL; 
		
        type UInt16		ServiceType;
		
        type charstring	Regexp;
		type record DnsNaptrRRData
        type charstring	RessourceRecord;
		{
			UInt16 	naptrOrder,
			UInt16 	naptrPreference,
			UInt8 	flags_length,
			NaptrCharString naptrFlags,
			UInt8 	service_length,
			NaptrCharString naptrService,
			UInt8 	regex_length,
			NaptrCharString naptrRegex,
			UInt8 	replacementLength,
			DnsDomainName naptrReplacement
		} with { encode "NAPTRCodec"}
		
        type charstring NaptrCharString;
	}
	}
}//end module
}//end module