#define SAMPLES_PER_CHUNK 160
+#define CHUNKS_PER_SECOND 50
+
+#define TESTER 0
+#define TUT 1
+
int log_audio = false;
SNDFILE *outhandle = NULL;
char result[2][1024];
both_ways_line_model_state_t *model;
int rbs_pattern = 0;
-float noise_level = -70.0f;
int line_model_no = 0;
+#if 0
+float echo_level_cpe1 = -15.0f;
+float echo_level_co1 = -15.0f;
+float echo_level_cpe2 = -15.0f;
+float echo_level_co2 = -15.0f;
+#else
+float echo_level_cpe1 = -99.0f;
+float echo_level_co1 = -99.0f;
+float echo_level_cpe2 = -99.0f;
+float echo_level_co2 = -99.0f;
+#endif
+float noise_level = -70.0f;
int channel_codec = MUNGE_CODEC_NONE;
v18_state_t *v18[2];
int j;
printf("Testing %s\n", v18_mode_to_str(mode));
- v18[0] = v18_init(NULL, true, mode, V18_AUTOMODING_GLOBAL, put_text_msg, NULL);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, mode, V18_AUTOMODING_GLOBAL, put_text_msg, NULL);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
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]);
+ v18[TUT] = v18_init(NULL, false, mode, V18_AUTOMODING_GLOBAL, put_text_msg, NULL);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
/* Fake an OK condition for the first message test */
good_message_received = true;
push = 0;
- if (v18_put(v18[0], qbf_tx, -1) != strlen(qbf_tx))
+ if (v18_put(v18[TESTER], qbf_tx, -1) != strlen(qbf_tx))
{
printf("V.18 put failed\n");
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
if (push == 0)
{
- if ((samples = v18_tx(v18[0], amp[0], SAMPLES_PER_CHUNK)) == 0)
+ if ((samples = v18_tx(v18[TESTER], amp[0], SAMPLES_PER_CHUNK)) == 0)
push = 10;
}
else
exit(2);
}
good_message_received = false;
- if (v18_put(v18[0], qbf_tx, -1) != strlen(qbf_tx))
+ if (v18_put(v18[TESTER], qbf_tx, -1) != strlen(qbf_tx))
{
printf("V.18 put failed\n");
exit(2);
vec_zeroi16(&[0][samples], SAMPLES_PER_CHUNK - samples);
samples = SAMPLES_PER_CHUNK;
}
- if ((samples = v18_tx(v18[1], amp[1], SAMPLES_PER_CHUNK)) == 0)
+ if ((samples = v18_tx(v18[TUT], amp[1], SAMPLES_PER_CHUNK)) == 0)
push = 10;
if (samples < SAMPLES_PER_CHUNK)
{
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
}
/*- End of function --------------------------------------------------------*/
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, misc_01_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_01_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_01_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_01_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, misc_02_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_02_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_02_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_02_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, misc_03_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_03_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_03_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_03_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, misc_04_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_04_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_04_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_04_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, misc_05_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_05_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_05_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_05_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, misc_06_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_06_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_06_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_06_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, misc_07_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_07_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_07_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_07_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, misc_08_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_08_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_08_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_08_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Pass criteria: TBD
Comment: TBD
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_09_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_09_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_09_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, misc_09_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_01_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_01_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_01_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_01_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_02_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_02_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_02_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_02_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_03_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_03_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_03_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_03_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_04_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_04_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_04_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_04_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_05_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_05_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_05_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_05_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_06_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_06_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_06_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_06_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_07_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_07_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_07_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_07_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_08_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_08_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_08_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_08_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_09_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_09_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_09_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_09_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_10_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_10_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_10_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_10_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Comments: The TUT should indicate that V.23 mode has been selected at least 3s after
the start of the 390Hz tone.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_11_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_11_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_11_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_11_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_12_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_12_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_12_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_12_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_13_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_13_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_13_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_13_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_14_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_14_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_14_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_14_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_15_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_15_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_15_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_15_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_16_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_16_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_16_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_16_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Pass criteria: TUT should not respond to the 980Hz tone and resume sending CI signals after a
maximum of 2.4s from the end of the 980Hz tone.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_17_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_17_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_17_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_17_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Comments: This implies timer Tr has expired 2s after the start of the 980Hz tone and
then 1650Hz has been detected for 0.5s.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_18_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_18_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_18_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_18_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_19_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_19_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_19_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_19_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_20_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_20_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_20_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_20_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_21_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_21_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_21_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_21_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_22_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_22_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_22_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_22_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_23_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_23_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_23_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_23_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_24_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_24_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_24_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_24_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, org_25_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_25_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_25_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, org_25_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
answers the call. It will then monitor for any signal.
Pass criteria: The TUT should start probing 3s after answering the call.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_01_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_01_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_01_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_01_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_02_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_02_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_02_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_02_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_03_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_03_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_03_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_03_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Pass criteria: The TUT should start probing 3s 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, ans_04_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_04_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_04_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_04_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_05_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_05_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_05_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_05_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Pass criteria: TUT should respond with 390Hz after 1.7(+0.2-0.0)s 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, ans_06_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_06_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_06_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_06_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_07_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_07_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_07_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_07_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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.56s.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_08_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_08_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_08_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_08_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
700ms followed by 1s 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, ans_09_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_09_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_09_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_09_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Pass criteria: The TUT should respond with a 1650Hz tone in 1.5+-0.1s.
Comments: The TUT should indicate that V.21 mode has been selected.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_10_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_10_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_10_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_10_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_11_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_11_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_11_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_11_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
(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, ans_12_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_12_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_12_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_12_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_13_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_13_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_13_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_13_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Comments: It is assumed that timer Ta (3s) is restarted on re-entering the Monitor A
state.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_14_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_14_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_14_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_14_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_15_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_15_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_15_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_15_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_16_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_16_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_16_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_16_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Pass criteria: TUT should respond with 2225Hz tone after 0.7+-0.1s.
Comments: The TUT should indicate that Bell 103 mode has been selected.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_17_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_17_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_17_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_17_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_18_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_18_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_18_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_18_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Pass criteria: The TUT should respond with 980Hz after 0.4+-0.2s.
Comments: The TUT should indicate that V.21 mode has been selected.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_19_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_19_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_19_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_19_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
700ms followed by 1s 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, ans_20_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_20_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_20_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_20_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Pass criteria: The TUT should respond with 390Hz after 1.7+-0.1s.
Comments: The TUT should indicate that V.23 mode has been selected.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_21_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_21_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_21_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_21_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_22_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_22_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_22_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_22_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_23_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_23_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_23_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_23_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
modes followed by a pause of Tm (default 3)s.
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, ans_24_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_24_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_24_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_24_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Pass criteria: The TUT should transmit silence on detecting the 1270Hz tone and then continue
probing starting with the V.23 probe 20s after the end of the 1270Hz signal.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_25_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_25_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_25_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_25_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_26_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_26_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_26_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_26_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_27_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_27_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_27_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_27_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
Comments: It is most likely that the TUT will return to probing time Ta (3s) after the
1270Hz tone ceases. This condition needs further clarification.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_28_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_28_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_28_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_28_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_29_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_29_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_29_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_29_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_30_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_30_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_30_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_30_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_31_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_31_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_31_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_31_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_32_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_32_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_32_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_32_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, ans_33_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_33_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_33_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, ans_33_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
for 1 minute.
Pass criteria: The TUT should not start probing.
*/
- v18[0] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, mon_21_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, mon_21_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, mon_21_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, mon_21_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, mon_22_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, mon_22_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, mon_22_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, mon_22_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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, mon_23_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, mon_23_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, mon_23_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, mon_23_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
{
printf("1-1 %d '%s'\n", len, msg);
if (user_data == NULL)
- strcat(result[1], (const char *) msg);
+ strcat(result[TUT], (const char *) msg);
else
- v18_put(v18[1], "abcdefghij", 10);
+ v18_put(v18[TUT], "abcdefghij", 10);
}
/*- End of function --------------------------------------------------------*/
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 300ms after a character.
*/
- 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]);
+ v18[TESTER] = 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[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
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]);
+ v18[TUT] = 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[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
- v18_put(v18[0], "zabcdefghijklmnopq", -1);
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
+ v18_put(v18[TESTER], "zabcdefghijklmnopq", -1);
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
ref = "cdefghij";
- printf("Result:\n%s\n", result[1]);
+ printf("Result:\n%s\n", result[TUT]);
printf("Reference result:\n%s\n", ref);
- if (unexpected_echo || strcmp(result[1], ref) != 0)
+ if (unexpected_echo || strcmp(result[TUT], 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_4545, V18_AUTOMODING_GLOBAL, x_02_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_5BIT_4545, V18_AUTOMODING_GLOBAL, x_02_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_5BIT_4545, V18_AUTOMODING_GLOBAL, x_02_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_5BIT_4545, V18_AUTOMODING_GLOBAL, x_02_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
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_4545, V18_AUTOMODING_USA, x_03_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_5BIT_4545, V18_AUTOMODING_USA, x_03_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_5BIT_4545, V18_AUTOMODING_USA, x_03_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_5BIT_4545, V18_AUTOMODING_USA, x_03_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 1;
}
{
if (user_data == NULL)
{
- strcat(result[0], (const char *) msg);
+ strcat(result[TESTER], (const char *) msg);
printf("Unexpected ECHO received (%d) '%s'\n", len, msg);
unexpected_echo = true;
}
else
{
printf("1-1 %d '%s'\n", len, msg);
- strcat(result[1], (const char *) msg);
+ strcat(result[TUT], (const char *) msg);
/* Echo each received character */
- //v18_put(v18[1], msg, len);
+ //v18_put(v18[TUT], msg, len);
}
}
/*- 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_4545 | V18_MODE_REPETITIVE_SHIFTS_OPTION, V18_AUTOMODING_GLOBAL, x_04_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_5BIT_4545 | V18_MODE_REPETITIVE_SHIFTS_OPTION, V18_AUTOMODING_GLOBAL, x_04_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "Tester");
- v18[1] = v18_init(NULL, false, V18_MODE_5BIT_4545 | V18_MODE_REPETITIVE_SHIFTS_OPTION, V18_AUTOMODING_GLOBAL, x_04_put_text_msg, (void *) (intptr_t) 1);
- logging = v18_get_logging_state(v18[1]);
+ v18[TUT] = v18_init(NULL, false, V18_MODE_5BIT_4545 | V18_MODE_REPETITIVE_SHIFTS_OPTION, V18_AUTOMODING_GLOBAL, x_04_put_text_msg, (void *) (intptr_t) 1);
+ logging = v18_get_logging_state(v18[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
unexpected_echo = false;
for (i = 0; i < 127; i++)
msg[i] = i + 1;
msg[127] = '\0';
- v18_put(v18[0], msg, 127);
+ v18_put(v18[TESTER], msg, 127);
for (i = 0; i < 2000; i++)
{
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
- printf("Result:\n%s\n", result[0]);
- printf("Result:\n%s\n", result[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
+ printf("Result:\n%s\n", result[TESTER]);
+ printf("Result:\n%s\n", result[TUT]);
printf("Reference result:\n%s\n", full_baudot_rx);
- if (unexpected_echo || strcmp(result[1], full_baudot_rx) != 0)
+ if (unexpected_echo || strcmp(result[TUT], full_baudot_rx) != 0)
return -1;
return 0;
}
{
/* Gather the received characters, which should be like the transmitted characters,
but with the first three characters missing. */
- strcat(result[0], (const char *) msg);
+ strcat(result[TESTER], (const char *) msg);
}
else
{
/* Receiving a character from the far end should block out its receiver
for a while. If we send a stream of DTMF back, the first few characters
(actually 3 for this particular text string) should be lost. */
- v18_put(v18[1], "behknqtwz", 9);
+ v18_put(v18[TUT], "behknqtwz", 9);
}
}
/*- End of function --------------------------------------------------------*/
display will show when its receiver is re-enabled.
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, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = v18_init(NULL, true, V18_MODE_DTMF, V18_AUTOMODING_GLOBAL, x_05_put_text_msg, (void *) (intptr_t) 0);
+ logging = v18_get_logging_state(v18[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
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]);
+ v18[TUT] = 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[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
/* Sending a character should block out the receiver for a while */
- v18_put(v18[0], "z", 1);
+ v18_put(v18[TESTER], "z", 1);
for (i = 0; i < 1000; i++)
{
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
ref = "knqtwz";
- printf("Result:\n%s\n", result[0]);
+ printf("Result:\n%s\n", result[TESTER]);
printf("Reference result:\n%s\n", ref);
- if (strcmp(result[0], ref) != 0)
+ if (strcmp(result[TESTER], ref) != 0)
return -1;
return 0;
}
if (user_data == NULL)
;
else
- strcat(result[1], (const char *) msg);
+ strcat(result[TUT], (const char *) msg);
}
/*- End of function --------------------------------------------------------*/
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, x_06_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = 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[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
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]);
+ v18[TUT] = 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[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 127; i++)
msg[i] = i + 1;
msg[127] = '\0';
- v18_put(v18[0], msg, 127);
+ v18_put(v18[TESTER], msg, 127);
for (i = 0; i < 10000; i++)
{
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
ref = "\b \n\n\n?\n\n\n !%+().+,-.0123456789:;(=)?"
"XABCDEFGHIJKLMNOPQRSTUVWXYZ\xC6\xD8\xC5"
" abcdefghijklmnopqrstuvwxyz\xE6\xF8\xE5 \b";
- printf("Result:\n%s\n", result[0]);
+ printf("Result:\n%s\n", result[TESTER]);
printf("Reference result:\n%s\n", ref);
- v18_free(v18[0]);
- v18_free(v18[1]);
- if (strcmp(result[1], ref) != 0)
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
+ if (strcmp(result[TUT], ref) != 0)
return -1;
return 0;
}
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 300ms after a character.
*/
- 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]);
+ v18[TESTER] = 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[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
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]);
+ v18[TUT] = 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[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 0;
}
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, x_08_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = 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[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
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]);
+ v18[TUT] = 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[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 0;
}
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, x_09_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = 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[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
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]);
+ v18[TUT] = 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[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 0;
}
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, x_10_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = 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[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
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]);
+ v18[TUT] = 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[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 0;
}
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, x_11_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = 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[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
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]);
+ v18[TUT] = 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[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 0;
}
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, x_12_put_text_msg, (void *) (intptr_t) 0);
- logging = v18_get_logging_state(v18[0]);
+ v18[TESTER] = 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[TESTER]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
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]);
+ v18[TUT] = 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[TUT]);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
span_log_set_tag(logging, "TUT");
if ((model = both_ways_line_model_init(line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe1,
+ echo_level_co1,
line_model_no,
- (float) noise_level,
- -15.0f,
- -15.0f,
+ noise_level,
+ echo_level_cpe2,
+ echo_level_co2,
channel_codec,
rbs_pattern)) == NULL)
{
exit(2);
}
- result[0][0] =
- result[1][0] = '\0';
+ result[TESTER][0] =
+ result[TUT][0] = '\0';
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 2; j++)
vec_copyi16(model_amp[0], amp[0], samples);
vec_copyi16(model_amp[1], amp[1], samples);
#endif
- v18_rx(v18[0], model_amp[1], samples);
- v18_rx(v18[1], model_amp[0], samples);
+ v18_rx(v18[TESTER], model_amp[1], samples);
+ v18_rx(v18[TUT], model_amp[0], samples);
}
- v18_free(v18[0]);
- v18_free(v18[1]);
+ v18_free(v18[TESTER]);
+ v18_free(v18[TUT]);
printf("Test not yet implemented\n");
return 0;
}