summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xapp.c6
-rwxr-xr-xinclude/asterisk/pbx.h7
-rwxr-xr-xpbx.c5
3 files changed, 11 insertions, 7 deletions
diff --git a/app.c b/app.c
index 943681312..4c4cfab8b 100755
--- a/app.c
+++ b/app.c
@@ -21,6 +21,7 @@
#include <unistd.h>
#include <dirent.h>
#include <asterisk/channel.h>
+#include <asterisk/pbx.h>
#include <asterisk/file.h>
#include <asterisk/app.h>
#include <asterisk/dsp.h>
@@ -40,8 +41,9 @@ int ast_app_getdata(struct ast_channel *c, char *prompt, char *s, int maxlen, in
if (res < 0)
return res;
}
- fto = 6000;
- to = 2000;
+ fto = c->pbx ? c->pbx->rtimeout * 1000 : 6000;
+ to = c->pbx ? c->pbx->dtimeout * 1000 : 2000;
+
if (timeout > 0) fto = to = timeout;
if (timeout < 0) fto = to = 1000000000;
res = ast_readstring(c, s, maxlen, to, fto, "#");
diff --git a/include/asterisk/pbx.h b/include/asterisk/pbx.h
index fa2c5131b..f86793e92 100755
--- a/include/asterisk/pbx.h
+++ b/include/asterisk/pbx.h
@@ -68,6 +68,13 @@ struct ast_switch {
int (*matchmore)(struct ast_channel *chan, char *context, char *exten, int priority, char *callerid, char *data);
};
+struct ast_pbx {
+ int dtimeout; /* Timeout between digits (seconds) */
+ int rtimeout; /* Timeout for response
+ (seconds) */
+};
+
+
//! Register an alternative switch
/*!
* \param sw switch to register
diff --git a/pbx.c b/pbx.c
index a0c58fad9..9d7ea64b8 100755
--- a/pbx.c
+++ b/pbx.c
@@ -50,11 +50,6 @@
struct ast_context;
-struct ast_pbx {
- int dtimeout; /* Timeout between digits (seconds) */
- int rtimeout; /* Timeout for response (seconds) */
-};
-
/* An extension */
struct ast_exten {
char exten[AST_MAX_EXTENSION];