Features
The Asterisk core provides a set of features that once enabled can be activated through DTMF codes(feature codes)
features.conf
xfersound = beep ; to indicate an attended transfer is complete
xferfailsound = beeperr ; to indicate a failed transfer
transferretrysound = "beep" ; Sound to play when a transferer fails to dial a valid extension.
transferinvalidsound = "beeperr" ; Sound to play when a transferer fails to dial a valid extension and is out of retries.
; One-touch
[featuremap]
blindxfer => #1 ; Blind transfer (T / t)
atxfer => *2 ; Attended transfer (T / t)
automixmon = *3 ; X / x
parkcall = #72 ; K and/or k option
Dial or Queue applications options
Make sure ? in the Dial() or Queue()
automixmon
X - Allow the calling party to enable recording of the call.
x - Allow the called party to enable recording of the call.
parkcall
K - Allow the calling party to enable parking of the call.
k - Allow the called party to enable parking of the call.
Built-in Dynamic Features
Set the parking time of this channel to be 100 seconds if it is parked.
exten => s,1,Set(FEATURE(parkingtime)=100)
same => n,Dial(SIP/100)
same => n,Hangup()
Set the DTMF sequence for attended transfer on this channel to *9.
exten => s,1,Set(FEATUREMAP(atxfer)=*9)
same => n,Dial(SIP/100,,T)
same => n,Hangup()
boxA*CLI> features show
Builtin Feature Default Current
--------------- ------- -------
Pickup *8 *8
Blind Transfer # #
Attended Transfer
One Touch Monitor
Disconnect Call * *
Park Call
One Touch MixMonitor
Dynamic Feature Default Current
--------------- ------- -------
(none)
Feature Groups:
---------------
(none)
boxA*CLI> core reload
> AutoMixMonitor used to record call. Filename: auto-1440579175-507-508.wav
== Begin MixMonitor Recording PJSIP/508-00000032
Call Transfers
same = n,Dial(PJSIP/${EXTEN},30,txk)
res_parking.conf
Park Call
features.conf
parkcall = #72 ; K and/or k option
extensions.conf
same = n,Dial(PJSIP/${EXTEN},30,k)
include => parkedcalls
res_parking.conf
[default]
parkext => 700 ; What extension to dial to park. (optional)
parkpos => 701-720 ; What range of parking spaces to use
context => parkedcalls ; Which context parked calls and the default park
parkingtime => 45 ; Number of seconds a call can be parked before returning
log
-- Channel PJSIP/508-00000034 left 'simple_bridge' basic-bridge <7a875563-a98a-42ce-a358-9349827789ef>
-- Parking 'PJSIP/508-00000034' in 'default' at space 701
-- Channel PJSIP/508-00000034 joined 'holding_bridge' parking-bridge <b962b7f2-1524-4244-9dfa-8bc8b00f831a>
-- Started music on hold, class 'default', on channel 'PJSIP/508-00000034'
-- <PJSIP/507-00000035> Playing 'digits/7.slin' (language 'en')
-- <PJSIP/507-00000035> Playing 'digits/0.slin' (language 'en')
-- <PJSIP/507-00000035> Playing 'digits/1.slin' (language 'en')
-- Channel PJSIP/507-00000035 left 'simple_bridge' basic-bridge <7a875563-a98a-42ce-a358-9349827789ef>
boxA*CLI> parking show default
Parking Lot: default
--------------------------------------------------------------------------
Parking Extension : 700
Parking Context : parkedcalls
Parking Spaces : 701-720
Parking Time : 45 sec
Comeback to Origin : yes
Comeback Context : parkedcallstimeout (comebacktoorigin=yes, not used)
Comeback Dial Time : 30 sec
MusicOnHold Class :
Enabled : yes
Dynamic : no
Parked Calls
------------
Space : 701
Channel : PJSIP/508-00000034
Parker Dial String : PJSIP/507
# get call
boxA*CLI>
-- Executing [701@internal:1] ParkedCall("PJSIP/509-0000003c", "default,701") in new stack
> 0x7f067c0155b0 -- Probation passed - setting RTP source address to 192.168.88.171:20000
-- Channel PJSIP/508-0000003a left 'holding_bridge' parking-bridge <b962b7f2-1524-4244-9dfa-8bc8b00f831a>
-- Stopped music on hold on PJSIP/508-0000003a
-- Channel PJSIP/508-0000003a joined 'simple_bridge' basic-bridge <f75cd372-8362-4c2f-b9e4-254a68c547fb>
-- Channel PJSIP/509-0000003c joined 'simple_bridge' basic-bridge <f75cd372-8362-4c2f-b9e4-254a68c547fb>
> Bridge f75cd372-8362-4c2f-b9e4-254a68c547fb: switching from simple_bridge technology to native_rtp
ParkedCall
Used to connect to a parked call.
ParkedCall(exten)