Attended transfer

Please help me in configuring asterisk to allow attended transfer. I am using Asterisk 1.4.1and mitel 5224 phone.

The call scenario would be:

An inbound call from PSTN phone A to mitel 5224, answer the call at mitel 5224 then put on hold PSTN phone A from mitel 5224 and initiate a call from mitel 5224 to PSTN phone B then bring the call between mitel 5224 and PSTN phone B to a 3-way call with PSTN phone A. mitel 5224 hangs-up then the call between PSTN phone A and PSTN phone B should stays up as opposed to ending the call.

here’s my features.conf:

[general]
parkext => 700 ; What extension to dial to park
parkpos => 701-720 ; What extensions to park calls on. These needs to be
; numeric, as Asterisk starts from the start pos ition
; and increments with one for the next parked ca ll.
context => parkedcalls ; Which context parked calls are in
parkingtime => 100 ; Number of seconds a call can be parked for
; (default is 45 seconds)
;courtesytone = beep ; Sound file to play to the parked caller
; when someone dials a parked call
; or the Touch Monitor is activated/deactivated.
parkedplay = both ; Who to play the courtesy tone to when picking up a parked call
; one of: parked, caller, both (default is call er)
;adsipark = yes ; if you want ADSI parking announcements
;findslot => next ; Continue to the ‘next’ free parking space.
; Defaults to ‘first’ available
;parkedmusicclass=default ; This is the MOH class to use for the parked ch annel
; as long as the class is not set on the channel directly
; using Set(CHANNEL(musicclass)=whatever) in the dialplan

;transferdigittimeout => 3 ; Number of seconds to wait between digits when transferring a call
; (default is 3 seconds)
xfersound = beep ; to indicate an attended transfer is complete
xferfailsound = beeperr ; to indicate a failed transfer
pickupexten = *8 ; Configure the pickup extension. (default is *8 )
featuredigittimeout = 500 ; Max time (ms) between digits for
; feature activation (default is 500 ms)
atxfernoanswertimeout = 15 ; Timeout for answer on attended transfer defaul t is 15 seconds.

[featuremap]
blindxfer => #1 ; Blind transfer (default is #)
disconnect => *0 ; Disconnect (default is *)
automon => *1 ; One Touch Record a.k.a. Touch Monitor
atxfer => *2 ; Attended transfer
parkcall => #72 ; Park call (one step parking)

[applicationmap]
; Note that the DYNAMIC_FEATURES channel variable must be set to use the feature s
; defined here. The value of DYNAMIC_FEATURES should be the names of the featur es
; to allow the channel to use separated by ‘#’. For example:
;
; Set(DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3)
;
;
; The syntax for declaring a dynamic feature is the following:
;
; => <DTMF_sequence>,[/],[,[,MOH_Class]]
;
; FeatureName -> This is the name of the feature used in when setting the
; DYNAMIC_FEATURES variable to enable usage of this feature.
; DTMF_sequence -> This is the key sequence used to activate this feature.
; ActivateOn -> This is the channel of the call that the application will be executed
; on. Valid values are “self” and “peer”. “self” means run the
; application on the same channel that activated the feature. “peer”
; means run the application on the opposite channel from the o ne that
; has activated the feature.
; ActivatedBy -> This is which channel is allowed to activate this feature. V alid
; values are “caller”, “callee”, and “both”. “both” is the def ault.
; The “caller” is the channel that executed the Dial applicati on, while
; the “callee” is the channel called by the Dial application.
; Application -> This is the application to execute.
; AppArguments -> These are the arguments to be passed into the application.
; MOH_Class -> This is the music on hold class to play while the idle
; channel waits for the feature to complete. If left blank,
; no music will be played.
;
;
; IMPORTANT NOTE: The applicationmap is not intended to be used for all Asterisk
; applications. When applications are used in extensions.conf, they are execut ed
; by the PBX core. In this case, these applications are executed outside of th e
; PBX core, so it does not make sense to use any application which has any
; concept of dialplan flow. Examples of this would be things like Macro, Goto,
; Background, WaitExten, and many more.
;
; Enabling these features means that the PBX needs to stay in the media flow and
; media will not be re-directed if DTMF is sent in the media stream.
;
; Example Usage:
;
;testfeature => #9,peer,Playback,tt-monkeys ;Allow both the caller and callee t o play
; ;tt-monkeys to the opposite channel
;
;pauseMonitor => #1,self/callee,Pausemonitor ;Allow the callee to pause mo nitoring
; ;on their channel
;unpauseMonitor => #3,self/callee,UnPauseMonitor ;Allow the callee to unpause monitoring
; ;on their channel
;
[root@asterisk asterisk]# vi features.conf
[root@asterisk asterisk]# cat features.conf
;
; Sample Call Features (parking, transfer, etc) configuration
;

[general]
parkext => 700 ; What extension to dial to park
parkpos => 701-720 ; What extensions to park calls on. These needs to be
; numeric, as Asterisk starts from the start position
; and increments with one for the next parked call.
context => parkedcalls ; Which context parked calls are in
parkingtime => 100 ; Number of seconds a call can be parked for
; (default is 45 seconds)
;courtesytone = beep ; Sound file to play to the parked caller
; when someone dials a parked call
; or the Touch Monitor is activated/deactivated.
parkedplay = both ; Who to play the courtesy tone to when picking up a parked call
; one of: parked, caller, both (default is caller)
;adsipark = yes ; if you want ADSI parking announcements
;findslot => next ; Continue to the ‘next’ free parking space.
; Defaults to ‘first’ available
;parkedmusicclass=default ; This is the MOH class to use for the parked channel
; as long as the class is not set on the channel directly
; using Set(CHANNEL(musicclass)=whatever) in the dialplan

;transferdigittimeout => 3 ; Number of seconds to wait between digits when transferring a call
; (default is 3 seconds)
xfersound = beep ; to indicate an attended transfer is complete
xferfailsound = beeperr ; to indicate a failed transfer
pickupexten = *8 ; Configure the pickup extension. (default is *8)
featuredigittimeout = 500 ; Max time (ms) between digits for
; feature activation (default is 500 ms)
atxfernoanswertimeout = 15 ; Timeout for answer on attended transfer default is 15 seconds.

[featuremap]
blindxfer => #1 ; Blind transfer (default is #)
disconnect => *0 ; Disconnect (default is *)
automon => *1 ; One Touch Record a.k.a. Touch Monitor
atxfer => *2 ; Attended transfer
parkcall => #72 ; Park call (one step parking)

[applicationmap]
; Note that the DYNAMIC_FEATURES channel variable must be set to use the features
; defined here. The value of DYNAMIC_FEATURES should be the names of the features
; to allow the channel to use separated by ‘#’. For example:
;
; Set(DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3)
;
;
; The syntax for declaring a dynamic feature is the following:
;
; => <DTMF_sequence>,[/],[,[,MOH_Class]]
;
; FeatureName -> This is the name of the feature used in when setting the
; DYNAMIC_FEATURES variable to enable usage of this feature.
; DTMF_sequence -> This is the key sequence used to activate this feature.
; ActivateOn -> This is the channel of the call that the application will be executed
; on. Valid values are “self” and “peer”. “self” means run the
; application on the same channel that activated the feature. “peer”
; means run the application on the opposite channel from the one that
; has activated the feature.
; ActivatedBy -> This is which channel is allowed to activate this feature. Valid
; values are “caller”, “callee”, and “both”. “both” is the default.
; The “caller” is the channel that executed the Dial application, while
; the “callee” is the channel called by the Dial application.
; Application -> This is the application to execute.
; AppArguments -> These are the arguments to be passed into the application.
; MOH_Class -> This is the music on hold class to play while the idle
; channel waits for the feature to complete. If left blank,
; no music will be played.
;
;
; IMPORTANT NOTE: The applicationmap is not intended to be used for all Asterisk
; applications. When applications are used in extensions.conf, they are executed
; by the PBX core. In this case, these applications are executed outside of the
; PBX core, so it does not make sense to use any application which has any
; concept of dialplan flow. Examples of this would be things like Macro, Goto,
; Background, WaitExten, and many more.
;
; Enabling these features means that the PBX needs to stay in the media flow and
; media will not be re-directed if DTMF is sent in the media stream.
;
; Example Usage:
;
;testfeature => #9,peer,Playback,tt-monkeys ;Allow both the caller and callee to play
; ;tt-monkeys to the opposite channel
;
;pauseMonitor => #1,self/callee,Pausemonitor ;Allow the callee to pause monitoring
; ;on their channel
;unpauseMonitor => #3,self/callee,UnPauseMonitor ;Allow the callee to unpause monitoring
; ;on their channel
;

Any help is greatly appreciated.

Does any body have experienced the 3-way call transfer yet?

Are you sure Asterisk can do three way calls using the features attended transfer mechanism? I cannot see any code in a more recent features.c that would do conference bridging or set up a call to one of the conferencing applications.

Hi

Mitels Sip firmware is at best basic, The sets are designed to run minet, the feature set when loaded as sip is poor, From memory xfer issues was a big reason I didnt progress in using them.

Ian
www.cyber-cottage.co.uk

I assumed, because of the mixed technologies, that it was a features transfer. If it is a SIP transfers, then the the three way calling is done by the SIP phone and Asterisk is completely unaware that it is happening, unless and until, the call is finally transferred.

If it is a features transfer, the phone shouldn’t really matter. If it is a SIP transfer, 3 way operation is purely up to the phone.

Ok from the back of my memory,

the # key cannot be used as a lead digit… and to transfer as a sip transfer you need multiple lines programmed.

For the time and effort involved its better to get a true sip compliant handset.

Ian

I have tried using an xlite client instead of mitel phone but the 3-way call transfer is not completing. The call ended when hangs-up on the xlite phone.

X-Lite has a flawed SIP implementation; it cannot handle re-invites, but doesn’t reject them in the proper way.

Also, if you really mean X-Lite, I don’t believe that it supports SIP attended transfers, for commercial reason. I seem to remember that you need to buy Eyebeam for that, and that, too, has problems with re-invites. (Actually, my copy of X-Lite doesn’t support any sort of SIP transfer.)

Polycoms seem to have reasonably good SIP transfer implementations, although I’ve never tried them 3 way.

To be specific, does asterisk can handle the 3-way call transfer? Or if it is handled by a sip phone, does anybody tried successfully 3-way call transfer using any sip phone on asterisk?

All,

Thank you for your replies. I have resolved the 3-way call transfer by using a mitel 5340 phone with sip protocol. I didn’t changed any config on asterisk.