int log_audio = FALSE;
SNDFILE *outhandle = NULL;
-char result[1024];
+char result[2][1024];
int unexpected_echo = FALSE;
char *decode_test_file = NULL;
v18[0] = v18_init(NULL, TRUE, mode, V18_AUTOMODING_GLOBAL, put_text_msg, NULL);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
+ span_log_set_tag(logging, "Tester");
v18[1] = v18_init(NULL, FALSE, mode, V18_AUTOMODING_GLOBAL, put_text_msg, NULL);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
TUT should continue to probe until the test is terminated.
Comments: This feature should also be verified by observation during the automoding tests.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: The TUT should indicate that carrier has been lost at some time after the 1650Hz
signal is lost.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: The TUT should indicate that carrier has been lost at some time after the carrier
signal is removed and not disconnect.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
automatically hang up when busy tone is detected. PABX busy tones may differ in
frequency and cadence from national parameters.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Pass criteria: The RINGING condition should be visually indicated by the TUT.
Comments: This test should be repeated across a range of valid timings and ring voltages.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
mode. There may be other cases, e.g. where the V.18 DCE is used in a gateway,
when automatic disconnection is required.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
However, this may possibly not be indicated by the DTE.
Comments: The possible modes are: V.21, V.23, Baudot 45, Baudot 50, EDT, Bell 103, DTMF.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comment: The response times and signal level thresholds of Circuit 135 are not specified in
ITU-T V.18 or V.24 and therefore the pattern indicated may vary.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Pass criteria: TBD
Comment: TBD
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
8) The whole sequence should be repeated until the call is cleared.
9) When V.18 to V.18, the XCI must not force V.23 or Minitel mode.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
2) The TUT should reply with transmission of TXP as defined in 5.1.2.
3) Verify that TXP sequence has correct bit pattern.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Pass criteria: The TUT should stop sending TXP at the end of the current sequence when ANS
tone ceases.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
III.5.4.2.4 ANS tone followed by TXP
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
+ Method: Tester transmits ANS for 2.5 seconds followed by 75ms of no tone then transmits
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.
with the V.18 operational requirements.
Comments: The TUT should indicate that V.18 mode has been selected.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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
+ Method: Tester transmits ANS for 2.5 seconds followed by 75ms of no tone then transmits
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.
examination of TUT. If there is no visual indication, verify by use of ITU-T T.50 for
ITU-T V.21 as opposed to UTF-8 coded ISO 10646 character set for ITU-T V.18.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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
+ Method: Tester transmits ANS for 2.5 seconds followed by 75ms of no tone then transmits
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.
by the TUT to comply with Annex E.
Comments: The TUT should indicate that V.23 mode has been selected.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
literally. It may however, occur when connected to certain Swedish textphones if the
handset is lifted just after the start of an automatically answered incoming call.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
2) Data should be transmitted and received at 300 bit/s to comply with Annex F.
Comments: The TUT should indicate that V.21 mode has been selected.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
by the TUT to comply with Annex E.
Comments: The TUT should indicate that V.23 mode has been selected.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: The TUT should indicate that V.23 mode has been selected at least 3 seconds after
the start of the 390Hz tone.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
automode answer state. The TUT may then select either 45.45 or 50 bit/s for the
transmission.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Purpose: To verify whether the TUT correctly recognizes DTMF signals during the 2-second
interval between transmission of CI.
Preamble: N/A
- Method: The tester will send a single DTMF tone of 40 ms duration to TUT. When TUT
+ Method: The tester will send a single DTMF tone of 40ms duration to TUT. When TUT
indicates a connection, type at least 5 characters back to the tester so that correct
selection of mode can be confirmed.
Pass criteria: The tester will analyse the received characters to confirm DTMF mode selection.
TUT should comply with ITU-T Q.24 for the Danish Administration while
receiving for best possible performance.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
the number lost should be minimal. The data bits and parity are specified in
Annex C.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
the CI signal.
Comments: Echoes of the CI sequences may be detected at 300 bit/s.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
2) Data should be transmitted and received at 300 bit/s complying with Annex F.
Comments: The TUT should indicate that V.21 mode has been selected.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
2) Data should be transmitted and received at 300 bit/s complying with Annex D.
Comments: The TUT should indicate that Bell 103 mode has been selected.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
presence and cadence of the tones for instance by a flashing light. The TUT may
disconnect on reception of tones indicating a failed call attempt.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: Some high speed modems may fall back to a compatibility mode, e.g. V.21 or V.23
that should be correctly detected by the TUT.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: Ideally the TUT should detect the presence of a fax machine and report it back to
the user.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: Ideally the TUT should report the presence of speech back to the user, e.g. via
circuit 135.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
2) The TUT should reply with transmission of CM as defined in 5.2.13.
3) Verify that CM sequence has correct bit pattern.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Method: The Test System waits for the TUT to start transmitting V.21 carrier (1).
Pass criteria: The TUT should connect by sending V.21 carrier (1).
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
answers the call. It will then monitor for any signal.
Pass criteria: The TUT should start probing 3 seconds after answering the call.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: The ANSam tone is a modulated 2100Hz tone. It may have phase reversals. The
XCI signal is tested in a separate test.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Method: The tester will transmit 2 sequences of 4 CI patterns separated by 2 seconds. On
reception of the ANSam tone the tester will wait 0.5 seconds and then begin
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.
+ Pass criteria: 1) On reception of the TXP signal, the TUT should remain silent for 75+-5ms.
2) The TUT should then transmit 3 TXP sequences in V.21(2) mode.
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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Pass criteria: The TUT should start probing 3 seconds after ANSam disappears.
Comments: It is assumed that timer Ta is restarted on return to Monitor A.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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
+ Method: Tester transmits ANS for 2.5 seconds followed by 75ms of no tone then transmits
980Hz and starts a 1 s timer.
- Pass criteria: TUT should respond with 1650Hz within 400+-100 ms of start of 980Hz.
+ Pass criteria: TUT should respond with 1650Hz within 400+-100ms of start of 980Hz.
Comments: The TUT should indicate that V.21 mode has been selected.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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
+ Method: Tester transmits ANS for 2.5 seconds followed by 75ms of no tone then transmits
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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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
+ Method: Tester transmits ANS for 2.5 seconds followed by 75ms of no tone then transmits
1650Hz and starts a 1-second timer.
- Pass criteria: TUT should respond with 980Hz within 400+-100 ms of start of 1650Hz.
+ Pass criteria: TUT should respond with 980Hz within 400+-100ms of start of 1650Hz.
Comments: The TUT should indicate that V.21 mode has been selected.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: The TUT should indicate a V.21 connection. The time for which each frequency is
transmitted is random and varies between 0.64 and 2.56 seconds.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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 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.
+ Method: The tester will send bursts of 980Hz signals (a) 400ms, (b) 500ms, (c) 700ms and
+ (d) 800ms followed by 1 second of silence.
+ Pass criteria: 1) The TUT should not respond to bursts of 400 or 800ms.
2) The TUT should immediately begin probing after a burst of 980Hz for 500 or
- 700 ms followed by 1 second of silence.
+ 700ms followed by 1 second of silence.
Comments: The probe sent by the TUT will depend on the country setting.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
be lost during the detection process. However, the number lost should be minimal.
The data bits and parity are specified in Annex C.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
(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).
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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 980Hz for 200 ms followed by alternating 980Hz/1180Hz
- at 110 bit/s for 100 ms followed by 980Hz for 1 second.
+ Method: The tester will transmit 980Hz for 200ms followed by alternating 980Hz/1180Hz
+ at 110 bit/s for 100ms 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
Monitor A state.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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 980Hz signal is detected.
Preamble: N/A
- Method: The tester will transmit 980Hz for 200 ms followed silence for 7 s.
+ Method: The tester will transmit 980Hz for 200ms 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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
automode answer state. The TUT may then select either 45.45 or 50 bit/s for the
transmission.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
III.5.4.3.16 DTMF signal detection
Purpose: To verify whether the TUT correctly recognizes DTMF signals.
Preamble: N/A
- Method: The tester will send a single DTMF tone of 40 ms duration to TUT. When TUT
+ Method: The tester will send a single DTMF tone of 40ms duration to TUT. When TUT
indicates a connection, type at least 5 characters back to the tester so that correct
selection of mode can be confirmed.
Pass criteria: Tester will analyse the received characters to confirm DTMF mode selection.
Comments: The TUT should indicate that it has selected DTMF mode. The DTMF capabilities
of the TUT should comply with ITU-T Q.24 for the Danish Administration.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: The TUT should indicate that Bell 103 mode has been selected. Bell 103 modems
use 2225Hz as both answer tone and higher frequency of the upper channel.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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 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.
+ Method: The tester will send 1300Hz bursts of (a) 400ms, (b) 500ms, (c) 700ms and
+ (d) 800ms followed by 1 second of silence.
+ Pass criteria: 1) The TUT should not respond to bursts of 400 or 800ms.
2) The TUT should immediately begin probing after a burst of 1300Hz for 500 or
- 700 ms followed by 1 second of silence.
+ 700ms followed by 1 second of silence.
Comments: The probe sent by the TUT will depend on the country setting.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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
- silent for 500 ms then transmit the TXP signal in V.21 (1) mode.
+ silent for 500ms then transmit the TXP signal in V.21 (1) mode.
Pass criteria: The TUT should respond with TXP using V.21 (2) and select V.18 mode.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Pass criteria: The TUT should use the orders described in Appendix I.
Comments: The order of the probes is not mandatory.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
modes followed by a pause of Tm (default 3) seconds.
Comments: The carrierless modes are those described in Annexes A, B and C.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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 1270Hz followed by silence
+ the first Baudot probe it will send a 200ms 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 starting with the V.23 probe 20 seconds after the end of the 1270Hz signal.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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 (2100Hz) for 1 second followed by silence for
- 75+-5 ms and then the 1650Hz, 1300Hz and 2225Hz probes for time Tc.
+ 75+-5ms and then the 1650Hz, 1300Hz and 2225Hz probes for time Tc.
Comments: The carrier modes are those described in Annexes D, E, and F.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
390Hz. When the 1300Hz probe is not being transmitted, a 390Hz tone may be
interpreted as a 400Hz network tone.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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 1270Hz followed by silence for 30 s.
+ probe it will send a 200ms 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
1270Hz tone ceases. This condition needs further clarification.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: The TUT may not respond to any signals while a carrierless mode probe is being
sent since these modes are half duplex.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
tones may be ignored. Some devices may only provide a visual indication of the
presence and cadence of the tones for instance by a flashing light.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: This is an optional test as detection of the fax calling tone is not required by
ITU-T V.18.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: Ideally the TUT should report the presence of speech back to the user. This is an
optional test.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
V.18 mode connection is completed.
Comments: The TUT should indicate V.18 mode.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
for 1 minute.
Pass criteria: The TUT should not start probing.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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 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.
+ Method: The tester will send 1300Hz bursts of (a) 400ms, (b) 500ms, (c) 700ms and
+ (d) 800ms followed by 1 second of silence.
+ Pass criteria: 1) The TUT should not respond to bursts of 400 or 800ms.
2) The TUT should report detection of calling tones to the DTE after a burst of
- 1300Hz for 500 or 700 ms followed by 1 second of silence.
+ 1300Hz for 500 or 700ms 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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
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 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.
+ Method: The tester will send 980Hz bursts of (a) 400ms, (b) 500ms, (c) 700ms and
+ (d) 800ms followed by 1 second of silence.
+ Pass criteria: 1) The TUT should not respond to bursts of 400 or 800ms.
2) The TUT should report detection of calling tones to the DTE after a burst of
- 980Hz for 500 or 700 ms followed by 1 second of silence.
+ 980Hz for 500 or 700ms 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.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
{
printf("1-1 %d '%s'\n", len, msg);
if (user_data == NULL)
- strcat(result, (const char *) msg);
- else
- v18_put(v18[1], "abcdefghij", 10);
+ strcat(result[0], (const char *) msg);
+ //else
+ // v18_put(v18[1], "abcdefghij", 10);
}
/*- End of function --------------------------------------------------------*/
/*
III.5.4.5.1 Baudot carrier timing and receiver disabling
- Purpose: To verify that the TUT sends unmodulated carrier for 150 ms before a new character
- and disables its receiver for 300 ms after a character is transmitted.
+ Purpose: To verify that the TUT sends unmodulated carrier for 150ms before a new character
+ and disables its receiver for 300ms after a character is transmitted.
Preamble: Establish a call between the tester and TUT in Baudot mode.
Method: The operator should send a single character from the TUT. The tester will
immediately start sending a unique character sequence. Examination of the TUT
display will show when its receiver is re-enabled.
- Pass criteria: 1) The TUT should send unmodulated carrier for 150 ms before the beginning of
+ Pass criteria: 1) The TUT should send unmodulated carrier for 150ms before the beginning of
the start bit.
- 2) The receiver should be re-enabled after 300 ms.
+ 2) The receiver should be re-enabled after 300ms.
3) The tester will confirm that 1 start bit and at least 1.5 stop bits are used.
- Comments: The carrier should be maintained during the 300 ms after a character.
+ Comments: The carrier should be maintained during the 300ms after a character.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_5BIT_45, V18_AUTOMODING_GLOBAL, x_01_put_text_msg, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_5BIT_4545, V18_AUTOMODING_GLOBAL, x_01_put_text_msg, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_5BIT_45, V18_AUTOMODING_GLOBAL, x_01_put_text_msg, (void *) (intptr_t) 1);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_5BIT_4545, V18_AUTOMODING_GLOBAL, x_01_put_text_msg, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
v18_free(v18[0]);
v18_free(v18[1]);
ref = "cdefghij";
- printf("Result:\n%s\n", result);
+ printf("Result:\n%s\n", result[0]);
printf("Reference result:\n%s\n", ref);
- if (unexpected_echo || strcmp(result, ref) != 0)
+ if (unexpected_echo || strcmp(result[0], ref) != 0)
return -1;
return 1;
}
transmit the string "abcdef" at each rate.
Pass criteria: The tester will measure the bit timings and confirm the rates.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_5BIT_45, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_5BIT_4545, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_5BIT_45, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_5BIT_4545, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
Comments: The probe message must be long enough for the tester to establish the bit rate. "GA"
may not be sufficient.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_5BIT_45, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_5BIT_4545, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_5BIT_45, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_5BIT_4545, V18_AUTOMODING_GLOBAL, NULL, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
static void x_04_put_text_msg(void *user_data, const uint8_t *msg, int len)
{
printf("1-1 %d '%s'\n", len, msg);
- strcat(result, (const char *) msg);
+ strcat(result[0], (const char *) msg);
}
/*- End of function --------------------------------------------------------*/
assumed that the character conversion is the same for Baudot at 50 bit/s and any
other supported speed.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_5BIT_45, V18_AUTOMODING_GLOBAL, x_04_put_echo_text_msg, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_5BIT_4545, V18_AUTOMODING_GLOBAL, x_04_put_echo_text_msg, NULL);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_5BIT_45, V18_AUTOMODING_GLOBAL, x_04_put_text_msg, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_5BIT_4545, V18_AUTOMODING_GLOBAL, x_04_put_text_msg, NULL);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
exit(2);
}
- result[0] = '\0';
+ result[0][0] = '\0';
unexpected_echo = FALSE;
for (i = 0; i < 127; i++)
msg[i] = i + 1;
v18_free(v18[0]);
v18_free(v18[1]);
- printf("Result:\n%s\n", result);
+ printf("Result:\n%s\n", result[0]);
printf("Reference result:\n%s\n", full_baudot_rx);
- if (unexpected_echo || strcmp(result, full_baudot_rx) != 0)
+ if (unexpected_echo || strcmp(result[0], full_baudot_rx) != 0)
return -1;
return 0;
}
static void x_05_put_text_msg(void *user_data, const uint8_t *msg, int len)
{
if (user_data == NULL)
- strcat(result, (const char *) msg);
+ strcat(result[0], (const char *) msg);
else
v18_put(v18[1], "behknqtwz", 9);
}
/*
III.5.4.5.5 DTMF receiver disabling
- Purpose: To verify that the TUT disables its DTMF receiver for 300 ms when a character is
+ Purpose: To verify that the TUT disables its DTMF receiver for 300ms when a character is
transmitted.
Preamble: Establish a call between the tester and TUT in DTMF mode.
Method: The operator should send a single "e" character from the TUT which will result in
sending a single DTMF tone to the tester. The tester will immediately start sending a
unique character sequence using single DTMF tones. Examination of the TUT
display will show when its receiver is re-enabled.
- Pass criteria: The receiver should be re-enabled after 300 ms.
+ Pass criteria: The receiver should be re-enabled after 300ms.
*/
v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_05_put_text_msg, NULL);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
+ span_log_set_tag(logging, "Tester");
v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_05_put_text_msg, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
exit(2);
}
- result[0] = '\0';
+ result[0][0] = '\0';
v18_put(v18[0], "e", 1);
for (i = 0; i < 1000; i++)
v18_free(v18[0]);
v18_free(v18[1]);
ref = "knqtwz";
- printf("Result:\n%s\n", result);
+ printf("Result:\n%s\n", result[0]);
printf("Reference result:\n%s\n", ref);
- if (strcmp(result, ref) != 0)
+ if (strcmp(result[0], ref) != 0)
return -1;
return 0;
}
static void x_06_put_text_msg(void *user_data, const uint8_t *msg, int len)
{
- strcat(result, (const char *) msg);
+ if (user_data == NULL)
+ else
+ strcat(result[1], (const char *) msg);
}
/*- End of function --------------------------------------------------------*/
after each one. Each character should be responded to at the TUT by typing the
same character.
Pass criteria: The tester will verify that each character is correctly echoed back by the TUT.
- Comments: The conversion table is specified in Annex B. The receiver at the tester may be re-
- enabled 100 ms after transmission of each character to maximize likelihood of
+ Comments: The conversion table is specified in Annex B. The receiver at the tester may be
+ re-enabled 100ms after transmission of each character to maximize likelihood of
receiving character from the TUT. It is assumed that the echo delay in the test
system is negligible.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_06_put_text_msg, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_06_put_text_msg, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_06_put_text_msg, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
exit(2);
}
- result[0] = '\0';
for (i = 0; i < 127; i++)
msg[i] = i + 1;
msg[127] = '\0';
printf("Original:\n%s\n", msg);
- v18_encode_dtmf(NULL, dtmf, msg);
- printf("DTMF:\n%s\n", dtmf);
- v18_decode_dtmf(NULL, result, dtmf);
-
+ result[0][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
v18_rx(v18[1], model_amp[0], samples);
}
- ref = "\b \n\n\n?\n\n\n %+().+,-.0123456789:;(=)"
- "?XABCDEFGHIJKLMNOPQRSTUVWXYZ\xC6\xD8\xC5"
+ ref = "\b \n\n\n?\n\n\n !%+().+,-.0123456789:;(=)?"
+ "XABCDEFGHIJKLMNOPQRSTUVWXYZ\xC6\xD8\xC5"
" abcdefghijklmnopqrstuvwxyz\xE6\xF8\xE5 \b";
- printf("Result:\n%s\n", result);
+ printf("Result:\n%s\n", result[0]);
printf("Reference result:\n%s\n", ref);
v18_free(v18[0]);
v18_free(v18[1]);
- if (strcmp(result, ref) != 0)
+ if (strcmp(result[1], ref) != 0)
return -1;
return 0;
}
/*- End of function --------------------------------------------------------*/
+static void x_07_put_text_msg(void *user_data, const uint8_t *msg, int len)
+{
+}
+/*- End of function --------------------------------------------------------*/
+
static int test_x_07(void)
{
- v18_state_t *v18[2];
logging_state_t *logging;
int16_t amp[2][SAMPLES_PER_CHUNK];
int16_t model_amp[2][SAMPLES_PER_CHUNK];
/*
III.5.4.5.7 EDT carrier timing and receiver disabling
- Purpose: To verify that the TUT sends unmodulated carrier for 300 ms before a character and
- disables its receiver for 300 ms after a character is transmitted.
+ Purpose: To verify that the TUT sends unmodulated carrier for 300ms before a character and
+ disables its receiver for 300ms after a character is transmitted.
Preamble: Establish a call between the tester and TUT in EDT mode.
Method: The operator should send a single character from the TUT. The tester will
immediately start sending a unique character sequence. Examination of the TUT
display will show when its receiver is re-enabled.
- Pass criteria: 1) The TUT should send unmodulated carrier for 300 ms before the beginning of
+ Pass criteria: 1) The TUT should send unmodulated carrier for 300ms before the beginning of
the start bit.
- 2) The receiver should be re-enabled after 300 ms.
+ 2) The receiver should be re-enabled after 300ms.
3) The tester will confirm that 1 start bit and at least 1.5 stop bits are used.
- Comments: The carrier should be maintained during the 300 ms after a character.
+ Comments: The carrier should be maintained during the 300ms after a character.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_07_put_text_msg, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_07_put_text_msg, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
}
/*- End of function --------------------------------------------------------*/
+static void x_08_put_text_msg(void *user_data, const uint8_t *msg, int len)
+{
+}
+/*- End of function --------------------------------------------------------*/
+
static int test_x_08(void)
{
- v18_state_t *v18[2];
logging_state_t *logging;
int16_t amp[2][SAMPLES_PER_CHUNK];
int16_t model_amp[2][SAMPLES_PER_CHUNK];
2) The tester should confirm that 1 start bit, 7 data bits, 1 even parity bit and 2 stop
bits are used.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_08_put_text_msg, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_08_put_text_msg, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
}
/*- End of function --------------------------------------------------------*/
+static void x_09_put_text_msg(void *user_data, const uint8_t *msg, int len)
+{
+}
+/*- End of function --------------------------------------------------------*/
+
static int test_x_09(void)
{
- v18_state_t *v18[2];
logging_state_t *logging;
int16_t amp[2][SAMPLES_PER_CHUNK];
int16_t model_amp[2][SAMPLES_PER_CHUNK];
that there are no duplicate characters on the TUT display.
3) The received string should be correctly displayed despite the incorrect parity.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_09_put_text_msg, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_09_put_text_msg, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
}
/*- End of function --------------------------------------------------------*/
+static void x_10_put_text_msg(void *user_data, const uint8_t *msg, int len)
+{
+}
+/*- End of function --------------------------------------------------------*/
+
static int test_x_10(void)
{
- v18_state_t *v18[2];
logging_state_t *logging;
int16_t amp[2][SAMPLES_PER_CHUNK];
int16_t model_amp[2][SAMPLES_PER_CHUNK];
Comments: This test is only applicable to Minitel Dialogue terminals. Prestel and Minitel
Normal terminals cannot operate in this mode.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_10_put_text_msg, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_10_put_text_msg, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
}
/*- End of function --------------------------------------------------------*/
+static void x_11_put_text_msg(void *user_data, const uint8_t *msg, int len)
+{
+}
+/*- End of function --------------------------------------------------------*/
+
static int test_x_11(void)
{
- v18_state_t *v18[2];
logging_state_t *logging;
int16_t amp[2][SAMPLES_PER_CHUNK];
int16_t model_amp[2][SAMPLES_PER_CHUNK];
4) The last five characters on the TUT display should be "12345" (no "6")
correctly displayed despite the incorrect parity.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_11_put_text_msg, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_11_put_text_msg, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
}
/*- End of function --------------------------------------------------------*/
+static void x_12_put_text_msg(void *user_data, const uint8_t *msg, int len)
+{
+}
+/*- End of function --------------------------------------------------------*/
+
static int test_x_12(void)
{
- v18_state_t *v18[2];
logging_state_t *logging;
int16_t amp[2][SAMPLES_PER_CHUNK];
int16_t model_amp[2][SAMPLES_PER_CHUNK];
Pass criteria: The tester should confirm UTF8 encoded UNICODE characters are used with the
controls specified in ITU-T T.140.
*/
- v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ v18[0] = v18_init(NULL, TRUE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_12_put_text_msg, (void *) (intptr_t) 0);
logging = v18_get_logging_state(v18[0]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "A");
- v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, NULL, NULL);
+ span_log_set_tag(logging, "Tester");
+ v18[1] = v18_init(NULL, FALSE, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_12_put_text_msg, (void *) (intptr_t) 1);
logging = v18_get_logging_state(v18[1]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
- span_log_set_tag(logging, "B");
+ span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
(float) noise_level,
printf("Test not found\n");
exit(2);
}
- basic_tests(V18_MODE_5BIT_45);
- basic_tests(V18_MODE_5BIT_45 | 0x100);
+ basic_tests(V18_MODE_5BIT_4545);
+ basic_tests(V18_MODE_5BIT_4545 | V18_MODE_REPETITIVE_SHIFTS_OPTION);
if (log_audio)
{
if (sf_close_telephony(outhandle))