[Home]

Summary:ASTERISK-25809: testsuite: tests/bridge/atxfer_fail_blonde fails or can give a false pass
Reporter:Richard Mudgett (rmudgett)Labels:
Date Opened:2016-02-24 17:12:53.000-0600Date Closed:2016-03-31 13:58:50
Priority:MajorRegression?
Status:Closed/CompleteComponents:Tests/General
Versions:Frequency of
Occurrence
Constant
Related
Issues:
Environment:Attachments:( 0) jira_asterisk_25809_testsuite.patch
Description:On my and [~mmichelson]'s test boxes the test simply fails while on Jenkins it seems to always pass.

After looking at the failure on my box there are a couple things I've found:
# The TALK_DETECT channel variable doesn't exist on the channel in the ast2 instance.  Thus there is a dialplan syntax error when the non-existent channel variable is used.
# The test is running afoul of the DTMF attended transfer recall feature.  When the test forces the channel to Charlie to hangup, Asterisk immediately attempts to recall Alice.  Unfortunately, the recall attempt does not work and results in a 404 response code.

Fixing the syntax error to cause an empty TALK_DETECT variable to goto the fail priority causes the test to generate a warning message and erroneously "pass" while not performing the test.

I haven't looked into what is needed to fix the failed recall issue.  Possibly just need to disable the recall feature by setting {{features.conf}} {{atxferdropcall=yes}}.

The testsuite test on my box was run with the v13 sample config files installed.
Comments:By: Richard Mudgett (rmudgett) 2016-02-24 17:15:51.005-0600

[^jira_asterisk_25809_testsuite.patch] - Initial attempt to fix the syntax error by assuming that if the TALK_DETECTED channel variable is empty then no talking is detected.  Unfortunately, this just resulted in a warning message and the test "passing" even though the transfer never happened.

By: Richard Mudgett (rmudgett) 2016-03-31 13:58:50.081-0500

Fix committed in 89a012c6df2caf4ab9085048387be708a521b4f7

Author:     Mark Michelson <mmichelson@digium.com>
AuthorDate: Thu Mar 17 16:44:46 2016 -0500
Commit:     Mark Michelson <mmichelson@digium.com>
CommitDate: Fri Mar 18 09:02:26 2016 -0500

   Fix Failing atxfer_fail_blond test

   There were two issues here:

   First, the TALK_DETECTED variable was not being set by BackgroundDetect.
   This was because the audio being transmitted by Alice was going to Bob
   but not being echoed back to Alice. This is fixed by adjusting Bob's
   dialplan to use Echo() instead of Wait().

   Second, the automatic recall feature for attended transfers was not
   working properly for this test. The problem with the recall is that it's
   possible to call a specific SIP endpoint, but it's not possible to know
   what username to call at that endpoint. So when attempting to recall
   Alice, an INVITE gets sent to an Asterisk instance but there is no way
   for the Asterisk server to know where in the dialplan to send the call.
   This is fixed by simply removing the recall. The test is not intending
   to even test the recall, but to ensure that in a failed blond transfer
   that all channels are properly hung up.

   Change-Id: I8c4175c3abd1cc1d2e71f3a73c3a11ea17436452