diff --git a/asn1/rua/RUA-IEs.asn b/asn1/rua/RUA-IEs.asn
new file mode 100644
index 0000000..ca594b8
--- /dev/null
+++ b/asn1/rua/RUA-IEs.asn
@@ -0,0 +1,191 @@
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+RUA-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
+umts-Access (20) modules (3) rua(5) version1 (1) rUA-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::= 
+
+BEGIN
+
+IMPORTS
+	maxNrOfErrors
+FROM RUA-Constants
+
+	Criticality,
+	ProcedureCode,
+	ProtocolIE-ID,
+	TriggeringMessage
+FROM RUA-CommonDataTypes
+
+	ProtocolExtensionContainer{},
+	RUA-PROTOCOL-EXTENSION
+FROM RUA-Containers;
+
+
+CN-DomainIndicator ::= ENUMERATED { 
+	cs-domain, 
+	ps-domain 
+}
+
+CSGMembershipStatus ::= ENUMERATED { 
+	member, 
+	non-member,
+	...
+}
+
+Establishment-Cause ::= ENUMERATED {
+	emergency-call,
+	normal-call,
+	... 
+}
+
+
+
+
+
+Context-ID	::=	 BIT STRING (SIZE(24))
+
+IntraDomainNasNodeSelector ::=	SEQUENCE {
+	version	CHOICE {
+		release99	SEQUENCE {
+			cn-Type		CHOICE {
+				gsm-Map-IDNNS	Gsm-map-IDNNS,
+				ansi-41-IDNNS	Ansi-41-IDNNS
+			}
+		},
+		later	SEQUENCE {
+			futurecoding	BIT STRING (SIZE (15))
+		}
+	}
+}
+
+Gsm-map-IDNNS ::= SEQUENCE {
+	routingbasis	CHOICE {
+		localPTMSI	SEQUENCE {
+			routingparameter	RoutingParameter
+		},
+		tMSIofsamePLMN	SEQUENCE {
+			routingparameter	RoutingParameter
+		},
+		tMSIofdifferentPLMN	SEQUENCE {
+			routingparameter	RoutingParameter
+		},
+		iMSIresponsetopaging	SEQUENCE {
+			routingparameter	RoutingParameter
+		},
+		iMSIcauseUEinitiatedEvent SEQUENCE {
+			routingparameter	RoutingParameter
+		},
+		iMEI	SEQUENCE {
+			routingparameter	RoutingParameter
+		},
+		spare2	SEQUENCE {
+			routingparameter	RoutingParameter
+		},
+		spare1	SEQUENCE {
+			routingparameter	RoutingParameter
+		}
+	},
+	-- dummy is not used in this version of the specification and
+	-- it should be ignored by the receiver.
+	dummy	BOOLEAN
+}
+
+
+Ansi-41-IDNNS ::= BIT STRING (SIZE (14))
+
+RANAP-Message	::= OCTET STRING
+
+RoutingParameter ::= BIT STRING (SIZE (10))
+
+
+-- **************************************************************
+--
+-- Cause IE
+--
+-- **************************************************************
+
+Cause ::= CHOICE {
+	radioNetwork	CauseRadioNetwork,
+	transport	CauseTransport,
+	protocol	CauseProtocol,
+	misc		CauseMisc,
+	...
+}
+CauseRadioNetwork ::= ENUMERATED {
+	normal,
+	connect-failed,
+	network-release,
+	unspecified,
+	...
+}
+CauseTransport ::= ENUMERATED {
+	transport-resource-unavailable,
+	unspecified,
+	...
+}
+
+CauseProtocol ::= ENUMERATED {
+	transfer-syntax-error,
+	abstract-syntax-error-reject,
+	abstract-syntax-error-ignore-and-notify,
+	message-not-compatible-with-receiver-state,
+	semantic-error,
+	unspecified,
+	abstract-syntax-error-falsely-constructed-message,
+	...
+}
+
+CauseMisc ::= ENUMERATED {
+	processing-overload,
+	hardware-failure,
+	o-and-m-intervention,
+	unspecified,
+	...
+}
+
+-- **************************************************************
+--
+-- CriticalityDiagnostics
+--
+-- **************************************************************
+
+CriticalityDiagnostics ::= SEQUENCE {
+	procedureCode			ProcedureCode	OPTIONAL,
+	triggeringMessage		TriggeringMessage	OPTIONAL,
+	procedureCriticality		Criticality	OPTIONAL,
+	iEsCriticalityDiagnostics	CriticalityDiagnostics-IE-List	OPTIONAL,
+	iE-Extensions			ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } 	OPTIONAL,
+	...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+	SEQUENCE {
+		iECriticality			Criticality,
+		iE-ID				ProtocolIE-ID,
+		typeOfError			TypeOfError,
+		iE-Extensions			ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} }	OPTIONAL,
+		...
+	}
+
+CriticalityDiagnostics-IE-List-ExtIEs RUA-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+CriticalityDiagnostics-ExtIEs RUA-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+TypeOfError ::= ENUMERATED {
+	not-understood,
+	missing,
+	...
+}
+
+END
