]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Multiple revisions 378121,378459
authorMatthew Jordan <mjordan@digium.com>
Thu, 14 Feb 2013 18:46:21 +0000 (18:46 +0000)
committerMatthew Jordan <mjordan@digium.com>
Thu, 14 Feb 2013 18:46:21 +0000 (18:46 +0000)
........
  r378121 | kmoore | 2012-12-18 11:41:35 -0600 (Tue, 18 Dec 2012) | 14 lines

  Add test events for time limit-related hangups

  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)
  ........

  Merged revisions 378119 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........

  Merged revisions 378120 from http://svn.asterisk.org/svn/asterisk/branches/10
........
  r378459 | kmoore | 2013-01-03 12:48:00 -0600 (Thu, 03 Jan 2013) | 10 lines

  Add missing test event

  This test event was missing from channel.c causing the dial_LS_options
  test to fail intermittently because of a race condition where most code
  paths emitted the test event but this one did not. The dial_LS_options
  test should stop bouncing now.
  ........

  Merged revisions 378455 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 378121,378459 from http://svn.asterisk.org/svn/asterisk/branches/11

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

main/channel.c

index da8452003bb8ec755c37d929718556d8f5ea0262..aae9806b6c9f74be841f5c60f425dd19ae5fe94c 100644 (file)
@@ -73,6 +73,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/data.h"
 #include "asterisk/channel_internal.h"
 #include "asterisk/features.h"
+#include "asterisk/test.h"
 
 /*** DOCUMENTATION
  ***/
@@ -602,6 +603,7 @@ int ast_check_hangup(struct ast_channel *chan)
        if (ast_tvdiff_ms(*ast_channel_whentohangup(chan), ast_tvnow()) > 0)            /* no if hangup time has not come yet. */
                return 0;
        ast_debug(4, "Hangup time has come: %" PRIi64 "\n", ast_tvdiff_ms(*ast_channel_whentohangup(chan), ast_tvnow()));
+       ast_test_suite_event_notify("HANGUP_TIME", "Channel: %s", ast_channel_name(chan));
        ast_channel_softhangup_internal_flag_add(chan, AST_SOFTHANGUP_TIMEOUT); /* record event */
        return 1;
 }
@@ -3194,6 +3196,7 @@ struct ast_channel *ast_waitfor_nandfds(struct ast_channel **c, int n, int *fds,
                                now = ast_tvnow();
                        diff = ast_tvsub(*ast_channel_whentohangup(c[x]), now);
                        if (diff.tv_sec < 0 || ast_tvzero(diff)) {
+                               ast_test_suite_event_notify("HANGUP_TIME", "Channel: %s", ast_channel_name(c[x]));
                                /* Should already be hungup */
                                ast_channel_softhangup_internal_flag_add(c[x], AST_SOFTHANGUP_TIMEOUT);
                                ast_channel_unlock(c[x]);
@@ -3267,6 +3270,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(*ast_channel_whentohangup(c[x])) && ast_tvcmp(*ast_channel_whentohangup(c[x]), now) <= 0) {
+                               ast_test_suite_event_notify("HANGUP_TIME", "Channel: %s", ast_channel_name(c[x]));
                                ast_channel_softhangup_internal_flag_add(c[x], AST_SOFTHANGUP_TIMEOUT);
                                if (winner == NULL) {
                                        winner = c[x];
@@ -7891,6 +7895,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", ast_channel_name(c0), ast_channel_name(c1));
                                break;
                        }