}
/*- End of function --------------------------------------------------------*/
-static int v17_v21_rx(void *user_data, const int16_t amp[], int len)
-{
- fax_modems_state_t *s;
-
- s = (fax_modems_state_t *) user_data;
- v17_rx(&s->fast_modems.v17_rx, amp, len);
- fsk_rx(&s->v21_rx, amp, len);
- if (s->rx_trained)
- {
- /* The fast modem has trained, so we no longer need to run the slow
- one in parallel. */
- span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.17 + V.21 to V.17 (%.2fdBm0)\n", v17_rx_signal_power(&s->fast_modems.v17_rx));
- fax_modems_set_rx_handler(s, (span_rx_handler_t) &v17_rx, &s->fast_modems.v17_rx, NULL, NULL);
- }
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-
-static int v27ter_v21_rx(void *user_data, const int16_t amp[], int len)
-{
- fax_modems_state_t *s;
-
- s = (fax_modems_state_t *) user_data;
- v27ter_rx(&s->fast_modems.v27ter_rx, amp, len);
- fsk_rx(&s->v21_rx, amp, len);
- if (s->rx_trained)
- {
- /* The fast modem has trained, so we no longer need to run the slow
- one in parallel. */
- span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.27ter + V.21 to V.27ter (%.2fdBm0)\n", v27ter_rx_signal_power(&s->fast_modems.v27ter_rx));
- fax_modems_set_rx_handler(s, (span_rx_handler_t) &v27ter_rx, &s->fast_modems.v27ter_rx, NULL, NULL);
- }
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-
-static int v29_v21_rx(void *user_data, const int16_t amp[], int len)
-{
- fax_modems_state_t *s;
-
- s = (fax_modems_state_t *) user_data;
- v29_rx(&s->fast_modems.v29_rx, amp, len);
- fsk_rx(&s->v21_rx, amp, len);
- if (s->rx_trained)
- {
- /* The fast modem has trained, so we no longer need to run the slow
- one in parallel. */
- span_log(&s->logging, SPAN_LOG_FLOW, "Switching from V.29 + V.21 to V.29 (%.2fdBm0)\n", v29_rx_signal_power(&s->fast_modems.v29_rx));
- fax_modems_set_rx_handler(s, (span_rx_handler_t) &v29_rx, &s->fast_modems.v29_rx, NULL, NULL);
- }
- return 0;
-}
-/*- End of function --------------------------------------------------------*/
-
int faxtester_rx(faxtester_state_t *s, int16_t *amp, int len)
{
int i;
for (i = 0; i < len; i++)
amp[i] = dc_restore(&s->modems.dc_restore, amp[i]);
- s->modems.rx_handler(s->modems.rx_user_data, amp, len);
+ if (s->modems.rx_handler)
+ s->modems.rx_handler(s->modems.rx_user_data, amp, len);
timer_update(s, len);
if (s->wait_for_silence)
{
{
faxtester_state_t *s;
fax_modems_state_t *t;
- int tone;
s = (faxtester_state_t *) user_data;
t = &s->modems;
switch (type)
{
case T30_MODEM_CED:
+ fax_modems_start_slow_modem(t, FAX_MODEM_CED_TONE_RX);
+ s->tone_state = MODEM_CONNECT_TONES_NONE;
+ break;
case T30_MODEM_CNG:
- tone = (type == T30_MODEM_CED) ? MODEM_CONNECT_TONES_FAX_CED : MODEM_CONNECT_TONES_FAX_CNG;
- modem_connect_tones_rx_init(&t->connect_rx,
- tone,
- tone_detected,
- (void *) s);
- fax_modems_set_rx_handler(t, (span_rx_handler_t) &modem_connect_tones_rx, &t->connect_rx, NULL, NULL);
+ fax_modems_start_slow_modem(t, FAX_MODEM_CNG_TONE_RX);
s->tone_state = MODEM_CONNECT_TONES_NONE;
break;
case T30_MODEM_V21:
if (s->flush_handler)
s->flush_handler(s, s->flush_user_data, 3);
fax_modems_start_slow_modem(t, FAX_MODEM_V21_RX);
- fax_modems_set_rx_handler(t, (span_rx_handler_t) &fsk_rx, &t->v21_rx, NULL, NULL);
break;
case T30_MODEM_V27TER:
fax_modems_start_fast_modem(t, FAX_MODEM_V27TER_RX, bit_rate, short_train, use_hdlc);
- fax_modems_set_rx_handler(t, (span_rx_handler_t) &v27ter_v21_rx, t, NULL, NULL);
break;
case T30_MODEM_V29:
fax_modems_start_fast_modem(t, FAX_MODEM_V29_RX, bit_rate, short_train, use_hdlc);
- fax_modems_set_rx_handler(t, (span_rx_handler_t) &v29_v21_rx, t, NULL, NULL);
break;
case T30_MODEM_V17:
fax_modems_start_fast_modem(t, FAX_MODEM_V17_RX, bit_rate, short_train, use_hdlc);
- fax_modems_set_rx_handler(t, (span_rx_handler_t) &v17_v21_rx, t, NULL, NULL);
break;
case T30_MODEM_DONE:
span_log(&s->logging, SPAN_LOG_FLOW, "FAX exchange complete\n");
default:
- fax_modems_set_rx_handler(t, (span_rx_handler_t) &span_dummy_rx, s, NULL, NULL);
+ fax_modems_set_rx_handler(t, (span_rx_handler_t) &span_dummy_rx, s, NULL, s);
break;
}
}
break;
case T30_MODEM_CED:
case T30_MODEM_CNG:
- if (type == T30_MODEM_CED)
- tone = MODEM_CONNECT_TONES_FAX_CED;
- else
- tone = MODEM_CONNECT_TONES_FAX_CNG;
- modem_connect_tones_tx_init(&t->connect_tx, tone);
- fax_modems_set_tx_handler(t, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
+ tone = (type == T30_MODEM_CED) ? MODEM_CONNECT_TONES_FAX_CED : MODEM_CONNECT_TONES_FAX_CNG;
+ fax_modems_start_slow_modem(t, tone);
s->transmit = TRUE;
break;
case T30_MODEM_V21:
fax_modems_start_slow_modem(t, FAX_MODEM_V21_TX);
fsk_tx_set_modem_status_handler(&t->v21_tx, modem_tx_status, (void *) s);
- fax_modems_set_tx_handler(t, (span_tx_handler_t) &fsk_tx, &t->v21_tx);
s->transmit = TRUE;
break;
case T30_MODEM_V27TER:
fax_modems_set_get_bit(t, get_bit_func, get_bit_user_data);
fax_modems_start_fast_modem(t, FAX_MODEM_V27TER_TX, bit_rate, short_train, use_hdlc);
v27ter_tx_set_modem_status_handler(&t->fast_modems.v27ter_tx, modem_tx_status, (void *) s);
- fax_modems_set_tx_handler(t, (span_tx_handler_t) &v27ter_tx, &t->fast_modems.v27ter_tx);
/* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
s->transmit = TRUE;
fax_modems_set_get_bit(t, get_bit_func, get_bit_user_data);
fax_modems_start_fast_modem(t, FAX_MODEM_V29_TX, bit_rate, short_train, use_hdlc);
v29_tx_set_modem_status_handler(&t->fast_modems.v29_tx, modem_tx_status, (void *) s);
- fax_modems_set_tx_handler(t, (span_tx_handler_t) &v29_tx, &t->fast_modems.v29_tx);
/* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
s->transmit = TRUE;
fax_modems_set_get_bit(t, get_bit_func, get_bit_user_data);
fax_modems_start_fast_modem(t, FAX_MODEM_V17_TX, bit_rate, short_train, use_hdlc);
v17_tx_set_modem_status_handler(&t->fast_modems.v17_tx, modem_tx_status, (void *) s);
- fax_modems_set_tx_handler(t, (span_tx_handler_t) &v17_tx, &t->fast_modems.v17_tx);
/* For any fast modem, set 200ms of preamble flags */
hdlc_tx_flags(&t->hdlc_tx, bit_rate/(8*5));
s->transmit = TRUE;
Preamble: The TUT should be configured to automatically re-assume the initial automoding
state.
Method: The tester should set up a call to the TUT in V.21 mode and then drop the carrier.
- The tester will then transmit silence for 11 seconds followed by a 1300 Hz tone for
+ The tester will then transmit silence for 11 seconds followed by a 1300Hz tone for
5 seconds (i.e. V.23).
Pass criteria: 1) Ten seconds after dropping the carrier the TUT should return to state Monitor 1.
- 2) After 2.7±0.3 seconds the TUT should select V.23 mode and send a 390 Hz tone.
- Comments: The TUT should indicate that carrier has been lost at some time after the 1650 Hz
+ 2) After 2.7±0.3 seconds the TUT should select V.23 mode and send a 390Hz tone.
+ Comments: The TUT should indicate that carrier has been lost at some time after the 1650Hz
signal is lost.
*/
printf("Test not yet implemented\n");
{
/*
III.5.4.2.2 ANS signal detection
- Purpose: To verify that TUT correctly detects the ANS (2100 Hz) signal during the
+ Purpose: To verify that TUT correctly detects the ANS (2100Hz) signal during the
two-second interval (Toff) between transmission of CI sequences.
Preamble: Make a V.18 call from the TUT.
Method: The Test System waits for the TUT to stop transmitting a CI and responds with an
Purpose: To check correct detection of V.18 modem.
Preamble: Tests ORG-02 and ORG-03 should be successfully completed prior to this test.
Method: Tester transmits ANS for 2.5 seconds followed by 75 ms of no tone then transmits
- 3 TXP sequences using V.21 (2) and starts a 1 s timer. It will then transmit 1650 Hz
+ 3 TXP sequences using V.21 (2) and starts a 1 s timer. It will then transmit 1650Hz
for 5 seconds.
Pass criteria: 1) TUT should initially respond with TXP.
2) TUT should stop sending TXP within 0.2 seconds of end of ANS.
- 3) TUT should respond with 980 Hz carrier within 1 second of end of 3 TXP sequences.
+ 3) TUT should respond with 980Hz carrier within 1 second of end of 3 TXP sequences.
4) Data should be transmitted and received according to ITU-T T.140 to comply
with the V.18 operational requirements.
Comments: The TUT should indicate that V.18 mode has been selected.
static int test_org_05(void)
{
/*
- III.5.4.2.5 ANS tone followed by 1650 Hz
+ III.5.4.2.5 ANS tone followed by 1650Hz
Purpose: To check correct detection of V.21 modem upper channel when preceded by answer
tone and to confirm discrimination between V.21 and V.18 modes.
Preamble: Tests ORG-02 and ORG-03 should be successfully completed prior to this test.
Method: Tester transmits ANS for 2.5 seconds followed by 75 ms of no tone then transmits
- 1650 Hz and starts a 0.7 second timer.
+ 1650Hz and starts a 0.7 second timer.
Pass criteria: 1) TUT should initially respond with TXP.
2) TUT should stop sending TXP within 0.2 seconds of end of ANS.
- 3) TUT should respond with 980 Hz at 0.5(+0.2-0.0) seconds of start of 1650 Hz.
+ 3) TUT should respond with 980Hz at 0.5(+0.2-0.0) seconds of start of 1650Hz.
4) Data should be transmitted and received at 300 bit/s complying with Annex F.
Comments: Selection of ITU-T V.21 as opposed to ITU-T V.18 should be confirmed by
examination of TUT. If there is no visual indication, verify by use of ITU-T T.50 for
static int test_org_06(void)
{
/*
- III.5.4.2.6 ANS tone followed by 1300 Hz
+ III.5.4.2.6 ANS tone followed by 1300Hz
Purpose: To check correct detection of V.23 modem upper channel when preceded by answer
tone.
Preamble: Tests ORG-02 and ORG-03 should be successfully completed prior to this test.
Method: Tester transmits ANS for 2.5 seconds followed by 75 ms of no tone then transmits
- 1300 Hz and starts a 2.7 s timer.
+ 1300Hz and starts a 2.7 s timer.
Pass criteria: 1) TUT should initially respond with TXP.
2) TUT should stop sending TXP within 0.2 seconds of end of ANS.
- 3) TUT should respond with 390 Hz after 1.7(+0.2-0.0) seconds of start of 1300 Hz.
+ 3) TUT should respond with 390Hz after 1.7(+0.2-0.0) seconds of start of 1300Hz.
4) Data should be transmitted and received at 75 bit/s and 1200 bit/s respectively
by the TUT to comply with Annex E.
Comments: The TUT should indicate that V.23 mode has been selected.
static int test_org_08(void)
{
/*
- III.5.4.2.8 Bell 103 (2225 Hz signal) detection
+ III.5.4.2.8 Bell 103 (2225Hz signal) detection
Purpose: To verify that the TUT correctly detects the Bell 103 upper channel signal during
the 2-second interval between transmission of CI sequences.
Preamble: N/A
- Method: The tester waits for a CI and then sends a 2225 Hz signal for 5 seconds.
- Pass criteria: 1) The TUT should respond with a 1270 Hz tone in 0.5±0.1 seconds.
+ Method: The tester waits for a CI and then sends a 2225Hz signal for 5 seconds.
+ Pass criteria: 1) The TUT should respond with a 1270Hz tone in 0.5±0.1 seconds.
2) Data should be transmitted and received at 300 bit/s to comply with Annex D.
Comments: The TUT should indicate that Bell 103 mode has been selected.
*/
static int test_org_09(void)
{
/*
- III.5.4.2.9 V.21 (1650 Hz signal) detection
+ III.5.4.2.9 V.21 (1650Hz signal) detection
Purpose: To verify that the TUT correctly detects the V.21 upper channel signal during the
2-second interval between transmission of CI sequences.
Preamble: N/A
- Method: The tester waits for a CI and then sends a 1650 Hz signal for 5 seconds.
- Pass criteria: 1) The TUT should respond with a 980 Hz tone in 0.5±0.1 seconds.
+ Method: The tester waits for a CI and then sends a 1650Hz signal for 5 seconds.
+ Pass criteria: 1) The TUT should respond with a 980Hz tone in 0.5±0.1 seconds.
2) Data should be transmitted and received at 300 bit/s to comply with Annex F.
- Comments:
+ Comments: The TUT should indicate that V.21 mode has been selected.
*/
printf("Test not yet implemented\n");
return 1;
static int test_org_10(void)
{
/*
- III.5.4.2.10 The TUT should indicate that V.21 mode has been selected.
- V.23 (1300 Hz signal) detection
+ III.5.4.2.10 V.23 (1300Hz signal) detection
Purpose: To verify that the TUT correctly detects the V.23 upper channel signal during the
2-second interval between transmission of CI sequences.
Preamble: N/A
- Method: The tester waits for a CI and then sends a 1300 Hz signal for 5 seconds.
- Pass criteria: 1) The TUT should respond with a 390 Hz tone in 1.7±0.1 seconds.
+ Method: The tester waits for a CI and then sends a 1300Hz signal for 5 seconds.
+ Pass criteria: 1) The TUT should respond with a 390Hz tone in 1.7±0.1 seconds.
2) Data should be transmitted and received at 75 bit/s and 1200 bit/s respectively
by the TUT to comply with Annex E.
- Comments:
+ Comments: The TUT should indicate that V.23 mode has been selected.
*/
printf("Test not yet implemented\n");
return 1;
static int test_org_11(void)
{
/*
- III.5.4.2.11 The TUT should indicate that V.23 mode has been selected.
- V.23 (390 Hz signal) detection
+ III.5.4.2.11 V.23 (390Hz signal) detection
Purpose: To confirm correct selection of V.23 reverse mode during sending of XCI.
Preamble: N/A
- Method: The tester should wait for the start of the XCI signal and then send 390 Hz to TUT
+ Method: The tester should wait for the start of the XCI signal and then send 390Hz to TUT
for 5 seconds.
Pass criteria: 1) The TUT should complete the XCI as normal.
- 2) The TUT should then maintain the 1300 Hz tone while the 390 Hz test tone is
+ 2) The TUT should then maintain the 1300Hz tone while the 390Hz test tone is
present.
3) Data should be transmitted and received at 1200 bit/s and 75 bit/s respectively
by the TUT to comply with Annex E when connection is indicated.
- Comments:
+ Comments: The TUT should indicate that V.23 mode has been selected at least 3 seconds after
+ the start of the 390Hz tone.
*/
printf("Test not yet implemented\n");
return 1;
static int test_org_12(void)
{
/*
- III.5.4.2.12 The TUT should indicate that V.23 mode has been selected at least 3 seconds after
- the start of the 390 Hz tone.
- 5 bit mode (Baudot) detection tests
+ III.5.4.2.12 5 bit mode (Baudot) detection tests
Purpose: To confirm detection of Baudot modulation at various bit rates that may be
encountered.
Preamble: N/A
Method: The tester transmits the 5-bit coded characters "0" to "9" followed by "abcdef" at
(a) 45.45, (b) 47.6, (c) 50 and (d) 100 bits per second. When TUT indicates a
- connection, type at least 5 characters back to the tester so that correct selection of bit
- rate can be confirmed.
+ connection, type at least 5 characters back to the tester so that correct selection
+ of bit rate can be confirmed.
Pass criteria: 1) TUT should select Baudot mode and the appropriate bit rate.
2) The tester will analyse the bit rate of received characters, which should be at
either 45.45 or 50 bits per second as appropriate.
{
/*
III.5.4.2.15 Rate detection test
- Purpose: To verify the presence of 980/1180 Hz at a different signalling rate than 110 bit/s
+ Purpose: To verify the presence of 980/1180Hz at a different signalling rate than 110 bit/s
returns the TUT modem to the "monitor A" state.
Preamble: N/A
- Method: The tester transmits 980/1180 Hz signals at 300 bit/s for 2 seconds.
+ Method: The tester transmits 980/1180Hz signals at 300 bit/s for 2 seconds.
Pass criteria: The TUT should not select EDT or any other mode and should continue to transmit
the CI signal.
Comments: Echoes of the CI sequences may be detected at 300 bit/s.
static int test_org_16(void)
{
/*
- III.5.4.2.16 980 Hz detection
+ III.5.4.2.16 980Hz detection
Purpose: To confirm correct selection of V.21 reverse mode.
Preamble: N/A
- Method: The tester sends 980 Hz to TUT for 5 seconds.
- Pass criteria: 1) TUT should respond with 1650 Hz tone after 1.5±0.1 seconds after start of
- 980 Hz tone.
+ Method: The tester sends 980Hz to TUT for 5 seconds.
+ Pass criteria: 1) TUT should respond with 1650Hz tone after 1.5±0.1 seconds after start of
+ 980Hz tone.
2) Data should be transmitted and received at 300 bit/s complying with Annex F.
- Comments:
+ Comments: The TUT should indicate that V.21 mode has been selected.
*/
printf("Test not yet implemented\n");
return 1;
static int test_org_17(void)
{
/*
- III.5.4.2.17 The TUT should indicate that V.21 mode has been selected.
- Loss of signal after 980 Hz
- Purpose: To confirm that TUT returns to the Monitor 1 state if 980 Hz signal disappears.
+ III.5.4.2.17 Loss of signal after 980Hz
+ Purpose: To confirm that TUT returns to the Monitor 1 state if 980Hz signal disappears.
Preamble: N/A
- Method: The tester sends 980 Hz to TUT for 1.2 seconds followed by silence for 5 seconds.
- Pass criteria: TUT should not respond to the 980 Hz tone and resume sending CI signals after a
- maximum of 2.4 seconds from the end of the 980 Hz tone.
+ Method: The tester sends 980Hz to TUT for 1.2 seconds followed by silence for 5 seconds.
+ Pass criteria: TUT should not respond to the 980Hz tone and resume sending CI signals after a
+ maximum of 2.4 seconds from the end of the 980Hz tone.
*/
printf("Test not yet implemented\n");
return 1;
III.5.4.2.18 Tr timer
Purpose: To confirm that TUT returns to the Monitor 1 state if Timer Tr expires.
Preamble: N/A
- Method: The tester sends 980 Hz to TUT for 1.2 seconds followed by 1650 Hz for 5 seconds
+ Method: The tester sends 980Hz to TUT for 1.2 seconds followed by 1650Hz for 5 seconds
with no pause.
- Pass criteria: TUT should respond with 980 Hz after 1.3±0.1 seconds of 1650 Hz.
- Comments: This implies timer Tr has expired 2 seconds after the start of the 980 Hz tone and
- then 1650 Hz has been detected for 0.5 seconds.
+ Pass criteria: TUT should respond with 980Hz after 1.3±0.1 seconds of 1650Hz.
+ Comments: This implies timer Tr has expired 2 seconds after the start of the 980Hz tone and
+ then 1650Hz has been detected for 0.5 seconds.
*/
printf("Test not yet implemented\n");
return 1;
static int test_org_19(void)
{
/*
- III.5.4.2.19 Bell 103 (1270 Hz signal) detection
+ III.5.4.2.19 Bell 103 (1270Hz signal) detection
Purpose: To confirm correct selection of Bell 103 reverse mode.
Preamble: N/A
- Method: The tester sends 1270 Hz to TUT for 5 seconds.
- Pass criteria: 1) TUT should respond with 2225 Hz tone after 0.7±0.1 s.
+ Method: The tester sends 1270Hz to TUT for 5 seconds.
+ Pass criteria: 1) TUT should respond with 2225Hz tone after 0.7±0.1 s.
2) Data should be transmitted and received at 300 bit/s complying with Annex D.
- Comments:
+ Comments: The TUT should indicate that Bell 103 mode has been selected.
*/
printf("Test not yet implemented\n");
return 1;
static int test_org_20(void)
{
/*
- III.5.4.2.20 The TUT should indicate that Bell 103 mode has been selected.
- Immunity to network tones
+ III.5.4.2.20 Immunity to network tones
Purpose: To ensure that the TUT does not interpret network tones as valid signals.
Preamble: N/A
Method: The tester will first send a dial tone to the TUT, this will be followed by a ringing
Purpose: To ensure that the TUT does not interpret modem tones not supported by V.18 as
valid text telephone tones.
Preamble: N/A
- Method: The tester will respond with an ANS tone (2100 Hz) followed by simulated (a)
+ Method: The tester will respond with an ANS tone (2100Hz) followed by simulated (a)
V.32 bis and (b) V.34 modem training sequences.
Pass criteria: The tones should either be ignored or reported back to the user. No textphone
modem should be selected.
Purpose: To ensure that the TUT will not interpret a called fax machine as being a textphone.
Preamble: N/A
Method: The tester will respond as if it were a typical group 3 fax machine in automatic
- answer mode. It should send a CED tone (2100 Hz) plus Digital Identification
+ answer mode. It should send a CED tone (2100Hz) plus Digital Identification
Signal (DIS) as defined in ITU-T T.30.
Pass criteria: The TUT should ignore the received tones.
Comments: Ideally the TUT should detect the presence of a fax machine and report it back to
{
/*
III.5.4.2.24 ANSam signal detection
- Purpose: To verify that TUT correctly detects the ANSam (2100 Hz modulated) signal during
+ Purpose: To verify that TUT correctly detects the ANSam (2100Hz modulated) signal during
the two-second interval (Toff) between transmission of CI sequences.
Preamble: Make a V.18 call from the TUT.
Method: The Test System waits for the TUT to stop transmitting a CI and responds with an
monitor for ANS and measure duration.
Pass criteria: 1) The TUT should respond after either the first or second CI with ANSam tone.
2) ANSam tone should remain for 3 seconds ±0.5 s followed by silence.
- Comments: The ANSam tone is a modulated 2100 Hz tone. It may have phase reversals. The
+ Comments: The ANSam tone is a modulated 2100Hz tone. It may have phase reversals. The
XCI signal is tested in a separate test.
*/
printf("Test not yet implemented\n");
transmitting the TXP signal in V.21 (1) mode.
Pass criteria: 1) On reception of the TXP signal, the TUT should remain silent for 75±5 ms.
2) The TUT should then transmit 3 TXP sequences in V.21(2) mode.
- 3) The 3 TXPs should be followed by continuous 1650 Hz.
+ 3) The 3 TXPs should be followed by continuous 1650Hz.
4) Correct transmission and reception of T.140 data should be verified after the
V.18 mode connection is completed.
Comments: The TUT should indicate V.18 mode.
static int test_ans_05(void)
{
/*
- III.5.4.3.5 ANS tone followed by 980 Hz
+ III.5.4.3.5 ANS tone followed by 980Hz
Purpose: To check correct detection of V.21 modem lower channel when preceded by answer
tone.
Preamble: N/A
Method: Tester transmits ANS for 2.5 seconds followed by 75 ms of no tone then transmits
- 980 Hz and starts a 1 s timer.
- Pass criteria: TUT should respond with 1650 Hz within 400±100 ms of start of 980 Hz.
+ 980Hz and starts a 1 s timer.
+ Pass criteria: TUT should respond with 1650Hz within 400±100 ms of start of 980Hz.
Comments: The TUT should indicate that V.21 mode has been selected.
*/
printf("Test not yet implemented\n");
static int test_ans_06(void)
{
/*
- III.5.4.3.6 ANS tone followed by 1300 Hz
+ III.5.4.3.6 ANS tone followed by 1300Hz
Purpose: To check correct detection of V.23 modem upper channel when preceded by answer
tone.
Preamble: N/A
Method: Tester transmits ANS for 2.5 seconds followed by 75 ms of no tone then transmits
- 1300 Hz and starts a 2-s timer.
- Pass criteria: TUT should respond with 390 Hz after 1.7(+0.2-0.0) seconds of start of 1300 Hz.
+ 1300Hz and starts a 2-s timer.
+ Pass criteria: TUT should respond with 390Hz after 1.7(+0.2-0.0) seconds of start of 1300Hz.
Comments: The TUT should indicate that V.23 mode has been selected.
*/
printf("Test not yet implemented\n");
static int test_ans_07(void)
{
/*
- III.5.4.3.7 ANS tone followed by 1650 Hz
+ III.5.4.3.7 ANS tone followed by 1650Hz
Purpose: To check correct detection of V.21 modem upper channel when preceded by answer
tone and to confirm discrimination between V.21 and V.18 modes.
Preamble: N/A
Method: Tester transmits ANS for 2.5 seconds followed by 75 ms of no tone then transmits
- 1650 Hz and starts a 1-second timer.
- Pass criteria: TUT should respond with 980 Hz within 400±100 ms of start of 1650 Hz.
+ 1650Hz and starts a 1-second timer.
+ Pass criteria: TUT should respond with 980Hz within 400±100 ms of start of 1650Hz.
Comments: The TUT should indicate that V.21 mode has been selected.
*/
printf("Test not yet implemented\n");
static int test_ans_08(void)
{
/*
- III.5.4.3.8 980 Hz followed by 1650 Hz
+ III.5.4.3.8 980Hz followed by 1650Hz
Purpose: To ensure the correct selection of V.21 modem channel when certain types of
Swedish textphones are encountered.
Preamble: N/A
Method: The tester will simulate a call from a Diatext2 textphone that alternates between
- 980 Hz and 1650 Hz until a connection is made.
+ 980Hz and 1650Hz until a connection is made.
Pass criteria: The TUT should respond with the appropriate carrier depending on when it
connects.
Comments: The TUT should indicate a V.21 connection. The time for which each frequency is
static int test_ans_09(void)
{
/*
- III.5.4.3.9 980 Hz calling tone detection
- Purpose: To confirm correct detection of 980 Hz calling tones as defined in V.25.
+ III.5.4.3.9 980Hz calling tone detection
+ Purpose: To confirm correct detection of 980Hz calling tones as defined in V.25.
Preamble: N/A
- Method: The tester will send bursts of 980 Hz signals (a) 400 ms, (b) 500 ms, (c) 700 ms and
+ Method: The tester will send bursts of 980Hz signals (a) 400 ms, (b) 500 ms, (c) 700 ms and
(d) 800 ms followed by 1 second of silence.
Pass criteria: 1) The TUT should not respond to bursts of 400 or 800 ms.
- 2) The TUT should immediately begin probing after a burst of 980 Hz for 500 or
+ 2) The TUT should immediately begin probing after a burst of 980Hz for 500 or
700 ms followed by 1 second of silence.
- Comments:
+ Comments: The probe sent by the TUT will depend on the country setting.
*/
printf("Test not yet implemented\n");
return 1;
static int test_ans_10(void)
{
/*
- III.5.4.3.10 The probe sent by the TUT will depend on the country setting.
- V.21 detection by timer
+ III.5.4.3.10 V.21 detection by timer
Purpose: To confirm correct selection of V.21 calling modem when the received signal is not
- modulated, i.e. there is no 1180 Hz.
+ modulated, i.e. there is no 1180Hz.
Preamble: N/A
- Method: The tester sends 980 Hz to TUT for 2 seconds.
- Pass criteria: The TUT should respond with a 1650 Hz tone in 1.5±0.1 seconds.
+ Method: The tester sends 980Hz to TUT for 2 seconds.
+ Pass criteria: The TUT should respond with a 1650Hz tone in 1.5±0.1 seconds.
Comments: The TUT should indicate that V.21 mode has been selected.
*/
printf("Test not yet implemented\n");
back to the tester. The same characters will then be transmitted back to the TUT.
Pass criteria: Ensure correct reception of characters by tester and TUT.
Comments: This situation is unlikely to occur in practice unless the DCE is sending a V.21
- (1650 Hz) probe. However, it is catered for in V.18. It is more likely that this is
+ (1650Hz) probe. However, it is catered for in V.18. It is more likely that this is
where CI or TXP characters would be detected (see test ANS-02).
*/
printf("Test not yet implemented\n");
Purpose: To ensure that the TUT returns to the Monitor A state on expiry of timer Tr
(2 seconds). Timer Tr is started when a modulated V.21 (1) signal is detected.
Preamble: N/A
- Method: The tester will transmit 980 Hz for 200 ms followed by alternating 980 Hz/1180 Hz
- at 110 bit/s for 100 ms followed by 980 Hz for 1 second.
- Pass criteria: The TUT should begin probing 4±0.5 seconds after the 980 Hz signal is removed.
+ Method: The tester will transmit 980Hz for 200 ms followed by alternating 980Hz/1180Hz
+ at 110 bit/s for 100 ms followed by 980Hz for 1 second.
+ Pass criteria: The TUT should begin probing 4±0.5 seconds after the 980Hz signal is removed.
Comments: It is not possible to be precise on timings for this test since the definition of a
"modulated signal" as in 5.2.4.4 is not specified. Therefore it is not known exactly
when timer Tr will start. It is assumed that timer Ta is restarted on re-entering the
/*
III.5.4.3.14 Te timer
Purpose: To ensure that the TUT returns to the Monitor A on expiry of timer Te
- (2.7 seconds). Timer Te is started when a 980 Hz signal is detected.
+ (2.7 seconds). Timer Te is started when a 980Hz signal is detected.
Preamble: N/A
- Method: The tester will transmit 980 Hz for 200 ms followed silence for 7 s.
- Pass criteria: The TUT should begin probing 5.5±0.5 seconds after the 980 Hz signal is removed.
+ Method: The tester will transmit 980Hz for 200 ms followed silence for 7 s.
+ Pass criteria: The TUT should begin probing 5.5±0.5 seconds after the 980Hz signal is removed.
Comments: It is assumed that timer Ta (3 seconds) is restarted on re-entering the Monitor A
state.
*/
static int test_ans_17(void)
{
/*
- III.5.4.3.17 Bell 103 (1270 Hz signal) detection
+ III.5.4.3.17 Bell 103 (1270Hz signal) detection
Purpose: To ensure correct detection and selection of Bell 103 modems.
Preamble: N/A
- Method: The tester sends 1270 Hz to TUT for 5 seconds.
- Pass criteria: TUT should respond with 2225 Hz tone after 0.7±0.1 s.
+ Method: The tester sends 1270Hz to TUT for 5 seconds.
+ Pass criteria: TUT should respond with 2225Hz tone after 0.7±0.1 s.
Comments: The TUT should indicate that Bell 103 mode has been selected.
*/
printf("Test not yet implemented\n");
static int test_ans_18(void)
{
/*
- III.5.4.3.18 Bell 103 (2225 Hz signal) detection
+ III.5.4.3.18 Bell 103 (2225Hz signal) detection
Purpose: To ensure correct detection and selection of Bell 103 modems in reverse mode.
Preamble: N/A
- Method: The tester sends 2225 Hz to TUT for 5 seconds.
- Pass criteria: The TUT should respond with 1270 Hz after 1±0.2 seconds.
+ Method: The tester sends 2225Hz to TUT for 5 seconds.
+ Pass criteria: The TUT should respond with 1270Hz after 1±0.2 seconds.
Comments: The TUT should indicate that Bell 103 mode has been selected. Bell 103 modems
- use 2225 Hz as both answer tone and higher frequency of the upper channel.
+ use 2225Hz as both answer tone and higher frequency of the upper channel.
*/
printf("Test not yet implemented\n");
return 1;
static int test_ans_19(void)
{
/*
- III.5.4.3.19 V.21 Reverse mode (1650 Hz) detection
+ III.5.4.3.19 V.21 Reverse mode (1650Hz) detection
Purpose: To ensure correct detection and selection of V.21 reverse mode.
Preamble: N/A
- Method: The tester sends 1650 Hz to TUT for 5 seconds.
- Pass criteria: The TUT should respond with 980 Hz after 0.4±0.2 seconds.
+ Method: The tester sends 1650Hz to TUT for 5 seconds.
+ Pass criteria: The TUT should respond with 980Hz after 0.4±0.2 seconds.
Comments: The TUT should indicate that V.21 mode has been selected.
*/
printf("Test not yet implemented\n");
static int test_ans_20(void)
{
/*
- III.5.4.3.20 1300 Hz calling tone discrimination
- Purpose: To confirm correct detection of 1300 Hz calling tones as defined in ITU-T V.25.
+ III.5.4.3.20 1300Hz calling tone discrimination
+ Purpose: To confirm correct detection of 1300Hz calling tones as defined in ITU-T V.25.
Preamble: N/A
- Method: The tester will send 1300 Hz bursts of (a) 400 ms, (b) 500 ms, (c) 700 ms and
+ Method: The tester will send 1300Hz bursts of (a) 400 ms, (b) 500 ms, (c) 700 ms and
(d) 800 ms followed by 1 second of silence.
Pass criteria: 1) The TUT should not respond to bursts of 400 or 800 ms.
- 2) The TUT should immediately begin probing after a burst of 1300 Hz for 500 or
+ 2) The TUT should immediately begin probing after a burst of 1300Hz for 500 or
700 ms followed by 1 second of silence.
- Comments:
+ Comments: The probe sent by the TUT will depend on the country setting.
*/
printf("Test not yet implemented\n");
return 1;
static int test_ans_21(void)
{
/*
- III.5.4.3.21 The probe sent by the TUT will depend on the country setting.
- V.23 Reverse mode (1300 Hz) detection
+ III.5.4.3.21 V.23 Reverse mode (1300Hz) detection
Purpose: To ensure correct detection and selection of V.23 reverse mode.
Preamble: N/A
- Method: The tester sends 1300 Hz only, with no XCI signals, to TUT for 5 seconds.
- Pass criteria: The TUT should respond with 390 Hz after 1.7±0.1 seconds.
+ Method: The tester sends 1300Hz only, with no XCI signals, to TUT for 5 seconds.
+ Pass criteria: The TUT should respond with 390Hz after 1.7±0.1 seconds.
Comments: The TUT should indicate that V.23 mode has been selected.
*/
printf("Test not yet implemented\n");
static int test_ans_22(void)
{
/*
- III.5.4.3.22 1300 Hz with XCI test
+ III.5.4.3.22 1300Hz with XCI test
Purpose: To ensure correct detection of the XCI signal and selection of V.18 mode.
Preamble: N/A
Method: The tester sends XCI signal as defined in 3.11. On reception of ANS it will become
by the TUT.
Pass criteria: The TUT should send the user defined probe message for Annexes A, B, and C
modes followed by a pause of Tm (default 3) seconds.
- Comments:
+ Comments: The carrierless modes are those described in Annexes A, B and C.
*/
printf("Test not yet implemented\n");
return 1;
static int test_ans_25(void)
{
/*
- III.5.4.3.25 The carrierless modes are those described in Annexes A, B and C.
- Interrupted carrierless mode probe
+ III.5.4.3.25 Interrupted carrierless mode probe
Purpose: To ensure that the TUT continues probing from the point of interruption a maximum
of 20 s after a failed connect attempt.
Preamble: The TUT should be configured for the UK country setting.
Method: The tester will call the TUT, wait for Ta to expire and then during the pause after
- the first Baudot probe it will send a 200 ms burst of 1270 Hz followed by silence
+ the first Baudot probe it will send a 200 ms burst of 1270Hz followed by silence
for 30 s.
- Pass criteria: The TUT should transmit silence on detecting the 1270 Hz tone and then continue
- probing starting with the V.23 probe 20 seconds after the end of the 1270 Hz signal.
+ Pass criteria: The TUT should transmit silence on detecting the 1270Hz tone and then continue
+ probing starting with the V.23 probe 20 seconds after the end of the 1270Hz signal.
*/
printf("Test not yet implemented\n");
return 1;
Preamble: None.
Method: The tester will call the TUT, wait for Ta to expire and then monitor the probes sent
by the TUT.
- Pass criteria: The TUT should send the ANS tone (2100 Hz) for 1 second followed by silence for
- 75±5 ms and then the 1650 Hz, 1300 Hz and 2225 Hz probes for time Tc.
+ Pass criteria: The TUT should send the ANS tone (2100Hz) for 1 second followed by silence for
+ 75±5 ms and then the 1650Hz, 1300Hz and 2225Hz probes for time Tc.
Comments: The carrier modes are those described in Annexes D, E, and F.
*/
printf("Test not yet implemented\n");
static int test_ans_27(void)
{
/*
- III.5.4.3.27 V.23 mode (390 Hz) detection
+ III.5.4.3.27 V.23 mode (390Hz) detection
Purpose: To confirm correct selection of V.23 mode.
Preamble: N/A
- Method: The tester waits until the 1300 Hz probe is detected from the TUT and then
- transmits 390 Hz for 11 seconds.
- Pass criteria: 1) After 3 seconds of the 390 Hz signal the TUT should indicate that V.23 has
+ Method: The tester waits until the 1300Hz probe is detected from the TUT and then
+ transmits 390Hz for 11 seconds.
+ Pass criteria: 1) After 3 seconds of the 390Hz signal the TUT should indicate that V.23 has
been selected.
- 2) The tester will confirm that the 1300 Hz carrier is maintained for at least
+ 2) The tester will confirm that the 1300Hz carrier is maintained for at least
4 seconds beyond the normal probe duration, i.e. Tc (= 6 s default) + 4 s =
10 seconds total.
- Comments:
+ Comments: All known V.23 devices need to receive 1300Hz tone before they will respond with
+ 390Hz. When the 1300Hz probe is not being transmitted, a 390Hz tone may be
+ interpreted as a 400Hz network tone.
*/
printf("Test not yet implemented\n");
return 1;
static int test_ans_28(void)
{
/*
- III.5.4.3.28 All known V.23 devices need to receive 1300 Hz tone before they will respond with
- 390 Hz. When the 1300 Hz probe is not being transmitted, a 390 Hz tone may be
- interpreted as a 400 Hz network tone.
- Interrupted carrier mode probe
+ III.5.4.3.28 Interrupted carrier mode probe
Purpose: To ensure that the TUT continues probing from the point of interruption a maximum
of 4 s after a failed connect attempt.
Preamble: The TUT should be configured for the UK country setting.
Method: The tester will call the TUT, wait for Ta to expire and then during the first V.21
- probe it will send a 200 ms burst of 1270 Hz followed by silence for 30 s.
- Pass criteria: The TUT should transmit silence on detecting the 1270 Hz tone and then continue
- probing with the Baudot stored message 4 seconds after the end of the 1270 Hz
+ probe it will send a 200 ms burst of 1270Hz followed by silence for 30 s.
+ Pass criteria: The TUT should transmit silence on detecting the 1270Hz tone and then continue
+ probing with the Baudot stored message 4 seconds after the end of the 1270Hz
burst.
Comments: It is most likely that the TUT will return to probing time Ta (3 seconds) after the
- 1270 Hz tone ceases. This condition needs further clarification.
+ 1270Hz tone ceases. This condition needs further clarification.
*/
printf("Test not yet implemented\n");
return 1;
III.5.4.3.31 Immunity to fax calling tones
Purpose: To determine whether the TUT can discriminate fax calling tones.
Preamble: N/A
- Method: The tester will call the TUT and send the fax calling tone, CNG. This is an 1100 Hz
+ Method: The tester will call the TUT and send the fax calling tone, CNG. This is an 1100Hz
tone with cadence of 0.5 seconds ON and 3 seconds OFF as defined in ITU-T T.30.
Pass criteria: The TUT should not respond to this signal and may report it as being a calling fax
machine.
Pass criteria: 1) On reception of the CM signal, the TUT should transmit JM with textphone
and V.21.
2) The TUT should then transmit in V.21 (2) mode.
- 3) The JM should be followed by continuous 1650 Hz.
+ 3) The JM should be followed by continuous 1650Hz.
4) Correct transmission and reception of T.140 data should be verified after the
V.18 mode connection is completed.
Comments: The TUT should indicate V.18 mode.
static int test_mon_22(void)
{
/*
- III.5.4.4.2 Automode monitor 1300 Hz calling tone discrimination
- Purpose: To confirm correct detection and reporting of 1300 Hz calling tones as defined in
+ III.5.4.4.2 Automode monitor 1300Hz calling tone discrimination
+ Purpose: To confirm correct detection and reporting of 1300Hz calling tones as defined in
ITU-T V.25.
Preamble: N/A
- Method: The tester will send 1300 Hz bursts of (a) 400 ms, (b) 500 ms, (c) 700 ms and
+ Method: The tester will send 1300Hz bursts of (a) 400 ms, (b) 500 ms, (c) 700 ms and
(d) 800 ms followed by 1 second of silence.
Pass criteria: 1) The TUT should not respond to bursts of 400 or 800 ms.
2) The TUT should report detection of calling tones to the DTE after a burst of
- 1300 Hz for 500 or 700 ms followed by 1 second of silence.
- Comments: In automode answer, the 1300 Hz calling causes the DCE to start probing. In
+ 1300Hz for 500 or 700 ms followed by 1 second of silence.
+ Comments: In automode answer, the 1300Hz calling causes the DCE to start probing. In
monitor mode it should only report detection to the DTE.
*/
printf("Test not yet implemented\n");
static int test_mon_23(void)
{
/*
- III.5.4.4.3 Automode monitor 980 Hz calling tone discrimination
- Purpose: To confirm correct detection and reporting of 980 Hz calling tones as defined in
+ III.5.4.4.3 Automode monitor 980Hz calling tone discrimination
+ Purpose: To confirm correct detection and reporting of 980Hz calling tones as defined in
ITU-T V.25.
Preamble: N/A
- Method: The tester will send 980 Hz bursts of (a) 400 ms, (b) 500 ms, (c) 700 ms and
+ Method: The tester will send 980Hz bursts of (a) 400 ms, (b) 500 ms, (c) 700 ms and
(d) 800 ms followed by 1 second of silence.
Pass criteria: 1) The TUT should not respond to bursts of 400 or 800 ms.
2) The TUT should report detection of calling tones to the DTE after a burst of
- 980 Hz for 500 or 700 ms followed by 1 second of silence.
- Comments: In automode answer, the 980 Hz calling causes the DCE to start probing. In monitor
+ 980Hz for 500 or 700 ms followed by 1 second of silence.
+ Comments: In automode answer, the 980Hz calling causes the DCE to start probing. In monitor
mode it should only report detection to the DTE.
*/
printf("Test not yet implemented\n");
transmitted by the TUT.
3) The tester should confirm that there is remote echo from TUT.
4) The operator should confirm that there is local echo on the TUT.
- Comments:
+ Comments: This test is only applicable to Minitel Dialogue terminals. Prestel and Minitel
+ Normal terminals cannot operate in this mode.
*/
printf("Test not yet implemented\n");
return 0;
static int test_x_11(void)
{
/*
- III.5.4.5.11 This test is only applicable to Minitel Dialogue terminals. Prestel and Minitel
- Normal terminals cannot operate in this mode.
- V.21 character structure
+ III.5.4.5.11 V.21 character structure
Purpose: To verify that the TUT uses the character structure in the V.21 mode.
Preamble: Establish a call from the TUT to the tester in V.21 mode.
Method: The operator should transmit a string from the TUT that is long enough to cause the