diff options
author | Richard Mudgett <rmudgett@digium.com> | 2013-09-13 22:19:23 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2013-09-13 22:19:23 +0000 |
commit | 2a371cd80bfb88552d2f42545718da2489e1a5ba (patch) | |
tree | 188cc0f08f5ef185f215cf2d07ea59f5164311f0 /tests/test_cdr.c | |
parent | 03c7857375b475883a81141da05ca2d2376bf066 (diff) |
Restore Dial, Queue, and FollowMe 'I' option support.
The Dial, Queue, and FollowMe applications need to inhibit the bridging
initial connected line exchange in order to support the 'I' option.
* Replaced the pass_reference flag on ast_bridge_join() with a flags
parameter to pass other flags defined by enum ast_bridge_join_flags.
* Replaced the independent flag on ast_bridge_impart() with a flags
parameter to pass other flags defined by enum ast_bridge_impart_flags.
* Since the Dial, Queue, and FollowMe applications are now the only
callers of ast_bridge_call() and ast_bridge_call_with_flags(), changed the
calling contract to require the initial COLP exchange to already have been
done by the caller.
* Made all callers of ast_bridge_impart() check the return value. It is
important. As a precaution, I also made the compiler complain now if it
is not checked.
* Did some cleanup in parking_tests.c as a result of checking the
ast_bridge_impart() return value.
An independent, but associated change is:
* Reduce stack usage in ast_indicate_data() and add a dropping redundant
connected line verbose message.
(closes issue ASTERISK-22072)
Reported by: Joshua Colp
Review: https://reviewboard.asterisk.org/r/2845/
........
Merged revisions 399136 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@399138 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'tests/test_cdr.c')
-rw-r--r-- | tests/test_cdr.c | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/tests/test_cdr.c b/tests/test_cdr.c index 4fd1bdb90..f1e577e76 100644 --- a/tests/test_cdr.c +++ b/tests/test_cdr.c @@ -559,7 +559,7 @@ AST_TEST_DEFINE(test_cdr_outbound_bridged_call) ast_test_validate(test, bridge != NULL); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan_alice, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_alice, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); chan_bob = ast_channel_alloc(0, AST_STATE_DOWN, NULL, NULL, "200", NULL, NULL, ast_channel_linkedid(chan_alice), 0, CHANNEL_TECH_NAME "/Bob"); ast_copy_string(bob_expected.linkedid, ast_channel_linkedid(chan_bob), sizeof(bob_expected.linkedid)); @@ -576,7 +576,7 @@ AST_TEST_DEFINE(test_cdr_outbound_bridged_call) while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan_bob, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_bob, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); @@ -686,7 +686,7 @@ AST_TEST_DEFINE(test_cdr_single_bridge) ast_test_validate(test, bridge != NULL); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); @@ -761,7 +761,7 @@ AST_TEST_DEFINE(test_cdr_single_bridge_continue) ast_test_validate(test, bridge_one != NULL); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge_one, chan, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge_one, chan, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); @@ -844,14 +844,14 @@ AST_TEST_DEFINE(test_cdr_single_twoparty_bridge_a) bridge = ast_bridge_basic_new(); ast_test_validate(test, bridge != NULL); - ast_bridge_impart(bridge, chan_alice, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_alice, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); EMULATE_APP_DATA(chan_bob, 1, "Answer", ""); ast_setstate(chan_bob, AST_STATE_UP); EMULATE_APP_DATA(chan_bob, 2, "Bridge", ""); - ast_bridge_impart(bridge, chan_bob, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_bob, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); ast_bridge_depart(chan_alice); @@ -937,10 +937,10 @@ AST_TEST_DEFINE(test_cdr_single_twoparty_bridge_b) EMULATE_APP_DATA(chan_bob, 2, "Bridge", ""); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan_bob, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_bob, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan_alice, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_alice, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); ast_bridge_depart(chan_alice); @@ -1056,21 +1056,21 @@ AST_TEST_DEFINE(test_cdr_single_multiparty_bridge) ast_test_validate(test, bridge != NULL); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan_alice, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_alice, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); EMULATE_APP_DATA(chan_bob, 1, "Answer", ""); ast_setstate(chan_bob, AST_STATE_UP); EMULATE_APP_DATA(chan_bob, 2, "Bridge", ""); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan_bob, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_bob, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); EMULATE_APP_DATA(chan_charlie, 1, "Answer", ""); ast_setstate(chan_charlie, AST_STATE_UP); EMULATE_APP_DATA(chan_charlie, 2, "Bridge", ""); - ast_bridge_impart(bridge, chan_charlie, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_charlie, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); @@ -1669,8 +1669,8 @@ AST_TEST_DEFINE(test_cdr_dial_answer_twoparty_bridge_a) ast_test_validate(test, bridge != NULL); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan_caller, NULL, NULL, 0); - ast_bridge_impart(bridge, chan_callee, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_caller, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_callee, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); @@ -1743,9 +1743,9 @@ AST_TEST_DEFINE(test_cdr_dial_answer_twoparty_bridge_b) bridge = ast_bridge_basic_new(); ast_test_validate(test, bridge != NULL); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan_callee, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_callee, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan_caller, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_caller, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); ast_bridge_depart(chan_caller); ast_bridge_depart(chan_callee); @@ -1902,18 +1902,18 @@ AST_TEST_DEFINE(test_cdr_dial_answer_multiparty) ast_test_validate(test, bridge != NULL); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_test_validate(test, 0 == ast_bridge_impart(bridge, chan_charlie, NULL, NULL, 0)); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_charlie, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_test_validate(test, 0 == ast_bridge_impart(bridge, chan_david, NULL, NULL, 0)); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_david, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_test_validate(test, 0 == ast_bridge_impart(bridge, chan_bob, NULL, NULL, 0)); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_bob, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_test_validate(test, 0 == ast_bridge_impart(bridge, chan_alice, NULL, NULL, 0)); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_alice, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_test_validate(test, 0 == ast_bridge_depart(chan_alice)); - ast_test_validate(test, 0 == ast_bridge_depart(chan_bob)); - ast_test_validate(test, 0 == ast_bridge_depart(chan_charlie)); - ast_test_validate(test, 0 == ast_bridge_depart(chan_david)); + ast_test_validate(test, !ast_bridge_depart(chan_alice)); + ast_test_validate(test, !ast_bridge_depart(chan_bob)); + ast_test_validate(test, !ast_bridge_depart(chan_charlie)); + ast_test_validate(test, !ast_bridge_depart(chan_david)); HANGUP_CHANNEL(chan_alice, AST_CAUSE_NORMAL); HANGUP_CHANNEL(chan_bob, AST_CAUSE_NORMAL); @@ -1992,9 +1992,9 @@ AST_TEST_DEFINE(test_cdr_park) ast_test_validate(test, bridge != NULL); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan_alice, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_alice, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); - ast_bridge_impart(bridge, chan_bob, NULL, NULL, 0); + ast_test_validate(test, !ast_bridge_impart(bridge, chan_bob, NULL, NULL, AST_BRIDGE_IMPART_CHAN_DEPARTABLE)); while ((nanosleep(&to_sleep, &to_sleep) == -1) && (errno == EINTR)); ast_bridge_depart(chan_alice); ast_bridge_depart(chan_bob); |