Review Board 1.7.16


Voicemail: Remove mailbox identifier format (box@context) assumptions in the system.

Review Request #3072 - Created Dec. 13, 2013 and submitted

rmudgett
12
Reviewers
asterisk-dev
Asterisk
Removed code from the system for normal mailbox handling that appends @default to the mailbox identifier if it does not have a context.  The only exception is the legacy hasvoicemail users.conf option.  The legacy option will only work for app_voicemail mailboxes.  (I'd like to just remove the hasvoicemail option since it is usually superceeded by an explicit mailbox option. :) )  The system cannot make any assumptions about the format of the mailbox identifer used by app_voicemail.

chan_sip and chan_dahdi/sig_pri had the most changes because they both tried to interpret the mailbox identifier.  chan_sip just stored and compared the two components.  chan_dahdi actually used the box information.

The ISDN MWI support configuration options had to be reworked because chan_dahdi was parsing the box@context format to get the box number.  As a result the mwi_vm_boxes chan_dahdi.conf option was added and is documented in the chan_dahdi.conf.sample file.
Tested chan_dahdi to be sure that the new mwi_vm_boxes option parses correctly and sets up mailboxes.
Tested chan_sip to be sure that the mailbox option works.
/branches/12/CHANGES
Revision 404264 New Change
1
==============================================================================
1
==============================================================================
2
===
2
===
3
=== This file documents the new and/or enhanced functionality added in
3
=== This file documents the new and/or enhanced functionality added in
4
=== the Asterisk versions listed below. This file does NOT include
4
=== the Asterisk versions listed below. This file does NOT include
5
=== changes in behavior that would not be backwards compatible with
5
=== changes in behavior that would not be backwards compatible with
6
=== previous versions; for that information see the UPGRADE.txt file
6
=== previous versions; for that information see the UPGRADE.txt file
7
=== and the other UPGRADE files for older releases.
7
=== and the other UPGRADE files for older releases.
8
===
8
===
9
==============================================================================
9
==============================================================================
10

    
   
10

   
11
------------------------------------------------------------------------------
11
------------------------------------------------------------------------------
12
--- Functionality changes from Asterisk 11 to Asterisk 12 --------------------
12
--- Functionality changes from Asterisk 11 to Asterisk 12 --------------------
13
------------------------------------------------------------------------------
13
------------------------------------------------------------------------------
14

    
   
14

   
15
Overview
15
Overview
16
------------------
16
------------------
17

    
   
17

   
18
Asterisk 12 is a standard release of the Asterisk project. As such, the
18
Asterisk 12 is a standard release of the Asterisk project. As such, the
19
focus of development for this release was on core architectural changes and
19
focus of development for this release was on core architectural changes and
20
major new features. This includes:
20
major new features. This includes:
21
 * A more flexible bridging core based on the Bridging API
21
 * A more flexible bridging core based on the Bridging API
22
 * A new internal message bus, Stasis
22
 * A new internal message bus, Stasis
23
 * Major standardization and consistency improvements to AMI
23
 * Major standardization and consistency improvements to AMI
24
 * Addition of the Asterisk RESTful Interface (ARI)
24
 * Addition of the Asterisk RESTful Interface (ARI)
25
 * A new SIP channel driver, chan_pjsip
25
 * A new SIP channel driver, chan_pjsip
26
In addition, as the vast majority of bridging in Asterisk was migrated to the
26
In addition, as the vast majority of bridging in Asterisk was migrated to the
27
Bridging API used by ConfBridge, major changes were made to most of the
27
Bridging API used by ConfBridge, major changes were made to most of the
28
interfaces in Asterisk. This includes not only AMI, but also CDRs and CEL.
28
interfaces in Asterisk. This includes not only AMI, but also CDRs and CEL.
29

    
   
29

   
30
Specifications have been written for the affected interfaces. These
30
Specifications have been written for the affected interfaces. These
31
specifications are available on the Asterisk wiki:
31
specifications are available on the Asterisk wiki:
32
 * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
32
 * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
33
 * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
33
 * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
34
 * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
34
 * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
35

    
   
35

   
36
It is *highly* recommended that anyone migrating to Asterisk 12 read the
36
It is *highly* recommended that anyone migrating to Asterisk 12 read the
37
information regarding its release both in this file and in the accompanying
37
information regarding its release both in this file and in the accompanying
38
UPGRADE.txt file. More detailed information on the major changes can be found
38
UPGRADE.txt file. More detailed information on the major changes can be found
39
on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/0YCLAQ.
39
on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/0YCLAQ.
40

    
   
40

   
41

    
   
41

   
42
Build System
42
Build System
43
------------------
43
------------------
44
 * Added build option DISABLE_INLINE. This option can be used to work around a
44
 * Added build option DISABLE_INLINE. This option can be used to work around a
45
   bug in gcc. For more information, see
45
   bug in gcc. For more information, see
46
   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47816
46
   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47816
47

    
   
47

   
48
 * Removed the CHANNEL_TRACE development mode build option. Certain aspects of
48
 * Removed the CHANNEL_TRACE development mode build option. Certain aspects of
49
   the CHANNEL_TRACE build option were incompatible with the new bridging
49
   the CHANNEL_TRACE build option were incompatible with the new bridging
50
   architecture.
50
   architecture.
51

    
   
51

   
52
 * Asterisk now optionally uses libxslt to improve XML documentation generation
52
 * Asterisk now optionally uses libxslt to improve XML documentation generation
53
   and maintainability. If libxslt is not available on the system, some XML
53
   and maintainability. If libxslt is not available on the system, some XML
54
   documentation will be incomplete.
54
   documentation will be incomplete.
55

    
   
55

   
56
 * Asterisk now depends on libjansson. If a package of libjansson is not
56
 * Asterisk now depends on libjansson. If a package of libjansson is not
57
   available on your distro, please see http://www.digip.org/jansson/.
57
   available on your distro, please see http://www.digip.org/jansson/.
58

    
   
58

   
59
 * Asterisk now depends on libuuid and, optionally, uriparser. It is
59
 * Asterisk now depends on libuuid and, optionally, uriparser. It is
60
   recommended that you install uriparser, even if it is optional.
60
   recommended that you install uriparser, even if it is optional.
61

    
   
61

   
62
 * The new SIP stack and channel driver uses a particular version of PJSIP.
62
 * The new SIP stack and channel driver uses a particular version of PJSIP.
63
   Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
63
   Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
64
   configuring and installing PJSIP for usage with Asterisk.
64
   configuring and installing PJSIP for usage with Asterisk.
65

    
   
65

   
66
 * Optional API was re-implemented to be more portable, and no longer requires
66
 * Optional API was re-implemented to be more portable, and no longer requires
67
   weak reference support from the compiler. The build option OPTIONAL_API may
67
   weak reference support from the compiler. The build option OPTIONAL_API may
68
   be disabled to disable Optional API support.
68
   be disabled to disable Optional API support.
69

    
   
69

   
70
Applications
70
Applications
71
------------------
71
------------------
72

    
   
72

   
73
AgentLogin
73
AgentLogin
74
------------------
74
------------------
75
 * Along with AgentRequest, this application has been modified to be a
75
 * Along with AgentRequest, this application has been modified to be a
76
   replacement for chan_agent. The act of a channel calling the AgentLogin
76
   replacement for chan_agent. The act of a channel calling the AgentLogin
77
   application places the channel into a pool of agents that can be
77
   application places the channel into a pool of agents that can be
78
   requested by the AgentRequest application. Note that this application, as
78
   requested by the AgentRequest application. Note that this application, as
79
   well as all other agent related functionality, is now provided by the
79
   well as all other agent related functionality, is now provided by the
80
   app_agent_pool module. See chan_agent and AgentRequest for more information.
80
   app_agent_pool module. See chan_agent and AgentRequest for more information.
81

    
   
81

   
82
 * This application no longer performs agent authentication. If authentication
82
 * This application no longer performs agent authentication. If authentication
83
   is desired, the dialplan needs to perform this function using the
83
   is desired, the dialplan needs to perform this function using the
84
   Authenticate or VMAuthenticate application or through an AGI script before
84
   Authenticate or VMAuthenticate application or through an AGI script before
85
   running AgentLogin.
85
   running AgentLogin.
86

    
   
86

   
87
 * If this application is called and the agent is already logged in, the
87
 * If this application is called and the agent is already logged in, the
88
   dialplan will continue exection with the AGENT_STATUS channel variable set
88
   dialplan will continue exection with the AGENT_STATUS channel variable set
89
   to ALREADY_LOGGED_IN.
89
   to ALREADY_LOGGED_IN.
90

    
   
90

   
91
 * The agents.conf schema has changed. Rather than specifying agents on a
91
 * The agents.conf schema has changed. Rather than specifying agents on a
92
   single line in comma delineated fashion, each agent is defined in a separate
92
   single line in comma delineated fashion, each agent is defined in a separate
93
   context. This allows agents to use the power of context templates in their
93
   context. This allows agents to use the power of context templates in their
94
   definition.
94
   definition.
95

    
   
95

   
96
 * A number of parameters from agents.conf have been removed. This includes
96
 * A number of parameters from agents.conf have been removed. This includes
97
   maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
97
   maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
98
   urlprefix, and savecallsin. These options were obsoleted by the move from
98
   urlprefix, and savecallsin. These options were obsoleted by the move from
99
   a channel driver model to the bridging/application model provided by
99
   a channel driver model to the bridging/application model provided by
100
   app_agent_pool.
100
   app_agent_pool.
101

    
   
101

   
102
AgentRequest
102
AgentRequest
103
------------------
103
------------------
104
 * A new application, this will request a logged in agent from the pool and
104
 * A new application, this will request a logged in agent from the pool and
105
   bridge the requested channel with the channel calling this application.
105
   bridge the requested channel with the channel calling this application.
106
   Logged in agents are those channels that called the AgentLogin application.
106
   Logged in agents are those channels that called the AgentLogin application.
107
   If an agent cannot be requested from the pool, the AGENT_STATUS dialplan
107
   If an agent cannot be requested from the pool, the AGENT_STATUS dialplan
108
   application will be set with an appropriate error value.
108
   application will be set with an appropriate error value.
109

    
   
109

   
110
AgentMonitorOutgoing
110
AgentMonitorOutgoing
111
------------------
111
------------------
112
 * This application has been removed. It was a holdover from when
112
 * This application has been removed. It was a holdover from when
113
   AgentCallbackLogin was removed.
113
   AgentCallbackLogin was removed.
114

    
   
114

   
115
AlarmReceiver
115
AlarmReceiver
116
------------------
116
------------------
117
 * Added support for additional Ademco DTMF signalling formats, including
117
 * Added support for additional Ademco DTMF signalling formats, including
118
   Express 4+1, Express 4+2, High Speed and Super Fast.
118
   Express 4+1, Express 4+2, High Speed and Super Fast.
119

    
   
119

   
120
 * Added channel variable ALARMRECEIVER_CALL_LIMIT. This sets the maximum
120
 * Added channel variable ALARMRECEIVER_CALL_LIMIT. This sets the maximum
121
   call time, in milliseconds, to run the application.
121
   call time, in milliseconds, to run the application.
122

    
   
122

   
123
 * Added channel variable ALARMRECEIVER_RETRIES_LIMIT. This sets the
123
 * Added channel variable ALARMRECEIVER_RETRIES_LIMIT. This sets the
124
   maximum number of times to retry the call.
124
   maximum number of times to retry the call.
125

    
   
125

   
126
 * Added a new configuration option answait. If set, the AlarmReceiver
126
 * Added a new configuration option answait. If set, the AlarmReceiver
127
   application will wait the number of milliseconds specified by answait
127
   application will wait the number of milliseconds specified by answait
128
   after the channel has answered. Valid values range between 500
128
   after the channel has answered. Valid values range between 500
129
   milliseconds and 10000 milliseconds.
129
   milliseconds and 10000 milliseconds.
130

    
   
130

   
131
 * Added configuration option no_group_meta. If enabled, grouping of metadata
131
 * Added configuration option no_group_meta. If enabled, grouping of metadata
132
   information in the AlarmReceiver log file will be skipped.
132
   information in the AlarmReceiver log file will be skipped.
133

    
   
133

   
134
BridgeWait
134
BridgeWait
135
------------------
135
------------------
136
 * A new application in Asterisk, this will place the calling channel
136
 * A new application in Asterisk, this will place the calling channel
137
   into a holding bridge, optionally entertaining them with some form of
137
   into a holding bridge, optionally entertaining them with some form of
138
   media. Channels participating in a holding bridge do not interact with
138
   media. Channels participating in a holding bridge do not interact with
139
   other channels in the same holding bridge. Optionally, however, a channel
139
   other channels in the same holding bridge. Optionally, however, a channel
140
   may join as an announcer. Any media passed from an announcer channel is
140
   may join as an announcer. Any media passed from an announcer channel is
141
   played to all channels in the holding bridge. Channels leave a holding
141
   played to all channels in the holding bridge. Channels leave a holding
142
   bridge either when an optional timer expires, or via the ChannelRedirect
142
   bridge either when an optional timer expires, or via the ChannelRedirect
143
   application or AMI Redirect action.
143
   application or AMI Redirect action.
144

    
   
144

   
145
ConfBridge
145
ConfBridge
146
------------------
146
------------------
147
 * All participants in a bridge can now be kicked out of a conference room
147
 * All participants in a bridge can now be kicked out of a conference room
148
   by specifying the channel parameter as 'all' in the ConfBridge kick CLI
148
   by specifying the channel parameter as 'all' in the ConfBridge kick CLI
149
   command, i.e., 'confbridge kick <conference> all'
149
   command, i.e., 'confbridge kick <conference> all'
150

    
   
150

   
151
 * CLI output for the 'confbridge list' command has been improved. When
151
 * CLI output for the 'confbridge list' command has been improved. When
152
   displaying information about a particular bridge, flags will now be shown
152
   displaying information about a particular bridge, flags will now be shown
153
   for the participating users indicating properties of that user.
153
   for the participating users indicating properties of that user.
154

    
   
154

   
155
 * The ConfbridgeList event now contains the following fields: WaitMarked,
155
 * The ConfbridgeList event now contains the following fields: WaitMarked,
156
   EndMarked, and Waiting. This displays additional properties about the
156
   EndMarked, and Waiting. This displays additional properties about the
157
   user's profile, as well as whether or not the user is waiting for a
157
   user's profile, as well as whether or not the user is waiting for a
158
   Marked user to enter the conference.
158
   Marked user to enter the conference.
159

    
   
159

   
160
 * Added a new option for conference recording, record_file_append. If enabled,
160
 * Added a new option for conference recording, record_file_append. If enabled,
161
   when the recording is stopped and then re-started, the existing recording
161
   when the recording is stopped and then re-started, the existing recording
162
   will be used and appended to.
162
   will be used and appended to.
163

    
   
163

   
164
 * ConfBridge now has the ability to set the language of announcements to the
164
 * ConfBridge now has the ability to set the language of announcements to the
165
   conference.  The language can be set on a bridge profile in confbridge.conf
165
   conference.  The language can be set on a bridge profile in confbridge.conf
166
   or by the dialplan function CONFBRIDGE(bridge,language)=en.
166
   or by the dialplan function CONFBRIDGE(bridge,language)=en.
167

    
   
167

   
168
ControlPlayback
168
ControlPlayback
169
------------------
169
------------------
170
 * The channel variable CPLAYBACKSTATUS may now return the value
170
 * The channel variable CPLAYBACKSTATUS may now return the value
171
   'REMOTESTOPPED'. This occurs when playback is stopped by a remote interface,
171
   'REMOTESTOPPED'. This occurs when playback is stopped by a remote interface,
172
   such as AMI. See the AMI action ControlPlayback for more information.
172
   such as AMI. See the AMI action ControlPlayback for more information.
173

    
   
173

   
174
Directory
174
Directory
175
------------------
175
------------------
176
 * Added the 'a' option, which allows the caller to enter in an additional
176
 * Added the 'a' option, which allows the caller to enter in an additional
177
   alias for the user in the directory. This option must be used in conjunction
177
   alias for the user in the directory. This option must be used in conjunction
178
   with the 'f', 'l', or 'b' options. Note that the alias for a user can be
178
   with the 'f', 'l', or 'b' options. Note that the alias for a user can be
179
   specified in voicemail.conf.
179
   specified in voicemail.conf.
180

    
   
180

   
181
DumpChan
181
DumpChan
182
------------------
182
------------------
183
 * The output of DumpChan no longer includes the DirectBridge or IndirectBridge
183
 * The output of DumpChan no longer includes the DirectBridge or IndirectBridge
184
   fields. Instead, if a channel is in a bridge, it includes a BridgeID field
184
   fields. Instead, if a channel is in a bridge, it includes a BridgeID field
185
   containing the unique ID of the bridge that the channel happens to be in.
185
   containing the unique ID of the bridge that the channel happens to be in.
186

    
   
186

   
187
ForkCDR
187
ForkCDR
188
------------------
188
------------------
189
 * ForkCDR no longer automatically resets the forked CDR. See the 'r' option
189
 * ForkCDR no longer automatically resets the forked CDR. See the 'r' option
190
   for more information.
190
   for more information.
191

    
   
191

   
192
 * Variables are no longer purged from the original CDR. See the 'v' option for
192
 * Variables are no longer purged from the original CDR. See the 'v' option for
193
   more information.
193
   more information.
194

    
   
194

   
195
 * The 'A' option has been removed. The Answer time on a CDR is never updated
195
 * The 'A' option has been removed. The Answer time on a CDR is never updated
196
   once set.
196
   once set.
197

    
   
197

   
198
 * The 'd' option has been removed. The disposition on a CDR is a function of
198
 * The 'd' option has been removed. The disposition on a CDR is a function of
199
   the state of the channel and cannot be altered.
199
   the state of the channel and cannot be altered.
200

    
   
200

   
201
 * The 'D' option has been removed. Who the Party B is on a CDR is a function
201
 * The 'D' option has been removed. Who the Party B is on a CDR is a function
202
   of the state of the respective channels involved in the CDR and cannot be
202
   of the state of the respective channels involved in the CDR and cannot be
203
   altered.
203
   altered.
204

    
   
204

   
205
 * The 'r' option has been changed. Previously, ForkCDR always reset the CDR
205
 * The 'r' option has been changed. Previously, ForkCDR always reset the CDR
206
   such that the start time and, if applicable, the answer time was updated.
206
   such that the start time and, if applicable, the answer time was updated.
207
   Now, by default, ForkCDR simply forks the CDR, maintaining any times. The
207
   Now, by default, ForkCDR simply forks the CDR, maintaining any times. The
208
   'r' option now triggers the Reset, setting the start time (and answer time
208
   'r' option now triggers the Reset, setting the start time (and answer time
209
   if applicable) to the current time. Note that the 'a' option still sets
209
   if applicable) to the current time. Note that the 'a' option still sets
210
   the answer time to the current time if the channel was already answered.
210
   the answer time to the current time if the channel was already answered.
211

    
   
211

   
212
 * The 's' option has been removed. A variable can be set on the original CDR
212
 * The 's' option has been removed. A variable can be set on the original CDR
213
   if desired using the CDR function, and removed from a forked CDR using the
213
   if desired using the CDR function, and removed from a forked CDR using the
214
   same function.
214
   same function.
215

    
   
215

   
216
 * The 'T' option has been removed. The concept of DONT_TOUCH and LOCKED no
216
 * The 'T' option has been removed. The concept of DONT_TOUCH and LOCKED no
217
   longer applies in the CDR engine.
217
   longer applies in the CDR engine.
218

    
   
218

   
219
 * The 'v' option now prevents the copy of the variables from the original CDR
219
 * The 'v' option now prevents the copy of the variables from the original CDR
220
   to the forked CDR. Previously the variables were always copied but were
220
   to the forked CDR. Previously the variables were always copied but were
221
   removed from the original. This was changed as removing variables from a CDR
221
   removed from the original. This was changed as removing variables from a CDR
222
   can have unintended side effects - this option allows the user to prevent
222
   can have unintended side effects - this option allows the user to prevent
223
   propagation of variables from the original to the forked without modifying
223
   propagation of variables from the original to the forked without modifying
224
   the original.
224
   the original.
225

    
   
225

   
226
MeetMe
226
MeetMe
227
-------------------
227
-------------------
228
 * Added the 'n' option to MeetMe to prevent application of the DENOISE
228
 * Added the 'n' option to MeetMe to prevent application of the DENOISE
229
   function to a channel joining a conference. Some channel drivers that vary
229
   function to a channel joining a conference. Some channel drivers that vary
230
   the number of audio samples in a voice frame will experience significant
230
   the number of audio samples in a voice frame will experience significant
231
   quality problems if a denoiser is attached to the channel; this option gives
231
   quality problems if a denoiser is attached to the channel; this option gives
232
   them the ability to remove the denoiser without having to unload func_speex.
232
   them the ability to remove the denoiser without having to unload func_speex.
233

    
   
233

   
234
MixMonitor
234
MixMonitor
235
------------------
235
------------------
236
 * The 'b' option now includes conferences as well as sounds played to the
236
 * The 'b' option now includes conferences as well as sounds played to the
237
   participants.
237
   participants.
238

    
   
238

   
239
 * The AUDIOHOOK_INHERIT function is no longer needed to keep a MixMonitor
239
 * The AUDIOHOOK_INHERIT function is no longer needed to keep a MixMonitor
240
   running during a transfer. If a MixMonitor is started on a channel,
240
   running during a transfer. If a MixMonitor is started on a channel,
241
   the MixMonitor will continue to record the audio passing through the
241
   the MixMonitor will continue to record the audio passing through the
242
   channel even in the presence of transfers.
242
   channel even in the presence of transfers.
243

    
   
243

   
244
NoCDR
244
NoCDR
245
------------------
245
------------------
246
 * The NoCDR application is deprecated. Please use the CDR_PROP function to
246
 * The NoCDR application is deprecated. Please use the CDR_PROP function to
247
   disable CDRs.
247
   disable CDRs.
248

    
   
248

   
249
 * While the NoCDR application will prevent CDRs for a channel from being
249
 * While the NoCDR application will prevent CDRs for a channel from being
250
   propagated to registered CDR backends, it will not prevent that data from
250
   propagated to registered CDR backends, it will not prevent that data from
251
   being collected. Hence, a subsequent call to ResetCDR or the CDR_PROP
251
   being collected. Hence, a subsequent call to ResetCDR or the CDR_PROP
252
   function that enables CDRs on a channel will restore those records that have
252
   function that enables CDRs on a channel will restore those records that have
253
   not yet been finalized.
253
   not yet been finalized.
254

    
   
254

   
255
ParkAndAnnounce
255
ParkAndAnnounce
256
-------------------
256
-------------------
257
 * The app_parkandannounce module has been removed. The application
257
 * The app_parkandannounce module has been removed. The application
258
   ParkAndAnnounce is now provided by the res_parking module. See the
258
   ParkAndAnnounce is now provided by the res_parking module. See the
259
   res_parking changes for more information.
259
   res_parking changes for more information.
260

    
   
260

   
261
Queue
261
Queue
262
-------------------
262
-------------------
263
 * Added queue available hint. The hint can be added to the dialplan using the
263
 * Added queue available hint. The hint can be added to the dialplan using the
264
   following syntax: exten,hint,Queue:{queue_name}_avail
264
   following syntax: exten,hint,Queue:{queue_name}_avail
265
   For example, if the name of the queue is 'markq':
265
   For example, if the name of the queue is 'markq':
266
        exten => 8501,hint,Queue:markq_avail
266
        exten => 8501,hint,Queue:markq_avail
267
   This will report 'InUse' if there are no logged in agents or no free agents.
267
   This will report 'InUse' if there are no logged in agents or no free agents.
268
   It will report 'Idle' when an agent is free.
268
   It will report 'Idle' when an agent is free.
269

    
   
269

   
270
 * Queues now support a hint for member paused state. The hint uses the form
270
 * Queues now support a hint for member paused state. The hint uses the form
271
   'Queue:{queue_name}_pause_{member_name}', where {queue_name} and {member_name}
271
   'Queue:{queue_name}_pause_{member_name}', where {queue_name} and {member_name}
272
   are the name of the queue and the name of the member to subscribe to,
272
   are the name of the queue and the name of the member to subscribe to,
273
   respectively. For example: exten => 8501,hint,Queue:sales_pause_mark.
273
   respectively. For example: exten => 8501,hint,Queue:sales_pause_mark.
274
   Members will show as In Use when paused.
274
   Members will show as In Use when paused.
275

    
   
275

   
276
 * The configuration options eventwhencalled and eventmemberstatus have been
276
 * The configuration options eventwhencalled and eventmemberstatus have been
277
   removed.  As a result, the AMI events QueueMemberStatus, AgentCalled,
277
   removed.  As a result, the AMI events QueueMemberStatus, AgentCalled,
278
   AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
278
   AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
279
   sent.  The "Variable" fields will also no longer exist on the Agent* events.
279
   sent.  The "Variable" fields will also no longer exist on the Agent* events.
280
   These events can be filtered out from a connected AMI client using the
280
   These events can be filtered out from a connected AMI client using the
281
   eventfilter setting in manager.conf.
281
   eventfilter setting in manager.conf.
282

    
   
282

   
283
 * The queue log now differentiates between blind and attended transfers. A
283
 * The queue log now differentiates between blind and attended transfers. A
284
   blind transfer will result in a BLINDTRANSFER message with the destination
284
   blind transfer will result in a BLINDTRANSFER message with the destination
285
   context and extension. An attended transfer will result in an
285
   context and extension. An attended transfer will result in an
286
   ATTENDEDTRANSFER message. This message will indicate the method by which
286
   ATTENDEDTRANSFER message. This message will indicate the method by which
287
   the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
287
   the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
288
   for running an application on a bridge or channel, or "LINK" for linking
288
   for running an application on a bridge or channel, or "LINK" for linking
289
   two bridges together with local channels. The queue log will also now detect
289
   two bridges together with local channels. The queue log will also now detect
290
   externally initiated blind and attended transfers and record the transfer
290
   externally initiated blind and attended transfers and record the transfer
291
   status accordingly.
291
   status accordingly.
292

    
   
292

   
293
 * When performing queue pause/unpause on an interface without specifying an
293
 * When performing queue pause/unpause on an interface without specifying an
294
   individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
294
   individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
295
   least one member of any queue exists for that interface.
295
   least one member of any queue exists for that interface.
296

    
   
296

   
297
 * Added the 'queue_log_realtime_use_gmt' option to have timestamps in GMT
297
 * Added the 'queue_log_realtime_use_gmt' option to have timestamps in GMT
298
   for realtime queue log entries.
298
   for realtime queue log entries.
299

    
   
299

   
300
ResetCDR
300
ResetCDR
301
------------------
301
------------------
302
 * The 'e' option has been deprecated. Use the CDR_PROP function to re-enable
302
 * The 'e' option has been deprecated. Use the CDR_PROP function to re-enable
303
   CDRs when they were previously disabled on a channel.
303
   CDRs when they were previously disabled on a channel.
304

    
   
304

   
305
 * The 'w' and 'a' options have been removed. Dispatching CDRs to registered
305
 * The 'w' and 'a' options have been removed. Dispatching CDRs to registered
306
   backends occurs on an as-needed basis in order to preserve linkedid
306
   backends occurs on an as-needed basis in order to preserve linkedid
307
   propagation and other needed behavior.
307
   propagation and other needed behavior.
308

    
   
308

   
309
SayAlphaCase
309
SayAlphaCase
310
------------------
310
------------------
311
 * A new application, this is similar to SayAlpha except that it supports
311
 * A new application, this is similar to SayAlpha except that it supports
312
   case sensitive playback of the specified characters. For example,
312
   case sensitive playback of the specified characters. For example,
313
   SayAlphaCase(u,aBc) will result in 'a uppercase b c'.
313
   SayAlphaCase(u,aBc) will result in 'a uppercase b c'.
314

    
   
314

   
315
SetAMAFlags
315
SetAMAFlags
316
------------------
316
------------------
317
 * This application is deprecated in favor of CHANNEL(amaflags).
317
 * This application is deprecated in favor of CHANNEL(amaflags).
318

    
   
318

   
319
SendDTMF
319
SendDTMF
320
------------------
320
------------------
321
 * The SendDTMF application will now accept 'W' as valid input. This will cause
321
 * The SendDTMF application will now accept 'W' as valid input. This will cause
322
   the application to delay one second while streaming DTMF.
322
   the application to delay one second while streaming DTMF.
323

    
   
323

   
324
Stasis
324
Stasis
325
------------------
325
------------------
326
 * A new application in Asterisk 12, this hands control of the channel calling
326
 * A new application in Asterisk 12, this hands control of the channel calling
327
   the application over to an external system. Currently, external systems
327
   the application over to an external system. Currently, external systems
328
   manipulate channels in Stasis through the Asterisk RESTful Interface (ARI).
328
   manipulate channels in Stasis through the Asterisk RESTful Interface (ARI).
329

    
   
329

   
330
UserEvent
330
UserEvent
331
------------------
331
------------------
332
 * UserEvent will now handle duplicate keys by overwriting the previous value
332
 * UserEvent will now handle duplicate keys by overwriting the previous value
333
   assigned to the key.
333
   assigned to the key.
334

    
   
334

   
335
 * In addition to AMI, UserEvent invocations will now be distributed to any
335
 * In addition to AMI, UserEvent invocations will now be distributed to any
336
   interested Stasis applications.
336
   interested Stasis applications.
337

    
   
337

   
338
VoiceMail
338
VoiceMail
339
------------------
339
------------------

    
   
340
 * Mailboxes defined by app_voicemail MUST be referenced by the rest of the

    
   
341
   system as mailbox@context.  The rest of the system cannot add @default

    
   
342
   to mailbox identifiers for app_voicemail that do not specify a context

    
   
343
   any longer.  It is a mailbox identifier format that should only be

    
   
344
   interpreted by app_voicemail.

    
   
345

   
340
 * The voicemail.conf configuration file now has an 'alias' configuration
346
 * The voicemail.conf configuration file now has an 'alias' configuration
341
   parameter for use with the Directory application. The voicemail realtime
347
   parameter for use with the Directory application. The voicemail realtime
342
   database table schema has also been updated with an 'alias' column.
348
   database table schema has also been updated with an 'alias' column.
343

    
   
349

   
344

    
   
350

   
345
Codecs
351
Codecs
346
------------------
352
------------------
347
 * Pass through support has been added for both VP8 and Opus.
353
 * Pass through support has been added for both VP8 and Opus.
348

    
   
354

   
349
 * Added format attribute negotiation for the Opus codec. Format attribute
355
 * Added format attribute negotiation for the Opus codec. Format attribute
350
   negotiation is provided by the res_format_attr_opus module.
356
   negotiation is provided by the res_format_attr_opus module.
351

    
   
357

   
352

    
   
358

   
353
Core
359
Core
354
------------------
360
------------------
355
 * Masquerades as an operation inside Asterisk have been effectively hidden
361
 * Masquerades as an operation inside Asterisk have been effectively hidden
356
   by the migration to the Bridging API. As such, many 'quirks' of Asterisk
362
   by the migration to the Bridging API. As such, many 'quirks' of Asterisk
357
   no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
363
   no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
358
   dropping of frame/audio hooks, and other internal implementation details
364
   dropping of frame/audio hooks, and other internal implementation details
359
   that users had to deal with. This fundamental change has large implications
365
   that users had to deal with. This fundamental change has large implications
360
   throughout the changes documented for this version. For more information
366
   throughout the changes documented for this version. For more information
361
   about the new core architecture of Asterisk, please see the Asterisk wiki.
367
   about the new core architecture of Asterisk, please see the Asterisk wiki.
362

    
   
368

   
363
 * Multiple parties in a bridge may now be transferred. If a participant in a
369
 * Multiple parties in a bridge may now be transferred. If a participant in a
364
   multi-party bridge initiates a blind transfer, a Local channel will be used
370
   multi-party bridge initiates a blind transfer, a Local channel will be used
365
   to execute the dialplan location that the transferer sent the parties to. If
371
   to execute the dialplan location that the transferer sent the parties to. If
366
   a participant in a multi-party bridge initiates an attended transfer,
372
   a participant in a multi-party bridge initiates an attended transfer,
367
   several options are possible. If the attended transfer results in a transfer
373
   several options are possible. If the attended transfer results in a transfer
368
   to an application, a Local channel is used. If the attended transfer results
374
   to an application, a Local channel is used. If the attended transfer results
369
   in a transfer to another channel, the resulting channels will be merged into
375
   in a transfer to another channel, the resulting channels will be merged into
370
   a single bridge.
376
   a single bridge.
371

    
   
377

   
372
 * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is no longer channel
378
 * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is no longer channel
373
   driver specific.  If the channel variable is set on the transferrer channel,
379
   driver specific.  If the channel variable is set on the transferrer channel,
374
   the sound will be played to the target of an attended transfer.
380
   the sound will be played to the target of an attended transfer.
375

    
   
381

   
376
 * The channel variable BRIDGEPEER becomes a comma separated list of peers in
382
 * The channel variable BRIDGEPEER becomes a comma separated list of peers in
377
   a multi-party bridge.  The BRIDGEPEER value can have a maximum of 10 peers
383
   a multi-party bridge.  The BRIDGEPEER value can have a maximum of 10 peers
378
   listed.  Any more peers in the bridge will not be included in the list.
384
   listed.  Any more peers in the bridge will not be included in the list.
379
   BRIDGEPEER is not valid in holding bridges like parking since those channels
385
   BRIDGEPEER is not valid in holding bridges like parking since those channels
380
   do not talk to each other even though they are in a bridge.
386
   do not talk to each other even though they are in a bridge.
381

    
   
387

   
382
 * The channel variable BRIDGEPVTCALLID is only valid for two party bridges
388
 * The channel variable BRIDGEPVTCALLID is only valid for two party bridges
383
   and will contain a value if the BRIDGEPEER's channel driver supports it.
389
   and will contain a value if the BRIDGEPEER's channel driver supports it.
384

    
   
390

   
385
 * A channel variable ATTENDEDTRANSFER is now set which indicates which channel
391
 * A channel variable ATTENDEDTRANSFER is now set which indicates which channel
386
   was responsible for an attended transfer in a similar fashion to
392
   was responsible for an attended transfer in a similar fashion to
387
   BLINDTRANSFER.
393
   BLINDTRANSFER.
388

    
   
394

   
389
 * Modules using the Configuration Framework or Sorcery must have XML
395
 * Modules using the Configuration Framework or Sorcery must have XML
390
   configuration documentation. This configuration documentation is included
396
   configuration documentation. This configuration documentation is included
391
   with the rest of Asterisk's XML documentation, and is accessible via CLI
397
   with the rest of Asterisk's XML documentation, and is accessible via CLI
392
   commands. See the CLI changes for more information.
398
   commands. See the CLI changes for more information.
393

    
   
399

   
394
AMI (Asterisk Manager Interface)
400
AMI (Asterisk Manager Interface)
395
------------------
401
------------------
396
 * Major changes were made to both the syntax as well as the semantics of the
402
 * Major changes were made to both the syntax as well as the semantics of the
397
   AMI protocol. In particular, AMI events have been substantially improved
403
   AMI protocol. In particular, AMI events have been substantially improved
398
   in this version of Asterisk. For more information, please see the AMI
404
   in this version of Asterisk. For more information, please see the AMI
399
   specification at https://wiki.asterisk.org/wiki/x/dAFRAQ
405
   specification at https://wiki.asterisk.org/wiki/x/dAFRAQ
400

    
   
406

   
401
 * AMI events that reference a particular channel or bridge will now always
407
 * AMI events that reference a particular channel or bridge will now always
402
   contain a standard set of fields. When multiple channels or bridges are
408
   contain a standard set of fields. When multiple channels or bridges are
403
   referenced in an event, fields for at least some subset of the channels
409
   referenced in an event, fields for at least some subset of the channels
404
   and bridges in the event will be prefixed with a descriptive name to avoid
410
   and bridges in the event will be prefixed with a descriptive name to avoid
405
   name collisions. See the AMI event documentation on the Asterisk wiki for
411
   name collisions. See the AMI event documentation on the Asterisk wiki for
406
   more information.
412
   more information.
407

    
   
413

   
408
 * The CLI command 'manager show commands' no longer truncates command names
414
 * The CLI command 'manager show commands' no longer truncates command names
409
   longer than 15 characters and no longer shows authorization requirement
415
   longer than 15 characters and no longer shows authorization requirement
410
   for commands. 'manager show command' now displays the privileges needed
416
   for commands. 'manager show command' now displays the privileges needed
411
   for using a given manager command instead.
417
   for using a given manager command instead.
412

    
   
418

   
413
 * The SIPshowpeer action will now include a 'SubscribeContext' field for a
419
 * The SIPshowpeer action will now include a 'SubscribeContext' field for a
414
   peer in its response if the peer has a subscribe context set.
420
   peer in its response if the peer has a subscribe context set.
415

    
   
421

   
416
 * The SIPqualifypeer action now acknowledges the request once it has
422
 * The SIPqualifypeer action now acknowledges the request once it has
417
   established that the request is against a known peer. It also issues a new
423
   established that the request is against a known peer. It also issues a new
418
   event, 'SIPQualifyPeerDone', once the qualify action has been completed.
424
   event, 'SIPQualifyPeerDone', once the qualify action has been completed.
419

    
   
425

   
420
 * The PlayDTMF action now supports an optional 'Duration' parameter.  This
426
 * The PlayDTMF action now supports an optional 'Duration' parameter.  This
421
   specifies the duration of the digit to be played, in milliseconds.
427
   specifies the duration of the digit to be played, in milliseconds.
422

    
   
428

   
423
 * Added VoicemailRefresh action to allow an external entity to trigger mailbox
429
 * Added VoicemailRefresh action to allow an external entity to trigger mailbox
424
   updates when changes occur instead of requiring the use of pollmailboxes.
430
   updates when changes occur instead of requiring the use of pollmailboxes.
425

    
   
431

   
426
 * Added a new action 'ControlPlayback'. The ControlPlayback action allows an
432
 * Added a new action 'ControlPlayback'. The ControlPlayback action allows an
427
   AMI client to manipulate audio currently being played back on a channel. The
433
   AMI client to manipulate audio currently being played back on a channel. The
428
   supported operations depend on the application being used to send audio to
434
   supported operations depend on the application being used to send audio to
429
   the channel. When the audio playback was initiated using the ControlPlayback
435
   the channel. When the audio playback was initiated using the ControlPlayback
430
   application or CONTROL STREAM FILE AGI command, the audio can be paused,
436
   application or CONTROL STREAM FILE AGI command, the audio can be paused,
431
   stopped, restarted, reversed, or skipped forward. When initiated by other
437
   stopped, restarted, reversed, or skipped forward. When initiated by other
432
   mechanisms (such as the Playback application), the audio can be stopped,
438
   mechanisms (such as the Playback application), the audio can be stopped,
433
   reversed, or skipped forward.
439
   reversed, or skipped forward.
434

    
   
440

   
435
 * Channel related events now contain a snapshot of channel state, adding new
441
 * Channel related events now contain a snapshot of channel state, adding new
436
   fields to many of these events.
442
   fields to many of these events.
437

    
   
443

   
438
 * The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
444
 * The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
439
   in a future release. Please use the common 'Exten' field instead.
445
   in a future release. Please use the common 'Exten' field instead.
440

    
   
446

   
441
 * The AMI event 'UserEvent' from app_userevent now contains the channel state
447
 * The AMI event 'UserEvent' from app_userevent now contains the channel state
442
   fields. The channel state fields will come before the body fields.
448
   fields. The channel state fields will come before the body fields.
443

    
   
449

   
444
 * The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
450
 * The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
445
   'UnParkedCall' have changed significantly in the new res_parking module.
451
   'UnParkedCall' have changed significantly in the new res_parking module.
446

    
   
452

   
447
   The 'Channel' and 'From' headers are gone. For the channel that was parked
453
   The 'Channel' and 'From' headers are gone. For the channel that was parked
448
   or is coming out of parking, a 'Parkee' channel snapshot is issued and it
454
   or is coming out of parking, a 'Parkee' channel snapshot is issued and it
449
   has a number of fields associated with it. The old 'Channel' header relayed
455
   has a number of fields associated with it. The old 'Channel' header relayed
450
   the same data as the new 'ParkeeChannel' header.
456
   the same data as the new 'ParkeeChannel' header.
451

    
   
457

   
452
   The 'From' field was ambiguous and changed meaning depending on the event.
458
   The 'From' field was ambiguous and changed meaning depending on the event.
453
   for most of these, it was the name of the channel that parked the call
459
   for most of these, it was the name of the channel that parked the call
454
   (the 'Parker'). There is no longer a header that provides this channel name,
460
   (the 'Parker'). There is no longer a header that provides this channel name,
455
   however the 'ParkerDialString' will contain a dialstring to redial the
461
   however the 'ParkerDialString' will contain a dialstring to redial the
456
   device that parked the call.
462
   device that parked the call.
457

    
   
463

   
458
   On UnParkedCall events, the 'From' header would instead represent the
464
   On UnParkedCall events, the 'From' header would instead represent the
459
   channel responsible for retrieving the parkee. It receives a channel
465
   channel responsible for retrieving the parkee. It receives a channel
460
   snapshot labeled 'Retriever'. The 'from' field is is replaced with
466
   snapshot labeled 'Retriever'. The 'from' field is is replaced with
461
   'RetrieverChannel'.
467
   'RetrieverChannel'.
462

    
   
468

   
463
   Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
469
   Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
464

    
   
470

   
465
 * The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
471
 * The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
466
   fashion has changed the field names 'StartExten' and 'StopExten' to
472
   fashion has changed the field names 'StartExten' and 'StopExten' to
467
   'StartSpace' and 'StopSpace' respectively.
473
   'StartSpace' and 'StopSpace' respectively.
468

    
   
474

   
469
 * The deprecated use of | (pipe) as a separator in the channelvars setting in
475
 * The deprecated use of | (pipe) as a separator in the channelvars setting in
470
   manager.conf has been removed.
476
   manager.conf has been removed.
471

    
   
477

   
472
 * Channel Variables conveyed with a channel no longer contain the name of the
478
 * Channel Variables conveyed with a channel no longer contain the name of the
473
   channel as part of the key field, i.e., ChanVariable(SIP/foo): bar=baz is now
479
   channel as part of the key field, i.e., ChanVariable(SIP/foo): bar=baz is now
474
   ChanVariable: bar=baz. When multiple channels are present in a single AMI
480
   ChanVariable: bar=baz. When multiple channels are present in a single AMI
475
   event, the various ChanVariable fields will contain a suffix that specifies
481
   event, the various ChanVariable fields will contain a suffix that specifies
476
   which channel they correspond to.
482
   which channel they correspond to.
477

    
   
483

   
478
 * The NewPeerAccount AMI event is no longer raised. The NewAccountCode AMI
484
 * The NewPeerAccount AMI event is no longer raised. The NewAccountCode AMI
479
   event always conveys the AMI event for a particular channel.
485
   event always conveys the AMI event for a particular channel.
480

    
   
486

   
481
 * All 'Reload' events have been consolidated into a single event type. This
487
 * All 'Reload' events have been consolidated into a single event type. This
482
   event will always contain a Module field specifying the name of the module
488
   event will always contain a Module field specifying the name of the module
483
   and a Status field denoting the result of the reload. All modules now issue
489
   and a Status field denoting the result of the reload. All modules now issue
484
   this event when being reloaded.
490
   this event when being reloaded.
485

    
   
491

   
486
 * The 'ModuleLoadReport' event has been removed. Most AMI connections would
492
 * The 'ModuleLoadReport' event has been removed. Most AMI connections would
487
   fail to receive this event due to being connected after modules have loaded.
493
   fail to receive this event due to being connected after modules have loaded.
488
   AMI connections that want to know when Asterisk is ready should listen for
494
   AMI connections that want to know when Asterisk is ready should listen for
489
   the 'FullyBooted' event.
495
   the 'FullyBooted' event.
490

    
   
496

   
491
 * app_fax now sends the same send fax/receive fax events as res_fax. The
497
 * app_fax now sends the same send fax/receive fax events as res_fax. The
492
   'FaxSent' event is now the 'SendFAX' event, and the 'FaxReceived' event is
498
   'FaxSent' event is now the 'SendFAX' event, and the 'FaxReceived' event is
493
   now the 'ReceiveFAX' event.
499
   now the 'ReceiveFAX' event.
494

    
   
500

   
495
 * The 'MusicOnHold' event is now two events: 'MusicOnHoldStart' and
501
 * The 'MusicOnHold' event is now two events: 'MusicOnHoldStart' and
496
   'MusicOnHoldStop'. The sub type field has been removed.
502
   'MusicOnHoldStop'. The sub type field has been removed.
497

    
   
503

   
498
 * The 'JabberEvent' event has been removed. It is not AMI's purpose to be a
504
 * The 'JabberEvent' event has been removed. It is not AMI's purpose to be a
499
   carrier for another protocol.
505
   carrier for another protocol.
500

    
   
506

   
501
 * The Bridge Manager action's 'Playtone' header now accepts more fine-grained
507
 * The Bridge Manager action's 'Playtone' header now accepts more fine-grained
502
   options. 'Channel1' and 'Channel2' may be specified in order to play a tone
508
   options. 'Channel1' and 'Channel2' may be specified in order to play a tone
503
   to the specific channel. 'Both' may be specified to play a tone to both
509
   to the specific channel. 'Both' may be specified to play a tone to both
504
   channels. The old 'yes' option is still accepted as a way of playing the
510
   channels. The old 'yes' option is still accepted as a way of playing the
505
   tone to Channel2 only.
511
   tone to Channel2 only.
506

    
   
512

   
507
 * The AMI 'Status' response event to the AMI Status action replaces the
513
 * The AMI 'Status' response event to the AMI Status action replaces the
508
   'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
514
   'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
509
   indicate what bridge the channel is currently in.
515
   indicate what bridge the channel is currently in.
510

    
   
516

   
511
 * The AMI 'Hold' event has been moved out of individual channel drivers, into
517
 * The AMI 'Hold' event has been moved out of individual channel drivers, into
512
   core, and is now two events: 'Hold' and 'Unhold'.  The status field has been
518
   core, and is now two events: 'Hold' and 'Unhold'.  The status field has been
513
   removed.
519
   removed.
514

    
   
520

   
515
 * The AMI events in app_queue have been made more consistent with each other.
521
 * The AMI events in app_queue have been made more consistent with each other.
516
   Events that reference channels (QueueCaller* and Agent*) will show
522
   Events that reference channels (QueueCaller* and Agent*) will show
517
   information about each channel.  The (infamous) 'Join' and 'Leave' AMI
523
   information about each channel.  The (infamous) 'Join' and 'Leave' AMI
518
   events have been changed to 'QueueCallerJoin' and 'QueueCallerLeave'.
524
   events have been changed to 'QueueCallerJoin' and 'QueueCallerLeave'.
519

    
   
525

   
520
 * The 'MCID' AMI event now publishes a channel snapshot when available and
526
 * The 'MCID' AMI event now publishes a channel snapshot when available and
521
   its non-channel-snapshot parameters now use either the "MCallerID" or
527
   its non-channel-snapshot parameters now use either the "MCallerID" or
522
   'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
528
   'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
523
   of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
529
   of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
524
   parameters in the channel snapshot.
530
   parameters in the channel snapshot.
525

    
   
531

   
526
 * The AMI events 'Agentlogin' and 'Agentlogoff' have been renamed
532
 * The AMI events 'Agentlogin' and 'Agentlogoff' have been renamed
527
   'AgentLogin' and 'AgentLogoff' respectively.
533
   'AgentLogin' and 'AgentLogoff' respectively.
528

    
   
534

   
529
 * The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
535
 * The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
530
   renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
536
   renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
531

    
   
537

   
532
 * 'ChannelUpdate' events have been removed.
538
 * 'ChannelUpdate' events have been removed.
533

    
   
539

   
534
 * All AMI events now contain a 'SystemName' field, if available.
540
 * All AMI events now contain a 'SystemName' field, if available.
535

    
   
541

   
536
 * Local channel optimization is now conveyed in two events:
542
 * Local channel optimization is now conveyed in two events:
537
   'LocalOptimizationBegin' and 'LocalOptimizationEnd'. The Begin event is sent
543
   'LocalOptimizationBegin' and 'LocalOptimizationEnd'. The Begin event is sent
538
   when the Local channel driver begins attempting to optimize itself out of
544
   when the Local channel driver begins attempting to optimize itself out of
539
   the media path; the End event is sent after the channel halves have
545
   the media path; the End event is sent after the channel halves have
540
   successfully optimized themselves out of the media path.
546
   successfully optimized themselves out of the media path.
541

    
   
547

   
542
 * Local channel information in events is now prefixed with 'LocalOne' and
548
 * Local channel information in events is now prefixed with 'LocalOne' and
543
   'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
549
   'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
544
   the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
550
   the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
545
   and 'LocalOptimizationEnd' events.
551
   and 'LocalOptimizationEnd' events.
546

    
   
552

   
547
 * The option 'allowmultiplelogin' can now be set or overriden in a particular
553
 * The option 'allowmultiplelogin' can now be set or overriden in a particular
548
   account. When set in the general context, it will act as the default
554
   account. When set in the general context, it will act as the default
549
   setting for defined accounts.
555
   setting for defined accounts.
550

    
   
556

   
551
 * The 'BridgeAction' event was removed. It technically added no value, as the
557
 * The 'BridgeAction' event was removed. It technically added no value, as the
552
   Bridge Action already receives confirmation of the bridge through a
558
   Bridge Action already receives confirmation of the bridge through a
553
   successful completion Event.
559
   successful completion Event.
554

    
   
560

   
555
 * The 'BridgeExec' events were removed. These events duplicated the events that
561
 * The 'BridgeExec' events were removed. These events duplicated the events that
556
   occur in the Briding API, and are conveyed now through BridgeCreate,
562
   occur in the Briding API, and are conveyed now through BridgeCreate,
557
   BridgeEnter, and BridgeLeave events.
563
   BridgeEnter, and BridgeLeave events.
558

    
   
564

   
559
 * The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
565
 * The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
560
   previous versions. They now report all SR/RR packets sent/received, and
566
   previous versions. They now report all SR/RR packets sent/received, and
561
   have been restructured to better reflect the data sent in a SR/RR. In
567
   have been restructured to better reflect the data sent in a SR/RR. In
562
   particular, the event structure now supports multiple report blocks.
568
   particular, the event structure now supports multiple report blocks.
563

    
   
569

   
564
 * Added 'BlindTransfer' and 'AttendedTransfer' events. These events are
570
 * Added 'BlindTransfer' and 'AttendedTransfer' events. These events are
565
   raised when a blind transfer/attended transfer completes successfully.
571
   raised when a blind transfer/attended transfer completes successfully.
566
   They contain information about the transfer that just completed, including
572
   They contain information about the transfer that just completed, including
567
   the location of the transfered channel.
573
   the location of the transfered channel.
568

    
   
574

   
569
 * Added a 'security' class to AMI which outputs the required fields for
575
 * Added a 'security' class to AMI which outputs the required fields for
570
   security messages similar to the log messages from res_security_log
576
   security messages similar to the log messages from res_security_log
571

    
   
577

   
572
CDR (Call Detail Records)
578
CDR (Call Detail Records)
573
------------------
579
------------------
574
 * Significant changes have been made to the behavior of CDRs. The CDR engine
580
 * Significant changes have been made to the behavior of CDRs. The CDR engine
575
   was effectively rewritten and built on the Stasis message bus. For a full
581
   was effectively rewritten and built on the Stasis message bus. For a full
576
   definition of CDR behavior in Asterisk 12, please read the specification
582
   definition of CDR behavior in Asterisk 12, please read the specification
577
   on the Asterisk wiki (wiki.asterisk.org).
583
   on the Asterisk wiki (wiki.asterisk.org).
578

    
   
584

   
579
 * CDRs will now be created between all participants in a bridge. For each
585
 * CDRs will now be created between all participants in a bridge. For each
580
   pair of channels in a bridge, a CDR is created to represent the path of
586
   pair of channels in a bridge, a CDR is created to represent the path of
581
   communication between those two endpoints. This lets an end user choose who
587
   communication between those two endpoints. This lets an end user choose who
582
   to bill for what during bridge operations with multiple parties.
588
   to bill for what during bridge operations with multiple parties.
583

    
   
589

   
584
 * The duration, billsec, start, answer, and end times now reflect the times
590
 * The duration, billsec, start, answer, and end times now reflect the times
585
   associated with the current CDR for the channel, as opposed to a cumulative
591
   associated with the current CDR for the channel, as opposed to a cumulative
586
   measurement of all CDRs for that channel.
592
   measurement of all CDRs for that channel.
587

    
   
593

   
588
 * When a CDR is dispatched, user defined CDR variables from both parties are
594
 * When a CDR is dispatched, user defined CDR variables from both parties are
589
   included in the resulting CDR. If both parties have the same variable, only
595
   included in the resulting CDR. If both parties have the same variable, only
590
   the Party A value is provided.
596
   the Party A value is provided.
591

    
   
597

   
592
 * Added a new option to cdr.conf, 'debug'. When enabled, significantly more
598
 * Added a new option to cdr.conf, 'debug'. When enabled, significantly more
593
   information regarding the CDR engine is logged as verbose messages. This
599
   information regarding the CDR engine is logged as verbose messages. This
594
   option should only be used if the behavior of the CDR engine needs to be
600
   option should only be used if the behavior of the CDR engine needs to be
595
   debugged.
601
   debugged.
596

    
   
602

   
597
 * Added CLI command 'cdr set debug {on|off}'. This toggles the 'debug' setting
603
 * Added CLI command 'cdr set debug {on|off}'. This toggles the 'debug' setting
598
   normally configured in cdr.conf.
604
   normally configured in cdr.conf.
599

    
   
605

   
600
 * Added CLI command 'cdr show active {channel}'. When {channel} is not
606
 * Added CLI command 'cdr show active {channel}'. When {channel} is not
601
   specified, this command provides a summary of the channels with CDR
607
   specified, this command provides a summary of the channels with CDR
602
   information and their statistics. When {channel} is specified, it shows
608
   information and their statistics. When {channel} is specified, it shows
603
   detailed information about all records associated with {channel}.
609
   detailed information about all records associated with {channel}.
604

    
   
610

   
605
CEL (Channel Event Logging)
611
CEL (Channel Event Logging)
606
------------------
612
------------------
607
 * CEL has undergone significant rework in Asterisk 12, and is now built on the
613
 * CEL has undergone significant rework in Asterisk 12, and is now built on the
608
   Stasis message bus. Please see the specification for CEL on the Asterisk
614
   Stasis message bus. Please see the specification for CEL on the Asterisk
609
   wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
615
   wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
610
   information.
616
   information.
611

    
   
617

   
612
 * The 'extra' field of all CEL events that use it now consists of a JSON blob
618
 * The 'extra' field of all CEL events that use it now consists of a JSON blob
613
   with key/value pairs which are defined in the Asterisk 12 CEL documentation.
619
   with key/value pairs which are defined in the Asterisk 12 CEL documentation.
614

    
   
620

   
615
 * BLINDTRANSFER events now report the transferee bridge unique
621
 * BLINDTRANSFER events now report the transferee bridge unique
616
   identifier, extension, and context in a JSON blob as the extra string
622
   identifier, extension, and context in a JSON blob as the extra string
617
   instead of the transferee channel name as the peer.
623
   instead of the transferee channel name as the peer.
618

    
   
624

   
619
 * ATTENDEDTRANSFER events now report the peer as NULL and additional
625
 * ATTENDEDTRANSFER events now report the peer as NULL and additional
620
   information in the 'extra' string as a JSON blob. For transfers that occur
626
   information in the 'extra' string as a JSON blob. For transfers that occur
621
   between two bridged channels, the 'extra' JSON blob contains the primary
627
   between two bridged channels, the 'extra' JSON blob contains the primary
622
   bridge unique identifier, the secondary channel name, and the secondary
628
   bridge unique identifier, the secondary channel name, and the secondary
623
   bridge unique identifier. For transfers that occur between a bridged channel
629
   bridge unique identifier. For transfers that occur between a bridged channel
624
   and a channel running an app, the 'extra' JSON blob contains the primary
630
   and a channel running an app, the 'extra' JSON blob contains the primary
625
   bridge unique identifier, the secondary channel name, and the app name.
631
   bridge unique identifier, the secondary channel name, and the app name.
626

    
   
632

   
627
 * LOCAL_OPTIMIZE events have been added to convey local channel
633
 * LOCAL_OPTIMIZE events have been added to convey local channel
628
   optimizations with the record occurring for the semi-one channel and
634
   optimizations with the record occurring for the semi-one channel and
629
   the semi-two channel name in the peer field.
635
   the semi-two channel name in the peer field.
630

    
   
636

   
631
 * BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
637
 * BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
632
   CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
638
   CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
633
   events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT. The BRIDGE_ENTER
639
   events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT. The BRIDGE_ENTER
634
   and BRIDGE_EXIT events are raised when a channel enters/exits any bridge,
640
   and BRIDGE_EXIT events are raised when a channel enters/exits any bridge,
635
   regardless of whether or not that bridge happens to contain multiple
641
   regardless of whether or not that bridge happens to contain multiple
636
   parties.
642
   parties.
637

    
   
643

   
638
CLI
644
CLI
639
-------------------
645
-------------------
640
 * When compiled with '--enable-dev-mode', the astobj2 library will now add
646
 * When compiled with '--enable-dev-mode', the astobj2 library will now add
641
   several CLI commands that allow for inspection of ao2 containers that
647
   several CLI commands that allow for inspection of ao2 containers that
642
   register themselves with astobj2. The CLI commands are 'astobj2 container
648
   register themselves with astobj2. The CLI commands are 'astobj2 container
643
   dump', 'astobj2 container stats', and 'astobj2 container check'.
649
   dump', 'astobj2 container stats', and 'astobj2 container check'.
644

    
   
650

   
645
 * Added specific CLI commands for bridge inspection. This includes 'bridge
651
 * Added specific CLI commands for bridge inspection. This includes 'bridge
646
   show all', which lists all bridges in the system, and 'bridge show {id}',
652
   show all', which lists all bridges in the system, and 'bridge show {id}',
647
   which provides specific information about a bridge.
653
   which provides specific information about a bridge.
648

    
   
654

   
649
 * Added CLI command 'bridge destroy'. This will destroy the specified bridge,
655
 * Added CLI command 'bridge destroy'. This will destroy the specified bridge,
650
   ejecting the channels currently in the bridge. If the channels cannot
656
   ejecting the channels currently in the bridge. If the channels cannot
651
   continue in the dialplan or application that put them in the bridge, they
657
   continue in the dialplan or application that put them in the bridge, they
652
   will be hung up.
658
   will be hung up.
653

    
   
659

   
654
 * Added command 'bridge kick'. This will eject a single channel from a bridge.
660
 * Added command 'bridge kick'. This will eject a single channel from a bridge.
655

    
   
661

   
656
 * Added commands to inspect and manipulate the registered bridge technologies.
662
 * Added commands to inspect and manipulate the registered bridge technologies.
657
   This include 'bridge technology show', which lists the registered bridge
663
   This include 'bridge technology show', which lists the registered bridge
658
   technologies, as well as 'bridge technology {suspend|unsuspend} {tech}',
664
   technologies, as well as 'bridge technology {suspend|unsuspend} {tech}',
659
   which controls whether or not a registered bridge technology can be used
665
   which controls whether or not a registered bridge technology can be used
660
   during smart bridge operations. If a technology is suspended, it will not
666
   during smart bridge operations. If a technology is suspended, it will not
661
   be used when a bridge technology is picked for channels; when unsuspended,
667
   be used when a bridge technology is picked for channels; when unsuspended,
662
   it can be used again.
668
   it can be used again.
663

    
   
669

   
664
 * The command 'config show help {module} {type} {option}' will show
670
 * The command 'config show help {module} {type} {option}' will show
665
   configuration documentation for modules with XML configuration
671
   configuration documentation for modules with XML configuration
666
   documentation. When {module}, {type}, and {option} are omitted, a listing
672
   documentation. When {module}, {type}, and {option} are omitted, a listing
667
   of all modules with registered documentation is displayed. When {module}
673
   of all modules with registered documentation is displayed. When {module}
668
   is specified, a listing of all configuration types for that module is
674
   is specified, a listing of all configuration types for that module is
669
   displayed, along with their synopsis. When {module} and {type} are
675
   displayed, along with their synopsis. When {module} and {type} are
670
   specified, a listing of all configuration options for that type are
676
   specified, a listing of all configuration options for that type are
671
   displayed along with their synopsis. When {module}, {type}, and {option}
677
   displayed along with their synopsis. When {module}, {type}, and {option}
672
   are specified, detailed information for that configuration option is
678
   are specified, detailed information for that configuration option is
673
   displayed.
679
   displayed.
674

    
   
680

   
675
 * Added 'core show sounds' and 'core show sound' CLI commands. These display
681
 * Added 'core show sounds' and 'core show sound' CLI commands. These display
676
   a listing of all installed media sounds available on the system and
682
   a listing of all installed media sounds available on the system and
677
   detailed information about a sound, respectively.
683
   detailed information about a sound, respectively.
678

    
   
684

   
679
 * 'xmldoc dump' has been added. This CLI command will dump the XML
685
 * 'xmldoc dump' has been added. This CLI command will dump the XML
680
   documentation DOM as a string to the specified file. The Asterisk core
686
   documentation DOM as a string to the specified file. The Asterisk core
681
   will populate certain XML elements pulled from the source files with
687
   will populate certain XML elements pulled from the source files with
682
   additional run-time information; this command lets a user produce the
688
   additional run-time information; this command lets a user produce the
683
   XML documentation with all information.
689
   XML documentation with all information.
684

    
   
690

   
685
Features
691
Features
686
-------------------
692
-------------------
687
 * Parking has been pulled from core and placed into a separate module called
693
 * Parking has been pulled from core and placed into a separate module called
688
   res_parking. See Parking changes below for more details. Configuration for
694
   res_parking. See Parking changes below for more details. Configuration for
689
   parking should now be performed in res_parking.conf. Configuration for
695
   parking should now be performed in res_parking.conf. Configuration for
690
   parking in features.conf is now unsupported.
696
   parking in features.conf is now unsupported.
691

    
   
697

   
692
 * Core attended transfers now have several new options. While performing an
698
 * Core attended transfers now have several new options. While performing an
693
   attended transfer, the transferer now has the following options:
699
   attended transfer, the transferer now has the following options:
694
   - *1 - cancel the attended transfer (configurable via atxferabort)
700
   - *1 - cancel the attended transfer (configurable via atxferabort)
695
   - *2 - complete the attended transfer, dropping out of the call
701
   - *2 - complete the attended transfer, dropping out of the call
696
          (configurable via atxfercomplete)
702
          (configurable via atxfercomplete)
697
   - *3 - complete the attended transfer, but stay in the call. This will turn
703
   - *3 - complete the attended transfer, but stay in the call. This will turn
698
          the call into a multi-party bridge (configurable via atxferthreeway)
704
          the call into a multi-party bridge (configurable via atxferthreeway)
699
   - *4 - swap to the other party. Once an attended transfer has begun, this
705
   - *4 - swap to the other party. Once an attended transfer has begun, this
700
          options may be used multiple times (configurable via atxferswap)
706
          options may be used multiple times (configurable via atxferswap)
701

    
   
707

   
702
 * For DTMF blind and attended transfers, the channel variable TRANSFER_CONTEXT
708
 * For DTMF blind and attended transfers, the channel variable TRANSFER_CONTEXT
703
   must be on the channel initiating the transfer to have any effect.
709
   must be on the channel initiating the transfer to have any effect.
704

    
   
710

   
705
 * The BRIDGE_FEATURES channel variable would previously only set features for
711
 * The BRIDGE_FEATURES channel variable would previously only set features for
706
   the calling party and would set this feature regardless of whether the
712
   the calling party and would set this feature regardless of whether the
707
   feature was in caps or in lowercase. Use of a caps feature for a letter
713
   feature was in caps or in lowercase. Use of a caps feature for a letter
708
   will now apply the feature to the calling party while use of a lowercase
714
   will now apply the feature to the calling party while use of a lowercase
709
   letter will apply that feature to the called party.
715
   letter will apply that feature to the called party.
710

    
   
716

   
711
 * Add support for automixmon to the BRIDGE_FEATURES channel variable.
717
 * Add support for automixmon to the BRIDGE_FEATURES channel variable.
712

    
   
718

   
713
 * The channel variable DYNAMIC_PEERNAME is redundant with BRIDGEPEER and is
719
 * The channel variable DYNAMIC_PEERNAME is redundant with BRIDGEPEER and is
714
   removed.  The more useful DYNAMIC_WHO_ACTIVATED gives the channel name that
720
   removed.  The more useful DYNAMIC_WHO_ACTIVATED gives the channel name that
715
   activated the dynamic feature.
721
   activated the dynamic feature.
716

    
   
722

   
717
 * The channel variables DYNAMIC_FEATURENAME and DYNAMIC_WHO_ACTIVATED are set
723
 * The channel variables DYNAMIC_FEATURENAME and DYNAMIC_WHO_ACTIVATED are set
718
   only on the channel executing the dynamic feature.  Executing a dynamic
724
   only on the channel executing the dynamic feature.  Executing a dynamic
719
   feature on the bridge peer in a multi-party bridge will execute it on all
725
   feature on the bridge peer in a multi-party bridge will execute it on all
720
   peers of the activating channel.
726
   peers of the activating channel.
721

    
   
727

   
722
 * You can now have the settings for a channel updated using the FEATURE()
728
 * You can now have the settings for a channel updated using the FEATURE()
723
   and FEATUREMAP() functions inherited to child channels by setting
729
   and FEATUREMAP() functions inherited to child channels by setting
724
   FEATURE(inherit)=yes.
730
   FEATURE(inherit)=yes.
725

    
   
731

   
726
 * automixmon now supports additional channel variables from automon including:
732
 * automixmon now supports additional channel variables from automon including:
727
   TOUCH_MIXMONITOR_PREFIX, TOUCH_MIXMONITOR_MESSAGE_START,
733
   TOUCH_MIXMONITOR_PREFIX, TOUCH_MIXMONITOR_MESSAGE_START,
728
   and TOUCH_MIXMONITOR_MESSAGE_STOP
734
   and TOUCH_MIXMONITOR_MESSAGE_STOP
729

    
   
735

   
730
 * A new general features.conf option 'recordingfailsound' has been added which
736
 * A new general features.conf option 'recordingfailsound' has been added which
731
   allowssetting a failure sound for a user tries to invoke a recording feature
737
   allowssetting a failure sound for a user tries to invoke a recording feature
732
   such as automon or automixmon and it fails.
738
   such as automon or automixmon and it fails.
733

    
   
739

   
734
 * It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
740
 * It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
735
   features.c for atxferdropcall=no to work properly. This option now just
741
   features.c for atxferdropcall=no to work properly. This option now just
736
   works.
742
   works.
737

    
   
743

   
738
Logging
744
Logging
739
-------------------
745
-------------------
740
 * Added log rotation strategy 'none'. If set, no log rotation strategy will
746
 * Added log rotation strategy 'none'. If set, no log rotation strategy will
741
   be used. Given that this can cause the Asterisk log files to grow quickly,
747
   be used. Given that this can cause the Asterisk log files to grow quickly,
742
   this option should only be used if an external mechanism for log management
748
   this option should only be used if an external mechanism for log management
743
   is preferred.
749
   is preferred.
744

    
   
750

   
745
Realtime
751
Realtime
746
------------------
752
------------------
747
 * Dynamic realtime tables for SIP Users can now include a 'path' field. This
753
 * Dynamic realtime tables for SIP Users can now include a 'path' field. This
748
   will store the path information for that peer when it registers. Realtime
754
   will store the path information for that peer when it registers. Realtime
749
   tables can also use the 'supportpath' field to enable Path header support.
755
   tables can also use the 'supportpath' field to enable Path header support.
750

    
   
756

   
751
 * LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
757
 * LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
752
   objectIdentifier. This maps to the supportpath option in sip.conf.
758
   objectIdentifier. This maps to the supportpath option in sip.conf.
753

    
   
759

   
754
Sorcery
760
Sorcery
755
------------------
761
------------------
756
 * Sorcery is a new data abstraction and object persistence API in Asterisk. It
762
 * Sorcery is a new data abstraction and object persistence API in Asterisk. It
757
   provides modules a useful abstraction on top of the many storage mechanisms
763
   provides modules a useful abstraction on top of the many storage mechanisms
758
   in Asterisk, including the Asterisk Database, static configuration files,
764
   in Asterisk, including the Asterisk Database, static configuration files,
759
   static Realtime, and dynamic Realtime. It also provides a caching service.
765
   static Realtime, and dynamic Realtime. It also provides a caching service.
760
   Users can configure a hierarchy of data storage layers for specific modules
766
   Users can configure a hierarchy of data storage layers for specific modules
761
   in sorcery.conf.
767
   in sorcery.conf.
762

    
   
768

   
763
 * All future modules which utilize Sorcery for object persistence must have a
769
 * All future modules which utilize Sorcery for object persistence must have a
764
   column named "id" within their schema when using the Sorcery realtime module.
770
   column named "id" within their schema when using the Sorcery realtime module.
765
   This column must be able to contain a string of up to 128 characters in length.
771
   This column must be able to contain a string of up to 128 characters in length.
766

    
   
772

   
767
Security Events Framework
773
Security Events Framework
768
------------------
774
------------------
769
 * Security Event timestamps now use ISO 8601 formatted date/time instead of
775
 * Security Event timestamps now use ISO 8601 formatted date/time instead of
770
   the "seconds-microseconds" format that it was using previously.
776
   the "seconds-microseconds" format that it was using previously.
771

    
   
777

   
772
Stasis Message Bus
778
Stasis Message Bus
773
------------------
779
------------------
774
 * The Stasis message bus is a publish/subscribe message bus internal to
780
 * The Stasis message bus is a publish/subscribe message bus internal to
775
   Asterisk. Many services in Asterisk are built on the Stasis message bus,
781
   Asterisk. Many services in Asterisk are built on the Stasis message bus,
776
   including AMI, ARI, CDRs, and CEL. Parameters controlling the operation of
782
   including AMI, ARI, CDRs, and CEL. Parameters controlling the operation of
777
   Stasis can be configured in stasis.conf. Note that these parameters operate
783
   Stasis can be configured in stasis.conf. Note that these parameters operate
778
   at a very low level in Asterisk, and generally will not require changes.
784
   at a very low level in Asterisk, and generally will not require changes.
779

    
   
785

   
780
Channel Drivers
786
Channel Drivers
781
------------------
787
------------------
782
 * When a channel driver is configured to enable jiterbuffers, they are now
788
 * When a channel driver is configured to enable jiterbuffers, they are now
783
   applied unconditionally when a channel joins a bridge. If a jitterbuffer
789
   applied unconditionally when a channel joins a bridge. If a jitterbuffer
784
   is already set for that channel when it enters, such as by the JITTERBUFFER
790
   is already set for that channel when it enters, such as by the JITTERBUFFER
785
   function, then the existing jitterbuffer will be used and the one set by
791
   function, then the existing jitterbuffer will be used and the one set by
786
   the channel driver will not be applied.
792
   the channel driver will not be applied.
787

    
   
793

   
788
chan_agent
794
chan_agent
789
------------------
795
------------------
790
 * chan_agent has been removed and replaced with AgentLogin and AgentRequest
796
 * chan_agent has been removed and replaced with AgentLogin and AgentRequest
791
   dialplan applications provided by the app_agent_pool module. Agents are
797
   dialplan applications provided by the app_agent_pool module. Agents are
792
   connected with callers using the new AgentRequest dialplan application.
798
   connected with callers using the new AgentRequest dialplan application.
793
   The Agents:<agent-id> device state is available to monitor the status of an
799
   The Agents:<agent-id> device state is available to monitor the status of an
794
   agent. See agents.conf.sample for valid configuration options.
800
   agent. See agents.conf.sample for valid configuration options.
795

    
   
801

   
796
 * The updatecdr option has been removed. Altering the names of channels on a
802
 * The updatecdr option has been removed. Altering the names of channels on a
797
   CDR is not supported - the name of the channel is the name of the channel,
803
   CDR is not supported - the name of the channel is the name of the channel,
798
   and pretending otherwise helps no one. The AGENTUPDATECDR channel variable
804
   and pretending otherwise helps no one. The AGENTUPDATECDR channel variable
799
   has also been removed, for the same reason.
805
   has also been removed, for the same reason.
800

    
   
806

   
801
 * The endcall and enddtmf configuration options are removed.  Use the
807
 * The endcall and enddtmf configuration options are removed.  Use the
802
   dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
808
   dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
803
   channel before calling AgentLogin.
809
   channel before calling AgentLogin.
804

    
   
810

   
805
chan_bridge
811
chan_bridge
806
------------------
812
------------------
807
 * chan_bridge has been removed. Its functionality has been incorporated
813
 * chan_bridge has been removed. Its functionality has been incorporated
808
   directly into the ConfBridge application itself.
814
   directly into the ConfBridge application itself.
809

    
   
815

   
810
chan_dahdi
816
chan_dahdi
811
------------------
817
------------------
812
 * Added the CLI command 'pri destroy span'. This will destroy the D-channel
818
 * Added the CLI command 'pri destroy span'. This will destroy the D-channel
813
   of the specified span and its B-channels. Note that this command should
819
   of the specified span and its B-channels. Note that this command should
814
   only be used if you understand the risks it entails.
820
   only be used if you understand the risks it entails.
815

    
   
821

   
816
 * The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
822
 * The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
817
   A range of channels can be specified to be destroyed. Note that this command
823
   A range of channels can be specified to be destroyed. Note that this command
818
   should only be used if you understand the risks it entails.
824
   should only be used if you understand the risks it entails.
819

    
   
825

   
820
 * Added the CLI command 'dahdi create channels'. A range of channels can be
826
 * Added the CLI command 'dahdi create channels'. A range of channels can be
821
   specified to be created, or the keyword 'new' can be used to add channels
827
   specified to be created, or the keyword 'new' can be used to add channels
822
   not yet created.
828
   not yet created.
823

    
   
829

   

    
   
830
 * Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.

    
   
831

   
824
chan_iax2
832
chan_iax2
825
------------------
833
------------------
826
 * IPv6 support has been added.  We are now able to bind to and
834
 * IPv6 support has been added.  We are now able to bind to and
827
   communicate using IPv6 addresses.
835
   communicate using IPv6 addresses.
828

    
   
836

   
829
chan_local
837
chan_local
830
------------------
838
------------------
831
 * The /b option has been removed.
839
 * The /b option has been removed.
832

    
   
840

   
833
 * chan_local moved into the system core and is no longer a loadable module.
841
 * chan_local moved into the system core and is no longer a loadable module.
834

    
   
842

   
835
chan_mobile
843
chan_mobile
836
------------------
844
------------------
837
 * Added general support for busy detection.
845
 * Added general support for busy detection.
838

    
   
846

   
839
 * Added ECAM command support for Sony Ericsson phones.
847
 * Added ECAM command support for Sony Ericsson phones.
840

    
   
848

   
841
chan_pjsip
849
chan_pjsip
842
------------------
850
------------------
843
 * A new SIP channel driver for Asterisk, chan_pjsip is built on the PJSIP
851
 * A new SIP channel driver for Asterisk, chan_pjsip is built on the PJSIP
844
   SIP stack. A collection of resource modules provides the bulk of the SIP
852
   SIP stack. A collection of resource modules provides the bulk of the SIP
845
   functionality. For more information on the new SIP channel driver, see
853
   functionality. For more information on the new SIP channel driver, see
846
   https://wiki.asterisk.org/wiki/x/JYGLAQ
854
   https://wiki.asterisk.org/wiki/x/JYGLAQ
847

    
   
855

   
848
chan_sip
856
chan_sip
849
------------------
857
------------------
850
 * Added support for RFC 3327 "Path" headers. This can be enabled in sip.conf
858
 * Added support for RFC 3327 "Path" headers. This can be enabled in sip.conf
851
   using the 'supportpath' setting, either on a global basis or on a peer basis.
859
   using the 'supportpath' setting, either on a global basis or on a peer basis.
852
   This setting enables Asterisk to route outgoing out-of-dialog requests via a
860
   This setting enables Asterisk to route outgoing out-of-dialog requests via a
853
   set of proxies by using a pre-loaded route-set defined by the Path headers in
861
   set of proxies by using a pre-loaded route-set defined by the Path headers in
854
   the REGISTER request. See Realtime updates for more configuration information.
862
   the REGISTER request. See Realtime updates for more configuration information.
855

    
   
863

   
856
 * The SIP_CODEC family of variables may now specify more than one codec. Each
864
 * The SIP_CODEC family of variables may now specify more than one codec. Each
857
   codec must be separated by a comma. The first codec specified is the
865
   codec must be separated by a comma. The first codec specified is the
858
   preferred codec for the offer. This allows a dialplan writer to specify both
866
   preferred codec for the offer. This allows a dialplan writer to specify both
859
   audio and video codecs, e.g., Set(SIP_CODEC=ulaw,h264)
867
   audio and video codecs, e.g., Set(SIP_CODEC=ulaw,h264)
860

    
   
868

   
861
 * The 'callevents' parameter has been removed. Hold AMI events are now raised
869
 * The 'callevents' parameter has been removed. Hold AMI events are now raised
862
   in the core, and can be filtered out using the 'eventfilter' parameter
870
   in the core, and can be filtered out using the 'eventfilter' parameter
863
   in manager.conf.
871
   in manager.conf.
864

    
   
872

   
865
 * Added 'ignore_requested_pref'. When enabled, this will use the preferred
873
 * Added 'ignore_requested_pref'. When enabled, this will use the preferred
866
   codecs configured for a peer instead of the requested codec.
874
   codecs configured for a peer instead of the requested codec.
867

    
   
875

   
868
 * The option "register_retry_403" has been added to chan_sip to work around
876
 * The option "register_retry_403" has been added to chan_sip to work around
869
   servers that are known to erroneously send 403 in response to valid
877
   servers that are known to erroneously send 403 in response to valid
870
   REGISTER requests and allows Asterisk to continue attepmting to connect.
878
   REGISTER requests and allows Asterisk to continue attepmting to connect.
871

    
   
879

   
872
chan_skinny
880
chan_skinny
873
------------------
881
------------------
874
 * Added the 'immeddialkey' parameter. If set, when the user presses the
882
 * Added the 'immeddialkey' parameter. If set, when the user presses the
875
   configured key the already entered number will be immediately dialed. This
883
   configured key the already entered number will be immediately dialed. This
876
   is useful when the dialplan allows for variable length pattern matching.
884
   is useful when the dialplan allows for variable length pattern matching.
877
   Valid options are '*' and '#'.
885
   Valid options are '*' and '#'.
878

    
   
886

   
879
 * Added the 'callfwdtimeout' parameter. This configures the amount of time (in
887
 * Added the 'callfwdtimeout' parameter. This configures the amount of time (in
880
   milliseconds) before a call forward is considered to not be answered.
888
   milliseconds) before a call forward is considered to not be answered.
881

    
   
889

   
882
 * The 'serviceurl' parameter allows Service URLs to be attached to line
890
 * The 'serviceurl' parameter allows Service URLs to be attached to line
883
   buttons.
891
   buttons.
884

    
   
892

   
885

    
   
893

   
886
Functions
894
Functions
887
------------------
895
------------------
888

    
   
896

   
889
AGENT
897
AGENT
890
------------------
898
------------------
891
 * The password option has been disabled, as the AgentLogin application no
899
 * The password option has been disabled, as the AgentLogin application no
892
   longer provides authentication.
900
   longer provides authentication.
893

    
   
901

   
894
AUDIOHOOK_INHERIT
902
AUDIOHOOK_INHERIT
895
------------------
903
------------------
896
 * Due to changes in the Asterisk core, this function is no longer needed to
904
 * Due to changes in the Asterisk core, this function is no longer needed to
897
   preserve a MixMonitor on a channel during transfer operations and dialplan
905
   preserve a MixMonitor on a channel during transfer operations and dialplan
898
   execution. It is effectively obsolete.
906
   execution. It is effectively obsolete.
899

    
   
907

   
900
CDR (function)
908
CDR (function)
901
------------------
909
------------------
902
 * The 'amaflags' and 'accountcode' attributes for the CDR function are
910
 * The 'amaflags' and 'accountcode' attributes for the CDR function are
903
   deprecated. Use the CHANNEL function instead to access these attributes.
911
   deprecated. Use the CHANNEL function instead to access these attributes.
904

    
   
912

   
905
 * The 'l' option has been removed. When reading a CDR attribute, the most
913
 * The 'l' option has been removed. When reading a CDR attribute, the most
906
   recent record is always used. When writing a CDR attribute, all non-finalized
914
   recent record is always used. When writing a CDR attribute, all non-finalized
907
   CDRs are updated.
915
   CDRs are updated.
908

    
   
916

   
909
 * The 'r' option has been removed, for the same reason as the 'l' option.
917
 * The 'r' option has been removed, for the same reason as the 'l' option.
910

    
   
918

   
911
 * The 's' option has been removed, as LOCKED semantics no longer exist in the
919
 * The 's' option has been removed, as LOCKED semantics no longer exist in the
912
   CDR engine.
920
   CDR engine.
913

    
   
921

   
914
CDR_PROP
922
CDR_PROP
915
------------------
923
------------------
916
 * A new function CDR_PROP has been added. This function lets you set properties
924
 * A new function CDR_PROP has been added. This function lets you set properties
917
   on a channel's active CDRs. This function is write-only. Properties accept
925
   on a channel's active CDRs. This function is write-only. Properties accept
918
   boolean values to set/clear them on the channel's CDRs. Valid properties
926
   boolean values to set/clear them on the channel's CDRs. Valid properties
919
   include:
927
   include:
920
   - 'party_a' - make this channel the preferred Party A in any CDR between two
928
   - 'party_a' - make this channel the preferred Party A in any CDR between two
921
     channels. If two channels have this property set, the creation time of the
929
     channels. If two channels have this property set, the creation time of the
922
     channel is used to determine who is Party A. Note that dialed channels are
930
     channel is used to determine who is Party A. Note that dialed channels are
923
     never Party A in a CDR.
931
     never Party A in a CDR.
924
   - 'disable' - disable CDRs on this channel. This is analogous to the NoCDR
932
   - 'disable' - disable CDRs on this channel. This is analogous to the NoCDR
925
     application when set to True, and analogous to the 'e' option in ResetCDR
933
     application when set to True, and analogous to the 'e' option in ResetCDR
926
     when set to False.
934
     when set to False.
927

    
   
935

   
928
CHANNEL
936
CHANNEL
929
------------------
937
------------------
930
 * Added the argument 'dtmf_features'. This sets the DTMF features that will be
938
 * Added the argument 'dtmf_features'. This sets the DTMF features that will be
931
   enabled on a channel when it enters a bridge. Allowed values are 'T', 'K',
939
   enabled on a channel when it enters a bridge. Allowed values are 'T', 'K',
932
   'H', 'W', and 'X', and are analogous to the parameters passed to the Dial
940
   'H', 'W', and 'X', and are analogous to the parameters passed to the Dial
933
   application.
941
   application.
934

    
   
942

   
935
 * Added the argument 'after_bridge_goto'. This can be set to a parseable Goto
943
 * Added the argument 'after_bridge_goto'. This can be set to a parseable Goto
936
   string, i.e., [[context],extension],priority. If set on a channel, if a
944
   string, i.e., [[context],extension],priority. If set on a channel, if a
937
   channel leaves a bridge but is not hung up it will resume dialplan execution
945
   channel leaves a bridge but is not hung up it will resume dialplan execution
938
   at that location.
946
   at that location.
939

    
   
947

   
940
JITTERBUFFER
948
JITTERBUFFER
941
------------------
949
------------------
942
 * JITTERBUFFER now accepts an argument of 'disabled' which can be used
950
 * JITTERBUFFER now accepts an argument of 'disabled' which can be used
943
   to remove jitterbuffers previously set on a channel with JITTERBUFFER.
951
   to remove jitterbuffers previously set on a channel with JITTERBUFFER.
944
   The value of this setting is ignored when disabled is used for the argument.
952
   The value of this setting is ignored when disabled is used for the argument.
945

    
   
953

   
946
PJSIP_DIAL_CONTACTS
954
PJSIP_DIAL_CONTACTS
947
------------------
955
------------------
948
 * A new function provided by chan_pjsip, this function can be used in
956
 * A new function provided by chan_pjsip, this function can be used in
949
   conjunction with the Dial application to construct a dial string that will
957
   conjunction with the Dial application to construct a dial string that will
950
   dial all contacts on an Address of Record associated with a chan_pjsip
958
   dial all contacts on an Address of Record associated with a chan_pjsip
951
   endpoint.
959
   endpoint.
952

    
   
960

   
953
PJSIP_MEDIA_OFFER
961
PJSIP_MEDIA_OFFER
954
------------------
962
------------------
955
 * Provided by chan_pjsip, this function sets the codecs to be offerred on the
963
 * Provided by chan_pjsip, this function sets the codecs to be offerred on the
956
   outbound channel prior to dialing.
964
   outbound channel prior to dialing.
957

    
   
965

   
958
REDIRECTING
966
REDIRECTING
959
------------------
967
------------------
960
 * Redirecting reasons can now be set to arbitrary strings. This means
968
 * Redirecting reasons can now be set to arbitrary strings. This means
961
   that the REDIRECTING dialplan function can be used to set the redirecting
969
   that the REDIRECTING dialplan function can be used to set the redirecting
962
   reason to any string. It also allows for custom strings to be read as the
970
   reason to any string. It also allows for custom strings to be read as the
963
   redirecting reason from SIP Diversion headers.
971
   redirecting reason from SIP Diversion headers.
964

    
   
972

   
965
SPEECH_ENGINE
973
SPEECH_ENGINE
966
------------------
974
------------------
967
 * The SPEECH_ENGINE function now supports read operations. When read from, it
975
 * The SPEECH_ENGINE function now supports read operations. When read from, it
968
   will return the current value of the requested attribute.
976
   will return the current value of the requested attribute.
969

    
   
977

   

    
   
978
VMCOUNT:

    
   
979
------------------

    
   
980
 * Mailboxes defined by app_voicemail MUST be referenced by the rest of the

    
   
981
   system as mailbox@context.  The rest of the system cannot add @default

    
   
982
   to mailbox identifiers for app_voicemail that do not specify a context

    
   
983
   any longer.  It is a mailbox identifier format that should only be

    
   
984
   interpreted by app_voicemail.

    
   
985

   
970

    
   
986

   
971
Resources
987
Resources
972
------------------
988
------------------
973

    
   
989

   
974
res_agi (Asterisk Gateway Interface)
990
res_agi (Asterisk Gateway Interface)
975
------------------
991
------------------
976
 * The manager event AGIExec has been split into AGIExecStart and AGIExecEnd.
992
 * The manager event AGIExec has been split into AGIExecStart and AGIExecEnd.
977

    
   
993

   
978
 * The manager event AsyncAGI has been split into AsyncAGIStart, AsyncAGIExec,
994
 * The manager event AsyncAGI has been split into AsyncAGIStart, AsyncAGIExec,
979
   and AsyncAGIEnd.
995
   and AsyncAGIEnd.
980

    
   
996

   
981
 * The CONTROL STREAM FILE command now accepts an offsetms parameter. This
997
 * The CONTROL STREAM FILE command now accepts an offsetms parameter. This
982
   will start the playback of the audio at the position specified. It will
998
   will start the playback of the audio at the position specified. It will
983
   also return the final position of the file in 'endpos'.
999
   also return the final position of the file in 'endpos'.
984

    
   
1000

   
985
 * The CONTROL STREAM FILE command will now populate the CPLAYBACKSTATUS
1001
 * The CONTROL STREAM FILE command will now populate the CPLAYBACKSTATUS
986
   channel variable if the user stopped the file playback or if a remote
1002
   channel variable if the user stopped the file playback or if a remote
987
   entity stopped the playback. If neither stopped the playback, it will
1003
   entity stopped the playback. If neither stopped the playback, it will
988
   indicate the overall success/failure of the playback. If stopped early,
1004
   indicate the overall success/failure of the playback. If stopped early,
989
   the final offset of the file will be set in the CPLAYBACKOFFSET channel
1005
   the final offset of the file will be set in the CPLAYBACKOFFSET channel
990
   variable.
1006
   variable.
991

    
   
1007

   
992
 * The SAY ALPHA command now accepts an additional parameter to control
1008
 * The SAY ALPHA command now accepts an additional parameter to control
993
   whether it specifies the case of uppercase, lowercase, or all letters to
1009
   whether it specifies the case of uppercase, lowercase, or all letters to
994
   provide functionality similar to SayAlphaCase.
1010
   provide functionality similar to SayAlphaCase.
995

    
   
1011

   
996
res_ari (Asterisk RESTful Interface) (and others)
1012
res_ari (Asterisk RESTful Interface) (and others)
997
------------------
1013
------------------
998
 * The Asterisk RESTful Interface (ARI) provides a mechanism to expose and
1014
 * The Asterisk RESTful Interface (ARI) provides a mechanism to expose and
999
   control telephony primitives in Asterisk by remote client. This includes
1015
   control telephony primitives in Asterisk by remote client. This includes
1000
   channels, bridges, endpoints, media, and other fundamental concepts. Users
1016
   channels, bridges, endpoints, media, and other fundamental concepts. Users
1001
   of ARI can develop their own communications applications, controlling
1017
   of ARI can develop their own communications applications, controlling
1002
   multiple channels using an HTTP RESTful interface and receiving JSON events
1018
   multiple channels using an HTTP RESTful interface and receiving JSON events
1003
   about the objects via a WebSocket connection. ARI can be configured in
1019
   about the objects via a WebSocket connection. ARI can be configured in
1004
   Asterisk via ari.conf. For more information on ARI, see
1020
   Asterisk via ari.conf. For more information on ARI, see
1005
   https://wiki.asterisk.org/wiki/x/0YCLAQ
1021
   https://wiki.asterisk.org/wiki/x/0YCLAQ
1006

    
   
1022

   
1007
res_parking
1023
res_parking
1008
-------------------
1024
-------------------
1009
 * Parking has been extracted from the Asterisk core as a loadable module,
1025
 * Parking has been extracted from the Asterisk core as a loadable module,
1010
   res_parking. Configuration for parking is now provided by res_parking.conf.
1026
   res_parking. Configuration for parking is now provided by res_parking.conf.
1011
   Configuration through features.conf is no longer supported.
1027
   Configuration through features.conf is no longer supported.
1012

    
   
1028

   
1013
 * res_parking uses the configuration framework. If an invalid configuration is
1029
 * res_parking uses the configuration framework. If an invalid configuration is
1014
   supplied, res_parking will fail to load or fail to reload. Previously,
1030
   supplied, res_parking will fail to load or fail to reload. Previously,
1015
   invalid configurations would generally be accepted, with certain errors
1031
   invalid configurations would generally be accepted, with certain errors
1016
   resulting in individually disabled parking lots.
1032
   resulting in individually disabled parking lots.
1017

    
   
1033

   
1018
 * Parked calls are now placed in bridges. While this is largely an
1034
 * Parked calls are now placed in bridges. While this is largely an
1019
   architectural change, it does have implications on how channels in a parking
1035
   architectural change, it does have implications on how channels in a parking
1020
   lot are viewed. For example, commands that display channels in bridges will
1036
   lot are viewed. For example, commands that display channels in bridges will
1021
   now also display the channels in a parking lot.
1037
   now also display the channels in a parking lot.
1022

    
   
1038

   
1023
 * The order of arguments for the new parking applications have been modified.
1039
 * The order of arguments for the new parking applications have been modified.
1024
   Timeout and return context/exten/priority are now implemented as options,
1040
   Timeout and return context/exten/priority are now implemented as options,
1025
   while the name of the parking lot is now the first parameter. See the
1041
   while the name of the parking lot is now the first parameter. See the
1026
   application documentation for Park, ParkedCall, and ParkAndAnnounce for more
1042
   application documentation for Park, ParkedCall, and ParkAndAnnounce for more
1027
   in-depth information as well as syntax.
1043
   in-depth information as well as syntax.
1028

    
   
1044

   
1029
 * Extensions are by default no longer automatically created in the dialplan to
1045
 * Extensions are by default no longer automatically created in the dialplan to
1030
   park calls or pickup parked calls. Generation of dialplan extensions can be
1046
   park calls or pickup parked calls. Generation of dialplan extensions can be
1031
   enabled using the 'parkext' configuration option.
1047
   enabled using the 'parkext' configuration option.
1032

    
   
1048

   
1033
 * ADSI functionality for parking is no longer supported. The 'adsipark'
1049
 * ADSI functionality for parking is no longer supported. The 'adsipark'
1034
   configuration option has been removed as a result.
1050
   configuration option has been removed as a result.
1035

    
   
1051

   
1036
 * The PARKINGSLOT channel variable has been deprecated in favor of
1052
 * The PARKINGSLOT channel variable has been deprecated in favor of
1037
   PARKING_SPACE to match the naming scheme of the new system.
1053
   PARKING_SPACE to match the naming scheme of the new system.
1038

    
   
1054

   
1039
 * PARKING_SPACE and PARKEDLOT channel variables will now be set for a parked
1055
 * PARKING_SPACE and PARKEDLOT channel variables will now be set for a parked
1040
   channel even when the configuration option 'comebactoorigin' is enabled.
1056
   channel even when the configuration option 'comebactoorigin' is enabled.
1041

    
   
1057

   
1042
 * A new CLI command 'parking show' has been added. This allows a user to
1058
 * A new CLI command 'parking show' has been added. This allows a user to
1043
   inspect the parking lots that are currently in use.
1059
   inspect the parking lots that are currently in use.
1044
   'parking show <parkinglot>' will also show the parked calls in a specific
1060
   'parking show <parkinglot>' will also show the parked calls in a specific
1045
   parking lot.
1061
   parking lot.
1046

    
   
1062

   
1047
 * The CLI command 'parkedcalls' is now deprecated in favor of
1063
 * The CLI command 'parkedcalls' is now deprecated in favor of
1048
   'parking show <parkinglot>'.
1064
   'parking show <parkinglot>'.
1049

    
   
1065

   
1050
 * The AMI command 'ParkedCalls' will now accept a 'ParkingLot' argument which
1066
 * The AMI command 'ParkedCalls' will now accept a 'ParkingLot' argument which
1051
   can be used to get a list of parked calls for a specific parking lot.
1067
   can be used to get a list of parked calls for a specific parking lot.
1052

    
   
1068

   
1053
 * The AMI command 'Park' field 'Channel2' has been deprecated and replaced
1069
 * The AMI command 'Park' field 'Channel2' has been deprecated and replaced
1054
   with 'TimeoutChannel'. If both 'Channel2' and 'TimeoutChannel' are
1070
   with 'TimeoutChannel'. If both 'Channel2' and 'TimeoutChannel' are
1055
   specified, 'TimeoutChannel' will be used. The field 'TimeoutChannel' is no
1071
   specified, 'TimeoutChannel' will be used. The field 'TimeoutChannel' is no
1056
   longer a required argument.
1072
   longer a required argument.
1057

    
   
1073

   
1058
 * The ParkAndAnnounce application is now provided through res_parking instead
1074
 * The ParkAndAnnounce application is now provided through res_parking instead
1059
   of through the separate app_parkandannounce module.
1075
   of through the separate app_parkandannounce module.
1060

    
   
1076

   
1061
 * ParkAndAnnounce will no longer go to the next position in dialplan on timeout
1077
 * ParkAndAnnounce will no longer go to the next position in dialplan on timeout
1062
   by default. Instead, it will follow the timeout rules of the parking lot. The
1078
   by default. Instead, it will follow the timeout rules of the parking lot. The
1063
   old behavior can be reproduced by using the 'c' option.
1079
   old behavior can be reproduced by using the 'c' option.
1064

    
   
1080

   
1065
 * Dynamic parking lots will now fail to be created under the following
1081
 * Dynamic parking lots will now fail to be created under the following
1066
   conditions:
1082
   conditions:
1067
   - if the parking lot specified by PARKINGDYNAMIC does not exist
1083
   - if the parking lot specified by PARKINGDYNAMIC does not exist
1068
   - if they require exclusive park and parkedcall extensions which overlap
1084
   - if they require exclusive park and parkedcall extensions which overlap
1069
     with existing parking lots.
1085
     with existing parking lots.
1070

    
   
1086

   
1071
 * Dynamic parking lots will be cleared on reload for dynamic parking lots that
1087
 * Dynamic parking lots will be cleared on reload for dynamic parking lots that
1072
   currently contain no calls. Dynamic parking lots containing parked calls
1088
   currently contain no calls. Dynamic parking lots containing parked calls
1073
   will persist through the reloads without alteration.
1089
   will persist through the reloads without alteration.
1074

    
   
1090

   
1075
 * If 'parkext_exclusive' is set for a parking lot and that extension is
1091
 * If 'parkext_exclusive' is set for a parking lot and that extension is
1076
   already in use when that parking lot tries to register it, this is now
1092
   already in use when that parking lot tries to register it, this is now
1077
   considered a parking system configuration error. Configurations which do
1093
   considered a parking system configuration error. Configurations which do
1078
   this will be rejected.
1094
   this will be rejected.
1079

    
   
1095

   
1080
 * Added channel variable PARKER_FLAT. This contains the name of the extension
1096
 * Added channel variable PARKER_FLAT. This contains the name of the extension
1081
   that would be used if 'comebacktoorigin' is enabled. This can be useful when
1097
   that would be used if 'comebacktoorigin' is enabled. This can be useful when
1082
   comebacktoorigin is disabled, but the dialplan or an external control
1098
   comebacktoorigin is disabled, but the dialplan or an external control
1083
   mechanism wants to use the extension in the park-dial context that was
1099
   mechanism wants to use the extension in the park-dial context that was
1084
   generated to re-dial the parker on timeout.
1100
   generated to re-dial the parker on timeout.
1085

    
   
1101

   
1086
res_pjsip (and many others)
1102
res_pjsip (and many others)
1087
------------------
1103
------------------
1088
 * A large number of resource modules make up the SIP stack based on pjsip.
1104
 * A large number of resource modules make up the SIP stack based on pjsip.
1089
   The chan_pjsip channel driver users these resource modules to provide
1105
   The chan_pjsip channel driver users these resource modules to provide
1090
   various SIP functionality in Asterisk. The majority of configuration for
1106
   various SIP functionality in Asterisk. The majority of configuration for
1091
   these modules is performed in pjsip.conf. Other modules may use their
1107
   these modules is performed in pjsip.conf. Other modules may use their
1092
   own configuration files.
1108
   own configuration files.
1093

    
   
1109

   
1094
res_rtp_asterisk
1110
res_rtp_asterisk
1095
------------------
1111
------------------
1096
 * ICE/STUN/TURN support in res_rtp_asterisk has been made optional.  To enable
1112
 * ICE/STUN/TURN support in res_rtp_asterisk has been made optional.  To enable
1097
   them, an Asterisk-specific version of PJSIP needs to be installed.
1113
   them, an Asterisk-specific version of PJSIP needs to be installed.
1098
   Tarballs are available from https://github.com/asterisk/pjproject/tags/.
1114
   Tarballs are available from https://github.com/asterisk/pjproject/tags/.
1099

    
   
1115

   
1100
res_statsd/res_chan_stats
1116
res_statsd/res_chan_stats
1101
------------------
1117
------------------
1102
 * A new resource module, res_statsd, has been added, which acts as a statsd
1118
 * A new resource module, res_statsd, has been added, which acts as a statsd
1103
   client. This module allows Asterisk to publish statistics to a statsd
1119
   client. This module allows Asterisk to publish statistics to a statsd
1104
   server. In conjunction with res_chan_stats, it will publish statistics about
1120
   server. In conjunction with res_chan_stats, it will publish statistics about
1105
   channels to the statsd server. It can be configured via res_statsd.conf.
1121
   channels to the statsd server. It can be configured via res_statsd.conf.
1106

    
   
1122

   
1107
res_xmpp
1123
res_xmpp
1108
------------------
1124
------------------
1109
 * Device state for XMPP buddies is now available using the following format:
1125
 * Device state for XMPP buddies is now available using the following format:
1110
   XMPP/<client name>/<buddy address>
1126
   XMPP/<client name>/<buddy address>
1111
   If any resource is available the device state is considered to be not in use.
1127
   If any resource is available the device state is considered to be not in use.
1112
   If no resources exist or all are unavailable the device state is considered
1128
   If no resources exist or all are unavailable the device state is considered
1113
   to be unavailable.
1129
   to be unavailable.
1114

    
   
1130

   
1115

    
   
1131

   
1116
Scripts
1132
Scripts
1117
------------------
1133
------------------
1118

    
   
1134

   
1119
Realtime/Database Scripts
1135
Realtime/Database Scripts
1120
------------------
1136
------------------
1121
 * Asterisk previously included example db schemas in the contrib/realtime/
1137
 * Asterisk previously included example db schemas in the contrib/realtime/
1122
   directory of the source tree.  This has been replaced by a set of database
1138
   directory of the source tree.  This has been replaced by a set of database
1123
   migrations using the Alembic framework.  This allows you to use alembic to
1139
   migrations using the Alembic framework.  This allows you to use alembic to
1124
   initialize the database for you.  It will also serve as a database migration
1140
   initialize the database for you.  It will also serve as a database migration
1125
   tool when upgrading Asterisk in the future.
1141
   tool when upgrading Asterisk in the future.
1126

    
   
1142

   
1127
   See contrib/ast-db-manage/README.md for more details.
1143
   See contrib/ast-db-manage/README.md for more details.
1128

    
   
1144

   
1129
sip_to_res_pjsip.py
1145
sip_to_res_pjsip.py
1130
-------------------
1146
-------------------
1131
 * A new script has been added in the contrib/scripts/sip_to_res_pjsip folder.
1147
 * A new script has been added in the contrib/scripts/sip_to_res_pjsip folder.
1132
   This python script will convert an existing sip.conf file to a
1148
   This python script will convert an existing sip.conf file to a
1133
   pjsip.conf file, for use with the chan_pjsip channel driver. This script
1149
   pjsip.conf file, for use with the chan_pjsip channel driver. This script
1134
   is meant to be an aid in converting an existing chan_sip configuration to
1150
   is meant to be an aid in converting an existing chan_sip configuration to
1135
   a chan_pjsip configuration, but it is expected that configuration beyond
1151
   a chan_pjsip configuration, but it is expected that configuration beyond
1136
   what the script provides will be needed.
1152
   what the script provides will be needed.
1137

    
   
1153

   
1138

    
   
1154

   
1139
------------------------------------------------------------------------------
1155
------------------------------------------------------------------------------
1140
--- Functionality changes from Asterisk 10 to Asterisk 11 --------------------
1156
--- Functionality changes from Asterisk 10 to Asterisk 11 --------------------
1141
------------------------------------------------------------------------------
1157
------------------------------------------------------------------------------
1142

    
   
1158

   
1143
Build System
1159
Build System
1144
-------------------
1160
-------------------
1145
 * The Asterisk build system will now build and install a shared library
1161
 * The Asterisk build system will now build and install a shared library
1146
   (libasteriskssl.so) used to wrap various initialization and shutdown functions
1162
   (libasteriskssl.so) used to wrap various initialization and shutdown functions
1147
   from the libssl and libcrypto libraries provided by OpenSSL. This is done so
1163
   from the libssl and libcrypto libraries provided by OpenSSL. This is done so
1148
   that Asterisk can ensure that these functions do *not* get called by any
1164
   that Asterisk can ensure that these functions do *not* get called by any
1149
   modules that are loaded into Asterisk, since they should only be called once
1165
   modules that are loaded into Asterisk, since they should only be called once
1150
   in any single process. If desired, this feature can be disabled by supplying
1166
   in any single process. If desired, this feature can be disabled by supplying
1151
   the "--disable-asteriskssl" option to the configure script.
1167
   the "--disable-asteriskssl" option to the configure script.
1152

    
   
1168

   
1153
 * A new make target, 'full', has been added to the Makefile.  This performs
1169
 * A new make target, 'full', has been added to the Makefile.  This performs
1154
   the same compilation actions as make all, but will also scan the entirety of
1170
   the same compilation actions as make all, but will also scan the entirety of
1155
   each source file for documentation.  This option is needed to generate AMI
1171
   each source file for documentation.  This option is needed to generate AMI
1156
   event documentation.  Note that your system must have Python in order for
1172
   event documentation.  Note that your system must have Python in order for
1157
   this make target to succeed.
1173
   this make target to succeed.
1158

    
   
1174

   
1159
 * The optimization portion of the build system has been reworked to avoid
1175
 * The optimization portion of the build system has been reworked to avoid
1160
   broken builds on certain architectures.  All architecture-specific
1176
   broken builds on certain architectures.  All architecture-specific
1161
   optimization has been removed in favor of using -march=native to allow gcc
1177
   optimization has been removed in favor of using -march=native to allow gcc
1162
   to detect the environment in which it is running when possible.  This can
1178
   to detect the environment in which it is running when possible.  This can
1163
   be toggled as BUILD_NATIVE under "Compiler Flags" in menuselect.
1179
   be toggled as BUILD_NATIVE under "Compiler Flags" in menuselect.
1164

    
   
1180

   
1165
 * BUILD_CFLAGS and BUILD_LDFLAGS can now be passed to menuselect, e.g.,
1181
 * BUILD_CFLAGS and BUILD_LDFLAGS can now be passed to menuselect, e.g.,
1166
   make BUILD_CFLAGS="whatever" BUILD_LDFLAGS="whatever"
1182
   make BUILD_CFLAGS="whatever" BUILD_LDFLAGS="whatever"
1167

    
   
1183

   
1168
 * Remove "asterisk/version.h" in favor of "asterisk/ast_version.h".  If you
1184
 * Remove "asterisk/version.h" in favor of "asterisk/ast_version.h".  If you
1169
   previously parsed the header file to obtain the version of Asterisk, you
1185
   previously parsed the header file to obtain the version of Asterisk, you
1170
   will now have to go through Asterisk to get the version information.
1186
   will now have to go through Asterisk to get the version information.
1171

    
   
1187

   
1172

    
   
1188

   
1173
Applications
1189
Applications
1174
-------------------
1190
-------------------
1175

    
   
1191

   
1176
Bridge
1192
Bridge
1177
-------------------
1193
-------------------
1178
 * Added 'F()' option. Similar to the dial option, this can be supplied with
1194
 * Added 'F()' option. Similar to the dial option, this can be supplied with
1179
   arguments indicating where the callee should go after the caller is hung up,
1195
   arguments indicating where the callee should go after the caller is hung up,
1180
   or without options specified, the priority after the Queue will be used.
1196
   or without options specified, the priority after the Queue will be used.
1181

    
   
1197

   
1182

    
   
1198

   
1183
ConfBridge
1199
ConfBridge
1184
-------------------
1200
-------------------
1185
 * Added menu action admin_toggle_mute_participants.  This will mute / unmute
1201
 * Added menu action admin_toggle_mute_participants.  This will mute / unmute
1186
   all non-admin participants on a conference.  The confbridge configuration
1202
   all non-admin participants on a conference.  The confbridge configuration
1187
   file also allows for the default sounds played to all conference users when
1203
   file also allows for the default sounds played to all conference users when
1188
   this occurs to be overriden using sound_participants_unmuted and
1204
   this occurs to be overriden using sound_participants_unmuted and
1189
   sound_participants_muted.
1205
   sound_participants_muted.
1190

    
   
1206

   
1191
 * Added menu action participant_count.  This will playback the number of
1207
 * Added menu action participant_count.  This will playback the number of
1192
   current participants in a conference.
1208
   current participants in a conference.
1193

    
   
1209

   
1194
 * Added announcement configuration option to user profile. If set the sound
1210
 * Added announcement configuration option to user profile. If set the sound
1195
   file will be played to the user, and only the user, upon joining the
1211
   file will be played to the user, and only the user, upon joining the
1196
   conference bridge.
1212
   conference bridge.
1197

    
   
1213

   
1198
 * Added record_file_append option that defaults to "yes", but if set to no
1214
 * Added record_file_append option that defaults to "yes", but if set to no
1199
   will create a new file between each start/stop recording.
1215
   will create a new file between each start/stop recording.
1200

    
   
1216

   
1201

    
   
1217

   
1202
Dial
1218
Dial
1203
-------------------
1219
-------------------
1204
 * Added 'b' and 'B' options to Dial that execute a Gosub on callee and caller
1220
 * Added 'b' and 'B' options to Dial that execute a Gosub on callee and caller
1205
   channels respectively before the callee channels are called.
1221
   channels respectively before the callee channels are called.
1206

    
   
1222

   
1207

    
   
1223

   
1208
ExternalIVR
1224
ExternalIVR
1209
-------------------
1225
-------------------
1210
 * Added support for IPv6.
1226
 * Added support for IPv6.
1211

    
   
1227

   
1212
 * Add interrupt ('I') command to ExternalIVR.  Sending this command from an
1228
 * Add interrupt ('I') command to ExternalIVR.  Sending this command from an
1213
   external process will cause the current playlist to be cleared, including
1229
   external process will cause the current playlist to be cleared, including
1214
   stopping any audio file that is currently playing.  This is useful when you
1230
   stopping any audio file that is currently playing.  This is useful when you
1215
   want to interrupt audio playback only when specific DTMF is entered by the
1231
   want to interrupt audio playback only when specific DTMF is entered by the
1216
   caller.
1232
   caller.
1217

    
   
1233

   
1218

    
   
1234

   
1219
FollowMe
1235
FollowMe
1220
-------------------
1236
-------------------
1221
 * A new option, 'I' has been added to app_followme. By setting this option,
1237
 * A new option, 'I' has been added to app_followme. By setting this option,
1222
   Asterisk will not update the caller with connected line changes when they
1238
   Asterisk will not update the caller with connected line changes when they
1223
   occur.  This is similar to app_dial and app_queue.
1239
   occur.  This is similar to app_dial and app_queue.
1224

    
   
1240

   
1225
 * The 'N' option is now ignored if the call is already answered.
1241
 * The 'N' option is now ignored if the call is already answered.
1226

    
   
1242

   
1227
 * Added 'b' and 'B' options to FollowMe that execute a Gosub on callee
1243
 * Added 'b' and 'B' options to FollowMe that execute a Gosub on callee
1228
   and caller channels respectively before the callee channels are called.
1244
   and caller channels respectively before the callee channels are called.
1229

    
   
1245

   
1230
 * The winning FollowMe outgoing call is now put on hold if the caller put it on
1246
 * The winning FollowMe outgoing call is now put on hold if the caller put it on
1231
   hold.
1247
   hold.
1232

    
   
1248

   
1233

    
   
1249

   
1234
MixMonitor
1250
MixMonitor
1235
------------------
1251
------------------
1236
 * MixMonitor hooks now have IDs associated with them which can be used to
1252
 * MixMonitor hooks now have IDs associated with them which can be used to
1237
   assign a target to StopMixMonitor. Use of MixMonitor's i(variable) option
1253
   assign a target to StopMixMonitor. Use of MixMonitor's i(variable) option
1238
   will allow storage of the MixMontior ID in a channel variable. StopMixmonitor
1254
   will allow storage of the MixMontior ID in a channel variable. StopMixmonitor
1239
   now accepts that ID as an argument.
1255
   now accepts that ID as an argument.
1240

    
   
1256

   
1241
 * Added 'm' option, which stores a copy of the recording as a voicemail in the
1257
 * Added 'm' option, which stores a copy of the recording as a voicemail in the
1242
   indicated mailboxes.
1258
   indicated mailboxes.
1243

    
   
1259

   
1244

    
   
1260

   
1245
MySQL
1261
MySQL
1246
-------------------
1262
-------------------
1247
 * The connect action in app_mysql now allows you to specify a port number to
1263
 * The connect action in app_mysql now allows you to specify a port number to
1248
   connect to.  This is useful if you run a MySQL server on a non-standard
1264
   connect to.  This is useful if you run a MySQL server on a non-standard
1249
   port number.
1265
   port number.
1250

    
   
1266

   
1251

    
   
1267

   
1252
OSP Applications
1268
OSP Applications
1253
-------------------
1269
-------------------
1254
 * Increased the default number of allowed destinations from 5 to 12.
1270
 * Increased the default number of allowed destinations from 5 to 12.
1255

    
   
1271

   
1256

    
   
1272

   
1257
Page
1273
Page
1258
-------------------
1274
-------------------
1259
 * The app_page application now no longer depends on DAHDI or app_meetme.  It
1275
 * The app_page application now no longer depends on DAHDI or app_meetme.  It
1260
   has been re-architected to use app_confbridge internally.
1276
   has been re-architected to use app_confbridge internally.
1261

    
   
1277

   
1262

    
   
1278

   
1263
Queue
1279
Queue
1264
-------------------
1280
-------------------
1265
 * Added queue options autopausebusy and autopauseunavail for automatically
1281
 * Added queue options autopausebusy and autopauseunavail for automatically
1266
   pausing a queue member when their device reports busy or congestion.
1282
   pausing a queue member when their device reports busy or congestion.
1267

    
   
1283

   
1268
 * The 'ignorebusy' option for queue members has been deprecated in favor of
1284
 * The 'ignorebusy' option for queue members has been deprecated in favor of
1269
   the option 'ringinuse. Also a 'queue set ringinuse' CLI command has been
1285
   the option 'ringinuse. Also a 'queue set ringinuse' CLI command has been
1270
   added as well as an AMI action 'QueueMemberRingInUse' to set this variable on a
1286
   added as well as an AMI action 'QueueMemberRingInUse' to set this variable on a
1271
   per interface basis. Individual ringinuse values can now be set in
1287
   per interface basis. Individual ringinuse values can now be set in
1272
   queues.conf via an argument to member definitions. Lastly, the queue
1288
   queues.conf via an argument to member definitions. Lastly, the queue
1273
   'ringinuse' setting now only determines defaults for the per member
1289
   'ringinuse' setting now only determines defaults for the per member
1274
   'ringinuse' setting and does not override per member settings like it does
1290
   'ringinuse' setting and does not override per member settings like it does
1275
   in earlier versions.
1291
   in earlier versions.
1276

    
   
1292

   
1277
 * Added 'F()' option. Similar to the dial option, this can be supplied with
1293
 * Added 'F()' option. Similar to the dial option, this can be supplied with
1278
   arguments indicating where the callee should go after the caller is hung up,
1294
   arguments indicating where the callee should go after the caller is hung up,
1279
   or without options specified, the priority after the Queue will be used.
1295
   or without options specified, the priority after the Queue will be used.
1280

    
   
1296

   
1281
 * Added new option log_member_name_as_agent, which will cause the membername to
1297
 * Added new option log_member_name_as_agent, which will cause the membername to
1282
   be logged in the agent field for ADDMEMBER and REMOVEMEMBER queue events if a
1298
   be logged in the agent field for ADDMEMBER and REMOVEMEMBER queue events if a
1283
   state_interface has been set.
1299
   state_interface has been set.
1284

    
   
1300

   
1285
 * Add queue monitoring hints.  exten => 8501,hint,Queue:markq.
1301
 * Add queue monitoring hints.  exten => 8501,hint,Queue:markq.
1286

    
   
1302

   
1287
 * App_queue will now play periodic announcements for the caller that
1303
 * App_queue will now play periodic announcements for the caller that
1288
   holds the first position in the queue while waiting for answer.
1304
   holds the first position in the queue while waiting for answer.
1289

    
   
1305

   
1290
SayUnixTime
1306
SayUnixTime
1291
------------------
1307
------------------
1292
 * Added 'j' option to SayUnixTime. SayUnixTime no longer auto jumps to extension
1308
 * Added 'j' option to SayUnixTime. SayUnixTime no longer auto jumps to extension
1293
   when receiving DTMF.  Use the 'j' option to enable extension jumping. Also
1309
   when receiving DTMF.  Use the 'j' option to enable extension jumping. Also
1294
   changed arguments to SayUnixTime so that every option is truly optional even
1310
   changed arguments to SayUnixTime so that every option is truly optional even
1295
   when using multiple options (so that j option could be used without having to
1311
   when using multiple options (so that j option could be used without having to
1296
   manually specify timezone and format) There are other benefits, e.g., format
1312
   manually specify timezone and format) There are other benefits, e.g., format
1297
   can now be used without specifying time zone as well.
1313
   can now be used without specifying time zone as well.
1298

    
   
1314

   
1299

    
   
1315

   
1300
Voicemail
1316
Voicemail
1301
------------------
1317
------------------
1302
 * Addition of the VM_INFO function - see Function changes.
1318
 * Addition of the VM_INFO function - see Function changes.
1303

    
   
1319

   
1304
 * The imapserver, imapport, and imapflags configuration options can now be
1320
 * The imapserver, imapport, and imapflags configuration options can now be
1305
   overriden on a user by user basis.
1321
   overriden on a user by user basis.
1306

    
   
1322

   
1307
 * When voicemail plays a message's envelope with saycid set to yes, when
1323
 * When voicemail plays a message's envelope with saycid set to yes, when
1308
   reaching the caller id field it will play a recording of a file with the same
1324
   reaching the caller id field it will play a recording of a file with the same
1309
   base name as the sender's callerid if there is a similarly named file in
1325
   base name as the sender's callerid if there is a similarly named file in
1310
   <astspooldir>/recordings/callerids/
1326
   <astspooldir>/recordings/callerids/
1311

    
   
1327

   
1312
 * Voicemails now contains a unique message identifier "msg_id", which is stored
1328
 * Voicemails now contains a unique message identifier "msg_id", which is stored
1313
   in the message envelope with the sound files.  IMAP backends will now store
1329
   in the message envelope with the sound files.  IMAP backends will now store
1314
   the message identifiers with a header of "X-Asterisk-VM-Message-ID".  ODBC
1330
   the message identifiers with a header of "X-Asterisk-VM-Message-ID".  ODBC
1315
   backends will store the message identifier in a "msg_id" column.  See
1331
   backends will store the message identifier in a "msg_id" column.  See
1316
   UPGRADE.txt for more information.
1332
   UPGRADE.txt for more information.
1317

    
   
1333

   
1318
 * Added VoiceMailPlayMsg application.  This application will play a single
1334
 * Added VoiceMailPlayMsg application.  This application will play a single
1319
   voicemail message from a mailbox.  The result of the application, SUCCESS or
1335
   voicemail message from a mailbox.  The result of the application, SUCCESS or
1320
   FAILED, is stored in the channel variable VOICEMAIL_PLAYBACKSTATUS.
1336
   FAILED, is stored in the channel variable VOICEMAIL_PLAYBACKSTATUS.
1321

    
   
1337

   
1322

    
   
1338

   
1323
Functions
1339
Functions
1324
------------------
1340
------------------
1325
 * Hangup handlers can be attached to channels using the CHANNEL() function.
1341
 * Hangup handlers can be attached to channels using the CHANNEL() function.
1326
   Hangup handlers will run when the channel is hung up similar to the h
1342
   Hangup handlers will run when the channel is hung up similar to the h
1327
   extension. The hangup_handler_push option will push a GoSub compatible
1343
   extension. The hangup_handler_push option will push a GoSub compatible
1328
   location in the dialplan onto the channel's hangup handler stack.  The
1344
   location in the dialplan onto the channel's hangup handler stack.  The
1329
   hangup_handler_pop option will remove the last added location, and optionally
1345
   hangup_handler_pop option will remove the last added location, and optionally
1330
   replace it with a new GoSub compatible location.  The hangup_handler_wipe
1346
   replace it with a new GoSub compatible location.  The hangup_handler_wipe
1331
   option will remove all locations on the stack, and optionally add a new
1347
   option will remove all locations on the stack, and optionally add a new
1332
   location.
1348
   location.
1333

    
   
1349

   
1334
 * The expression parser now recognizes the ABS() absolute value function,
1350
 * The expression parser now recognizes the ABS() absolute value function,
1335
   which will convert negative floating point values to positive values.
1351
   which will convert negative floating point values to positive values.
1336

    
   
1352

   
1337
 * FAXOPT(faxdetect) will enable a generic fax detect framehook for dialplan
1353
 * FAXOPT(faxdetect) will enable a generic fax detect framehook for dialplan
1338
   control of faxdetect.
1354
   control of faxdetect.
1339

    
   
1355

   
1340
 * Addition of the VM_INFO function that can be used to retrieve voicemail
1356
 * Addition of the VM_INFO function that can be used to retrieve voicemail
1341
   user information, such as the email address and full name.
1357
   user information, such as the email address and full name.
1342
   The MAILBOX_EXISTS dialplan function has been deprecated in favour of
1358
   The MAILBOX_EXISTS dialplan function has been deprecated in favour of
1343
   VM_INFO.
1359
   VM_INFO.
1344

    
   
1360

   
1345
 * The REDIRECTING function now supports the redirecting original party id
1361
 * The REDIRECTING function now supports the redirecting original party id
1346
   and reason.
1362
   and reason.
1347

    
   
1363

   
1348
 * Two new functions have been added: FEATURE() and FEATUREMAP().  FEATURE()
1364
 * Two new functions have been added: FEATURE() and FEATUREMAP().  FEATURE()
1349
   lets you set some of the configuration options from the [general] section
1365
   lets you set some of the configuration options from the [general] section
1350
   of features.conf on a per-channel basis.  FEATUREMAP() lets you customize
1366
   of features.conf on a per-channel basis.  FEATUREMAP() lets you customize
1351
   the key sequence used to activate built-in features, such as blindxfer,
1367
   the key sequence used to activate built-in features, such as blindxfer,
1352
   and automon.  See the built-in documentation for details.
1368
   and automon.  See the built-in documentation for details.
1353

    
   
1369

   
1354
 * MESSAGE(from) for incoming SIP messages now returns "display-name" <uri>
1370
 * MESSAGE(from) for incoming SIP messages now returns "display-name" <uri>
1355
   instead of simply the uri.  This is the format that MessageSend() can use
1371
   instead of simply the uri.  This is the format that MessageSend() can use
1356
   in the from parameter for outgoing SIP messages.
1372
   in the from parameter for outgoing SIP messages.
1357

    
   
1373

   
1358
 * Added the PRESENCE_STATE function.  This allows retrieving presence state
1374
 * Added the PRESENCE_STATE function.  This allows retrieving presence state
1359
   information from any presence state provider.  It also allows setting
1375
   information from any presence state provider.  It also allows setting
1360
   presence state information from a CustomPresence presence state provider.
1376
   presence state information from a CustomPresence presence state provider.
1361
   See AMI/CLI changes for related commands.
1377
   See AMI/CLI changes for related commands.
1362

    
   
1378

   
1363
 * Added the AMI_CLIENT function to make manager account attributes available
1379
 * Added the AMI_CLIENT function to make manager account attributes available
1364
   to the dialplan. It currently supports returning the current number of
1380
   to the dialplan. It currently supports returning the current number of
1365
   active sessions for a given account.
1381
   active sessions for a given account.
1366

    
   
1382

   
1367
 * Added support for private party ID information to CALLERID, CONNECTEDLINE,
1383
 * Added support for private party ID information to CALLERID, CONNECTEDLINE,
1368
   and the REDIRECTING functions.
1384
   and the REDIRECTING functions.
1369

    
   
1385

   
1370

    
   
1386

   
1371
Channel Drivers
1387
Channel Drivers
1372
------------------
1388
------------------
1373

    
   
1389

   
1374
chan_local
1390
chan_local
1375
------------------
1391
------------------
1376
 * Added a manager event "LocalBridge" for local channel call bridges between
1392
 * Added a manager event "LocalBridge" for local channel call bridges between
1377
   the two pseudo-channels created.
1393
   the two pseudo-channels created.
1378

    
   
1394

   
1379

    
   
1395

   
1380
chan_dahdi
1396
chan_dahdi
1381
------------------
1397
------------------
1382
 * Added dialtone_detect option for analog ports to disconnect incoming
1398
 * Added dialtone_detect option for analog ports to disconnect incoming
1383
   calls when dialtone is detected.
1399
   calls when dialtone is detected.
1384

    
   
1400

   
1385
 * Added option colp_send to send ISDN connected line information.  Allowed
1401
 * Added option colp_send to send ISDN connected line information.  Allowed
1386
   settings are block, to not send any connected line information; connect, to
1402
   settings are block, to not send any connected line information; connect, to
1387
   send connected line information on initial connect; and update, to send
1403
   send connected line information on initial connect; and update, to send
1388
   information on any update during a call.  Default is update.
1404
   information on any update during a call.  Default is update.
1389

    
   
1405

   
1390
 * Add options namedcallgroup and namedpickupgroup to support installations
1406
 * Add options namedcallgroup and namedpickupgroup to support installations
1391
   where a higher number of groups (>64) is required.
1407
   where a higher number of groups (>64) is required.
1392

    
   
1408

   
1393
 * Added support to use private party ID information with PRI calls.
1409
 * Added support to use private party ID information with PRI calls.
1394

    
   
1410

   
1395

    
   
1411

   
1396
chan_motif
1412
chan_motif
1397
------------------
1413
------------------
1398
 * A new channel driver named chan_motif has been added which provides support for
1414
 * A new channel driver named chan_motif has been added which provides support for
1399
   Google Talk and Jingle in a single channel driver. This new channel driver includes
1415
   Google Talk and Jingle in a single channel driver. This new channel driver includes
1400
   support for both audio and video, RFC2833 DTMF, all codecs supported by Asterisk,
1416
   support for both audio and video, RFC2833 DTMF, all codecs supported by Asterisk,
1401
   hold, unhold, and ringing notification. It is also compliant with the current Jingle
1417
   hold, unhold, and ringing notification. It is also compliant with the current Jingle
1402
   specification, current Google Jingle specification, and the original Google Talk
1418
   specification, current Google Jingle specification, and the original Google Talk
1403
   protocol.
1419
   protocol.
1404

    
   
1420

   
1405

    
   
1421

   
1406
chan_ooh323
1422
chan_ooh323
1407
------------------
1423
------------------
1408
 * Added NAT support for RTP.  Setting in config is 'nat', which can be set
1424
 * Added NAT support for RTP.  Setting in config is 'nat', which can be set
1409
   globally and overriden on a peer by peer basis.
1425
   globally and overriden on a peer by peer basis.
1410

    
   
1426

   
1411
 * Direct media functionality has been added. Options in config are:
1427
 * Direct media functionality has been added. Options in config are:
1412
   directmedia (directrtp) and directrtpsetup (earlydirect)
1428
   directmedia (directrtp) and directrtpsetup (earlydirect)
1413

    
   
1429

   
1414
 * ChannelUpdate events now contain a CallRef header.
1430
 * ChannelUpdate events now contain a CallRef header.
1415

    
   
1431

   
1416

    
   
1432

   
1417
chan_sip
1433
chan_sip
1418
------------------
1434
------------------
1419
 * Asterisk will no longer substitute CID number for CID name in the display
1435
 * Asterisk will no longer substitute CID number for CID name in the display
1420
   name field if CID number exists without a CID name. This change improves
1436
   name field if CID number exists without a CID name. This change improves
1421
   compatibility with certain device features such as Avaya IP500's directory
1437
   compatibility with certain device features such as Avaya IP500's directory
1422
   lookup service.
1438
   lookup service.
1423

    
   
1439

   
1424
 * A new setting for autocreatepeer (autocreatepeer=persistent) allows peers
1440
 * A new setting for autocreatepeer (autocreatepeer=persistent) allows peers
1425
   created using that setting to not be removed during SIP reload.
1441
   created using that setting to not be removed during SIP reload.
1426

    
   
1442

   
1427
 * Added settings recordonfeature and recordofffeature.  When receiving an INFO
1443
 * Added settings recordonfeature and recordofffeature.  When receiving an INFO
1428
   request with a "Record:" header, this will turn the requested feature on/off.
1444
   request with a "Record:" header, this will turn the requested feature on/off.
1429
   Allowed values are 'automon', 'automixmon', and blank to disable.  Note that
1445
   Allowed values are 'automon', 'automixmon', and blank to disable.  Note that
1430
   dynamic features must be enabled and configured properly on the requesting
1446
   dynamic features must be enabled and configured properly on the requesting
1431
   channel for this to function properly.
1447
   channel for this to function properly.
1432

    
   
1448

   
1433
 * Add support to realtime for the 'callbackextension' option.
1449
 * Add support to realtime for the 'callbackextension' option.
1434

    
   
1450

   
1435
 * When multiple peers exist with the same address, but differing
1451
 * When multiple peers exist with the same address, but differing
1436
   callbackextension options, incoming requests that are matched by address
1452
   callbackextension options, incoming requests that are matched by address
1437
   will be matched to the peer with the matching callbackextension if it is
1453
   will be matched to the peer with the matching callbackextension if it is
1438
   available.
1454
   available.
1439

    
   
1455

   
1440
 * Two new NAT options, auto_force_rport and auto_comedia, have been added
1456
 * Two new NAT options, auto_force_rport and auto_comedia, have been added
1441
   which set the force_rport and comedia options automatically if Asterisk
1457
   which set the force_rport and comedia options automatically if Asterisk
1442
   detects that an incoming SIP request crossed a NAT after being sent by
1458
   detects that an incoming SIP request crossed a NAT after being sent by
1443
   the remote endpoint.
1459
   the remote endpoint.
1444

    
   
1460

   
1445
 * The default global nat setting in sip.conf has been changed from force_rport
1461
 * The default global nat setting in sip.conf has been changed from force_rport
1446
   to auto_force_rport.
1462
   to auto_force_rport.
1447

    
   
1463

   
1448
 * NAT settings are now a combinable list of options. The equivalent of the
1464
 * NAT settings are now a combinable list of options. The equivalent of the
1449
   deprecated nat=yes is nat=force_rport,comedia. nat=no behaves as before.
1465
   deprecated nat=yes is nat=force_rport,comedia. nat=no behaves as before.
1450

    
   
1466

   
1451
 * Adds an option send_diversion which can be disabled to prevent
1467
 * Adds an option send_diversion which can be disabled to prevent
1452
   diversion headers from automatically being added to INVITE requests.
1468
   diversion headers from automatically being added to INVITE requests.
1453

    
   
1469

   
1454
 * Add support for lightweight NAT keepalive. If enabled a blank packet will
1470
 * Add support for lightweight NAT keepalive. If enabled a blank packet will
1455
   be sent to the remote host at a given interval to keep the NAT mapping open.
1471
   be sent to the remote host at a given interval to keep the NAT mapping open.
1456
   This can be enabled using the keepalive configuration option.
1472
   This can be enabled using the keepalive configuration option.
1457

    
   
1473

   
1458
 * Add option 'tonezone' to specify country code for indications.  This option
1474
 * Add option 'tonezone' to specify country code for indications.  This option
1459
   can be set both globally and overridden for specific peers.
1475
   can be set both globally and overridden for specific peers.
1460

    
   
1476

   
1461
 * The SIP Security Events Framework now supports IPv6.
1477
 * The SIP Security Events Framework now supports IPv6.
1462

    
   
1478

   
1463
 * Add a new setting for directmedia, 'outgoing', to alleviate INVITE glares
1479
 * Add a new setting for directmedia, 'outgoing', to alleviate INVITE glares
1464
   between multiple user agents. When set, for directmedia reinvites,
1480
   between multiple user agents. When set, for directmedia reinvites,
1465
   Asterisk will not send an immediate reinvite on an incoming call leg. This
1481
   Asterisk will not send an immediate reinvite on an incoming call leg. This
1466
   option is useful when peered with another SIP user agent that is known to
1482
   option is useful when peered with another SIP user agent that is known to
1467
   send immediate direct media reinvites upon call establishment.
1483
   send immediate direct media reinvites upon call establishment.
1468

    
   
1484

   
1469
 * Add support for WebSocket transport. This can be configured using 'ws' or 'wss'
1485
 * Add support for WebSocket transport. This can be configured using 'ws' or 'wss'
1470
   as the transport.
1486
   as the transport.
1471

    
   
1487

   
1472
 * Add options subminexpiry and submaxexpiry to set limits of subscription
1488
 * Add options subminexpiry and submaxexpiry to set limits of subscription
1473
   timer independently from registration timer settings. The setting of the
1489
   timer independently from registration timer settings. The setting of the
1474
   registration timer limits still is done by options minexpiry, maxexpiry
1490
   registration timer limits still is done by options minexpiry, maxexpiry
1475
   and defaultexpiry. For backwards compatibility the setting of minexpiry
1491
   and defaultexpiry. For backwards compatibility the setting of minexpiry
1476
   and maxexpiry also is used to configure the subscription timer limits if
1492
   and maxexpiry also is used to configure the subscription timer limits if
1477
   subminexpiry and submaxexpiry are not set in sip.conf.
1493
   subminexpiry and submaxexpiry are not set in sip.conf.
1478

    
   
1494

   
1479
 * Set registration timer limits to default values when reloading sip
1495
 * Set registration timer limits to default values when reloading sip
1480
   configuration and values are not set by configuration.
1496
   configuration and values are not set by configuration.
1481

    
   
1497

   
1482
 * Add options namedcallgroup and namedpickupgroup to support installations
1498
 * Add options namedcallgroup and namedpickupgroup to support installations
1483
   where a higher number of groups (>64) is required.
1499
   where a higher number of groups (>64) is required.
1484

    
   
1500

   
1485
 * When a MESSAGE request is received, the address the request was received from
1501
 * When a MESSAGE request is received, the address the request was received from
1486
   is now saved in the SIP_RECVADDR variable.
1502
   is now saved in the SIP_RECVADDR variable.
1487

    
   
1503

   
1488
 * Add ANI2/OLI parsing for SIP.  The "From" header in INVITE requests is now
1504
 * Add ANI2/OLI parsing for SIP.  The "From" header in INVITE requests is now
1489
   parsed for the presence of "isup-oli", "ss7-oli", or "oli" tags.  If present,
1505
   parsed for the presence of "isup-oli", "ss7-oli", or "oli" tags.  If present,
1490
   the ANI2/OLI information is set on the channel, which can be retrieved using
1506
   the ANI2/OLI information is set on the channel, which can be retrieved using
1491
   the CALLERID function.
1507
   the CALLERID function.
1492

    
   
1508

   
1493
 * Peers can now be configured to support negotiation of ICE candidates using
1509
 * Peers can now be configured to support negotiation of ICE candidates using
1494
   the setting icesupport.  See res_rtp_asterisk changes for more information.
1510
   the setting icesupport.  See res_rtp_asterisk changes for more information.
1495

    
   
1511

   
1496
 * Added support for format attribute negotiation.  See the Codecs changes for
1512
 * Added support for format attribute negotiation.  See the Codecs changes for
1497
   more information.
1513
   more information.
1498

    
   
1514

   
1499
 * Extra headers specified with SIPAddHeader are sent with the REFER message
1515
 * Extra headers specified with SIPAddHeader are sent with the REFER message
1500
   when using Transfer application. See refer_addheaders in sip.conf.sample.
1516
   when using Transfer application. See refer_addheaders in sip.conf.sample.
1501

    
   
1517

   
1502
 * Added support to use private party ID information with calls.
1518
 * Added support to use private party ID information with calls.
1503

    
   
1519

   
1504
 * Adds an option discard_remote_hold_retrieval that when set stops telling
1520
 * Adds an option discard_remote_hold_retrieval that when set stops telling
1505
   the peer to start music on hold.
1521
   the peer to start music on hold.
1506

    
   
1522

   
1507

    
   
1523

   
1508
chan_skinny
1524
chan_skinny
1509
------------------
1525
------------------
1510
 * Added skinny version 17 protocol support.
1526
 * Added skinny version 17 protocol support.
1511

    
   
1527

   
1512

    
   
1528

   
1513
chan_unistim
1529
chan_unistim
1514
--------------------
1530
--------------------
1515
 * Added ability to use multiple lines for a single phone.  This allows multiple
1531
 * Added ability to use multiple lines for a single phone.  This allows multiple
1516
   calls to occur on a single phone, using callwaiting and switching between calls.
1532
   calls to occur on a single phone, using callwaiting and switching between calls.
1517

    
   
1533

   
1518
 * Added option 'sharpdial' allowing end dialing by pressing # key
1534
 * Added option 'sharpdial' allowing end dialing by pressing # key
1519

    
   
1535

   
1520
 * Added option 'interdigit_timer' to control phone dial timeout
1536
 * Added option 'interdigit_timer' to control phone dial timeout
1521

    
   
1537

   
1522
 * Added options 'cwstyle', 'cwvolume' controlling callwaiting appearance
1538
 * Added options 'cwstyle', 'cwvolume' controlling callwaiting appearance
1523

    
   
1539

   
1524
 * Added global 'debug' option, that enables debug in channel driver
1540
 * Added global 'debug' option, that enables debug in channel driver
1525

    
   
1541

   
1526
 * Added ability to translate on-screen menu in multiple languages. Tested on
1542
 * Added ability to translate on-screen menu in multiple languages. Tested on
1527
   Russian languages.  Supported encodings: ISO 8859-1, ISO 8859-2, ISO 8859-4,
1543
   Russian languages.  Supported encodings: ISO 8859-1, ISO 8859-2, ISO 8859-4,
1528
   ISO 8859-5, ISO 2022-JP. Language controlled by 'language' and on-screen
1544
   ISO 8859-5, ISO 2022-JP. Language controlled by 'language' and on-screen
1529
   menu of phone
1545
   menu of phone
1530

    
   
1546

   
1531
 * In addition to English added French and Russian languages for on-screen menus
1547
 * In addition to English added French and Russian languages for on-screen menus
1532

    
   
1548

   
1533
 * Reworked dialing number input: added dialing by timeout, immediate dial on
1549
 * Reworked dialing number input: added dialing by timeout, immediate dial on
1534
   on dialplan compare, phone number length now not limited by screen size
1550
   on dialplan compare, phone number length now not limited by screen size
1535

    
   
1551

   
1536
 * Added ability to pickup a call using features.conf defined value and
1552
 * Added ability to pickup a call using features.conf defined value and
1537
   on-screen key
1553
   on-screen key
1538

    
   
1554

   
1539

    
   
1555

   
1540
chan_mISDN:
1556
chan_mISDN:
1541
------------------
1557
------------------
1542
 * Add options namedcallgroup and namedpickupgroup to support installations
1558
 * Add options namedcallgroup and namedpickupgroup to support installations
1543
   where a higher number of groups (>64) is required.
1559
   where a higher number of groups (>64) is required.
1544

    
   
1560

   
1545
 * Added support to use private party ID information with calls.
1561
 * Added support to use private party ID information with calls.
1546

    
   
1562

   
1547

    
   
1563

   
1548
Core
1564
Core
1549
------------------
1565
------------------
1550
 * The minimum DTMF duration can now be configured in asterisk.conf
1566
 * The minimum DTMF duration can now be configured in asterisk.conf
1551
   as "mindtmfduration". The default value is (as before) set to 80 ms.
1567
   as "mindtmfduration". The default value is (as before) set to 80 ms.
1552
   (previously it was only available in source code)
1568
   (previously it was only available in source code)
1553

    
   
1569

   
1554
 * Named ACLs can now be specified in acl.conf and used in configurations that
1570
 * Named ACLs can now be specified in acl.conf and used in configurations that
1555
   use ACLs. As a general rule, if some derivative of 'permit' or 'deny' is
1571
   use ACLs. As a general rule, if some derivative of 'permit' or 'deny' is
1556
   used to specify an ACL, a similar form of 'acl' will add a named ACL to the
1572
   used to specify an ACL, a similar form of 'acl' will add a named ACL to the
1557
   working ACL. In addition, some CLI commands have been added to provide
1573
   working ACL. In addition, some CLI commands have been added to provide
1558
   show information and allow for module reloading - see CLI Changes.
1574
   show information and allow for module reloading - see CLI Changes.
1559

    
   
1575

   
1560
 * Rules in ACLs (specified using 'permit' and 'deny') can now contain multiple
1576
 * Rules in ACLs (specified using 'permit' and 'deny') can now contain multiple
1561
   items (separated by commas), and items in the rule can be negated by prefixing
1577
   items (separated by commas), and items in the rule can be negated by prefixing
1562
   them with '!'. This simplifies Asterisk Realtime configurations, since it is no
1578
   them with '!'. This simplifies Asterisk Realtime configurations, since it is no
1563
   longer necessray to control the order that the 'permit' and 'deny' columns are
1579
   longer necessray to control the order that the 'permit' and 'deny' columns are
1564
   returned from queries.
1580
   returned from queries.
1565

    
   
1581

   
1566
 * DUNDi now allows the built in variables ${NUMBER}, ${IPADDR} and ${SECRET} to
1582
 * DUNDi now allows the built in variables ${NUMBER}, ${IPADDR} and ${SECRET} to
1567
   be used within the dynamic weight attribute when specifying a mapping.
1583
   be used within the dynamic weight attribute when specifying a mapping.
1568

    
   
1584

   
1569
 * CEL backends can now be configured to show "USER_DEFINED" in the EventName
1585
 * CEL backends can now be configured to show "USER_DEFINED" in the EventName
1570
   header, instead of putting the user defined event name there.  When enabled
1586
   header, instead of putting the user defined event name there.  When enabled
1571
   the UserDefType header is added for user defined events.  This feature is
1587
   the UserDefType header is added for user defined events.  This feature is
1572
   enabled with the setting show_user_defined.
1588
   enabled with the setting show_user_defined.
1573

    
   
1589

   
1574
 * Macro has been deprecated in favor of GoSub.  For redirecting and connected
1590
 * Macro has been deprecated in favor of GoSub.  For redirecting and connected
1575
   line purposes use the following variables instead of their macro equivalents:
1591
   line purposes use the following variables instead of their macro equivalents:
1576
   REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS, CONNECTED_LINE_SEND_SUB,
1592
   REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS, CONNECTED_LINE_SEND_SUB,
1577
   CONNECTED_LINE_SEND_SUB_ARGS.  For CCSS, use cc_callback_sub instead of
1593
   CONNECTED_LINE_SEND_SUB_ARGS.  For CCSS, use cc_callback_sub instead of
1578
   cc_callback_macro in channel configurations.
1594
   cc_callback_macro in channel configurations.
1579

    
   
1595

   
1580
 * Asterisk can now use a system-provided NetBSD editline library (libedit) if it
1596
 * Asterisk can now use a system-provided NetBSD editline library (libedit) if it
1581
   is available.
1597
   is available.
1582

    
   
1598

   
1583
 * Call files now support the "early_media" option to connect with an outgoing
1599
 * Call files now support the "early_media" option to connect with an outgoing
1584
   extension when early media is received.
1600
   extension when early media is received.
1585

    
   
1601

   
1586
 * Added support to use private party ID information with calls.
1602
 * Added support to use private party ID information with calls.
1587

    
   
1603

   
1588

    
   
1604

   
1589
AGI
1605
AGI
1590
------------------
1606
------------------
1591
 * A new channel variable, AGIEXITONHANGUP, has been added which allows
1607
 * A new channel variable, AGIEXITONHANGUP, has been added which allows
1592
   Asterisk to behave like it did in Asterisk 1.4 and earlier where the
1608
   Asterisk to behave like it did in Asterisk 1.4 and earlier where the
1593
   AGI application would exit immediately after a channel hangup is detected.
1609
   AGI application would exit immediately after a channel hangup is detected.
1594

    
   
1610

   
1595
 * IPv6 addresses are now supported when using FastAGI (agi://).  Hostnames
1611
 * IPv6 addresses are now supported when using FastAGI (agi://).  Hostnames
1596
   are resolved and each address is attempted in turn until one succeeds or
1612
   are resolved and each address is attempted in turn until one succeeds or
1597
   all fail.
1613
   all fail.
1598

    
   
1614

   
1599

    
   
1615

   
1600
AMI (Asterisk Manager Interface)
1616
AMI (Asterisk Manager Interface)
1601
------------------
1617
------------------
1602
 * The originate action now has an option "EarlyMedia" that enables the
1618
 * The originate action now has an option "EarlyMedia" that enables the
1603
   call to bridge when we get early media in the call. Previously,
1619
   call to bridge when we get early media in the call. Previously,
1604
   early media was disregarded always when originating calls using AMI.
1620
   early media was disregarded always when originating calls using AMI.
1605

    
   
1621

   
1606
 * Added setvar= option to manager accounts (much like sip.conf)
1622
 * Added setvar= option to manager accounts (much like sip.conf)
1607

    
   
1623

   
1608
 * Originate now generates an error response if the extension given is not found
1624
 * Originate now generates an error response if the extension given is not found
1609
   in the dialplan
1625
   in the dialplan
1610

    
   
1626

   
1611
 * MixMonitor will now show IDs associated with the mixmonitor upon creating
1627
 * MixMonitor will now show IDs associated with the mixmonitor upon creating
1612
   them if the i(variable) option is used. StopMixMonitor will accept
1628
   them if the i(variable) option is used. StopMixMonitor will accept
1613
   MixMonitorID as an option to close specific MixMonitors.
1629
   MixMonitorID as an option to close specific MixMonitors.
1614

    
   
1630

   
1615
 * The SIPshowpeer manager action response field "SIP-Forcerport" has been
1631
 * The SIPshowpeer manager action response field "SIP-Forcerport" has been
1616
   updated to include information about peers configured with
1632
   updated to include information about peers configured with
1617
   nat=auto_force_rport by returning "A" if auto_force_rport is set and nat is
1633
   nat=auto_force_rport by returning "A" if auto_force_rport is set and nat is
1618
   detected, and "a" if it is set and nat is not detected. "Y" and "N" are still
1634
   detected, and "a" if it is set and nat is not detected. "Y" and "N" are still
1619
   returned if auto_force_rport is not enabled.
1635
   returned if auto_force_rport is not enabled.
1620

    
   
1636

   
1621
 * Added SIPpeerstatus manager command which will generate PeerStatus events
1637
 * Added SIPpeerstatus manager command which will generate PeerStatus events
1622
   similar to the existing PeerStatus events found in chan_sip on demand.
1638
   similar to the existing PeerStatus events found in chan_sip on demand.
1623

    
   
1639

   
1624
 * Hangup now can take a regular expression as the Channel option.  If you want
1640
 * Hangup now can take a regular expression as the Channel option.  If you want
1625
   to hangup multiple channels, use /regex/ as the Channel option.  Existing
1641
   to hangup multiple channels, use /regex/ as the Channel option.  Existing
1626
   behavior to hanging up a single channel is unchanged, but if you pass a regex,
1642
   behavior to hanging up a single channel is unchanged, but if you pass a regex,
1627
   the manager will send you a list of channels back that were hung up.
1643
   the manager will send you a list of channels back that were hung up.
1628

    
   
1644

   
1629
 * Support for IPv6 addresses has been added.
1645
 * Support for IPv6 addresses has been added.
1630

    
   
1646

   
1631
 * AMI Events can now be documented in the Asterisk source. Note that AMI event
1647
 * AMI Events can now be documented in the Asterisk source. Note that AMI event
1632
   documentation is only generated when Asterisk is compiled using 'make full'.
1648
   documentation is only generated when Asterisk is compiled using 'make full'.
1633
   See the CLI section for commands to display AMI event information.
1649
   See the CLI section for commands to display AMI event information.
1634

    
   
1650

   
1635
 * The AMI Hangup event now includes the AccountCode header so you can easily
1651
 * The AMI Hangup event now includes the AccountCode header so you can easily
1636
   correlate with AMI Newchannel events.
1652
   correlate with AMI Newchannel events.
1637

    
   
1653

   
1638
 * The QueueMemberStatus, QueueMemberAdded, and QueueMember events now include
1654
 * The QueueMemberStatus, QueueMemberAdded, and QueueMember events now include
1639
   the StateInterface of the queue member.
1655
   the StateInterface of the queue member.
1640

    
   
1656

   
1641
 * Added AMI event SessionTimeout in the Call category that is issued when a
1657
 * Added AMI event SessionTimeout in the Call category that is issued when a
1642
   call is terminated due to either RTP stream inactivity or SIP session timer
1658
   call is terminated due to either RTP stream inactivity or SIP session timer
1643
   expiration.
1659
   expiration.
1644

    
   
1660

   
1645
 * CEL events can now contain a user defined header UserDefType.  See core
1661
 * CEL events can now contain a user defined header UserDefType.  See core
1646
   changes for more information.
1662
   changes for more information.
1647

    
   
1663

   
1648
 * OOH323 ChannelUpdate events now contain a CallRef header.
1664
 * OOH323 ChannelUpdate events now contain a CallRef header.
1649

    
   
1665

   
1650
 * Added PresenceState command.  This command will report the presence state for
1666
 * Added PresenceState command.  This command will report the presence state for
1651
   the given presence provider.
1667
   the given presence provider.
1652

    
   
1668

   
1653
 * Added Parkinglots command.  This will list all parking lots as a series of
1669
 * Added Parkinglots command.  This will list all parking lots as a series of
1654
   AMI Parkinglot events.
1670
   AMI Parkinglot events.
1655

    
   
1671

   
1656
 * Added MessageSend command.  This behaves in the same manner as the
1672
 * Added MessageSend command.  This behaves in the same manner as the
1657
   MessageSend application, and is a technolgoy agnostic mechanism to send out
1673
   MessageSend application, and is a technolgoy agnostic mechanism to send out
1658
   of call text messages.
1674
   of call text messages.
1659

    
   
1675

   
1660
 * Added "message" class authorization.  This grants an account permission to
1676
 * Added "message" class authorization.  This grants an account permission to
1661
   send out of call messages.  Write-only.
1677
   send out of call messages.  Write-only.
1662

    
   
1678

   
1663

    
   
1679

   
1664
CLI
1680
CLI
1665
-------------------
1681
-------------------
1666
 * The "dialplan add include" command has been modified to create context a context
1682
 * The "dialplan add include" command has been modified to create context a context
1667
   if one does not already exist. For instance, "dialplan add include foo into bar"
1683
   if one does not already exist. For instance, "dialplan add include foo into bar"
1668
   will create context "bar" if it does not already exist.
1684
   will create context "bar" if it does not already exist.
1669

    
   
1685

   
1670
 * A  "dialplan remove context" command has been added to remove a context from
1686
 * A  "dialplan remove context" command has been added to remove a context from
1671
   the dialplan
1687
   the dialplan
1672

    
   
1688

   
1673
 * The "mixmonitor list <channel>" command will now show MixMonitor ID, and the
1689
 * The "mixmonitor list <channel>" command will now show MixMonitor ID, and the
1674
   filenames of all running mixmonitors on a channel.
1690
   filenames of all running mixmonitors on a channel.
1675

    
   
1691

   
1676
 * The debug level of "pri set debug" is now a bitmask ranging from 0 to 15 if
1692
 * The debug level of "pri set debug" is now a bitmask ranging from 0 to 15 if
1677
   numeric instead of 0, 1, or 2.
1693
   numeric instead of 0, 1, or 2.
1678

    
   
1694

   
1679
 * "stun show status" will show a table describing how the STUN client is
1695
 * "stun show status" will show a table describing how the STUN client is
1680
   behaving.
1696
   behaving.
1681

    
   
1697

   
1682
 * "acl show [named acl]" will show information regarding a Named ACL.  The
1698
 * "acl show [named acl]" will show information regarding a Named ACL.  The
1683
   acl module can be reloaded with "reload acl".
1699
   acl module can be reloaded with "reload acl".
1684

    
   
1700

   
1685
 * Added CLI command to display AMI event information - "manager show events",
1701
 * Added CLI command to display AMI event information - "manager show events",
1686
   which shows a list of all known and documented AMI events, and "manager show
1702
   which shows a list of all known and documented AMI events, and "manager show
1687
   event [event name]", which shows detail information about a specific AMI
1703
   event [event name]", which shows detail information about a specific AMI
1688
   event.
1704
   event.
1689

    
   
1705

   
1690
 * The result of the CLI command "queue show" now includes the state interface
1706
 * The result of the CLI command "queue show" now includes the state interface
1691
   information of the queue member.
1707
   information of the queue member.
1692

    
   
1708

   
1693
 * The command "core set verbose" will now set a separate level of logging for
1709
 * The command "core set verbose" will now set a separate level of logging for
1694
   each remote console without affecting any other console.
1710
   each remote console without affecting any other console.
1695

    
   
1711

   
1696
 * Added command "cdr show pgsql status" to check connection status
1712
 * Added command "cdr show pgsql status" to check connection status
1697

    
   
1713

   
1698
 * "sip show channel" will now display the complete route set.
1714
 * "sip show channel" will now display the complete route set.
1699

    
   
1715

   
1700
 * Added "presencestate list" command.  This command will list all custom
1716
 * Added "presencestate list" command.  This command will list all custom
1701
   presence states that have been set by using the PRESENCE_STATE dialplan
1717
   presence states that have been set by using the PRESENCE_STATE dialplan
1702
   function.
1718
   function.
1703

    
   
1719

   
1704
 * Added "presencestate change <entity> <state>[,<subtype>[,message[,options]]]"
1720
 * Added "presencestate change <entity> <state>[,<subtype>[,message[,options]]]"
1705
   command.  This changes a custom presence to a new state.
1721
   command.  This changes a custom presence to a new state.
1706

    
   
1722

   
1707

    
   
1723

   
1708
Codecs
1724
Codecs
1709
-------------------
1725
-------------------
1710
 * Codec lists may now be modified by the '!' character, to allow succinct
1726
 * Codec lists may now be modified by the '!' character, to allow succinct
1711
   specification of a list of codecs allowed and disallowed, without the
1727
   specification of a list of codecs allowed and disallowed, without the
1712
   requirement to use two different keywords.  For example, to specify all
1728
   requirement to use two different keywords.  For example, to specify all
1713
   codecs except g729 and g723, one need only specify allow=all,!g729,!g723.
1729
   codecs except g729 and g723, one need only specify allow=all,!g729,!g723.
1714

    
   
1730

   
1715
 * Add support for parsing SDP attributes, generating SDP attributes, and
1731
 * Add support for parsing SDP attributes, generating SDP attributes, and
1716
   passing it through. This support includes codecs such as H.263, H.264, SILK,
1732
   passing it through. This support includes codecs such as H.263, H.264, SILK,
1717
   and CELT. You are able to set up a call and have attribute information pass.
1733
   and CELT. You are able to set up a call and have attribute information pass.
1718
   This should help considerably with video calls.
1734
   This should help considerably with video calls.
1719

    
   
1735

   
1720
 * The iLBC codec can now use a system-provided iLBC library if one is installed,
1736
 * The iLBC codec can now use a system-provided iLBC library if one is installed,
1721
   just like the GSM codec.
1737
   just like the GSM codec.
1722

    
   
1738

   
1723
DUNDi changes
1739
DUNDi changes
1724
-------------
1740
-------------
1725
 * Added CLI commands dundi show hints and dundi show cache which will list DUNDi
1741
 * Added CLI commands dundi show hints and dundi show cache which will list DUNDi
1726
   'DONTASK' hints in the cache and list all DUNDi cache entires respectively.
1742
   'DONTASK' hints in the cache and list all DUNDi cache entires respectively.
1727

    
   
1743

   
1728
Logging
1744
Logging
1729
-------------------
1745
-------------------
1730
 * Asterisk version and build information is now logged at the beginning of a
1746
 * Asterisk version and build information is now logged at the beginning of a
1731
   log file.
1747
   log file.
1732

    
   
1748

   
1733
 * Threads belonging to a particular call are now linked with callids which get
1749
 * Threads belonging to a particular call are now linked with callids which get
1734
   added to any log messages produced by those threads. Log messages can now be
1750
   added to any log messages produced by those threads. Log messages can now be
1735
   easily identified as involved with a certain call by looking at their call id.
1751
   easily identified as involved with a certain call by looking at their call id.
1736
   Call ids may also be attached to log messages for just about any case where
1752
   Call ids may also be attached to log messages for just about any case where
1737
   it can be determined to be related to a particular call.
1753
   it can be determined to be related to a particular call.
1738

    
   
1754

   
1739
 * Each logging destination and console now have an independent notion of the
1755
 * Each logging destination and console now have an independent notion of the
1740
   current verbosity level.  Logger.conf now allows an optional argument to
1756
   current verbosity level.  Logger.conf now allows an optional argument to
1741
   the 'verbose' specifier, indicating the level of verbosity sent to that
1757
   the 'verbose' specifier, indicating the level of verbosity sent to that
1742
   particular logging destination.  Additionally, remote consoles now each
1758
   particular logging destination.  Additionally, remote consoles now each
1743
   have their own verbosity level.  The command 'core set verbose' will now set
1759
   have their own verbosity level.  The command 'core set verbose' will now set
1744
   a separate level for each remote console without affecting any other
1760
   a separate level for each remote console without affecting any other
1745
   console.
1761
   console.
1746

    
   
1762

   
1747

    
   
1763

   
1748
Music On Hold
1764
Music On Hold
1749
-------------------
1765
-------------------
1750
 * Added 'announcement' option which will play at the start of MOH and between
1766
 * Added 'announcement' option which will play at the start of MOH and between
1751
   songs in modes of MOH that can detect transitions between songs (eg.
1767
   songs in modes of MOH that can detect transitions between songs (eg.
1752
   files, mp3, etc).
1768
   files, mp3, etc).
1753

    
   
1769

   
1754

    
   
1770

   
1755
Parking
1771
Parking
1756
-------------------
1772
-------------------
1757
 * New per parking lot options: comebackcontext and comebackdialtime. See
1773
 * New per parking lot options: comebackcontext and comebackdialtime. See
1758
   configs/features.conf.sample for more details.
1774
   configs/features.conf.sample for more details.
1759

    
   
1775

   
1760
 * Channel variable PARKER is now set when comebacktoorigin is disabled in
1776
 * Channel variable PARKER is now set when comebacktoorigin is disabled in
1761
   a parking lot.
1777
   a parking lot.
1762

    
   
1778

   
1763
 * Channel variable PARKEDCALL is now set with the name of the parking lot
1779
 * Channel variable PARKEDCALL is now set with the name of the parking lot
1764
   when a timeout occurs.
1780
   when a timeout occurs.
1765

    
   
1781

   
1766

    
   
1782

   
1767
CDRs
1783
CDRs
1768
-------------------
1784
-------------------
1769

    
   
1785

   
1770
CDR Postgresql Driver
1786
CDR Postgresql Driver
1771
-------------------
1787
-------------------
1772
 * Added command "cdr show pgsql status" to check connection status
1788
 * Added command "cdr show pgsql status" to check connection status
1773

    
   
1789

   
1774

    
   
1790

   
1775
CDR Adaptive ODBC Driver
1791
CDR Adaptive ODBC Driver
1776
-------------------
1792
-------------------
1777
 * Added schema option for databases that support specifying a schema.
1793
 * Added schema option for databases that support specifying a schema.
1778

    
   
1794

   
1779

    
   
1795

   
1780
Resource Modules
1796
Resource Modules
1781
-------------------
1797
-------------------
1782

    
   
1798

   
1783
Calendars
1799
Calendars
1784
-------------------
1800
-------------------
1785
 * A CALENDAR_SUCCESS=1/0 channel variable is now set to show whether or not
1801
 * A CALENDAR_SUCCESS=1/0 channel variable is now set to show whether or not
1786
   CALENDAR_WRITE has completed successfully.
1802
   CALENDAR_WRITE has completed successfully.
1787

    
   
1803

   
1788

    
   
1804

   
1789
res_rtp_asterisk
1805
res_rtp_asterisk
1790
-------------------
1806
-------------------
1791
 * A new option, 'probation' has been added to rtp.conf
1807
 * A new option, 'probation' has been added to rtp.conf
1792
   RTP in strictrtp mode can now require more than 1 packet to exit learning
1808
   RTP in strictrtp mode can now require more than 1 packet to exit learning
1793
   mode with a new source (and by default requires 4). The probation option
1809
   mode with a new source (and by default requires 4). The probation option
1794
   allows the user to change the required number of packets in sequence to any
1810
   allows the user to change the required number of packets in sequence to any
1795
   desired value. Use a value of 1 to essentially restore the old behavior.
1811
   desired value. Use a value of 1 to essentially restore the old behavior.
1796
   Also, with strictrtp on, Asterisk will now drop all packets until learning
1812
   Also, with strictrtp on, Asterisk will now drop all packets until learning
1797
   mode has successfully exited. These changes are based on how pjmedia handles
1813
   mode has successfully exited. These changes are based on how pjmedia handles
1798
   media sources and source changes.
1814
   media sources and source changes.
1799

    
   
1815

   
1800
 * Add support for ICE/STUN/TURN in res_rtp_asterisk.  This option can be
1816
 * Add support for ICE/STUN/TURN in res_rtp_asterisk.  This option can be
1801
   enabled or disabled using the icesupport setting.  A variety of other
1817
   enabled or disabled using the icesupport setting.  A variety of other
1802
   settings have been introduced to configure STUN/TURN connections.
1818
   settings have been introduced to configure STUN/TURN connections.
1803

    
   
1819

   
1804

    
   
1820

   
1805
res_corosync
1821
res_corosync
1806
-------------------
1822
-------------------
1807
 * A new module, res_corosync, has been introduced.  This module uses the
1823
 * A new module, res_corosync, has been introduced.  This module uses the
1808
   Corosync cluster enginer (http://www.corosync.org) to allow a local cluster
1824
   Corosync cluster enginer (http://www.corosync.org) to allow a local cluster
1809
   of Asterisk servers to both Message Waiting Indication (MWI) and/or
1825
   of Asterisk servers to both Message Waiting Indication (MWI) and/or
1810
   Device State (presence) information.  This module is very similar to, and
1826
   Device State (presence) information.  This module is very similar to, and
1811
   is a replacement for the res_ais module that was in previous releases of
1827
   is a replacement for the res_ais module that was in previous releases of
1812
   Asterisk.
1828
   Asterisk.
1813

    
   
1829

   
1814

    
   
1830

   
1815
res_xmpp
1831
res_xmpp
1816
-------------------
1832
-------------------
1817
 * This module adds a cleaned up, drop-in replacement for res_jabber called
1833
 * This module adds a cleaned up, drop-in replacement for res_jabber called
1818
   res_xmpp. This provides the same externally facing functionality but is
1834
   res_xmpp. This provides the same externally facing functionality but is
1819
   implemented differently internally.  res_jabber has been deprecated in favor
1835
   implemented differently internally.  res_jabber has been deprecated in favor
1820
   of res_xmpp; please see the UPGRADE.txt file for more information.
1836
   of res_xmpp; please see the UPGRADE.txt file for more information.
1821

    
   
1837

   
1822

    
   
1838

   
1823
Scripts
1839
Scripts
1824
-------------------
1840
-------------------
1825
 * The safe_asterisk script has been updated to allow several of its parameters
1841
 * The safe_asterisk script has been updated to allow several of its parameters
1826
   to be set from environment variables.  This also enables a custom run
1842
   to be set from environment variables.  This also enables a custom run
1827
   directory of Asterisk to be specified, instead of defaulting to /tmp.
1843
   directory of Asterisk to be specified, instead of defaulting to /tmp.
1828

    
   
1844

   
1829
 * The live_ast script will now look for the LIVE_AST_BASE_DIR variable and use
1845
 * The live_ast script will now look for the LIVE_AST_BASE_DIR variable and use
1830
   its value to determine the directory to assume is the top-level directory of
1846
   its value to determine the directory to assume is the top-level directory of
1831
   the source tree.  If the variable is not set, it defaults to the current
1847
   the source tree.  If the variable is not set, it defaults to the current
1832
   behavior and uses the current working directory.
1848
   behavior and uses the current working directory.
1833

    
   
1849

   
1834
------------------------------------------------------------------------------
1850
------------------------------------------------------------------------------
1835
--- Functionality changes from Asterisk 1.8 to Asterisk 10 -------------------
1851
--- Functionality changes from Asterisk 1.8 to Asterisk 10 -------------------
1836
------------------------------------------------------------------------------
1852
------------------------------------------------------------------------------
1837

    
   
1853

   
1838
Text Messaging
1854
Text Messaging
1839
--------------
1855
--------------
1840
 * Asterisk now has protocol independent support for processing text messages
1856
 * Asterisk now has protocol independent support for processing text messages
1841
   outside of a call.  Messages are routed through the Asterisk dialplan.
1857
   outside of a call.  Messages are routed through the Asterisk dialplan.
1842
   SIP MESSAGE and XMPP are currently supported.  There are options in
1858
   SIP MESSAGE and XMPP are currently supported.  There are options in
1843
   jabber.conf and sip.conf to allow enabling these features.
1859
   jabber.conf and sip.conf to allow enabling these features.
1844
     -> jabber.conf: see the "sendtodialplan" and "context" options.
1860
     -> jabber.conf: see the "sendtodialplan" and "context" options.
1845
     -> sip.conf: see the "accept_outofcall_message", "auth_message_requests"
1861
     -> sip.conf: see the "accept_outofcall_message", "auth_message_requests"
1846
        and "outofcall_message_context" options.
1862
        and "outofcall_message_context" options.
1847
   The MESSAGE() dialplan function and MessageSend() application have been
1863
   The MESSAGE() dialplan function and MessageSend() application have been
1848
   added to go along with this functionality.  More detailed usage information
1864
   added to go along with this functionality.  More detailed usage information
1849
   can be found on the Asterisk wiki (http://wiki.asterisk.org/).
1865
   can be found on the Asterisk wiki (http://wiki.asterisk.org/).
1850
 * If real-time text support (T.140) is negotiated, it will be preferred for
1866
 * If real-time text support (T.140) is negotiated, it will be preferred for
1851
   sending text via the SendText application. For example, via SIP, messages
1867
   sending text via the SendText application. For example, via SIP, messages
1852
   that were once sent via the SIP MESSAGE request would be sent via RTP if
1868
   that were once sent via the SIP MESSAGE request would be sent via RTP if
1853
   T.140 text is negotiated for a call.
1869
   T.140 text is negotiated for a call.
1854

    
   
1870

   
1855
Parking
1871
Parking
1856
-------
1872
-------
1857
 * parkedmusicclass can now be set for non-default parking lots.
1873
 * parkedmusicclass can now be set for non-default parking lots.
1858

    
   
1874

   
1859
Asterisk Manager Interface
1875
Asterisk Manager Interface
1860
--------------------------
1876
--------------------------
1861
 * PeerStatus now includes Address and Port.
1877
 * PeerStatus now includes Address and Port.
1862
 * Added Hold events for when the remote party puts the call on and off hold
1878
 * Added Hold events for when the remote party puts the call on and off hold
1863
   for chan_dahdi ISDN channels.
1879
   for chan_dahdi ISDN channels.
1864
 * Added new action MeetmeListRooms to list active conferences (shows same
1880
 * Added new action MeetmeListRooms to list active conferences (shows same
1865
   data as "meetme list" at the CLI).
1881
   data as "meetme list" at the CLI).
1866
 * DAHDIShowChannels, SIPshowpeer, SIPpeers, and IAXpeers now contains a
1882
 * DAHDIShowChannels, SIPshowpeer, SIPpeers, and IAXpeers now contains a
1867
   Description field that is set by 'description' in the channel configuration
1883
   Description field that is set by 'description' in the channel configuration
1868
   file.
1884
   file.
1869
 * Added Uniqueid header to UserEvent.
1885
 * Added Uniqueid header to UserEvent.
1870
 * Added new action FilterAdd to control event filters for the current session.
1886
 * Added new action FilterAdd to control event filters for the current session.
1871
   This requires the system permission and uses the same filter syntax as
1887
   This requires the system permission and uses the same filter syntax as
1872
   filters that can be defined in manager.conf
1888
   filters that can be defined in manager.conf
1873
 * The Unlink event is now a Bridge event with Bridgestatus: Unlink. Previous
1889
 * The Unlink event is now a Bridge event with Bridgestatus: Unlink. Previous
1874
   versions had some instances of the event converted, but others were left
1890
   versions had some instances of the event converted, but others were left
1875
   as-is. All Unlink events should now be converted to Bridge events. The AMI
1891
   as-is. All Unlink events should now be converted to Bridge events. The AMI
1876
   protocol version number was incremented to 1.2 as a result of this change.
1892
   protocol version number was incremented to 1.2 as a result of this change.
1877

    
   
1893

   
1878
Asterisk HTTP Server
1894
Asterisk HTTP Server
1879
--------------------------
1895
--------------------------
1880
 * The HTTP Server can bind to IPv6 addresses.
1896
 * The HTTP Server can bind to IPv6 addresses.
1881

    
   
1897

   
1882
chan_dahdi
1898
chan_dahdi
1883
--------------------------
1899
--------------------------
1884
 * Busy tone patterns featuring 2 silence and 2 tone lengths can now be used
1900
 * Busy tone patterns featuring 2 silence and 2 tone lengths can now be used
1885
   with busydetect.  usage example: busypattern=200,200,200,600
1901
   with busydetect.  usage example: busypattern=200,200,200,600
1886

    
   
1902

   
1887
CLI Changes
1903
CLI Changes
1888
--------------------------
1904
--------------------------
1889
 * New 'gtalk show settings' command showing the current settings loaded from
1905
 * New 'gtalk show settings' command showing the current settings loaded from
1890
   gtalk.conf.
1906
   gtalk.conf.
1891
 * The 'logger reload' command now supports an optional argument, specifying an
1907
 * The 'logger reload' command now supports an optional argument, specifying an
1892
   alternate configuration file to use.
1908
   alternate configuration file to use.
1893
 * 'dialplan add extension' command will now automatically create a context if
1909
 * 'dialplan add extension' command will now automatically create a context if
1894
   the specified context does not exist with a message indicated it did so.
1910
   the specified context does not exist with a message indicated it did so.
1895
 * 'sip show peers', 'iax show peers', and 'dahdi show peers' now contains a
1911
 * 'sip show peers', 'iax show peers', and 'dahdi show peers' now contains a
1896
   Description field which can be populated with 'description' in the channel
1912
   Description field which can be populated with 'description' in the channel
1897
   configuration files (sip.conf, iax2.conf, and chan_dahdi.conf).
1913
   configuration files (sip.conf, iax2.conf, and chan_dahdi.conf).
1898

    
   
1914

   
1899
CDR
1915
CDR
1900
--------------------------
1916
--------------------------
1901
 * The filter option in cdr_adaptive_odbc now supports negating the argument,
1917
 * The filter option in cdr_adaptive_odbc now supports negating the argument,
1902
   thus allowing records which do NOT match the specified filter.
1918
   thus allowing records which do NOT match the specified filter.
1903
 * Added ability to log CONGESTION calls to CDR
1919
 * Added ability to log CONGESTION calls to CDR
1904

    
   
1920

   
1905
CODECS
1921
CODECS
1906
--------------------------
1922
--------------------------
1907
 * Ability to define custom SILK formats in codecs.conf.
1923
 * Ability to define custom SILK formats in codecs.conf.
1908
 * Addition of speex32 audio format with translation.
1924
 * Addition of speex32 audio format with translation.
1909
 * CELT codec pass-through support and ability to define
1925
 * CELT codec pass-through support and ability to define
1910
   custom CELT formats in codecs.conf.
1926
   custom CELT formats in codecs.conf.
1911
 * Ability to read raw signed linear files with sample rates
1927
 * Ability to read raw signed linear files with sample rates
1912
   ranging from 8khz - 192khz.  The new file extensions introduced
1928
   ranging from 8khz - 192khz.  The new file extensions introduced
1913
   are .sln12, .sln24, .sln32, .sln44, .sln48, .sln96, .sln192.
1929
   are .sln12, .sln24, .sln32, .sln44, .sln48, .sln96, .sln192.
1914
 * Due to protocol limitations, channel drivers other than SIP (eg. IAX2, MGCP,
1930
 * Due to protocol limitations, channel drivers other than SIP (eg. IAX2, MGCP,
1915
   Skinny, H.323, etc) can still only support the following codecs:
1931
   Skinny, H.323, etc) can still only support the following codecs:
1916
   Audio: ulaw, alaw, slin, slin16, g719, g722, g723, g726, g726aal2, g729, gsm,
1932
   Audio: ulaw, alaw, slin, slin16, g719, g722, g723, g726, g726aal2, g729, gsm,
1917
          siren7, siren14, speex, speex16, ilbc, lpc10, adpcm
1933
          siren7, siren14, speex, speex16, ilbc, lpc10, adpcm
1918
   Video: h261, h263, h263p, h264, mpeg4
1934
   Video: h261, h263, h263p, h264, mpeg4
1919
   Image: jpeg, png
1935
   Image: jpeg, png
1920
   Text:  red, t140
1936
   Text:  red, t140
1921

    
   
1937

   
1922
ConfBridge
1938
ConfBridge
1923
--------------------------
1939
--------------------------
1924
 * New highly optimized and customizable ConfBridge application capable of
1940
 * New highly optimized and customizable ConfBridge application capable of
1925
   mixing audio at sample rates ranging from 8khz-96khz.
1941
   mixing audio at sample rates ranging from 8khz-96khz.
1926
 * CONFBRIDGE dialplan function capable of creating dynamic ConfBridge user
1942
 * CONFBRIDGE dialplan function capable of creating dynamic ConfBridge user
1927
   and bridge profiles on a channel.
1943
   and bridge profiles on a channel.
1928
 * CONFBRIDGE_INFO dialplan function capable of retrieving information
1944
 * CONFBRIDGE_INFO dialplan function capable of retrieving information
1929
   about a conference such as locked status and number of parties, admins,
1945
   about a conference such as locked status and number of parties, admins,
1930
   and marked users.
1946
   and marked users.
1931
 * Addition of video_mode option in confbridge.conf for adding video support
1947
 * Addition of video_mode option in confbridge.conf for adding video support
1932
   into a bridge profile.
1948
   into a bridge profile.
1933
 * Addition of the follow_talker video_mode in confbridge.conf.  This video
1949
 * Addition of the follow_talker video_mode in confbridge.conf.  This video
1934
   mode dynamically switches the video feed to always display the loudest talker
1950
   mode dynamically switches the video feed to always display the loudest talker
1935
   supplying video in the conference.
1951
   supplying video in the conference.
1936

    
   
1952

   
1937
Dialplan Variables
1953
Dialplan Variables
1938
------------------
1954
------------------
1939
 * Added ASTETCDIR, ASTMODDIR, ASTVARLIBDIR, ASTDBDIR, ASTKEYDIR, ASTDATADIR,
1955
 * Added ASTETCDIR, ASTMODDIR, ASTVARLIBDIR, ASTDBDIR, ASTKEYDIR, ASTDATADIR,
1940
   ASTAGIDIR, ASTSPOOLDIR, ASTRUNDIR, ASTLOGDIR which hold the equivalent
1956
   ASTAGIDIR, ASTSPOOLDIR, ASTRUNDIR, ASTLOGDIR which hold the equivalent
1941
   variables from asterisk.conf.
1957
   variables from asterisk.conf.
1942

    
   
1958

   
1943
Dialplan Functions
1959
Dialplan Functions
1944
------------------
1960
------------------
1945
 * Addition of the JITTERBUFFER dialplan function. This function allows
1961
 * Addition of the JITTERBUFFER dialplan function. This function allows
1946
   for jitterbuffering to occur on the read side of a channel.  By using
1962
   for jitterbuffering to occur on the read side of a channel.  By using
1947
   this function conference applications such as ConfBridge and MeetMe can
1963
   this function conference applications such as ConfBridge and MeetMe can
1948
   have the rx streams jitterbuffered before conference mixing occurs.
1964
   have the rx streams jitterbuffered before conference mixing occurs.
1949
 * Added DB_KEYS, which lists the next set of keys in the Asterisk database
1965
 * Added DB_KEYS, which lists the next set of keys in the Asterisk database
1950
   hierarchy.
1966
   hierarchy.
1951
 * Added STRREPLACE function.  This function let's the user search a variable
1967
 * Added STRREPLACE function.  This function let's the user search a variable
1952
   for a given string to replace with another string as many times as the
1968
   for a given string to replace with another string as many times as the
1953
   user specifies or just throughout the whole string.
1969
   user specifies or just throughout the whole string.
1954
 * Added option to CHANNEL(pickupgroup) allow reading and setting the pickupgroup of channel.
1970
 * Added option to CHANNEL(pickupgroup) allow reading and setting the pickupgroup of channel.
1955
 * Mark VALID_EXTEN() deprecated in favor of DIALPLAN_EXISTS()
1971
 * Mark VALID_EXTEN() deprecated in favor of DIALPLAN_EXISTS()
1956
 * Added extensions to chan_ooh323 in function CHANNEL()
1972
 * Added extensions to chan_ooh323 in function CHANNEL()
1957

    
   
1973

   
1958
libpri channel driver (chan_dahdi) DAHDI changes
1974
libpri channel driver (chan_dahdi) DAHDI changes
1959
--------------------------
1975
--------------------------
1960
 * Added moh_signaling option to specify what to do when the channel's bridged
1976
 * Added moh_signaling option to specify what to do when the channel's bridged
1961
   peer puts the ISDN channel on hold.
1977
   peer puts the ISDN channel on hold.
1962
 * Added display_send and display_receive options to control how the display ie
1978
 * Added display_send and display_receive options to control how the display ie
1963
   is handled.  To send display text from the dialplan use the SendText()
1979
   is handled.  To send display text from the dialplan use the SendText()
1964
   application when the option is enabled.
1980
   application when the option is enabled.
1965
 * Added mcid_send option to allow sending a MCID request on a span.
1981
 * Added mcid_send option to allow sending a MCID request on a span.
1966

    
   
1982

   
1967
Calendaring
1983
Calendaring
1968
--------------------------
1984
--------------------------
1969
 * Added setvar option to calendar.conf to allow setting channel variables on
1985
 * Added setvar option to calendar.conf to allow setting channel variables on
1970
   notification channels.
1986
   notification channels.
1971
 * Added "calendar show types" CLI command to list registered calendar
1987
 * Added "calendar show types" CLI command to list registered calendar
1972
   connectors.
1988
   connectors.
1973

    
   
1989

   
1974
MixMonitor
1990
MixMonitor
1975
--------------------------
1991
--------------------------
1976
 * Added two new options, r and t with file name arguments to record
1992
 * Added two new options, r and t with file name arguments to record
1977
   single direction (unmixed) audio recording separate from the bidirectional
1993
   single direction (unmixed) audio recording separate from the bidirectional
1978
   (mixed) recording.  The mixed file name argument is optional now as long
1994
   (mixed) recording.  The mixed file name argument is optional now as long
1979
   as at least one recording option is used.
1995
   as at least one recording option is used.
1980

    
   
1996

   
1981
FollowMe
1997
FollowMe
1982
--------------------------
1998
--------------------------
1983
 * Added a new option, l, which will disable local call optimization for
1999
 * Added a new option, l, which will disable local call optimization for
1984
   channels involved with the FollowMe thread.  Use this option to improve
2000
   channels involved with the FollowMe thread.  Use this option to improve
1985
   compatability for a FollowMe call with certain dialplan apps, options, and
2001
   compatability for a FollowMe call with certain dialplan apps, options, and
1986
   functions.
2002
   functions.
1987

    
   
2003

   
1988
Meetme
2004
Meetme
1989
--------------------------
2005
--------------------------
1990
 * Added option "k" that will automatically close the conference when there's
2006
 * Added option "k" that will automatically close the conference when there's
1991
   only one person left when a user exits the conference.
2007
   only one person left when a user exits the conference.
1992

    
   
2008

   
1993
CEL
2009
CEL
1994
--------------------------
2010
--------------------------
1995
 * cel_pgsql now supports the 'extra' column for data added using the
2011
 * cel_pgsql now supports the 'extra' column for data added using the
1996
   CELGenUserEvent() application.
2012
   CELGenUserEvent() application.
1997

    
   
2013

   
1998
pbx_lua
2014
pbx_lua
1999
--------------------------
2015
--------------------------
2000
 * Support for defining hints has been added to pbx_lua.  See the 'hints' table
2016
 * Support for defining hints has been added to pbx_lua.  See the 'hints' table
2001
   in the sample extensions.lua file for syntax details.
2017
   in the sample extensions.lua file for syntax details.
2002
 * Applications that perform jumps in the dialplan such as Goto will now
2018
 * Applications that perform jumps in the dialplan such as Goto will now
2003
   execute properly.  When pbx_lua detects that the context, extension, or
2019
   execute properly.  When pbx_lua detects that the context, extension, or
2004
   priority we are executing on has changed it will immediately return control
2020
   priority we are executing on has changed it will immediately return control
2005
   to the asterisk PBX engine.  Currently the engine cannot detect a Goto to
2021
   to the asterisk PBX engine.  Currently the engine cannot detect a Goto to
2006
   the priority after the currently executing priority.
2022
   the priority after the currently executing priority.
2007
 * An autoservice is now started by default for pbx_lua channels.  It can be
2023
 * An autoservice is now started by default for pbx_lua channels.  It can be
2008
   stopped and restarted using the autoservice_stop() and autoservice_start()
2024
   stopped and restarted using the autoservice_stop() and autoservice_start()
2009
   functions.
2025
   functions.
2010

    
   
2026

   
2011
res_fax
2027
res_fax
2012
--------------------------
2028
--------------------------
2013
 * The ReceiveFAXStatus and SendFAXStatus manager events have been consolidated
2029
 * The ReceiveFAXStatus and SendFAXStatus manager events have been consolidated
2014
   into a FAXStatus event with an 'Operation' header that will be either
2030
   into a FAXStatus event with an 'Operation' header that will be either
2015
   'send', 'receive', and 'gateway'.
2031
   'send', 'receive', and 'gateway'.
2016
 * T.38 gateway functionality has been added to res_fax (and res_fax_spandsp).
2032
 * T.38 gateway functionality has been added to res_fax (and res_fax_spandsp).
2017
   Set FAXOPT(gateway)=yes to enable this functionality on a channel. This
2033
   Set FAXOPT(gateway)=yes to enable this functionality on a channel. This
2018
   feature will handle converting a fax call between an audio T.30 fax terminal
2034
   feature will handle converting a fax call between an audio T.30 fax terminal
2019
   and an IFP T.38 fax terminal.
2035
   and an IFP T.38 fax terminal.
2020

    
   
2036

   
2021
SIP Changes
2037
SIP Changes
2022
-----------
2038
-----------
2023
 * Add T38 support for REJECTED state where T.38 Negotiation is explicitly rejected.
2039
 * Add T38 support for REJECTED state where T.38 Negotiation is explicitly rejected.
2024
 * Add option encryption_taglen to set auth taglen only 32 and 80 are supported currently.
2040
 * Add option encryption_taglen to set auth taglen only 32 and 80 are supported currently.
2025
 * SIP now generates security events using the Security Events Framework for REGISTER and INVITE.
2041
 * SIP now generates security events using the Security Events Framework for REGISTER and INVITE.
2026

    
   
2042

   
2027
Queue changes
2043
Queue changes
2028
-------------
2044
-------------
2029
 * Added general option negative_penalty_invalid default off. when set
2045
 * Added general option negative_penalty_invalid default off. when set
2030
   members are seen as invalid/logged out when there penalty is negative.
2046
   members are seen as invalid/logged out when there penalty is negative.
2031
   for realtime members when set remove from queue will set penalty to -1.
2047
   for realtime members when set remove from queue will set penalty to -1.
2032
 * Added queue option autopausedelay when autopause is enabled it will be
2048
 * Added queue option autopausedelay when autopause is enabled it will be
2033
   delayed for this number of seconds since last successful call if there
2049
   delayed for this number of seconds since last successful call if there
2034
   was no prior call the agent will be autopaused immediately.
2050
   was no prior call the agent will be autopaused immediately.
2035
 * Added member option ignorebusy this when set and ringinuse is not
2051
 * Added member option ignorebusy this when set and ringinuse is not
2036
   will allow per member control of multiple calls as ringinuse does for
2052
   will allow per member control of multiple calls as ringinuse does for
2037
   the Queue.
2053
   the Queue.
2038

    
   
2054

   
2039
Applications
2055
Applications
2040
------------
2056
------------
2041
 * Added 'v' option to MeetMe to play voicemail greetings when a user joins/leaves
2057
 * Added 'v' option to MeetMe to play voicemail greetings when a user joins/leaves
2042
   a MeetMe conference
2058
   a MeetMe conference
2043
 * Added 'k' option to MeetMe to automatically kill the conference when there's only
2059
 * Added 'k' option to MeetMe to automatically kill the conference when there's only
2044
   one participant left (much like a normal call bridge)
2060
   one participant left (much like a normal call bridge)
2045
 * Added extra argument to Originate to set timeout.
2061
 * Added extra argument to Originate to set timeout.
2046

    
   
2062

   
2047
Asterisk Database
2063
Asterisk Database
2048
-----------------
2064
-----------------
2049
 * The internal Asterisk database has been switched from Berkeley DB 1.86 to
2065
 * The internal Asterisk database has been switched from Berkeley DB 1.86 to
2050
   SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
2066
   SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
2051
   utility in the UTILS section of menuselect. If an existing astdb is found and no
2067
   utility in the UTILS section of menuselect. If an existing astdb is found and no
2052
   astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
2068
   astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
2053
   convert an existing astdb to the SQLite3 version automatically at runtime.
2069
   convert an existing astdb to the SQLite3 version automatically at runtime.
2054

    
   
2070

   
2055
Asterisk Modules
2071
Asterisk Modules
2056
----------------
2072
----------------
2057
 * Modules marked as deprecated are no longer marked as building by default. Enabling
2073
 * Modules marked as deprecated are no longer marked as building by default. Enabling
2058
   these modules is still available via menuselect.
2074
   these modules is still available via menuselect.
2059

    
   
2075

   
2060
IAX2 Changes
2076
IAX2 Changes
2061
------------
2077
------------
2062
 * authdebug is now disabled by default. To enable this functionaility again
2078
 * authdebug is now disabled by default. To enable this functionaility again
2063
   set authdebug = yes in iax.conf.
2079
   set authdebug = yes in iax.conf.
2064

    
   
2080

   
2065
RTP Changes
2081
RTP Changes
2066
-----------
2082
-----------
2067
 * The rtp.conf setting "strictrtp" is now enabled by default. In previous
2083
 * The rtp.conf setting "strictrtp" is now enabled by default. In previous
2068
   releases it was disabled.
2084
   releases it was disabled.
2069

    
   
2085

   
2070
PBX Core
2086
PBX Core
2071
--------
2087
--------
2072
 * The PBX core previously made a call with a non-existing extension test for
2088
 * The PBX core previously made a call with a non-existing extension test for
2073
   extension s@default and jump there if the extension existed.
2089
   extension s@default and jump there if the extension existed.
2074
   This was a bad default behaviour and violated the principle of least surprise.
2090
   This was a bad default behaviour and violated the principle of least surprise.
2075
   It has therefore been changed in this release. It may affect some
2091
   It has therefore been changed in this release. It may affect some
2076
   applications and configurations that rely on this behaviour. Most channel
2092
   applications and configurations that rely on this behaviour. Most channel
2077
   drivers have avoided this for many releases by testing whether the extension
2093
   drivers have avoided this for many releases by testing whether the extension
2078
   called exists before starting the PBX and generating a local error.
2094
   called exists before starting the PBX and generating a local error.
2079
   This behaviour still exists and works as before.
2095
   This behaviour still exists and works as before.
2080

    
   
2096

   
2081
   Extension "s" is used when no extension is given in a channel driver,
2097
   Extension "s" is used when no extension is given in a channel driver,
2082
   like immediate answer in DAHDI or calling to a domain with no user part
2098
   like immediate answer in DAHDI or calling to a domain with no user part
2083
   in a SIP uri.
2099
   in a SIP uri.
2084

    
   
2100

   
2085
------------------------------------------------------------------------------
2101
------------------------------------------------------------------------------
2086
--- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
2102
--- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
2087
------------------------------------------------------------------------------
2103
------------------------------------------------------------------------------
2088

    
   
2104

   
2089
SIP Changes
2105
SIP Changes
2090
-----------
2106
-----------
2091
 * Due to potential username discovery vulnerabilities, the 'nat' setting in sip.conf
2107
 * Due to potential username discovery vulnerabilities, the 'nat' setting in sip.conf
2092
   now defaults to force_rport. It is very important that phones requiring nat=no be
2108
   now defaults to force_rport. It is very important that phones requiring nat=no be
2093
   specifically set as such instead of relying on the default setting. If at all
2109
   specifically set as such instead of relying on the default setting. If at all
2094
   possible, all devices should have nat settings configured in the general section as
2110
   possible, all devices should have nat settings configured in the general section as
2095
   opposed to configuring nat per-device.
2111
   opposed to configuring nat per-device.
2096
 * Added preferred_codec_only option in sip.conf. This feature limits the joint
2112
 * Added preferred_codec_only option in sip.conf. This feature limits the joint
2097
   codecs sent in response to an INVITE to the single most preferred codec.
2113
   codecs sent in response to an INVITE to the single most preferred codec.
2098
 * Added SIP_CODEC_OUTBOUND dialplan variable which can be used to set the codec
2114
 * Added SIP_CODEC_OUTBOUND dialplan variable which can be used to set the codec
2099
   to be used for the outgoing call. It must be one of the codecs configured
2115
   to be used for the outgoing call. It must be one of the codecs configured
2100
   for the device.
2116
   for the device.
2101
 * Added tlsprivatekey option to sip.conf.  This allows a separate .pem file
2117
 * Added tlsprivatekey option to sip.conf.  This allows a separate .pem file
2102
   to be used for holding a private key.  If tlsprivatekey is not specified,
2118
   to be used for holding a private key.  If tlsprivatekey is not specified,
2103
   tlscertfile is searched for both public and private key.
2119
   tlscertfile is searched for both public and private key.
2104
 * Added tlsclientmethod option to sip.conf.  This allows the protocol for
2120
 * Added tlsclientmethod option to sip.conf.  This allows the protocol for
2105
   outbound client connections to be specified.
2121
   outbound client connections to be specified.
2106
 * The sendrpid parameter has been expanded to include the options
2122
 * The sendrpid parameter has been expanded to include the options
2107
   'rpid' and 'pai'. Setting sendrpid to 'rpid' will cause Remote-Party-ID
2123
   'rpid' and 'pai'. Setting sendrpid to 'rpid' will cause Remote-Party-ID
2108
   header to be sent (equivalent to setting sendrpid=yes) and setting
2124
   header to be sent (equivalent to setting sendrpid=yes) and setting
2109
   sendrpid to 'pai' will cause P-Asserted-Identity header to be sent.
2125
   sendrpid to 'pai' will cause P-Asserted-Identity header to be sent.
2110
 * The 'ignoresdpversion' behavior has been made automatic when the SDP received
2126
 * The 'ignoresdpversion' behavior has been made automatic when the SDP received
2111
   is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
2127
   is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
2112
   since the call will fail if Asterisk does not process the incoming SDP, Asterisk
2128
   since the call will fail if Asterisk does not process the incoming SDP, Asterisk
2113
   will accept the SDP even if the SDP version number is not properly incremented,
2129
   will accept the SDP even if the SDP version number is not properly incremented,
2114
   but will generate a warning in the log indicating that the SIP peer that sent
2130
   but will generate a warning in the log indicating that the SIP peer that sent
2115
   the SDP should have the 'ignoresdpversion' option set.
2131
   the SDP should have the 'ignoresdpversion' option set.
2116
 * The 'nat' option has now been been changed to have yes, no, force_rport, and
2132
 * The 'nat' option has now been been changed to have yes, no, force_rport, and
2117
   comedia as valid values. Setting it to yes forces RFC 3581 behavior and enables
2133
   comedia as valid values. Setting it to yes forces RFC 3581 behavior and enables
2118
   symmetric RTP support. Setting it to no only enables RFC 3581 behavior if the
2134
   symmetric RTP support. Setting it to no only enables RFC 3581 behavior if the
2119
   remote side requests it and disables symmetric RTP support. Setting it to
2135
   remote side requests it and disables symmetric RTP support. Setting it to
2120
   force_rport forces RFC 3581 behavior and disables symmetric RTP support.
2136
   force_rport forces RFC 3581 behavior and disables symmetric RTP support.
2121
   Setting it to comedia enables RFC 3581 behavior if the remote side requests it
2137
   Setting it to comedia enables RFC 3581 behavior if the remote side requests it
2122
   and enables symmetric RTP support.
2138
   and enables symmetric RTP support.
2123
 * Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
2139
 * Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
2124
   response.  This permits the master channel to know how each channel dialled
2140
   response.  This permits the master channel to know how each channel dialled
2125
   in a multi-channel setup resolved in an individual way. This carries a
2141
   in a multi-channel setup resolved in an individual way. This carries a
2126
   performance penalty and can be disabled in sip.conf using the
2142
   performance penalty and can be disabled in sip.conf using the
2127
   'storesipcause' option.
2143
   'storesipcause' option.
2128
 * Added 'externtcpport' and 'externtlsport' options to allow custom port
2144
 * Added 'externtcpport' and 'externtlsport' options to allow custom port
2129
   configuration for the externip and externhost options when tcp or tls is used.
2145
   configuration for the externip and externhost options when tcp or tls is used.
2130
 * Added support for message body (stored in content variable) to SIP NOTIFY message
2146
 * Added support for message body (stored in content variable) to SIP NOTIFY message
2131
   accessible via AMI and CLI.
2147
   accessible via AMI and CLI.
2132
 * Added 'media_address' configuration option which can be used to explicitly specify
2148
 * Added 'media_address' configuration option which can be used to explicitly specify
2133
   the IP address to use in the SDP for media (audio, video, and text) streams.
2149
   the IP address to use in the SDP for media (audio, video, and text) streams.
2134
 * Added 'unsolicited_mailbox' configuration option which specifies the virtual mailbox
2150
 * Added 'unsolicited_mailbox' configuration option which specifies the virtual mailbox
2135
   that the new/old count should be stored on if an unsolicited MWI NOTIFY message is
2151
   that the new/old count should be stored on if an unsolicited MWI NOTIFY message is
2136
   received.
2152
   received.
2137
 * Added 'use_q850_reason' configuration option for generating and parsing
2153
 * Added 'use_q850_reason' configuration option for generating and parsing
2138
   if available  Reason: Q.850;cause=<cause code> header. It is implemented
2154
   if available  Reason: Q.850;cause=<cause code> header. It is implemented
2139
   in some gateways for better passing PRI/SS7 cause codes via SIP.
2155
   in some gateways for better passing PRI/SS7 cause codes via SIP.
2140
 * When dialing SIP peers, a new component may be added to the end of the dialstring
2156
 * When dialing SIP peers, a new component may be added to the end of the dialstring
2141
   to indicate that a specific remote IP address or host should be used when dialing
2157
   to indicate that a specific remote IP address or host should be used when dialing
2142
   the particular peer. The dialstring format is SIP/peer/exten/host_or_IP.
2158
   the particular peer. The dialstring format is SIP/peer/exten/host_or_IP.
2143
 * SRTP SDES support for encrypting calls to/from Asterisk over SIP. The
2159
 * SRTP SDES support for encrypting calls to/from Asterisk over SIP. The
2144
   ability to selectively force bridged channels to also be encrypted is also
2160
   ability to selectively force bridged channels to also be encrypted is also
2145
   implemented. Branching in the dialplan can be done based on whether or not
2161
   implemented. Branching in the dialplan can be done based on whether or not
2146
   a channel has secure media and/or signaling.
2162
   a channel has secure media and/or signaling.
2147
 * Added directmediapermit/directmediadeny to limit which peers can send direct media
2163
 * Added directmediapermit/directmediadeny to limit which peers can send direct media
2148
   to each other
2164
   to each other
2149
 * Added the 'snom_aoc_enabled' option to turn on support for sending Advice of
2165
 * Added the 'snom_aoc_enabled' option to turn on support for sending Advice of
2150
   Charge messages to snom phones.
2166
   Charge messages to snom phones.
2151
 * Added support for G.719 media streams.
2167
 * Added support for G.719 media streams.
2152
 * Added support for 16khz signed linear media streams.
2168
 * Added support for 16khz signed linear media streams.
2153
 * SIP is now able to bind to and communicate with IPv6 addresses. In addition,
2169
 * SIP is now able to bind to and communicate with IPv6 addresses. In addition,
2154
   RTP has been outfitted with the same abilities.
2170
   RTP has been outfitted with the same abilities.
2155
 * Added support for setting the Max-Forwards: header in SIP requests. Setting is
2171
 * Added support for setting the Max-Forwards: header in SIP requests. Setting is
2156
   available in device configurations as well as in the dial plan.
2172
   available in device configurations as well as in the dial plan.
2157
 * Addition of the 'subscribe_network_change' option for turning on and off
2173
 * Addition of the 'subscribe_network_change' option for turning on and off
2158
   res_stun_monitor module support in chan_sip.
2174
   res_stun_monitor module support in chan_sip.
2159
 * Addition of the 'auth_options_requests' option for turning on and off
2175
 * Addition of the 'auth_options_requests' option for turning on and off
2160
   authentication for OPTIONS requests in chan_sip.
2176
   authentication for OPTIONS requests in chan_sip.
2161

    
   
2177

   
2162
Configuration files
2178
Configuration files
2163
-------------------
2179
-------------------
2164
 * Add #tryinclude statement for config files.  This provides the same
2180
 * Add #tryinclude statement for config files.  This provides the same
2165
   functionality as the #include statement however an asterisk module will
2181
   functionality as the #include statement however an asterisk module will
2166
   still load if the filename does not exist.  Using the #include statement
2182
   still load if the filename does not exist.  Using the #include statement
2167
   Asterisk will not allow the module to load.
2183
   Asterisk will not allow the module to load.
2168

    
   
2184

   
2169
IAX2 Changes
2185
IAX2 Changes
2170
-----------
2186
-----------
2171
 * Added rtsavesysname option into iax.conf to allow the systname to be saved
2187
 * Added rtsavesysname option into iax.conf to allow the systname to be saved
2172
   on realtime updates.
2188
   on realtime updates.
2173
 * Added the ability for chan_iax2 to inform the dialplan whether or not
2189
 * Added the ability for chan_iax2 to inform the dialplan whether or not
2174
   encryption is being used. This interoperates with the SIP SRTP implementation
2190
   encryption is being used. This interoperates with the SIP SRTP implementation
2175
   so that a secure SIP call can be bridged to a secure IAX call when the
2191
   so that a secure SIP call can be bridged to a secure IAX call when the
2176
   dialplan requires bridged channels to be "secure".
2192
   dialplan requires bridged channels to be "secure".
2177
 * Addition of the 'subscribe_network_change' option for turning on and off
2193
 * Addition of the 'subscribe_network_change' option for turning on and off
2178
   res_stun_monitor module support in chan_iax.
2194
   res_stun_monitor module support in chan_iax.
2179

    
   
2195

   
2180

    
   
2196

   
2181
MGCP Changes
2197
MGCP Changes
2182
------------
2198
------------
2183
 * Added ability to preset channel variables on indicated lines with the setvar
2199
 * Added ability to preset channel variables on indicated lines with the setvar
2184
   configuration option.  Also, clearvars=all resets the list of variables back
2200
   configuration option.  Also, clearvars=all resets the list of variables back
2185
   to none.
2201
   to none.
2186
 * PacketCable NCS 1.0 support has been added for Docsis/Eurodocsis Networks.
2202
 * PacketCable NCS 1.0 support has been added for Docsis/Eurodocsis Networks.
2187
   See configs/res_pktccops.conf for more information.
2203
   See configs/res_pktccops.conf for more information.
2188

    
   
2204

   
2189
XMPP Google Talk/Jingle changes
2205
XMPP Google Talk/Jingle changes
2190
-------------------------------
2206
-------------------------------
2191
  * Added the externip option to gtalk.conf.
2207
  * Added the externip option to gtalk.conf.
2192
  * Added the stunaddr option to gtalk.conf which allows for the automatic
2208
  * Added the stunaddr option to gtalk.conf which allows for the automatic
2193
    retrieval of the external ip from a stun server.
2209
    retrieval of the external ip from a stun server.
2194

    
   
2210

   
2195
Applications
2211
Applications
2196
------------
2212
------------
2197
 * Added 'p' option to PickupChan() to allow for picking up channel by the first
2213
 * Added 'p' option to PickupChan() to allow for picking up channel by the first
2198
   match to a partial channel name.
2214
   match to a partial channel name.
2199
 * Added .m3u support for Mp3Player application.
2215
 * Added .m3u support for Mp3Player application.
2200
 * Added progress option to the app_dial D() option.  When progress DTMF is
2216
 * Added progress option to the app_dial D() option.  When progress DTMF is
2201
   present, those values are sent immediately upon receiving a PROGRESS message
2217
   present, those values are sent immediately upon receiving a PROGRESS message
2202
   regardless if the call has been answered or not.
2218
   regardless if the call has been answered or not.
2203
 * Added functionality to the app_dial F() option to continue with execution
2219
 * Added functionality to the app_dial F() option to continue with execution
2204
   at the current location when no parameters are provided.
2220
   at the current location when no parameters are provided.
2205
 * Added the 'a' option to app_dial to answer the calling channel before any
2221
 * Added the 'a' option to app_dial to answer the calling channel before any
2206
   announcements or macros are executed.
2222
   announcements or macros are executed.
2207
 * Modified app_dial to set answertime when the called channel answers even if
2223
 * Modified app_dial to set answertime when the called channel answers even if
2208
   the called channel hangs up during playback of an announcement.
2224
   the called channel hangs up during playback of an announcement.
2209
 * Modified app_dial 'r' option to support an additional parameter to play an
2225
 * Modified app_dial 'r' option to support an additional parameter to play an
2210
   indication tone from indications.conf
2226
   indication tone from indications.conf
2211
 * Added c() option to app_chanspy. This option allows custom DTMF to be set
2227
 * Added c() option to app_chanspy. This option allows custom DTMF to be set
2212
   to cycle through the next available channel.  By default this is still '*'.
2228
   to cycle through the next available channel.  By default this is still '*'.
2213
 * Added x() option to app_chanspy.  This option allows DTMF to be set to
2229
 * Added x() option to app_chanspy.  This option allows DTMF to be set to
2214
   exit the application.
2230
   exit the application.
2215
 * The Voicemail application has been improved to automatically ignore messages
2231
 * The Voicemail application has been improved to automatically ignore messages
2216
   that only contain silence.
2232
   that only contain silence.
2217
 * If you set maxmsg to 0 in voicemail.conf, Voicemail will consider the
2233
 * If you set maxmsg to 0 in voicemail.conf, Voicemail will consider the
2218
   associated mailbox(es) to be greetings-only.
2234
   associated mailbox(es) to be greetings-only.
2219
 * The ChanSpy application now has the 'S' option, which makes the application
2235
 * The ChanSpy application now has the 'S' option, which makes the application
2220
   automatically exit once it hits a point where no more channels are available
2236
   automatically exit once it hits a point where no more channels are available
2221
   to spy on.
2237
   to spy on.
2222
 * The ChanSpy application also now has the 'E' option, which spies on a single
2238
 * The ChanSpy application also now has the 'E' option, which spies on a single
2223
   channel and exits when that channel hangs up.
2239
   channel and exits when that channel hangs up.
2224
 * The MeetMe application now turns on the DENOISE() function by default, for
2240
 * The MeetMe application now turns on the DENOISE() function by default, for
2225
   each participant.  In our tests, this has significantly decreased background
2241
   each participant.  In our tests, this has significantly decreased background
2226
   noise (especially noisy data centers).
2242
   noise (especially noisy data centers).
2227
 * Voicemail now permits storage of secrets in a separate file, located in the
2243
 * Voicemail now permits storage of secrets in a separate file, located in the
2228
   spool directory of each individual user.  The control for this is located in
2244
   spool directory of each individual user.  The control for this is located in
2229
   the "passwordlocation" option in voicemail.conf.  Please see the sample
2245
   the "passwordlocation" option in voicemail.conf.  Please see the sample
2230
   configuration for more information.
2246
   configuration for more information.
2231
 * The ChanIsAvail application now exposes the returned cause code using a separate
2247
 * The ChanIsAvail application now exposes the returned cause code using a separate
2232
   variable, AVAILCAUSECODE, instead of overwriting the device state in AVAILSTATUS.
2248
   variable, AVAILCAUSECODE, instead of overwriting the device state in AVAILSTATUS.
2233
 * Added 'd' option to app_followme.  This option disables the "Please hold"
2249
 * Added 'd' option to app_followme.  This option disables the "Please hold"
2234
   announcement.
2250
   announcement.
2235
 * Added 'y' option to app_record. This option enables a mode where any DTMF digit
2251
 * Added 'y' option to app_record. This option enables a mode where any DTMF digit
2236
   received will terminate recording.
2252
   received will terminate recording.
2237
 * Voicemail now supports per mailbox settings for folders when using IMAP storage.
2253
 * Voicemail now supports per mailbox settings for folders when using IMAP storage.
2238
   Previously the folder could only be set per context, but has now been extended
2254
   Previously the folder could only be set per context, but has now been extended
2239
   using the imapfolder option.
2255
   using the imapfolder option.
2240
 * Voicemail now supports per mailbox settings for nextaftercmd and minsecs.
2256
 * Voicemail now supports per mailbox settings for nextaftercmd and minsecs.
2241
 * Voicemail now allows the pager date format to be specified separately from the
2257
 * Voicemail now allows the pager date format to be specified separately from the
2242
   email date format.
2258
   email date format.
2243
 * New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
2259
 * New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
2244
   to allow joining, leaving, and sending text to group chats.
2260
   to allow joining, leaving, and sending text to group chats.
2245
 * MeetMe has a new option 'G' to play an announcement before joining a conference.
2261
 * MeetMe has a new option 'G' to play an announcement before joining a conference.
2246
 * Page has a new option 'A(x)' which will playback an announcement simultaneously
2262
 * Page has a new option 'A(x)' which will playback an announcement simultaneously
2247
   to all paged phones (and optionally excluding the caller's one using the new
2263
   to all paged phones (and optionally excluding the caller's one using the new
2248
   option 'n') before the call is bridged.
2264
   option 'n') before the call is bridged.
2249
 * The 'f' option to Dial has been augmented to take an optional argument. If no
2265
 * The 'f' option to Dial has been augmented to take an optional argument. If no
2250
   argument is provided, the 'f' option works as it always has. If an argument is
2266
   argument is provided, the 'f' option works as it always has. If an argument is
2251
   provided, then the connected party information of all outgoing channels created
2267
   provided, then the connected party information of all outgoing channels created
2252
   during the Dial will be set to the argument passed to the 'f' option.
2268
   during the Dial will be set to the argument passed to the 'f' option.
2253
 * Dial now inherits the GOSUB_RETVAL from the peer, when the U() option runs a
2269
 * Dial now inherits the GOSUB_RETVAL from the peer, when the U() option runs a
2254
   Gosub on the peer.
2270
   Gosub on the peer.
2255
 * The OSP lookup application adds in/outbound network ID, optional security,
2271
 * The OSP lookup application adds in/outbound network ID, optional security,
2256
   number portability, QoS reporting, destination IP port, custom info and service
2272
   number portability, QoS reporting, destination IP port, custom info and service
2257
   type features.
2273
   type features.
2258
 * Added new application VMSayName that will play the recorded name of the voicemail
2274
 * Added new application VMSayName that will play the recorded name of the voicemail
2259
   user if it exists, otherwise will play the mailbox number.
2275
   user if it exists, otherwise will play the mailbox number.
2260
 * Added custom device states to ConfBridge bridges.  Use 'confbridge:<name>' to
2276
 * Added custom device states to ConfBridge bridges.  Use 'confbridge:<name>' to
2261
   retrieve state for a particular bridge, where <name> is the conference name
2277
   retrieve state for a particular bridge, where <name> is the conference name
2262
 * app_directory now allows exiting at any time using the operator or pound key.
2278
 * app_directory now allows exiting at any time using the operator or pound key.
2263
 * Voicemail now supports setting a locale per-mailbox.
2279
 * Voicemail now supports setting a locale per-mailbox.
2264
 * Two new applications are provided for declining counting phrases in multiple
2280
 * Two new applications are provided for declining counting phrases in multiple
2265
   languages.  See the application notes for SayCountedNoun and SayCountedAdj for
2281
   languages.  See the application notes for SayCountedNoun and SayCountedAdj for
2266
   more information.
2282
   more information.
2267
 * Voicemail now runs the externnotify script when pollmailboxes is activated and
2283
 * Voicemail now runs the externnotify script when pollmailboxes is activated and
2268
   notices a change.
2284
   notices a change.
2269
 * Voicemail now includes rdnis within msgXXXX.txt file.
2285
 * Voicemail now includes rdnis within msgXXXX.txt file.
2270
 * ExternalIVR now supports IPv6 addresses.
2286
 * ExternalIVR now supports IPv6 addresses.
2271
 * Added 'D' command to ExternalIVR. Details are available on the Asterisk wiki
2287
 * Added 'D' command to ExternalIVR. Details are available on the Asterisk wiki
2272
   at https://wiki.asterisk.org/wiki/x/oQBB
2288
   at https://wiki.asterisk.org/wiki/x/oQBB
2273
 * ParkedCall and Park can now specify the parking lot to use.
2289
 * ParkedCall and Park can now specify the parking lot to use.
2274

    
   
2290

   
2275
Dialplan Functions
2291
Dialplan Functions
2276
------------------
2292
------------------
2277
 * SRVQUERY and SRVRESULT functions added. This can be used to query and iterate
2293
 * SRVQUERY and SRVRESULT functions added. This can be used to query and iterate
2278
   over SRV records associated with a specific service. From the CLI, type
2294
   over SRV records associated with a specific service. From the CLI, type
2279
   'core show function SRVQUERY' and 'core show function SRVRESULT' for more
2295
   'core show function SRVQUERY' and 'core show function SRVRESULT' for more
2280
   details on how these may be used.
2296
   details on how these may be used.
2281
 * PITCH_SHIFT dialplan function added. This function can be used to modify the
2297
 * PITCH_SHIFT dialplan function added. This function can be used to modify the
2282
   pitch of a channel's tx and rx audio streams.
2298
   pitch of a channel's tx and rx audio streams.
2283
 * Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
2299
 * Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
2284
   setting various connected line and redirecting party information.
2300
   setting various connected line and redirecting party information.
2285
 * CALLERID and CONNECTEDLINE dialplan functions have been extended to
2301
 * CALLERID and CONNECTEDLINE dialplan functions have been extended to
2286
   support ISDN subaddressing.
2302
   support ISDN subaddressing.
2287
 * The CHANNEL() function now supports the "name" and "checkhangup" options.
2303
 * The CHANNEL() function now supports the "name" and "checkhangup" options.
2288
 * For DAHDI channels, the CHANNEL() dialplan function now allows
2304
 * For DAHDI channels, the CHANNEL() dialplan function now allows
2289
   the dialplan to request changes in the configuration of the active
2305
   the dialplan to request changes in the configuration of the active
2290
   echo canceller on the channel (if any), for the current call only.
2306
   echo canceller on the channel (if any), for the current call only.
2291
   The syntax is:
2307
   The syntax is:
2292

    
   
2308

   
2293
   exten => s,n,Set(CHANNEL(echocan_mode)=off)
2309
   exten => s,n,Set(CHANNEL(echocan_mode)=off)
2294

    
   
2310

   
2295
   The possible values are:
2311
   The possible values are:
2296

    
   
2312

   
2297
     on - normal mode (the echo canceller is actually reinitialized)
2313
     on - normal mode (the echo canceller is actually reinitialized)
2298
     off - disabled
2314
     off - disabled
2299
     fax - FAX/data mode (NLP disabled if possible, otherwise completely
2315
     fax - FAX/data mode (NLP disabled if possible, otherwise completely
2300
           disabled)
2316
           disabled)
2301
     voice - voice mode (returns from FAX mode, reverting the changes that
2317
     voice - voice mode (returns from FAX mode, reverting the changes that
2302
             were made when FAX mode was requested)
2318
             were made when FAX mode was requested)
2303
 * Added new dialplan function MASTER_CHANNEL(), which permits retrieving
2319
 * Added new dialplan function MASTER_CHANNEL(), which permits retrieving
2304
   and setting variables on the channel which created the current channel.
2320
   and setting variables on the channel which created the current channel.
2305
   Administrators should take care to avoid naming conflicts, when multiple
2321
   Administrators should take care to avoid naming conflicts, when multiple
2306
   channels are dialled at once, especially when used with the Local channel
2322
   channels are dialled at once, especially when used with the Local channel
2307
   construct (which all could set variables on the master channel).  Usage
2323
   construct (which all could set variables on the master channel).  Usage
2308
   of the HASH() dialplan function, with the key set to the name of the slave
2324
   of the HASH() dialplan function, with the key set to the name of the slave
2309
   channel, is one approach that will avoid conflicts.
2325
   channel, is one approach that will avoid conflicts.
2310
 * Added new dialplan function MUTEAUDIO() for muting inbound and/or outbound
2326
 * Added new dialplan function MUTEAUDIO() for muting inbound and/or outbound
2311
   audio in a channel.
2327
   audio in a channel.
2312
 * func_odbc now allows multiple row results to be retrieved without using
2328
 * func_odbc now allows multiple row results to be retrieved without using
2313
   mode=multirow.  If rowlimit is set, then additional rows may be retrieved
2329
   mode=multirow.  If rowlimit is set, then additional rows may be retrieved
2314
   from the same query by using the name of the function which retrieved the
2330
   from the same query by using the name of the function which retrieved the
2315
   first row as an argument to ODBC_FETCH().
2331
   first row as an argument to ODBC_FETCH().
2316
 * Added JABBER_RECEIVE, which permits receiving XMPP messages from the
2332
 * Added JABBER_RECEIVE, which permits receiving XMPP messages from the
2317
   dialplan. This function returns the content of the received message.
2333
   dialplan. This function returns the content of the received message.
2318
 * Added REPLACE, which searches a given variable name for a set of characters,
2334
 * Added REPLACE, which searches a given variable name for a set of characters,
2319
   then either replaces them with a single character or deletes them.
2335
   then either replaces them with a single character or deletes them.
2320
 * Added PASSTHRU, which literally passes the same argument back as its return
2336
 * Added PASSTHRU, which literally passes the same argument back as its return
2321
   value.  The intent is to be able to use a literal string argument to
2337
   value.  The intent is to be able to use a literal string argument to
2322
   functions that currently require a variable name as an argument.
2338
   functions that currently require a variable name as an argument.
2323
 * HASH-associated variables now can be inherited across channel creation, by
2339
 * HASH-associated variables now can be inherited across channel creation, by
2324
   prefixing the name of the hash at assignment with the appropriate number of
2340
   prefixing the name of the hash at assignment with the appropriate number of
2325
   underscores, just like variables.
2341
   underscores, just like variables.
2326
 * GROUP_MATCH_COUNT has been improved to allow regex matching on category
2342
 * GROUP_MATCH_COUNT has been improved to allow regex matching on category
2327
 * CHANNEL(secure_bridge_signaling) and CHANNEL(secure_bridge_media) to set/get
2343
 * CHANNEL(secure_bridge_signaling) and CHANNEL(secure_bridge_media) to set/get
2328
   whether or not channels that are bridged to the current channel will be
2344
   whether or not channels that are bridged to the current channel will be
2329
   required to have secure signaling and/or media.
2345
   required to have secure signaling and/or media.
2330
 * CHANNEL(secure_signaling) and CHANNEL(secure_media) to get whether or not
2346
 * CHANNEL(secure_signaling) and CHANNEL(secure_media) to get whether or not
2331
   the current channel has secure signaling and/or media.
2347
   the current channel has secure signaling and/or media.
2332
 * For DAHDI/ISDN channels, the CHANNEL() dialplan function now supports the
2348
 * For DAHDI/ISDN channels, the CHANNEL() dialplan function now supports the
2333
   "no_media_path" option.
2349
   "no_media_path" option.
2334
   Returns "0" if there is a B channel associated with the call.
2350
   Returns "0" if there is a B channel associated with the call.
2335
   Returns "1" if no B channel is associated with the call.  The call is either
2351
   Returns "1" if no B channel is associated with the call.  The call is either
2336
   on hold or is a call waiting call.
2352
   on hold or is a call waiting call.
2337
 * Added option to dialplan function CDR(), the 'f' option
2353
 * Added option to dialplan function CDR(), the 'f' option
2338
   allows for high resolution times for billsec and duration fields.
2354
   allows for high resolution times for billsec and duration fields.
2339
 * FILE() now supports line-mode and writing.
2355
 * FILE() now supports line-mode and writing.
2340
 * Added FIELDNUM(), which returns the 1-based offset of a field in a list.
2356
 * Added FIELDNUM(), which returns the 1-based offset of a field in a list.
2341
 * FRAME_TRACE(), for tracking internal ast_frames on a channel.
2357
 * FRAME_TRACE(), for tracking internal ast_frames on a channel.
2342

    
   
2358

   
2343
Dialplan Variables
2359
Dialplan Variables
2344
------------------
2360
------------------
2345
 * Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
2361
 * Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
2346
 * Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
2362
 * Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
2347
   and is set when a dynamic feature is triggered.
2363
   and is set when a dynamic feature is triggered.
2348
 * Added PARKINGLOT which can be used with parkeddynamic feature.conf option
2364
 * Added PARKINGLOT which can be used with parkeddynamic feature.conf option
2349
   to dynamically create a new parking lot matching the value this varible is
2365
   to dynamically create a new parking lot matching the value this varible is
2350
   set to.
2366
   set to.
2351
 * Added PARKINGDYNAMIC which represents the template parkinglot defined in
2367
 * Added PARKINGDYNAMIC which represents the template parkinglot defined in
2352
   features.conf that should be the base for dynamic parkinglots.
2368
   features.conf that should be the base for dynamic parkinglots.
2353
 * Added PARKINGDYNCONTEXT which tells what context a newly created dynamic
2369
 * Added PARKINGDYNCONTEXT which tells what context a newly created dynamic
2354
   parkinglot should have.
2370
   parkinglot should have.
2355
 * Added PARKINGDYNEXTEN which tells what parking exten a newly created dynamic
2371
 * Added PARKINGDYNEXTEN which tells what parking exten a newly created dynamic
2356
   parkinglot should have.
2372
   parkinglot should have.
2357
 * Added PARKINGDYNPOS which holds what parking positions a dynamic parkinglot
2373
 * Added PARKINGDYNPOS which holds what parking positions a dynamic parkinglot
2358
   should have.
2374
   should have.
2359

    
   
2375

   
2360
Queue changes
2376
Queue changes
2361
-------------
2377
-------------
2362
 * Added "ready" option to QUEUE_MEMBER counting to count free agents whose wrap-up
2378
 * Added "ready" option to QUEUE_MEMBER counting to count free agents whose wrap-up
2363
   timeout has expired.
2379
   timeout has expired.
2364
 * Added 'R' option to app_queue.  This option stops moh and indicates ringing
2380
 * Added 'R' option to app_queue.  This option stops moh and indicates ringing
2365
   to the caller when an Agent's phone is ringing.  This can be used to indicate
2381
   to the caller when an Agent's phone is ringing.  This can be used to indicate
2366
   to the caller that their call is about to be picked up, which is nice when
2382
   to the caller that their call is about to be picked up, which is nice when
2367
   one has been on hold for an extened period of time.
2383
   one has been on hold for an extened period of time.
2368
 * A new config option, penaltymemberslimit, has been added to queues.conf.
2384
 * A new config option, penaltymemberslimit, has been added to queues.conf.
2369
   When set this option will disregard penalty settings when a queue has too
2385
   When set this option will disregard penalty settings when a queue has too
2370
   few members.
2386
   few members.
2371
 * A new option, 'I' has been added to both app_queue and app_dial.
2387
 * A new option, 'I' has been added to both app_queue and app_dial.
2372
   By setting this option, Asterisk will not update the caller with
2388
   By setting this option, Asterisk will not update the caller with
2373
   connected line changes or redirecting party changes when they occur.
2389
   connected line changes or redirecting party changes when they occur.
2374
 * A 'relative-periodic-announce' option has been added to queues.conf.  When
2390
 * A 'relative-periodic-announce' option has been added to queues.conf.  When
2375
   enabled, this option will cause periodic announce times to be calculated
2391
   enabled, this option will cause periodic announce times to be calculated
2376
   from the end of announcements rather than from the beginning.
2392
   from the end of announcements rather than from the beginning.
2377
 * The autopause option in queues.conf can be passed a new value, "all." The
2393
 * The autopause option in queues.conf can be passed a new value, "all." The
2378
   result is that if a member becomes auto-paused, he will be paused in all
2394
   result is that if a member becomes auto-paused, he will be paused in all
2379
   queues for which he is a member, not just the queue that failed to reach
2395
   queues for which he is a member, not just the queue that failed to reach
2380
   the member.
2396
   the member.
2381
 * Added dialplan function QUEUE_EXISTS to check if a queue exists
2397
 * Added dialplan function QUEUE_EXISTS to check if a queue exists
2382
 * The queue logger now allows events to optionally propagate to a file,
2398
 * The queue logger now allows events to optionally propagate to a file,
2383
   even when realtime logging is turned on.  Additionally, realtime logging
2399
   even when realtime logging is turned on.  Additionally, realtime logging
2384
   supports sending the event arguments to 5 individual fields, although it
2400
   supports sending the event arguments to 5 individual fields, although it
2385
   will fallback to the previous data definition, if the new table layout is
2401
   will fallback to the previous data definition, if the new table layout is
2386
   not found.
2402
   not found.
2387

    
   
2403

   
2388
mISDN channel driver (chan_misdn) changes
2404
mISDN channel driver (chan_misdn) changes
2389
----------------------------------------
2405
----------------------------------------
2390
 * Added display_connected parameter to misdn.conf to put a display string
2406
 * Added display_connected parameter to misdn.conf to put a display string
2391
   in the CONNECT message containing the connected name and/or number if
2407
   in the CONNECT message containing the connected name and/or number if
2392
   the presentation setting permits it.
2408
   the presentation setting permits it.
2393
 * Added display_setup parameter to misdn.conf to put a display string
2409
 * Added display_setup parameter to misdn.conf to put a display string
2394
   in the SETUP message containing the caller name and/or number if the
2410
   in the SETUP message containing the caller name and/or number if the
2395
   presentation setting permits it.
2411
   presentation setting permits it.
2396
 * Made misdn.conf parameters localdialplan and cpndialplan take a -1 to
2412
 * Made misdn.conf parameters localdialplan and cpndialplan take a -1 to
2397
   indicate the dialplan settings are to be obtained from the asterisk
2413
   indicate the dialplan settings are to be obtained from the asterisk
2398
   channel.
2414
   channel.
2399
 * Made misdn.conf parameter callerid accept the "name" <number> format
2415
 * Made misdn.conf parameter callerid accept the "name" <number> format
2400
   used by the rest of the system.
2416
   used by the rest of the system.
2401
 * Made use the nationalprefix and internationalprefix misdn.conf
2417
 * Made use the nationalprefix and internationalprefix misdn.conf
2402
   parameters to prefix any received number from the ISDN link if that
2418
   parameters to prefix any received number from the ISDN link if that
2403
   number has the corresponding Type-Of-Number.  NOTE:  This includes
2419
   number has the corresponding Type-Of-Number.  NOTE:  This includes
2404
   comparing the incoming call's dialed number against the MSN list.
2420
   comparing the incoming call's dialed number against the MSN list.
2405
 * Added the following new parameters: unknownprefix, netspecificprefix,
2421
 * Added the following new parameters: unknownprefix, netspecificprefix,
2406
   subscriberprefix, and abbreviatedprefix in misdn.conf to prefix any
2422
   subscriberprefix, and abbreviatedprefix in misdn.conf to prefix any
2407
   received number from the ISDN link if that number has the corresponding
2423
   received number from the ISDN link if that number has the corresponding
2408
   Type-Of-Number.
2424
   Type-Of-Number.
2409
 * Added new dialplan application misdn_command which permits controlling
2425
 * Added new dialplan application misdn_command which permits controlling
2410
   the CCBS/CCNR functionality.
2426
   the CCBS/CCNR functionality.
2411
 * Added new dialplan function mISDN_CC which permits retrieval of various
2427
 * Added new dialplan function mISDN_CC which permits retrieval of various
2412
   values from an active call completion record.
2428
   values from an active call completion record.
2413
 * For PTP, you should manually send the COLR of the redirected-to party
2429
 * For PTP, you should manually send the COLR of the redirected-to party
2414
   for an incomming redirected call if the incoming call could experience
2430
   for an incomming redirected call if the incoming call could experience
2415
   further redirects.  Just set the REDIRECTING(to-num,i) = ${EXTEN} and
2431
   further redirects.  Just set the REDIRECTING(to-num,i) = ${EXTEN} and
2416
   set the REDIRECTING(to-pres) to the COLR.  A call has been redirected
2432
   set the REDIRECTING(to-pres) to the COLR.  A call has been redirected
2417
   if the REDIRECTING(from-num) is not empty.
2433
   if the REDIRECTING(from-num) is not empty.
2418
 * For outgoing PTP redirected calls, you now need to use the inhibit(i)
2434
 * For outgoing PTP redirected calls, you now need to use the inhibit(i)
2419
   option on all of the REDIRECTING statements before dialing the
2435
   option on all of the REDIRECTING statements before dialing the
2420
   redirected-to party.  You still have to set the REDIRECTING(to-xxx,i)
2436
   redirected-to party.  You still have to set the REDIRECTING(to-xxx,i)
2421
   and the REDIRECTING(from-xxx,i) values.  The PTP call will update the
2437
   and the REDIRECTING(from-xxx,i) values.  The PTP call will update the
2422
   redirecting-to presentation (COLR) when it becomes available.
2438
   redirecting-to presentation (COLR) when it becomes available.
2423
 * Added outgoing_colp parameter to misdn.conf to filter outgoing COLP
2439
 * Added outgoing_colp parameter to misdn.conf to filter outgoing COLP
2424
   information.
2440
   information.
2425

    
   
2441

   
2426
thirdparty mISDN enhancements
2442
thirdparty mISDN enhancements
2427
-----------------------------
2443
-----------------------------
2428
mISDN has been modified by Digium, Inc. to greatly expand facility message
2444
mISDN has been modified by Digium, Inc. to greatly expand facility message
2429
support to allow:
2445
support to allow:
2430
  * Enhanced COLP support for call diversion and transfer.
2446
  * Enhanced COLP support for call diversion and transfer.
2431
  * CCBS/CCNR support.
2447
  * CCBS/CCNR support.
2432

    
   
2448

   
2433
The latest modified mISDN v1.1.x based version is available at:
2449
The latest modified mISDN v1.1.x based version is available at:
2434
http://svn.digium.com/svn/thirdparty/mISDN/trunk
2450
http://svn.digium.com/svn/thirdparty/mISDN/trunk
2435
http://svn.digium.com/svn/thirdparty/mISDNuser/trunk
2451
http://svn.digium.com/svn/thirdparty/mISDNuser/trunk
2436

    
   
2452

   
2437
Tagged versions of the modified mISDN code are available under:
2453
Tagged versions of the modified mISDN code are available under:
2438
http://svn.digium.com/svn/thirdparty/mISDN/tags
2454
http://svn.digium.com/svn/thirdparty/mISDN/tags
2439
http://svn.digium.com/svn/thirdparty/mISDNuser/tags
2455
http://svn.digium.com/svn/thirdparty/mISDNuser/tags
2440

    
   
2456

   
2441
libpri channel driver (chan_dahdi) DAHDI changes
2457
libpri channel driver (chan_dahdi) DAHDI changes
2442
-------------------------------------------
2458
-------------------------------------------
2443
 * The channel variable PRIREDIRECTREASON is now just a status variable
2459
 * The channel variable PRIREDIRECTREASON is now just a status variable
2444
   and it is also deprecated.  Use the REDIRECTING(reason) dialplan function
2460
   and it is also deprecated.  Use the REDIRECTING(reason) dialplan function
2445
   to read and alter the reason.
2461
   to read and alter the reason.
2446
 * For Q.SIG and ETSI PRI/BRI-PTP, you should manually send the COLR of the
2462
 * For Q.SIG and ETSI PRI/BRI-PTP, you should manually send the COLR of the
2447
   redirected-to party for an incomming redirected call if the incoming call
2463
   redirected-to party for an incomming redirected call if the incoming call
2448
   could experience further redirects.  Just set the
2464
   could experience further redirects.  Just set the
2449
   REDIRECTING(to-num,i) = CALLERID(dnid) and set the REDIRECTING(to-pres)
2465
   REDIRECTING(to-num,i) = CALLERID(dnid) and set the REDIRECTING(to-pres)
2450
   to the COLR.  A call has been redirected if the REDIRECTING(count) is not
2466
   to the COLR.  A call has been redirected if the REDIRECTING(count) is not
2451
   zero.
2467
   zero.
2452
 * For outgoing Q.SIG and ETSI PRI/BRI-PTP redirected calls, you need to
2468
 * For outgoing Q.SIG and ETSI PRI/BRI-PTP redirected calls, you need to
2453
   use the inhibit(i) option on all of the REDIRECTING statements before
2469
   use the inhibit(i) option on all of the REDIRECTING statements before
2454
   dialing the redirected-to party.  You still have to set the
2470
   dialing the redirected-to party.  You still have to set the
2455
   REDIRECTING(to-xxx,i) and the REDIRECTING(from-xxx,i) values.  The call
2471
   REDIRECTING(to-xxx,i) and the REDIRECTING(from-xxx,i) values.  The call
2456
   will update the redirecting-to presentation (COLR) when it becomes available.
2472
   will update the redirecting-to presentation (COLR) when it becomes available.
2457
 * Added the ability to ignore calls that are not in a Multiple Subscriber
2473
 * Added the ability to ignore calls that are not in a Multiple Subscriber
2458
   Number (MSN) list for PTMP CPE interfaces.
2474
   Number (MSN) list for PTMP CPE interfaces.
2459
 * Added dynamic range compression support for dahdi channels.  It is
2475
 * Added dynamic range compression support for dahdi channels.  It is
2460
   configured via the rxdrc and txdrc parameters in chan_dahdi.conf.
2476
   configured via the rxdrc and txdrc parameters in chan_dahdi.conf.
2461
 * Added support for ISDN calling and called subaddress with partial support
2477
 * Added support for ISDN calling and called subaddress with partial support
2462
   for connected line subaddress.
2478
   for connected line subaddress.
2463
 * Added support for BRI PTMP NT mode. (Requires latest LibPRI.)
2479
 * Added support for BRI PTMP NT mode. (Requires latest LibPRI.)
2464
 * Added handling of received HOLD/RETRIEVE messages and the optional ability
2480
 * Added handling of received HOLD/RETRIEVE messages and the optional ability
2465
   to transfer a held call on disconnect similar to an analog phone.
2481
   to transfer a held call on disconnect similar to an analog phone.
2466
 * Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
2482
 * Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
2467
   Will reroute/deflect an outgoing call when receive the message.
2483
   Will reroute/deflect an outgoing call when receive the message.
2468
   Can use the DAHDISendCallreroutingFacility to send the message for the
2484
   Can use the DAHDISendCallreroutingFacility to send the message for the
2469
   supported switches.
2485
   supported switches.
2470
 * Added standard location to add options to chan_dahdi dialing:
2486
 * Added standard location to add options to chan_dahdi dialing:
2471
   Dial(DAHDI/g1[/extension[/options]])
2487
   Dial(DAHDI/g1[/extension[/options]])
2472
   Current options:
2488
   Current options:
2473
   K(<keypad_digits>)
2489
   K(<keypad_digits>)
2474
   R Reverse charging indication
2490
   R Reverse charging indication
2475
 * Added Reverse Charging Indication (Collect calls) send/receive option.
2491
 * Added Reverse Charging Indication (Collect calls) send/receive option.
2476
   Send reverse charging in SETUP message with the chan_dahdi R dialing option.
2492
   Send reverse charging in SETUP message with the chan_dahdi R dialing option.
2477
   Dial(DAHDI/g1/extension/R)
2493
   Dial(DAHDI/g1/extension/R)
2478
   Access received reverse charge in SETUP message by: ${CHANNEL(reversecharge)}
2494
   Access received reverse charge in SETUP message by: ${CHANNEL(reversecharge)}
2479
   (requires latest LibPRI)
2495
   (requires latest LibPRI)
2480
 * Added ability to send/receive keypad digits in the SETUP message.
2496
 * Added ability to send/receive keypad digits in the SETUP message.
2481
   Send keypad digits in SETUP message with the chan_dahdi K(<keypad_digits>)
2497
   Send keypad digits in SETUP message with the chan_dahdi K(<keypad_digits>)
2482
   dialing option.  Dial(DAHDI/g1/[extension]/K(<keypad_digits>))
2498
   dialing option.  Dial(DAHDI/g1/[extension]/K(<keypad_digits>))
2483
   Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
2499
   Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
2484
   (requires latest LibPRI)
2500
   (requires latest LibPRI)
2485
 * Added ability to send and receive ETSI Explicit Call Transfer (ECT) messages
2501
 * Added ability to send and receive ETSI Explicit Call Transfer (ECT) messages
2486
   to eliminate tromboned calls.  A tromboned call goes out an interface and comes
2502
   to eliminate tromboned calls.  A tromboned call goes out an interface and comes
2487
   back into the same interface.  Tromboned calls happen because of call routing,
2503
   back into the same interface.  Tromboned calls happen because of call routing,
2488
   call deflection, call forwarding, and call transfer.
2504
   call deflection, call forwarding, and call transfer.
2489
 * Added the ability to send and receive ETSI Advice-Of-Charge messages.
2505
 * Added the ability to send and receive ETSI Advice-Of-Charge messages.
2490
 * Added the ability to support call waiting calls.  (The SETUP has no B channel
2506
 * Added the ability to support call waiting calls.  (The SETUP has no B channel
2491
   assigned.)
2507
   assigned.)
2492
 * Added Malicious Call ID (MCID) event to the AMI call event class.
2508
 * Added Malicious Call ID (MCID) event to the AMI call event class.
2493
 * Added Message Waiting Indication (MWI) support for ISDN PTMP endpoints (phones).
2509
 * Added Message Waiting Indication (MWI) support for ISDN PTMP endpoints (phones).
2494

    
   
2510

   
2495
Asterisk Manager Interface
2511
Asterisk Manager Interface
2496
--------------------------
2512
--------------------------
2497
 * The Hangup action now accepts a Cause header which may be used to
2513
 * The Hangup action now accepts a Cause header which may be used to
2498
   set the channel's hangup cause.
2514
   set the channel's hangup cause.
2499
 * sslprivatekey option added to manager.conf and http.conf.  Adds the ability
2515
 * sslprivatekey option added to manager.conf and http.conf.  Adds the ability
2500
   to specify a separate .pem file to hold a private key.  By default sslcert
2516
   to specify a separate .pem file to hold a private key.  By default sslcert
2501
   is used to hold both the public and private key.
2517
   is used to hold both the public and private key.
2502
 * Options in manager.conf and http.conf with the 'ssl' prefix have been replaced
2518
 * Options in manager.conf and http.conf with the 'ssl' prefix have been replaced
2503
   for options containing the 'tls' prefix.  For example, 'sslenable' is now
2519
   for options containing the 'tls' prefix.  For example, 'sslenable' is now
2504
   'tlsenable'.  This has been done in effort to keep ssl and tls options consistent
2520
   'tlsenable'.  This has been done in effort to keep ssl and tls options consistent
2505
   across all .conf files. All affected sample.conf files have been modified to
2521
   across all .conf files. All affected sample.conf files have been modified to
2506
   reflect this change.  Previous options such as 'sslenable' still work,
2522
   reflect this change.  Previous options such as 'sslenable' still work,
2507
   but options with the 'tls' prefix are preferred.
2523
   but options with the 'tls' prefix are preferred.
2508
 * Added a MuteAudio AMI action for muting inbound and/or outbound audio
2524
 * Added a MuteAudio AMI action for muting inbound and/or outbound audio
2509
   in a channel. (res_mutestream.so)
2525
   in a channel. (res_mutestream.so)
2510
 * The configuration file manager.conf now supports a channelvars option, which
2526
 * The configuration file manager.conf now supports a channelvars option, which
2511
   specifies a list of channel variables to include in each channel-oriented
2527
   specifies a list of channel variables to include in each channel-oriented
2512
   event.
2528
   event.
2513
 * The redirect command now has new parameters ExtraContext, ExtraExtension,
2529
 * The redirect command now has new parameters ExtraContext, ExtraExtension,
2514
   and ExtraPriority to allow redirecting the second channel to a different
2530
   and ExtraPriority to allow redirecting the second channel to a different
2515
   location than the first.
2531
   location than the first.
2516
 * Added new event "JabberStatus" in the Jabber module to monitor buddies
2532
 * Added new event "JabberStatus" in the Jabber module to monitor buddies
2517
   status.
2533
   status.
2518
 * Added a "MixMonitorMute" AMI action for muting inbound and/or outbound audio
2534
 * Added a "MixMonitorMute" AMI action for muting inbound and/or outbound audio
2519
   in a MixMonitor recording.
2535
   in a MixMonitor recording.
2520
 * The 'iax2 show peers' output is now similar to the expected output of
2536
 * The 'iax2 show peers' output is now similar to the expected output of
2521
   'sip show peers'.
2537
   'sip show peers'.
2522
 * Added Advice-Of-Charge events (AOC-S, AOC-D, and AOC-E) in the new
2538
 * Added Advice-Of-Charge events (AOC-S, AOC-D, and AOC-E) in the new
2523
   aoc event class.
2539
   aoc event class.
2524
 * Added Advice-Of-Charge manager action, AOCMessage, for generating AOC-D and
2540
 * Added Advice-Of-Charge manager action, AOCMessage, for generating AOC-D and
2525
   AOC-E messages on a channel.
2541
   AOC-E messages on a channel.
2526
 * A DBGetComplete event now follows a DBGetResponse, to make the DBGet action
2542
 * A DBGetComplete event now follows a DBGetResponse, to make the DBGet action
2527
   conform more closely to similar events.
2543
   conform more closely to similar events.
2528
 * Added a new eventfilter option per user to allow whitelisting and blacklisting
2544
 * Added a new eventfilter option per user to allow whitelisting and blacklisting
2529
   of events.
2545
   of events.
2530
 * Added optional parkinglot variable for park command.
2546
 * Added optional parkinglot variable for park command.
2531
 * Added ConnectedLineNum and ConnectedLineName headers to AMI events/responses
2547
 * Added ConnectedLineNum and ConnectedLineName headers to AMI events/responses
2532
   if CallerIDNum and CallerIDName headers are also present.
2548
   if CallerIDNum and CallerIDName headers are also present.
2533

    
   
2549

   
2534
Channel Event Logging
2550
Channel Event Logging
2535
---------------------
2551
---------------------
2536
 * A new interface, CEL, is introduced here. CEL logs single events, much like
2552
 * A new interface, CEL, is introduced here. CEL logs single events, much like
2537
   the AMI, but it differs from the AMI in that it logs to db backends much
2553
   the AMI, but it differs from the AMI in that it logs to db backends much
2538
   like CDR does; is based on the event subsystem introduced by Russell, and
2554
   like CDR does; is based on the event subsystem introduced by Russell, and
2539
   can share in all its benefits; allows multiple backends to operate like CDR;
2555
   can share in all its benefits; allows multiple backends to operate like CDR;
2540
   is specialized to event data that would be of concern to billing sytems,
2556
   is specialized to event data that would be of concern to billing sytems,
2541
   like CDR. Backends for logging and accounting calls have been produced,
2557
   like CDR. Backends for logging and accounting calls have been produced,
2542
   but a new CDR backend is still in development.
2558
   but a new CDR backend is still in development.
2543

    
   
2559

   
2544
CDR
2560
CDR
2545
---
2561
---
2546
 * 'linkedid' and 'peeraccount' are new CDR fields available to CDR aficionados.
2562
 * 'linkedid' and 'peeraccount' are new CDR fields available to CDR aficionados.
2547
   linkedid is based on uniqueID, but spreads to other channels as transfers, dials,
2563
   linkedid is based on uniqueID, but spreads to other channels as transfers, dials,
2548
   etc are performed. Thus the pieces of CDR can be grouped into multilegged sets.
2564
   etc are performed. Thus the pieces of CDR can be grouped into multilegged sets.
2549
 * Multiple files and formats can now be specified in cdr_custom.conf.
2565
 * Multiple files and formats can now be specified in cdr_custom.conf.
2550
 * cdr_syslog has been added which allows CDRs to be written directly to syslog.
2566
 * cdr_syslog has been added which allows CDRs to be written directly to syslog.
2551
   See configs/cdr_syslog.conf.sample for more information.
2567
   See configs/cdr_syslog.conf.sample for more information.
2552
 * A 'sequence' field has been added to CDRs which can be combined with
2568
 * A 'sequence' field has been added to CDRs which can be combined with
2553
   linkedid or uniqueid to uniquely identify a CDR.
2569
   linkedid or uniqueid to uniquely identify a CDR.
2554
 * Handling of billsec and duration field has changed. If your table definition
2570
 * Handling of billsec and duration field has changed. If your table definition
2555
   specifies those fields as float,double or similar they will now be logged with
2571
   specifies those fields as float,double or similar they will now be logged with
2556
   microsecond accuracy instead of a whole integer.
2572
   microsecond accuracy instead of a whole integer.
2557

    
   
2573

   
2558
Calendaring for Asterisk
2574
Calendaring for Asterisk
2559
------------------------
2575
------------------------
2560
 * A new set of modules were added supporing calendar integration with Asterisk.
2576
 * A new set of modules were added supporing calendar integration with Asterisk.
2561
   Dialplan functions for reading from and writing to calendars are included,
2577
   Dialplan functions for reading from and writing to calendars are included,
2562
   as well as the ability to execute dialplan logic upon calendar event notifications.
2578
   as well as the ability to execute dialplan logic upon calendar event notifications.
2563
   iCalendar, CalDAV, and Exchange Server calendars (via res_calendar_exchange for
2579
   iCalendar, CalDAV, and Exchange Server calendars (via res_calendar_exchange for
2564
   Exchange Server 2003 with no write or attendee support, and res_calendar_ews for
2580
   Exchange Server 2003 with no write or attendee support, and res_calendar_ews for
2565
   Exchange Server 2007+ with full write and attendee support) are supported (Exchange
2581
   Exchange Server 2007+ with full write and attendee support) are supported (Exchange
2566
   2003 support does not support forms-based authentication).
2582
   2003 support does not support forms-based authentication).
2567

    
   
2583

   
2568
Call Completion Supplementary Services for Asterisk
2584
Call Completion Supplementary Services for Asterisk
2569
---------------------------------------------------
2585
---------------------------------------------------
2570
 * Call completion support has been added for SIP, DAHDI/ISDN, and DAHDI/analog.
2586
 * Call completion support has been added for SIP, DAHDI/ISDN, and DAHDI/analog.
2571
   DAHDI/ISDN supports call completion for the following switch types:
2587
   DAHDI/ISDN supports call completion for the following switch types:
2572
   EuroIsdn(ETSI) for PTP and PTMP modes, and Qsig.
2588
   EuroIsdn(ETSI) for PTP and PTMP modes, and Qsig.
2573
   See https://wiki.asterisk.org/wiki/x/2ABQ for details.
2589
   See https://wiki.asterisk.org/wiki/x/2ABQ for details.
2574

    
   
2590

   
2575
Multicast RTP Support
2591
Multicast RTP Support
2576
---------------------
2592
---------------------
2577
 * A new RTP engine and channel driver have been added which supports Multicast RTP.
2593
 * A new RTP engine and channel driver have been added which supports Multicast RTP.
2578
   The channel driver can be used with the Page application to perform multicast RTP
2594
   The channel driver can be used with the Page application to perform multicast RTP
2579
   paging. The dial string format is: MulticastRTP/<type>/<destination>/<control address>
2595
   paging. The dial string format is: MulticastRTP/<type>/<destination>/<control address>
2580
   Type can be either basic or linksys.
2596
   Type can be either basic or linksys.
2581
   Destination is the IP address and port for the RTP packets.
2597
   Destination is the IP address and port for the RTP packets.
2582
   Control address is specific to the linksys type and is used for sending the control
2598
   Control address is specific to the linksys type and is used for sending the control
2583
   packets unique to them.
2599
   packets unique to them.
2584

    
   
2600

   
2585
Security Events Framework
2601
Security Events Framework
2586
-------------------------
2602
-------------------------
2587
 * Asterisk has a new C API for reporting security events.  The module res_security_log
2603
 * Asterisk has a new C API for reporting security events.  The module res_security_log
2588
   sends these events to the "security" logger level.  Currently, AMI is the only
2604
   sends these events to the "security" logger level.  Currently, AMI is the only
2589
   Asterisk component that reports security events.  However, SIP support will be
2605
   Asterisk component that reports security events.  However, SIP support will be
2590
   coming soon.  For more information on the security events framework, see the
2606
   coming soon.  For more information on the security events framework, see the
2591
   "Asterisk Security Framework" section of the Asterisk wiki at
2607
   "Asterisk Security Framework" section of the Asterisk wiki at
2592
   https://wiki.asterisk.org/wiki/x/wgBQ
2608
   https://wiki.asterisk.org/wiki/x/wgBQ
2593
 * SIP support was added in Asterisk 10
2609
 * SIP support was added in Asterisk 10
2594
 * This API now supports IPv6 addresses
2610
 * This API now supports IPv6 addresses
2595

    
   
2611

   
2596
Fax
2612
Fax
2597
---
2613
---
2598
 * A technology independent fax frontend (res_fax) has been added to Asterisk.
2614
 * A technology independent fax frontend (res_fax) has been added to Asterisk.
2599
 * A spandsp based fax backend (res_fax_spandsp) has been added.
2615
 * A spandsp based fax backend (res_fax_spandsp) has been added.
2600
 * The app_fax module has been deprecated in favor of the res_fax module and
2616
 * The app_fax module has been deprecated in favor of the res_fax module and
2601
   the new res_fax_spandsp backend.
2617
   the new res_fax_spandsp backend.
2602
 * The SendFAX and ReceiveFAX applications now send their log messages to a
2618
 * The SendFAX and ReceiveFAX applications now send their log messages to a
2603
   'fax' logger level, instead of to the generic logger levels. To see these
2619
   'fax' logger level, instead of to the generic logger levels. To see these
2604
   messages, the system's logger.conf file will need to direct the 'fax' logger
2620
   messages, the system's logger.conf file will need to direct the 'fax' logger
2605
   level to one or more destinations; the logger.conf.sample file includes an
2621
   level to one or more destinations; the logger.conf.sample file includes an
2606
   example of how to do this. Note that if the 'fax' logger level is *not*
2622
   example of how to do this. Note that if the 'fax' logger level is *not*
2607
   directed to at least one destination, log messages generated by these
2623
   directed to at least one destination, log messages generated by these
2608
   applications will be lost, and that if the 'fax' logger level is directed to
2624
   applications will be lost, and that if the 'fax' logger level is directed to
2609
   the console, the 'core set verbose' and 'core set debug' CLI commands will
2625
   the console, the 'core set verbose' and 'core set debug' CLI commands will
2610
   have no effect on whether the messages appear on the console or not.
2626
   have no effect on whether the messages appear on the console or not.
2611

    
   
2627

   
2612
Miscellaneous
2628
Miscellaneous
2613
-------------
2629
-------------
2614
 * The transmit_silence_during_record option in asterisk.conf.sample has been removed.
2630
 * The transmit_silence_during_record option in asterisk.conf.sample has been removed.
2615
   Now, in order to enable transmitting silence during record the transmit_silence
2631
   Now, in order to enable transmitting silence during record the transmit_silence
2616
   option should be used.  transmit_silence_during_record remains a valid option, but
2632
   option should be used.  transmit_silence_during_record remains a valid option, but
2617
   defaults to the behavior of the transmit_silence option.
2633
   defaults to the behavior of the transmit_silence option.
2618
 * Addition of the Unit Test Framework API for managing registration and execution
2634
 * Addition of the Unit Test Framework API for managing registration and execution
2619
   of unit tests with the purpose of verifying the operation of C functions.
2635
   of unit tests with the purpose of verifying the operation of C functions.
2620
 * SendText is now implemented in chan_gtalk and chan_jingle. It will simply send
2636
 * SendText is now implemented in chan_gtalk and chan_jingle. It will simply send
2621
   XMPP text messages to the remote JID.
2637
   XMPP text messages to the remote JID.
2622
 * Modules.conf has a new option - "require" - that marks a module as critical for
2638
 * Modules.conf has a new option - "require" - that marks a module as critical for
2623
   the execution of Asterisk.
2639
   the execution of Asterisk.
2624
   If one of the required modules fail to load, Asterisk will exit with a return
2640
   If one of the required modules fail to load, Asterisk will exit with a return
2625
   code set to 2.
2641
   code set to 2.
2626
 * An 'X' option has been added to the asterisk application which enables #exec support.
2642
 * An 'X' option has been added to the asterisk application which enables #exec support.
2627
   This allows #exec to be used in asterisk.conf.
2643
   This allows #exec to be used in asterisk.conf.
2628
 * jabber.conf supports a new option auth_policy that toggles auto user registration.
2644
 * jabber.conf supports a new option auth_policy that toggles auto user registration.
2629
 * A new lockconfdir option has been added to asterisk.conf to protect the
2645
 * A new lockconfdir option has been added to asterisk.conf to protect the
2630
   configuration directory (/etc/asterisk by default) during reloads.
2646
   configuration directory (/etc/asterisk by default) during reloads.
2631
 * The parkeddynamic option has been added to features.conf to enable the creation
2647
 * The parkeddynamic option has been added to features.conf to enable the creation
2632
   of dynamic parkinglots.
2648
   of dynamic parkinglots.
2633
 * chan_dahdi now supports reporting alarms over AMI either by channel or span via
2649
 * chan_dahdi now supports reporting alarms over AMI either by channel or span via
2634
   the reportalarms config option.
2650
   the reportalarms config option.
2635
 * chan_dahdi supports dialing configuring and dialing by device file name.
2651
 * chan_dahdi supports dialing configuring and dialing by device file name.
2636
   DAHDI/span-name!local!1 will use /dev/dahdi/span-name/local/1 . Likewise
2652
   DAHDI/span-name!local!1 will use /dev/dahdi/span-name/local/1 . Likewise
2637
   it may appear in chan_dahdi.conf as 'channel => span-name!local!1'.
2653
   it may appear in chan_dahdi.conf as 'channel => span-name!local!1'.
2638
 * A new options for chan_dahdi.conf: 'ignore_failed_channels'. Boolean.
2654
 * A new options for chan_dahdi.conf: 'ignore_failed_channels'. Boolean.
2639
   False by default. If set, chan_dahdi will ignore failed 'channel' entries.
2655
   False by default. If set, chan_dahdi will ignore failed 'channel' entries.
2640
   Handy for the above name-based syntax as it does not depend on
2656
   Handy for the above name-based syntax as it does not depend on
2641
   initialization order.
2657
   initialization order.
2642
 * The Realtime dialplan switch now caches entries for 1 second.  This provides a
2658
 * The Realtime dialplan switch now caches entries for 1 second.  This provides a
2643
   significant increase in performance (about 3X) for installations using this switchtype.
2659
   significant increase in performance (about 3X) for installations using this switchtype.
2644
 * Distributed devicestate now supports the use of the XMPP protocol, in addition to
2660
 * Distributed devicestate now supports the use of the XMPP protocol, in addition to
2645
   AIS.  For more information, please see the Distributed Device State section of the
2661
   AIS.  For more information, please see the Distributed Device State section of the
2646
   Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
2662
   Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
2647
 * The addition of G.719 pass-through support.
2663
 * The addition of G.719 pass-through support.
2648
 * Added support for 16khz Speex audio.  This can be enabled by using 'allow=speex16'
2664
 * Added support for 16khz Speex audio.  This can be enabled by using 'allow=speex16'
2649
   during device configuration.
2665
   during device configuration.
2650
 * The UNISTIM channel driver (chan_unistim) has been updated to support devices that
2666
 * The UNISTIM channel driver (chan_unistim) has been updated to support devices that
2651
   have less than 3 lines on the LCD.
2667
   have less than 3 lines on the LCD.
2652
 * Realtime now supports database failover.  See the sample extconfig.conf for details.
2668
 * Realtime now supports database failover.  See the sample extconfig.conf for details.
2653
 * The addition of improved translation path building for wideband codecs.  Sample
2669
 * The addition of improved translation path building for wideband codecs.  Sample
2654
   rate changes during translation are now avoided unless absolutely necessary.
2670
   rate changes during translation are now avoided unless absolutely necessary.
2655
 * The addition of the res_stun_monitor module for monitoring and reacting to network
2671
 * The addition of the res_stun_monitor module for monitoring and reacting to network
2656
   changes while behind a NAT.
2672
   changes while behind a NAT.
2657
 * DTMF: Normal and Reverse Twist acceptance values can be set in dsp.conf.
2673
 * DTMF: Normal and Reverse Twist acceptance values can be set in dsp.conf.
2658
   DTMF Valid/Invalid number of hits/misses can be set in dsp.conf.
2674
   DTMF Valid/Invalid number of hits/misses can be set in dsp.conf.
2659
   These allow support for any Administration. Default is AT&T values.
2675
   These allow support for any Administration. Default is AT&T values.
2660

    
   
2676

   
2661
CLI Changes
2677
CLI Changes
2662
-----------
2678
-----------
2663
 * The 'core set debug' and 'core set verbose' commands, in previous versions, could
2679
 * The 'core set debug' and 'core set verbose' commands, in previous versions, could
2664
   optionally accept a filename, to apply the setting only to the code generated from
2680
   optionally accept a filename, to apply the setting only to the code generated from
2665
   that source file when Asterisk was built. However, there are some modules in Asterisk
2681
   that source file when Asterisk was built. However, there are some modules in Asterisk
2666
   that are composed of multiple source files, so this did not result in the behavior
2682
   that are composed of multiple source files, so this did not result in the behavior
2667
   that users expected. In this version, 'core set debug' and 'core set verbose'
2683
   that users expected. In this version, 'core set debug' and 'core set verbose'
2668
   can optionally accept *module* names instead (with or without the .so extension),
2684
   can optionally accept *module* names instead (with or without the .so extension),
2669
   which applies the setting to the entire module specified, regardless of which source
2685
   which applies the setting to the entire module specified, regardless of which source
2670
   files it was built from.
2686
   files it was built from.
2671
 * New 'manager show settings' command showing the current settings loaded from
2687
 * New 'manager show settings' command showing the current settings loaded from
2672
   manager.conf.
2688
   manager.conf.
2673
 * Added 'all' keyword to the CLI command "channel request hangup" so that you can send
2689
 * Added 'all' keyword to the CLI command "channel request hangup" so that you can send
2674
   the channel hangup request to all channels.
2690
   the channel hangup request to all channels.
2675
 * Added a "core reload" CLI command that executes a global reload of Asterisk.
2691
 * Added a "core reload" CLI command that executes a global reload of Asterisk.
2676

    
   
2692

   
2677
------------------------------------------------------------------------------
2693
------------------------------------------------------------------------------
2678
--- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2  -------------
2694
--- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2  -------------
2679
------------------------------------------------------------------------------
2695
------------------------------------------------------------------------------
2680

    
   
2696

   
2681
SIP Changes
2697
SIP Changes
2682
-----------
2698
-----------
2683
 * Added support for SUBSCRIBE/NOTIFY with dialog-info based call pickups.
2699
 * Added support for SUBSCRIBE/NOTIFY with dialog-info based call pickups.
2684
   Snom phones use this for call pickup of extensions that the phone is
2700
   Snom phones use this for call pickup of extensions that the phone is
2685
   subscribed to.
2701
   subscribed to.
2686
 * Added support for setting the domain in the URI for caller of an
2702
 * Added support for setting the domain in the URI for caller of an
2687
   outbound call by using the SIPFROMDOMAIN channel variable.
2703
   outbound call by using the SIPFROMDOMAIN channel variable.
2688
 * Added a new configuration option "remotesecret" for authentication to
2704
 * Added a new configuration option "remotesecret" for authentication to
2689
   remote services. For backwards compatibility, "secret" still has the
2705
   remote services. For backwards compatibility, "secret" still has the
2690
   same function as before, but now you can configure both a remote secret and a
2706
   same function as before, but now you can configure both a remote secret and a
2691
   local secret for mutual authentication.
2707
   local secret for mutual authentication.
2692
 * If the channel variable  ATTENDED_TRANSFER_COMPLETE_SOUND is set,
2708
 * If the channel variable  ATTENDED_TRANSFER_COMPLETE_SOUND is set,
2693
   the sound will be played to the target of an attended transfer
2709
   the sound will be played to the target of an attended transfer
2694
 * Added two new configuration options, "qualifygap" and "qualifypeers", which allow
2710
 * Added two new configuration options, "qualifygap" and "qualifypeers", which allow
2695
   finer control over how many peers Asterisk will qualify and the gap between them
2711
   finer control over how many peers Asterisk will qualify and the gap between them
2696
   when all peers need to be qualified at the same time.
2712
   when all peers need to be qualified at the same time.
2697
 * Added a new 'ignoresdpversion' option to sip.conf.  When this is enabled
2713
 * Added a new 'ignoresdpversion' option to sip.conf.  When this is enabled
2698
   (either globally or for a specific peer), chan_sip will treat any SDP data
2714
   (either globally or for a specific peer), chan_sip will treat any SDP data
2699
   it receives as new data and update the media stream accordingly.  By
2715
   it receives as new data and update the media stream accordingly.  By
2700
   default, Asterisk will only modify the media stream if the SDP session
2716
   default, Asterisk will only modify the media stream if the SDP session
2701
   version received is different from the current SDP session version.  This
2717
   version received is different from the current SDP session version.  This
2702
   option is required to interoperate with devices that have non-standard SDP
2718
   option is required to interoperate with devices that have non-standard SDP
2703
   session version implementations (observed with Microsoft OCS).  This option
2719
   session version implementations (observed with Microsoft OCS).  This option
2704
   is disabled by default.
2720
   is disabled by default.
2705
 * The parsing of register => lines in sip.conf has been modified to allow a port
2721
 * The parsing of register => lines in sip.conf has been modified to allow a port
2706
   to be present in the "user" portion. Please see the sip.conf.sample file for more
2722
   to be present in the "user" portion. Please see the sip.conf.sample file for more
2707
   information
2723
   information
2708
 * Added support for subscribing to MWI on a remote server and making the status available
2724
 * Added support for subscribing to MWI on a remote server and making the status available
2709
   as a mailbox. Please see the sip.conf.sample file for more information.
2725
   as a mailbox. Please see the sip.conf.sample file for more information.
2710
 * Added a function to remove SIP headers added in the dialplan before the
2726
 * Added a function to remove SIP headers added in the dialplan before the
2711
   first INVITE is generated - SIPRemoveHeader()
2727
   first INVITE is generated - SIPRemoveHeader()
2712
 * Channel variables set with setvar= in a device configuration is now
2728
 * Channel variables set with setvar= in a device configuration is now
2713
   set both for inbound and outbound calls.
2729
   set both for inbound and outbound calls.
2714
 * Added support for ITU G.722.1 and G.722.1C (Siren7 and Siren14) media streams.
2730
 * Added support for ITU G.722.1 and G.722.1C (Siren7 and Siren14) media streams.
2715

    
   
2731

   
2716
IAX2 changes
2732
IAX2 changes
2717
------------
2733
------------
2718
  * Added immediate option to iax.conf
2734
  * Added immediate option to iax.conf
2719
  * Added forceencryption option to iax.conf
2735
  * Added forceencryption option to iax.conf
2720
  * Added Encryption and Trunk status to manager command "iaxpeers"
2736
  * Added Encryption and Trunk status to manager command "iaxpeers"
2721

    
   
2737

   
2722
Skinny Changes
2738
Skinny Changes
2723
--------------
2739
--------------
2724
 * The configuration file now holds separate sections for devices and lines.
2740
 * The configuration file now holds separate sections for devices and lines.
2725
   Please have a look at configs/skinny.conf.sample and change your skinny.conf
2741
   Please have a look at configs/skinny.conf.sample and change your skinny.conf
2726
   accordingly.
2742
   accordingly.
2727

    
   
2743

   
2728
DAHDI Changes
2744
DAHDI Changes
2729
-------------
2745
-------------
2730
 * chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
2746
 * chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
2731
   support for LibOpenR2.  http://www.libopenr2.org/
2747
   support for LibOpenR2.  http://www.libopenr2.org/
2732
 * The UK option waitfordialtone has been added for use with BT analog
2748
 * The UK option waitfordialtone has been added for use with BT analog
2733
   lines.
2749
   lines.
2734
 * Added a 'faxbuffers' configuration option to chan_dahdi.conf.  This option
2750
 * Added a 'faxbuffers' configuration option to chan_dahdi.conf.  This option
2735
   is used in conjunction with the 'faxdetect' configuration option.  When
2751
   is used in conjunction with the 'faxdetect' configuration option.  When
2736
   'faxbuffers' is used and fax tones are detected, the channel will dynamically
2752
   'faxbuffers' is used and fax tones are detected, the channel will dynamically
2737
   switch to the configured faxbuffers policy.  For example, to use 6 buffers
2753
   switch to the configured faxbuffers policy.  For example, to use 6 buffers
2738
   and a 'full' buffer policy for a fax transmission, add:
2754
   and a 'full' buffer policy for a fax transmission, add:
2739
     faxbuffers=>6,full
2755
     faxbuffers=>6,full
2740
   The faxbuffers configuration will be in affect until the call is torn down.
2756
   The faxbuffers configuration will be in affect until the call is torn down.
2741
 * Added service message support for 4ESS/5ESS switches.
2757
 * Added service message support for 4ESS/5ESS switches.
2742

    
   
2758

   
2743
Dialplan Functions
2759
Dialplan Functions
2744
------------------
2760
------------------
2745
 * For DAHDI channels, the CHANNEL() dialplan function now
2761
 * For DAHDI channels, the CHANNEL() dialplan function now
2746
   supports changing the channel's buffer policy (for the current
2762
   supports changing the channel's buffer policy (for the current
2747
   call only), using this syntax:
2763
   call only), using this syntax:
2748

    
   
2764

   
2749
   exten => s,n,Set(CHANNEL(buffers)=6,full)
2765
   exten => s,n,Set(CHANNEL(buffers)=6,full)
2750

    
   
2766

   
2751
   This would change the channel to the 'full' buffer policy and
2767
   This would change the channel to the 'full' buffer policy and
2752
   6 (six) buffers. Possible options for this setting are the same
2768
   6 (six) buffers. Possible options for this setting are the same
2753
   as those in chan_dahdi.conf.
2769
   as those in chan_dahdi.conf.
2754
 * Added a new dialplan function, CURLOPT, which permits setting various
2770
 * Added a new dialplan function, CURLOPT, which permits setting various
2755
   options that may be useful with the CURL dialplan function, such as
2771
   options that may be useful with the CURL dialplan function, such as
2756
   cookies, proxies, connection timeouts, passwords, etc.
2772
   cookies, proxies, connection timeouts, passwords, etc.
2757
 * Permit the syntax and synopsis fields of the corresponding dialplan
2773
 * Permit the syntax and synopsis fields of the corresponding dialplan
2758
   functions to be individually set from func_odbc.conf.
2774
   functions to be individually set from func_odbc.conf.
2759
 * Added debugging CLI functions to func_odbc, 'odbc read' and 'odbc write'.
2775
 * Added debugging CLI functions to func_odbc, 'odbc read' and 'odbc write'.
2760
 * func_odbc now may specify an insert query to execute, when the write query
2776
 * func_odbc now may specify an insert query to execute, when the write query
2761
   affects 0 rows (usually indicating that no such row exists).
2777
   affects 0 rows (usually indicating that no such row exists).
2762
 * Added a new dialplan function, LISTFILTER, which permits removing elements
2778
 * Added a new dialplan function, LISTFILTER, which permits removing elements
2763
   from a set list, by name.  Uses the same general syntax as the existing CUT
2779
   from a set list, by name.  Uses the same general syntax as the existing CUT
2764
   and FIELDQTY dialplan functions, which also manage lists.
2780
   and FIELDQTY dialplan functions, which also manage lists.
2765
 * Added REALTIME_FIELD and REALTIME_HASH, which should aid users in better
2781
 * Added REALTIME_FIELD and REALTIME_HASH, which should aid users in better
2766
   obtaining realtime data from the dialplan.
2782
   obtaining realtime data from the dialplan.
2767
 * Added LOCAL_PEEK, which allows access to variables in any stack frame within
2783
 * Added LOCAL_PEEK, which allows access to variables in any stack frame within
2768
   a subroutine when using the GoSub() and Return() applications.
2784
   a subroutine when using the GoSub() and Return() applications.
2769
 * Added AUDIOHOOK_INHERIT. For information on its use, please see the output
2785
 * Added AUDIOHOOK_INHERIT. For information on its use, please see the output
2770
   of "core show function AUDIOHOOK_INHERIT" from the CLI
2786
   of "core show function AUDIOHOOK_INHERIT" from the CLI
2771
 * Added AES_ENCRYPT. For information on its use, please see the output
2787
 * Added AES_ENCRYPT. For information on its use, please see the output
2772
   of "core show function AES_ENCRYPT" from the CLI
2788
   of "core show function AES_ENCRYPT" from the CLI
2773
 * Added AES_DECRYPT. For information on its use, please see the output
2789
 * Added AES_DECRYPT. For information on its use, please see the output
2774
   of "core show function AES_DECRYPT" from the CLI
2790
   of "core show function AES_DECRYPT" from the CLI
2775
 * func_odbc now supports database transactions across multiple queries.
2791
 * func_odbc now supports database transactions across multiple queries.
2776

    
   
2792

   
2777
Applications
2793
Applications
2778
------------
2794
------------
2779
 * Scheduled meetme conferences may now have their end times extended by
2795
 * Scheduled meetme conferences may now have their end times extended by
2780
   using MeetMeAdmin.
2796
   using MeetMeAdmin.
2781
 * app_authenticate now gives the ability to select a prompt other than
2797
 * app_authenticate now gives the ability to select a prompt other than
2782
   the default.
2798
   the default.
2783
 * app_directory now pays attention to the searchcontexts setting in
2799
 * app_directory now pays attention to the searchcontexts setting in
2784
   voicemail.conf and will look through all contexts, if no context is
2800
   voicemail.conf and will look through all contexts, if no context is
2785
   specified in the initial argument.
2801
   specified in the initial argument.
2786
 * A new application, Originate, has been introduced, that allows asynchronous
2802
 * A new application, Originate, has been introduced, that allows asynchronous
2787
   call origination from the dialplan.
2803
   call origination from the dialplan.
2788
 * Voicemail now permits setting the emailsubject and emailbody per mailbox,
2804
 * Voicemail now permits setting the emailsubject and emailbody per mailbox,
2789
   in addition to the setting in the "general" context.
2805
   in addition to the setting in the "general" context.
2790
 * Added ConfBridge dialplan application which does conference bridges without
2806
 * Added ConfBridge dialplan application which does conference bridges without
2791
   DAHDI. For information on its use, please see the output of
2807
   DAHDI. For information on its use, please see the output of
2792
   "core show application ConfBridge" from the CLI.
2808
   "core show application ConfBridge" from the CLI.
2793

    
   
2809

   
2794
Miscellaneous
2810
Miscellaneous
2795
-------------
2811
-------------
2796
 * The Asterisk CLI has a new command, "channel redirect", which is similar in
2812
 * The Asterisk CLI has a new command, "channel redirect", which is similar in
2797
   operation to the AMI Redirect action.
2813
   operation to the AMI Redirect action.
2798
 * extensions.conf now allows you to use keyword "same" to define an extension
2814
 * extensions.conf now allows you to use keyword "same" to define an extension
2799
   without actually specifying an extension.  It uses exactly the same pattern
2815
   without actually specifying an extension.  It uses exactly the same pattern
2800
   as previously used on the last "exten" line.  For example:
2816
   as previously used on the last "exten" line.  For example:
2801
     exten => 123,1,NoOp(something)
2817
     exten => 123,1,NoOp(something)
2802
     same  =>     n,SomethingElse()
2818
     same  =>     n,SomethingElse()
2803
 * musiconhold.conf classes of type 'files' can now use relative directory paths,
2819
 * musiconhold.conf classes of type 'files' can now use relative directory paths,
2804
   which are interpreted as relative to the astvarlibdir setting in asterisk.conf.
2820
   which are interpreted as relative to the astvarlibdir setting in asterisk.conf.
2805
 * All deprecated CLI commands are removed from the sourcecode. They are now handled
2821
 * All deprecated CLI commands are removed from the sourcecode. They are now handled
2806
   by the new clialiases module. See cli_aliases.conf.sample file.
2822
   by the new clialiases module. See cli_aliases.conf.sample file.
2807
 * Times within timespecs are now accurate down to the minute.  This is a change
2823
 * Times within timespecs are now accurate down to the minute.  This is a change
2808
   from historical Asterisk, which only provided timespecs rounded to the nearest
2824
   from historical Asterisk, which only provided timespecs rounded to the nearest
2809
   even (read: evenly divisible by 2) minute mark.
2825
   even (read: evenly divisible by 2) minute mark.
2810
 * The realtime switch now supports an option flag, 'p', which disables searches for
2826
 * The realtime switch now supports an option flag, 'p', which disables searches for
2811
   pattern matches.
2827
   pattern matches.
2812
 * In addition to a time range and date range, timespecs now accept a 5th optional
2828
 * In addition to a time range and date range, timespecs now accept a 5th optional
2813
   argument, timezone.  This allows you to perform time checks on alternate
2829
   argument, timezone.  This allows you to perform time checks on alternate
2814
   timezones, especially if those daylight savings time ranges vary from your
2830
   timezones, especially if those daylight savings time ranges vary from your
2815
   machine's native timezone.  See GotoIfTime, ExecIfTime, IFTIME(), and timed
2831
   machine's native timezone.  See GotoIfTime, ExecIfTime, IFTIME(), and timed
2816
   includes.
2832
   includes.
2817
 * The contrib/scripts/ directory now has a script called sip_nat_settings that will
2833
 * The contrib/scripts/ directory now has a script called sip_nat_settings that will
2818
   give you the correct output for an asterisk box behind nat. It will give you the
2834
   give you the correct output for an asterisk box behind nat. It will give you the
2819
   externhost and localnet settings.
2835
   externhost and localnet settings.
2820
 * The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
2836
 * The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
2821
   can connect calls in passthrough mode, as well as record and play back files.
2837
   can connect calls in passthrough mode, as well as record and play back files.
2822
 * Successful and unsuccessful call pickup can now be alerted through sounds, by
2838
 * Successful and unsuccessful call pickup can now be alerted through sounds, by
2823
   using pickupsound and pickupfailsound in features.conf.
2839
   using pickupsound and pickupfailsound in features.conf.
2824
 * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default.
2840
 * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default.
2825
   This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
2841
   This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
2826
   instead of the /var/run/asterisk.pid where it used to be. This will make
2842
   instead of the /var/run/asterisk.pid where it used to be. This will make
2827
   installs as non-root easier to manage.
2843
   installs as non-root easier to manage.
2828

    
   
2844

   
2829
CDR
2845
CDR
2830
---
2846
---
2831

    
   
2847

   
2832
* The cdr.conf file must exist and be correctly programmed in order for CDR records to
2848
* The cdr.conf file must exist and be correctly programmed in order for CDR records to
2833
  be written; they will no longer be explicitly written.
2849
  be written; they will no longer be explicitly written.
2834

    
   
2850

   
2835
Asterisk Manager Interface
2851
Asterisk Manager Interface
2836
--------------------------
2852
--------------------------
2837
 * When using the AMI over HTTP, you can now include a 'SuppressEvents' header (with
2853
 * When using the AMI over HTTP, you can now include a 'SuppressEvents' header (with
2838
   a non-empty value) in your request. If you do this, any pending AMI events will
2854
   a non-empty value) in your request. If you do this, any pending AMI events will
2839
   *not* be included in the response to your request as they would normally, but
2855
   *not* be included in the response to your request as they would normally, but
2840
   will be left in the event queue for the next request you make to retrieve. For
2856
   will be left in the event queue for the next request you make to retrieve. For
2841
   some applications, this will allow you to guarantee that you will only see
2857
   some applications, this will allow you to guarantee that you will only see
2842
   events in responses to 'WaitEvent' actions, and can better know when to expect them.
2858
   events in responses to 'WaitEvent' actions, and can better know when to expect them.
2843
   To know whether the Asterisk server supports this header or not, your client can
2859
   To know whether the Asterisk server supports this header or not, your client can
2844
   inspect the first response back from the server to see if it includes this header:
2860
   inspect the first response back from the server to see if it includes this header:
2845

    
   
2861

   
2846
   Pragma: SuppressEvents
2862
   Pragma: SuppressEvents
2847

    
   
2863

   
2848
   If this is included, the server supports event suppression.
2864
   If this is included, the server supports event suppression.
2849

    
   
2865

   
2850
 * Added 4 new Actions to list skinny device(s) and line(s)
2866
 * Added 4 new Actions to list skinny device(s) and line(s)
2851
   SKINNYdevices
2867
   SKINNYdevices
2852
   SKINNYshowdevice
2868
   SKINNYshowdevice
2853
   SKINNYlines
2869
   SKINNYlines
2854
   SKINNYshowline
2870
   SKINNYshowline
2855

    
   
2871

   
2856
LDAP Schema File Additions
2872
LDAP Schema File Additions
2857
--------------------------
2873
--------------------------
2858
 * Added AsteriskDialplan, AsteriskAccount and AsteriskMailbox  objectClasses
2874
 * Added AsteriskDialplan, AsteriskAccount and AsteriskMailbox  objectClasses
2859
   to allow standalone dialplan, account and mailbox entries (STRUCTURAL)
2875
   to allow standalone dialplan, account and mailbox entries (STRUCTURAL)
2860
 * Added new Fields:
2876
 * Added new Fields:
2861
   - AstAccountLanguage, AstAccountTransport, AstAccountPromiscRedir,
2877
   - AstAccountLanguage, AstAccountTransport, AstAccountPromiscRedir,
2862
   - AstAccountAccountCode, AstAccountSetVar, AstAccountAllowOverlap,
2878
   - AstAccountAccountCode, AstAccountSetVar, AstAccountAllowOverlap,
2863
   - AstAccountVideoSupport, AstAccountIgnoreSDPVersion
2879
   - AstAccountVideoSupport, AstAccountIgnoreSDPVersion
2864
 * Removed redundant IPaddr (there's already IPAddress)
2880
 * Removed redundant IPaddr (there's already IPAddress)
2865
   - Gives more configuration Flags for SIP-Users available (tested)
2881
   - Gives more configuration Flags for SIP-Users available (tested)
2866
   - Allows to create Asterisk Attributes in defined Asterisk ObjectClasses
2882
   - Allows to create Asterisk Attributes in defined Asterisk ObjectClasses
2867
     without extensibleObject (which really should be the last resort); gives
2883
     without extensibleObject (which really should be the last resort); gives
2868
     also additional possibilities for LDAP-filter
2884
     also additional possibilities for LDAP-filter
2869

    
   
2885

   
2870
------------------------------------------------------------------------------
2886
------------------------------------------------------------------------------
2871
--- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1  -------------
2887
--- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1  -------------
2872
------------------------------------------------------------------------------
2888
------------------------------------------------------------------------------
2873

    
   
2889

   
2874
Device State Handling
2890
Device State Handling
2875
---------------------
2891
---------------------
2876
 * The event infrastructure in Asterisk got another big update to help support
2892
 * The event infrastructure in Asterisk got another big update to help support
2877
   distributed events.  It currently supports distributed device state and
2893
   distributed events.  It currently supports distributed device state and
2878
   distributed Voicemail MWI (Message Waiting Indication).  A new module has
2894
   distributed Voicemail MWI (Message Waiting Indication).  A new module has
2879
   been merged, res_ais, which facilitates communicating events between servers.
2895
   been merged, res_ais, which facilitates communicating events between servers.
2880
   It uses the SAForum AIS (Service Availability Forum Application Interface
2896
   It uses the SAForum AIS (Service Availability Forum Application Interface
2881
   Specification) CLM (Cluster Management) and EVT (Event) services to maintain
2897
   Specification) CLM (Cluster Management) and EVT (Event) services to maintain
2882
   a cluster of Asterisk servers, and to share events between them.  For more
2898
   a cluster of Asterisk servers, and to share events between them.  For more
2883
   information on setting this up, refer to the Distributed Device State section
2899
   information on setting this up, refer to the Distributed Device State section
2884
   of the Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
2900
   of the Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
2885

    
   
2901

   
2886
Dialplan Functions
2902
Dialplan Functions
2887
------------------
2903
------------------
2888
 * Added a new dialplan function, AST_CONFIG(), which allows you to access
2904
 * Added a new dialplan function, AST_CONFIG(), which allows you to access
2889
   variables from an Asterisk configuration file.
2905
   variables from an Asterisk configuration file.
2890
 * The JACK_HOOK function now has a c() option to supply a custom client name.
2906
 * The JACK_HOOK function now has a c() option to supply a custom client name.
2891
 * Added two new dialplan functions from libspeex for audio gain control and
2907
 * Added two new dialplan functions from libspeex for audio gain control and
2892
   denoise, AGC() and DENOISE(). Both functions can be applied to the tx and
2908
   denoise, AGC() and DENOISE(). Both functions can be applied to the tx and
2893
   rx directions of a channel from the dialplan.
2909
   rx directions of a channel from the dialplan.
2894
 * The SMDI_MSG_RETRIEVE function now has the ability to search for SMDI messages
2910
 * The SMDI_MSG_RETRIEVE function now has the ability to search for SMDI messages
2895
   based on other parameters.  The default is still to search based on the
2911
   based on other parameters.  The default is still to search based on the
2896
   forwarding station ID.  However, there are new options that allow you to search
2912
   forwarding station ID.  However, there are new options that allow you to search
2897
   based on the message desk terminal ID, or the message desk number.
2913
   based on the message desk terminal ID, or the message desk number.
2898
 * TIMEOUT() has been modified to be accurate down to the millisecond.
2914
 * TIMEOUT() has been modified to be accurate down to the millisecond.
2899
 * ENUM*() functions now include the following new options:
2915
 * ENUM*() functions now include the following new options:
2900
     - 'u' returns the full URI and does not strip off the URI-scheme.
2916
     - 'u' returns the full URI and does not strip off the URI-scheme.
2901
     - 's' triggers ISN specific rewriting
2917
     - 's' triggers ISN specific rewriting
2902
     - 'i' looks for branches into an Infrastructure ENUM tree
2918
     - 'i' looks for branches into an Infrastructure ENUM tree
2903
     - 'd' for a direct DNS lookup without any flipping of digits.
2919
     - 'd' for a direct DNS lookup without any flipping of digits.
2904
 * TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
2920
 * TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
2905
 * CHANNEL() now has options for the maximum, minimum, and standard or normal
2921
 * CHANNEL() now has options for the maximum, minimum, and standard or normal
2906
   deviation of jitter, rtt, and loss for a call using chan_sip.
2922
   deviation of jitter, rtt, and loss for a call using chan_sip.
2907

    
   
2923

   
2908
DAHDI channel driver (chan_dahdi) Changes
2924
DAHDI channel driver (chan_dahdi) Changes
2909
----------------------------------------
2925
----------------------------------------
2910
 * Channels can now be configured using named sections in chan_dahdi.conf, just
2926
 * Channels can now be configured using named sections in chan_dahdi.conf, just
2911
   like other channel drivers, including the use of templates.
2927
   like other channel drivers, including the use of templates.
2912
 * The default for pridialplan has changed from 'national' to 'unknown'.
2928
 * The default for pridialplan has changed from 'national' to 'unknown'.
2913

    
   
2929

   
2914
PBX Changes
2930
PBX Changes
2915
-----------
2931
-----------
2916
 * It is now possible to specify a pattern match as a hint. Once a phone subscribes
2932
 * It is now possible to specify a pattern match as a hint. Once a phone subscribes
2917
   to something that matches the pattern a hint will be created using the contents
2933
   to something that matches the pattern a hint will be created using the contents
2918
   and variables evaluated.
2934
   and variables evaluated.
2919
 * Dialplan matching has been extended to allow an extension to return to the
2935
 * Dialplan matching has been extended to allow an extension to return to the
2920
   PBX core to wait for more digits.  This is done by using the new dialplan
2936
   PBX core to wait for more digits.  This is done by using the new dialplan
2921
   application called "Incomplete".  This will permit a whole new level of
2937
   application called "Incomplete".  This will permit a whole new level of
2922
   extension control, by giving the administrator more control over early
2938
   extension control, by giving the administrator more control over early
2923
   matches employing one of the short-circuit pattern match operators.  Note
2939
   matches employing one of the short-circuit pattern match operators.  Note
2924
   that custom applications can trigger this same behavior by returning the
2940
   that custom applications can trigger this same behavior by returning the
2925
   special value AST_PBX_INCOMPLETE.
2941
   special value AST_PBX_INCOMPLETE.
2926

    
   
2942

   
2927
Application Changes
2943
Application Changes
2928
-------------------
2944
-------------------
2929
 * Directory now permits both first and last names to be matched at the same
2945
 * Directory now permits both first and last names to be matched at the same
2930
   time.  In addition, the number of digits to enter of the name can be set in
2946
   time.  In addition, the number of digits to enter of the name can be set in
2931
   the arguments to Directory; previously, you could enter only 3, regardless
2947
   the arguments to Directory; previously, you could enter only 3, regardless
2932
   of how many names are in your company.  For large companies, this should be
2948
   of how many names are in your company.  For large companies, this should be
2933
   quite helpful.
2949
   quite helpful.
2934
 * Voicemail now permits a mailbox setting to wrap around from first to last
2950
 * Voicemail now permits a mailbox setting to wrap around from first to last
2935
   messages, if the "messagewrap" option is set to a true value.
2951
   messages, if the "messagewrap" option is set to a true value.
2936
 * Voicemail now permits an external script to be run, for password validation.
2952
 * Voicemail now permits an external script to be run, for password validation.
2937
   The script should output "VALID" or "INVALID" on stdout, depending upon the
2953
   The script should output "VALID" or "INVALID" on stdout, depending upon the
2938
   wish to validate or invalidate the password given.  Arguments are:
2954
   wish to validate or invalidate the password given.  Arguments are:
2939
   "mailbox" "context" "oldpass" "newpass".  See the sample voicemail.conf for
2955
   "mailbox" "context" "oldpass" "newpass".  See the sample voicemail.conf for
2940
   more details
2956
   more details
2941
 * Dial has a new option: F(context^extension^pri), which permits a callee to
2957
 * Dial has a new option: F(context^extension^pri), which permits a callee to
2942
   continue in the dialplan, at the specified label, if the caller hangs up.
2958
   continue in the dialplan, at the specified label, if the caller hangs up.
2943
 * ChanSpy and ExtenSpy have a new option, 's' which suppresses speaking the
2959
 * ChanSpy and ExtenSpy have a new option, 's' which suppresses speaking the
2944
   technology name (e.g. SIP, IAX, etc) of the channel being spied on.
2960
   technology name (e.g. SIP, IAX, etc) of the channel being spied on.
2945
 * The Jack application now has a c() option to supply a custom client name.
2961
 * The Jack application now has a c() option to supply a custom client name.
2946
 * Chanspy has a new option, 'B', which can be used to "barge" on a call. This is
2962
 * Chanspy has a new option, 'B', which can be used to "barge" on a call. This is
2947
   like the pre-existing whisper mode, except that the spy can also talk to the
2963
   like the pre-existing whisper mode, except that the spy can also talk to the
2948
   participant on the bridged channel as well.
2964
   participant on the bridged channel as well.
2949
 * Chanspy has a new option, 'n', which will allow for the spied-on party's name
2965
 * Chanspy has a new option, 'n', which will allow for the spied-on party's name
2950
   to be spoken instead of the channel name or number. For more information on the
2966
   to be spoken instead of the channel name or number. For more information on the
2951
   use of this option, issue the command "core show application ChanSpy" from the
2967
   use of this option, issue the command "core show application ChanSpy" from the
2952
   Asterisk CLI.
2968
   Asterisk CLI.
2953
 * Chanspy has a new option, 'd', which allows the spy to use DTMF to swap between
2969
 * Chanspy has a new option, 'd', which allows the spy to use DTMF to swap between
2954
   spy modes. Use of this feature overrides the typical use of numeric DTMF. In other
2970
   spy modes. Use of this feature overrides the typical use of numeric DTMF. In other
2955
   words, if using the 'd' option, it is not possible to enter a number to append to
2971
   words, if using the 'd' option, it is not possible to enter a number to append to
2956
   the first argument to Chanspy(). Pressing 4 will change to spy mode, pressing 5 will
2972
   the first argument to Chanspy(). Pressing 4 will change to spy mode, pressing 5 will
2957
   change to whisper mode, and pressing 6 will change to barge mode.
2973
   change to whisper mode, and pressing 6 will change to barge mode.
2958
 * ExternalIVR now takes several options that affect the way it performs, as
2974
 * ExternalIVR now takes several options that affect the way it performs, as
2959
   well as having several new commands.  Please see the External IVR page on the Asterisk
2975
   well as having several new commands.  Please see the External IVR page on the Asterisk
2960
   wiki for complete documentation: https://wiki.asterisk.org/wiki/x/oQBB
2976
   wiki for complete documentation: https://wiki.asterisk.org/wiki/x/oQBB
2961
 * Added ability to communicate over a TCP socket instead of forking a child process for the
2977
 * Added ability to communicate over a TCP socket instead of forking a child process for the
2962
   ExternalIVR application.
2978
   ExternalIVR application.
2963
 * ChanIsAvail has a new option, 'a', which will return all available channels instead
2979
 * ChanIsAvail has a new option, 'a', which will return all available channels instead
2964
   of just the first one if you give the function more then one channel to check.
2980
   of just the first one if you give the function more then one channel to check.
2965
 * PrivacyManager now takes an option where you can specify a context where the
2981
 * PrivacyManager now takes an option where you can specify a context where the
2966
   given number will be matched. This way you have more control over who is allowed
2982
   given number will be matched. This way you have more control over who is allowed
2967
   and it stops the people who blindly enter 10 digits.
2983
   and it stops the people who blindly enter 10 digits.
2968
 * ForkCDR has new options: 'a' updates the answer time on the new CDR; 'A' locks
2984
 * ForkCDR has new options: 'a' updates the answer time on the new CDR; 'A' locks
2969
   answer times, disposition, on orig CDR against updates; 'D' Copies the disposition
2985
   answer times, disposition, on orig CDR against updates; 'D' Copies the disposition
2970
   from the orig CDR to the new CDR after reset; 'e' sets the 'end' time on the
2986
   from the orig CDR to the new CDR after reset; 'e' sets the 'end' time on the
2971
   original CDR; 'R' prevents the new CDR from being reset; 's(var=val)' adds/changes
2987
   original CDR; 'R' prevents the new CDR from being reset; 's(var=val)' adds/changes
2972
   the 'var' variable on the original CDR; 'T' forces ast_cdr_end(), ast_cdr_answer(),
2988
   the 'var' variable on the original CDR; 'T' forces ast_cdr_end(), ast_cdr_answer(),
2973
   obey the LOCKED flag on cdr's in the chain, and also the ast_cdr_setvar() func.
2989
   obey the LOCKED flag on cdr's in the chain, and also the ast_cdr_setvar() func.
2974
 * The Dial() application no longer copies the language used by the caller to the callee's
2990
 * The Dial() application no longer copies the language used by the caller to the callee's
2975
   channel. If you desire for the caller's channel's language to be used for file playback
2991
   channel. If you desire for the caller's channel's language to be used for file playback
2976
   to the callee, then the file specified may be prepended with "${CHANNEL(language)}/" .
2992
   to the callee, then the file specified may be prepended with "${CHANNEL(language)}/" .
2977
 * SendImage() no longer hangs up the channel on error; instead, it sets the
2993
 * SendImage() no longer hangs up the channel on error; instead, it sets the
2978
   status variable SENDIMAGESTATUS to one of 'SUCCESS', 'FAILURE', or
2994
   status variable SENDIMAGESTATUS to one of 'SUCCESS', 'FAILURE', or
2979
   'UNSUPPORTED'.  This change makes SendImage() more consistent with other
2995
   'UNSUPPORTED'.  This change makes SendImage() more consistent with other
2980
   applications.
2996
   applications.
2981
 * Park has a new option, 's', which silences the announcement of the parking space number.
2997
 * Park has a new option, 's', which silences the announcement of the parking space number.
2982
 * A non-numeric, zero, or negative timeout specified to Dial() will now be interpreted as
2998
 * A non-numeric, zero, or negative timeout specified to Dial() will now be interpreted as
2983
   invalid input and will be assumed to mean that no timeout is desired.
2999
   invalid input and will be assumed to mean that no timeout is desired.
2984

    
   
3000

   
2985
SIP Changes
3001
SIP Changes
2986
-----------
3002
-----------
2987
 * Added DNS manager support to registrations for peers referencing peer entries.
3003
 * Added DNS manager support to registrations for peers referencing peer entries.
2988
   DNS manager runs in the background which allows DNS lookups to be run asynchronously
3004
   DNS manager runs in the background which allows DNS lookups to be run asynchronously
2989
   as well as periodically updating the IP address. These properties allow for
3005
   as well as periodically updating the IP address. These properties allow for
2990
   better performance as well as recovery in the event of an IP change.
3006
   better performance as well as recovery in the event of an IP change.
2991
 * Performance improvements via using hash tables (astobj2) and doubly-linked lists to improve
3007
 * Performance improvements via using hash tables (astobj2) and doubly-linked lists to improve
2992
   load/reload of large numbers of peers/users by ~40x (for large lists of peers).
3008
   load/reload of large numbers of peers/users by ~40x (for large lists of peers).
2993
   These changes also provide performance improvements for call setup and tear down.
3009
   These changes also provide performance improvements for call setup and tear down.
2994
 * Added ability to specify registration expiry time on a per registration basis in
3010
 * Added ability to specify registration expiry time on a per registration basis in
2995
   the register line.
3011
   the register line.
2996
 * Added support for T140 RED - redundancy in T.140 to prevent text loss due to
3012
 * Added support for T140 RED - redundancy in T.140 to prevent text loss due to
2997
   lost packets.
3013
   lost packets.
2998
 * Added t38pt_usertpsource option. See sip.conf.sample for details.
3014
 * Added t38pt_usertpsource option. See sip.conf.sample for details.
2999
 * Added SIPnotify AMI command, for sending arbitrary SIP notify commands.
3015
 * Added SIPnotify AMI command, for sending arbitrary SIP notify commands.
3000
 * 'sip show peers' and 'sip show users' display their entries sorted in
3016
 * 'sip show peers' and 'sip show users' display their entries sorted in
3001
    alphabetical order, as opposed to the order they were in, in the config
3017
    alphabetical order, as opposed to the order they were in, in the config
3002
    file or database.
3018
    file or database.
3003
 * Videosupport now supports an additional option, "always", which always sets
3019
 * Videosupport now supports an additional option, "always", which always sets
3004
    up video RTP ports, even on clients that don't support it.  This helps with
3020
    up video RTP ports, even on clients that don't support it.  This helps with
3005
    callfiles and certain transfers to ensure that if two video phones are
3021
    callfiles and certain transfers to ensure that if two video phones are
3006
    connected, they will always share video feeds.
3022
    connected, they will always share video feeds.
3007

    
   
3023

   
3008
IAX Changes
3024
IAX Changes
3009
-----------
3025
-----------
3010
 * Existing DNS manager lookups extended to check for SRV records.
3026
 * Existing DNS manager lookups extended to check for SRV records.
3011
 * IAX2 encryption support has been improved to support periodic key rotation
3027
 * IAX2 encryption support has been improved to support periodic key rotation
3012
   within a call for enhanced security.  The option "keyrotate" has been
3028
   within a call for enhanced security.  The option "keyrotate" has been
3013
   provided to disable this functionality to preserve backwards compatibility
3029
   provided to disable this functionality to preserve backwards compatibility
3014
   with older versions of IAX2 that do not support key rotation.
3030
   with older versions of IAX2 that do not support key rotation.
3015

    
   
3031

   
3016
CLI Changes
3032
CLI Changes
3017
-----------
3033
-----------
3018
  * New CLI command, "data get <path> [<search> [<filter>]]" which retrieves the
3034
  * New CLI command, "data get <path> [<search> [<filter>]]" which retrieves the
3019
     data tree based on the given <path>.
3035
     data tree based on the given <path>.
3020
  * New CLI command "data show providers" that will display all the registered
3036
  * New CLI command "data show providers" that will display all the registered
3021
     callbacks.
3037
     callbacks.
3022
  * New CLI command, "config reload <file.conf>" which reloads any module that
3038
  * New CLI command, "config reload <file.conf>" which reloads any module that
3023
     references that particular configuration file.  Also added "config list"
3039
     references that particular configuration file.  Also added "config list"
3024
     which shows which configuration files are in use.
3040
     which shows which configuration files are in use.
3025
  * New CLI commands, "pri show version" and "ss7 show version" that will
3041
  * New CLI commands, "pri show version" and "ss7 show version" that will
3026
     display which version of libpri and libss7 are being used, respectively.
3042
     display which version of libpri and libss7 are being used, respectively.
3027
     A new API call was added so trunk will now have to be compiled against
3043
     A new API call was added so trunk will now have to be compiled against
3028
     a versions of libpri and libss7 that have them or it will not know that
3044
     a versions of libpri and libss7 that have them or it will not know that
3029
     these libraries exist.
3045
     these libraries exist.
3030
  * The commands "core show globals", "core set global" and "core set chanvar" has
3046
  * The commands "core show globals", "core set global" and "core set chanvar" has
3031
     been deprecated in favor of the more semanticly correct "dialplan show globals",
3047
     been deprecated in favor of the more semanticly correct "dialplan show globals",
3032
     "dialplan set chanvar" and "dialplan set global".
3048
     "dialplan set chanvar" and "dialplan set global".
3033
  * New CLI command "dialplan show chanvar" to list all variables associated
3049
  * New CLI command "dialplan show chanvar" to list all variables associated
3034
    with a given channel.
3050
    with a given channel.
3035

    
   
3051

   
3036
DNS manager changes
3052
DNS manager changes
3037
-------------------
3053
-------------------
3038
  * Addresses managed by DNS manager now can check to see if there is a DNS
3054
  * Addresses managed by DNS manager now can check to see if there is a DNS
3039
    SRV record for a given domain and will use that hostname/port if present.
3055
    SRV record for a given domain and will use that hostname/port if present.
3040

    
   
3056

   
3041
AMI - The manager (TCP/TLS/HTTP)
3057
AMI - The manager (TCP/TLS/HTTP)
3042
--------------------------------
3058
--------------------------------
3043
  * The Status command now takes an optional list of variables to display
3059
  * The Status command now takes an optional list of variables to display
3044
    along with channel status.
3060
    along with channel status.
3045
  * The QueueEntry event now also includes the channel's uniqueid
3061
  * The QueueEntry event now also includes the channel's uniqueid
3046

    
   
3062

   
3047
ODBC Changes
3063
ODBC Changes
3048
------------
3064
------------
3049
  * res_odbc no longer has a limit of 1023 total possible unshared connections,
3065
  * res_odbc no longer has a limit of 1023 total possible unshared connections,
3050
    as some people were running into this limit.  This limit has been increased
3066
    as some people were running into this limit.  This limit has been increased
3051
    to 4.2 billion.
3067
    to 4.2 billion.
3052

    
   
3068

   
3053
Queue changes
3069
Queue changes
3054
-------------
3070
-------------
3055
  * The TRANSFER queue log entry now includes the the caller's original
3071
  * The TRANSFER queue log entry now includes the the caller's original
3056
    position in the transferred-from queue.
3072
    position in the transferred-from queue.
3057
  * A new configuration option, "timeoutpriority" has been added. Please see the section labeled
3073
  * A new configuration option, "timeoutpriority" has been added. Please see the section labeled
3058
    "QUEUE TIMING OPTIONS" in configs/queues.conf.sample for a detailed explanation of the option
3074
    "QUEUE TIMING OPTIONS" in configs/queues.conf.sample for a detailed explanation of the option
3059
    as well as an explanation about timeout options in general
3075
    as well as an explanation about timeout options in general
3060
  * Added a new option - C - for forcing the "answered elsewhere" flag on
3076
  * Added a new option - C - for forcing the "answered elsewhere" flag on
3061
    cancellation of calls in to members of the queue. This is to avoid the
3077
    cancellation of calls in to members of the queue. This is to avoid the
3062
    call to a member of a queue having the call listed as a "missed call".
3078
    call to a member of a queue having the call listed as a "missed call".
3063

    
   
3079

   
3064
Realtime changes
3080
Realtime changes
3065
----------------
3081
----------------
3066
  * Several (ODBC, Postgres, MySQL, SQLite) realtime drivers have been given
3082
  * Several (ODBC, Postgres, MySQL, SQLite) realtime drivers have been given
3067
    adaptive capabilities.  What this means in practical terms is that if your
3083
    adaptive capabilities.  What this means in practical terms is that if your
3068
    realtime table lacks critical fields, Asterisk will now emit warnings to
3084
    realtime table lacks critical fields, Asterisk will now emit warnings to
3069
    that effect.  Also, some of the realtime drivers have the ability (if
3085
    that effect.  Also, some of the realtime drivers have the ability (if
3070
    configured) to automatically add those columns to the table with the
3086
    configured) to automatically add those columns to the table with the
3071
    correct type and length.
3087
    correct type and length.
3072

    
   
3088

   
3073
Miscellaneous
3089
Miscellaneous
3074
-------------
3090
-------------
3075
  * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND can now be set using
3091
  * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND can now be set using
3076
    the 'setvar' option to cause a given audio file to be played upon completion
3092
    the 'setvar' option to cause a given audio file to be played upon completion
3077
    of an attended transfer.  Currently it works for DAHDI, IAX2, SIP, and
3093
    of an attended transfer.  Currently it works for DAHDI, IAX2, SIP, and
3078
    Skinny channels only.
3094
    Skinny channels only.
3079
  * You can now compile Asterisk against the Hoard Memory Allocator, see the
3095
  * You can now compile Asterisk against the Hoard Memory Allocator, see the
3080
    Hoard page on the Asterisk wiki for more information:
3096
    Hoard page on the Asterisk wiki for more information:
3081
    https://wiki.asterisk.org/wiki/x/pQBB
3097
    https://wiki.asterisk.org/wiki/x/pQBB
3082
  * Config file variables may now be appended to, by using the '+=' append
3098
  * Config file variables may now be appended to, by using the '+=' append
3083
    operator.  This is most helpful when working with long SQL queries in
3099
    operator.  This is most helpful when working with long SQL queries in
3084
    func_odbc.conf, as the queries no longer need to be specified on a single
3100
    func_odbc.conf, as the queries no longer need to be specified on a single
3085
    line.
3101
    line.
3086
  * CDR config file, cdr.conf, has an added option, "initiatedseconds",
3102
  * CDR config file, cdr.conf, has an added option, "initiatedseconds",
3087
    which will add a second to the billsec when the ending
3103
    which will add a second to the billsec when the ending
3088
    time is set, if the number in the microseconds field of the end time is
3104
    time is set, if the number in the microseconds field of the end time is
3089
    greater than the number of microseconds in the answer time. This allows
3105
    greater than the number of microseconds in the answer time. This allows
3090
    users to count the 'initiated' seconds in their billing records.
3106
    users to count the 'initiated' seconds in their billing records.
3091

    
   
3107

   
3092
------------------------------------------------------------------------------
3108
------------------------------------------------------------------------------
3093
--- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0  -------------
3109
--- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0  -------------
3094
------------------------------------------------------------------------------
3110
------------------------------------------------------------------------------
3095

    
   
3111

   
3096
AMI - The manager (TCP/TLS/HTTP)
3112
AMI - The manager (TCP/TLS/HTTP)
3097
--------------------------------
3113
--------------------------------
3098
  * Manager has undergone a lot of changes, all of them documented
3114
  * Manager has undergone a lot of changes, all of them documented
3099
    on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/tQBB
3115
    on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/tQBB
3100
  * Manager version has changed to 1.1
3116
  * Manager version has changed to 1.1
3101
  * Added a new action 'CoreShowChannels' to list currently defined channels
3117
  * Added a new action 'CoreShowChannels' to list currently defined channels
3102
     and some information about them.
3118
     and some information about them.
3103
  * Added a new action 'SIPshowregistry' to list SIP registrations.
3119
  * Added a new action 'SIPshowregistry' to list SIP registrations.
3104
  * Added TLS support for the manager interface and HTTP server
3120
  * Added TLS support for the manager interface and HTTP server
3105
  * Added the URI redirect option for the built-in HTTP server
3121
  * Added the URI redirect option for the built-in HTTP server
3106
  * The output of CallerID in Manager events is now more consistent.
3122
  * The output of CallerID in Manager events is now more consistent.
3107
     CallerIDNum is used for number and CallerIDName for name.
3123
     CallerIDNum is used for number and CallerIDName for name.
3108
  * Enable https support for builtin web server.
3124
  * Enable https support for builtin web server.
3109
     See configs/http.conf.sample for details.
3125
     See configs/http.conf.sample for details.
3110
  * Added a new action, GetConfigJSON, which can return the contents of an
3126
  * Added a new action, GetConfigJSON, which can return the contents of an
3111
     Asterisk configuration file in JSON format.  This is intended to help
3127
     Asterisk configuration file in JSON format.  This is intended to help
3112
     improve the performance of AJAX applications using the manager interface
3128
     improve the performance of AJAX applications using the manager interface
3113
     over HTTP.
3129
     over HTTP.
3114
  * SIP and IAX manager events now use "ChannelType" in all cases where we
3130
  * SIP and IAX manager events now use "ChannelType" in all cases where we
3115
     indicate channel driver. Previously, we used a mixture of "Channel"
3131
     indicate channel driver. Previously, we used a mixture of "Channel"
3116
     and "ChannelDriver" headers.
3132
     and "ChannelDriver" headers.
3117
  * Added a "Bridge" action which allows you to bridge any two channels that
3133
  * Added a "Bridge" action which allows you to bridge any two channels that
3118
     are currently active on the system.
3134
     are currently active on the system.
3119
  * Added a "ListAllVoicemailUsers" action that allows you to get a list of all
3135
  * Added a "ListAllVoicemailUsers" action that allows you to get a list of all
3120
     the voicemail users setup.
3136
     the voicemail users setup.
3121
  * Added 'DBDel' and 'DBDelTree' manager commands.
3137
  * Added 'DBDel' and 'DBDelTree' manager commands.
3122
  * cdr_manager now reports events via the "cdr" level, separating it from
3138
  * cdr_manager now reports events via the "cdr" level, separating it from
3123
     the very verbose "call" level.
3139
     the very verbose "call" level.
3124
  * Manager users are now stored in memory. If you change the manager account
3140
  * Manager users are now stored in memory. If you change the manager account
3125
    list (delete or add accounts) you need to reload manager.
3141
    list (delete or add accounts) you need to reload manager.
3126
  * Added Masquerade manager event for when a masquerade happens between
3142
  * Added Masquerade manager event for when a masquerade happens between
3127
     two channels.
3143
     two channels.
3128
  * Added "manager reload" command for the CLI
3144
  * Added "manager reload" command for the CLI
3129
  * Lots of commands that only provided information are now allowed under the
3145
  * Lots of commands that only provided information are now allowed under the
3130
     Reporting privilege, instead of only under Call or System.
3146
     Reporting privilege, instead of only under Call or System.
3131
  * The IAX* commands now require either System or Reporting privilege, to
3147
  * The IAX* commands now require either System or Reporting privilege, to
3132
     mirror the privileges of the SIP* commands.
3148
     mirror the privileges of the SIP* commands.
3133
  * Added ability to retrieve list of categories in a config file.
3149
  * Added ability to retrieve list of categories in a config file.
3134
  * Added ability to retrieve the content of a particular category.
3150
  * Added ability to retrieve the content of a particular category.
3135
  * Added ability to empty a context.
3151
  * Added ability to empty a context.
3136
  * Created new action to create a new file.
3152
  * Created new action to create a new file.
3137
  * Updated delete action to allow deletion by line number with respect to category.
3153
  * Updated delete action to allow deletion by line number with respect to category.
3138
  * Added new action insert to add new variable to category at specified line.
3154
  * Added new action insert to add new variable to category at specified line.
3139
  * Updated action newcat to allow new category to be inserted in file above another
3155
  * Updated action newcat to allow new category to be inserted in file above another
3140
    existing category.
3156
    existing category.
3141
  * Added new event "JitterBufStats" in the IAX2 channel
3157
  * Added new event "JitterBufStats" in the IAX2 channel
3142
  * Originate now requires the Originate privilege and, if you want to call out
3158
  * Originate now requires the Originate privilege and, if you want to call out
3143
    to a subshell, it requires the System privilege, as well.  This was done to
3159
    to a subshell, it requires the System privilege, as well.  This was done to
3144
    enhance manager security.
3160
    enhance manager security.
3145
  * Originate now accepts codec settings with "Codecs: alaw, ulaw, h264"
3161
  * Originate now accepts codec settings with "Codecs: alaw, ulaw, h264"
3146
  * New command: Atxfer. See https://wiki.asterisk.org/wiki/x/uABB for more details
3162
  * New command: Atxfer. See https://wiki.asterisk.org/wiki/x/uABB for more details
3147
    or manager show command Atxfer from the CLI
3163
    or manager show command Atxfer from the CLI
3148
  * New command: IAXregistry. See https://wiki.asterisk.org/wiki/x/uABB for more
3164
  * New command: IAXregistry. See https://wiki.asterisk.org/wiki/x/uABB for more
3149
    details or manager show command IAXregistry from the CLI
3165
    details or manager show command IAXregistry from the CLI
3150

    
   
3166

   
3151
Dialplan functions
3167
Dialplan functions
3152
------------------
3168
------------------
3153
  * Added the DEVICE_STATE() dialplan function which allows retrieving any device
3169
  * Added the DEVICE_STATE() dialplan function which allows retrieving any device
3154
     state in the dialplan, as well as creating custom device states that are
3170
     state in the dialplan, as well as creating custom device states that are
3155
     controllable from the dialplan.
3171
     controllable from the dialplan.
3156
  * Extend CALLERID() function with "pres" and "ton" parameters to
3172
  * Extend CALLERID() function with "pres" and "ton" parameters to
3157
     fetch string representation of calling number presentation indicator
3173
     fetch string representation of calling number presentation indicator
3158
     and numeric representation of type of calling number value.
3174
     and numeric representation of type of calling number value.
3159
  * MailboxExists converted to dialplan function
3175
  * MailboxExists converted to dialplan function
3160
  * A new option to Dial() for telling IP phones not to count the call
3176
  * A new option to Dial() for telling IP phones not to count the call
3161
     as "missed" when dial times out and cancels.
3177
     as "missed" when dial times out and cancels.
3162
  * Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan
3178
  * Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan
3163
     mutex.  No deadlocks are possible, as LOCK() only allows a single lock to be
3179
     mutex.  No deadlocks are possible, as LOCK() only allows a single lock to be
3164
     held for any given channel.  Also, locks are automatically freed when a
3180
     held for any given channel.  Also, locks are automatically freed when a
3165
     channel is hung up.
3181
     channel is hung up.
3166
  * Added HINT() dialplan function that allows retrieving hint information.
3182
  * Added HINT() dialplan function that allows retrieving hint information.
3167
     Hints are mappings between extensions and devices for the sake of
3183
     Hints are mappings between extensions and devices for the sake of
3168
     determining the state of an extension.  This function can retrieve the list
3184
     determining the state of an extension.  This function can retrieve the list
3169
     of devices or the name associated with a hint.
3185
     of devices or the name associated with a hint.
3170
  * Added EXTENSION_STATE() dialplan function which allows retrieving the state
3186
  * Added EXTENSION_STATE() dialplan function which allows retrieving the state
3171
    of any extension.
3187
    of any extension.
3172
  * Added SYSINFO() dialplan function which allows retrieval of system information
3188
  * Added SYSINFO() dialplan function which allows retrieval of system information
3173
  * Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for
3189
  * Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for
3174
     the existence of a dialplan target.
3190
     the existence of a dialplan target.
3175
  * Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to
3191
  * Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to
3176
     upper and lower case, respectively.
3192
     upper and lower case, respectively.
3177
  * When bridging, Asterisk sets the BRIDGEPVTCALLID to the channel drivers unique
3193
  * When bridging, Asterisk sets the BRIDGEPVTCALLID to the channel drivers unique
3178
     ID for the call (not the Asterisk call ID or unique ID), provided that the
3194
     ID for the call (not the Asterisk call ID or unique ID), provided that the
3179
     channel driver supports this. For SIP, you get the SIP call-ID for the
3195
     channel driver supports this. For SIP, you get the SIP call-ID for the
3180
     bridged channel which you can store in the CDR with a custom field.
3196
     bridged channel which you can store in the CDR with a custom field.
3181

    
   
3197

   
3182
CLI Changes
3198
CLI Changes
3183
-----------
3199
-----------
3184
  * Added CLI permissions, config file: cli_permissions.conf
3200
  * Added CLI permissions, config file: cli_permissions.conf
3185
     default is to allow all commands for every local user/group.
3201
     default is to allow all commands for every local user/group.
3186
     Also this new feature added three new CLI commands:
3202
     Also this new feature added three new CLI commands:
3187
      - cli check permissions {<username>|@<groupname>|<username>@<groupname>} [<command>]
3203
      - cli check permissions {<username>|@<groupname>|<username>@<groupname>} [<command>]
3188
      - cli reload permissions
3204
      - cli reload permissions
3189
      - cli show permissions
3205
      - cli show permissions
3190
  * New CLI command "core show hint" (usage: core show hint <exten>)
3206
  * New CLI command "core show hint" (usage: core show hint <exten>)
3191
  * New CLI command "core show settings"
3207
  * New CLI command "core show settings"
3192
  * Added 'core show channels count' CLI command.
3208
  * Added 'core show channels count' CLI command.
3193
  * Added the ability to set the core debug and verbose values on a per-file basis.
3209
  * Added the ability to set the core debug and verbose values on a per-file basis.
3194
  * Added 'queue pause member' and 'queue unpause member' CLI commands
3210
  * Added 'queue pause member' and 'queue unpause member' CLI commands
3195
  * Ability to set process limits ("ulimit") without restarting Asterisk
3211
  * Ability to set process limits ("ulimit") without restarting Asterisk
3196
  * Enhanced "agi debug" to print the channel name as a prefix to the debug
3212
  * Enhanced "agi debug" to print the channel name as a prefix to the debug
3197
     output to make debugging on busy systems much easier.
3213
     output to make debugging on busy systems much easier.
3198
  * New CLI commands "dialplan set extenpatternmatching true/false"
3214
  * New CLI commands "dialplan set extenpatternmatching true/false"
3199
  * New CLI command: "core set chanvar" to set a channel variable from the CLI.
3215
  * New CLI command: "core set chanvar" to set a channel variable from the CLI.
3200
  * Added an easy way to execute Asterisk CLI commands at startup.  Any commands
3216
  * Added an easy way to execute Asterisk CLI commands at startup.  Any commands
3201
    listed in the startup_commands section of cli.conf will get executed.
3217
    listed in the startup_commands section of cli.conf will get executed.
3202
  * Added a CLI command, "devstate change", which allows you to set custom device
3218
  * Added a CLI command, "devstate change", which allows you to set custom device
3203
     states from the func_devstate module that provides the DEVICE_STATE() function
3219
     states from the func_devstate module that provides the DEVICE_STATE() function
3204
     and handling of the "Custom:" devices.
3220
     and handling of the "Custom:" devices.
3205
  * New CLI command: "sip show sched" which shows all ast_sched entries for sip,
3221
  * New CLI command: "sip show sched" which shows all ast_sched entries for sip,
3206
    sorted into the different possible callbacks, with the number of entries
3222
    sorted into the different possible callbacks, with the number of entries
3207
    currently scheduled for each. Gives you a feel for how busy the sip channel
3223
    currently scheduled for each. Gives you a feel for how busy the sip channel
3208
    driver is.
3224
    driver is.
3209
  * Added 'skinny show lines verbose' CLI command. This will show the subs for every channel.
3225
  * Added 'skinny show lines verbose' CLI command. This will show the subs for every channel.
3210
  * Cleanup another bunch of CLI commands. Now all modules follow the same schema.
3226
  * Cleanup another bunch of CLI commands. Now all modules follow the same schema.
3211
    (Done by lmadsen, junky and mvanbaak during the devcon 2008)
3227
    (Done by lmadsen, junky and mvanbaak during the devcon 2008)
3212

    
   
3228

   
3213
SIP changes
3229
SIP changes
3214
-----------
3230
-----------
3215
 * Added a new 'faxdetect=yes|no' configuration option to sip.conf.  When this
3231
 * Added a new 'faxdetect=yes|no' configuration option to sip.conf.  When this
3216
    option is enabled, Asterisk will watch for a CNG tone in the incoming audio
3232
    option is enabled, Asterisk will watch for a CNG tone in the incoming audio
3217
    for a received call.  If it is detected, the channel will jump to the
3233
    for a received call.  If it is detected, the channel will jump to the
3218
    'fax' extension in the dialplan.
3234
    'fax' extension in the dialplan.
3219
  * The default SIP useragent= identifier now includes the Asterisk version
3235
  * The default SIP useragent= identifier now includes the Asterisk version
3220
  * A new option, match_auth_username in sip.conf changes the matching of incoming requests.
3236
  * A new option, match_auth_username in sip.conf changes the matching of incoming requests.
3221
     If set, and the incoming request carries authentication info,
3237
     If set, and the incoming request carries authentication info,
3222
     the username to match in the users list is taken from the Digest header
3238
     the username to match in the users list is taken from the Digest header
3223
     rather than from the From: field. This feature is considered experimental.
3239
     rather than from the From: field. This feature is considered experimental.
3224
  * The "musiconhold" and "musicclass" settings in sip.conf are now removed,
3240
  * The "musiconhold" and "musicclass" settings in sip.conf are now removed,
3225
     since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4
3241
     since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4
3226
  * The "localmask" setting was removed in version 1.2 and the reminder about it
3242
  * The "localmask" setting was removed in version 1.2 and the reminder about it
3227
     being removed is now also removed.
3243
     being removed is now also removed.
3228
  * A new option "busylevel" for setting a level of calls where asterisk reports
3244
  * A new option "busylevel" for setting a level of calls where asterisk reports
3229
     a device as busy, to separate it from call-limit. This value is also added
3245
     a device as busy, to separate it from call-limit. This value is also added
3230
     to the SIP_PEER dialplan function.
3246
     to the SIP_PEER dialplan function.
3231
  * A new realtime family called "sipregs" is now supported to store SIP registration
3247
  * A new realtime family called "sipregs" is now supported to store SIP registration
3232
     data. If this family is defined, "sippeers" will be used for configuration and
3248
     data. If this family is defined, "sippeers" will be used for configuration and
3233
     "sipregs" for registrations. If it's not defined, "sippeers" will be used for
3249
     "sipregs" for registrations. If it's not defined, "sippeers" will be used for
3234
     registration data, as before.
3250
     registration data, as before.
3235
  * The SIPPEER function have new options for port address, call and pickup groups
3251
  * The SIPPEER function have new options for port address, call and pickup groups
3236
  * Added support for T.140 realtime text in SIP/RTP
3252
  * Added support for T.140 realtime text in SIP/RTP
3237
  * The "checkmwi" option has been removed from sip.conf, as it is no longer
3253
  * The "checkmwi" option has been removed from sip.conf, as it is no longer
3238
     required due to the restructuring of how MWI is handled.  See the descriptions
3254
     required due to the restructuring of how MWI is handled.  See the descriptions
3239
     in this file of the "pollmailboxes" and "pollfreq" options to voicemail.conf
3255
     in this file of the "pollmailboxes" and "pollfreq" options to voicemail.conf
3240
     for more information.
3256
     for more information.
3241
  * Added rtpdest option to CHANNEL() dialplan function.
3257
  * Added rtpdest option to CHANNEL() dialplan function.
3242
  * Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place.
3258
  * Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place.
3243
  * SIP now adds a header to the CANCEL if the call was answered by another phone
3259
  * SIP now adds a header to the CANCEL if the call was answered by another phone
3244
     in the same dial command, or if the new c option in dial() is used.
3260
     in the same dial command, or if the new c option in dial() is used.
3245
  * The new default is that 100 Trying is not sent on REGISTER attempts as the RFC specifically
3261
  * The new default is that 100 Trying is not sent on REGISTER attempts as the RFC specifically
3246
     states it is not needed. For phones, however, that do require it the "registertrying" option
3262
     states it is not needed. For phones, however, that do require it the "registertrying" option
3247
     has been added so it can be enabled.
3263
     has been added so it can be enabled.
3248
  * A new option called "callcounter" (global/peer/user level) enables call counters needed
3264
  * A new option called "callcounter" (global/peer/user level) enables call counters needed
3249
     for better status reports needed for queues and SIP subscriptions. (Call-Limit was previously
3265
     for better status reports needed for queues and SIP subscriptions. (Call-Limit was previously
3250
     used to enable this functionality).
3266
     used to enable this functionality).
3251
  * New settings for timer T1 and timer B on a global level or per device. This makes it
3267
  * New settings for timer T1 and timer B on a global level or per device. This makes it
3252
     possible to force timeout faster on non-responsive SIP servers. These settings are
3268
     possible to force timeout faster on non-responsive SIP servers. These settings are
3253
     considered advanced, so don't use them unless you have a problem.
3269
     considered advanced, so don't use them unless you have a problem.
3254
  * Added a dial string option to be able to set the To: header in an INVITE to any
3270
  * Added a dial string option to be able to set the To: header in an INVITE to any
3255
     SIP uri.
3271
     SIP uri.
3256
  * Added a new global and per-peer option, qualifyfreq, which allows you to configure
3272
  * Added a new global and per-peer option, qualifyfreq, which allows you to configure
3257
     the qualify frequency.
3273
     the qualify frequency.
3258
  * Added SIP Session Timers support (RFC 4028).  This prevents stuck SIP sessions that
3274
  * Added SIP Session Timers support (RFC 4028).  This prevents stuck SIP sessions that
3259
     were not properly torn down due to network or endpoint failures during an established
3275
     were not properly torn down due to network or endpoint failures during an established
3260
     SIP session.
3276
     SIP session.
3261
  * Added experimental TCP and TLS support for SIP.  See https://wiki.asterisk.org/wiki/x/ygBB
3277
  * Added experimental TCP and TLS support for SIP.  See https://wiki.asterisk.org/wiki/x/ygBB
3262
     and configs/sip.conf.sample for more information on how it is used.
3278
     and configs/sip.conf.sample for more information on how it is used.
3263
  * Added a new configuration option "authfailureevents" that enables manager events when
3279
  * Added a new configuration option "authfailureevents" that enables manager events when
3264
    a peer can't authenticate properly.
3280
    a peer can't authenticate properly.
3265
  * Added DNS manager support to registrations for peers not referencing a peer entry.
3281
  * Added DNS manager support to registrations for peers not referencing a peer entry.
3266

    
   
3282

   
3267
IAX2 changes
3283
IAX2 changes
3268
------------
3284
------------
3269
  * Added the trunkmaxsize configuration option to chan_iax2.
3285
  * Added the trunkmaxsize configuration option to chan_iax2.
3270
  * Added the srvlookup option to iax.conf
3286
  * Added the srvlookup option to iax.conf
3271
  * Added support for OSP.  The token is set and retrieved through the CHANNEL()
3287
  * Added support for OSP.  The token is set and retrieved through the CHANNEL()
3272
     dialplan function.
3288
     dialplan function.
3273

    
   
3289

   
3274
XMPP Google Talk/Jingle changes
3290
XMPP Google Talk/Jingle changes
3275
-------------------------------
3291
-------------------------------
3276
  * Added the bindaddr option to gtalk.conf.
3292
  * Added the bindaddr option to gtalk.conf.
3277

    
   
3293

   
3278
Skinny changes
3294
Skinny changes
3279
-------------
3295
-------------
3280
  * Added skinny show device, skinny show line, and skinny show settings CLI commands.
3296
  * Added skinny show device, skinny show line, and skinny show settings CLI commands.
3281
  * Proper codec support in chan_skinny.
3297
  * Proper codec support in chan_skinny.
3282
  * Added settings for IP and Ethernet QoS requests
3298
  * Added settings for IP and Ethernet QoS requests
3283

    
   
3299

   
3284
MGCP changes
3300
MGCP changes
3285
------------
3301
------------
3286
  * Added separate settings for media QoS in mgcp.conf
3302
  * Added separate settings for media QoS in mgcp.conf
3287

    
   
3303

   
3288
Console Channel Driver changes
3304
Console Channel Driver changes
3289
------------------------------
3305
------------------------------
3290
  * Added experimental support for video send & receive to chan_oss.
3306
  * Added experimental support for video send & receive to chan_oss.
3291
    This requires SDL and ffmpeg/avcodec, plus Video4Linux or X11 to act as
3307
    This requires SDL and ffmpeg/avcodec, plus Video4Linux or X11 to act as
3292
    a video source.
3308
    a video source.
3293

    
   
3309

   
3294
Phone channel changes (chan_phone)
3310
Phone channel changes (chan_phone)
3295
----------------------------------
3311
----------------------------------
3296
  * Added G729 passthrough support to chan_phone for Sigma Designs boards.
3312
  * Added G729 passthrough support to chan_phone for Sigma Designs boards.
3297

    
   
3313

   
3298
H.323 channel Changes
3314
H.323 channel Changes
3299
---------------------
3315
---------------------
3300
  * H323 remote hold notification support added (by NOTIFY message
3316
  * H323 remote hold notification support added (by NOTIFY message
3301
     and/or H.450 supplementary service)
3317
     and/or H.450 supplementary service)
3302

    
   
3318

   
3303
Local channel changes
3319
Local channel changes
3304
---------------------
3320
---------------------
3305
  * The device state functionality in the Local channel driver has been updated
3321
  * The device state functionality in the Local channel driver has been updated
3306
     to indicate INUSE or NOT_INUSE when a Local channel is being used as opposed
3322
     to indicate INUSE or NOT_INUSE when a Local channel is being used as opposed
3307
     to just UNKNOWN if the extension exists.
3323
     to just UNKNOWN if the extension exists.
3308
  * Added jitterbuffer support for chan_local.  This allows you to use the
3324
  * Added jitterbuffer support for chan_local.  This allows you to use the
3309
     generic jitterbuffer on incoming calls going to Asterisk applications.
3325
     generic jitterbuffer on incoming calls going to Asterisk applications.
3310
     For example, this would allow you to use a jitterbuffer for an incoming
3326
     For example, this would allow you to use a jitterbuffer for an incoming
3311
     SIP call to Voicemail by putting a Local channel in the middle.  This
3327
     SIP call to Voicemail by putting a Local channel in the middle.  This
3312
     feature is enabled by using the 'j' option in the Dial string to the Local
3328
     feature is enabled by using the 'j' option in the Dial string to the Local
3313
     channel in conjunction with the existing 'n' option for local channels.
3329
     channel in conjunction with the existing 'n' option for local channels.
3314
  * A 'b' option has been added which causes chan_local to return the actual channel
3330
  * A 'b' option has been added which causes chan_local to return the actual channel
3315
     that is behind it when queried. This is useful for transfer scenarios as the
3331
     that is behind it when queried. This is useful for transfer scenarios as the
3316
     actual channel will be transferred, not the Local channel.
3332
     actual channel will be transferred, not the Local channel.
3317

    
   
3333

   
3318
Agent channel changes
3334
Agent channel changes
3319
----------------------
3335
----------------------
3320
  * The ackcall and endcall options are now supplemented with options acceptdtmf
3336
  * The ackcall and endcall options are now supplemented with options acceptdtmf
3321
    and enddtmf. These allow for the DTMF keypress to be configurable. The options
3337
    and enddtmf. These allow for the DTMF keypress to be configurable. The options
3322
    default to their old hard-coded values ('#' and '*' respectively) so this should
3338
    default to their old hard-coded values ('#' and '*' respectively) so this should
3323
    not break any existing agent installations.
3339
    not break any existing agent installations.
3324

    
   
3340

   
3325
DAHDI channel driver (chan_dahdi) Changes
3341
DAHDI channel driver (chan_dahdi) Changes
3326
----------------------------------------
3342
----------------------------------------
3327
  * SS7 support (via libss7 library)
3343
  * SS7 support (via libss7 library)
3328
  * In India, some carriers transmit CID via dtmf. Some code has been added
3344
  * In India, some carriers transmit CID via dtmf. Some code has been added
3329
     that will handle some situations. The cidstart=polarity_IN choice has been added for
3345
     that will handle some situations. The cidstart=polarity_IN choice has been added for
3330
     those carriers that transmit CID via dtmf after a polarity change.
3346
     those carriers that transmit CID via dtmf after a polarity change.
3331
  * CID matching information is now shown when doing 'dialplan show'.
3347
  * CID matching information is now shown when doing 'dialplan show'.
3332
  * Added dahdi show version CLI command.
3348
  * Added dahdi show version CLI command.
3333
  * Added setvar support to chan_dahdi.conf channel entries.
3349
  * Added setvar support to chan_dahdi.conf channel entries.
3334
  * Added two new options: mwimonitor and mwimonitornotify.  These options allow
3350
  * Added two new options: mwimonitor and mwimonitornotify.  These options allow
3335
     you to enable MWI monitoring on FXO lines.  When the MWI state changes,
3351
     you to enable MWI monitoring on FXO lines.  When the MWI state changes,
3336
     the script specified in the mwimonitornotify option is executed.  An internal
3352
     the script specified in the mwimonitornotify option is executed.  An internal
3337
     event indicating the new state of the mailbox is also generated, so that
3353
     event indicating the new state of the mailbox is also generated, so that
3338
     the normal MWI facilities in Asterisk work as usual.
3354
     the normal MWI facilities in Asterisk work as usual.
3339
  * Added signalling type 'auto', which attempts to use the same signalling type
3355
  * Added signalling type 'auto', which attempts to use the same signalling type
3340
     for a channel as configured in DAHDI. This is primarily designed for analog
3356
     for a channel as configured in DAHDI. This is primarily designed for analog
3341
     ports, but will also work for digital ports that are configured for FXS or FXO
3357
     ports, but will also work for digital ports that are configured for FXS or FXO
3342
     signalling types. This mode is also the default now, so if your chan_dahdi.conf
3358
     signalling types. This mode is also the default now, so if your chan_dahdi.conf
3343
     does not specify signalling for a channel (which is unlikely as the sample
3359
     does not specify signalling for a channel (which is unlikely as the sample
3344
     configuration file has always recommended specifying it for every channel) then
3360
     configuration file has always recommended specifying it for every channel) then
3345
     the 'auto' mode will be used for that channel if possible.
3361
     the 'auto' mode will be used for that channel if possible.
3346
  * Added a 'dahdi set dnd' command to allow CLI control of the Do-Not-Disturb
3362
  * Added a 'dahdi set dnd' command to allow CLI control of the Do-Not-Disturb
3347
     state for a channel; also ensured that the DNDState Manager event is
3363
     state for a channel; also ensured that the DNDState Manager event is
3348
     emitted no matter how the DND state is set or cleared.
3364
     emitted no matter how the DND state is set or cleared.
3349

    
   
3365

   
3350
New Channel Drivers
3366
New Channel Drivers
3351
-------------------
3367
-------------------
3352
  * Added a new channel driver, chan_unistim.  See the Asterisk wiki at
3368
  * Added a new channel driver, chan_unistim.  See the Asterisk wiki at
3353
     https://wiki.asterisk.org/wiki/x/vgsiAQ and configs/unistim.conf.sample
3369
     https://wiki.asterisk.org/wiki/x/vgsiAQ and configs/unistim.conf.sample
3354
     for details.  This new channel driver allows you to use Nortel i2002,
3370
     for details.  This new channel driver allows you to use Nortel i2002,
3355
     i2004, and i2050 phones with Asterisk.
3371
     i2004, and i2050 phones with Asterisk.
3356
  * Added a new channel driver, chan_console, which uses portaudio as a cross
3372
  * Added a new channel driver, chan_console, which uses portaudio as a cross
3357
     platform audio interface.  It was written as a channel driver that would
3373
     platform audio interface.  It was written as a channel driver that would
3358
     work with Mac CoreAudio, but portaudio supports a number of other audio
3374
     work with Mac CoreAudio, but portaudio supports a number of other audio
3359
     interfaces, as well. Note that this channel driver requires v19 or higher
3375
     interfaces, as well. Note that this channel driver requires v19 or higher
3360
     of portaudio; older versions have a different API.
3376
     of portaudio; older versions have a different API.
3361

    
   
3377

   
3362
DUNDi changes
3378
DUNDi changes
3363
-------------
3379
-------------
3364
  * Added the ability to specify arguments to the Dial application when using
3380
  * Added the ability to specify arguments to the Dial application when using
3365
     the DUNDi switch in the dialplan.
3381
     the DUNDi switch in the dialplan.
3366
  * Added the ability to set weights for responses dynamically.  This can be
3382
  * Added the ability to set weights for responses dynamically.  This can be
3367
     done using a global variable or a dialplan function.  Using the SHELL()
3383
     done using a global variable or a dialplan function.  Using the SHELL()
3368
     function would allow you to have an external script set the weight for
3384
     function would allow you to have an external script set the weight for
3369
     each response.
3385
     each response.
3370
  * Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT.  These
3386
  * Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT.  These
3371
     functions will allow you to initiate a DUNDi query from the dialplan,
3387
     functions will allow you to initiate a DUNDi query from the dialplan,
3372
     find out how many results there are, and access each one.
3388
     find out how many results there are, and access each one.
3373
  * Added the ability to specifiy a port for a dundi peer.
3389
  * Added the ability to specifiy a port for a dundi peer.
3374

    
   
3390

   
3375
ENUM changes
3391
ENUM changes
3376
------------
3392
------------
3377
  * Added two new dialplan functions, ENUMQUERY and ENUMRESULT.  These
3393
  * Added two new dialplan functions, ENUMQUERY and ENUMRESULT.  These
3378
     functions will allow you to initiate an ENUM lookup from the dialplan,
3394
     functions will allow you to initiate an ENUM lookup from the dialplan,
3379
     and Asterisk will cache the results.  ENUMRESULT can be used to access
3395
     and Asterisk will cache the results.  ENUMRESULT can be used to access
3380
     the results without doing multiple DNS queries.
3396
     the results without doing multiple DNS queries.
3381

    
   
3397

   
3382
Voicemail Changes
3398
Voicemail Changes
3383
-----------------
3399
-----------------
3384
  * Added the ability to customize which sound files are used for some of the
3400
  * Added the ability to customize which sound files are used for some of the
3385
     prompts within the Voicemail application by changing them in voicemail.conf
3401
     prompts within the Voicemail application by changing them in voicemail.conf
3386
  * Added the ability for the "voicemail show users" CLI command to show users
3402
  * Added the ability for the "voicemail show users" CLI command to show users
3387
     configured by the dynamic realtime configuration method.
3403
     configured by the dynamic realtime configuration method.
3388
  * MWI (Message Waiting Indication) handling has been significantly
3404
  * MWI (Message Waiting Indication) handling has been significantly
3389
     restructured internally to Asterisk.  It is now totally event based
3405
     restructured internally to Asterisk.  It is now totally event based
3390
     instead of polling based.  The voicemail application will notify other
3406
     instead of polling based.  The voicemail application will notify other
3391
     modules that have subscribed to MWI events when something in the mailbox
3407
     modules that have subscribed to MWI events when something in the mailbox
3392
     changes.
3408
     changes.
3393
    This also means that if any other entity outside of Asterisk is changing
3409
    This also means that if any other entity outside of Asterisk is changing
3394
     the contents of mailboxes, then the voicemail application still needs to
3410
     the contents of mailboxes, then the voicemail application still needs to
3395
     poll for changes.  Examples of situations that would require this option
3411
     poll for changes.  Examples of situations that would require this option
3396
     are web interfaces to voicemail or an email client in the case of using
3412
     are web interfaces to voicemail or an email client in the case of using
3397
     IMAP storage.  So, two new options have been added to voicemail.conf
3413
     IMAP storage.  So, two new options have been added to voicemail.conf
3398
     to account for this: "pollmailboxes" and "pollfreq".  See the sample
3414
     to account for this: "pollmailboxes" and "pollfreq".  See the sample
3399
     configuration file for details.
3415
     configuration file for details.
3400
  * Added "tw" language support
3416
  * Added "tw" language support
3401
  * Added support for storage of greetings using an IMAP server
3417
  * Added support for storage of greetings using an IMAP server
3402
  * Added ability to customize forward, reverse, stop, and pause keys for message playback
3418
  * Added ability to customize forward, reverse, stop, and pause keys for message playback
3403
  * SMDI is now enabled in voicemail using the smdienable option.
3419
  * SMDI is now enabled in voicemail using the smdienable option.
3404
  * A "lockmode" option has been added to asterisk.conf to configure the file
3420
  * A "lockmode" option has been added to asterisk.conf to configure the file
3405
     locking method used for voicemail, and potentially other things in the
3421
     locking method used for voicemail, and potentially other things in the
3406
     future.  The default is the old behavior, lockfile.  However, there is a
3422
     future.  The default is the old behavior, lockfile.  However, there is a
3407
     new method, "flock", that uses a different method for situations where the
3423
     new method, "flock", that uses a different method for situations where the
3408
     lockfile will not work, such as on SMB/CIFS mounts.
3424
     lockfile will not work, such as on SMB/CIFS mounts.
3409
  * Added the ability to backup deleted messages, to ease recovery in the case
3425
  * Added the ability to backup deleted messages, to ease recovery in the case
3410
     that a user accidentally deletes a message, and discovers that they need it.
3426
     that a user accidentally deletes a message, and discovers that they need it.
3411
  * Reworked the SMDI interface in Asterisk.  The new way to access SMDI information
3427
  * Reworked the SMDI interface in Asterisk.  The new way to access SMDI information
3412
     is through the new functions, SMDI_MSG_RETRIEVE() and SMDI_MSG().  The file
3428
     is through the new functions, SMDI_MSG_RETRIEVE() and SMDI_MSG().  The file
3413
     smdi.conf can now be configured with options to map SMDI station IDs to Asterisk
3429
     smdi.conf can now be configured with options to map SMDI station IDs to Asterisk
3414
     voicemail boxes.  The SMDI interface can also poll for MWI changes when some
3430
     voicemail boxes.  The SMDI interface can also poll for MWI changes when some
3415
     outside entity is modifying the state of the mailbox (such as IMAP storage or
3431
     outside entity is modifying the state of the mailbox (such as IMAP storage or
3416
     a web interface of some kind).
3432
     a web interface of some kind).
3417
  * Added the support for marking messages as "urgent." There are two methods to accomplish
3433
  * Added the support for marking messages as "urgent." There are two methods to accomplish
3418
     this. One is to pass the 'U' option to VoiceMail(). Another way to mark a message as urgent
3434
     this. One is to pass the 'U' option to VoiceMail(). Another way to mark a message as urgent
3419
     is to specify "review=yes" in voicemail.conf. Doing this will cause allow the user to mark
3435
     is to specify "review=yes" in voicemail.conf. Doing this will cause allow the user to mark
3420
     the message as urgent after he has recorded a voicemail by following the voice instructions.
3436
     the message as urgent after he has recorded a voicemail by following the voice instructions.
3421
    When listening to voicemails using VoiceMailMain urgent messages will be presented before other
3437
    When listening to voicemails using VoiceMailMain urgent messages will be presented before other
3422
     messages
3438
     messages
3423

    
   
3439

   
3424
Queue changes
3440
Queue changes
3425
-------------
3441
-------------
3426
  * Added the general option 'shared_lastcall' so that member's wrapuptime may be
3442
  * Added the general option 'shared_lastcall' so that member's wrapuptime may be
3427
     used across multiple queues.
3443
     used across multiple queues.
3428
  * Added QUEUE_VARIABLES function to set queue variables added setqueuevar and
3444
  * Added QUEUE_VARIABLES function to set queue variables added setqueuevar and
3429
     setqueueentryvar options for each queue, see queues.conf.sample for details.
3445
     setqueueentryvar options for each queue, see queues.conf.sample for details.
3430
  * Added keepstats option to queues.conf which will keep queue
3446
  * Added keepstats option to queues.conf which will keep queue
3431
     statistics during a reload.
3447
     statistics during a reload.
3432
  * setinterfacevar option in queues.conf also now sets a variable
3448
  * setinterfacevar option in queues.conf also now sets a variable
3433
     called MEMBERNAME which contains the member's name.
3449
     called MEMBERNAME which contains the member's name.
3434
  * Added 'Strategy' field to manager event QueueParams which represents
3450
  * Added 'Strategy' field to manager event QueueParams which represents
3435
     the queue strategy in use.
3451
     the queue strategy in use.
3436
  * Added option to run macro when a queue member is connected to a caller,
3452
  * Added option to run macro when a queue member is connected to a caller,
3437
     see queues.conf.sample for details.
3453
     see queues.conf.sample for details.
3438
  * app_queue now has a 'loose' option which is almost exactly like 'strict' except it
3454
  * app_queue now has a 'loose' option which is almost exactly like 'strict' except it
3439
     does not count paused queue members as unavailable.
3455
     does not count paused queue members as unavailable.
3440
  * Added min-announce-frequency option to queues.conf which allows you to control the
3456
  * Added min-announce-frequency option to queues.conf which allows you to control the
3441
     minimum amount of time between queue announcements for use when the caller's queue
3457
     minimum amount of time between queue announcements for use when the caller's queue
3442
     position changes frequently.
3458
     position changes frequently.
3443
  * Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the
3459
  * Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the
3444
     queue log.
3460
     queue log.
3445
  * Added ability for non-realtime queues to have realtime members
3461
  * Added ability for non-realtime queues to have realtime members
3446
  * Added the "linear" strategy to queues.
3462
  * Added the "linear" strategy to queues.
3447
  * Added the "wrandom" strategy to queues.
3463
  * Added the "wrandom" strategy to queues.
3448
  * Added new channel variable QUEUE_MIN_PENALTY
3464
  * Added new channel variable QUEUE_MIN_PENALTY
3449
  * QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY may be adjusted in mid-call by defining
3465
  * QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY may be adjusted in mid-call by defining
3450
     rules in queuerules.conf. See configs/queuerules.conf.sample for details
3466
     rules in queuerules.conf. See configs/queuerules.conf.sample for details
3451
  * Added a new parameter for member definition, called state_interface. This may be
3467
  * Added a new parameter for member definition, called state_interface. This may be
3452
    used so that a member may be called via one interface but have a different interface's
3468
    used so that a member may be called via one interface but have a different interface's
3453
    device state reported.
3469
    device state reported.
3454
  * Added new CLI and Manager commands relating to reloading queues. From the CLI, see
3470
  * Added new CLI and Manager commands relating to reloading queues. From the CLI, see
3455
    "queue reload", "queue reset stats". Also see "manager show command QueueReload" and
3471
    "queue reload", "queue reset stats". Also see "manager show command QueueReload" and
3456
    "manager show command QueueReset."
3472
    "manager show command QueueReset."
3457
  * New configuration option: randomperiodicannounce. If a list of periodic announcements is
3473
  * New configuration option: randomperiodicannounce. If a list of periodic announcements is
3458
    specified by the periodic-announce option, then one will be chosen randomly when it is time
3474
    specified by the periodic-announce option, then one will be chosen randomly when it is time
3459
    to play a periodic announcment
3475
    to play a periodic announcment
3460
  * New configuration options: announce-position now takes two more values in addition to "yes" and
3476
  * New configuration options: announce-position now takes two more values in addition to "yes" and
3461
    "no." Two new options, "limit" and "more," are allowed. These are tied to another option,
3477
    "no." Two new options, "limit" and "more," are allowed. These are tied to another option,
3462
    announce-position-limit. By setting announce-position to "limit" callers will only have their
3478
    announce-position-limit. By setting announce-position to "limit" callers will only have their
3463
    position announced if their position is less than what is specified by announce-position-limit.
3479
    position announced if their position is less than what is specified by announce-position-limit.
3464
    If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
3480
    If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
3465
    will be told that their are more than announce-position-limit callers waiting.
3481
    will be told that their are more than announce-position-limit callers waiting.
3466
  * Two new queue log events have been added. An ADDMEMBER event will be logged
3482
  * Two new queue log events have been added. An ADDMEMBER event will be logged
3467
    when a realtime queue member is added and a REMOVEMEMBER event will be logged
3483
    when a realtime queue member is added and a REMOVEMEMBER event will be logged
3468
    when a realtime queue member is removed. Since there is no calling channel associated
3484
    when a realtime queue member is removed. Since there is no calling channel associated
3469
    with these events, the string "REALTIME" is placed where the channel's unique id
3485
    with these events, the string "REALTIME" is placed where the channel's unique id
3470
    is typically placed.
3486
    is typically placed.
3471
  * The configuration method for the "joinempty" and "leavewhenempty" options has
3487
  * The configuration method for the "joinempty" and "leavewhenempty" options has
3472
    changed to a comma-separated list of methods of determining member availability
3488
    changed to a comma-separated list of methods of determining member availability
3473
    instead of vague terms such as "yes," "loose," "no," and "strict." These old four
3489
    instead of vague terms such as "yes," "loose," "no," and "strict." These old four
3474
    values are still accepted for backwards-compatibility, though.
3490
    values are still accepted for backwards-compatibility, though.
3475
  * The average talktime is now calculated on queues. This information is reported via the
3491
  * The average talktime is now calculated on queues. This information is reported via the
3476
    CLI commands "queue show" and "queues show"; through the AMI events AgentComplete, QueueSummary,
3492
    CLI commands "queue show" and "queues show"; through the AMI events AgentComplete, QueueSummary,
3477
    and QueueParams; and through the channelvariable QUEUETALKTIME if setinterfacevar=yes is set for
3493
    and QueueParams; and through the channelvariable QUEUETALKTIME if setinterfacevar=yes is set for
3478
    the queue.
3494
    the queue.
3479

    
   
3495

   
3480
MeetMe Changes
3496
MeetMe Changes
3481
--------------
3497
--------------
3482
  * The 'o' option to provide an optimization has been removed and its functionality
3498
  * The 'o' option to provide an optimization has been removed and its functionality
3483
     has been enabled by default.
3499
     has been enabled by default.
3484
  * When a conference is created, the UNIQUEID of the channel that caused it to be
3500
  * When a conference is created, the UNIQUEID of the channel that caused it to be
3485
     created is stored.  Then, every channel that joins the conference will have the
3501
     created is stored.  Then, every channel that joins the conference will have the
3486
     MEETMEUNIQUEID channel variable set with this ID.  This can be used to relate
3502
     MEETMEUNIQUEID channel variable set with this ID.  This can be used to relate
3487
     callers that come and go from long standing conferences.
3503
     callers that come and go from long standing conferences.
3488
  * Added a new application, MeetMeChannelAdmin, which is similar to MeetMeAdmin,
3504
  * Added a new application, MeetMeChannelAdmin, which is similar to MeetMeAdmin,
3489
     except it does operations on a channel by name, instead of number in a conference.
3505
     except it does operations on a channel by name, instead of number in a conference.
3490
     This is a very useful feature in combination with the 'X' option to ChanSpy.
3506
     This is a very useful feature in combination with the 'X' option to ChanSpy.
3491
  * Added 'C' option to Meetme which causes a caller to continue in the dialplan
3507
  * Added 'C' option to Meetme which causes a caller to continue in the dialplan
3492
     when kicked out.
3508
     when kicked out.
3493
  * Added new RealTime functionality to provide support for scheduled conferencing.
3509
  * Added new RealTime functionality to provide support for scheduled conferencing.
3494
     This includes optional messages to the caller if they attempt to join before
3510
     This includes optional messages to the caller if they attempt to join before
3495
     the schedule start time, or to allow the caller to join the conference early.
3511
     the schedule start time, or to allow the caller to join the conference early.
3496
     Also included is optional support for limiting the number of callers per
3512
     Also included is optional support for limiting the number of callers per
3497
     RealTime conference.
3513
     RealTime conference.
3498
  * Added the S() and L() options to the MeetMe application.  These are pretty
3514
  * Added the S() and L() options to the MeetMe application.  These are pretty
3499
     much identical to the S() and L() options to Dial().  They let you set
3515
     much identical to the S() and L() options to Dial().  They let you set
3500
     timeouts for the conference, as well as have warning sounds played to
3516
     timeouts for the conference, as well as have warning sounds played to
3501
     let the caller know how much time is left, and when it is running out.
3517
     let the caller know how much time is left, and when it is running out.
3502
  * Added the ability to do "meetme concise" with the "meetme" CLI command.
3518
  * Added the ability to do "meetme concise" with the "meetme" CLI command.
3503
     This extends the concise capabilities of this CLI command to include
3519
     This extends the concise capabilities of this CLI command to include
3504
     listing all conferences, instead of an addition to the other sub commands
3520
     listing all conferences, instead of an addition to the other sub commands
3505
     for the "meetme" command.
3521
     for the "meetme" command.
3506
  * Added the ability to specify the music on hold class used to play into the
3522
  * Added the ability to specify the music on hold class used to play into the
3507
     conference when there is only one member and the M option is used.
3523
     conference when there is only one member and the M option is used.
3508
  * Added MEETME_INFO dialplan function which provides a way to query
3524
  * Added MEETME_INFO dialplan function which provides a way to query
3509
     various properties of a Meetme conference.
3525
     various properties of a Meetme conference.
3510
  * Added new admin features: *81: Roll call, *82: eject all, *83: mute all,
3526
  * Added new admin features: *81: Roll call, *82: eject all, *83: mute all,
3511
     and *84: record in-conf
3527
     and *84: record in-conf
3512

    
   
3528

   
3513
Other Dialplan Application Changes
3529
Other Dialplan Application Changes
3514
----------------------------------
3530
----------------------------------
3515
  * Argument support for Gosub application
3531
  * Argument support for Gosub application
3516
  * From the to-do lists: straighten out the app timeout args:
3532
  * From the to-do lists: straighten out the app timeout args:
3517
     Wait() app now really does 0.3 seconds- was truncating arg to an int.
3533
     Wait() app now really does 0.3 seconds- was truncating arg to an int.
3518
     WaitExten() same as Wait().
3534
     WaitExten() same as Wait().
3519
     Congestion() - Now takes floating pt. argument.
3535
     Congestion() - Now takes floating pt. argument.
3520
     Busy() - now takes floating pt. argument.
3536
     Busy() - now takes floating pt. argument.
3521
     Read() - timeout now can be floating pt.
3537
     Read() - timeout now can be floating pt.
3522
     WaitForRing() now takes floating pt timeout arg.
3538
     WaitForRing() now takes floating pt timeout arg.
3523
     SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
3539
     SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
3524
  * Added 's' option to Page application.
3540
  * Added 's' option to Page application.
3525
  * Added an optional timeout argument to the Page application.
3541
  * Added an optional timeout argument to the Page application.
3526
  * Added 'E', 'V', and 'P' commands to ExternalIVR.
3542
  * Added 'E', 'V', and 'P' commands to ExternalIVR.
3527
  * Added 'o' and 'X' options to Chanspy.
3543
  * Added 'o' and 'X' options to Chanspy.
3528
  * Added a new dialplan application, Bridge, which allows you to bridge the
3544
  * Added a new dialplan application, Bridge, which allows you to bridge the
3529
     calling channel to any other active channel on the system.
3545
     calling channel to any other active channel on the system.
3530
  * Added the ability to specify a music on hold class to play instead of ringing
3546
  * Added the ability to specify a music on hold class to play instead of ringing
3531
     for the SLATrunk application.
3547
     for the SLATrunk application.
3532
  * The Read application no longer exits the dialplan on error.  Instead, it sets
3548
  * The Read application no longer exits the dialplan on error.  Instead, it sets
3533
     READSTATUS to ERROR, which you can catch and handle separately.
3549
     READSTATUS to ERROR, which you can catch and handle separately.
3534
  * Added 'm' option to Directory, which lists out names, 8 at a time, instead
3550
  * Added 'm' option to Directory, which lists out names, 8 at a time, instead
3535
     of asking for verification of each name, one at a time.
3551
     of asking for verification of each name, one at a time.
3536
  * Privacy() no longer uses privacy.conf, as all options are specifyable as
3552
  * Privacy() no longer uses privacy.conf, as all options are specifyable as
3537
     direct options to the app.
3553
     direct options to the app.
3538
  * AMD() has a new "maximum word length" option. "show application AMD" from the CLI
3554
  * AMD() has a new "maximum word length" option. "show application AMD" from the CLI
3539
     for more details
3555
     for more details
3540
  * GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
3556
  * GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
3541
  * The ChannelRedirect application no longer exits the dialplan if the given channel
3557
  * The ChannelRedirect application no longer exits the dialplan if the given channel
3542
     does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
3558
     does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
3543
     or NOCHANNEL if the given channel was not found.
3559
     or NOCHANNEL if the given channel was not found.
3544
  * The silencethreshold setting that was previously configurable in multiple
3560
  * The silencethreshold setting that was previously configurable in multiple
3545
     applications is now settable globally via dsp.conf.
3561
     applications is now settable globally via dsp.conf.
3546

    
   
3562

   
3547
Music On Hold Changes
3563
Music On Hold Changes
3548
---------------------
3564
---------------------
3549
  * A new option, "digit", has been added for music on hold classes in
3565
  * A new option, "digit", has been added for music on hold classes in
3550
     musiconhold.conf.  If this is set for a music on hold class, a caller
3566
     musiconhold.conf.  If this is set for a music on hold class, a caller
3551
     listening to music on hold can press this digit to switch to listening
3567
     listening to music on hold can press this digit to switch to listening
3552
     to this music on hold class.
3568
     to this music on hold class.
3553
  * Support for realtime music on hold has been added.
3569
  * Support for realtime music on hold has been added.
3554
  * In conjunction with the realtime music on hold, a general section has
3570
  * In conjunction with the realtime music on hold, a general section has
3555
     been added to musiconhold.conf, its sole variable is cachertclasses. If this
3571
     been added to musiconhold.conf, its sole variable is cachertclasses. If this
3556
     is set, then music on hold classes found in realtime will be cached in memory.
3572
     is set, then music on hold classes found in realtime will be cached in memory.
3557

    
   
3573

   
3558
AEL Changes
3574
AEL Changes
3559
-----------
3575
-----------
3560
  * AEL upgraded to use the Gosub with Arguments instead
3576
  * AEL upgraded to use the Gosub with Arguments instead
3561
     of Macro application, to hopefully reduce the problems
3577
     of Macro application, to hopefully reduce the problems
3562
     seen with the artificially low stack ceiling that
3578
     seen with the artificially low stack ceiling that
3563
     Macro bumps into. Macros can only call other Macros
3579
     Macro bumps into. Macros can only call other Macros
3564
     to a depth of 7. Tests run using gosub, show depths
3580
     to a depth of 7. Tests run using gosub, show depths
3565
     limited only by virtual memory. A small test demonstrated
3581
     limited only by virtual memory. A small test demonstrated
3566
     recursive call depths of 100,000 without problems.
3582
     recursive call depths of 100,000 without problems.
3567
     -- in addition to this, all apps that allowed a macro
3583
     -- in addition to this, all apps that allowed a macro
3568
     to be called, as in Dial, queues, etc, are now allowing
3584
     to be called, as in Dial, queues, etc, are now allowing
3569
     a gosub call in similar fashion.
3585
     a gosub call in similar fashion.
3570
  * AEL now generates LOCAL(argname) declarations when it
3586
  * AEL now generates LOCAL(argname) declarations when it
3571
     Set()'s the each arg name to the value of ${ARG1}, ${ARG2),
3587
     Set()'s the each arg name to the value of ${ARG1}, ${ARG2),
3572
     etc. That makes the arguments local in scope. The user
3588
     etc. That makes the arguments local in scope. The user
3573
     can define their own local variables in macros, now,
3589
     can define their own local variables in macros, now,
3574
     by saying "local myvar=someval;"  or using Set() in this
3590
     by saying "local myvar=someval;"  or using Set() in this
3575
     fashion:  Set(LOCAL(myvar)=someval);  ("local" is now
3591
     fashion:  Set(LOCAL(myvar)=someval);  ("local" is now
3576
     an AEL keyword).
3592
     an AEL keyword).
3577
  * utils/conf2ael introduced. Will convert an extensions.conf
3593
  * utils/conf2ael introduced. Will convert an extensions.conf
3578
     file into extensions.ael. Very crude and unfinished, but
3594
     file into extensions.ael. Very crude and unfinished, but
3579
     will be improved as time goes by. Should be useful for a
3595
     will be improved as time goes by. Should be useful for a
3580
     first pass at conversion.
3596
     first pass at conversion.
3581
  * aelparse will now read extensions.conf to see if a referenced
3597
  * aelparse will now read extensions.conf to see if a referenced
3582
     macro or context is there before issueing a warning.
3598
     macro or context is there before issueing a warning.
3583
  * AEL parser sets a local channel variable ~~EXTEN~~, to
3599
  * AEL parser sets a local channel variable ~~EXTEN~~, to
3584
    preserve the value of ${EXTEN} thru switch statements.
3600
    preserve the value of ${EXTEN} thru switch statements.
3585
  * New operator in $[...] expressions: the ~~ operator serves
3601
  * New operator in $[...] expressions: the ~~ operator serves
3586
    as a concatenation operator. AT THE MOMENT, it is really only
3602
    as a concatenation operator. AT THE MOMENT, it is really only
3587
    necessary and useful in AEL, especially in if() expressions.
3603
    necessary and useful in AEL, especially in if() expressions.
3588
    Operation: ${a} ~~ ${b|  with force both a and b to strings, strip
3604
    Operation: ${a} ~~ ${b|  with force both a and b to strings, strip
3589
    any enclosing double-quotes, and evaluate to the value of a
3605
    any enclosing double-quotes, and evaluate to the value of a
3590
    concatenated with the value of b.  For example if a is set to
3606
    concatenated with the value of b.  For example if a is set to
3591
    "xyz"  and b has the value "abc", then ${a} ~~ ${b| would
3607
    "xyz"  and b has the value "abc", then ${a} ~~ ${b| would
3592
    evaluate to xyzabc .
3608
    evaluate to xyzabc .
3593

    
   
3609

   
3594

    
   
3610

   
3595
Call Features (res_features) Changes
3611
Call Features (res_features) Changes
3596
------------------------------------
3612
------------------------------------
3597
  * Added the parkedcalltransfers option to features.conf
3613
  * Added the parkedcalltransfers option to features.conf
3598
  * Added parkedcallparking option to control one touch parking w/ parking
3614
  * Added parkedcallparking option to control one touch parking w/ parking
3599
    pickup
3615
    pickup
3600
  * Added parkedcallhangup option to control disconnect feature w/ parking
3616
  * Added parkedcallhangup option to control disconnect feature w/ parking
3601
    pickup
3617
    pickup
3602
  * Added parkedcallrecording option to control one-touch record w/ parking
3618
  * Added parkedcallrecording option to control one-touch record w/ parking
3603
    pickup
3619
    pickup
3604
  * Added parkedcallparking, parkedcallhangup, parkedcallrecording, and
3620
  * Added parkedcallparking, parkedcallhangup, parkedcallrecording, and
3605
    parkedcalltransfers option support for multiple parking lots.
3621
    parkedcalltransfers option support for multiple parking lots.
3606
  * Added BRIDGE_FEATURES variable to set available features for a channel
3622
  * Added BRIDGE_FEATURES variable to set available features for a channel
3607
  * The built-in method for doing attended transfers has been updated to
3623
  * The built-in method for doing attended transfers has been updated to
3608
     include some new options that allow you to have the transferee sent
3624
     include some new options that allow you to have the transferee sent
3609
     back to the person that did the transfer if the transfer is not successful.
3625
     back to the person that did the transfer if the transfer is not successful.
3610
     See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries"
3626
     See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries"
3611
     in features.conf.sample.
3627
     in features.conf.sample.
3612
  * Added support for configuring named groups of custom call features in
3628
  * Added support for configuring named groups of custom call features in
3613
     features.conf.  This means that features can be written a single time, and
3629
     features.conf.  This means that features can be written a single time, and
3614
     then mapped into groups of features for different key mappings or easier
3630
     then mapped into groups of features for different key mappings or easier
3615
     access control.
3631
     access control.
3616
  * Updated the ParkedCall application to allow you to not specify a parking
3632
  * Updated the ParkedCall application to allow you to not specify a parking
3617
     extension.  If you don't specify a parking space to pick up, it will grab
3633
     extension.  If you don't specify a parking space to pick up, it will grab
3618
     the first one available.
3634
     the first one available.
3619
  * Added cli command 'features reload' to reload call features from features.conf
3635
  * Added cli command 'features reload' to reload call features from features.conf
3620
  * Moved into core asterisk binary.
3636
  * Moved into core asterisk binary.
3621
  * Changed the default setting for featuredigittimeout to 2000 ms from 500 ms.
3637
  * Changed the default setting for featuredigittimeout to 2000 ms from 500 ms.
3622
  * Added the ability for custom parking lots to be configured with their own
3638
  * Added the ability for custom parking lots to be configured with their own
3623
    parking extension with the parkext option.
3639
    parking extension with the parkext option.
3624

    
   
3640

   
3625
Language Support Changes
3641
Language Support Changes
3626
------------------------
3642
------------------------
3627
  * Brazilian Portuguese (pt-BR) in VM, and say.c was added
3643
  * Brazilian Portuguese (pt-BR) in VM, and say.c was added
3628
  * Added support for the Hungarian language for saying numbers, dates, and times.
3644
  * Added support for the Hungarian language for saying numbers, dates, and times.
3629

    
   
3645

   
3630
AGI Changes
3646
AGI Changes
3631
-----------
3647
-----------
3632
  * Added SPEECH commands for speech recognition. A complete listing can be found
3648
  * Added SPEECH commands for speech recognition. A complete listing can be found
3633
    using agi show.
3649
    using agi show.
3634
  * If app_stack is loaded, GOSUB is a native AGI command that may be used to
3650
  * If app_stack is loaded, GOSUB is a native AGI command that may be used to
3635
    invoke subroutines in the dialplan.  Note that calling EXEC with Gosub
3651
    invoke subroutines in the dialplan.  Note that calling EXEC with Gosub
3636
    does not behave as expected; the native command needs to be used, instead.
3652
    does not behave as expected; the native command needs to be used, instead.
3637
  * Added the ability to perform SRV lookups on fast AGI calls. To use this
3653
  * Added the ability to perform SRV lookups on fast AGI calls. To use this
3638
    feature, simply use hagi: instead of agi: as the protocol portion
3654
    feature, simply use hagi: instead of agi: as the protocol portion
3639
    of the URI parameter to the AGI function call in your dial plan. Also note
3655
    of the URI parameter to the AGI function call in your dial plan. Also note
3640
    that specifying a port number in the AGI URI will disable SRV lookups,
3656
    that specifying a port number in the AGI URI will disable SRV lookups,
3641
    even if you use the hagi: protocol.
3657
    even if you use the hagi: protocol.
3642
  * No longer support MSG_OOB flag on HANGUP.
3658
  * No longer support MSG_OOB flag on HANGUP.
3643

    
   
3659

   
3644
Logger changes
3660
Logger changes
3645
--------------
3661
--------------
3646
  * Added rotatestrategy option to logger.conf, along with two new options:
3662
  * Added rotatestrategy option to logger.conf, along with two new options:
3647
     "timestamp" which will use the time to name the logger files instead of
3663
     "timestamp" which will use the time to name the logger files instead of
3648
     sequence number; and "rotate", which rotates the names of the log files,
3664
     sequence number; and "rotate", which rotates the names of the log files,
3649
     similar to the way syslog rotates files.
3665
     similar to the way syslog rotates files.
3650
  * Added exec_after_rotate option to logger.conf, which allows a system
3666
  * Added exec_after_rotate option to logger.conf, which allows a system
3651
     command to be run after rotation.  This is primarily useful with
3667
     command to be run after rotation.  This is primarily useful with
3652
     rotatestrategy=rotate, to allow a limit on the number of log files kept
3668
     rotatestrategy=rotate, to allow a limit on the number of log files kept
3653
     and to ensure that the oldest log file gets deleted.
3669
     and to ensure that the oldest log file gets deleted.
3654
  * Added realtime support for the queue log
3670
  * Added realtime support for the queue log
3655

    
   
3671

   
3656
Call Detail Records
3672
Call Detail Records
3657
-------------------
3673
-------------------
3658
  * The cdr_manager module has a [mappings] feature, like cdr_custom,
3674
  * The cdr_manager module has a [mappings] feature, like cdr_custom,
3659
    to add fields to the manager event from the CDR variables.
3675
    to add fields to the manager event from the CDR variables.
3660
  * Added cdr_adaptive_odbc, a new module that adapts to the structure of your
3676
  * Added cdr_adaptive_odbc, a new module that adapts to the structure of your
3661
     backend database CDR table.  Specifically, additional, non-standard
3677
     backend database CDR table.  Specifically, additional, non-standard
3662
     columns are supported, merely by setting the corresponding CDR variable in
3678
     columns are supported, merely by setting the corresponding CDR variable in
3663
     your dialplan.  In addition, you may alias any column to another name (for
3679
     your dialplan.  In addition, you may alias any column to another name (for
3664
     example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
3680
     example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
3665
     simply "alias src => ANI" in the configuration file).  Records may be
3681
     simply "alias src => ANI" in the configuration file).  Records may be
3666
     posted to more than one backend, simply by specifying multiple categories
3682
     posted to more than one backend, simply by specifying multiple categories
3667
     in the configuration file.  And finally, you may filter which CDRs get
3683
     in the configuration file.  And finally, you may filter which CDRs get
3668
     posted to each backend, by specifying a filter (which the record must
3684
     posted to each backend, by specifying a filter (which the record must
3669
     match) for the particular category.  Filters are additive (meaning all
3685
     match) for the particular category.  Filters are additive (meaning all
3670
     rules must match to post that CDR).
3686
     rules must match to post that CDR).
3671
  * The Postgres CDR module now supports some features of the cdr_adaptive_odbc
3687
  * The Postgres CDR module now supports some features of the cdr_adaptive_odbc
3672
     module.  Specifically, you may add additional columns into the table and
3688
     module.  Specifically, you may add additional columns into the table and
3673
     they will be set, if you set the corresponding CDR variable name.  Also,
3689
     they will be set, if you set the corresponding CDR variable name.  Also,
3674
     if you omit columns in your database table, they will be silently skipped
3690
     if you omit columns in your database table, they will be silently skipped
3675
     (but a record will still be inserted, based on what columns remain).  Note
3691
     (but a record will still be inserted, based on what columns remain).  Note
3676
     that the other two features from cdr_adaptive_odbc (alias and filter) are
3692
     that the other two features from cdr_adaptive_odbc (alias and filter) are
3677
     not currently supported.
3693
     not currently supported.
3678
  * The ResetCDR application now has an 'e' option that re-enables a CDR if it
3694
  * The ResetCDR application now has an 'e' option that re-enables a CDR if it
3679
     has been disabled using the NoCDR application.
3695
     has been disabled using the NoCDR application.
3680

    
   
3696

   
3681
Miscellaneous New Modules
3697
Miscellaneous New Modules
3682
-------------------------
3698
-------------------------
3683
  * Added a new CDR module, cdr_sqlite3_custom.
3699
  * Added a new CDR module, cdr_sqlite3_custom.
3684
  * Added a new realtime configuration module, res_config_sqlite
3700
  * Added a new realtime configuration module, res_config_sqlite
3685
  * Added a new codec translation module, codec_resample, which re-samples
3701
  * Added a new codec translation module, codec_resample, which re-samples
3686
     signed linear audio between 8 kHz and 16 kHz to help support wideband
3702
     signed linear audio between 8 kHz and 16 kHz to help support wideband
3687
     codecs.
3703
     codecs.
3688
  * Added a new module, res_phoneprov, which allows auto-provisioning of phones
3704
  * Added a new module, res_phoneprov, which allows auto-provisioning of phones
3689
     based on configuration templates that use Asterisk dialplan function and
3705
     based on configuration templates that use Asterisk dialplan function and
3690
     variable substitution.  It should be possible to create phone profiles and
3706
     variable substitution.  It should be possible to create phone profiles and
3691
     templates that work for the majority of phones provisioned over http. It
3707
     templates that work for the majority of phones provisioned over http. It
3692
     is currently only intended to provision a single user account per phone.
3708
     is currently only intended to provision a single user account per phone.
3693
     An example profile and set of templates for Polycom phones is provided.
3709
     An example profile and set of templates for Polycom phones is provided.
3694
     NOTE: Polycom firmware is not included, but should be placed in
3710
     NOTE: Polycom firmware is not included, but should be placed in
3695
     AST_DATA_DIR/phoneprov/configs to match up with the included templates.
3711
     AST_DATA_DIR/phoneprov/configs to match up with the included templates.
3696
  * Added a new module, app_jack, which provides interfaces to JACK, the Jack
3712
  * Added a new module, app_jack, which provides interfaces to JACK, the Jack
3697
     Audio Connection Kit (http://www.jackaudio.org/).  Two interfaces are
3713
     Audio Connection Kit (http://www.jackaudio.org/).  Two interfaces are
3698
     provided; there is a JACK() application, and a JACK_HOOK() function.  Both
3714
     provided; there is a JACK() application, and a JACK_HOOK() function.  Both
3699
     interfaces create an input and output JACK port.  The application makes
3715
     interfaces create an input and output JACK port.  The application makes
3700
     these ports the endpoint of the call.  The audio coming from the channel
3716
     these ports the endpoint of the call.  The audio coming from the channel
3701
     goes out the output port and whatever comes back in on the input port is
3717
     goes out the output port and whatever comes back in on the input port is
3702
     what gets sent to the channel.  The JACK_HOOK() function turns on a JACK
3718
     what gets sent to the channel.  The JACK_HOOK() function turns on a JACK
3703
     audiohook on the channel.  This lets you run the audio coming from a
3719
     audiohook on the channel.  This lets you run the audio coming from a
3704
     channel through JACK, and whatever comes back in is what gets forwarded
3720
     channel through JACK, and whatever comes back in is what gets forwarded
3705
     on as the channel's audio.  This is very useful for building custom
3721
     on as the channel's audio.  This is very useful for building custom
3706
     vocoders or doing recording or analysis of the channel's audio in another
3722
     vocoders or doing recording or analysis of the channel's audio in another
3707
     application.
3723
     application.
3708
  * Added a new module, res_config_curl, which permits using a HTTP POST url
3724
  * Added a new module, res_config_curl, which permits using a HTTP POST url
3709
     to retrieve, create, update, and delete realtime information from a remote
3725
     to retrieve, create, update, and delete realtime information from a remote
3710
     web server.  Note that this module requires func_curl.so to be loaded for
3726
     web server.  Note that this module requires func_curl.so to be loaded for
3711
     backend functionality.
3727
     backend functionality.
3712
  * Added a new module, res_config_ldap, which permits the use of an LDAP
3728
  * Added a new module, res_config_ldap, which permits the use of an LDAP
3713
     server for realtime data access.
3729
     server for realtime data access.
3714
  * Added support for writing and running your dialplan in lua using the pbx_lua
3730
  * Added support for writing and running your dialplan in lua using the pbx_lua
3715
     module.  See configs/extensions.lua.sample for examples of how to do this.
3731
     module.  See configs/extensions.lua.sample for examples of how to do this.
3716

    
   
3732

   
3717
Miscellaneous
3733
Miscellaneous
3718
-------------
3734
-------------
3719
  * Ability to use libcap to set high ToS bits when non-root
3735
  * Ability to use libcap to set high ToS bits when non-root
3720
     on Linux. If configure is unable to find libcap then you
3736
     on Linux. If configure is unable to find libcap then you
3721
     can use --with-cap to specify the path.
3737
     can use --with-cap to specify the path.
3722
  * Added maxfiles option to options section of asterisk.conf which allows you to specify
3738
  * Added maxfiles option to options section of asterisk.conf which allows you to specify
3723
     what Asterisk should set as the maximum number of open files when it loads.
3739
     what Asterisk should set as the maximum number of open files when it loads.
3724
  * Added the jittertargetextra configuration option.
3740
  * Added the jittertargetextra configuration option.
3725
  * Added support for setting the CoS for VLAN traffic (802.1p).  See the sample
3741
  * Added support for setting the CoS for VLAN traffic (802.1p).  See the sample
3726
     configuration files for the IP channel drivers.  The new option is "cos".
3742
     configuration files for the IP channel drivers.  The new option is "cos".
3727
     This information is also documented on the Asterisk wiki at
3743
     This information is also documented on the Asterisk wiki at
3728
     https://wiki.asterisk.org/wiki/x/EYBG
3744
     https://wiki.asterisk.org/wiki/x/EYBG
3729
  * When originating a call using AMI or pbx_spool that fails the reason for failure
3745
  * When originating a call using AMI or pbx_spool that fails the reason for failure
3730
     will now be available in the failed extension using the REASON dialplan variable.
3746
     will now be available in the failed extension using the REASON dialplan variable.
3731
  * Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
3747
  * Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
3732
     It allows you to configure a prefix for auto-monitor recordings.
3748
     It allows you to configure a prefix for auto-monitor recordings.
3733
  * A new extension pattern matching algorithm, based on a trie, is introduced
3749
  * A new extension pattern matching algorithm, based on a trie, is introduced
3734
     here, that could noticeably speed up mid-sized to large dialplans.
3750
     here, that could noticeably speed up mid-sized to large dialplans.
3735
     It is NOT used by default, as duplicating the behaviour of the old pattern
3751
     It is NOT used by default, as duplicating the behaviour of the old pattern
3736
     matcher is still under development. A config file option, in extensions.conf,
3752
     matcher is still under development. A config file option, in extensions.conf,
3737
     in the [general] section, called "extenpatternmatchingnew", is by default
3753
     in the [general] section, called "extenpatternmatchingnew", is by default
3738
     set to false; setting that to true will force the use of the new algorithm.
3754
     set to false; setting that to true will force the use of the new algorithm.
3739
     Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can
3755
     Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can
3740
     be used to switch the algorithms at run time.
3756
     be used to switch the algorithms at run time.
3741
  * A new option when starting a remote asterisk (rasterisk, asterisk -r) for
3757
  * A new option when starting a remote asterisk (rasterisk, asterisk -r) for
3742
     specifying which socket to use to connect to the running Asterisk daemon
3758
     specifying which socket to use to connect to the running Asterisk daemon
3743
     (-s)
3759
     (-s)
3744
  * Performance enhancements to the sched facility, which is used in
3760
  * Performance enhancements to the sched facility, which is used in
3745
    the channel drivers, etc. Added hashtabs and doubly-linked lists
3761
    the channel drivers, etc. Added hashtabs and doubly-linked lists
3746
    to speed up deletion; start at the beginning or end of list to
3762
    to speed up deletion; start at the beginning or end of list to
3747
    speed up insertion.
3763
    speed up insertion.
3748
  * Added Doubly-linked lists after the fashion of linkedlists.h. They are in
3764
  * Added Doubly-linked lists after the fashion of linkedlists.h. They are in
3749
    dlinkedlists.h. Doubly-linked lists feature fast deletion times.
3765
    dlinkedlists.h. Doubly-linked lists feature fast deletion times.
3750
    Added regression tests to the tests/ dir, also.
3766
    Added regression tests to the tests/ dir, also.
3751
  * Added a refcount trace feature to astobj2 for those trying to balance
3767
  * Added a refcount trace feature to astobj2 for those trying to balance
3752
    object creation, deletion; work, play; space and time. See the
3768
    object creation, deletion; work, play; space and time. See the
3753
    notes in astobj2.h. Also, see utils/refcounter as well, as a
3769
    notes in astobj2.h. Also, see utils/refcounter as well, as a
3754
    quick way to find unbalanced refcounts in what could be a sea
3770
    quick way to find unbalanced refcounts in what could be a sea
3755
    of objects that were balanced.
3771
    of objects that were balanced.
3756
  * Added logging to 'make update' command.  See update.log
3772
  * Added logging to 'make update' command.  See update.log
3757
  * Added strictrtp option to rtp.conf. If enabled this will drop RTP packets that
3773
  * Added strictrtp option to rtp.conf. If enabled this will drop RTP packets that
3758
     do not come from the remote party.
3774
     do not come from the remote party.
3759
  * Added the 'n' option to the SpeechBackground application to tell it to not
3775
  * Added the 'n' option to the SpeechBackground application to tell it to not
3760
     answer the channel if it has not already been answered.
3776
     answer the channel if it has not already been answered.
3761
  * Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
3777
  * Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
3762
     turned on, via the CHANNEL(trace) dialplan function.  Could be useful for
3778
     turned on, via the CHANNEL(trace) dialplan function.  Could be useful for
3763
     dialplan debugging.
3779
     dialplan debugging.
3764
  * iLBC source code no longer included (see UPGRADE.txt for details)
3780
  * iLBC source code no longer included (see UPGRADE.txt for details)
3765
  * If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if
3781
  * If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if
3766
     deadlock is detected, a backtrace of the stack which led to the lock calls
3782
     deadlock is detected, a backtrace of the stack which led to the lock calls
3767
     will be output to the CLI.
3783
     will be output to the CLI.
3768
  * If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
3784
  * If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
3769
     the "core show locks" CLI command will give lock information output as well
3785
     the "core show locks" CLI command will give lock information output as well
3770
     as a backtrace of the stack which led to the lock calls.
3786
     as a backtrace of the stack which led to the lock calls.
3771
  * users.conf now sports an optional alternateexts property, which permits
3787
  * users.conf now sports an optional alternateexts property, which permits
3772
    allocation of additional extensions which will reach the specified user.
3788
    allocation of additional extensions which will reach the specified user.
3773
  * A new option for the configure script, --enable-internal-poll, has been added
3789
  * A new option for the configure script, --enable-internal-poll, has been added
3774
    for use with systems which may have a buggy implementation of the poll system
3790
    for use with systems which may have a buggy implementation of the poll system
3775
    call. If you notice odd behavior such as the CLI being unresponsive on remote
3791
    call. If you notice odd behavior such as the CLI being unresponsive on remote
3776
    consoles, you may want to try using this option. This option is enabled by default
3792
    consoles, you may want to try using this option. This option is enabled by default
3777
    on Darwin systems since it is known that the Darwin poll() implementation has
3793
    on Darwin systems since it is known that the Darwin poll() implementation has
3778
    odd issues.
3794
    odd issues.
3779

    
   
3795

   
3780
Timer Changes
3796
Timer Changes
3781
--------------------
3797
--------------------
3782
* In addition to timing from DAHDI, there is a new timing module called
3798
* In addition to timing from DAHDI, there is a new timing module called
3783
  res_timing_timerfd. In order to use this, you must be running Linux with
3799
  res_timing_timerfd. In order to use this, you must be running Linux with
3784
  a kernel version 2.6.25 or newer as well as glibc 2.8 or newer. The configure
3800
  a kernel version 2.6.25 or newer as well as glibc 2.8 or newer. The configure
3785
  script will be able to tell if you have the requirements. From menuselect, select
3801
  script will be able to tell if you have the requirements. From menuselect, select
3786
  res_timing_timerfd from the Resource Modules menu.
3802
  res_timing_timerfd from the Resource Modules menu.
/branches/12/UPGRADE.txt
Revision 404264 New Change
 
/branches/12/apps/app_voicemail.c
Revision 404264 New Change
 
/branches/12/channels/chan_dahdi.h
Revision 404264 New Change
 
/branches/12/channels/chan_dahdi.c
Revision 404264 New Change
 
/branches/12/channels/chan_h323.c
Revision 404264 New Change
 
/branches/12/channels/chan_iax2.c
Revision 404264 New Change
 
/branches/12/channels/chan_mgcp.c
Revision 404264 New Change
 
/branches/12/channels/chan_sip.c
Revision 404264 New Change
 
/branches/12/channels/chan_skinny.c
Revision 404264 New Change
 
/branches/12/channels/chan_unistim.c
Revision 404264 New Change
 
/branches/12/channels/sig_pri.h
Revision 404264 New Change
 
/branches/12/channels/sig_pri.c
Revision 404264 New Change
 
/branches/12/channels/h323/chan_h323.h
Revision 404264 New Change
 
/branches/12/channels/sip/include/sip.h
Revision 404264 New Change
 
/branches/12/configs/chan_dahdi.conf.sample
Revision 404264 New Change
 
/branches/12/configs/iax.conf.sample
Revision 404264 New Change
 
/branches/12/configs/sip.conf.sample
Revision 404264 New Change
 
/branches/12/configs/skinny.conf.sample
Revision 404264 New Change
 
/branches/12/configs/voicemail.conf.sample
Revision 404264 New Change
 
/branches/12/funcs/func_vmcount.c
Revision 404264 New Change
 
/branches/12/include/asterisk/app.h
Revision 404264 New Change
 
/branches/12/main/app.c
Revision 404264 New Change
 
/branches/12/res/res_jabber.c
Revision 404264 New Change
 
/branches/12/res/res_xmpp.c
Revision 404264 New Change
 
  1. /branches/12/CHANGES: Loading...
  2. /branches/12/UPGRADE.txt: Loading...
  3. /branches/12/apps/app_voicemail.c: Loading...
  4. /branches/12/channels/chan_dahdi.h: Loading...
  5. /branches/12/channels/chan_dahdi.c: Loading...
  6. /branches/12/channels/chan_h323.c: Loading...
  7. /branches/12/channels/chan_iax2.c: Loading...
  8. /branches/12/channels/chan_mgcp.c: Loading...
  9. /branches/12/channels/chan_sip.c: Loading...
  10. /branches/12/channels/chan_skinny.c: Loading...
  11. /branches/12/channels/chan_unistim.c: Loading...
  12. /branches/12/channels/sig_pri.h: Loading...
  13. /branches/12/channels/sig_pri.c: Loading...
  14. /branches/12/channels/h323/chan_h323.h: Loading...
  15. /branches/12/channels/sip/include/sip.h: Loading...
  16. /branches/12/configs/chan_dahdi.conf.sample: Loading...
  17. /branches/12/configs/iax.conf.sample: Loading...
  18. /branches/12/configs/sip.conf.sample: Loading...
  19. /branches/12/configs/skinny.conf.sample: Loading...
  20. /branches/12/configs/voicemail.conf.sample: Loading...
  21. /branches/12/funcs/func_vmcount.c: Loading...
  22. /branches/12/include/asterisk/app.h: Loading...
  23. /branches/12/main/app.c: Loading...
  24. /branches/12/res/res_jabber.c: Loading...
  25. /branches/12/res/res_xmpp.c: Loading...

https://reviewboard.asterisk.org/ runs on a server provided by Digium, Inc. and uses bandwidth donated to the open source Asterisk community by API Digital Communications in Huntsville, AL USA.
Please report problems with this site to asteriskteam@digium.com.