[asterisk-bugs] [Asterisk 0009939]: Transfer implementation

noreply at bugs.digium.com noreply at bugs.digium.com
Sat Feb 9 16:35:34 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=9939 
====================================================================== 
Reported By:                wedhorn
Assigned To:                qwell
====================================================================== 
Project:                    Asterisk
Issue ID:                   9939
Category:                   Channels/chan_skinny
Reproducibility:            N/A
Severity:                   feature
Priority:                   normal
Status:                     assigned
Asterisk Version:            SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!): 67843 
Disclaimer on File?:        Yes 
Request Review:              
====================================================================== 
Date Submitted:             06-11-2007 04:33 CDT
Last Modified:              02-09-2008 16:35 CST
====================================================================== 
Summary:                    Transfer implementation
Description: 
Initial patch adding transfer to chan_skinny. Works, but lots of bugs and
more work to be done. Basic functionality is <XFER> to start transfer, puts
call on hold and gives you a dialtone. Dial number and after connected
press <XFER> again and call is transferred.

After first <XFER> press and before call ringing/connected, you can press
<XFER> again to use a blind transfer. In this case transfer occurs when
either channel being dialed indicates ringing or answering. When in blind
transfer you can press <XFER> again to go back to attended transfer.

<HOLD> toggles between the transferee and transferor.
====================================================================== 

---------------------------------------------------------------------- 
 DEA - 02-09-08 16:35  
---------------------------------------------------------------------- 
It turns out the at behaviour was too closely modeled on early Cisco
Call Manager.  It required that the process be:

1.  Press Transfer
2.  Dial the destination
3.  Press Transfer again

This worked for both blind and attended transfers, buit is not exactly
intuitive.  I reworked the code to also support transfering using this
model:

1.  Press Transfer
2.  Dial the destination
3.  Hangup (go on hook or press end call

I also fixed up the call state handling during a transfer that would
have otherwise left the phone thinking it had a call when it did not.
and finally I actually enforced the fact that transfers could be
disabled.
Earlier versions of the patch did not check to see if the line had
transfers
enabled in skinny.conf, now it does.  The default is disabled, so if not
set in the config, transfers will not work.

Tests that pass:
1.  Blind transfer
    a.  Explicit by the second pressing of Transfer
    b.  Implicit by hanging up once the remote leg is ringing
2.  Attended transfer
    a.  Explicit by the second pressing of Transfer
    b.  Implicit by hanging up once the remote leg has answered
3.  Aborting a transfer
    a. The call reverts to the original, but does not take it off hold
       in case you want to select another transfer destination

I also added a warning to be displayed on the phone if a user tries
to use the transfer feature on a line that does not have it enabled, and
I added the Transfer softkey to the offhook-with-features map so that
users can use the method of transfer->dial->transfer for blind transfers. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
02-09-08 16:35  DEA            Note Added: 0081979                          
======================================================================




More information about the asterisk-bugs mailing list