aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authordvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2009-03-03 23:39:25 +0000
committerdvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2009-03-03 23:39:25 +0000
commit07459cbf1faaf0ad8ea6f77547984f29428424f8 (patch)
tree16af6c4f812902736c27225a8c589afc1fcb192b /include
parentea97fc8339ea75afb8dae68cba5e82453b87140a (diff)
Merged revisions 180032 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r180032 | dvossel | 2009-03-03 17:21:18 -0600 (Tue, 03 Mar 2009) | 14 lines app_read does not break from prompt loop with user terminated empty string In app.c, ast_app_getdata is called to stream the prompts and receive DTMF input. If ast_app_getdata() receives an empty string caused by the user inputing the end of string character, in this case '#', it should break from the prompt loop and return to app_read, but instead it cycles through all the prompts. I've added a return value for this special case in ast_readstring() which uses an enum I've delcared in apps.h. This enum is now used as a return value for ast_app_getdata(). (closes issue #14279) Reported by: Marquis Patches: fix_app_read.patch uploaded by Marquis (license 32) read-ampersanmd.patch2 uploaded by dvossel (license 671) Tested by: Marquis, dvossel Review: http://reviewboard.digium.com/r/177/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.1@180080 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include')
-rw-r--r--include/asterisk/app.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/asterisk/app.h b/include/asterisk/app.h
index bc61aa561..4951169ec 100644
--- a/include/asterisk/app.h
+++ b/include/asterisk/app.h
@@ -204,6 +204,16 @@ int ast_play_and_record(struct ast_channel *chan, const char *playfile, const ch
'silencethreshold' or use '-1' for either or both parameters for defaults. */
int ast_play_and_prepend(struct ast_channel *chan, char *playfile, char *recordfile, int maxtime_sec, char *fmt, int *duration, int beep, int silencethreshold, int maxsilence_ms);
+enum ast_getdata_result {
+ AST_GETDATA_FAILED = -1,
+ AST_GETDATA_COMPLETE = 0,
+ AST_GETDATA_TIMEOUT = 1,
+ AST_GETDATA_INTERRUPTED = 2,
+ /*! indicates a user terminated empty string rather than an empty string resulting
+ * from a timeout or other factors */
+ AST_GETDATA_EMPTY_END_TERMINATED = 3,
+};
+
enum AST_LOCK_RESULT {
AST_LOCK_SUCCESS = 0,
AST_LOCK_TIMEOUT = -1,