Attended transfer/3-way call transfer

attended transfer
by ipvirg » 02 Nov 2009 16:57

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
;

Have you permitted transfers in the diailplan?

1.4.1 is very old and buggy.

Yes. And call transfer works but the 3-way call transfer that is failing.

Does asterisk supports 3-way call transfer?

He stuttered on the posting and these got covered on the other copy. I think we believe that there is no features support for 3 way calling. Also, there are reports that the phone doesn’t handle feature prefixes or SIP (in the phone) three way calling well. A good SIP phone can do three way calling, but Asterisk will see this as two, independant calls.