fbaa9a0cc0192968545e9c0e83ae6206df6d794a
[asterisk/asterisk.git] / configs / features.conf.sample
1 ;
2 ; Sample Call Features (parking, transfer, etc) configuration
3 ;
4
5 [general]
6 parkext => 700                  ; What extension to dial to park.  Set per parking lot.
7 ;parkext_exclusive=yes          ; Specify that the parkext created for this parking lot
8                                 ; will only access this parking lot. (default is no)
9 parkpos => 701-720              ; What extensions to park calls on. (defafult parking lot)
10                                 ; These need to be numeric, as Asterisk starts from the start position
11                                 ; and increments with one for the next parked call.
12                                 ; Set per parking lot.
13 context => parkedcalls          ; Which context parked calls are in (default parking lot)
14                                 ; Set per parking lot.
15 ;parkinghints = no              ; Add hints priorities automatically for parking slots (default is no).
16                                 ; Set per parking lot.
17 ;parkingtime => 45              ; Number of seconds a call can be parked before returning.
18                                 ; Set per parking lot. (default is 45 seconds)
19
20 ;comebacktoorigin = yes         ; Setting this option configures the behavior of call parking when the
21                                 ; parked call times out (See the parkingtime option).  The default value is 'yes'.
22                                 ; Set per parking lot.
23                                 ;
24                                 ; 'yes' - When the parked call times out, attempt to send the call back to the peer
25                                 ;         that parked this call. This is done by saving off the name of the channel
26                                 ;         that parked the call. The call will return to the context 'park-dial' and
27                                 ;         an extension created based on the name of the channel that originally parked
28                                 ;         the call.  This extension will be created automatically to do a Dial() to the
29                                 ;         device that originally parked the call for comebacktodialtime seconds. If the
30                                 ;         call is not answered, the call will proceed to the next priority (usually none
31                                 ;         unless you deliberately set up a catch-all second priority in the park-call
32                                 ;         context) in the dialplan for extension matching the peer name (same as how
33                                 ;         peer names are flattened into extensions when comebacktoorigin is 'no').
34                                 ;
35                                 ; 'no'  - This option is useful for performing custom dialplan functionality prior to
36                                 ;         sending the call back to the extension that initially parked the call, or to
37                                 ;         an entirely different destination.
38                                 ;
39                                 ;         When the parked call times out, send it back to the dialplan.  The location
40                                 ;         will be defined by the comebackcontext option. The extension will be built from
41                                 ;         the saved channel name that parked the call. For example, if a SIP peer named
42                                 ;         '0004F2040001' parked this call, the extension will be 'SIP_0004F2040001'.
43                                 ;         (Note that an underscore is used here because the '/' character has a special
44                                 ;         meaning in extension names for CallerID matching.)  If this extension does not
45                                 ;         exist, the call will be sent to the 's' extension, instead.  Finally, if the 's'
46                                 ;         extension of 'parkedcallstimeout' does not exist, the call will fall back to the
47                                 ;         's' extension of the 'default' context.
48                                 ;
49                                 ;         Additionally, in this example an extension of 'SIP_0004F2040001' will be
50                                 ;         created in the 'park-dial' context.  This extension will be set up to do a
51                                 ;         Dial() to 'SIP/0004F2040001'.
52                                 ;
53                                 ;         During the timeout procedure, the following variables are set
54                                 ;         PARKINGSLOT - extension that the call was parked in prior to timing out
55                                 ;         PARKEDLOT - name of the lot that the call was parked in prior to timing out
56                                 ;         PARKER - name of the device that parked the call
57
58 ;comebackdialtime = 30          ; When a parked call times out, this is the number of seconds to dial the device that
59                                 ; originally parked the call.  It is also available as a channel variable COMEBACKDIALTIME
60                                 ; after a parked call has timed out.
61                                 ; The default value is 30 seconds.
62                                 ; Set per parking lot.
63
64 ;comebackcontext = parkedcallstimeout
65                                 ; The context a timed out call will return to if comebcktoorigin=no.
66                                 ; The default value is 'parkedcallstimeout'.
67                                 ; Set per parking lot.
68
69 ;courtesytone = beep            ; Sound file to play to when someone picks up a parked call
70                                 ; and also when the Touch Monitor is activated/deactivated.
71                                 ; Default is no tone.
72 ;parkedplay = caller            ; Who to play courtesytone to when picking up a parked call.
73                                 ; One of: parked, caller, both  (default is caller)
74                                 ; Operates on all parking lots.
75 ;parkedcalltransfers = caller   ; Enables or disables DTMF based transfers when picking up a parked call.
76                                 ; one of: callee, caller, both, no (default is no)
77                                 ; Set per parking lot.
78 ;parkedcallreparking = caller   ; Enables or disables DTMF based parking when picking up a parked call.
79                                 ; one of: callee, caller, both, no (default is no)
80                                 ; Set per parking lot.
81 ;parkedcallhangup = caller      ; Enables or disables DTMF based hangups when picking up a parked call.
82                                 ; one of: callee, caller, both, no (default is no)
83                                 ; Set per parking lot.
84 ;parkedcallrecording = caller   ; Enables or disables DTMF based one-touch recording when picking up a parked call.
85                                 ; one of: callee, caller, both, no (default is no)
86                                 ; Set per parking lot.
87 ;parkeddynamic = yes            ; Enables dynamically created parkinglots. (default is no)
88                                 ; Operates on all parking lots.
89 ;adsipark = yes                 ; if you want ADSI parking announcements
90                                 ; Operates on all parking lots.
91 ;findslot => next               ; Continue to the 'next' free parking space.
92                                 ; Defaults to 'first' available
93                                 ; Set per parking lot.
94 ;parkedmusicclass=default       ; This is the MOH class to use for the parked channel
95                                 ; as long as the class is not set on the channel directly
96                                 ; using Set(CHANNEL(musicclass)=whatever) in the dialplan
97                                 ; Set per parking lot.
98
99 ;transferdigittimeout => 3      ; Number of seconds to wait between digits when transferring a call
100                                 ; (default is 3 seconds)
101 ;xfersound = beep               ; to indicate an attended transfer is complete
102 ;xferfailsound = beeperr        ; to indicate a failed transfer
103 ;pickupexten = *8               ; Configure the pickup extension. (default is *8)
104 ;pickupsound = beep             ; to indicate a successful pickup (default: no sound)
105 ;pickupfailsound = beeperr      ; to indicate that the pickup failed (default: no sound)
106 ;featuredigittimeout = 1000     ; Max time (ms) between digits for
107                                 ; feature activation  (default is 1000 ms)
108 ;recordingfailsound = beeperr   ; indicates that a one-touch monitor or one-touch mixmonitor feature failed
109                                                                 ; to be applied to the call. (default: no sound)
110 ;atxfernoanswertimeout = 15     ; Timeout for answer on attended transfer default is 15 seconds.
111 ;atxferdropcall = no            ; If someone does an attended transfer, then hangs up before the transferred
112                                 ; caller is connected, then by default, the system will try to call back the
113                                 ; person that did the transfer.  If this is set to "yes", the callback will
114                                 ; not be attempted and the transfer will just fail.
115                                 ; For atxferdropcall=no to work properly, you also need to
116                                 ; define ATXFER_NULL_TECH in main/features.c.  The reason the
117                                 ; code is not enabled by default is spelled out in the comment
118                                 ; block near the top of main/features.c describing ATXFER_NULL_TECH.
119 ;atxferloopdelay = 10           ; Number of seconds to sleep between retries (if atxferdropcall = no)
120 ;atxfercallbackretries = 2      ; Number of times to attempt to send the call back to the transferer.
121                                 ; By default, this is 2.
122
123 ;
124 ;*** Define another parking lot
125 ;
126 ; You can set parkinglot with the CHANNEL dialplan function
127 ; or by setting 'parkinglot' directly in the channel configuration file.
128 ;
129 ; (Note: Leading '0's and any non-numerical characters on parkpos extensions
130 ;  will be ignored.  Parkext on the other hand can be any string.)
131 ;
132 ;[parkinglot_edvina]
133 ;context => edvinapark
134 ;parkext => 799
135 ;parkpos => 800-850
136 ;findslot => next
137 ;comebacktoorigin = no
138 ;comebackdialtime = 90
139 ;comebackcontext = edvinapark-timeout ; Make sure you create the context!
140 ;parkedmusicclass = edvina
141
142 ; Note that the DTMF features listed below only work when two channels have answered and are bridged together.
143 ; They can not be used while the remote party is ringing or in progress. If you require this feature you can use
144 ; chan_local in combination with Answer to accomplish it.
145
146
147 [featuremap]
148 ;blindxfer => #1                ; Blind transfer  (default is #) -- Make sure to set the T and/or t option in the Dial() or Queue() app call!
149 ;disconnect => *0               ; Disconnect  (default is *) -- Make sure to set the H and/or h option in the Dial() or Queue() app call!
150 ;automon => *1                  ; One Touch Record a.k.a. Touch Monitor -- Make sure to set the W and/or w option in the Dial() or Queue() app call!
151 ;atxfer => *2                   ; Attended transfer  -- Make sure to set the T and/or t option in the Dial() or Queue()  app call!
152 ;parkcall => #72                ; Park call (one step parking)  -- Make sure to set the K and/or k option in the Dial() app call!
153 ;automixmon => *3               ; One Touch Record a.k.a. Touch MixMonitor -- Make sure to set the X and/or x option in the Dial() or Queue() app call!
154
155 [applicationmap]
156 ; Note that the DYNAMIC_FEATURES channel variable must be set to use the features
157 ; defined here.  The value of DYNAMIC_FEATURES should be the names of the features
158 ; to allow the channel to use separated by '#'.  For example:
159 ;
160 ;    Set(__DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3)
161 ;
162 ; (Note: The two leading underscores allow these feature settings to be set
163 ;  on the outbound channels, as well.  Otherwise, only the original channel
164 ;  will have access to these features.)
165 ;
166 ; The syntax for declaring a dynamic feature is any of the following:
167 ;
168 ;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>[,<AppArguments>[,MOH_Class]]
169 ;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>[,"<AppArguments>"[,MOH_Class]]
170 ;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>([<AppArguments>])[,MOH_Class]
171
172 ;
173 ;  FeatureName   -> This is the name of the feature used when setting the
174 ;                   DYNAMIC_FEATURES variable to enable usage of this feature.
175 ;  DTMF_sequence -> This is the key sequence used to activate this feature.
176 ;  ActivateOn    -> This is the channel of the call that the application will be executed
177 ;                   on. Valid values are "self" and "peer". "self" means run the
178 ;                   application on the same channel that activated the feature. "peer"
179 ;                   means run the application on the opposite channel from the one that
180 ;                   has activated the feature.
181 ;  ActivatedBy   -> ActivatedBy is no longer honored.  The feature is activated by which
182 ;                   channel DYNAMIC_FEATURES includes the feature is on.  Use predial
183 ;                   to set different values of DYNAMIC_FEATURES on the channels.
184 ;                   Historic values are: "caller", "callee", and "both".
185 ;  Application   -> This is the application to execute.
186 ;  AppArguments  -> These are the arguments to be passed into the application.  If you need
187 ;                   commas in your arguments, you should use either the second or third
188 ;                   syntax, above.
189 ;  MOH_Class     -> This is the music on hold class to play while the idle
190 ;                   channel waits for the feature to complete. If left blank,
191 ;                   no music will be played.
192 ;
193
194 ;
195 ; IMPORTANT NOTE: The applicationmap is not intended to be used for all Asterisk
196 ;   applications. When applications are used in extensions.conf, they are executed
197 ;   by the PBX core. In this case, these applications are executed outside of the
198 ;   PBX core, so it does *not* make sense to use any application which has any
199 ;   concept of dialplan flow. Examples of this would be things like Goto,
200 ;   Background, WaitExten, and many more.  The exceptions to this are Gosub and
201 ;   Macro routines which must complete for the call to continue.
202 ;
203 ; Enabling these features means that the PBX needs to stay in the media flow and
204 ; media will not be re-directed if DTMF is sent in the media stream.
205 ;
206 ; Example Usage:
207 ;
208 ;testfeature => #9,peer,Playback,tt-monkeys  ;Allow both the caller and callee to play
209 ;                                            ;tt-monkeys to the opposite channel
210 ;
211 ; Set arbitrary channel variables, based upon CALLERID number (Note that the application
212 ; argument contains commas)
213 ;retrieveinfo => #8,peer,Set(ARRAY(CDR(mark),CDR(name))=${ODBC_FOO(${CALLERID(num)})})
214 ;
215 ;pauseMonitor   => #1,self/callee,Pausemonitor     ;Allow the callee to pause monitoring
216 ;                                                  ;on their channel
217 ;unpauseMonitor => #3,self/callee,UnPauseMonitor   ;Allow the callee to unpause monitoring
218 ;                                                  ;on their channel
219
220 ; Dynamic Feature Groups:
221 ;   Dynamic feature groups are groupings of features defined in [applicationmap]
222 ;   that can have their own custom key mappings.  To give a channel access to a dynamic
223 ;   feature group, add the group name to the value of the DYNAMIC_FEATURES variable.
224 ;
225 ; example:
226 ; [myGroupName]         ; defines the group named myGroupName
227 ; testfeature => #9     ; associates testfeature with the group and the keycode '#9'.
228 ; pauseMonitor =>       ; associates pauseMonitor with the group and uses the keycode specified
229 ;                       ; in the [applicationmap].