[Freeswitch-svn] [commit] r9767 - in freeswitch/trunk/libs/spandsp: . spandsp src src/spandsp test-data/etsi/fax tests

Freeswitch SVN anthm at freeswitch.org
Tue Sep 30 23:52:37 EDT 2008


Author: anthm
Date: Tue Sep 30 23:52:36 2008
New Revision: 9767

Modified:
   freeswitch/trunk/libs/spandsp/.update
   freeswitch/trunk/libs/spandsp/spandsp/tones.dtd
   freeswitch/trunk/libs/spandsp/spandsp/tsb85.xml
   freeswitch/trunk/libs/spandsp/src/dds_int.c
   freeswitch/trunk/libs/spandsp/src/spandsp/dds.h
   freeswitch/trunk/libs/spandsp/src/spandsp/tone_generate.h
   freeswitch/trunk/libs/spandsp/src/spandsp/version.h
   freeswitch/trunk/libs/spandsp/src/t30.c
   freeswitch/trunk/libs/spandsp/src/tone_generate.c
   freeswitch/trunk/libs/spandsp/test-data/etsi/fax/Makefile.am
   freeswitch/trunk/libs/spandsp/test-data/etsi/fax/generate_etsi_300_242_pages.c
   freeswitch/trunk/libs/spandsp/tests/tone_generate_tests.c
   freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c
   freeswitch/trunk/libs/spandsp/tests/tsb85_tests.sh

Log:
update to snapshot spandsp-20080911.tar.gz

Modified: freeswitch/trunk/libs/spandsp/.update
==============================================================================
--- freeswitch/trunk/libs/spandsp/.update	(original)
+++ freeswitch/trunk/libs/spandsp/.update	Tue Sep 30 23:52:36 2008
@@ -1 +1 @@
-Wed Sep  3 14:32:49 CDT 2008
+Tue Sep 30 23:52:21 EDT 2008

Modified: freeswitch/trunk/libs/spandsp/spandsp/tones.dtd
==============================================================================
--- freeswitch/trunk/libs/spandsp/spandsp/tones.dtd	(original)
+++ freeswitch/trunk/libs/spandsp/spandsp/tones.dtd	Tue Sep 30 23:52:36 2008
@@ -35,7 +35,6 @@
 <!ELEMENT call-waiting-tone (step)* >
 <!ATTLIST call-waiting-tone
   domain    CDATA   #IMPLIED
-  type      CDATA   #IMPLIED
   >
 <!ELEMENT pay-tone (step)* >
 <!ATTLIST pay-tone
@@ -191,5 +190,4 @@
   level                 CDATA   #IMPLIED
   length                CDATA   #IMPLIED
   recorded-announcement CDATA   #IMPLIED
-  recognition-length    CDATA   #IMPLIED
   >

Modified: freeswitch/trunk/libs/spandsp/spandsp/tsb85.xml
==============================================================================
--- freeswitch/trunk/libs/spandsp/spandsp/tsb85.xml	(original)
+++ freeswitch/trunk/libs/spandsp/spandsp/tsb85.xml	Tue Sep 30 23:52:36 2008
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE fax-tests SYSTEM "./fax-tests.dtd">
 <fax-tests>
-<!-- $Id: tsb85.xml,v 1.18 2008/09/09 15:30:43 steveu Exp $ -->
+<!-- $Id: tsb85.xml,v 1.20 2008/09/11 15:13:42 steveu Exp $ -->
 <messages>
     <!-- TCF = 2700 bytes at 14400, 2250 at 12000, 1800 at 9600, 1350 at 7200, 900 at 4800 or 450 at 2400 -->
     <!-- Bad TCF == 10101010.... -->
@@ -11,19 +11,15 @@
     <!-- synchronisation sequence == 250ms of zeros. = 450 bytes at 14400, 375 at 12000, 300 at 9600, 225 at 7200, 150 at 4800 or 75 at 2400 -->
     <!-- fast HDLC inter-frame flag sequence == 1 flag byte -->
     <!-- fast HDLC end flag sequence == 10 flag bytes -->
-    <message type="CSI" fif="30 31 32 33 34 35 36 37 38 39 2B 20 20 20 20 20 20 20 20 20"/>
-    <message type="TSI" fif="30 31 32 33 34 35 36 37 38 39 2B 20 20 20 20 20 20 20 20 20"/>
-    <message type="CIG" fif="30 31 32 33 34 35 36 37 38 39 2B 20 20 20 20 20 20 20 20 20"/>
-    <message type="PWD" fif="30 31 32 33 34 35 36 37 38 39 2B 20 20 20 20 20 20 20 20 20"/>
-    <message type="SUB" fif="30 31 32 33 34 35 36 37 38 39 2B 20 20 20 20 20 20 20 20 20"/>
-    <message type="SEP" fif="30 31 32 33 34 35 36 37 38 39 2B 20 20 20 20 20 20 20 20 20"/>
-    <message type="NSF" fif="B5 FF FF"/>
-    <message type="NSF" fif="B5 FF FF"/>
-    <message type="NSF" fif="B5 FF FF"/>
+    <!-- STAIRSTEP image is 1728x1728 pixels. Its is about 15k, so an average of 68.2 bits per row. To
+         cook it as a 31k page requires a min_bits of 141. To cook it as a 63k page requires a min_bits of
+         286. To cook it as a 64k page requires a min_bits of 291 -->
 </messages>
 <test-group name="Annex A - Receive test procedures">
     <test name="MRGN01">
+        <!-- Tester calls DUT and sends 2 WHITE pages. DUT should send CSI for this test procedure. -->
         <step type="CALL"/>
+        <step dir="T" type="SET" tag="IDENT" value="+0123456789"/>
 
         <!--<step dir="T" type="CNG"/>-->
 
@@ -31,14 +27,17 @@
             <check name="MRGN01M01" desc="receipt of CED"/>
             <check name="MRGN01M02" desc="CED is 2.6s to 4s"/>
         </step>
-        <!--<step dir="R" type="NSF/CSI/DIS">-->
-        <step dir="R" type="HDLC" modem="V.21" tag="DIS" value="FF C8 01 ..." timeout="60000">
-            <check name="MRGN01M03" desc="receipt of DIS"/>
-            <check name="MRGN01M04" desc="CED to DIS silence is 55ms to 95ms"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="NSF" value="FF C0 04 ..." timeout="60000">
             <check name="MRGN01M05" desc="preamble is 850ms to 1150ms"/>
-            <check name="MRGN01M06" desc="CSI received"/>
             <check name="MRGN01M07" desc="NSF and CSI framing"/>
+        </step>
+        <step dir="R" type="HDLC" modem="V.21" tag="CSI" value="FF C0 02 9C 1C EC 6C AC 2C CC 4C 8C 0C D4 04 04 04 04 04 04 04 04 04">
+            <check name="MRGN01M06" desc="CSI received"/>
             <check name="MRGN01M08" desc="CSI FIF content"/>
+        </step>
+        <step dir="R" type="HDLC" modem="V.21" tag="DIS" value="FF C8 01 ...">
+            <check name="MRGN01M03" desc="receipt of DIS"/>
+            <check name="MRGN01M04" desc="CED to DIS silence is 55ms to 95ms"/>
             <check name="MRGN01M09" desc="DIS framing"/>
             <check name="MRGN01M10" desc="DIS FIF content"/>
         </step>
@@ -59,7 +58,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72"/>
@@ -71,7 +70,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -92,6 +91,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN02">
+        <!-- Tester calls DUT and sends DIAG_1 and DIAG_2 pages. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -111,7 +111,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-diago1.tif">
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_diago1.tif">
             <check name="MRGN02M01" desc="decoding of all A4 one dimensional encoding codes"/>
         </step>
         <step type="WAIT" value="75"/>
@@ -123,7 +123,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-diago2.tif">
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_diago2.tif">
             <check name="MRGN02M01" desc="decoding of all A4 one dimensional encoding codes"/>
         </step>
         <step type="WAIT" value="75"/>
@@ -140,6 +140,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN03">
+        <!-- Tester calls DUT and sends DURATION_1 and DURATION_2 pages. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -159,7 +160,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-duration1.tif">
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_duration1.tif">
             <check name="MRGN02M01" desc="Accept 4.9s long scan line"/>
         </step>
         <step type="WAIT" value="75"/>
@@ -171,7 +172,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-duration2.tif">
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_duration2.tif">
             <check name="MRGN02M02" desc="Reject 5.1s long scan line"/>
         </step>
         <step type="WAIT" value="75"/>
@@ -195,6 +196,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN04">
+        <!-- Tester calls DUT and sends 4.9% ERROR page and one 15.1% ERROR page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -214,7 +216,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-error.tif" bad_rows="
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_error.tif" bad_rows="
  79,  85, 105, 111, 133, 137, 157, 163, 183, 189, 209, 215, 235, 248, 261, 267,
 287, 293, 313"/>
         <step type="WAIT" value="75"/>
@@ -228,7 +230,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-error.tif" bad_rows="
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_error.tif" bad_rows="
  79,  85, 105, 111, 133, 137, 157, 163, 183, 189, 209, 215, 235, 248, 261, 267,
 287, 293, 313,  73,  76,  88,  91,  94,  99, 102, 117, 120, 125, 128, 143, 146,
 151, 154, 169, 172, 177, 180, 195, 198, 203, 206, 221, 224, 229, 232, 247, 250,
@@ -249,6 +251,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN05">
+        <!-- Tester calls DUT and sends 1 IMPRESS page using a low signal intensity. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -268,7 +271,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-impress.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_impress.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -296,6 +299,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN06a">
+        <!-- Tester calls DUT and sends 2 WHITE pages. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -318,7 +322,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="55"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="55"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72"/>
@@ -328,7 +332,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="55"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="55"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -343,6 +347,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN06b">
+        <!-- Tester calls DUT and sends 2 WHITE pages. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -365,7 +370,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="5000"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="5000"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72"/>
@@ -375,7 +380,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="5000"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="5000"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -390,6 +395,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN07">
+        <!-- Tester calls DUT and sends 1 WHITE page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -421,7 +427,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -436,6 +442,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN08">
+        <!-- Tester calls DUT and sends 1 WHITE page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -471,7 +478,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -486,7 +493,8 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN09">
-        <step type="CALL" value="a4-white.tif"/>
+        <!-- Tester calls DUT and sends 2 WHITE pages. -->
+        <step type="CALL" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CED"/>
         <step dir="R" type="HDLC" modem="V.21" tag="DIS" value="FF C8 01 ..." timeout="60000"/>
@@ -503,7 +511,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOM" value="FF C8 71"/>
@@ -512,7 +520,7 @@
         <step dir="R" type="HDLC" modem="V.21" tag="MCF" value="FF C8 31"/>
         <step dir="R" type="SILENCE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DIS" value="FF C8 01 ..." timeout="60000">
+        <step dir="R" type="HDLC" modem="V.21" tag="DIS" value="FF C8 01 ..." timeout="10000">
             <check name="MRGN09M01" desc="Device goes to phase B after receiving EOM"/>
             <check name="MRGN09M02" desc="T2 elapses after MCF response to EOM. MCF to DIS interval must be between 5.0s and 7.0s"/>
         </step>
@@ -529,7 +537,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -544,6 +552,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN10">
+        <!-- Tester calls DUT and sends 1 WHITE page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -567,7 +576,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -582,6 +591,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN11">
+        <!-- Tester calls DUT and sends 1 WHITE page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -623,7 +633,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -638,6 +648,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN12">
+        <!-- Tester calls DUT and sends 1 WHITE page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -675,7 +686,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -690,6 +701,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN13">
+        <!-- Tester calls DUT and sends 1 WHITE page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -727,7 +739,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -742,6 +754,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN14">
+        <!-- Tester calls DUT and sends 1 WHITE page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -768,7 +781,7 @@
         <step dir="T" type="TCF" modem="V.27ter/4800" value="900"/>
 
         <!-- dir="R" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58 | nothing"> -->
-        <step type="WAIT" value="5000">
+        <step type="WAIT" value="3450">
             <check name="MRGN14M01" desc="One bad FCS DCS command after CFR"/>
         </step>
 
@@ -783,7 +796,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -797,6 +810,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN15">
+        <!-- Tester calls DUT and sends 1 WHITE page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -836,7 +850,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -851,6 +865,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGN16">
+        <!-- Tester calls DUT and sends 2 WHITE pages separately. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -870,7 +885,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOM" value="FF C8 71"/>
@@ -911,7 +926,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72"/>
@@ -939,7 +954,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -984,7 +999,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOM" value="FF C8 71" crc_error="0"/>
@@ -1025,7 +1040,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72" crc_error="0"/>
@@ -1053,7 +1068,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74" crc_error="0"/>
@@ -1088,6 +1103,7 @@
 </test-group>
 <test-group name="Annex B - Capability receive test procedures">
     <test name="ORGC01">
+        <!-- Tester calls DUT and sends DIAG_1 and DIAG_2 pages. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -1107,7 +1123,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-diago1.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_diago1.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72"/>
@@ -1117,7 +1133,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-diago2.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_diago2.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -1132,6 +1148,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="ORGC02">
+        <!-- Tester calls DUT and sends 2 WHITE pages. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -1151,7 +1168,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72"/>
@@ -1161,7 +1178,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -1176,6 +1193,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="ORGC03">
+        <!-- Tester calls DUT and sends 1 IMPRESS page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -1195,7 +1213,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-impress.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_impress.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -1212,6 +1230,7 @@
 </test-group>
 <test-group name="Annex C - ECM receive test procedures">
     <test name="OREN01">
+        <!-- Tester calls DUT and sends one 31k byte STAIRSTEP page and one 15k byte STAIRSTEP page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -1232,7 +1251,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-white.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1244,7 +1263,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-white.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1266,7 +1285,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-white.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_white.tif"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1292,6 +1311,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="OREN02">
+        <!-- Tester calls DUT and sends one 31k byte STAIRSTEP page and one 15k byte STAIRSTEP page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -1312,7 +1332,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.17/14400"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1324,7 +1344,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.17/14400"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1336,7 +1356,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.17/14400"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="100"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="100"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1348,7 +1368,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.17/14400"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1360,7 +1380,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.17/14400"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="214"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="214"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1372,7 +1392,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.17/14400"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1393,7 +1413,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.17/14400"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1405,7 +1425,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.17/14400"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1430,6 +1450,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="OREN03">
+        <!-- Tester calls DUT and sends one 15k byte STAIRSTEP page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -1448,7 +1469,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1470,7 +1491,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1492,7 +1513,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1514,7 +1535,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1544,7 +1565,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1570,6 +1591,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="OREN04">
+        <!-- Tester calls DUT and sends one 31k byte STAIRSTEP page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -1590,7 +1612,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1612,7 +1634,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1634,7 +1656,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1656,7 +1678,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1686,7 +1708,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1712,6 +1734,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="OREN05">
+        <!-- Tester calls DUT and sends one 31k byte STAIRSTEP page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -1732,7 +1755,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1754,7 +1777,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1776,7 +1799,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1798,7 +1821,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1820,7 +1843,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="141" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1854,6 +1877,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="OREN06">
+        <!-- Tester calls DUT and sends two 15k byte STAIRSTEP pages. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -1874,7 +1898,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1896,7 +1920,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1918,7 +1942,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1940,7 +1964,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1970,7 +1994,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -1996,6 +2020,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="OREN07">
+        <!-- Tester calls DUT and sends one 15k byte STAIRSTEP page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -2015,7 +2040,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -2037,7 +2062,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -2059,7 +2084,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -2081,7 +2106,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif" crc_error="0"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -2115,6 +2140,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="OREN08">
+        <!-- Tester calls DUT and sends two 15k byte STAIRSTEP pages. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -2135,7 +2161,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -2157,7 +2183,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -2183,6 +2209,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="OREN09">
+        <!-- Tester calls DUT and sends one 64k byte STAIRSTEP page and one 63k byte STAIRSTEP page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -2193,7 +2220,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DCS" value="FF C8 41 00 50 1F 30"/>
+        <step dir="T" type="HDLC" tag="DCS" value="FF C8 41 00 50 0F 20"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="TCF" modem="V.27ter/4800" value="900"/>
@@ -2203,11 +2230,11 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-impress.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="302" frame_size="256"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="PPS-MPS" value="FF C8 7D 72 00 00 6B"/>
+        <step dir="T" type="HDLC" tag="PPS-MPS" value="FF C8 7D 72 00 00 FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="HDLC" modem="V.21" tag="MCF" value="FF C8 31"/>
@@ -2215,11 +2242,11 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-stairstep.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_stairstep.tif" min_bits="293" frame_size="256"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="PPS-EOP" value="FF C8 7D 74 00 00 6B"/>
+        <step dir="T" type="HDLC" tag="PPS-EOP" value="FF C8 7D 74 00 00 EF"/>
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="HDLC" modem="V.21" tag="MCF" value="FF C8 31"/>
@@ -2231,6 +2258,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="OREN10">
+        <!-- Tester calls DUT and sends 1 IMPRESS page. -->
         <step type="CALL"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -2241,7 +2269,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DCS" value="FF C8 41 00 50 1F 30"/>
+        <step dir="T" type="HDLC" tag="DCS" value="FF C8 41 00 50 0F 22"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="TCF" modem="V.27ter/4800" value="900"/>
@@ -2251,11 +2279,11 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.27ter/4800"/>
-        <step dir="T" type="PP" value="a4-impress.tif"/>
+        <step dir="T" type="PP" value="etsi_300_242_a4_impress.tif" frame_size="256" compression="T.6"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="PPS-EOP" value="FF C8 7D 74 00 00 6B"/>
+        <step dir="T" type="HDLC" tag="PPS-EOP" value="FF C8 7D 74 00 00 D2"/>
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="HDLC" modem="V.21" tag="MCF" value="FF C8 31"/>
@@ -2269,6 +2297,7 @@
 </test-group>
 <test-group name="Annex D - Exception receive test procedures">
     <test name="MRGX01">
+        <!-- Tester calls DUT -->
         <step type="CALL"/>
 
         <step dir="R" type="CED"/>
@@ -2278,6 +2307,7 @@
         <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
     </test>
     <test name="MRGX02">
+        <!-- Tester calls DUT -->
         <step type="CALL"/>
 
         <step dir="R" type="CED"/>
@@ -2290,6 +2320,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGX03">
+        <!-- Tester calls DUT -->
         <step type="CALL"/>
 
         <step dir="R" type="CED"/>
@@ -2298,7 +2329,7 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="TCF" modem="V.27ter/4800" value="900"/>
@@ -2308,15 +2339,21 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="TCF" modem="V.27ter/4800" value="900"/>
 
         <step dir="R" type="HDLC" modem="V.21" tag="CFR" value="FF C8 21"/>
         <step dir="R" type="SILENCE"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DCN" value="FF C8 5F"/>
+        <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGX04">
+        <!-- Tester calls DUT -->
         <step type="CALL"/>
 
         <step dir="R" type="CED"/>
@@ -2341,6 +2378,7 @@
         <step dir="T" type="TCF" modem="V.27ter/4800" value="900"/>
     </test>
     <test name="MRGX05">
+        <!-- Tester calls DUT -->
         <step type="CALL"/>
 
         <step dir="R" type="CED"/>
@@ -2358,7 +2396,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72"/>
@@ -2367,7 +2405,7 @@
         <step dir="R" type="HDLC" modem="V.21" tag="MCF" value="FF C8 31"/>
         <step dir="R" type="SILENCE"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="3000"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72"/>
         <step dir="T" type="POSTAMBLE"/>
@@ -2376,6 +2414,7 @@
         <step dir="R" type="SILENCE"/>
     </test>
     <test name="MRGX06">
+        <!-- Tester calls DUT -->
         <step type="CALL"/>
 
         <step dir="R" type="CED"/>
@@ -2393,7 +2432,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72"/>
@@ -2408,6 +2447,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGX07">
+        <!-- Tester calls DUT -->
         <step type="CALL"/>
 
         <step dir="R" type="CED"/>
@@ -2425,7 +2465,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -2440,6 +2480,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGX08">
+        <!-- Tester calls DUT -->
         <step type="CALL"/>
 
         <step dir="R" type="CED"/>
@@ -2457,7 +2498,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -2472,6 +2513,7 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MRGX09">
+        <!-- Tester calls DUT -->
         <step type="CALL"/>
 
         <step dir="R" type="CED"/>
@@ -2527,7 +2569,7 @@
 
         <step type="WAIT" value="75"/>
         <!-- UNKNOWN_BCS_1 -->
-        <step dir="T" type="HDLC" tag="GARBAGE" value="FF C0 00"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="GARBAGE" value="FF C0 00"/>
         <step dir="T" type="POSTAMBLE"/>
         <step dir="T" type="HDLC" tag="DCS" value="FF C8 41 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
@@ -2538,7 +2580,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -2578,7 +2620,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -2611,7 +2653,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <!-- UNKNOWN_BCS_2 -->
         <step dir="T" type="PREAMBLE" modem="V.21" value="37"/>
@@ -2657,7 +2699,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <!-- UNKNOWN_BCS_3 -->
         <step dir="T" type="PREAMBLE" modem="V.21" value="37"/>
@@ -2692,7 +2734,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <!-- UNKNOWN_BCS_4 -->
         <step dir="T" type="PREAMBLE" modem="V.21" value="43"/>
@@ -2717,7 +2759,13 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="CALLER_SET_GROUP"/>
+        <!-- CALLER_SET_GROUP -->
+        <step dir="T" type="PREAMBLE" modem="V.21" value="43"/>
+        <step dir="T" type="HDLC" tag="TSI" value="FF C0 42 9C 1C EC 6C AC 2C CC 4C 8C 0C D4 04 04 04 04 04 04 04 04 04 ..."/>
+        <step dir="T" type="PREAMBLE" value="29"/>
+        <step dir="T" type="HDLC" tag="DCS" value="FF C8 41 00 50 10 01 01 11 01 01 00"/>
+        <step dir="T" type="POSTAMBLE" value="5"/>
+
         <step type="WAIT" value="75"/>
         <step dir="T" type="TCF" modem="V.27ter/4800" value="900"/>
 
@@ -2725,7 +2773,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -2772,8 +2820,8 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="HDLC" modem="V.21" tag="NSC" value="FF C0 84 ..."/>
-        <step dir="R" type="HDLC" modem="V.21" tag="CIG" value="FF C0 82 9C 1C EC 6C AC 2C CC 4C 8C 0C D4 04 04 04 04 04 04 04 04 04"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="DTC" value="FF C8 81 ..."/>
+        <step dir="R" type="HDLC" tag="CIG" value="FF C0 82 9C 1C EC 6C AC 2C CC 4C 8C 0C D4 04 04 04 04 04 04 04 04 04"/>
+        <step dir="R" type="HDLC" tag="DTC" value="FF C8 81 ..."/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
@@ -2787,7 +2835,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/2400" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/2400" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72"/>
@@ -2797,7 +2845,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/2400" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
@@ -2824,8 +2872,11 @@
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 80 11 01 01 01 40"/>
+        <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="PWD" value="FF C0 83 ..."/>
+        <step dir="R" type="HDLC" modem="V.21" tag="NSC" value="FF C0 84 ..."/>
+        <step dir="R" type="HDLC" modem="V.21" tag="CIG" value="FF C0 82 9C 1C EC 6C AC 2C CC 4C 8C 0C D4 04 04 04 04 04 04 04 04 04"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PWD" value="FF C0 83 0C 8C 4C CC 2C AC 6C EC 1C 9C D4 04 04 04 04 04 04 04 04 04"/>
         <step dir="R" type="HDLC" tag="DTC" value="FF C8 81 ..."/>
         <step dir="R" type="SILENCE"/>
 
@@ -2834,39 +2885,41 @@
         <step dir="T" type="HDLC" tag="DCS" value="FF C8 41 00 00 00"/>
         <step dir="T" type="POSTAMBLE"/>
         <step type="WAIT" value="75"/>
-        <step dir="T" type="TCF" modem="V.27ter/4800" value="900"/>
+        <step dir="T" type="TCF" modem="V.27ter/2400" value="900"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="CFR" value="FF C8 21"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="CFR+" value="FF C8 A1"/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/2400" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MPS" value="FF C8 72"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="MCF" value="FF C8 31"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MCF+" value="FF C8 B1"/>
+        <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/2400" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOP" value="FF C8 74"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="MCF" value="FF C8 31"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MCF+" value="FF C8 B1"/>
+        <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DCN" value="FF C8 5F"/>
+        <step dir="T" type="HDLC" tag="DCN+" value="FF C8 DF"/>
         <step dir="T" type="POSTAMBLE"/>
     </test>
 </test-group>
 <test-group name="Annex F - Transmit test procedures">
     <test name="MTGN01">
         <!-- DUT calls tester and sends 1 IMPRESS and 1 WHITE page. DUT should send CNG and TSI. -->
-        <step type="ANSWER" value="a4-impress-white.tif"/>
+        <step type="ANSWER" value="etsi_300_242_a4_impress_white.tif"/>
         <step dir="T" type="SET" tag="IDENT" value="+0123456789"/>
 
         <step dir="R" type="CNG"/>
@@ -2877,7 +2930,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="TSI+" value="FF C0 C2 ..."/>
+        <step dir="R" type="HDLC" modem="V.21" tag="TSI+" value="FF C0 C2 9C 1C EC 6C AC 2C CC 4C 8C 0C D4 04 04 04 04 04 04 04 04 04 ..."/>
         <step dir="R" type="HDLC" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
@@ -2886,8 +2939,8 @@
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" value="a4-impress.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="180000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -2895,17 +2948,20 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800"  timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN02">
-        <step type="ANSWER"/>
+        <!-- The DUT is first set up to attempt this transmission using R8x7.7 l/mm. DUT calls tester
+             and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
+        <step dir="T" type="SET" tag="IDENT" value="+0123456789"/>
 
         <step dir="R" type="CNG"/>
 
@@ -2915,8 +2971,8 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="TSI" value="FF C0 42 ..."/>
-        <step dir="R" type="HDLC" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="TSI+" value="FF C0 C2 9C 1C EC 6C AC 2C CC 4C 8C 0C D4 04 04 04 04 04 04 04 04 04 ..."/>
+        <step dir="R" type="HDLC" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -2925,17 +2981,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN03">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -2945,7 +3002,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800"/>
 
         <step type="WAIT" value="75"/>
@@ -2954,27 +3011,28 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN04">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 40 20"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -2983,28 +3041,29 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN05">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 40 02"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 02"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -3012,17 +3071,19 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN06">
-        <step type="ANSWER"/>
+        <!-- The DUT is configured to attempt this transmission using ECM. DUT calls tester
+             and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3032,7 +3093,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3041,17 +3102,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN07">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3061,10 +3123,11 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 00 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN08">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3074,7 +3137,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3083,7 +3146,7 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -3091,17 +3154,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN09">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3111,7 +3175,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3119,7 +3183,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3128,17 +3192,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN10">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3148,21 +3213,23 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58 | nothing"/>
+        <!--<step dir="R" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58 | nothing"/>-->
+        <step type="WAIT" value="3500"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58 | nothing"/>
+        <!--<step dir="R" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58 | nothing"/>-->
+        <step type="WAIT" value="3500"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3171,17 +3238,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN11">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3191,30 +3259,31 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN12">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3224,34 +3293,43 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21" crc_error="0"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN13">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3261,54 +3339,57 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN14">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages separately. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
+        <step dir="T" type="SET" tag="TXFILE" value="etsi_300_242_a4_white.tif"/>
+
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -3317,10 +3398,10 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3329,27 +3410,28 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN15">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages separately. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3357,34 +3439,36 @@
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
+        <step dir="T" type="SET" tag="TXFILE" value="etsi_300_242_a4_white.tif"/>
+
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="5000"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3393,27 +3477,28 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN16">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages separately. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..." timeout="10000"/>
         <step dir="R" type="TCF" modem="V.27ter/4800"/>
 
         <step type="WAIT" value="75"/>
@@ -3421,22 +3506,24 @@
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
+        <step dir="T" type="SET" tag="TXFILE" value="etsi_300_242_a4_white.tif"/>
+
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -3445,10 +3532,10 @@
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3457,17 +3544,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN17">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3477,7 +3565,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3486,9 +3574,9 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -3496,17 +3584,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN18">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3516,7 +3605,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3525,21 +3614,21 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -3547,17 +3636,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN19">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3567,8 +3657,8 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -3576,21 +3666,21 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
+        <step dir="T" type="HDLC" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
+        <step dir="T" type="HDLC" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -3598,17 +3688,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="POSTAMBLE"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN20">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3618,7 +3709,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3627,19 +3718,20 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN21">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3649,7 +3741,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3658,31 +3750,32 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31" crc_error="0"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN22">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3692,8 +3785,8 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -3701,31 +3794,32 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN23">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages separately. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3735,7 +3829,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3743,12 +3837,14 @@
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
+        <step dir="T" type="SET" tag="TXFILE" value="etsi_300_242_a4_white.tif"/>
+
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="RTP"/>
+        <step dir="T" type="HDLC" tag="RTP" value="FF C8 33"/>
         <step dir="T" type="POSTAMBLE"/>
 
         <step type="WAIT" value="2000"/>
@@ -3756,7 +3852,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3765,17 +3861,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN24">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3785,7 +3882,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3794,33 +3891,34 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="RTP"/>
+        <step dir="T" type="HDLC" tag="RTP" value="FF C8 33"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/2400" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.27ter/2400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN25">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3830,7 +3928,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3839,22 +3937,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
-
-        <step type="WAIT" value="75"/>
-        <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="RTP"/>
-        <step dir="T" type="POSTAMBLE"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="HDLC" tag="RTP" value="FF C8 33"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN26">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages separately. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3864,28 +3958,30 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="T" type="SET" tag="TXFILE" value="etsi_300_242_a4_white.tif"/>
+
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="RTN"/>
+        <step dir="T" type="HDLC" tag="RTN" value="FF C8 32"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step type="WAIT" value="2000"/>
+        <step type="WAIT" value="7000"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3894,62 +3990,73 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN27">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="RTN"/>
+        <step dir="T" type="HDLC" tag="RTN" value="FF C8 32"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/7200" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <!-- This assumes the FAX entity retransmits the page which was RTN'ed -->
+        <step dir="R" type="MSG" modem="V.29/7200" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="MSG" modem="V.29/7200" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGN28">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3959,8 +4066,8 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -3968,19 +4075,20 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="RTN"/>
+        <step dir="T" type="HDLC" tag="RTN" value="FF C8 32"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
 </test-group>
 <test-group name="Annex G - Capability transmit tests">
     <test name="OTGC01">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 IMPRESS and 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -3990,7 +4098,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 00 50 00"/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -3998,8 +4106,8 @@
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="180000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -4007,36 +4115,37 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="OTGC02">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 IMPRESS and 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 40 10"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 10"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" value="a4-impress.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="180000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -4044,17 +4153,18 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="OTGC03">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 IMPRESS and 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -4064,34 +4174,35 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" value="a4-impress.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="180000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="OTGC04">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 IMPRESS and 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -4101,42 +4212,43 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/7200" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" value="a4-impress.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.29/7200" timeout="120000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.29/7200" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="OTGC05">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 IMPRESS and 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -4146,34 +4258,35 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 76 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="120000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="OTGC06">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 IMPRESS and 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -4183,34 +4296,35 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 76 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" value="a4-impress.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="120000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="OTGC07">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 IMPRESS and 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -4220,357 +4334,973 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 76 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/12000" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/9600" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" value="a4-impress.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.17/9600" timeout="120000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.17/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="OTGC08">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 IMPRESS and 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 76 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/12000" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/9600" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="180000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
-    <test name="OTGC09">
-        <step type="ANSWER"/>
+    <test name="OTGC09-01">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 76 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
-    <test name="OTGC10">
-        <step type="ANSWER"/>
+    <test name="OTGC09-02">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 75 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
-
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="RTP"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTGC09-03">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 74 10"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
-    <test name="OTGC11">
-        <step type="ANSWER"/>
+    <test name="OTGC09-04">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 74 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" value="a4-impress.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
-</test-group>
-<test-group name="Annex H - ECM transmit test procedures">
-    <test name="OTEN01">
-        <step type="ANSWER"/>
+    <test name="OTGC09-05">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 1F 20"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 74 A0"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTGC09-06">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 74 50"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTGC09-07">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 74 51 01 C0"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTGC09-08">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 74 51 01 A0"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTGC09-09">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 74 00 01 01 88"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTGC09-10">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 74 00 01 01 28"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTGC09-11">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 74 00 01 01 30"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTGC09-12">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 74 00 01 01 50"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="60000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/14400" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTGC10">
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 76 20"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="10000"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/14400" timeout="10000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/12000" timeout="10000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/12000" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RTP" value="FF C8 33"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/9600" timeout="10000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.17/9600" timeout="10000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.17/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTGC11">
+        <!-- DUT calls tester and sends 1 IMPRESS page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="180000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+</test-group>
+<test-group name="Annex H - ECM transmit test procedures">
+    <test name="OTEN01">
+        <!-- DUT calls tester and sends 1 IMPRESS and 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress_white.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 1F 20"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="180000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-NULL+" value="FF C8 FD 00 ..."/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="180000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-MPS+" value="FF C8 FD F2 ..."/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTEN02">
+        <!-- DUT calls tester and sends 1 IMPRESS and 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress_white.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 1F 20"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="180000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-NULL+" value="FF C8 FD 00 ..."/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-NULL+" value="FF C8 FD 00 ..."/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-MPS+" value="FF C8 FD F2 ..."/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-MPS+" value="FF C8 FD F2 ..."/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="PP" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
+    </test>
+    <test name="OTEN03">
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
+
+        <step dir="R" type="CNG"/>
+
+        <step dir="T" type="CED"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 11 20"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
+
+        <step type="WAIT" value="500"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
+
+        <step type="WAIT" value="500"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
+
+        <step type="WAIT" value="500"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
+
+        <step type="WAIT" value="500"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
+
+        <step type="WAIT" value="500"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
+
+        <step type="WAIT" value="500"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
+
+        <step type="WAIT" value="500"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
+
+        <step type="WAIT" value="500"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" mode="V.21" tag="PPS-NULL" value="FF C8 7D 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" mode="V.21" tag="PPS-MPS" value="FF C8 7D 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
-    </test>
-    <test name="OTEN02">
-        <step type="ANSWER"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step dir="R" type="CNG"/>
+        <step type="WAIT" value="500"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="T" type="CED"/>
-        <step type="WAIT" value="75"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
+
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 1F 20"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-impress.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" mode="V.21" tag="PPS-NULL" value="FF C8 7D 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-impress.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" mode="V.21" tag="PPS-NULL" value="FF C8 7D 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-impress.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" mode="V.21" tag="PPS-MPS" value="FF C8 7D 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" mode="V.21" tag="PPS-MPS" value="FF C8 7D 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
+
+        <step type="WAIT" value="500"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="RR+" value="FF C8 F6"/>
+
+        <step type="WAIT" value="500"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
-    <test name="OTEN03">
-        <step type="ANSWER"/>
+    <test name="OTEN04">
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -4580,88 +5310,96 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 1F 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
+        <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
+        <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="RR" value="FF C8 76"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
+        <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="RNR" value="FF C8 37"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
-    </test>
-    <test name="OTEN04">
-        <step type="ANSWER"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
+        <step dir="R" type="SILENCE"/>
 
-        <step dir="R" type="CNG"/>
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
+        <step dir="R" type="SILENCE"/>
 
-        <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 1F 20"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="CTC" value="FF C8 C8"/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="CTR" value="FF C8 23"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOR-EOP" value="FF C8 73 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOR-EOP+" value="FF C8 F3 F4 ..."/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
@@ -4669,11 +5407,12 @@
         <step dir="T" type="HDLC" tag="ERR" value="FF C8 38"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
         <step dir="R" type="SILENCE"/>
     </test>
     <test name="OTEN05">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -4683,7 +5422,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 1F 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
         <step dir="R" type="SILENCE"/>
 
@@ -4692,43 +5431,43 @@
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
+        <step dir="T" type="HDLC" modem="V.21" tag="PPR" value="FF C8 3D 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="CTC" value="FF C8 48"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="CTC+" value="FF C8 C8"/>
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
@@ -4736,66 +5475,73 @@
         <step dir="T" type="HDLC" tag="CTR" value="FF C8 23"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="OTEN06">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 IMPRESS page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_impress.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 1F 20"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 11 22"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="PP" modem="V.27ter/4800" value="a4-impress.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP" value="FF C8 7D 74"/>
+        <step dir="R" type="PP" modem="V.27ter/4800" value="etsi_300_242_a4_impress.tif" timeout="180000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="PPS-EOP+" value="FF C8 FD F4 ..."/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="MCF" value="FF C8 31"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
 </test-group>
 <test-group name="Annex I - Exception transmit test procedures">
     <test name="MTGX01">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and is prepared to send 1 WHITE page. Tester sends CED/DIS
+             29999ms after going off hook -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
+        <step type="WAIT" value="29999"/>
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
     </test>
     <test name="MTGX02">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and is prepared to send 1 WHITE page. Tester sends CED/DIS
+             40001ms after going off hook -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
+        <step type="WAIT" value="140001"/>
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -4808,18 +5554,19 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MTGX03">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and is prepared to send 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -4827,26 +5574,29 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MTGX04">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and is prepared to send 2 WHITE pages separately. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="T" type="SET" tag="TXFILE" value="etsi_300_242_a4_white.tif"/>
+
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -4854,7 +5604,8 @@
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MTGX05">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and attempts to send 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -4864,8 +5615,8 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
@@ -4873,15 +5624,16 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DCN" value="FF C8 5F"/>
+        <step dir="T" type="HDLC" tag="DCN+" value="FF C8 DF"/>
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MTGX06">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -4891,7 +5643,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
@@ -4900,59 +5652,70 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DCN" value="FF C8 5F"/>
+        <step dir="T" type="HDLC" tag="DCN+" value="FF C8 DF"/>
         <step dir="T" type="POSTAMBLE"/>
     </test>
     <test name="MTGX07">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGX08">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages separately. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="T" type="SET" tag="TXFILE" value="etsi_300_242_a4_white.tif"/>
+
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGX09">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -4962,7 +5725,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800"/>
 
         <step type="WAIT" value="75"/>
@@ -4971,13 +5734,17 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGX10">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -4987,7 +5754,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800"/>
 
         <step type="WAIT" value="75"/>
@@ -4996,39 +5763,43 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGX11">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/7200"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800"/>
 
         <step type="WAIT" value="75"/>
@@ -5036,127 +5807,141 @@
         <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/2400"/>
+
+        <step type="WAIT" value="75"/>
+        <step dir="T" type="PREAMBLE" modem="V.21"/>
+        <step dir="T" type="HDLC" tag="FTT" value="FF C8 22"/>
+        <step dir="T" type="POSTAMBLE"/>
+
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGX12">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGX13">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="60000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGX14">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages separately. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
-        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
+        <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 72 20"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.29/9600" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="T" type="SET" tag="TXFILE" value="etsi_300_242_a4_white.tif"/>
+
+        <step dir="R" type="MSG" modem="V.29/9600" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOM" value="FF C8 71"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOM+" value="FF C8 F1"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGX15">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 2 WHITE pages. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -5166,7 +5951,7 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
         <step dir="R" type="TCF" modem="V.27ter/4800"/>
 
         <step type="WAIT" value="75"/>
@@ -5175,31 +5960,32 @@
         <step dir="T" type="POSTAMBLE"/>
 
         <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="MPS+" value="FF C8 F2"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGX16">
-        <step type="ANSWER"/>
+        <!-- DUT calls tester and sends 1 WHITE page. -->
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -5209,65 +5995,66 @@
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCS" value="FF C8 41 00 50 00"/>
-        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCS+" value="FF C8 C1 ..."/>
+        <step dir="R" type="TCF" modem="V.27ter/4800" timeout="10000"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" value="a4-white.tif" timeout="60000"/>
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="MSG" modem="V.27ter/4800" timeout="60000"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="EOP" value="FF C8 74"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="EOP+" value="FF C8 F4"/>
 
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" modem="V.21" tag="CRP" value="FF C8 58"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="HDLC" modem="V.21" tag="DCN" value="FF C8 5F"/>
+        <step dir="R" type="HDLC" modem="V.21" tag="DCN+" value="FF C8 DF"/>
     </test>
     <test name="MTGX17">
         <!-- DUT calls tester, and is configured to send 1 WHITE page. Tester responds with an unknown frame instead of
              the first and second DIS. This is because some DUTs ignore the first frame coming after CED, and wait for
              the second one to continue the call. -->
-        <step type="ANSWER" value="a4-white.tif"/>
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
         <step dir="T" type="CED"/>
+
         <step type="WAIT" value="75"/>
         <!-- UNKNOWN_BCS_2 -->
         <step dir="T" type="PREAMBLE" modem="V.21" value="37"/>
         <step dir="T" type="HDLC" tag="GARBAGE" value="FF C8 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="3500"/>
         <!-- UNKNOWN_BCS_2 -->
         <step dir="T" type="PREAMBLE" modem="V.21" value="37"/>
         <step dir="T" type="HDLC" tag="GARBAGE" value="FF C8 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="3500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step type="WAIT" value="75"/>
+        <step type="WAIT" value="3500"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="DIS" value="FF C8 01 00 50 00"/>
         <step dir="T" type="POSTAMBLE"/>
@@ -5279,7 +6066,7 @@
     </test>
     <test name="MTGX18">
         <!-- DUT calls tester, and sends 1 WHITE page -->
-        <step type="ANSWER" value="a4-white.tif"/>
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -5322,7 +6109,7 @@
     </test>
     <test name="MTGX19">
         <!-- DUT calls tester, and sends 1 WHITE page -->
-        <step type="ANSWER" value="a4-white.tif"/>
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -5358,7 +6145,7 @@
     </test>
     <test name="MTGX20">
         <!-- DUT calls tester, and attempts to send 1 WHITE page -->
-        <step type="ANSWER" value="a4-white.tif"/>
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
  
@@ -5391,7 +6178,7 @@
     </test>
     <test name="MTGX21">
         <!-- DUT calls tester, and sends 2 WHITE pages -->
-        <step type="ANSWER" value="a4-white-2p.tif"/>
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -5438,7 +6225,7 @@
     </test>
     <test name="MTGX22">
         <!-- DUT calls tester, and sends 2 WHITE pages -->
-        <step type="ANSWER" value="a4-white-2p.tif"/>
+        <step type="ANSWER" value="etsi_300_242_a4_white_2p.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -5484,7 +6271,7 @@
     </test>
     <test name="MTGX23">
         <!-- DUT calls tester, and sends 1 WHITE page -->
-        <step type="ANSWER" value="a4-white.tif"/>
+        <step type="ANSWER" value="etsi_300_242_a4_white.tif"/>
 
         <step dir="R" type="CNG"/>
 
@@ -5524,7 +6311,7 @@
     <test name="MRGP01">
         <!-- DUT has been prepared with 2 WHITE pages, which are available for polling without a password. Tester calls DUT.
              DUT should send TSI for this test procedure. -->
-        <step type="CALL" value="a4-white-2p.tif"/>
+        <step type="CALL" value="etsi_300_242_a4_white_2p.tif"/>
         <step dir="T" type="SET" tag="IDENT" value="1234567890"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -5561,7 +6348,7 @@
         <step dir="T" type="HDLC" tag="CFR" value="FF C8 21"/>
         <step dir="T" type="POSTAMBLE"/>
 
-        <step dir="R" type="MSG" modem="V.27ter/4800" value="a4-white.tif" timeout="60000">
+        <step dir="R" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif" timeout="60000">
             <check name="MRGP01M10" desc="Polled, MSG1"/>
         </step>
         <step dir="R" type="HDLC" modem="V.21" tag="MPS" value="FF C8 72">
@@ -5601,7 +6388,7 @@
     </test>
     <test name="MRGP02">
         <!-- DUT has been prepared with 2 WHITE pages, which are available for polling using a password. Tester calls DUT -->
-        <step type="CALL" value="a4-white-2p.tif"/>
+        <step type="CALL" value="etsi_300_242_a4_white_2p.tif"/>
         <step dir="T" type="SET" tag="IDENT" value="1234567890"/>
         <step dir="R" type="SET" tag="PWD" value="+9876543210"/>
 
@@ -5677,7 +6464,7 @@
     </test>
     <test name="MRGP04">
         <!-- DUT has been prepared with 2 WHITE pages, which are available for polling using a password. Tester calls DUT -->
-        <step type="CALL" value="a4-white-2p.tif"/>
+        <step type="CALL" value="etsi_300_242_a4_white_2p.tif"/>
         <step dir="R" type="SET" tag="PWD" value="+0123456789"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -5720,7 +6507,7 @@
     </test>
     <test name="MRGP06">
         <!-- DUT has been prepared with 2 WHITE pages, which are available for polling without a password. Tester calls DUT -->
-        <step type="CALL" value="a4-white-2p.tif"/>
+        <step type="CALL" value="etsi_300_242_a4_white_2p.tif"/>
 
         <!--<step dir="T" type="CNG"/>-->
 
@@ -5767,7 +6554,7 @@
     </test>
     <test name="MRGP07">
         <!-- DUT has been prepared with 2 WHITE pages, which are available for polling using a password. Tester calls DUT -->
-        <step type="CALL" value="a4-white-2p.tif"/>
+        <step type="CALL" value="etsi_300_242_a4_white_2p.tif"/>
         <step dir="R" type="SET" tag="PWD" value="+9876543210"/>
 
         <!--<step dir="T" type="CNG"/>-->
@@ -5809,7 +6596,7 @@
     <test name="ORGP09">
         <!-- DUT has been prepared with 1 WHITE page, which is available for polling without password. Tester calls DUT
              Tester sends 1 WHITE page -->
-        <step type="CALL" value="a4-white.tif"/>
+        <step type="CALL" value="etsi_300_242_a4_white.tif"/>
 
         <!--<step dir="T" type="CNG"/>-->
 
@@ -5828,7 +6615,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOM" value="FF C8 71"/>
@@ -5869,7 +6656,7 @@
     <test name="ORGP10">
         <!-- DUT has been prepared with 1 WHITE page, which is available for polling without password. Tester calls DUT
              Tester sends 1 WHITE page -->
-        <step type="CALL" value="a4-white.tif"/>
+        <step type="CALL" value="etsi_300_242_a4_white.tif"/>
 
         <!--<step dir="T" type="CNG"/>-->
 
@@ -5888,7 +6675,7 @@
         <step dir="R" type="SILENCE"/>
 
         <step type="WAIT" value="75"/>
-        <step dir="T" type="MSG" modem="V.27ter/4800" value="a4-white.tif"/>
+        <step dir="T" type="MSG" modem="V.27ter/4800" value="etsi_300_242_a4_white.tif"/>
         <step type="WAIT" value="75"/>
         <step dir="T" type="PREAMBLE" modem="V.21"/>
         <step dir="T" type="HDLC" tag="EOM" value="FF C8 71"/>

Modified: freeswitch/trunk/libs/spandsp/src/dds_int.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/dds_int.c	(original)
+++ freeswitch/trunk/libs/spandsp/src/dds_int.c	Tue Sep 30 23:52:36 2008
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: dds_int.c,v 1.10 2008/09/01 16:07:33 steveu Exp $
+ * $Id: dds_int.c,v 1.11 2008/09/11 15:13:42 steveu Exp $
  */
 
 /*! \file */
@@ -252,11 +252,11 @@
 }
 /*- End of function --------------------------------------------------------*/
 
-int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase)
+int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
 {
     int16_t amp;
 
-    amp = (int16_t) ((dds_lookup(*phase_acc + phase)*scale) >> 15);
+    amp = (int16_t) (((int32_t) dds_lookup(*phase_acc + phase)*(int32_t) scale) >> 15);
     *phase_acc += phase_rate;
     return amp;
 }
@@ -278,12 +278,12 @@
 }
 /*- End of function --------------------------------------------------------*/
 
-complexi_t dds_complexi_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase)
+complexi_t dds_complexi_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
 {
     complexi_t amp;
 
-    amp = complex_seti((dds_lookup(*phase_acc + phase + (1 << 30))*scale) >> 15,
-                       (dds_lookup(*phase_acc + phase)*scale) >> 15);
+    amp = complex_seti(((int32_t) dds_lookup(*phase_acc + phase + (1 << 30))*(int32_t) scale) >> 15,
+                       ((int32_t) dds_lookup(*phase_acc + phase)*(int32_t) scale) >> 15);
     *phase_acc += phase_rate;
     return amp;
 }
@@ -305,12 +305,12 @@
 }
 /*- End of function --------------------------------------------------------*/
 
-complexi16_t dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase)
+complexi16_t dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
 {
     complexi16_t amp;
 
-    amp = complex_seti16((dds_lookup(*phase_acc + phase + (1 << 30))*scale) >> 15,
-                         (dds_lookup(*phase_acc + phase)*scale) >> 15);
+    amp = complex_seti16(((int32_t) dds_lookup(*phase_acc + phase + (1 << 30))*(int32_t) scale) >> 15,
+                         ((int32_t) dds_lookup(*phase_acc + phase)*(int32_t) scale) >> 15);
     *phase_acc += phase_rate;
     return amp;
 }
@@ -332,12 +332,12 @@
 }
 /*- End of function --------------------------------------------------------*/
 
-complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase)
+complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
 {
     complexi32_t amp;
 
-    amp = complex_seti32((dds_lookup(*phase_acc + phase + (1 << 30))*scale) >> 15,
-                         (dds_lookup(*phase_acc + phase)*scale) >> 15);
+    amp = complex_seti32(((int32_t) dds_lookup(*phase_acc + phase + (1 << 30))*(int32_t) scale) >> 15,
+                         ((int32_t) dds_lookup(*phase_acc + phase)*(int32_t) scale) >> 15);
     *phase_acc += phase_rate;
     return amp;
 }

Modified: freeswitch/trunk/libs/spandsp/src/spandsp/dds.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/dds.h	(original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/dds.h	Tue Sep 30 23:52:36 2008
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: dds.h,v 1.20 2008/09/04 14:40:05 steveu Exp $
+ * $Id: dds.h,v 1.21 2008/09/11 15:13:42 steveu Exp $
  */
 
 /*! \file */
@@ -98,7 +98,7 @@
     \param phase The phase offset.
     \return The signal amplitude, between -32767 and 32767.
 */
-int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase);
+int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase);
 
 /*! \brief Lookup the complex integer value of a specified phase.
     \param phase The phase accumulator value to be looked up.
@@ -120,7 +120,7 @@
     \param phase The phase offset.
     \return The complex signal amplitude, between (-32767, -32767) and (32767, 32767).
 */
-complexi_t dds_complexi_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase);
+complexi_t dds_complexi_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase);
 
 /*! \brief Generate a complex 16 bit integer tone sample.
     \param phase_acc A pointer to a phase accumulator value.
@@ -143,7 +143,7 @@
     \param phase The phase offset.
     \return The complex signal amplitude, between (-32767, -32767) and (32767, 32767).
 */
-complexi16_t dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase);
+complexi16_t dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase);
 
 /*! \brief Generate a complex 32 bit integer tone sample, with modulation.
     \param phase_acc A pointer to a phase accumulator value.
@@ -152,7 +152,7 @@
     \param phase The phase offset.
     \return The complex signal amplitude, between (-32767, -32767) and (32767, 32767).
 */
-complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase);
+complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase);
 
 /*! \brief Generate a complex 32 bit integer tone sample.
     \param phase_acc A pointer to a phase accumulator value.
@@ -175,7 +175,7 @@
     \param phase The phase offset.
     \return The complex signal amplitude, between (-32767, -32767) and (32767, 32767).
 */
-complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase);
+complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase);
 
 /*! \brief Find the phase rate equivalent to a frequency, in Hz.
     \param frequency The frequency, in Hz.

Modified: freeswitch/trunk/libs/spandsp/src/spandsp/tone_generate.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/tone_generate.h	(original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/tone_generate.h	Tue Sep 30 23:52:36 2008
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: tone_generate.h,v 1.33 2008/04/17 14:27:01 steveu Exp $
+ * $Id: tone_generate.h,v 1.34 2008/09/11 15:13:42 steveu Exp $
  */
 
 /*! \file */
@@ -48,7 +48,11 @@
 typedef struct
 {
     int32_t phase_rate;
+#if defined(SPANDSP_USE_FIXED_POINT)
+    int16_t gain;
+#else
     float gain;
+#endif
 } tone_gen_tone_descriptor_t;
 
 /*!

Modified: freeswitch/trunk/libs/spandsp/src/spandsp/version.h
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/spandsp/version.h	(original)
+++ freeswitch/trunk/libs/spandsp/src/spandsp/version.h	Tue Sep 30 23:52:36 2008
@@ -30,8 +30,8 @@
 
 /* The date and time of the version are in UTC form. */
 
-#define SPANDSP_RELEASE_DATE    20080909
-#define SPANDSP_RELEASE_TIME    162813
+#define SPANDSP_RELEASE_DATE    20080911
+#define SPANDSP_RELEASE_TIME    151652
 
 #endif
 /*- End of file ------------------------------------------------------------*/

Modified: freeswitch/trunk/libs/spandsp/src/t30.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/t30.c	(original)
+++ freeswitch/trunk/libs/spandsp/src/t30.c	Tue Sep 30 23:52:36 2008
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: t30.c,v 1.264 2008/09/09 15:30:43 steveu Exp $
+ * $Id: t30.c,v 1.266 2008/09/11 15:13:42 steveu Exp $
  */
 
 /*! \file */
@@ -682,6 +682,15 @@
 }
 /*- End of function --------------------------------------------------------*/
 
+static int send_rr(t30_state_t *s)
+{
+    if (s->current_status != T30_ERR_TX_T5EXP)
+        send_simple_frame(s, T30_RR);
+    else
+        send_dcn(s);
+}
+/*- End of function --------------------------------------------------------*/
+
 static int send_first_ecm_frame(t30_state_t *s)
 {
     s->ecm_current_tx_frame = 0;
@@ -1517,6 +1526,26 @@
 }
 /*- End of function --------------------------------------------------------*/
 
+static void return_to_phase_b(t30_state_t *s, int with_fallback)
+{
+    /* This is what we do after things like T30_EOM is exchanged. */
+    if (step_fallback_entry(s) < 0)
+    {
+        /* We have fallen back as far as we can go. Give up. */
+        s->current_fallback = 0;
+        s->current_status = T30_ERR_CANNOT_TRAIN;
+        send_dcn(s);
+    }
+    else
+    {
+        if (s->calling_party)
+            set_state(s, T30_STATE_T);
+        else
+            set_state(s, T30_STATE_R);
+    }
+}
+/*- End of function --------------------------------------------------------*/
+
 static int send_dis_or_dtc_sequence(t30_state_t *s, int start)
 {
     /* (NSF) (CSI) DIS */
@@ -2668,12 +2697,14 @@
         break;
     case T30_DIS:
         /* It appears they didn't see what we sent - retry the TCF */
-        if (++s->retries > MAX_MESSAGE_TRIES)
+        if (++s->retries >= MAX_MESSAGE_TRIES)
         {
+            span_log(&s->logging, SPAN_LOG_FLOW, "Too many retries. Giving up.\n");
             s->current_status = T30_ERR_RETRYDCN;
             send_dcn(s);
             break;
         }
+        span_log(&s->logging, SPAN_LOG_FLOW, "Retry number %d\n", s->retries);
         queue_phase(s, T30_PHASE_B_TX);
         /* TODO: should we reassess the new DIS message, and possibly adjust the DCS we use? */
         send_dcs_sequence(s, TRUE);
@@ -2759,7 +2790,10 @@
 static void process_state_f_doc_non_ecm(t30_state_t *s, const uint8_t *msg, int len)
 {
     /* If we are getting HDLC messages, and we have not moved to the _POST_DOC_NON_ECM
-       state, it looks like we didn't see the image data carrier properly. */
+       state, it looks like either:
+        - we didn't see the image data carrier properly, or
+        - they didn't see our T30_CFR, and are repeating the DCS/TCF sequence.
+        - they didn't see out T30_MCF, and are repeating the end of page message. */
     switch (msg[2] & 0xFE)
     {
     case T30_DIS:
@@ -3319,12 +3353,12 @@
                 s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
             t4_tx_end(&(s->t4));
             s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
-            set_state(s, T30_STATE_R);
             if (span_log_test(&s->logging, SPAN_LOG_FLOW))
             {
                 t4_get_transfer_statistics(&s->t4, &stats);
                 span_log(&s->logging, SPAN_LOG_FLOW, "Success - delivered %d pages\n", stats.pages_transferred);
             }
+            return_to_phase_b(s, FALSE);
             break;
         case T30_EOP:
         case T30_PRI_EOP:
@@ -3349,8 +3383,14 @@
         case T30_MPS:
         case T30_PRI_MPS:
             s->retries = 0;
+            t4_tx_end_page(&(s->t4));
             if (s->phase_d_handler)
                 s->phase_d_handler(s, s->phase_d_user_data, T30_RTP);
+            if (tx_start_page(s))
+            {
+                /* TODO: recover */
+                break;
+            }
             /* Send fresh training, and then the next page */
             if (step_fallback_entry(s) < 0)
             {
@@ -3367,24 +3407,20 @@
         case T30_PRI_EOM:
         case T30_EOS:
             s->retries = 0;
+            t4_tx_end_page(&(s->t4));
             if (s->phase_d_handler)
                 s->phase_d_handler(s, s->phase_d_user_data, T30_RTP);
-            if (step_fallback_entry(s) < 0)
-            {
-                /* We have fallen back as far as we can go. Give up. */
-                s->current_fallback = 0;
-                s->current_status = T30_ERR_CANNOT_TRAIN;
-                send_dcn(s);
-                break;
-            }
+            t4_tx_end(&(s->t4));
             /* TODO: should go back to T, and resend */
-            set_state(s, T30_STATE_R);
+            return_to_phase_b(s, TRUE);
             break;
         case T30_EOP:
         case T30_PRI_EOP:
             s->retries = 0;
+            t4_tx_end_page(&(s->t4));
             if (s->phase_d_handler)
                 s->phase_d_handler(s, s->phase_d_user_data, T30_RTP);
+            t4_tx_end(&(s->t4));
             s->current_status = T30_ERR_TX_INVALRSP;
             send_dcn(s);
             break;
@@ -3410,8 +3446,6 @@
             queue_phase(s, T30_PHASE_B_TX);
             restart_sending_document(s);
             break;
-        case T30_EOP:
-        case T30_PRI_EOP:
         case T30_EOM:
         case T30_PRI_EOM:
         case T30_EOS:
@@ -3419,6 +3453,14 @@
             if (s->phase_d_handler)
                 s->phase_d_handler(s, s->phase_d_user_data, T30_RTN);
             s->current_status = T30_ERR_TX_INVALRSP;
+            return_to_phase_b(s, TRUE);
+            break;
+        case T30_EOP:
+        case T30_PRI_EOP:
+            s->retries = 0;
+            if (s->phase_d_handler)
+                s->phase_d_handler(s, s->phase_d_user_data, T30_RTN);
+            s->current_status = T30_ERR_TX_INVALRSP;
             send_dcn(s);
             break;
         }
@@ -3639,12 +3681,12 @@
                     s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
                 t4_tx_end(&(s->t4));
                 s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
-                set_state(s, T30_STATE_R);
                 if (span_log_test(&s->logging, SPAN_LOG_FLOW))
                 {
                     t4_get_transfer_statistics(&s->t4, &stats);
                     span_log(&s->logging, SPAN_LOG_FLOW, "Success - delivered %d pages\n", stats.pages_transferred);
                 }
+                return_to_phase_b(s, FALSE);
                 break;
             case T30_EOP:
             case T30_PRI_EOP:
@@ -3672,7 +3714,7 @@
             s->timer_t5 = ms_to_samples(DEFAULT_TIMER_T5);
         queue_phase(s, T30_PHASE_D_TX);
         set_state(s, T30_STATE_IV_PPS_RNR);
-        send_simple_frame(s, T30_RR);
+        send_rr(s);
         break;
     case T30_DCN:
         s->current_status = T30_ERR_TX_BADPG;
@@ -3714,7 +3756,6 @@
         }
         else
         {
-
             span_log(&s->logging, SPAN_LOG_FLOW, "Moving on to the next page\n");
             switch (s->next_tx_step)
             {
@@ -3745,12 +3786,12 @@
                     s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
                 t4_tx_end(&(s->t4));
                 s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
-                set_state(s, T30_STATE_R);
                 if (span_log_test(&s->logging, SPAN_LOG_FLOW))
                 {
                     t4_get_transfer_statistics(&s->t4, &stats);
                     span_log(&s->logging, SPAN_LOG_FLOW, "Success - delivered %d pages\n", stats.pages_transferred);
                 }
+                return_to_phase_b(s, FALSE);
                 break;
             case T30_EOP:
             case T30_PRI_EOP:
@@ -3775,7 +3816,7 @@
             s->timer_t5 = ms_to_samples(DEFAULT_TIMER_T5);
         queue_phase(s, T30_PHASE_D_TX);
         set_state(s, T30_STATE_IV_PPS_RNR);
-        send_simple_frame(s, T30_RR);
+        send_rr(s);
         break;
     case T30_PIP:
         s->retries = 0;
@@ -3866,12 +3907,12 @@
                     s->phase_d_handler(s, s->phase_d_user_data, T30_MCF);
                 t4_tx_end(&(s->t4));
                 s->operation_in_progress = OPERATION_IN_PROGRESS_NONE;
-                set_state(s, T30_STATE_R);
                 if (span_log_test(&s->logging, SPAN_LOG_FLOW))
                 {
                     t4_get_transfer_statistics(&s->t4, &stats);
                     span_log(&s->logging, SPAN_LOG_FLOW, "Success - delivered %d pages\n", stats.pages_transferred);
                 }
+                return_to_phase_b(s, FALSE);
                 break;
             case T30_EOP:
             case T30_PRI_EOP:
@@ -3896,7 +3937,7 @@
             s->timer_t5 = ms_to_samples(DEFAULT_TIMER_T5);
         queue_phase(s, T30_PHASE_D_TX);
         set_state(s, T30_STATE_IV_PPS_RNR);
-        send_simple_frame(s, T30_RR);
+        send_rr(s);
         break;
     case T30_PIP:
         s->retries = 0;
@@ -3968,7 +4009,7 @@
             s->timer_t5 = ms_to_samples(DEFAULT_TIMER_T5);
         queue_phase(s, T30_PHASE_D_TX);
         set_state(s, T30_STATE_IV_EOR_RNR);
-        send_simple_frame(s, T30_RR);
+        send_rr(s);
         break;
     case T30_PIN:
         s->retries = 0;
@@ -4006,7 +4047,7 @@
             s->timer_t5 = ms_to_samples(DEFAULT_TIMER_T5);
         queue_phase(s, T30_PHASE_D_TX);
         set_state(s, T30_STATE_IV_EOR_RNR);
-        send_simple_frame(s, T30_RR);
+        send_rr(s);
         break;
     case T30_PIN:
         s->retries = 0;
@@ -4341,98 +4382,109 @@
 
 static void set_phase(t30_state_t *s, int phase)
 {
-    if (phase != s->phase)
+    //if (phase = s->phase)
+    //    return;
+    span_log(&s->logging, SPAN_LOG_FLOW, "Changing from phase %s to %s\n", phase_names[s->phase], phase_names[phase]);
+    /* We may be killing a receiver before it has declared the end of the
+       signal. Force the signal present indicator to off, because the
+       receiver will never be able to. */
+    if (s->phase != T30_PHASE_A_CED  &&  s->phase != T30_PHASE_A_CNG)
+        s->rx_signal_present = FALSE;
+    s->rx_trained = FALSE;
+    s->rx_frame_received = FALSE;
+    s->phase = phase;
+    switch (phase)
     {
-        span_log(&s->logging, SPAN_LOG_FLOW, "Changing from phase %s to %s\n", phase_names[s->phase], phase_names[phase]);
-        /* We may be killing a receiver before it has declared the end of the
-           signal. Force the signal present indicator to off, because the
-           receiver will never be able to. */
-        if (s->phase != T30_PHASE_A_CED  &&  s->phase != T30_PHASE_A_CNG)
-            s->rx_signal_present = FALSE;
-        s->rx_trained = FALSE;
-        s->rx_frame_received = FALSE;
-        s->phase = phase;
-        switch (phase)
+    case T30_PHASE_A_CED:
+        if (s->set_rx_type_handler)
+            s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_V21, 300, FALSE, TRUE);
+        if (s->set_tx_type_handler)
+            s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_CED, 0, FALSE, FALSE);
+        break;
+    case T30_PHASE_A_CNG:
+        if (s->set_rx_type_handler)
+            s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_V21, 300, FALSE, TRUE);
+        if (s->set_tx_type_handler)
+            s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_CNG, 0, FALSE, FALSE);
+        break;
+    case T30_PHASE_B_RX:
+    case T30_PHASE_D_RX:
+        if (s->set_rx_type_handler)
+            s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_V21, 300, FALSE, TRUE);
+        if (s->set_tx_type_handler)
+            s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
+        break;
+    case T30_PHASE_B_TX:
+    case T30_PHASE_D_TX:
+        if (!s->far_end_detected  &&  s->timer_t0_t1 > 0)
         {
-        case T30_PHASE_A_CED:
-            if (s->set_rx_type_handler)
-                s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_V21, 300, FALSE, TRUE);
-            if (s->set_tx_type_handler)
-                s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_CED, 0, FALSE, FALSE);
-            break;
-        case T30_PHASE_A_CNG:
-            if (s->set_rx_type_handler)
-                s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_V21, 300, FALSE, TRUE);
-            if (s->set_tx_type_handler)
-                s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_CNG, 0, FALSE, FALSE);
-            break;
-        case T30_PHASE_B_RX:
-        case T30_PHASE_D_RX:
-            if (s->set_rx_type_handler)
-                s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_V21, 300, FALSE, TRUE);
-            if (s->set_tx_type_handler)
-                s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
-            break;
-        case T30_PHASE_B_TX:
-        case T30_PHASE_D_TX:
-            if (!s->far_end_detected  &&  s->timer_t0_t1 > 0)
-            {
-                s->timer_t0_t1 = ms_to_samples(DEFAULT_TIMER_T1);
-                s->far_end_detected = TRUE;
-            }
-            if (s->set_rx_type_handler)
-                s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
-            if (s->set_tx_type_handler)
-                s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_V21, 300, FALSE, TRUE);
-            break;
-        case T30_PHASE_C_NON_ECM_RX:
-            if (s->set_rx_type_handler)
-                s->set_rx_type_handler(s->set_rx_type_user_data, fallback_sequence[s->current_fallback].modem_type, fallback_sequence[s->current_fallback].bit_rate, s->short_train, FALSE);
-            if (s->set_tx_type_handler)
-                s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
-            break;
-        case T30_PHASE_C_NON_ECM_TX:
-            /* Pause before switching from anything to phase C */
-            /* Always prime the training count for 1.5s of data at the current rate. Its harmless if
-               we prime it and are not doing TCF. */
-            s->tcf_test_bits = (3*fallback_sequence[s->current_fallback].bit_rate)/2;
-            if (s->set_rx_type_handler)
-                s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
-            if (s->set_tx_type_handler)
-                s->set_tx_type_handler(s->set_tx_type_user_data, fallback_sequence[s->current_fallback].modem_type, fallback_sequence[s->current_fallback].bit_rate, s->short_train, FALSE);
-            break;
-        case T30_PHASE_C_ECM_RX:
-            if (s->set_rx_type_handler)
-                s->set_rx_type_handler(s->set_rx_type_user_data, fallback_sequence[s->current_fallback].modem_type, fallback_sequence[s->current_fallback].bit_rate, s->short_train, TRUE);
-            if (s->set_tx_type_handler)
-                s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
-            break;
-        case T30_PHASE_C_ECM_TX:
-            /* Pause before switching from anything to phase C */
-            if (s->set_rx_type_handler)
-                s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
-            if (s->set_tx_type_handler)
-                s->set_tx_type_handler(s->set_tx_type_user_data, fallback_sequence[s->current_fallback].modem_type, fallback_sequence[s->current_fallback].bit_rate, s->short_train, TRUE);
-            break;
-        case T30_PHASE_E:
-            /* Send a little silence before ending things, to ensure the
-               buffers are all flushed through, and the far end has seen
-               the last message we sent. */
-            s->tcf_test_bits = 0;
-            s->tcf_current_zeros = 0;
-            s->tcf_most_zeros = 0;
-            if (s->set_rx_type_handler)
-                s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
-            if (s->set_tx_type_handler)
-                s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_PAUSE, 0, FINAL_FLUSH_TIME, FALSE);
-            break;
-        case T30_PHASE_CALL_FINISHED:
-            if (s->set_rx_type_handler)
-                s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_DONE, 0, FALSE, FALSE);
-            if (s->set_tx_type_handler)
-                s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_DONE, 0, FALSE, FALSE);
-            break;
+            s->timer_t0_t1 = ms_to_samples(DEFAULT_TIMER_T1);
+            s->far_end_detected = TRUE;
         }
+        if (s->set_rx_type_handler)
+            s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
+        if (s->set_tx_type_handler)
+            s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_V21, 300, FALSE, TRUE);
+        break;
+    case T30_PHASE_C_NON_ECM_RX:
+        if (s->set_rx_type_handler)
+        {
+            /* Momentarily stop the receive modem, so the next change is forced to happen. If we don't do this
+               an HDLC message on the slow modem, which has disabled the fast modem, will prevent the same
+               fast modem from restarting. */
+            s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
+            s->set_rx_type_handler(s->set_rx_type_user_data, fallback_sequence[s->current_fallback].modem_type, fallback_sequence[s->current_fallback].bit_rate, s->short_train, FALSE);
+        }
+        if (s->set_tx_type_handler)
+            s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
+        break;
+    case T30_PHASE_C_NON_ECM_TX:
+        /* Pause before switching from anything to phase C */
+        /* Always prime the training count for 1.5s of data at the current rate. Its harmless if
+           we prime it and are not doing TCF. */
+        s->tcf_test_bits = (3*fallback_sequence[s->current_fallback].bit_rate)/2;
+        if (s->set_rx_type_handler)
+        {
+            /* Momentarily stop the receive modem, so the next change is forced to happen. If we don't do this
+               an HDLC message on the slow modem, which has disabled the fast modem, will prevent the same
+               fast modem from restarting. */
+            s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
+            s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
+        }
+        if (s->set_tx_type_handler)
+            s->set_tx_type_handler(s->set_tx_type_user_data, fallback_sequence[s->current_fallback].modem_type, fallback_sequence[s->current_fallback].bit_rate, s->short_train, FALSE);
+        break;
+    case T30_PHASE_C_ECM_RX:
+        if (s->set_rx_type_handler)
+            s->set_rx_type_handler(s->set_rx_type_user_data, fallback_sequence[s->current_fallback].modem_type, fallback_sequence[s->current_fallback].bit_rate, s->short_train, TRUE);
+        if (s->set_tx_type_handler)
+            s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
+        break;
+    case T30_PHASE_C_ECM_TX:
+        /* Pause before switching from anything to phase C */
+        if (s->set_rx_type_handler)
+            s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
+        if (s->set_tx_type_handler)
+            s->set_tx_type_handler(s->set_tx_type_user_data, fallback_sequence[s->current_fallback].modem_type, fallback_sequence[s->current_fallback].bit_rate, s->short_train, TRUE);
+        break;
+    case T30_PHASE_E:
+        /* Send a little silence before ending things, to ensure the
+           buffers are all flushed through, and the far end has seen
+           the last message we sent. */
+        s->tcf_test_bits = 0;
+        s->tcf_current_zeros = 0;
+        s->tcf_most_zeros = 0;
+        if (s->set_rx_type_handler)
+            s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_NONE, 0, FALSE, FALSE);
+        if (s->set_tx_type_handler)
+            s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_PAUSE, 0, FINAL_FLUSH_TIME, FALSE);
+        break;
+    case T30_PHASE_CALL_FINISHED:
+        if (s->set_rx_type_handler)
+            s->set_rx_type_handler(s->set_rx_type_user_data, T30_MODEM_DONE, 0, FALSE, FALSE);
+        if (s->set_tx_type_handler)
+            s->set_tx_type_handler(s->set_tx_type_user_data, T30_MODEM_DONE, 0, FALSE, FALSE);
+        break;
     }
 }
 /*- End of function --------------------------------------------------------*/
@@ -4451,6 +4503,30 @@
 static void repeat_last_command(t30_state_t *s)
 {
     s->step = 0;
+    if (++s->retries >= MAX_MESSAGE_TRIES)
+    {
+        span_log(&s->logging, SPAN_LOG_FLOW, "Too many retries. Giving up.\n");
+        switch (s->state)
+        {
+        case T30_STATE_D_POST_TCF:
+            /* Received no response to DCS or TCF */
+            s->current_status = T30_ERR_TX_PHBDEAD;
+            break;
+        case T30_STATE_II_Q:
+        case T30_STATE_IV_PPS_NULL:
+        case T30_STATE_IV_PPS_Q:
+            /* No response after sending a page */
+            s->current_status = T30_ERR_TX_PHDDEAD;
+            break;
+        default:
+            /* Disconnected after permitted retries */
+            s->current_status = T30_ERR_RETRYDCN;
+            break;
+        }
+        send_dcn(s);
+        return;
+    }
+    span_log(&s->logging, SPAN_LOG_FLOW, "Retry number %d\n", s->retries);
     switch (s->state)
     {
     case T30_STATE_R:
@@ -4482,7 +4558,7 @@
     case T30_STATE_IV_PPS_RNR:
     case T30_STATE_IV_EOR_RNR:
         queue_phase(s, T30_PHASE_D_TX);
-        send_simple_frame(s, T30_RNR);
+        send_rr(s);
         break;
     case T30_STATE_D:
         queue_phase(s, T30_PHASE_B_TX);
@@ -4693,28 +4769,6 @@
     /* There was no response (or only a corrupt response) to a command,
        within the T4 timeout period. */
     span_log(&s->logging, SPAN_LOG_FLOW, "T4 expired in phase %s, state %d\n", phase_names[s->phase], s->state);
-    if (++s->retries > MAX_MESSAGE_TRIES)
-    {
-        switch (s->state)
-        {
-        case T30_STATE_D_POST_TCF:
-            /* Received no response to DCS or TCF */
-            s->current_status = T30_ERR_TX_PHBDEAD;
-            break;
-        case T30_STATE_II_Q:
-        case T30_STATE_IV_PPS_NULL:
-        case T30_STATE_IV_PPS_Q:
-            /* No response after sending a page */
-            s->current_status = T30_ERR_TX_PHDDEAD;
-            break;
-        default:
-            /* Disconnected after permitted retries */
-            s->current_status = T30_ERR_RETRYDCN;
-            break;
-        }
-        send_dcn(s);
-        return;
-    }
     /* Of course, things might just be a little late, especially if there are T.38
        links in the path. There is no point in simply timing out, and resending,
        if we are currently receiving something from the far end - its a half-duplex
@@ -4746,7 +4800,6 @@
     /* Give up waiting for the receiver to become ready in error correction mode */
     span_log(&s->logging, SPAN_LOG_FLOW, "T5 expired in phase %s, state %d\n", phase_names[s->phase], s->state);
     s->current_status = T30_ERR_TX_T5EXP;
-    send_dcn(s);
 }
 /*- End of function --------------------------------------------------------*/
 
@@ -5605,8 +5658,7 @@
 {
     if (s->timer_t0_t1 > 0)
     {
-        s->timer_t0_t1 -= samples;
-        if (s->timer_t0_t1 <= 0)
+        if ((s->timer_t0_t1 -= samples) <= 0)
         {
             if (s->far_end_detected)
                 timer_t1_expired(s);
@@ -5616,14 +5668,12 @@
     }
     if (s->timer_t3 > 0)
     {
-        s->timer_t3 -= samples;
-        if (s->timer_t3 <= 0)
+        if ((s->timer_t3 -= samples) <= 0)
             timer_t3_expired(s);
     }
     if (s->timer_t2_t4 > 0)
     {
-        s->timer_t2_t4 -= samples;
-        if (s->timer_t2_t4 <= 0)
+        if ((s->timer_t2_t4 -= samples) <= 0)
         {
             switch (s->timer_t2_t4_is)
             {
@@ -5650,8 +5700,7 @@
     }
     if (s->timer_t5 > 0)
     {
-        s->timer_t5 -= samples;
-        if (s->timer_t5 <= 0)
+        if ((s->timer_t5 -= samples) <= 0)
             timer_t5_expired(s);
     }
 }

Modified: freeswitch/trunk/libs/spandsp/src/tone_generate.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/src/tone_generate.c	(original)
+++ freeswitch/trunk/libs/spandsp/src/tone_generate.c	Tue Sep 30 23:52:36 2008
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: tone_generate.c,v 1.43 2008/07/02 14:48:26 steveu Exp $
+ * $Id: tone_generate.c,v 1.46 2008/09/11 15:13:42 steveu Exp $
  */
 
 /*! \file */
@@ -72,15 +72,27 @@
     memset(s, 0, sizeof(*s));
     if (f1)
     {
+#if defined(SPANDSP_USE_FIXED_POINT)
+        s->tone[0].phase_rate = dds_phase_rate((float) f1);
+        if (f2 < 0)
+            s->tone[0].phase_rate = -s->tone[0].phase_rate;
+        s->tone[0].gain = dds_scaling_dbm0((float) l1);
+#else
         s->tone[0].phase_rate = dds_phase_ratef((float) f1);
         if (f2 < 0)
             s->tone[0].phase_rate = -s->tone[0].phase_rate;
         s->tone[0].gain = dds_scaling_dbm0f((float) l1);
+#endif
     }
     if (f2)
     {
+#if defined(SPANDSP_USE_FIXED_POINT)
+        s->tone[1].phase_rate = dds_phase_rate((float) abs(f2));
+        s->tone[1].gain = (f2 < 0)  ?  (float) 32767.0f*l2/100.0f  :  dds_scaling_dbm0((float) l2);
+#else
         s->tone[1].phase_rate = dds_phase_ratef((float) abs(f2));
         s->tone[1].gain = (f2 < 0)  ?  (float) l2/100.0f  :  dds_scaling_dbm0f((float) l2);
+#endif
     }
 
     s->duration[0] = d1*SAMPLE_RATE/1000;
@@ -118,7 +130,11 @@
 {
     int samples;
     int limit;
+#if defined(SPANDSP_USE_FIXED_POINT)
+    int16_t xamp;
+#else
     float xamp;
+#endif
     int i;
 
     if (s->current_section < 0)
@@ -141,30 +157,49 @@
         {
             if (s->tone[0].phase_rate < 0)
             {
+                /* Modulated tone */
                 for (  ;  samples < limit;  samples++)
                 {
-                    /* There must be two, and only two tones */
+                    /* There must be two, and only two, tones */
+#if defined(SPANDSP_USE_FIXED_POINT)
+                    xamp = ((int32_t) dds_mod(&s->phase[0], -s->tone[0].phase_rate, s->tone[0].gain, 0)
+                            *(32767 + (int32_t) dds_mod(&s->phase[1], s->tone[1].phase_rate, s->tone[1].gain, 0))) >> 15;
+                    amp[samples] = xamp;
+#else
                     xamp = dds_modf(&s->phase[0], -s->tone[0].phase_rate, s->tone[0].gain, 0)
                          *(1.0f + dds_modf(&s->phase[1], s->tone[1].phase_rate, s->tone[1].gain, 0));
                     amp[samples] = (int16_t) lrintf(xamp);
+#endif
                 }
             }
             else
             {
                 for (  ;  samples < limit;  samples++)
                 {
+#if defined(SPANDSP_USE_FIXED_POINT)
+                    xamp = 0;
+#else
                     xamp = 0.0f;
+#endif
                     for (i = 0;  i < 4;  i++)
                     {
                         if (s->tone[i].phase_rate == 0)
                             break;
+#if defined(SPANDSP_USE_FIXED_POINT)
+                        xamp += dds_mod(&s->phase[i], s->tone[i].phase_rate, s->tone[i].gain, 0);
+#else
                         xamp += dds_modf(&s->phase[i], s->tone[i].phase_rate, s->tone[i].gain, 0);
+#endif
                     }
                     /* Saturation of the answer is the right thing at this point.
                        However, we are normally generating well controlled tones,
                        that cannot clip. So, the overhead of doing saturation is
                        a waste of valuable time. */
+#if defined(SPANDSP_USE_FIXED_POINT)
+                    amp[samples] = xamp;
+#else
                     amp[samples] = (int16_t) lrintf(xamp);
+#endif
                 }
             }
         }

Modified: freeswitch/trunk/libs/spandsp/test-data/etsi/fax/Makefile.am
==============================================================================
--- freeswitch/trunk/libs/spandsp/test-data/etsi/fax/Makefile.am	(original)
+++ freeswitch/trunk/libs/spandsp/test-data/etsi/fax/Makefile.am	Tue Sep 30 23:52:36 2008
@@ -16,7 +16,7 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 ##
-## $Id: Makefile.am,v 1.1 2008/07/10 12:44:54 steveu Exp $
+## $Id: Makefile.am,v 1.2 2008/09/10 16:55:15 steveu Exp $
 
 AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
 
@@ -25,13 +25,17 @@
 
 EXTRA_DIST = 
 
-nobase_data_DATA = etsi_300_242_white.tif \
-                   etsi_300_242_stairstep.tif \
-                   etsi_300_242_diago1.tif \
-                   etsi_300_242_diago2.tif \
-                   etsi_300_242_impress.tif \
-                   etsi_300_242_error.tif
-
+nobase_data_DATA = etsi_300_242_a4_diago1.tif \
+                   etsi_300_242_a4_diago2.tif \
+                   etsi_300_242_a4_duration1.tif \
+                   etsi_300_242_a4_duration2.tif \
+                   etsi_300_242_a4_error.tif \
+                   etsi_300_242_a4_impress.tif \
+                   etsi_300_242_a4_impress_white.tif \
+                   etsi_300_242_a4_stairstep.tif \
+                   etsi_300_242_a4_white.tif \
+                   etsi_300_242_a4_white_2p.tif
+                   
 noinst_PROGRAMS =   generate_etsi_300_242_pages
 
 generate_etsi_300_242_pages_SOURCES = generate_etsi_300_242_pages.c
@@ -46,10 +50,14 @@
 .pbm.g3:
 	${PBM2G3} $*.pbm >$*.g3
 
-etsi_300_242_white.tif \
-etsi_300_242_stairstep.tif \
-etsi_300_242_diago1.tif \
-etsi_300_242_diago2.tif \
-etsi_300_242_impress.tif \
-etsi_300_242_error.tif: generate_etsi_300_242_pages$(EXEEXT)
+etsi_300_242_a4_diago1.tif \
+etsi_300_242_a4_diago2.tif \
+etsi_300_242_a4_duration1.tif \
+etsi_300_242_a4_duration2.tif \
+etsi_300_242_a4_error.tif \
+etsi_300_242_a4_impress.tif \
+etsi_300_242_a4_impress_white.tif \
+etsi_300_242_a4_stairstep.tif \
+etsi_300_242_a4_white.tif \
+etsi_300_242_a4_white_2p.tif: generate_etsi_300_242_pages$(EXEEXT)
 	./generate_etsi_300_242_pages$(EXEEXT)

Modified: freeswitch/trunk/libs/spandsp/test-data/etsi/fax/generate_etsi_300_242_pages.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/test-data/etsi/fax/generate_etsi_300_242_pages.c	(original)
+++ freeswitch/trunk/libs/spandsp/test-data/etsi/fax/generate_etsi_300_242_pages.c	Tue Sep 30 23:52:36 2008
@@ -22,7 +22,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: generate_etsi_300_242_pages.c,v 1.1 2008/07/10 12:44:54 steveu Exp $
+ * $Id: generate_etsi_300_242_pages.c,v 1.2 2008/09/10 16:55:15 steveu Exp $
  */
 
 /*! \file */
@@ -61,7 +61,7 @@
 } sequence[] =
 {
     {
-        "etsi_300_242_white.tif",
+        "etsi_300_242_a4_diago1.tif",
         T4_X_RESOLUTION_R8,
         T4_Y_RESOLUTION_STANDARD,
         T4_WIDTH_R8_A4,
@@ -70,7 +70,7 @@
         0
     },
     {
-        "etsi_300_242_stairstep.tif",
+        "etsi_300_242_a4_diago2.tif",
         T4_X_RESOLUTION_R8,
         T4_Y_RESOLUTION_STANDARD,
         T4_WIDTH_R8_A4,
@@ -79,7 +79,7 @@
         1
     },
     {
-        "etsi_300_242_diago1.tif",
+        "etsi_300_242_a4_duration1.tif",
         T4_X_RESOLUTION_R8,
         T4_Y_RESOLUTION_STANDARD,
         T4_WIDTH_R8_A4,
@@ -88,7 +88,7 @@
         2
     },
     {
-        "etsi_300_242_diago2.tif",
+        "etsi_300_242_a4_duration2.tif",
         T4_X_RESOLUTION_R8,
         T4_Y_RESOLUTION_STANDARD,
         T4_WIDTH_R8_A4,
@@ -97,7 +97,7 @@
         3
     },
     {
-        "etsi_300_242_impress.tif",
+        "etsi_300_242_a4_error.tif",
         T4_X_RESOLUTION_R8,
         T4_Y_RESOLUTION_STANDARD,
         T4_WIDTH_R8_A4,
@@ -106,7 +106,7 @@
         4
     },
     {
-        "etsi_300_242_duration1.tif",
+        "etsi_300_242_a4_impress.tif",
         T4_X_RESOLUTION_R8,
         T4_Y_RESOLUTION_STANDARD,
         T4_WIDTH_R8_A4,
@@ -115,7 +115,7 @@
         5
     },
     {
-        "etsi_300_242_duration2.tif",
+        "etsi_300_242_a4_stairstep.tif",
         T4_X_RESOLUTION_R8,
         T4_Y_RESOLUTION_STANDARD,
         T4_WIDTH_R8_A4,
@@ -124,7 +124,43 @@
         6
     },
     {
-        "etsi_300_242_error.tif",
+        "etsi_300_242_a4_white.tif",
+        T4_X_RESOLUTION_R8,
+        T4_Y_RESOLUTION_STANDARD,
+        T4_WIDTH_R8_A4,
+        1100,
+        COMPRESSION_CCITT_T4,
+        7
+    },
+    {
+        "etsi_300_242_a4_white_2p.tif",
+        T4_X_RESOLUTION_R8,
+        T4_Y_RESOLUTION_STANDARD,
+        T4_WIDTH_R8_A4,
+        1100,
+        COMPRESSION_CCITT_T4,
+        7
+    },
+    {   /* Second page of the above file */
+        "",
+        T4_X_RESOLUTION_R8,
+        T4_Y_RESOLUTION_STANDARD,
+        T4_WIDTH_R8_A4,
+        1100,
+        COMPRESSION_CCITT_T4,
+        7
+    },
+    {
+        "etsi_300_242_a4_impress_white.tif",
+        T4_X_RESOLUTION_R8,
+        T4_Y_RESOLUTION_STANDARD,
+        T4_WIDTH_R8_A4,
+        1100,
+        COMPRESSION_CCITT_T4,
+        5
+    },
+    {   /* Second page of the above file */
+        "",
         T4_X_RESOLUTION_R8,
         T4_Y_RESOLUTION_STANDARD,
         T4_WIDTH_R8_A4,
@@ -512,11 +548,16 @@
     int i;
     int image_length;
 
+    tiff_file = NULL;
     for (i = 0;  sequence[i].name;  i++)
     {
-        if ((tiff_file = TIFFOpen(sequence[i].name, "w")) == NULL)
-            exit(2);
-
+        if (sequence[i].name[0])
+        {
+            if (tiff_file)
+                TIFFClose(tiff_file);
+            if ((tiff_file = TIFFOpen(sequence[i].name, "w")) == NULL)
+                exit(2);
+        }
         /* Prepare the directory entry fully before writing the image, or libtiff complains */
         TIFFSetField(tiff_file, TIFFTAG_COMPRESSION, sequence[i].compression);
         if (sequence[i].compression == COMPRESSION_CCITT_T4)
@@ -565,37 +606,37 @@
         switch (sequence[i].type)
         {
         case 0:
-            /* A white A4 page */
-            image_length = create_white_page(tiff_file);
-            break;
-        case 1:
-            /* A stairstep of 64 pixel dashes */
-            image_length = create_stairstep_page(tiff_file);
-            break;
-        case 2:
             /* The DIAGO1 page */
             image_length = create_diago1_page(tiff_file);
             break;
-        case 3:
+        case 1:
             /* The DIAGO2 page */
             image_length = create_diago2_page(tiff_file);
             break;
-        case 4:
-            /* The IMPRESS page */
-            image_length = create_impress_page(tiff_file);
-            break;
-        case 5:
+        case 2:
             /* The DURATION1 page */
             image_length = create_duration1_page(tiff_file);
             break;
-        case 6:
+        case 3:
             /* The DURATION2 page */
             image_length = create_duration2_page(tiff_file);
             break;
-        case 7:
+        case 4:
             /* The ERROR page */
             image_length = create_error_page(tiff_file);
             break;
+        case 5:
+            /* The IMPRESS page */
+            image_length = create_impress_page(tiff_file);
+            break;
+        case 6:
+            /* A stairstep of 64 pixel dashes */
+            image_length = create_stairstep_page(tiff_file);
+            break;
+        case 7:
+            /* A white A4 page */
+            image_length = create_white_page(tiff_file);
+            break;
         }
         /* ....then the directory entry, and libtiff is happy. */
         TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, image_length);
@@ -603,8 +644,9 @@
         TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
 
         TIFFWriteDirectory(tiff_file);
-        TIFFClose(tiff_file);
     }
+    if (tiff_file)
+        TIFFClose(tiff_file);
     return 0;
 }
 /*- End of function --------------------------------------------------------*/

Modified: freeswitch/trunk/libs/spandsp/tests/tone_generate_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/tone_generate_tests.c	(original)
+++ freeswitch/trunk/libs/spandsp/tests/tone_generate_tests.c	Tue Sep 30 23:52:36 2008
@@ -22,7 +22,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: tone_generate_tests.c,v 1.19 2008/08/16 15:24:16 steveu Exp $
+ * $Id: tone_generate_tests.c,v 1.20 2008/09/11 15:13:42 steveu Exp $
  */
 
 /*! \page tone_generate_tests_page Tone generation tests
@@ -60,7 +60,8 @@
         fprintf(stderr, "    Cannot open wave file '%s'\n", OUTPUT_FILE_NAME);
         exit(2);
     }
-    
+
+    /* Try a tone pair */
     make_tone_gen_descriptor(&tone_desc,
                              440,
                              -10,
@@ -85,11 +86,37 @@
                                   len);
     }
     
+    /* Try a different tone pair */
     make_tone_gen_descriptor(&tone_desc,
                              350,
                              -10,
                              440,
                              -15,
+                             400,
+                             300,
+                             200,
+                             100,
+                             TRUE);
+    tone_gen_init(&tone_state, &tone_desc);
+
+    for (i = 0;  i < 1000;  i++)
+    {
+        len = tone_gen(&tone_state, amp, 160);
+        printf("Generated %d samples\n", len);
+        if (len <= 0)
+            break;
+        outframes = afWriteFrames(outhandle,
+                                  AF_DEFAULT_TRACK,
+                                  amp,
+                                  len);
+    }
+
+    /* Try a different tone pair */
+    make_tone_gen_descriptor(&tone_desc,
+                             400,
+                             -10,
+                             450,
+                             -10,
                              100,
                              200,
                              300,
@@ -108,12 +135,88 @@
                                   amp,
                                   len);
     }
-    
+
+    /* Try a single tone */
     make_tone_gen_descriptor(&tone_desc,
                              400,
                              -10,
-                             450,
+                             0,
+                             0,
+                             100,
+                             200,
+                             300,
+                             400,
+                             TRUE);
+    tone_gen_init(&tone_state, &tone_desc);
+
+    for (i = 0;  i < 1000;  i++)
+    {
+        len = tone_gen(&tone_state, amp, 160);
+        printf("Generated %d samples\n", len);
+        if (len <= 0)
+            break;
+        outframes = afWriteFrames(outhandle,
+                                  AF_DEFAULT_TRACK,
+                                  amp,
+                                  len);
+    }
+
+    /* Try a single non-repeating tone */
+    make_tone_gen_descriptor(&tone_desc,
+                             820,
+                             -10,
+                             0,
+                             0,
+                             2000,
+                             0,
+                             0,
+                             0,
+                             FALSE);
+    tone_gen_init(&tone_state, &tone_desc);
+
+    for (i = 0;  i < 1000;  i++)
+    {
+        len = tone_gen(&tone_state, amp, 160);
+        printf("Generated %d samples\n", len);
+        if (len <= 0)
+            break;
+        outframes = afWriteFrames(outhandle,
+                                  AF_DEFAULT_TRACK,
+                                  amp,
+                                  len);
+    }
+
+    /* Try a single non-repeating tone at 0dBm0 */
+    make_tone_gen_descriptor(&tone_desc,
+                             820,
+                             0,
+                             0,
+                             0,
+                             2000,
+                             0,
+                             0,
+                             0,
+                             FALSE);
+    tone_gen_init(&tone_state, &tone_desc);
+
+    for (i = 0;  i < 1000;  i++)
+    {
+        len = tone_gen(&tone_state, amp, 160);
+        printf("Generated %d samples\n", len);
+        if (len <= 0)
+            break;
+        outframes = afWriteFrames(outhandle,
+                                  AF_DEFAULT_TRACK,
+                                  amp,
+                                  len);
+    }
+
+    /* Try an AM modulated tone at a modest modulation level (25%) */
+    make_tone_gen_descriptor(&tone_desc,
+                             425,
                              -10,
+                             -50,
+                             25,
                              100,
                              200,
                              300,
@@ -133,6 +236,7 @@
                                   len);
     }
     
+    /* Try an AM modulated tone at maximum modulation level (100%) */
     make_tone_gen_descriptor(&tone_desc,
                              425,
                              -10,

Modified: freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c	(original)
+++ freeswitch/trunk/libs/spandsp/tests/tsb85_tests.c	Tue Sep 30 23:52:36 2008
@@ -22,7 +22,7 @@
  * License along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: tsb85_tests.c,v 1.22 2008/09/09 15:30:43 steveu Exp $
+ * $Id: tsb85_tests.c,v 1.23 2008/09/10 16:55:15 steveu Exp $
  */
 
 /*! \file */
@@ -86,6 +86,8 @@
 
 t30_exchanged_info_t expected_rx_info;
 
+char next_tx_file[1000];
+
 static int next_step(faxtester_state_t *s);
 
 static int phase_b_handler(t30_state_t *s, void *user_data, int result)
@@ -317,6 +319,12 @@
     
     i = (intptr_t) user_data;
     fprintf(stderr, "%d: Document handler on channel %d - event %d\n", i, i, event);
+    if (next_tx_file[0])
+    {
+        t30_set_tx_file(s, next_tx_file, -1, -1);
+        next_tx_file[0] = '\0';
+        return TRUE;
+    }
     return FALSE;
 }
 /*- End of function --------------------------------------------------------*/
@@ -329,7 +337,9 @@
 {
     if (msg == NULL)
     {
-        next_step(s);
+        while (next_step(s) == 0)
+            ;
+        /*endwhile*/
     }
     else
     {
@@ -352,14 +362,20 @@
             }
         }
         if (msg[1] == awaited[1])
-            next_step(s);
+        {
+            while (next_step(s) == 0)
+                ;
+            /*endwhile*/
+        }
     }
 }
 /*- End of function --------------------------------------------------------*/
 
 static void faxtester_front_end_step_complete_handler(faxtester_state_t *s, void *user_data)
 {
-    next_step(s);
+    while (next_step(s) == 0)
+        ;
+    /*endwhile*/
 }
 /*- End of function --------------------------------------------------------*/
 
@@ -611,7 +627,9 @@
     xmlChar *crc_error;
     xmlChar *pattern;
     xmlChar *timeout;
-    xmlChar *min_time;
+    xmlChar *min_bits;
+    xmlChar *frame_size;
+    xmlChar *compression;
     uint8_t buf[1000];
     uint8_t mask[1000];
     int i;
@@ -619,8 +637,8 @@
     int hdlc;
     int short_train;
     int min_row_bits;
-    int compression;
-    int compression_step;
+    int ecm_frame_size;
+    int compression_type;
     int timer;
     int len;
     t4_state_t t4_state;
@@ -658,7 +676,9 @@
     crc_error = xmlGetProp(s->cur, (const xmlChar *) "crc_error");
     pattern = xmlGetProp(s->cur, (const xmlChar *) "pattern");
     timeout = xmlGetProp(s->cur, (const xmlChar *) "timeout");
-    min_time = xmlGetProp(s->cur, (const xmlChar *) "min_time");
+    min_bits = xmlGetProp(s->cur, (const xmlChar *) "min_bits");
+    frame_size = xmlGetProp(s->cur, (const xmlChar *) "frame_size");
+    compression = xmlGetProp(s->cur, (const xmlChar *) "compression");
 
     s->cur = s->cur->next;
 
@@ -857,15 +877,21 @@
                     t30_set_rx_file(t30, output_tiff_file_name, -1);
             }
             else if (strcasecmp((const char *) tag, "TXFILE") == 0)
-                t30_set_tx_file(t30, (const char *) value, -1, -1);
+            {
+                strcpy(next_tx_file, (const char *) value);
+printf("Push '%s'\n", next_tx_file);
+            }
             return 0;
         }
         else if (strcasecmp((const char *) type, "CALL") == 0)
         {
             fax_init(&fax, FALSE);
             fax_prepare();
+            next_tx_file[0] = '\0';
             t30 = fax_get_t30_state(&fax);
             t30_set_rx_file(t30, output_tiff_file_name, -1);
+            /* Avoid libtiff 3.8.2 and earlier bug on complex 2D lines. */
+            t30_set_rx_encoding(t30, T4_COMPRESSION_ITU_T4_1D);
             if (value)
                 t30_set_tx_file(t30, (const char *) value, -1, -1);
             return 0;
@@ -874,7 +900,10 @@
         {
             fax_init(&fax, TRUE);
             fax_prepare();
+            next_tx_file[0] = '\0';
             t30 = fax_get_t30_state(&fax);
+            /* Avoid libtiff 3.8.2 and earlier bug on complex 2D lines. */
+            t30_set_rx_encoding(t30, T4_COMPRESSION_ITU_T4_1D);
             if (value)
                 t30_set_tx_file(t30, (const char *) value, -1, -1);
             return 0;
@@ -937,8 +966,10 @@
         else if (strcasecmp((const char *) type, "MSG") == 0)
         {
             /* A non-ECM page */
-            min_row_bits = 0;
-            compression_step = 0;
+            if (min_bits)
+                min_row_bits = atoi((const char *) min_bits);
+            else
+                min_row_bits = 0;
             if (t4_tx_init(&t4_state, (const char *) value, -1, -1) == NULL)
             {
                 span_log(&s->logging, SPAN_LOG_FLOW, "Failed to init T.4 send\n");
@@ -946,19 +977,15 @@
             }
             t4_tx_set_min_row_bits(&t4_state, min_row_bits);
             t4_tx_set_header_info(&t4_state, NULL);
-            switch (compression_step)
+            compression_type = T4_COMPRESSION_ITU_T4_1D;
+            if (compression)
             {
-            case 0:
-                compression = T4_COMPRESSION_ITU_T4_1D;
-                break;
-            case 1:
-                compression = T4_COMPRESSION_ITU_T4_2D;
-                break;
-            case 2:
-                compression = T4_COMPRESSION_ITU_T6;
-                break;
+                if (strcasecmp((const char *) compression, "T.4 2D") == 0)
+                    compression_type = T4_COMPRESSION_ITU_T4_2D;
+                else if (strcasecmp((const char *) compression, "T.6") == 0)
+                    compression_type = T4_COMPRESSION_ITU_T6;
             }
-            t4_tx_set_tx_encoding(&t4_state, compression);
+            t4_tx_set_tx_encoding(&t4_state, compression_type);
             if (t4_tx_start_page(&t4_state))
             {
                 span_log(&s->logging, SPAN_LOG_FLOW, "Failed to start T.4 send\n");
@@ -971,31 +998,42 @@
                 corrupt_image(s, image, len, (const char *) bad_rows);
             }
             t4_tx_end(&t4_state);
+            span_log(&s->logging, SPAN_LOG_FLOW, "Non-ECM image is %d bytes\n", len);
             faxtester_set_non_ecm_image_buffer(s, image, len);
         }
         else if (strcasecmp((const char *) type, "PP") == 0)
         {
-            compression_step = 0;
+            if (min_bits)
+                min_row_bits = atoi((const char *) min_bits);
+            else
+                min_row_bits = 0;
+            /*endif*/
+            if (frame_size)
+                ecm_frame_size = atoi((const char *) frame_size);
+            else
+                ecm_frame_size = 64;
+            /*endif*/
+            if (crc_error)
+                i = atoi((const char *) crc_error);
+            else
+                i = -1;
+            /*endif*/
             if (t4_tx_init(&t4_state, (const char *) value, -1, -1) == NULL)
             {
                 span_log(&s->logging, SPAN_LOG_FLOW, "Failed to init T.4 send\n");
                 exit(2);
             }
-            t4_tx_set_min_row_bits(&t4_state, 0);
+            t4_tx_set_min_row_bits(&t4_state, min_row_bits);
             t4_tx_set_header_info(&t4_state, NULL);
-            switch (compression_step)
+            compression_type = T4_COMPRESSION_ITU_T4_1D;
+            if (compression)
             {
-            case 0:
-                compression = T4_COMPRESSION_ITU_T4_1D;
-                break;
-            case 1:
-                compression = T4_COMPRESSION_ITU_T4_2D;
-                break;
-            case 2:
-                compression = T4_COMPRESSION_ITU_T6;
-                break;
+                if (strcasecmp((const char *) compression, "T.4 2D") == 0)
+                    compression_type = T4_COMPRESSION_ITU_T4_2D;
+                else if (strcasecmp((const char *) compression, "T.6") == 0)
+                    compression_type = T4_COMPRESSION_ITU_T6;
             }
-            t4_tx_set_tx_encoding(&t4_state, compression);
+            t4_tx_set_tx_encoding(&t4_state, compression_type);
             if (t4_tx_start_page(&t4_state))
             {
                 span_log(&s->logging, SPAN_LOG_FLOW, "Failed to start T.4 send\n");
@@ -1010,12 +1048,8 @@
             }
             /*endif*/
             t4_tx_end(&t4_state);
-            if (crc_error)
-                i = atoi((const char *) crc_error);
-            else
-                i = -1;
-            /*endif*/
-            faxtester_set_ecm_image_buffer(s, image, len, 64, i);
+            span_log(&s->logging, SPAN_LOG_FLOW, "ECM image is %d bytes\n", len);
+            faxtester_set_ecm_image_buffer(s, image, len, ecm_frame_size, i);
         }
         else
         {
@@ -1061,6 +1095,7 @@
 
     fax_init(&fax, FALSE);
     fax_prepare();
+    next_tx_file[0] = '\0';
 
     while (next_step(s) == 0)
         ;
@@ -1147,39 +1182,36 @@
     xmlDocPtr doc;
     xmlNsPtr ns;
     xmlNodePtr cur;
-#if 1
     xmlValidCtxt valid;
-#endif
 
     ns = NULL;    
     xmlKeepBlanksDefault(0);
     xmlCleanupParser();
     if ((doc = xmlParseFile(test_file)) == NULL)
     {
-        span_log(&s->logging, SPAN_LOG_FLOW, "No document\n");
+        fprintf(stderr, "No document\n");
         exit(2);
     }
     /*endif*/
     xmlXIncludeProcess(doc);
-#if 1
     if (!xmlValidateDocument(&valid, doc))
     {
-        span_log(&s->logging, SPAN_LOG_FLOW, "Invalid document\n");
+        fprintf(stderr, "Invalid document\n");
         exit(2);
     }
     /*endif*/
-#endif
+
     /* Check the document is of the right kind */
     if ((cur = xmlDocGetRootElement(doc)) == NULL)
     {
-        span_log(&s->logging, SPAN_LOG_FLOW, "Empty document\n");
+        fprintf(stderr, "Empty document\n");
         xmlFreeDoc(doc);
         exit(2);
     }
     /*endif*/
     if (xmlStrcmp(cur->name, (const xmlChar *) "fax-tests"))
     {
-        span_log(&s->logging, SPAN_LOG_FLOW, "Document of the wrong type, root node != fax-tests");
+        fprintf(stderr, "Document of the wrong type, root node != fax-tests");
         xmlFreeDoc(doc);
         exit(2);
     }

Modified: freeswitch/trunk/libs/spandsp/tests/tsb85_tests.sh
==============================================================================
--- freeswitch/trunk/libs/spandsp/tests/tsb85_tests.sh	(original)
+++ freeswitch/trunk/libs/spandsp/tests/tsb85_tests.sh	Tue Sep 30 23:52:36 2008
@@ -15,7 +15,7 @@
 # License along with this program; if not, write to the Free Software
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 #
-# $Id: tsb85_tests.sh,v 1.4 2008/09/09 15:30:43 steveu Exp $
+# $Id: tsb85_tests.sh,v 1.6 2008/09/11 15:13:42 steveu Exp $
 #
 
 run_tsb85_test()
@@ -35,6 +35,12 @@
     run_tsb85_test
 done
 
+#MRGN14 fails because ???
+#MRGN16 fails because we don't adequately distinguish between receiving a
+#bad image signal and receiving none at all.
+#MRGN17 fails because we don't adequately distinguish between receiving a
+#bad HDLC message and receiving none at all.
+
 #for TEST in MRGN09 MRGN10 MRGN11 MRGN12 MRGN13 MRGN14 MRGN15 MRGN16 MRGN17 ; do
 for TEST in MRGN09 MRGN10 MRGN11 MRGN12 MRGN13 MRGN15 ; do
     run_tsb85_test
@@ -48,50 +54,62 @@
     run_tsb85_test
 done
 
+# MRGX05 is failing because we don't distinguish MPS immediately after MCF from MPS after
+# a corrupt image signal.
+
 #for TEST in MRGX01 MRGX02 MRGX03 MRGX04 MRGX05 MRGX06 MRGX07 MRGX08 ; do
-for TEST in MRGX02 MRGX04 MRGX06 MRGX07 MRGX08 ; do
+for TEST in MRGX01 MRGX02 MRGX03 MRGX04 MRGX06 MRGX07 MRGX08 ; do
     run_tsb85_test
 done
 
-#for TEST in MRGX09 MRGX10 MRGX11 MRGX12 MRGX13 MRGX14 MRGX15 ; do
-for TEST in MRGX09 MRGX11 ; do
+for TEST in MRGX09 MRGX10 MRGX11 MRGX12 MRGX13 MRGX14 MRGX15 ; do
     run_tsb85_test
 done
 
-#for TEST in MTGP01 MTGP02 OTGP03 ; do
-#    run_tsb85_test
-#done
+for TEST in MTGP01 MTGP02 OTGP03 ; do
+    run_tsb85_test
+done
 
-#for TEST in MTGN01 MTGN02 MTGN03 MTGN04 MTGN05 MTGN06 MTGN07 MTGN08 MTGN09 MTGN10 ; do
-#    run_tsb85_test
-#done
+for TEST in MTGN01 MTGN02 MTGN03 MTGN04 MTGN05 MTGN06 MTGN07 MTGN08 MTGN09 MTGN10 ; do
+    run_tsb85_test
+done
 
-#for TEST in MTGN11 MTGN12 MTGN13 MTGN14 MTGN15 MTGN16 MTGN17 MTGN18 MTGN19 MTGN20 ; do
-#    run_tsb85_test
-#done
+for TEST in MTGN11 MTGN12 MTGN13 MTGN14 MTGN15 MTGN16 MTGN17 MTGN18 MTGN19 MTGN20 ; do
+    run_tsb85_test
+done
 
-#for TEST in MTGN21 MTGN22 MTGN23 MTGN24 MTGN25 MTGN26 MTGN27 MTGN28 ; do
-#    run_tsb85_test
-#done
+for TEST in MTGN21 MTGN22 MTGN23 MTGN24 MTGN25 MTGN26 MTGN27 MTGN28 ; do
+    run_tsb85_test
+done
 
-#for TEST in OTGC01 OTGC02 OTGC03 OTGC04 OTGC05 OTGC06 OTGC07 OTGC08 OTGC09 OTGC10 OTGC11 ; do
-#    run_tsb85_test
-#done
+for TEST in OTGC01 OTGC02 OTGC03 OTGC04 OTGC05 OTGC06 OTGC07 OTGC08 ; do
+    run_tsb85_test
+done
 
-#for TEST in OTEN01 OTEN02 OTEN03 OTEN04 OTEN05 OTEN06 ; do
-#    run_tsb85_test
-#done
+for TEST in OTGC09-01 OTGC09-02 OTGC09-03 OTGC09-04 OTGC09-05 OTGC09-06 OTGC09-07 OTGC09-08 OTGC09-09 OTGC09-10 OTGC09-11 OTGC09-12 ; do
+    run_tsb85_test
+done
+
+for TEST in OTGC10 OTGC11 ; do
+    run_tsb85_test
+done
+
+for TEST in OTEN01 OTEN02 OTEN03 OTEN04 OTEN05 OTEN06 ; do
+    run_tsb85_test
+done
+
+#MTGX02 fails because ?????
 
 #for TEST in MTGX01 MTGX02 MTGX03 MTGX04 MTGX05 MTGX06 MTGX07 MTGX08 ; do
-#    run_tsb85_test
-#done
+for TEST in MTGX01 MTGX03 MTGX04 MTGX05 MTGX06 MTGX07 MTGX08 ; do
+    run_tsb85_test
+done
 
-#for TEST in MTGX09 MTGX10 MTGX11 MTGX12 MTGX13 MTGX14 MTGX15 MTGX16 ; do
-#    run_tsb85_test
-#done
+for TEST in MTGX09 MTGX10 MTGX11 MTGX12 MTGX13 MTGX14 MTGX15 MTGX16 ; do
+    run_tsb85_test
+done
 
-#for TEST in MTGX17 MTGX18 MTGX19 MTGX20 MTGX21 MTGX22 MTGX23 ; do
-for TEST in MTGX18 MTGX19 MTGX20 MTGX21 MTGX22 MTGX23 ; do
+for TEST in MTGX17 MTGX18 MTGX19 MTGX20 MTGX21 MTGX22 MTGX23 ; do
     run_tsb85_test
 done
 



More information about the Freeswitch-svn mailing list