diff options
-rwxr-xr-x | app.c | 6 | ||||
-rwxr-xr-x | include/asterisk/pbx.h | 7 | ||||
-rwxr-xr-x | pbx.c | 5 |
3 files changed, 11 insertions, 7 deletions
@@ -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 @@ -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]; |