]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Add test events for time limit-related hangups
authorKinsey Moore <kmoore@digium.com>
Tue, 18 Dec 2012 17:35:18 +0000 (17:35 +0000)
committerKinsey Moore <kmoore@digium.com>
Tue, 18 Dec 2012 17:35:18 +0000 (17:35 +0000)
This patch adds hangup-related test events in order to support testing
of time-limited bridges. This aids in testing the S() and L() bridge
options.

(issue SWP-4713)

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

main/channel.c

index 42c9267c3363062e719912abd0ea5133438b0f1f..839397640ea4443402e447b55cfe18cac320d7e0 100644 (file)
@@ -72,6 +72,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/global_datastores.h"
 #include "asterisk/data.h"
 #include "asterisk/features.h"
+#include "asterisk/test.h"
 
 #ifdef HAVE_EPOLL
 #include <sys/epoll.h>
@@ -3212,6 +3213,7 @@ struct ast_channel *ast_waitfor_nandfds(struct ast_channel **c, int n, int *fds,
                                now = ast_tvnow();
                        diff = ast_tvsub(c[x]->whentohangup, now);
                        if (diff.tv_sec < 0 || ast_tvzero(diff)) {
+                               ast_test_suite_event_notify("HANGUP_TIME", "Channel: %s", c[x]->name);
                                /* Should already be hungup */
                                c[x]->_softhangup |= AST_SOFTHANGUP_TIMEOUT;
                                ast_channel_unlock(c[x]);
@@ -3280,6 +3282,7 @@ struct ast_channel *ast_waitfor_nandfds(struct ast_channel **c, int n, int *fds,
                now = ast_tvnow();
                for (x = 0; x < n; x++) {
                        if (!ast_tvzero(c[x]->whentohangup) && ast_tvcmp(c[x]->whentohangup, now) <= 0) {
+                               ast_test_suite_event_notify("HANGUP_TIME", "Channel: %s", c[x]->name);
                                c[x]->_softhangup |= AST_SOFTHANGUP_TIMEOUT;
                                if (winner == NULL)
                                        winner = c[x];
@@ -7533,6 +7536,7 @@ enum ast_bridge_result ast_channel_bridge(struct ast_channel *c0, struct ast_cha
                                        bridge_playfile(c1, c0, config->end_sound, 0);
                                *fo = NULL;
                                res = 0;
+                               ast_test_suite_event_notify("BRIDGE_TIMELIMIT", "Channel1: %s\r\nChannel2: %s", c0->name, c1->name);
                                break;
                        }