]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 19301 via svnmerge from
authorKevin P. Fleming <kpfleming@digium.com>
Tue, 11 Apr 2006 20:11:36 +0000 (20:11 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Tue, 11 Apr 2006 20:11:36 +0000 (20:11 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r19301 | kpfleming | 2006-04-11 15:11:01 -0500 (Tue, 11 Apr 2006) | 2 lines

handle call time limit properly when warning is requested _after_ call would hae already ended (issue #6356)

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@19302 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_dial.c

index e2eb2b80b1bf5a1412375a1d64058d742ad9c429..0ee6e3f8be0cf2c4f39a9277393a7212bb4c6ba7 100644 (file)
@@ -841,6 +841,21 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
                        ast_log(LOG_WARNING, "Dial does not accept L(%s), hanging up.\n", limit_str);
                        LOCAL_USER_REMOVE(u);
                        return -1;
+               } else if (play_warning > timelimit) {
+                       /* If the first warning is requested _after_ the entire call would end,
+                          and no warning frequency is requested, then turn off the warning. If
+                          a warning frequency is requested, reduce the 'first warning' time by
+                          that frequency until it falls within the call's total time limit.
+                       */
+
+                       if (!warning_freq) {
+                               play_warning = 0;
+                       } else {
+                               while (play_warning > timelimit)
+                                       play_warning -= warning_freq;
+                               if (play_warning < 1)
+                                       play_warning = warning_freq = 0;
+                       }
                }
 
                var = pbx_builtin_getvar_helper(chan,"LIMIT_PLAYAUDIO_CALLER");