T38 DEFINITIONS AUTOMATIC TAGS ::=
BEGIN

IFPPacket ::= SEQUENCE
{
	type-of-msg     Type-of-msg,
	data-field      Data-Field OPTIONAL
}

PreCorrigendum-IFPPacket ::= SEQUENCE
{
	type-of-msg     Type-of-msg,
	data-field      PreCorrigendum-Data-Field OPTIONAL
}

Type-of-msg ::= CHOICE
{
	t30-indicator  ENUMERATED
	{
		no-signal,
		cng,
		ced,
		v21-preamble,
		v27-2400-training,
		v27-4800-training,
		v29-7200-training,
		v29-9600-training,
		v17-7200-short-training,
		v17-7200-long-training,
		v17-9600-short-training,
		v17-9600-long-training,
		v17-12000-short-training,
		v17-12000-long-training,
		v17-14400-short-training,
		v17-14400-long-training,
		...
	},
 
	data  ENUMERATED
	{
		v21,
		v27-2400,
		v27-4800,
		v29-7200,
		v29-9600,
		v17-7200,
		v17-9600,
		v17-12000,
		v17-14400,
		...
	}
}

Data-Field ::= SEQUENCE OF SEQUENCE
{
	field-type  ENUMERATED
	{
		hdlc-data,
		hdlc-sig-end,
		hdlc-fcs-OK,
		hdlc-fcs-BAD,
		hdlc-fcs-OK-sig-end,
		hdlc-fcs-BAD-sig-end,
		t4-non-ecm-data,
		t4-non-ecm-sig-end,
                ...
	},
	field-data  OCTET STRING (SIZE(1..65535)) OPTIONAL
}

PreCorrigendum-Data-Field ::= SEQUENCE OF SEQUENCE
{
	field-type  ENUMERATED
	{
		hdlc-data,
		hdlc-sig-end,
		hdlc-fcs-OK,
		hdlc-fcs-BAD,
		hdlc-fcs-OK-sig-end,
		hdlc-fcs-BAD-sig-end,
		t4-non-ecm-data,
		t4-non-ecm-sig-end
	},
	field-data  OCTET STRING (SIZE(1..65535)) OPTIONAL
}

UDPTLPacket ::= SEQUENCE
{
	seq-number          INTEGER (0..65535),
	primary-ifp-packet  TYPE-IDENTIFIER.&Type(IFPPacket),
	error-recovery      CHOICE
	{
		secondary-ifp-packets  SEQUENCE OF TYPE-IDENTIFIER.&Type(IFPPacket),
		fec-info  SEQUENCE
		{
			fec-npackets  INTEGER,
			fec-data      SEQUENCE OF OCTET STRING
		}
	}
}

END
