aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authordvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2009-03-26 21:09:37 +0000
committerdvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2009-03-26 21:09:37 +0000
commit782f8f6efb3c6c58c2b39eb3d7757d8a8016bae2 (patch)
tree8fed6088ee94a7e05f55d49f4fb91779c661eb35 /apps
parentd5a43c815ac5e71501e15b8d82967cb8d672a537 (diff)
Merged revisions 184388 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r184388 | dvossel | 2009-03-26 16:07:32 -0500 (Thu, 26 Mar 2009) | 8 lines pri loop TestClient/TestServer fails: server SEND DTMF 8 app_test was failing when sending the last DTMF digit, 8, because of the 100ms pause issued after DTMF is sent. During this pause the other side would hang up causing the test to look like it failed. Now the other side waits a second before hanging up. (closes issue #12442) Reported by: tzafrir ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@184389 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r--apps/app_test.c55
1 files changed, 28 insertions, 27 deletions
diff --git a/apps/app_test.c b/apps/app_test.c
index 205571ffe..76a953f0c 100644
--- a/apps/app_test.c
+++ b/apps/app_test.c
@@ -132,7 +132,7 @@ static int measurenoise(struct ast_channel *chan, int ms, char *who)
return (noise / samples);
}
-static int sendnoise(struct ast_channel *chan, int ms)
+static int sendnoise(struct ast_channel *chan, int ms)
{
int res;
res = ast_tonepair_start(chan, 1537, 2195, ms, 8192);
@@ -140,7 +140,7 @@ static int sendnoise(struct ast_channel *chan, int ms)
res = ast_waitfordigit(chan, ms);
ast_tonepair_stop(chan);
}
- return res;
+ return res;
}
static int testclient_exec(struct ast_channel *chan, void *data)
@@ -150,41 +150,41 @@ static int testclient_exec(struct ast_channel *chan, void *data)
char fn[80];
char serverver[80];
FILE *f;
-
+
/* Check for test id */
if (ast_strlen_zero(testid)) {
ast_log(LOG_WARNING, "TestClient requires an argument - the test id\n");
return -1;
}
-
+
if (chan->_state != AST_STATE_UP)
res = ast_answer(chan);
-
+
/* Wait a few just to be sure things get started */
res = ast_safe_sleep(chan, 3000);
/* Transmit client version */
if (!res)
res = ast_dtmf_stream(chan, NULL, "8378*1#", 0, 0);
ast_debug(1, "Transmit client version\n");
-
+
/* Read server version */
ast_debug(1, "Read server version\n");
- if (!res)
+ if (!res)
res = ast_app_getdata(chan, NULL, serverver, sizeof(serverver) - 1, 0);
if (res > 0)
res = 0;
ast_debug(1, "server version: %s\n", serverver);
-
+
if (res > 0)
res = 0;
if (!res)
res = ast_safe_sleep(chan, 1000);
/* Send test id */
- if (!res)
- res = ast_dtmf_stream(chan, NULL, testid, 0, 0);
- if (!res)
- res = ast_dtmf_stream(chan, NULL, "#", 0, 0);
+ if (!res)
+ res = ast_dtmf_stream(chan, NULL, testid, 0, 0);
+ if (!res)
+ res = ast_dtmf_stream(chan, NULL, "#", 0, 0);
ast_debug(1, "send test identifier: %s\n", testid);
if ((res >=0) && (!ast_strlen_zero(testid))) {
@@ -198,7 +198,7 @@ static int testclient_exec(struct ast_channel *chan, void *data)
fprintf(f, "CLIENTTEST ID: %s\n", testid);
fprintf(f, "ANSWER: PASS\n");
res = 0;
-
+
if (!res) {
/* Step 1: Wait for "1" */
ast_debug(1, "TestClient: 2. Wait DTMF 1\n");
@@ -209,8 +209,9 @@ static int testclient_exec(struct ast_channel *chan, void *data)
else
res = -1;
}
- if (!res)
+ if (!res) {
res = ast_safe_sleep(chan, 1000);
+ }
if (!res) {
/* Step 2: Send "2" */
ast_debug(1, "TestClient: 2. Send DTMF 2\n");
@@ -226,7 +227,7 @@ static int testclient_exec(struct ast_channel *chan, void *data)
fprintf(f, "WAIT 1 SEC: %s\n", (res < 0) ? "FAIL" : "PASS");
if (res > 0)
res = 0;
- }
+ }
if (!res) {
/* Step 4: Measure noise */
ast_debug(1, "TestClient: 4. Measure noise\n");
@@ -272,7 +273,7 @@ static int testclient_exec(struct ast_channel *chan, void *data)
}
if (!res) {
/* Step 9: Measure noise */
- ast_debug(1, "TestClient: 6. Measure tone\n");
+ ast_debug(1, "TestClient: 9. Measure tone\n");
res = measurenoise(chan, 4000, "TestClient");
fprintf(f, "MEASURETONE: %s (%d)\n", (res < 0) ? "FAIL" : "PASS", res);
if (res > 0)
@@ -280,7 +281,7 @@ static int testclient_exec(struct ast_channel *chan, void *data)
}
if (!res) {
/* Step 10: Send "7" */
- ast_debug(1, "TestClient: 7. Send DTMF 7\n");
+ ast_debug(1, "TestClient: 10. Send DTMF 7\n");
res = ast_dtmf_stream(chan, NULL, "7", 0, 0);
fprintf(f, "SEND DTMF 7: %s\n", (res < 0) ? "FAIL" : "PASS");
if (res > 0)
@@ -297,6 +298,9 @@ static int testclient_exec(struct ast_channel *chan, void *data)
res = -1;
}
if (!res) {
+ res = ast_safe_sleep(chan, 1000);
+ }
+ if (!res) {
/* Step 12: Hangup! */
ast_debug(1, "TestClient: 12. Hangup\n");
}
@@ -324,7 +328,7 @@ static int testserver_exec(struct ast_channel *chan, void *data)
res = ast_answer(chan);
/* Read version */
ast_debug(1, "Read client version\n");
- if (!res)
+ if (!res)
res = ast_app_getdata(chan, NULL, testid, sizeof(testid) - 1, 0);
if (res > 0)
res = 0;
@@ -338,8 +342,8 @@ static int testserver_exec(struct ast_channel *chan, void *data)
if (res > 0)
res = 0;
- if (!res)
- res = ast_app_getdata(chan, NULL, testid, sizeof(testid) - 1, 0);
+ if (!res)
+ res = ast_app_getdata(chan, NULL, testid, sizeof(testid) - 1, 0);
ast_debug(1, "read test identifier: %s\n", testid);
/* Check for sneakyness */
if (strchr(testid, '/'))
@@ -391,7 +395,6 @@ static int testserver_exec(struct ast_channel *chan, void *data)
if (res > 0)
res = 0;
}
-
if (!res) {
/* Step 5: Wait one second */
ast_debug(1, "TestServer: 5. Wait one second\n");
@@ -400,7 +403,6 @@ static int testserver_exec(struct ast_channel *chan, void *data)
if (res > 0)
res = 0;
}
-
if (!res) {
/* Step 6: Measure noise */
ast_debug(1, "TestServer: 6. Measure tone\n");
@@ -409,7 +411,6 @@ static int testserver_exec(struct ast_channel *chan, void *data)
if (res > 0)
res = 0;
}
-
if (!res) {
/* Step 7: Send "5" */
ast_debug(1, "TestServer: 7. Send DTMF 5\n");
@@ -418,14 +419,13 @@ static int testserver_exec(struct ast_channel *chan, void *data)
if (res > 0)
res = 0;
}
-
if (!res) {
/* Step 8: Transmit tone noise */
ast_debug(1, "TestServer: 8. Transmit tone\n");
res = sendnoise(chan, 6000);
fprintf(f, "SENDTONE: %s\n", (res < 0) ? "FAIL" : "PASS");
}
-
+
if (!res || (res == '7')) {
/* Step 9: Wait for "7" */
ast_debug(1, "TestServer: 9. Wait DTMF 7\n");
@@ -437,8 +437,9 @@ static int testserver_exec(struct ast_channel *chan, void *data)
else
res = -1;
}
- if (!res)
+ if (!res) {
res = ast_safe_sleep(chan, 1000);
+ }
if (!res) {
/* Step 10: Send "8" */
ast_debug(1, "TestServer: 10. Send DTMF 8\n");
@@ -474,7 +475,7 @@ static int unload_module(void)
res = ast_unregister_application(testc_app);
res |= ast_unregister_application(tests_app);
- return res;
+ return res;
}
static int load_module(void)