Some cleanups of FAX modem tone handling
This commit is contained in:
parent
8e6460fed3
commit
6cb3be7d8b
|
@ -291,7 +291,7 @@ SPAN_DECLARE(void) at_call_event(at_state_t *s, int event)
|
|||
{
|
||||
/* FAX modem connection */
|
||||
at_set_at_rx_mode(s, AT_MODE_DELIVERY);
|
||||
at_modem_control(s, AT_MODEM_CONTROL_RESTART, (void *) FAX_MODEM_CED_TONE);
|
||||
at_modem_control(s, AT_MODEM_CONTROL_RESTART, (void *) FAX_MODEM_CED_TONE_TX);
|
||||
}
|
||||
break;
|
||||
case AT_CALL_EVENT_CONNECTED:
|
||||
|
@ -315,9 +315,9 @@ SPAN_DECLARE(void) at_call_event(at_state_t *s, int event)
|
|||
/* FAX modem connection */
|
||||
at_set_at_rx_mode(s, AT_MODE_DELIVERY);
|
||||
if (s->silent_dial)
|
||||
at_modem_control(s, AT_MODEM_CONTROL_RESTART, (void *) FAX_MODEM_NOCNG_TONE);
|
||||
at_modem_control(s, AT_MODEM_CONTROL_RESTART, (void *) FAX_MODEM_NOCNG_TONE_TX);
|
||||
else
|
||||
at_modem_control(s, AT_MODEM_CONTROL_RESTART, (void *) FAX_MODEM_CNG_TONE);
|
||||
at_modem_control(s, AT_MODEM_CONTROL_RESTART, (void *) FAX_MODEM_CNG_TONE_TX);
|
||||
s->dte_is_waiting = TRUE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -323,12 +323,8 @@ static void fax_set_tx_type(void *user_data, int type, int bit_rate, int short_t
|
|||
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) ? FAX_MODEM_CED_TONE_TX : FAX_MODEM_CNG_TONE_TX;
|
||||
fax_modems_start_slow_modem(t, tone);
|
||||
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) NULL, NULL);
|
||||
t->transmit = TRUE;
|
||||
break;
|
||||
|
|
|
@ -261,11 +261,32 @@ SPAN_DECLARE(void) fax_modems_start_slow_modem(fax_modems_state_t *s, int which)
|
|||
{
|
||||
case FAX_MODEM_V21_RX:
|
||||
fsk_rx_init(&s->v21_rx, &preset_fsk_specs[FSK_V21CH2], FSK_FRAME_MODE_SYNC, (put_bit_func_t) hdlc_rx_put_bit, &s->hdlc_rx);
|
||||
fax_modems_set_rx_handler(s, (span_rx_handler_t) &fsk_rx, &s->v21_rx, (span_rx_fillin_handler_t) &fsk_rx_fillin, &s->v21_rx);
|
||||
fsk_rx_signal_cutoff(&s->v21_rx, -39.09f);
|
||||
s->rx_frame_received = FALSE;
|
||||
break;
|
||||
case FAX_MODEM_CED_TONE_RX:
|
||||
modem_connect_tones_rx_init(&s->connect_rx, MODEM_CONNECT_TONES_FAX_CED, s->tone_callback, s->tone_callback_user_data);
|
||||
fax_modems_set_rx_handler(s, (span_rx_handler_t) &modem_connect_tones_rx, &s->connect_rx, (span_rx_fillin_handler_t) &modem_connect_tones_rx_fillin, &s->connect_rx);
|
||||
break;
|
||||
case FAX_MODEM_CNG_TONE_RX:
|
||||
modem_connect_tones_rx_init(&s->connect_rx, MODEM_CONNECT_TONES_FAX_CNG, s->tone_callback, s->tone_callback_user_data);
|
||||
fax_modems_set_rx_handler(s, (span_rx_handler_t) &modem_connect_tones_rx, &s->connect_rx, (span_rx_fillin_handler_t) &modem_connect_tones_rx_fillin, &s->connect_rx);
|
||||
break;
|
||||
case FAX_MODEM_V21_TX:
|
||||
fsk_tx_init(&s->v21_tx, &preset_fsk_specs[FSK_V21CH2], (get_bit_func_t) hdlc_tx_get_bit, &s->hdlc_tx);
|
||||
fax_modems_set_tx_handler(s, (span_tx_handler_t) &fsk_tx, &s->v21_tx);
|
||||
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
|
||||
break;
|
||||
case FAX_MODEM_CED_TONE_TX:
|
||||
modem_connect_tones_tx_init(&s->connect_tx, MODEM_CONNECT_TONES_FAX_CED);
|
||||
fax_modems_set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &s->connect_tx);
|
||||
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
|
||||
break;
|
||||
case FAX_MODEM_CNG_TONE_TX:
|
||||
modem_connect_tones_tx_init(&s->connect_tx, MODEM_CONNECT_TONES_FAX_CNG);
|
||||
fax_modems_set_tx_handler(s, (span_tx_handler_t) &modem_connect_tones_tx, &s->connect_tx);
|
||||
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -490,12 +511,14 @@ SPAN_DECLARE(fax_modems_state_t *) fax_modems_init(fax_modems_state_t *s,
|
|||
s->use_tep = use_tep;
|
||||
|
||||
modem_connect_tones_tx_init(&s->connect_tx, MODEM_CONNECT_TONES_FAX_CNG);
|
||||
s->tone_callback = tone_callback;
|
||||
s->tone_callback_user_data = user_data;
|
||||
if (tone_callback)
|
||||
{
|
||||
modem_connect_tones_rx_init(&s->connect_rx,
|
||||
MODEM_CONNECT_TONES_FAX_CNG,
|
||||
tone_callback,
|
||||
user_data);
|
||||
s->tone_callback,
|
||||
s->tone_callback_user_data);
|
||||
}
|
||||
/*endif*/
|
||||
span_log_init(&s->logging, SPAN_LOG_NONE, NULL);
|
||||
|
|
|
@ -693,6 +693,12 @@ SPAN_DECLARE_NONSTD(int) modem_connect_tones_rx(modem_connect_tones_rx_state_t *
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE_NONSTD(int) modem_connect_tones_rx_fillin(modem_connect_tones_rx_state_t *s, int len)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) modem_connect_tones_rx_get(modem_connect_tones_rx_state_t *s)
|
||||
{
|
||||
int x;
|
||||
|
|
|
@ -34,9 +34,11 @@ enum
|
|||
FAX_MODEM_FLUSH = 0,
|
||||
FAX_MODEM_SILENCE_TX,
|
||||
FAX_MODEM_SILENCE_RX,
|
||||
FAX_MODEM_CED_TONE,
|
||||
FAX_MODEM_CNG_TONE,
|
||||
FAX_MODEM_NOCNG_TONE,
|
||||
FAX_MODEM_CED_TONE_TX,
|
||||
FAX_MODEM_CNG_TONE_TX,
|
||||
FAX_MODEM_NOCNG_TONE_TX,
|
||||
FAX_MODEM_CED_TONE_RX,
|
||||
FAX_MODEM_CNG_TONE_RX,
|
||||
FAX_MODEM_V21_TX,
|
||||
FAX_MODEM_V17_TX,
|
||||
FAX_MODEM_V27TER_TX,
|
||||
|
|
|
@ -142,6 +142,15 @@ SPAN_DECLARE_NONSTD(int) modem_connect_tones_rx(modem_connect_tones_rx_state_t *
|
|||
const int16_t amp[],
|
||||
int len);
|
||||
|
||||
/*! Fake processing of a missing block of received modem connect tone samples
|
||||
(e.g due to packet loss).
|
||||
\brief Fake processing of a missing block of received modem connect tone samples.
|
||||
\param s The context.
|
||||
\param len The number of samples to fake.
|
||||
\return The number of samples unprocessed.
|
||||
*/
|
||||
SPAN_DECLARE_NONSTD(int) modem_connect_tones_rx_fillin(modem_connect_tones_rx_state_t *s, int len);
|
||||
|
||||
/*! \brief Test if a modem_connect tone has been detected.
|
||||
\param s The context.
|
||||
\return TRUE if tone is detected, else FALSE.
|
||||
|
|
|
@ -82,6 +82,11 @@ struct fax_modems_state_s
|
|||
/*! \brief */
|
||||
dc_restore_state_t dc_restore;
|
||||
|
||||
/*! \brief The callback function used to report detected tones. */
|
||||
tone_report_func_t tone_callback;
|
||||
/*! \brief A user specified opaque pointer passed to the tone_callback function. */
|
||||
void *tone_callback_user_data;
|
||||
|
||||
/*! \brief The fast modem type currently in use */
|
||||
int fast_modem;
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ static void hdlc_accept_frame(void *user_data, const uint8_t *msg, int len, int
|
|||
static void hdlc_accept_t38_frame(void *user_data, const uint8_t *msg, int len, int ok);
|
||||
static void hdlc_accept_non_ecm_frame(void *user_data, const uint8_t *msg, int len, int ok);
|
||||
static int silence_rx(void *user_data, const int16_t amp[], int len);
|
||||
static int cng_rx(void *user_data, const int16_t amp[], int len);
|
||||
static int initial_timed_rx(void *user_data, const int16_t amp[], int len);
|
||||
static void non_ecm_put_bit(void *user_data, int bit);
|
||||
static void non_ecm_put(void *user_data, const uint8_t buf[], int len);
|
||||
static int non_ecm_get(void *user_data, uint8_t buf[], int len);
|
||||
|
@ -223,7 +223,7 @@ static int front_end_status(t31_state_t *s, int status)
|
|||
}
|
||||
/*endif*/
|
||||
break;
|
||||
case FAX_MODEM_CED_TONE:
|
||||
case FAX_MODEM_CED_TONE_TX:
|
||||
/* Go directly to V.21/HDLC transmit. */
|
||||
s->modem = FAX_MODEM_NONE;
|
||||
restart_modem(s, FAX_MODEM_V21_TX);
|
||||
|
@ -1599,7 +1599,6 @@ static int non_ecm_get(void *user_data, uint8_t buf[], int len)
|
|||
s->non_ecm_tx.final = FALSE;
|
||||
/* This will put the modem into its shutdown sequence. When
|
||||
it has finally shut down, an OK response will be sent. */
|
||||
//return SIG_STATUS_END_OF_DATA;
|
||||
return i;
|
||||
}
|
||||
/*endif*/
|
||||
|
@ -1679,7 +1678,7 @@ static void hdlc_rx_status(void *user_data, int status)
|
|||
s->audio.modems.rx_trained = TRUE;
|
||||
break;
|
||||
case SIG_STATUS_CARRIER_UP:
|
||||
if (s->modem == FAX_MODEM_CNG_TONE || s->modem == FAX_MODEM_NOCNG_TONE || s->modem == FAX_MODEM_V21_RX)
|
||||
if (s->modem == FAX_MODEM_CNG_TONE_TX || s->modem == FAX_MODEM_NOCNG_TONE_TX || s->modem == FAX_MODEM_V21_RX)
|
||||
{
|
||||
s->at_state.rx_signal_present = TRUE;
|
||||
s->rx_frame_received = FALSE;
|
||||
|
@ -1718,7 +1717,7 @@ static void hdlc_rx_status(void *user_data, int status)
|
|||
s->audio.modems.rx_trained = FALSE;
|
||||
break;
|
||||
case SIG_STATUS_FRAMING_OK:
|
||||
if (s->modem == FAX_MODEM_CNG_TONE || s->modem == FAX_MODEM_NOCNG_TONE)
|
||||
if (s->modem == FAX_MODEM_CNG_TONE_TX || s->modem == FAX_MODEM_NOCNG_TONE_TX)
|
||||
{
|
||||
/* Once we get any valid HDLC the CNG tone stops, and we drop
|
||||
to the V.21 receive modem on its own. */
|
||||
|
@ -2028,7 +2027,7 @@ static int restart_modem(t31_state_t *s, int new_modem)
|
|||
use_hdlc = FALSE;
|
||||
switch (s->modem)
|
||||
{
|
||||
case FAX_MODEM_CNG_TONE:
|
||||
case FAX_MODEM_CNG_TONE_TX:
|
||||
if (s->t38_mode)
|
||||
{
|
||||
s->t38_fe.next_tx_samples = s->t38_fe.samples;
|
||||
|
@ -2037,35 +2036,34 @@ static int restart_modem(t31_state_t *s, int new_modem)
|
|||
}
|
||||
else
|
||||
{
|
||||
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CNG);
|
||||
fax_modems_start_slow_modem(t, FAX_MODEM_CNG_TONE_TX);
|
||||
/* CNG is special, since we need to receive V.21 HDLC messages while sending the
|
||||
tone. Everything else in FAX processing sends only one way at a time. */
|
||||
/* Do V.21/HDLC receive in parallel. The other end may send its
|
||||
first message at any time. The CNG tone will continue until
|
||||
we get a valid preamble. */
|
||||
t31_v21_rx(s);
|
||||
fax_modems_set_rx_handler(t, (span_rx_handler_t) &cng_rx, s, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, NULL);
|
||||
fax_modems_set_tx_handler(t, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
|
||||
fax_modems_set_rx_handler(t, (span_rx_handler_t) &initial_timed_rx, s, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, NULL);
|
||||
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) NULL, NULL);
|
||||
}
|
||||
/*endif*/
|
||||
s->at_state.transmit = TRUE;
|
||||
break;
|
||||
case FAX_MODEM_NOCNG_TONE:
|
||||
case FAX_MODEM_NOCNG_TONE_TX:
|
||||
if (s->t38_mode)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
t31_v21_rx(s);
|
||||
fax_modems_set_rx_handler(t, (span_rx_handler_t) &cng_rx, s, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, NULL);
|
||||
fax_modems_set_rx_handler(t, (span_rx_handler_t) &initial_timed_rx, s, (span_rx_fillin_handler_t) &span_dummy_rx_fillin, NULL);
|
||||
silence_gen_set(&t->silence_gen, 0);
|
||||
fax_modems_set_tx_handler(t, (span_tx_handler_t) &silence_gen, &t->silence_gen);
|
||||
}
|
||||
/*endif*/
|
||||
s->at_state.transmit = FALSE;
|
||||
break;
|
||||
case FAX_MODEM_CED_TONE:
|
||||
case FAX_MODEM_CED_TONE_TX:
|
||||
if (s->t38_mode)
|
||||
{
|
||||
s->t38_fe.next_tx_samples = s->t38_fe.samples;
|
||||
|
@ -2074,8 +2072,7 @@ static int restart_modem(t31_state_t *s, int new_modem)
|
|||
}
|
||||
else
|
||||
{
|
||||
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CED);
|
||||
fax_modems_set_tx_handler(t, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
|
||||
fax_modems_start_slow_modem(t, FAX_MODEM_CED_TONE_TX);
|
||||
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) NULL, NULL);
|
||||
}
|
||||
/*endif*/
|
||||
|
@ -2121,9 +2118,9 @@ static int restart_modem(t31_state_t *s, int new_modem)
|
|||
case FAX_MODEM_V29_RX:
|
||||
if (!s->t38_mode)
|
||||
{
|
||||
fax_modems_start_fast_modem(t, s->modem, s->bit_rate, s->short_train, use_hdlc);
|
||||
/* Allow for +FCERROR/+FRH:3 */
|
||||
t31_v21_rx(s);
|
||||
fax_modems_start_fast_modem(t, s->modem, s->bit_rate, s->short_train, use_hdlc);
|
||||
}
|
||||
/*endif*/
|
||||
s->at_state.transmit = FALSE;
|
||||
|
@ -2743,7 +2740,7 @@ static int silence_rx(void *user_data, const int16_t amp[], int len)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static int cng_rx(void *user_data, const int16_t amp[], int len)
|
||||
static int initial_timed_rx(void *user_data, const int16_t amp[], int len)
|
||||
{
|
||||
t31_state_t *s;
|
||||
|
||||
|
@ -2755,12 +2752,9 @@ static int cng_rx(void *user_data, const int16_t amp[], int len)
|
|||
restart_modem(s, FAX_MODEM_SILENCE_TX);
|
||||
at_modem_control(&s->at_state, AT_MODEM_CONTROL_HANGUP, NULL);
|
||||
t31_set_at_rx_mode(s, AT_MODE_ONHOOK_COMMAND);
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
fsk_rx(&s->audio.modems.v21_rx, amp, len);
|
||||
}
|
||||
/*endif*/
|
||||
fsk_rx(&s->audio.modems.v21_rx, amp, len);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
|
|
@ -867,7 +867,7 @@ static int t38_encode_data(t38_core_state_t *s, uint8_t buf[], int data_type, co
|
|||
|
||||
if (s->data_transport_protocol == T38_TRANSPORT_TCP_TPKT)
|
||||
{
|
||||
/* Fill in the TPKT header (se RFC1006) */
|
||||
/* Fill in the TPKT header (see RFC1006) */
|
||||
/* Version */
|
||||
buf[0] = 3;
|
||||
/* Reserved */
|
||||
|
|
|
@ -321,16 +321,14 @@ static int set_next_tx_type(t38_gateway_state_t *s)
|
|||
break;
|
||||
case T38_IND_CNG:
|
||||
t->tx_bit_rate = 0;
|
||||
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CNG);
|
||||
fax_modems_start_slow_modem(t, FAX_MODEM_CNG_TONE_TX);
|
||||
silence_gen_set(&t->silence_gen, 0);
|
||||
fax_modems_set_tx_handler(t, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
|
||||
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) &silence_gen, &t->silence_gen);
|
||||
fax_modems_set_rx_active(t, TRUE);
|
||||
break;
|
||||
case T38_IND_CED:
|
||||
t->tx_bit_rate = 0;
|
||||
modem_connect_tones_tx_init(&t->connect_tx, MODEM_CONNECT_TONES_FAX_CED);
|
||||
fax_modems_set_tx_handler(t, (span_tx_handler_t) &modem_connect_tones_tx, &t->connect_tx);
|
||||
fax_modems_start_slow_modem(t, FAX_MODEM_CED_TONE_TX);
|
||||
fax_modems_set_next_tx_handler(t, (span_tx_handler_t) NULL, NULL);
|
||||
fax_modems_set_rx_active(t, TRUE);
|
||||
break;
|
||||
|
|
|
@ -312,67 +312,14 @@ static void hdlc_accept(void *user_data, const uint8_t *msg, int len, int ok)
|
|||
}
|
||||
/*- 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)
|
||||
{
|
||||
|
@ -432,7 +379,6 @@ void faxtester_set_rx_type(void *user_data, int type, int bit_rate, int short_tr
|
|||
{
|
||||
faxtester_state_t *s;
|
||||
fax_modems_state_t *t;
|
||||
int tone;
|
||||
|
||||
s = (faxtester_state_t *) user_data;
|
||||
t = &s->modems;
|
||||
|
@ -445,37 +391,31 @@ void faxtester_set_rx_type(void *user_data, int type, int bit_rate, int short_tr
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
@ -513,25 +453,19 @@ void faxtester_set_tx_type(void *user_data, int type, int bit_rate, int short_tr
|
|||
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;
|
||||
|
@ -540,7 +474,6 @@ void faxtester_set_tx_type(void *user_data, int type, int bit_rate, int short_tr
|
|||
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;
|
||||
|
@ -549,7 +482,6 @@ void faxtester_set_tx_type(void *user_data, int type, int bit_rate, int short_tr
|
|||
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;
|
||||
|
|
|
@ -415,15 +415,14 @@ then
|
|||
fi
|
||||
echo schedule_tests completed OK
|
||||
|
||||
#./sig_tone_tests >$STDOUT_DEST 2>$STDERR_DEST
|
||||
#RETVAL=$?
|
||||
#if [ $RETVAL != 0 ]
|
||||
#then
|
||||
# echo sig_tone_tests failed!
|
||||
# exit $RETVAL
|
||||
#fi
|
||||
#echo sig_tone_tests completed OK
|
||||
echo sig_tone_tests not enabled
|
||||
./sig_tone_tests >$STDOUT_DEST 2>$STDERR_DEST
|
||||
RETVAL=$?
|
||||
if [ $RETVAL != 0 ]
|
||||
then
|
||||
echo sig_tone_tests failed!
|
||||
exit $RETVAL
|
||||
fi
|
||||
echo sig_tone_tests completed OK
|
||||
|
||||
#./super_tone_rx_tests >$STDOUT_DEST 2>$STDERR_DEST
|
||||
#RETVAL=$?
|
||||
|
@ -445,15 +444,14 @@ echo super_tone_rx_tests not enabled
|
|||
#echo super_tone_tx_tests completed OK
|
||||
echo super_tone_tx_tests not enabled
|
||||
|
||||
#./swept_tone_tests >$STDOUT_DEST 2>$STDERR_DEST
|
||||
#RETVAL=$?
|
||||
#if [ $RETVAL != 0 ]
|
||||
#then
|
||||
# echo swept_tone_tests failed!
|
||||
# exit $RETVAL
|
||||
#fi
|
||||
#echo swept_tone_tests completed OK
|
||||
echo swept_tone_tests not enabled
|
||||
./swept_tone_tests >$STDOUT_DEST 2>$STDERR_DEST
|
||||
RETVAL=$?
|
||||
if [ $RETVAL != 0 ]
|
||||
then
|
||||
echo swept_tone_tests failed!
|
||||
exit $RETVAL
|
||||
fi
|
||||
echo swept_tone_tests completed OK
|
||||
|
||||
./t31_tests -r >$STDOUT_DEST 2>$STDERR_DEST
|
||||
RETVAL=$?
|
||||
|
|
|
@ -105,7 +105,7 @@ static const struct command_response_s fax_send_test_seq[] =
|
|||
RESPONSE("\r\nOK\r\n"),
|
||||
EXCHANGE("AT+FRH=3\r", "\r\nCONNECT\r\n"),
|
||||
//<DIS frame data>
|
||||
#if 0
|
||||
#if 1
|
||||
RESPONSE("\xFF\x13\x80\x00\xEE\xF8\x80\x80\x91\x80\x80\x80\x18\x78\x57\x10\x03"), // For audio FAXing
|
||||
#else
|
||||
RESPONSE("\xFF\x13\x80\x04\xEE\xF8\x80\x80\x91\x80\x80\x80\x18\xE4\xE7\x10\x03"), // For T.38 FAXing
|
||||
|
|
|
@ -179,11 +179,11 @@ static int test_misc_02(void)
|
|||
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");
|
||||
|
@ -351,7 +351,7 @@ static int test_org_02(void)
|
|||
{
|
||||
/*
|
||||
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
|
||||
|
@ -391,11 +391,11 @@ static int test_org_04(void)
|
|||
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.
|
||||
|
@ -408,15 +408,15 @@ static int test_org_04(void)
|
|||
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
|
||||
|
@ -430,15 +430,15 @@ static int test_org_05(void)
|
|||
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.
|
||||
|
@ -472,12 +472,12 @@ static int test_org_07(void)
|
|||
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.
|
||||
*/
|
||||
|
@ -489,14 +489,14 @@ static int test_org_08(void)
|
|||
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;
|
||||
|
@ -506,16 +506,15 @@ static int test_org_09(void)
|
|||
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;
|
||||
|
@ -525,18 +524,18 @@ static int test_org_10(void)
|
|||
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;
|
||||
|
@ -546,16 +545,14 @@ static int test_org_11(void)
|
|||
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.
|
||||
|
@ -617,10 +614,10 @@ static int test_org_15(void)
|
|||
{
|
||||
/*
|
||||
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.
|
||||
|
@ -633,14 +630,14 @@ static int test_org_15(void)
|
|||
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;
|
||||
|
@ -650,13 +647,12 @@ static int test_org_16(void)
|
|||
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;
|
||||
|
@ -669,11 +665,11 @@ static int test_org_18(void)
|
|||
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;
|
||||
|
@ -683,13 +679,13 @@ static int test_org_18(void)
|
|||
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;
|
||||
|
@ -699,8 +695,7 @@ static int test_org_19(void)
|
|||
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
|
||||
|
@ -727,7 +722,7 @@ static int test_org_21(void)
|
|||
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.
|
||||
|
@ -746,7 +741,7 @@ static int test_org_22(void)
|
|||
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
|
||||
|
@ -779,7 +774,7 @@ static int test_org_24(void)
|
|||
{
|
||||
/*
|
||||
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
|
||||
|
@ -836,7 +831,7 @@ static int test_ans_02(void)
|
|||
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");
|
||||
|
@ -856,7 +851,7 @@ static int test_ans_03(void)
|
|||
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.
|
||||
|
@ -885,13 +880,13 @@ static int test_ans_04(void)
|
|||
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");
|
||||
|
@ -902,13 +897,13 @@ static int test_ans_05(void)
|
|||
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");
|
||||
|
@ -919,13 +914,13 @@ static int test_ans_06(void)
|
|||
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");
|
||||
|
@ -936,12 +931,12 @@ static int test_ans_07(void)
|
|||
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
|
||||
|
@ -955,15 +950,15 @@ static int test_ans_08(void)
|
|||
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;
|
||||
|
@ -973,13 +968,12 @@ static int test_ans_09(void)
|
|||
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");
|
||||
|
@ -1020,7 +1014,7 @@ static int test_ans_12(void)
|
|||
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");
|
||||
|
@ -1035,9 +1029,9 @@ static int test_ans_13(void)
|
|||
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
|
||||
|
@ -1053,10 +1047,10 @@ static int test_ans_14(void)
|
|||
/*
|
||||
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.
|
||||
*/
|
||||
|
@ -1113,11 +1107,11 @@ static int test_ans_16(void)
|
|||
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");
|
||||
|
@ -1128,13 +1122,13 @@ static int test_ans_17(void)
|
|||
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;
|
||||
|
@ -1144,11 +1138,11 @@ static int test_ans_18(void)
|
|||
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");
|
||||
|
@ -1159,15 +1153,15 @@ static int test_ans_19(void)
|
|||
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;
|
||||
|
@ -1177,12 +1171,11 @@ static int test_ans_20(void)
|
|||
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");
|
||||
|
@ -1193,7 +1186,7 @@ static int test_ans_21(void)
|
|||
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
|
||||
|
@ -1234,7 +1227,7 @@ static int test_ans_24(void)
|
|||
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;
|
||||
|
@ -1244,16 +1237,15 @@ static int test_ans_24(void)
|
|||
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;
|
||||
|
@ -1269,8 +1261,8 @@ static int test_ans_26(void)
|
|||
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");
|
||||
|
@ -1281,17 +1273,19 @@ static int test_ans_26(void)
|
|||
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;
|
||||
|
@ -1301,20 +1295,17 @@ static int test_ans_27(void)
|
|||
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;
|
||||
|
@ -1367,7 +1358,7 @@ static int test_ans_31(void)
|
|||
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.
|
||||
|
@ -1410,7 +1401,7 @@ static int test_ans_33(void)
|
|||
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.
|
||||
|
@ -1446,16 +1437,16 @@ static int test_mon_21(void)
|
|||
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");
|
||||
|
@ -1466,16 +1457,16 @@ static int test_mon_22(void)
|
|||
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");
|
||||
|
@ -1739,7 +1730,8 @@ static int test_x_10(void)
|
|||
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;
|
||||
|
@ -1749,9 +1741,7 @@ static int test_x_10(void)
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue