Summary:ASTERISK-16050: SIP attended transfer broken
Reporter:David Vossel (dvossel)Labels:
Date Opened:2010-05-04 11:08:54Date Closed:2010-05-10 11:00:32
Versions:Frequency of
Description:SIP attended transfers are broken in trunk.  If an attended transfer is attempted, right as the transferer hangs up to connect the two calls all the calls are terminated.  It doesn't matter if it is a semi-attended transfer or not.

So A calls B.  A transfers B to C.  right as A hangs up to connect B and C (regardless if C has picked up yet or not) all the calls terminate. This is easy to reproduce.


Note this is not using the dial feature attended transfer, this is specific to sip.  The dial feature works correctly.

This currently appears to be isolated to Trunk.
Comments:By: David Woolley (davidw) 2010-05-04 12:22:52

If you hangup in a SIP attended transfer, Asterisk has no way of knowing that it is a transfer.  You definitely need the SIP debugging output to prove that the the phone converts a hangup into REFER/Replaces.

Until the transfer is completed with an explicit REFER/Replaces, it will look like two different calls to Asterisk.

By: Digium Subversion (svnbot) 2010-05-05 14:13:57

Repository: asterisk
Revision: 261316

U   trunk/channels/chan_sip.c

r261316 | dvossel | 2010-05-05 14:13:57 -0500 (Wed, 05 May 2010) | 10 lines

fixes sip native transfer

The Refer-To header field containing the Replaces header in the URI
was not being decoded properly.  This caused invalid parsing between
the caller id field and the domain resulting in a failed transfer.

(closes issue ASTERISK-16050)
Reported by: dvossel