Review Board 1.7.16


app_queue: support a 'logged in and available' hint on queue

Review Request #2121 - Created Sept. 18, 2012 and submitted

Alec Davis
trunk
Reviewers
asterisk-dev
Asterisk
Receptionist will love this.

The ability to see via a BLF that some members are logged in and free to take the calls. "I'll just put you through now", with less chance that the call goes to voicemail or what ever dialplan logic then followed.


When all agents are logged out, the BLF goes INUSE.
When agents are logged in, but are all busy, the BLF goes INUSE.
   Like any BLF, if INUSE the call may go to Voicemail, at least the Operator can warn the caller.

When an agent is free to take a call the BLF goes NOT_IN_USE, IE. can put a call through.
 


Related to https://reviewboard.asterisk.org/r/1619/

I did think about combining the queue ringing hint from review 1619 but it's a different function, and only required by co-workers that may be able to help.

Many other divisions want to be able to drop a call into a queue, with the prior knowledge that it should be answered (NOTINUSE), or will possibly go to voicemail (INUSE).
In use on our headoffice production system.

Below is a hint for our itg_queue

exten => 8501,hint,Queue:itg_queue_avail

Note: '_avail' is added to the queuename

Changes between revision 2 and 3

1 2 3
1 2 3

  1. trunk/CHANGES: Loading...
  2. trunk/apps/app_queue.c: Loading...
  3. trunk/configs/extensions.conf.sample: Loading...
trunk/CHANGES
Revision 373162 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
--- Functionality changes from Asterisk 11 to Asterisk 12 --------------------
11
--- Functionality changes from Asterisk 11 to Asterisk 12 --------------------
12
------------------------------------------------------------------------------
12
------------------------------------------------------------------------------
13

    
   
13

   
14
AMI (Asterisk Manager Interface)
14
AMI (Asterisk Manager Interface)
15
------------------
15
------------------
16
 * The SIPqualifypeer action now acknowledges the request once it has established
16
 * The SIPqualifypeer action now acknowledges the request once it has established
17
   that the request is against a known peer. It also issues a new event,
17
   that the request is against a known peer. It also issues a new event,
18
   'SIPqualifypeerdone', once the qualify action has been completed.
18
   'SIPqualifypeerdone', once the qualify action has been completed.
19

    
   
19

   
20
Logging
20
Logging
21
-------------------
21
-------------------
22
 * When performing queue pause/unpause on an interface without specifying an
22
 * When performing queue pause/unpause on an interface without specifying an
23
   individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
23
   individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
24
   least one member of any queue exists for that interface.
24
   least one member of any queue exists for that interface.
25

    
   
25

   

    
   
26
Queue

    
   
27
-------------------

    
   
28
 * Add queue available hint.  exten => 8501,hint,Queue:markq_avail

    
   
29
   Note: the suffix '_avail' after the queuename.

    
   
30
   Reports INUSE for no logged in agents or agents are busy.

    
   
31
   Reports NOT_INUSE when an agent is free.

    
   
32

   
26
------------------------------------------------------------------------------
33
------------------------------------------------------------------------------
27
--- Functionality changes from Asterisk 10 to Asterisk 11 --------------------
34
--- Functionality changes from Asterisk 10 to Asterisk 11 --------------------
28
------------------------------------------------------------------------------
35
------------------------------------------------------------------------------
29

    
   
36

   
30
Build System
37
Build System
31
-------------------
38
-------------------
32
 * The Asterisk build system will now build and install a shared library
39
 * The Asterisk build system will now build and install a shared library
33
   (libasteriskssl.so) used to wrap various initialization and shutdown functions
40
   (libasteriskssl.so) used to wrap various initialization and shutdown functions
34
   from the libssl and libcrypto libraries provided by OpenSSL. This is done so
41
   from the libssl and libcrypto libraries provided by OpenSSL. This is done so
35
   that Asterisk can ensure that these functions do *not* get called by any
42
   that Asterisk can ensure that these functions do *not* get called by any
36
   modules that are loaded into Asterisk, since they should only be called once
43
   modules that are loaded into Asterisk, since they should only be called once
37
   in any single process. If desired, this feature can be disabled by supplying
44
   in any single process. If desired, this feature can be disabled by supplying
38
   the "--disable-asteriskssl" option to the configure script.
45
   the "--disable-asteriskssl" option to the configure script.
39

    
   
46

   
40
 * A new make target, 'full', has been added to the Makefile.  This performs
47
 * A new make target, 'full', has been added to the Makefile.  This performs
41
   the same compilation actions as make all, but will also scan the entirety of
48
   the same compilation actions as make all, but will also scan the entirety of
42
   each source file for documentation.  This option is needed to generate AMI
49
   each source file for documentation.  This option is needed to generate AMI
43
   event documentation.  Note that your system must have Python in order for
50
   event documentation.  Note that your system must have Python in order for
44
   this make target to succeed.
51
   this make target to succeed.
45

    
   
52

   
46
 * The optimization portion of the build system has been reworked to avoid
53
 * The optimization portion of the build system has been reworked to avoid
47
   broken builds on certain architectures.  All architecture-specific
54
   broken builds on certain architectures.  All architecture-specific
48
   optimization has been removed in favor of using -march=native to allow gcc
55
   optimization has been removed in favor of using -march=native to allow gcc
49
   to detect the environment in which it is running when possible.  This can
56
   to detect the environment in which it is running when possible.  This can
50
   be toggled as BUILD_NATIVE under "Compiler Flags" in menuselect.
57
   be toggled as BUILD_NATIVE under "Compiler Flags" in menuselect.
51

    
   
58

   
52
 * BUILD_CFLAGS and BUILD_LDFLAGS can now be passed to menuselect, e.g.,
59
 * BUILD_CFLAGS and BUILD_LDFLAGS can now be passed to menuselect, e.g.,
53
   make BUILD_CFLAGS="whatever" BUILD_LDFLAGS="whatever"
60
   make BUILD_CFLAGS="whatever" BUILD_LDFLAGS="whatever"
54

    
   
61

   
55
 * Remove "asterisk/version.h" in favor of "asterisk/ast_version.h".  If you
62
 * Remove "asterisk/version.h" in favor of "asterisk/ast_version.h".  If you
56
   previously parsed the header file to obtain the version of Asterisk, you
63
   previously parsed the header file to obtain the version of Asterisk, you
57
   will now have to go through Asterisk to get the version information.
64
   will now have to go through Asterisk to get the version information.
58

    
   
65

   
59

    
   
66

   
60
Applications
67
Applications
61
-------------------
68
-------------------
62

    
   
69

   
63
Bridge
70
Bridge
64
-------------------
71
-------------------
65
 * Added 'F()' option. Similar to the dial option, this can be supplied with
72
 * Added 'F()' option. Similar to the dial option, this can be supplied with
66
   arguments indicating where the callee should go after the caller is hung up,
73
   arguments indicating where the callee should go after the caller is hung up,
67
   or without options specified, the priority after the Queue will be used.
74
   or without options specified, the priority after the Queue will be used.
68

    
   
75

   
69

    
   
76

   
70
ConfBridge
77
ConfBridge
71
-------------------
78
-------------------
72
 * Added menu action admin_toggle_mute_participants.  This will mute / unmute
79
 * Added menu action admin_toggle_mute_participants.  This will mute / unmute
73
   all non-admin participants on a conference.  The confbridge configuration
80
   all non-admin participants on a conference.  The confbridge configuration
74
   file also allows for the default sounds played to all conference users when
81
   file also allows for the default sounds played to all conference users when
75
   this occurs to be overriden using sound_participants_unmuted and
82
   this occurs to be overriden using sound_participants_unmuted and
76
   sound_participants_muted.
83
   sound_participants_muted.
77

    
   
84

   
78
 * Added menu action participant_count.  This will playback the number of
85
 * Added menu action participant_count.  This will playback the number of
79
   current participants in a conference.
86
   current participants in a conference.
80

    
   
87

   
81
 * Added announcement configuration option to user profile. If set the sound
88
 * Added announcement configuration option to user profile. If set the sound
82
   file will be played to the user, and only the user, upon joining the
89
   file will be played to the user, and only the user, upon joining the
83
   conference bridge.
90
   conference bridge.
84

    
   
91

   
85

    
   
92

   
86
Dial
93
Dial
87
-------------------
94
-------------------
88
 * Added 'b' and 'B' options to Dial that execute a Gosub on callee and caller
95
 * Added 'b' and 'B' options to Dial that execute a Gosub on callee and caller
89
   channels respectively before the callee channels are called.
96
   channels respectively before the callee channels are called.
90

    
   
97

   
91

    
   
98

   
92
ExternalIVR
99
ExternalIVR
93
-------------------
100
-------------------
94
 * Added support for IPv6.
101
 * Added support for IPv6.
95

    
   
102

   
96
 * Add interrupt ('I') command to ExternalIVR.  Sending this command from an
103
 * Add interrupt ('I') command to ExternalIVR.  Sending this command from an
97
   external process will cause the current playlist to be cleared, including
104
   external process will cause the current playlist to be cleared, including
98
   stopping any audio file that is currently playing.  This is useful when you
105
   stopping any audio file that is currently playing.  This is useful when you
99
   want to interrupt audio playback only when specific DTMF is entered by the
106
   want to interrupt audio playback only when specific DTMF is entered by the
100
   caller.
107
   caller.
101

    
   
108

   
102

    
   
109

   
103
FollowMe
110
FollowMe
104
-------------------
111
-------------------
105
 * A new option, 'I' has been added to app_followme. By setting this option,
112
 * A new option, 'I' has been added to app_followme. By setting this option,
106
   Asterisk will not update the caller with connected line changes when they
113
   Asterisk will not update the caller with connected line changes when they
107
   occur.  This is similar to app_dial and app_queue.
114
   occur.  This is similar to app_dial and app_queue.
108

    
   
115

   
109
 * The 'N' option is now ignored if the call is already answered.
116
 * The 'N' option is now ignored if the call is already answered.
110

    
   
117

   
111
 * Added 'b' and 'B' options to FollowMe that execute a Gosub on callee
118
 * Added 'b' and 'B' options to FollowMe that execute a Gosub on callee
112
   and caller channels respectively before the callee channels are called.
119
   and caller channels respectively before the callee channels are called.
113

    
   
120

   
114
 * The winning FollowMe outgoing call is now put on hold if the caller put it on
121
 * The winning FollowMe outgoing call is now put on hold if the caller put it on
115
   hold.
122
   hold.
116

    
   
123

   
117

    
   
124

   
118
MixMonitor
125
MixMonitor
119
------------------
126
------------------
120
 * MixMonitor hooks now have IDs associated with them which can be used to
127
 * MixMonitor hooks now have IDs associated with them which can be used to
121
   assign a target to StopMixMonitor. Use of MixMonitor's i(variable) option
128
   assign a target to StopMixMonitor. Use of MixMonitor's i(variable) option
122
   will allow storage of the MixMontior ID in a channel variable. StopMixmonitor
129
   will allow storage of the MixMontior ID in a channel variable. StopMixmonitor
123
   now accepts that ID as an argument.
130
   now accepts that ID as an argument.
124

    
   
131

   
125
 * Added 'm' option, which stores a copy of the recording as a voicemail in the
132
 * Added 'm' option, which stores a copy of the recording as a voicemail in the
126
   indicated mailboxes.
133
   indicated mailboxes.
127

    
   
134

   
128

    
   
135

   
129
MySQL
136
MySQL
130
-------------------
137
-------------------
131
 * The connect action in app_mysql now allows you to specify a port number to
138
 * The connect action in app_mysql now allows you to specify a port number to
132
   connect to.  This is useful if you run a MySQL server on a non-standard
139
   connect to.  This is useful if you run a MySQL server on a non-standard
133
   port number.
140
   port number.
134

    
   
141

   
135

    
   
142

   
136
OSP Applications
143
OSP Applications
137
-------------------
144
-------------------
138
 * Increased the default number of allowed destinations from 5 to 12.
145
 * Increased the default number of allowed destinations from 5 to 12.
139

    
   
146

   
140

    
   
147

   
141
Page
148
Page
142
-------------------
149
-------------------
143
 * The app_page application now no longer depends on DAHDI or app_meetme.  It
150
 * The app_page application now no longer depends on DAHDI or app_meetme.  It
144
   has been re-architected to use app_confbridge internally.
151
   has been re-architected to use app_confbridge internally.
145

    
   
152

   
146

    
   
153

   
147
Queue
154
Queue
148
-------------------
155
-------------------
149
 * Added queue options autopausebusy and autopauseunavail for automatically
156
 * Added queue options autopausebusy and autopauseunavail for automatically
150
   pausing a queue member when their device reports busy or congestion.
157
   pausing a queue member when their device reports busy or congestion.
151

    
   
158

   
152
 * The 'ignorebusy' option for queue members has been deprecated in favor of
159
 * The 'ignorebusy' option for queue members has been deprecated in favor of
153
   the option 'ringinuse. Also a 'queue set ringinuse' CLI command has been
160
   the option 'ringinuse. Also a 'queue set ringinuse' CLI command has been
154
   added as well as an AMI action 'QueueMemberRingInUse' to set this variable on a
161
   added as well as an AMI action 'QueueMemberRingInUse' to set this variable on a
155
   per interface basis. Individual ringinuse values can now be set in
162
   per interface basis. Individual ringinuse values can now be set in
156
   queues.conf via an argument to member definitions. Lastly, the queue
163
   queues.conf via an argument to member definitions. Lastly, the queue
157
   'ringinuse' setting now only determines defaults for the per member
164
   'ringinuse' setting now only determines defaults for the per member
158
   'ringinuse' setting and does not override per member settings like it does
165
   'ringinuse' setting and does not override per member settings like it does
159
   in earlier versions.
166
   in earlier versions.
160

    
   
167

   
161
 * Added 'F()' option. Similar to the dial option, this can be supplied with
168
 * Added 'F()' option. Similar to the dial option, this can be supplied with
162
   arguments indicating where the callee should go after the caller is hung up,
169
   arguments indicating where the callee should go after the caller is hung up,
163
   or without options specified, the priority after the Queue will be used.
170
   or without options specified, the priority after the Queue will be used.
164

    
   
171

   
165
 * Added new option log_member_name_as_agent, which will cause the membername to
172
 * Added new option log_member_name_as_agent, which will cause the membername to
166
   be logged in the agent field for ADDMEMBER and REMOVEMEMBER queue events if a
173
   be logged in the agent field for ADDMEMBER and REMOVEMEMBER queue events if a
167
   state_interface has been set.
174
   state_interface has been set.
168

    
   
175

   
169

    
   
176

   
170
SayUnixTime
177
SayUnixTime
171
------------------
178
------------------
172
 * Added 'j' option to SayUnixTime. SayUnixTime no longer auto jumps to extension
179
 * Added 'j' option to SayUnixTime. SayUnixTime no longer auto jumps to extension
173
   when receiving DTMF.  Use the 'j' option to enable extension jumping. Also
180
   when receiving DTMF.  Use the 'j' option to enable extension jumping. Also
174
   changed arguments to SayUnixTime so that every option is truly optional even
181
   changed arguments to SayUnixTime so that every option is truly optional even
175
   when using multiple options (so that j option could be used without having to
182
   when using multiple options (so that j option could be used without having to
176
   manually specify timezone and format) There are other benefits, e.g., format
183
   manually specify timezone and format) There are other benefits, e.g., format
177
   can now be used without specifying time zone as well.
184
   can now be used without specifying time zone as well.
178

    
   
185

   
179

    
   
186

   
180
Voicemail
187
Voicemail
181
------------------
188
------------------
182
 * Addition of the VM_INFO function - see Function changes.
189
 * Addition of the VM_INFO function - see Function changes.
183

    
   
190

   
184
 * The imapserver, imapport, and imapflags configuration options can now be
191
 * The imapserver, imapport, and imapflags configuration options can now be
185
   overriden on a user by user basis.
192
   overriden on a user by user basis.
186

    
   
193

   
187
 * When voicemail plays a message's envelope with saycid set to yes, when
194
 * When voicemail plays a message's envelope with saycid set to yes, when
188
   reaching the caller id field it will play a recording of a file with the same
195
   reaching the caller id field it will play a recording of a file with the same
189
   base name as the sender's callerid if there is a similarly named file in
196
   base name as the sender's callerid if there is a similarly named file in
190
   <astspooldir>/recordings/callerids/
197
   <astspooldir>/recordings/callerids/
191

    
   
198

   
192
 * Voicemails now contains a unique message identifier "msg_id", which is stored
199
 * Voicemails now contains a unique message identifier "msg_id", which is stored
193
   in the message envelope with the sound files.  IMAP backends will now store
200
   in the message envelope with the sound files.  IMAP backends will now store
194
   the message identifiers with a header of "X-Asterisk-VM-Message-ID".  ODBC
201
   the message identifiers with a header of "X-Asterisk-VM-Message-ID".  ODBC
195
   backends will store the message identifier in a "msg_id" column.  See
202
   backends will store the message identifier in a "msg_id" column.  See
196
   UPGRADE.txt for more information.
203
   UPGRADE.txt for more information.
197

    
   
204

   
198
 * Added VoiceMailPlayMsg application.  This application will play a single
205
 * Added VoiceMailPlayMsg application.  This application will play a single
199
   voicemail message from a mailbox.  The result of the application, SUCCESS or
206
   voicemail message from a mailbox.  The result of the application, SUCCESS or
200
   FAILED, is stored in the channel variable VOICEMAIL_PLAYBACKSTATUS.
207
   FAILED, is stored in the channel variable VOICEMAIL_PLAYBACKSTATUS.
201

    
   
208

   
202

    
   
209

   
203
Functions
210
Functions
204
------------------
211
------------------
205
 * Hangup handlers can be attached to channels using the CHANNEL() function.
212
 * Hangup handlers can be attached to channels using the CHANNEL() function.
206
   Hangup handlers will run when the channel is hung up similar to the h
213
   Hangup handlers will run when the channel is hung up similar to the h
207
   extension. The hangup_handler_push option will push a GoSub compatible
214
   extension. The hangup_handler_push option will push a GoSub compatible
208
   location in the dialplan onto the channel's hangup handler stack.  The
215
   location in the dialplan onto the channel's hangup handler stack.  The
209
   hangup_handler_pop option will remove the last added location, and optionally
216
   hangup_handler_pop option will remove the last added location, and optionally
210
   replace it with a new GoSub compatible location.  The hangup_handler_wipe
217
   replace it with a new GoSub compatible location.  The hangup_handler_wipe
211
   option will remove all locations on the stack, and optionally add a new
218
   option will remove all locations on the stack, and optionally add a new
212
   location.
219
   location.
213

    
   
220

   
214
 * The expression parser now recognizes the ABS() absolute value function,
221
 * The expression parser now recognizes the ABS() absolute value function,
215
   which will convert negative floating point values to positive values.
222
   which will convert negative floating point values to positive values.
216

    
   
223

   
217
 * FAXOPT(faxdetect) will enable a generic fax detect framehook for dialplan
224
 * FAXOPT(faxdetect) will enable a generic fax detect framehook for dialplan
218
   control of faxdetect.
225
   control of faxdetect.
219

    
   
226

   
220
 * Addition of the VM_INFO function that can be used to retrieve voicemail
227
 * Addition of the VM_INFO function that can be used to retrieve voicemail
221
   user information, such as the email address and full name.
228
   user information, such as the email address and full name.
222
   The MAILBOX_EXISTS dialplan function has been deprecated in favour of
229
   The MAILBOX_EXISTS dialplan function has been deprecated in favour of
223
   VM_INFO.
230
   VM_INFO.
224

    
   
231

   
225
 * The REDIRECTING function now supports the redirecting original party id
232
 * The REDIRECTING function now supports the redirecting original party id
226
   and reason.
233
   and reason.
227

    
   
234

   
228
 * Two new functions have been added: FEATURE() and FEATUREMAP().  FEATURE()
235
 * Two new functions have been added: FEATURE() and FEATUREMAP().  FEATURE()
229
   lets you set some of the configuration options from the [general] section
236
   lets you set some of the configuration options from the [general] section
230
   of features.conf on a per-channel basis.  FEATUREMAP() lets you customize
237
   of features.conf on a per-channel basis.  FEATUREMAP() lets you customize
231
   the key sequence used to activate built-in features, such as blindxfer,
238
   the key sequence used to activate built-in features, such as blindxfer,
232
   and automon.  See the built-in documentation for details.
239
   and automon.  See the built-in documentation for details.
233

    
   
240

   
234
 * MESSAGE(from) for incoming SIP messages now returns "display-name" <uri>
241
 * MESSAGE(from) for incoming SIP messages now returns "display-name" <uri>
235
   instead of simply the uri.  This is the format that MessageSend() can use
242
   instead of simply the uri.  This is the format that MessageSend() can use
236
   in the from parameter for outgoing SIP messages.
243
   in the from parameter for outgoing SIP messages.
237

    
   
244

   
238
 * Added the PRESENCE_STATE function.  This allows retrieving presence state
245
 * Added the PRESENCE_STATE function.  This allows retrieving presence state
239
   information from any presence state provider.  It also allows setting
246
   information from any presence state provider.  It also allows setting
240
   presence state information from a CustomPresence presence state provider.
247
   presence state information from a CustomPresence presence state provider.
241
   See AMI/CLI changes for related commands.
248
   See AMI/CLI changes for related commands.
242

    
   
249

   
243
 * Added the AMI_CLIENT function to make manager account attributes available
250
 * Added the AMI_CLIENT function to make manager account attributes available
244
   to the dialplan. It currently supports returning the current number of
251
   to the dialplan. It currently supports returning the current number of
245
   active sessions for a given account.
252
   active sessions for a given account.
246

    
   
253

   
247
 * Added support for private party ID information to CALLERID, CONNECTEDLINE,
254
 * Added support for private party ID information to CALLERID, CONNECTEDLINE,
248
   and the REDIRECTING functions.
255
   and the REDIRECTING functions.
249

    
   
256

   
250

    
   
257

   
251
Channel Drivers
258
Channel Drivers
252
------------------
259
------------------
253

    
   
260

   
254
chan_local
261
chan_local
255
------------------
262
------------------
256
 * Added a manager event "LocalBridge" for local channel call bridges between
263
 * Added a manager event "LocalBridge" for local channel call bridges between
257
   the two pseudo-channels created.
264
   the two pseudo-channels created.
258

    
   
265

   
259

    
   
266

   
260
chan_dahdi
267
chan_dahdi
261
------------------
268
------------------
262
 * Added dialtone_detect option for analog ports to disconnect incoming
269
 * Added dialtone_detect option for analog ports to disconnect incoming
263
   calls when dialtone is detected.
270
   calls when dialtone is detected.
264

    
   
271

   
265
 * Added option colp_send to send ISDN connected line information.  Allowed
272
 * Added option colp_send to send ISDN connected line information.  Allowed
266
   settings are block, to not send any connected line information; connect, to
273
   settings are block, to not send any connected line information; connect, to
267
   send connected line information on initial connect; and update, to send
274
   send connected line information on initial connect; and update, to send
268
   information on any update during a call.  Default is update.
275
   information on any update during a call.  Default is update.
269

    
   
276

   
270
 * Add options namedcallgroup and namedpickupgroup to support installations
277
 * Add options namedcallgroup and namedpickupgroup to support installations
271
   where a higher number of groups (>64) is required.
278
   where a higher number of groups (>64) is required.
272

    
   
279

   
273
 * Added support to use private party ID information with PRI calls.
280
 * Added support to use private party ID information with PRI calls.
274

    
   
281

   
275

    
   
282

   
276
chan_motif
283
chan_motif
277
------------------
284
------------------
278
 * A new channel driver named chan_motif has been added which provides support for
285
 * A new channel driver named chan_motif has been added which provides support for
279
   Google Talk and Jingle in a single channel driver. This new channel driver includes
286
   Google Talk and Jingle in a single channel driver. This new channel driver includes
280
   support for both audio and video, RFC2833 DTMF, all codecs supported by Asterisk,
287
   support for both audio and video, RFC2833 DTMF, all codecs supported by Asterisk,
281
   hold, unhold, and ringing notification. It is also compliant with the current Jingle
288
   hold, unhold, and ringing notification. It is also compliant with the current Jingle
282
   specification, current Google Jingle specification, and the original Google Talk
289
   specification, current Google Jingle specification, and the original Google Talk
283
   protocol.
290
   protocol.
284

    
   
291

   
285

    
   
292

   
286
chan_ooh323
293
chan_ooh323
287
------------------
294
------------------
288
 * Added NAT support for RTP.  Setting in config is 'nat', which can be set
295
 * Added NAT support for RTP.  Setting in config is 'nat', which can be set
289
   globally and overriden on a peer by peer basis.
296
   globally and overriden on a peer by peer basis.
290

    
   
297

   
291
 * Direct media functionality has been added. Options in config are:
298
 * Direct media functionality has been added. Options in config are:
292
   directmedia (directrtp) and directrtpsetup (earlydirect)
299
   directmedia (directrtp) and directrtpsetup (earlydirect)
293

    
   
300

   
294
 * ChannelUpdate events now contain a CallRef header.
301
 * ChannelUpdate events now contain a CallRef header.
295

    
   
302

   
296

    
   
303

   
297
chan_sip
304
chan_sip
298
------------------
305
------------------
299
 * Asterisk will no longer substitute CID number for CID name in the display
306
 * Asterisk will no longer substitute CID number for CID name in the display
300
   name field if CID number exists without a CID name. This change improves
307
   name field if CID number exists without a CID name. This change improves
301
   compatibility with certain device features such as Avaya IP500's directory
308
   compatibility with certain device features such as Avaya IP500's directory
302
   lookup service.
309
   lookup service.
303

    
   
310

   
304
 * A new setting for autocreatepeer (autocreatepeer=persistent) allows peers
311
 * A new setting for autocreatepeer (autocreatepeer=persistent) allows peers
305
   created using that setting to not be removed during SIP reload.
312
   created using that setting to not be removed during SIP reload.
306

    
   
313

   
307
 * Added settings recordonfeature and recordofffeature.  When receiving an INFO
314
 * Added settings recordonfeature and recordofffeature.  When receiving an INFO
308
   request with a "Record:" header, this will turn the requested feature on/off.
315
   request with a "Record:" header, this will turn the requested feature on/off.
309
   Allowed values are 'automon', 'automixmon', and blank to disable.  Note that
316
   Allowed values are 'automon', 'automixmon', and blank to disable.  Note that
310
   dynamic features must be enabled and configured properly on the requesting
317
   dynamic features must be enabled and configured properly on the requesting
311
   channel for this to function properly.
318
   channel for this to function properly.
312

    
   
319

   
313
 * Add support to realtime for the 'callbackextension' option.
320
 * Add support to realtime for the 'callbackextension' option.
314

    
   
321

   
315
 * When multiple peers exist with the same address, but differing
322
 * When multiple peers exist with the same address, but differing
316
   callbackextension options, incoming requests that are matched by address
323
   callbackextension options, incoming requests that are matched by address
317
   will be matched to the peer with the matching callbackextension if it is
324
   will be matched to the peer with the matching callbackextension if it is
318
   available.
325
   available.
319

    
   
326

   
320
 * Two new NAT options, auto_force_rport and auto_comedia, have been added
327
 * Two new NAT options, auto_force_rport and auto_comedia, have been added
321
   which set the force_rport and comedia options automatically if Asterisk
328
   which set the force_rport and comedia options automatically if Asterisk
322
   detects that an incoming SIP request crossed a NAT after being sent by
329
   detects that an incoming SIP request crossed a NAT after being sent by
323
   the remote endpoint.
330
   the remote endpoint.
324

    
   
331

   
325
 * NAT settings are now a combinable list of options. The equivalent of the
332
 * NAT settings are now a combinable list of options. The equivalent of the
326
   deprecated nat=yes is nat=force_rport,comedia. nat=no behaves as before.
333
   deprecated nat=yes is nat=force_rport,comedia. nat=no behaves as before.
327

    
   
334

   
328
 * Adds an option send_diversion which can be disabled to prevent
335
 * Adds an option send_diversion which can be disabled to prevent
329
   diversion headers from automatically being added to INVITE requests.
336
   diversion headers from automatically being added to INVITE requests.
330

    
   
337

   
331
 * Add support for lightweight NAT keepalive. If enabled a blank packet will
338
 * Add support for lightweight NAT keepalive. If enabled a blank packet will
332
   be sent to the remote host at a given interval to keep the NAT mapping open.
339
   be sent to the remote host at a given interval to keep the NAT mapping open.
333
   This can be enabled using the keepalive configuration option.
340
   This can be enabled using the keepalive configuration option.
334

    
   
341

   
335
 * Add option 'tonezone' to specify country code for indications.  This option
342
 * Add option 'tonezone' to specify country code for indications.  This option
336
   can be set both globally and overridden for specific peers.
343
   can be set both globally and overridden for specific peers.
337

    
   
344

   
338
 * The SIP Security Events Framework now supports IPv6.
345
 * The SIP Security Events Framework now supports IPv6.
339

    
   
346

   
340
 * Add a new setting for directmedia, 'outgoing', to alleviate INVITE glares
347
 * Add a new setting for directmedia, 'outgoing', to alleviate INVITE glares
341
   between multiple user agents. When set, for directmedia reinvites,
348
   between multiple user agents. When set, for directmedia reinvites,
342
   Asterisk will not send an immediate reinvite on an incoming call leg. This
349
   Asterisk will not send an immediate reinvite on an incoming call leg. This
343
   option is useful when peered with another SIP user agent that is known to
350
   option is useful when peered with another SIP user agent that is known to
344
   send immediate direct media reinvites upon call establishment.
351
   send immediate direct media reinvites upon call establishment.
345

    
   
352

   
346
 * Add support for WebSocket transport. This can be configured using 'ws' or 'wss'
353
 * Add support for WebSocket transport. This can be configured using 'ws' or 'wss'
347
   as the transport.
354
   as the transport.
348

    
   
355

   
349
 * Add options subminexpiry and submaxexpiry to set limits of subscription
356
 * Add options subminexpiry and submaxexpiry to set limits of subscription
350
   timer independently from registration timer settings. The setting of the
357
   timer independently from registration timer settings. The setting of the
351
   registration timer limits still is done by options minexpiry, maxexpiry
358
   registration timer limits still is done by options minexpiry, maxexpiry
352
   and defaultexpiry. For backwards compatibility the setting of minexpiry
359
   and defaultexpiry. For backwards compatibility the setting of minexpiry
353
   and maxexpiry also is used to configure the subscription timer limits if
360
   and maxexpiry also is used to configure the subscription timer limits if
354
   subminexpiry and submaxexpiry are not set in sip.conf.
361
   subminexpiry and submaxexpiry are not set in sip.conf.
355

    
   
362

   
356
 * Set registration timer limits to default values when reloading sip
363
 * Set registration timer limits to default values when reloading sip
357
   configuration and values are not set by configuration.
364
   configuration and values are not set by configuration.
358

    
   
365

   
359
 * Add options namedcallgroup and namedpickupgroup to support installations
366
 * Add options namedcallgroup and namedpickupgroup to support installations
360
   where a higher number of groups (>64) is required.
367
   where a higher number of groups (>64) is required.
361

    
   
368

   
362
 * When a MESSAGE request is received, the address the request was received from
369
 * When a MESSAGE request is received, the address the request was received from
363
   is now saved in the SIP_RECVADDR variable.
370
   is now saved in the SIP_RECVADDR variable.
364

    
   
371

   
365
 * Add ANI2/OLI parsing for SIP.  The "From" header in INVITE requests is now
372
 * Add ANI2/OLI parsing for SIP.  The "From" header in INVITE requests is now
366
   parsed for the presence of "isup-oli", "ss7-oli", or "oli" tags.  If present,
373
   parsed for the presence of "isup-oli", "ss7-oli", or "oli" tags.  If present,
367
   the ANI2/OLI information is set on the channel, which can be retrieved using
374
   the ANI2/OLI information is set on the channel, which can be retrieved using
368
   the CALLERID function.
375
   the CALLERID function.
369

    
   
376

   
370
 * Peers can now be configured to support negotiation of ICE candidates using
377
 * Peers can now be configured to support negotiation of ICE candidates using
371
   the setting icesupport.  See res_rtp_asterisk changes for more information.
378
   the setting icesupport.  See res_rtp_asterisk changes for more information.
372

    
   
379

   
373
 * Added support for format attribute negotiation.  See the Codecs changes for
380
 * Added support for format attribute negotiation.  See the Codecs changes for
374
   more information.
381
   more information.
375

    
   
382

   
376
 * Extra headers specified with SIPAddHeader are sent with the REFER message
383
 * Extra headers specified with SIPAddHeader are sent with the REFER message
377
   when using Transfer application. See refer_addheaders in sip.conf.sample.
384
   when using Transfer application. See refer_addheaders in sip.conf.sample.
378

    
   
385

   
379
 * Added support to use private party ID information with calls.
386
 * Added support to use private party ID information with calls.
380

    
   
387

   
381

    
   
388

   
382
chan_skinny
389
chan_skinny
383
------------------
390
------------------
384
 * Added skinny version 17 protocol support.
391
 * Added skinny version 17 protocol support.
385

    
   
392

   
386

    
   
393

   
387
chan_unistim
394
chan_unistim
388
--------------------
395
--------------------
389
 * Added ability to use multiple lines for a single phone.  This allows multiple
396
 * Added ability to use multiple lines for a single phone.  This allows multiple
390
   calls to occur on a single phone, using callwaiting and switching between calls.
397
   calls to occur on a single phone, using callwaiting and switching between calls.
391

    
   
398

   
392
 * Added option 'sharpdial' allowing end dialing by pressing # key
399
 * Added option 'sharpdial' allowing end dialing by pressing # key
393

    
   
400

   
394
 * Added option 'interdigit_timer' to control phone dial timeout
401
 * Added option 'interdigit_timer' to control phone dial timeout
395

    
   
402

   
396
 * Added options 'cwstyle', 'cwvolume' controlling callwaiting appearance
403
 * Added options 'cwstyle', 'cwvolume' controlling callwaiting appearance
397

    
   
404

   
398
 * Added global 'debug' option, that enables debug in channel driver
405
 * Added global 'debug' option, that enables debug in channel driver
399

    
   
406

   
400
 * Added ability to translate on-screen menu in multiple languages. Tested on
407
 * Added ability to translate on-screen menu in multiple languages. Tested on
401
   Russian languages.  Supported encodings: ISO 8859-1, ISO 8859-2, ISO 8859-4,
408
   Russian languages.  Supported encodings: ISO 8859-1, ISO 8859-2, ISO 8859-4,
402
   ISO 8859-5, ISO 2022-JP. Language controlled by 'language' and on-screen
409
   ISO 8859-5, ISO 2022-JP. Language controlled by 'language' and on-screen
403
   menu of phone
410
   menu of phone
404

    
   
411

   
405
 * In addition to English added French and Russian languages for on-screen menus
412
 * In addition to English added French and Russian languages for on-screen menus
406

    
   
413

   
407
 * Reworked dialing number input: added dialing by timeout, immediate dial on
414
 * Reworked dialing number input: added dialing by timeout, immediate dial on
408
   on dialplan compare, phone number length now not limited by screen size
415
   on dialplan compare, phone number length now not limited by screen size
409

    
   
416

   
410
 * Added ability to pickup a call using features.conf defined value and
417
 * Added ability to pickup a call using features.conf defined value and
411
   on-screen key
418
   on-screen key
412

    
   
419

   
413

    
   
420

   
414
chan_mISDN:
421
chan_mISDN:
415
------------------
422
------------------
416
 * Add options namedcallgroup and namedpickupgroup to support installations
423
 * Add options namedcallgroup and namedpickupgroup to support installations
417
   where a higher number of groups (>64) is required.
424
   where a higher number of groups (>64) is required.
418

    
   
425

   
419
 * Added support to use private party ID information with calls.
426
 * Added support to use private party ID information with calls.
420

    
   
427

   
421

    
   
428

   
422
Core
429
Core
423
------------------
430
------------------
424
 * The minimum DTMF duration can now be configured in asterisk.conf
431
 * The minimum DTMF duration can now be configured in asterisk.conf
425
   as "mindtmfduration". The default value is (as before) set to 80 ms.
432
   as "mindtmfduration". The default value is (as before) set to 80 ms.
426
   (previously it was only available in source code)
433
   (previously it was only available in source code)
427

    
   
434

   
428
 * Named ACLs can now be specified in acl.conf and used in configurations that
435
 * Named ACLs can now be specified in acl.conf and used in configurations that
429
   use ACLs. As a general rule, if some derivative of 'permit' or 'deny' is
436
   use ACLs. As a general rule, if some derivative of 'permit' or 'deny' is
430
   used to specify an ACL, a similar form of 'acl' will add a named ACL to the
437
   used to specify an ACL, a similar form of 'acl' will add a named ACL to the
431
   working ACL. In addition, some CLI commands have been added to provide
438
   working ACL. In addition, some CLI commands have been added to provide
432
   show information and allow for module reloading - see CLI Changes.
439
   show information and allow for module reloading - see CLI Changes.
433

    
   
440

   
434
 * Rules in ACLs (specified using 'permit' and 'deny') can now contain multiple
441
 * Rules in ACLs (specified using 'permit' and 'deny') can now contain multiple
435
   items (separated by commas), and items in the rule can be negated by prefixing
442
   items (separated by commas), and items in the rule can be negated by prefixing
436
   them with '!'. This simplifies Asterisk Realtime configurations, since it is no
443
   them with '!'. This simplifies Asterisk Realtime configurations, since it is no
437
   longer necessray to control the order that the 'permit' and 'deny' columns are
444
   longer necessray to control the order that the 'permit' and 'deny' columns are
438
   returned from queries.
445
   returned from queries.
439

    
   
446

   
440
 * DUNDi now allows the built in variables ${NUMBER}, ${IPADDR} and ${SECRET} to
447
 * DUNDi now allows the built in variables ${NUMBER}, ${IPADDR} and ${SECRET} to
441
   be used within the dynamic weight attribute when specifying a mapping.
448
   be used within the dynamic weight attribute when specifying a mapping.
442

    
   
449

   
443
 * CEL backends can now be configured to show "USER_DEFINED" in the EventName
450
 * CEL backends can now be configured to show "USER_DEFINED" in the EventName
444
   header, instead of putting the user defined event name there.  When enabled
451
   header, instead of putting the user defined event name there.  When enabled
445
   the UserDefType header is added for user defined events.  This feature is
452
   the UserDefType header is added for user defined events.  This feature is
446
   enabled with the setting show_user_defined.
453
   enabled with the setting show_user_defined.
447

    
   
454

   
448
 * Macro has been deprecated in favor of GoSub.  For redirecting and connected
455
 * Macro has been deprecated in favor of GoSub.  For redirecting and connected
449
   line purposes use the following variables instead of their macro equivalents:
456
   line purposes use the following variables instead of their macro equivalents:
450
   REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS, CONNECTED_LINE_SEND_SUB,
457
   REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS, CONNECTED_LINE_SEND_SUB,
451
   CONNECTED_LINE_SEND_SUB_ARGS.  For CCSS, use cc_callback_sub instead of
458
   CONNECTED_LINE_SEND_SUB_ARGS.  For CCSS, use cc_callback_sub instead of
452
   cc_callback_macro in channel configurations.
459
   cc_callback_macro in channel configurations.
453

    
   
460

   
454
 * Asterisk can now use a system-provided NetBSD editline library (libedit) if it
461
 * Asterisk can now use a system-provided NetBSD editline library (libedit) if it
455
   is available.
462
   is available.
456

    
   
463

   
457
 * Call files now support the "early_media" option to connect with an outgoing
464
 * Call files now support the "early_media" option to connect with an outgoing
458
   extension when early media is received.
465
   extension when early media is received.
459

    
   
466

   
460
 * Added support to use private party ID information with calls.
467
 * Added support to use private party ID information with calls.
461

    
   
468

   
462

    
   
469

   
463
AGI
470
AGI
464
------------------
471
------------------
465
 * A new channel variable, AGIEXITONHANGUP, has been added which allows
472
 * A new channel variable, AGIEXITONHANGUP, has been added which allows
466
   Asterisk to behave like it did in Asterisk 1.4 and earlier where the
473
   Asterisk to behave like it did in Asterisk 1.4 and earlier where the
467
   AGI application would exit immediately after a channel hangup is detected.
474
   AGI application would exit immediately after a channel hangup is detected.
468

    
   
475

   
469
 * IPv6 addresses are now supported when using FastAGI (agi://).  Hostnames
476
 * IPv6 addresses are now supported when using FastAGI (agi://).  Hostnames
470
   are resolved and each address is attempted in turn until one succeeds or
477
   are resolved and each address is attempted in turn until one succeeds or
471
   all fail.
478
   all fail.
472

    
   
479

   
473

    
   
480

   
474
AMI (Asterisk Manager Interface)
481
AMI (Asterisk Manager Interface)
475
------------------
482
------------------
476
 * The originate action now has an option "EarlyMedia" that enables the
483
 * The originate action now has an option "EarlyMedia" that enables the
477
   call to bridge when we get early media in the call. Previously,
484
   call to bridge when we get early media in the call. Previously,
478
   early media was disregarded always when originating calls using AMI.
485
   early media was disregarded always when originating calls using AMI.
479

    
   
486

   
480
 * Added setvar= option to manager accounts (much like sip.conf)
487
 * Added setvar= option to manager accounts (much like sip.conf)
481

    
   
488

   
482
 * Originate now generates an error response if the extension given is not found
489
 * Originate now generates an error response if the extension given is not found
483
   in the dialplan
490
   in the dialplan
484

    
   
491

   
485
 * MixMonitor will now show IDs associated with the mixmonitor upon creating
492
 * MixMonitor will now show IDs associated with the mixmonitor upon creating
486
   them if the i(variable) option is used. StopMixMonitor will accept
493
   them if the i(variable) option is used. StopMixMonitor will accept
487
   MixMonitorID as an option to close specific MixMonitors.
494
   MixMonitorID as an option to close specific MixMonitors.
488

    
   
495

   
489
 * The SIPshowpeer manager action response field "SIP-Forcerport" has been
496
 * The SIPshowpeer manager action response field "SIP-Forcerport" has been
490
   updated to include information about peers configured with
497
   updated to include information about peers configured with
491
   nat=auto_force_rport by returning "A" if auto_force_rport is set and nat is
498
   nat=auto_force_rport by returning "A" if auto_force_rport is set and nat is
492
   detected, and "a" if it is set and nat is not detected. "Y" and "N" are still
499
   detected, and "a" if it is set and nat is not detected. "Y" and "N" are still
493
   returned if auto_force_rport is not enabled.
500
   returned if auto_force_rport is not enabled.
494

    
   
501

   
495
 * Added SIPpeerstatus manager command which will generate PeerStatus events
502
 * Added SIPpeerstatus manager command which will generate PeerStatus events
496
   similar to the existing PeerStatus events found in chan_sip on demand.
503
   similar to the existing PeerStatus events found in chan_sip on demand.
497

    
   
504

   
498
 * Hangup now can take a regular expression as the Channel option.  If you want
505
 * Hangup now can take a regular expression as the Channel option.  If you want
499
   to hangup multiple channels, use /regex/ as the Channel option.  Existing
506
   to hangup multiple channels, use /regex/ as the Channel option.  Existing
500
   behavior to hanging up a single channel is unchanged, but if you pass a regex,
507
   behavior to hanging up a single channel is unchanged, but if you pass a regex,
501
   the manager will send you a list of channels back that were hung up.
508
   the manager will send you a list of channels back that were hung up.
502

    
   
509

   
503
 * Support for IPv6 addresses has been added.
510
 * Support for IPv6 addresses has been added.
504

    
   
511

   
505
 * AMI Events can now be documented in the Asterisk source. Note that AMI event
512
 * AMI Events can now be documented in the Asterisk source. Note that AMI event
506
   documentation is only generated when Asterisk is compiled using 'make full'.
513
   documentation is only generated when Asterisk is compiled using 'make full'.
507
   See the CLI section for commands to display AMI event information.
514
   See the CLI section for commands to display AMI event information.
508

    
   
515

   
509
 * The AMI Hangup event now includes the AccountCode header so you can easily
516
 * The AMI Hangup event now includes the AccountCode header so you can easily
510
   correlate with AMI Newchannel events.
517
   correlate with AMI Newchannel events.
511

    
   
518

   
512
 * The QueueMemberStatus, QueueMemberAdded, and QueueMember events now include
519
 * The QueueMemberStatus, QueueMemberAdded, and QueueMember events now include
513
   the StateInterface of the queue member.
520
   the StateInterface of the queue member.
514

    
   
521

   
515
 * Added AMI event SessionTimeout in the Call category that is issued when a
522
 * Added AMI event SessionTimeout in the Call category that is issued when a
516
   call is terminated due to either RTP stream inactivity or SIP session timer
523
   call is terminated due to either RTP stream inactivity or SIP session timer
517
   expiration.
524
   expiration.
518

    
   
525

   
519
 * CEL events can now contain a user defined header UserDefType.  See core
526
 * CEL events can now contain a user defined header UserDefType.  See core
520
   changes for more information.
527
   changes for more information.
521

    
   
528

   
522
 * OOH323 ChannelUpdate events now contain a CallRef header.
529
 * OOH323 ChannelUpdate events now contain a CallRef header.
523

    
   
530

   
524
 * Added PresenceState command.  This command will report the presence state for
531
 * Added PresenceState command.  This command will report the presence state for
525
   the given presence provider.
532
   the given presence provider.
526

    
   
533

   
527
 * Added Parkinglots command.  This will list all parking lots as a series of
534
 * Added Parkinglots command.  This will list all parking lots as a series of
528
   AMI Parkinglot events.
535
   AMI Parkinglot events.
529

    
   
536

   
530
 * Added MessageSend command.  This behaves in the same manner as the
537
 * Added MessageSend command.  This behaves in the same manner as the
531
   MessageSend application, and is a technolgoy agnostic mechanism to send out
538
   MessageSend application, and is a technolgoy agnostic mechanism to send out
532
   of call text messages.
539
   of call text messages.
533

    
   
540

   
534
 * Added "message" class authorization.  This grants an account permission to
541
 * Added "message" class authorization.  This grants an account permission to
535
   send out of call messages.  Write-only.
542
   send out of call messages.  Write-only.
536

    
   
543

   
537

    
   
544

   
538
CLI
545
CLI
539
-------------------
546
-------------------
540
 * The "dialplan add include" command has been modified to create context a context
547
 * The "dialplan add include" command has been modified to create context a context
541
   if one does not already exist. For instance, "dialplan add include foo into bar"
548
   if one does not already exist. For instance, "dialplan add include foo into bar"
542
   will create context "bar" if it does not already exist.
549
   will create context "bar" if it does not already exist.
543

    
   
550

   
544
 * A  "dialplan remove context" command has been added to remove a context from
551
 * A  "dialplan remove context" command has been added to remove a context from
545
   the dialplan
552
   the dialplan
546

    
   
553

   
547
 * The "mixmonitor list <channel>" command will now show MixMonitor ID, and the
554
 * The "mixmonitor list <channel>" command will now show MixMonitor ID, and the
548
   filenames of all running mixmonitors on a channel.
555
   filenames of all running mixmonitors on a channel.
549

    
   
556

   
550
 * The debug level of "pri set debug" is now a bitmask ranging from 0 to 15 if
557
 * The debug level of "pri set debug" is now a bitmask ranging from 0 to 15 if
551
   numeric instead of 0, 1, or 2.
558
   numeric instead of 0, 1, or 2.
552

    
   
559

   
553
 * "stun show status" will show a table describing how the STUN client is
560
 * "stun show status" will show a table describing how the STUN client is
554
   behaving.
561
   behaving.
555

    
   
562

   
556
 * "acl show [named acl]" will show information regarding a Named ACL.  The
563
 * "acl show [named acl]" will show information regarding a Named ACL.  The
557
   acl module can be reloaded with "reload acl".
564
   acl module can be reloaded with "reload acl".
558

    
   
565

   
559
 * Added CLI command to display AMI event information - "manager show events",
566
 * Added CLI command to display AMI event information - "manager show events",
560
   which shows a list of all known and documented AMI events, and "manager show
567
   which shows a list of all known and documented AMI events, and "manager show
561
   event [event name]", which shows detail information about a specific AMI
568
   event [event name]", which shows detail information about a specific AMI
562
   event.
569
   event.
563

    
   
570

   
564
 * The result of the CLI command "queue show" now includes the state interface
571
 * The result of the CLI command "queue show" now includes the state interface
565
   information of the queue member.
572
   information of the queue member.
566

    
   
573

   
567
 * The command "core set verbose" will now set a separate level of logging for
574
 * The command "core set verbose" will now set a separate level of logging for
568
   each remote console without affecting any other console.
575
   each remote console without affecting any other console.
569

    
   
576

   
570
 * Added command "cdr show pgsql status" to check connection status
577
 * Added command "cdr show pgsql status" to check connection status
571

    
   
578

   
572
 * "sip show channel" will now display the complete route set.
579
 * "sip show channel" will now display the complete route set.
573

    
   
580

   
574
 * Added "presencestate list" command.  This command will list all custom
581
 * Added "presencestate list" command.  This command will list all custom
575
   presence states that have been set by using the PRESENCE_STATE dialplan
582
   presence states that have been set by using the PRESENCE_STATE dialplan
576
   function.
583
   function.
577

    
   
584

   
578
 * Added "presencestate change <entity> <state>[,<subtype>[,message[,options]]]"
585
 * Added "presencestate change <entity> <state>[,<subtype>[,message[,options]]]"
579
   command.  This changes a custom presence to a new state.
586
   command.  This changes a custom presence to a new state.
580

    
   
587

   
581

    
   
588

   
582
Codecs
589
Codecs
583
-------------------
590
-------------------
584
 * Codec lists may now be modified by the '!' character, to allow succinct
591
 * Codec lists may now be modified by the '!' character, to allow succinct
585
   specification of a list of codecs allowed and disallowed, without the
592
   specification of a list of codecs allowed and disallowed, without the
586
   requirement to use two different keywords.  For example, to specify all
593
   requirement to use two different keywords.  For example, to specify all
587
   codecs except g729 and g723, one need only specify allow=all,!g729,!g723.
594
   codecs except g729 and g723, one need only specify allow=all,!g729,!g723.
588

    
   
595

   
589
 * Add support for parsing SDP attributes, generating SDP attributes, and
596
 * Add support for parsing SDP attributes, generating SDP attributes, and
590
   passing it through. This support includes codecs such as H.263, H.264, SILK,
597
   passing it through. This support includes codecs such as H.263, H.264, SILK,
591
   and CELT. You are able to set up a call and have attribute information pass.
598
   and CELT. You are able to set up a call and have attribute information pass.
592
   This should help considerably with video calls.
599
   This should help considerably with video calls.
593

    
   
600

   
594
 * The iLBC codec can now use a system-provided iLBC library if one is installed,
601
 * The iLBC codec can now use a system-provided iLBC library if one is installed,
595
   just like the GSM codec.
602
   just like the GSM codec.
596

    
   
603

   
597
DUNDi changes
604
DUNDi changes
598
-------------
605
-------------
599
 * Added CLI commands dundi show hints and dundi show cache which will list DUNDi
606
 * Added CLI commands dundi show hints and dundi show cache which will list DUNDi
600
   'DONTASK' hints in the cache and list all DUNDi cache entires respectively.
607
   'DONTASK' hints in the cache and list all DUNDi cache entires respectively.
601

    
   
608

   
602
Logging
609
Logging
603
-------------------
610
-------------------
604
 * Asterisk version and build information is now logged at the beginning of a
611
 * Asterisk version and build information is now logged at the beginning of a
605
   log file.
612
   log file.
606

    
   
613

   
607
 * Threads belonging to a particular call are now linked with callids which get
614
 * Threads belonging to a particular call are now linked with callids which get
608
   added to any log messages produced by those threads. Log messages can now be
615
   added to any log messages produced by those threads. Log messages can now be
609
   easily identified as involved with a certain call by looking at their call id.
616
   easily identified as involved with a certain call by looking at their call id.
610
   Call ids may also be attached to log messages for just about any case where
617
   Call ids may also be attached to log messages for just about any case where
611
   it can be determined to be related to a particular call.
618
   it can be determined to be related to a particular call.
612

    
   
619

   
613
 * Each logging destination and console now have an independent notion of the
620
 * Each logging destination and console now have an independent notion of the
614
   current verbosity level.  Logger.conf now allows an optional argument to
621
   current verbosity level.  Logger.conf now allows an optional argument to
615
   the 'verbose' specifier, indicating the level of verbosity sent to that
622
   the 'verbose' specifier, indicating the level of verbosity sent to that
616
   particular logging destination.  Additionally, remote consoles now each
623
   particular logging destination.  Additionally, remote consoles now each
617
   have their own verbosity level.  The command 'core set verbose' will now set
624
   have their own verbosity level.  The command 'core set verbose' will now set
618
   a separate level for each remote console without affecting any other
625
   a separate level for each remote console without affecting any other
619
   console.
626
   console.
620

    
   
627

   
621

    
   
628

   
622
Music On Hold
629
Music On Hold
623
-------------------
630
-------------------
624
 * Added 'announcement' option which will play at the start of MOH and between
631
 * Added 'announcement' option which will play at the start of MOH and between
625
   songs in modes of MOH that can detect transitions between songs (eg.
632
   songs in modes of MOH that can detect transitions between songs (eg.
626
   files, mp3, etc).
633
   files, mp3, etc).
627

    
   
634

   
628

    
   
635

   
629
Parking
636
Parking
630
-------------------
637
-------------------
631
 * New per parking lot options: comebackcontext and comebackdialtime. See
638
 * New per parking lot options: comebackcontext and comebackdialtime. See
632
   configs/features.conf.sample for more details.
639
   configs/features.conf.sample for more details.
633

    
   
640

   
634
 * Channel variable PARKER is now set when comebacktoorigin is disabled in
641
 * Channel variable PARKER is now set when comebacktoorigin is disabled in
635
   a parking lot.
642
   a parking lot.
636

    
   
643

   
637
 * Channel variable PARKEDCALL is now set with the name of the parking lot
644
 * Channel variable PARKEDCALL is now set with the name of the parking lot
638
   when a timeout occurs.
645
   when a timeout occurs.
639

    
   
646

   
640

    
   
647

   
641
CDRs
648
CDRs
642
-------------------
649
-------------------
643

    
   
650

   
644
CDR Postgresql Driver
651
CDR Postgresql Driver
645
-------------------
652
-------------------
646
 * Added command "cdr show pgsql status" to check connection status
653
 * Added command "cdr show pgsql status" to check connection status
647

    
   
654

   
648

    
   
655

   
649
CDR Adaptive ODBC Driver
656
CDR Adaptive ODBC Driver
650
-------------------
657
-------------------
651
 * Added schema option for databases that support specifying a schema.
658
 * Added schema option for databases that support specifying a schema.
652

    
   
659

   
653

    
   
660

   
654
Resource Modules
661
Resource Modules
655
-------------------
662
-------------------
656

    
   
663

   
657
Calendars
664
Calendars
658
-------------------
665
-------------------
659
 * A CALENDAR_SUCCESS=1/0 channel variable is now set to show whether or not
666
 * A CALENDAR_SUCCESS=1/0 channel variable is now set to show whether or not
660
   CALENDAR_WRITE has completed successfully.
667
   CALENDAR_WRITE has completed successfully.
661

    
   
668

   
662

    
   
669

   
663
res_rtp_asterisk
670
res_rtp_asterisk
664
-------------------
671
-------------------
665
 * A new option, 'probation' has been added to rtp.conf
672
 * A new option, 'probation' has been added to rtp.conf
666
   RTP in strictrtp mode can now require more than 1 packet to exit learning
673
   RTP in strictrtp mode can now require more than 1 packet to exit learning
667
   mode with a new source (and by default requires 4). The probation option
674
   mode with a new source (and by default requires 4). The probation option
668
   allows the user to change the required number of packets in sequence to any
675
   allows the user to change the required number of packets in sequence to any
669
   desired value. Use a value of 1 to essentially restore the old behavior.
676
   desired value. Use a value of 1 to essentially restore the old behavior.
670
   Also, with strictrtp on, Asterisk will now drop all packets until learning
677
   Also, with strictrtp on, Asterisk will now drop all packets until learning
671
   mode has successfully exited. These changes are based on how pjmedia handles
678
   mode has successfully exited. These changes are based on how pjmedia handles
672
   media sources and source changes.
679
   media sources and source changes.
673

    
   
680

   
674
 * Add support for ICE/STUN/TURN in res_rtp_asterisk.  This option can be
681
 * Add support for ICE/STUN/TURN in res_rtp_asterisk.  This option can be
675
   enabled or disabled using the icesupport setting.  A variety of other
682
   enabled or disabled using the icesupport setting.  A variety of other
676
   settings have been introduced to configure STUN/TURN connections.
683
   settings have been introduced to configure STUN/TURN connections.
677

    
   
684

   
678

    
   
685

   
679
res_corosync
686
res_corosync
680
-------------------
687
-------------------
681
 * A new module, res_corosync, has been introduced.  This module uses the
688
 * A new module, res_corosync, has been introduced.  This module uses the
682
   Corosync cluster enginer (http://www.corosync.org) to allow a local cluster
689
   Corosync cluster enginer (http://www.corosync.org) to allow a local cluster
683
   of Asterisk servers to both Message Waiting Indication (MWI) and/or
690
   of Asterisk servers to both Message Waiting Indication (MWI) and/or
684
   Device State (presence) information.  This module is very similar to, and
691
   Device State (presence) information.  This module is very similar to, and
685
   is a replacement for the res_ais module that was in previous releases of
692
   is a replacement for the res_ais module that was in previous releases of
686
   Asterisk.
693
   Asterisk.
687

    
   
694

   
688

    
   
695

   
689
res_xmpp
696
res_xmpp
690
-------------------
697
-------------------
691
 * This module adds a cleaned up, drop-in replacement for res_jabber called
698
 * This module adds a cleaned up, drop-in replacement for res_jabber called
692
   res_xmpp. This provides the same externally facing functionality but is
699
   res_xmpp. This provides the same externally facing functionality but is
693
   implemented differently internally.  res_jabber has been deprecated in favor
700
   implemented differently internally.  res_jabber has been deprecated in favor
694
   of res_xmpp; please see the UPGRADE.txt file for more information.
701
   of res_xmpp; please see the UPGRADE.txt file for more information.
695

    
   
702

   
696

    
   
703

   
697
Scripts
704
Scripts
698
-------------------
705
-------------------
699
 * The safe_asterisk script has been updated to allow several of its parameters
706
 * The safe_asterisk script has been updated to allow several of its parameters
700
   to be set from environment variables.  This also enables a custom run
707
   to be set from environment variables.  This also enables a custom run
701
   directory of Asterisk to be specified, instead of defaulting to /tmp.
708
   directory of Asterisk to be specified, instead of defaulting to /tmp.
702

    
   
709

   
703
 * The live_ast script will now look for the LIVE_AST_BASE_DIR variable and use
710
 * The live_ast script will now look for the LIVE_AST_BASE_DIR variable and use
704
   its value to determine the directory to assume is the top-level directory of
711
   its value to determine the directory to assume is the top-level directory of
705
   the source tree.  If the variable is not set, it defaults to the current
712
   the source tree.  If the variable is not set, it defaults to the current
706
   behavior and uses the current working directory.
713
   behavior and uses the current working directory.
707

    
   
714

   
708
------------------------------------------------------------------------------
715
------------------------------------------------------------------------------
709
--- Functionality changes from Asterisk 1.8 to Asterisk 10 -------------------
716
--- Functionality changes from Asterisk 1.8 to Asterisk 10 -------------------
710
------------------------------------------------------------------------------
717
------------------------------------------------------------------------------
711

    
   
718

   
712
Text Messaging
719
Text Messaging
713
--------------
720
--------------
714
 * Asterisk now has protocol independent support for processing text messages
721
 * Asterisk now has protocol independent support for processing text messages
715
   outside of a call.  Messages are routed through the Asterisk dialplan.
722
   outside of a call.  Messages are routed through the Asterisk dialplan.
716
   SIP MESSAGE and XMPP are currently supported.  There are options in
723
   SIP MESSAGE and XMPP are currently supported.  There are options in
717
   jabber.conf and sip.conf to allow enabling these features.
724
   jabber.conf and sip.conf to allow enabling these features.
718
     -> jabber.conf: see the "sendtodialplan" and "context" options.
725
     -> jabber.conf: see the "sendtodialplan" and "context" options.
719
     -> sip.conf: see the "accept_outofcall_message", "auth_message_requests"
726
     -> sip.conf: see the "accept_outofcall_message", "auth_message_requests"
720
        and "outofcall_message_context" options.
727
        and "outofcall_message_context" options.
721
   The MESSAGE() dialplan function and MessageSend() application have been
728
   The MESSAGE() dialplan function and MessageSend() application have been
722
   added to go along with this functionality.  More detailed usage information
729
   added to go along with this functionality.  More detailed usage information
723
   can be found on the Asterisk wiki (http://wiki.asterisk.org/).
730
   can be found on the Asterisk wiki (http://wiki.asterisk.org/).
724
 * If real-time text support (T.140) is negotiated, it will be preferred for
731
 * If real-time text support (T.140) is negotiated, it will be preferred for
725
   sending text via the SendText application. For example, via SIP, messages
732
   sending text via the SendText application. For example, via SIP, messages
726
   that were once sent via the SIP MESSAGE request would be sent via RTP if
733
   that were once sent via the SIP MESSAGE request would be sent via RTP if
727
   T.140 text is negotiated for a call.
734
   T.140 text is negotiated for a call.
728

    
   
735

   
729
Parking
736
Parking
730
-------
737
-------
731
 * parkedmusicclass can now be set for non-default parking lots.
738
 * parkedmusicclass can now be set for non-default parking lots.
732

    
   
739

   
733
Asterisk Manager Interface
740
Asterisk Manager Interface
734
--------------------------
741
--------------------------
735
 * PeerStatus now includes Address and Port.
742
 * PeerStatus now includes Address and Port.
736
 * Added Hold events for when the remote party puts the call on and off hold
743
 * Added Hold events for when the remote party puts the call on and off hold
737
   for chan_dahdi ISDN channels.
744
   for chan_dahdi ISDN channels.
738
 * Added new action MeetmeListRooms to list active conferences (shows same
745
 * Added new action MeetmeListRooms to list active conferences (shows same
739
   data as "meetme list" at the CLI).
746
   data as "meetme list" at the CLI).
740
 * DAHDIShowChannels, SIPshowpeer, SIPpeers, and IAXpeers now contains a
747
 * DAHDIShowChannels, SIPshowpeer, SIPpeers, and IAXpeers now contains a
741
   Description field that is set by 'description' in the channel configuration
748
   Description field that is set by 'description' in the channel configuration
742
   file.
749
   file.
743
 * Added Uniqueid header to UserEvent.
750
 * Added Uniqueid header to UserEvent.
744
 * Added new action FilterAdd to control event filters for the current session.
751
 * Added new action FilterAdd to control event filters for the current session.
745
   This requires the system permission and uses the same filter syntax as
752
   This requires the system permission and uses the same filter syntax as
746
   filters that can be defined in manager.conf
753
   filters that can be defined in manager.conf
747
 * The Unlink event is now a Bridge event with Bridgestatus: Unlink. Previous
754
 * The Unlink event is now a Bridge event with Bridgestatus: Unlink. Previous
748
   versions had some instances of the event converted, but others were left
755
   versions had some instances of the event converted, but others were left
749
   as-is. All Unlink events should now be converted to Bridge events. The AMI
756
   as-is. All Unlink events should now be converted to Bridge events. The AMI
750
   protocol version number was incremented to 1.2 as a result of this change.
757
   protocol version number was incremented to 1.2 as a result of this change.
751

    
   
758

   
752
Asterisk HTTP Server
759
Asterisk HTTP Server
753
--------------------------
760
--------------------------
754
 * The HTTP Server can bind to IPv6 addresses.
761
 * The HTTP Server can bind to IPv6 addresses.
755

    
   
762

   
756
chan_dahdi
763
chan_dahdi
757
--------------------------
764
--------------------------
758
 * Busy tone patterns featuring 2 silence and 2 tone lengths can now be used
765
 * Busy tone patterns featuring 2 silence and 2 tone lengths can now be used
759
   with busydetect.  usage example: busypattern=200,200,200,600
766
   with busydetect.  usage example: busypattern=200,200,200,600
760

    
   
767

   
761
CLI Changes
768
CLI Changes
762
--------------------------
769
--------------------------
763
 * New 'gtalk show settings' command showing the current settings loaded from
770
 * New 'gtalk show settings' command showing the current settings loaded from
764
   gtalk.conf.
771
   gtalk.conf.
765
 * The 'logger reload' command now supports an optional argument, specifying an
772
 * The 'logger reload' command now supports an optional argument, specifying an
766
   alternate configuration file to use.
773
   alternate configuration file to use.
767
 * 'dialplan add extension' command will now automatically create a context if
774
 * 'dialplan add extension' command will now automatically create a context if
768
   the specified context does not exist with a message indicated it did so.
775
   the specified context does not exist with a message indicated it did so.
769
 * 'sip show peers', 'iax show peers', and 'dahdi show peers' now contains a
776
 * 'sip show peers', 'iax show peers', and 'dahdi show peers' now contains a
770
   Description field which can be populated with 'description' in the channel
777
   Description field which can be populated with 'description' in the channel
771
   configuration files (sip.conf, iax2.conf, and chan_dahdi.conf).
778
   configuration files (sip.conf, iax2.conf, and chan_dahdi.conf).
772

    
   
779

   
773
CDR
780
CDR
774
--------------------------
781
--------------------------
775
 * The filter option in cdr_adaptive_odbc now supports negating the argument,
782
 * The filter option in cdr_adaptive_odbc now supports negating the argument,
776
   thus allowing records which do NOT match the specified filter.
783
   thus allowing records which do NOT match the specified filter.
777
 * Added ability to log CONGESTION calls to CDR
784
 * Added ability to log CONGESTION calls to CDR
778

    
   
785

   
779
CODECS
786
CODECS
780
--------------------------
787
--------------------------
781
 * Ability to define custom SILK formats in codecs.conf.
788
 * Ability to define custom SILK formats in codecs.conf.
782
 * Addition of speex32 audio format with translation.
789
 * Addition of speex32 audio format with translation.
783
 * CELT codec pass-through support and ability to define
790
 * CELT codec pass-through support and ability to define
784
   custom CELT formats in codecs.conf.
791
   custom CELT formats in codecs.conf.
785
 * Ability to read raw signed linear files with sample rates
792
 * Ability to read raw signed linear files with sample rates
786
   ranging from 8khz - 192khz.  The new file extensions introduced
793
   ranging from 8khz - 192khz.  The new file extensions introduced
787
   are .sln12, .sln24, .sln32, .sln44, .sln48, .sln96, .sln192.
794
   are .sln12, .sln24, .sln32, .sln44, .sln48, .sln96, .sln192.
788
 * Due to protocol limitations, channel drivers other than SIP (eg. IAX2, MGCP,
795
 * Due to protocol limitations, channel drivers other than SIP (eg. IAX2, MGCP,
789
   Skinny, H.323, etc) can still only support the following codecs:
796
   Skinny, H.323, etc) can still only support the following codecs:
790
   Audio: ulaw, alaw, slin, slin16, g719, g722, g723, g726, g726aal2, g729, gsm,
797
   Audio: ulaw, alaw, slin, slin16, g719, g722, g723, g726, g726aal2, g729, gsm,
791
          siren7, siren14, speex, speex16, ilbc, lpc10, adpcm
798
          siren7, siren14, speex, speex16, ilbc, lpc10, adpcm
792
   Video: h261, h263, h263p, h264, mpeg4
799
   Video: h261, h263, h263p, h264, mpeg4
793
   Image: jpeg, png
800
   Image: jpeg, png
794
   Text:  red, t140
801
   Text:  red, t140
795

    
   
802

   
796
ConfBridge
803
ConfBridge
797
--------------------------
804
--------------------------
798
 * New highly optimized and customizable ConfBridge application capable of
805
 * New highly optimized and customizable ConfBridge application capable of
799
   mixing audio at sample rates ranging from 8khz-96khz.
806
   mixing audio at sample rates ranging from 8khz-96khz.
800
 * CONFBRIDGE dialplan function capable of creating dynamic ConfBridge user
807
 * CONFBRIDGE dialplan function capable of creating dynamic ConfBridge user
801
   and bridge profiles on a channel.
808
   and bridge profiles on a channel.
802
 * CONFBRIDGE_INFO dialplan function capable of retrieving information
809
 * CONFBRIDGE_INFO dialplan function capable of retrieving information
803
   about a conference such as locked status and number of parties, admins,
810
   about a conference such as locked status and number of parties, admins,
804
   and marked users.
811
   and marked users.
805
 * Addition of video_mode option in confbridge.conf for adding video support
812
 * Addition of video_mode option in confbridge.conf for adding video support
806
   into a bridge profile.
813
   into a bridge profile.
807
 * Addition of the follow_talker video_mode in confbridge.conf.  This video
814
 * Addition of the follow_talker video_mode in confbridge.conf.  This video
808
   mode dynamically switches the video feed to always display the loudest talker
815
   mode dynamically switches the video feed to always display the loudest talker
809
   supplying video in the conference.
816
   supplying video in the conference.
810

    
   
817

   
811
Dialplan Variables
818
Dialplan Variables
812
------------------
819
------------------
813
 * Added ASTETCDIR, ASTMODDIR, ASTVARLIBDIR, ASTDBDIR, ASTKEYDIR, ASTDATADIR,
820
 * Added ASTETCDIR, ASTMODDIR, ASTVARLIBDIR, ASTDBDIR, ASTKEYDIR, ASTDATADIR,
814
   ASTAGIDIR, ASTSPOOLDIR, ASTRUNDIR, ASTLOGDIR which hold the equivalent
821
   ASTAGIDIR, ASTSPOOLDIR, ASTRUNDIR, ASTLOGDIR which hold the equivalent
815
   variables from asterisk.conf.
822
   variables from asterisk.conf.
816

    
   
823

   
817
Dialplan Functions
824
Dialplan Functions
818
------------------
825
------------------
819
 * Addition of the JITTERBUFFER dialplan function. This function allows
826
 * Addition of the JITTERBUFFER dialplan function. This function allows
820
   for jitterbuffering to occur on the read side of a channel.  By using
827
   for jitterbuffering to occur on the read side of a channel.  By using
821
   this function conference applications such as ConfBridge and MeetMe can
828
   this function conference applications such as ConfBridge and MeetMe can
822
   have the rx streams jitterbuffered before conference mixing occurs.
829
   have the rx streams jitterbuffered before conference mixing occurs.
823
 * Added DB_KEYS, which lists the next set of keys in the Asterisk database
830
 * Added DB_KEYS, which lists the next set of keys in the Asterisk database
824
   hierarchy.
831
   hierarchy.
825
 * Added STRREPLACE function.  This function let's the user search a variable
832
 * Added STRREPLACE function.  This function let's the user search a variable
826
   for a given string to replace with another string as many times as the
833
   for a given string to replace with another string as many times as the
827
   user specifies or just throughout the whole string.
834
   user specifies or just throughout the whole string.
828
 * Added option to CHANNEL(pickupgroup) allow reading and setting the pickupgroup of channel.
835
 * Added option to CHANNEL(pickupgroup) allow reading and setting the pickupgroup of channel.
829
 * Mark VALID_EXTEN() deprecated in favor of DIALPLAN_EXISTS()
836
 * Mark VALID_EXTEN() deprecated in favor of DIALPLAN_EXISTS()
830
 * Added extensions to chan_ooh323 in function CHANNEL()
837
 * Added extensions to chan_ooh323 in function CHANNEL()
831

    
   
838

   
832
libpri channel driver (chan_dahdi) DAHDI changes
839
libpri channel driver (chan_dahdi) DAHDI changes
833
--------------------------
840
--------------------------
834
 * Added moh_signaling option to specify what to do when the channel's bridged
841
 * Added moh_signaling option to specify what to do when the channel's bridged
835
   peer puts the ISDN channel on hold.
842
   peer puts the ISDN channel on hold.
836
 * Added display_send and display_receive options to control how the display ie
843
 * Added display_send and display_receive options to control how the display ie
837
   is handled.  To send display text from the dialplan use the SendText()
844
   is handled.  To send display text from the dialplan use the SendText()
838
   application when the option is enabled.
845
   application when the option is enabled.
839
 * Added mcid_send option to allow sending a MCID request on a span.
846
 * Added mcid_send option to allow sending a MCID request on a span.
840

    
   
847

   
841
Calendaring
848
Calendaring
842
--------------------------
849
--------------------------
843
 * Added setvar option to calendar.conf to allow setting channel variables on
850
 * Added setvar option to calendar.conf to allow setting channel variables on
844
   notification channels.
851
   notification channels.
845
 * Added "calendar show types" CLI command to list registered calendar
852
 * Added "calendar show types" CLI command to list registered calendar
846
   connectors.
853
   connectors.
847

    
   
854

   
848
MixMonitor
855
MixMonitor
849
--------------------------
856
--------------------------
850
 * Added two new options, r and t with file name arguments to record
857
 * Added two new options, r and t with file name arguments to record
851
   single direction (unmixed) audio recording separate from the bidirectional
858
   single direction (unmixed) audio recording separate from the bidirectional
852
   (mixed) recording.  The mixed file name argument is optional now as long
859
   (mixed) recording.  The mixed file name argument is optional now as long
853
   as at least one recording option is used.
860
   as at least one recording option is used.
854

    
   
861

   
855
FollowMe
862
FollowMe
856
--------------------------
863
--------------------------
857
 * Added a new option, l, which will disable local call optimization for
864
 * Added a new option, l, which will disable local call optimization for
858
   channels involved with the FollowMe thread.  Use this option to improve
865
   channels involved with the FollowMe thread.  Use this option to improve
859
   compatability for a FollowMe call with certain dialplan apps, options, and
866
   compatability for a FollowMe call with certain dialplan apps, options, and
860
   functions.
867
   functions.
861

    
   
868

   
862
Meetme
869
Meetme
863
--------------------------
870
--------------------------
864
 * Added option "k" that will automatically close the conference when there's
871
 * Added option "k" that will automatically close the conference when there's
865
   only one person left when a user exits the conference.
872
   only one person left when a user exits the conference.
866

    
   
873

   
867
CEL
874
CEL
868
--------------------------
875
--------------------------
869
 * cel_pgsql now supports the 'extra' column for data added using the
876
 * cel_pgsql now supports the 'extra' column for data added using the
870
   CELGenUserEvent() application.
877
   CELGenUserEvent() application.
871

    
   
878

   
872
pbx_lua
879
pbx_lua
873
--------------------------
880
--------------------------
874
 * Support for defining hints has been added to pbx_lua.  See the 'hints' table
881
 * Support for defining hints has been added to pbx_lua.  See the 'hints' table
875
   in the sample extensions.lua file for syntax details.
882
   in the sample extensions.lua file for syntax details.
876
 * Applications that perform jumps in the dialplan such as Goto will now
883
 * Applications that perform jumps in the dialplan such as Goto will now
877
   execute properly.  When pbx_lua detects that the context, extension, or
884
   execute properly.  When pbx_lua detects that the context, extension, or
878
   priority we are executing on has changed it will immediately return control
885
   priority we are executing on has changed it will immediately return control
879
   to the asterisk PBX engine.  Currently the engine cannot detect a Goto to
886
   to the asterisk PBX engine.  Currently the engine cannot detect a Goto to
880
   the priority after the currently executing priority.
887
   the priority after the currently executing priority.
881
 * An autoservice is now started by default for pbx_lua channels.  It can be
888
 * An autoservice is now started by default for pbx_lua channels.  It can be
882
   stopped and restarted using the autoservice_stop() and autoservice_start()
889
   stopped and restarted using the autoservice_stop() and autoservice_start()
883
   functions.
890
   functions.
884

    
   
891

   
885
res_fax
892
res_fax
886
--------------------------
893
--------------------------
887
 * The ReceiveFAXStatus and SendFAXStatus manager events have been consolidated
894
 * The ReceiveFAXStatus and SendFAXStatus manager events have been consolidated
888
   into a FAXStatus event with an 'Operation' header that will be either
895
   into a FAXStatus event with an 'Operation' header that will be either
889
   'send', 'receive', and 'gateway'.
896
   'send', 'receive', and 'gateway'.
890
 * T.38 gateway functionality has been added to res_fax (and res_fax_spandsp).
897
 * T.38 gateway functionality has been added to res_fax (and res_fax_spandsp).
891
   Set FAXOPT(gateway)=yes to enable this functionality on a channel. This
898
   Set FAXOPT(gateway)=yes to enable this functionality on a channel. This
892
   feature will handle converting a fax call between an audio T.30 fax terminal
899
   feature will handle converting a fax call between an audio T.30 fax terminal
893
   and an IFP T.38 fax terminal.
900
   and an IFP T.38 fax terminal.
894

    
   
901

   
895
SIP Changes
902
SIP Changes
896
-----------
903
-----------
897
 * Add T38 support for REJECTED state where T.38 Negotiation is explicitly rejected.
904
 * Add T38 support for REJECTED state where T.38 Negotiation is explicitly rejected.
898
 * Add option encryption_taglen to set auth taglen only 32 and 80 are supported currently.
905
 * Add option encryption_taglen to set auth taglen only 32 and 80 are supported currently.
899
 * SIP now generates security events using the Security Events Framework for REGISTER and INVITE.
906
 * SIP now generates security events using the Security Events Framework for REGISTER and INVITE.
900

    
   
907

   
901
Queue changes
908
Queue changes
902
-------------
909
-------------
903
 * Added general option negative_penalty_invalid default off. when set
910
 * Added general option negative_penalty_invalid default off. when set
904
   members are seen as invalid/logged out when there penalty is negative.
911
   members are seen as invalid/logged out when there penalty is negative.
905
   for realtime members when set remove from queue will set penalty to -1.
912
   for realtime members when set remove from queue will set penalty to -1.
906
 * Added queue option autopausedelay when autopause is enabled it will be
913
 * Added queue option autopausedelay when autopause is enabled it will be
907
   delayed for this number of seconds since last successful call if there
914
   delayed for this number of seconds since last successful call if there
908
   was no prior call the agent will be autopaused immediately.
915
   was no prior call the agent will be autopaused immediately.
909
 * Added member option ignorebusy this when set and ringinuse is not
916
 * Added member option ignorebusy this when set and ringinuse is not
910
   will allow per member control of multiple calls as ringinuse does for
917
   will allow per member control of multiple calls as ringinuse does for
911
   the Queue.
918
   the Queue.
912
 * Added global option check_state_unknown to enforce checking of device state
919
 * Added global option check_state_unknown to enforce checking of device state
913
   when the device state is unknown app_queue will see unknown as available.
920
   when the device state is unknown app_queue will see unknown as available.
914

    
   
921

   
915
Applications
922
Applications
916
------------
923
------------
917
 * Added 'v' option to MeetMe to play voicemail greetings when a user joins/leaves
924
 * Added 'v' option to MeetMe to play voicemail greetings when a user joins/leaves
918
   a MeetMe conference
925
   a MeetMe conference
919
 * Added 'k' option to MeetMe to automatically kill the conference when there's only
926
 * Added 'k' option to MeetMe to automatically kill the conference when there's only
920
   one participant left (much like a normal call bridge)
927
   one participant left (much like a normal call bridge)
921
 * Added extra argument to Originate to set timeout.
928
 * Added extra argument to Originate to set timeout.
922

    
   
929

   
923
Asterisk Database
930
Asterisk Database
924
-----------------
931
-----------------
925
 * The internal Asterisk database has been switched from Berkeley DB 1.86 to
932
 * The internal Asterisk database has been switched from Berkeley DB 1.86 to
926
   SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
933
   SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
927
   utility in the UTILS section of menuselect. If an existing astdb is found and no
934
   utility in the UTILS section of menuselect. If an existing astdb is found and no
928
   astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
935
   astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
929
   convert an existing astdb to the SQLite3 version automatically at runtime.
936
   convert an existing astdb to the SQLite3 version automatically at runtime.
930

    
   
937

   
931
Asterisk Modules
938
Asterisk Modules
932
----------------
939
----------------
933
 * Modules marked as deprecated are no longer marked as building by default. Enabling
940
 * Modules marked as deprecated are no longer marked as building by default. Enabling
934
   these modules is still available via menuselect.
941
   these modules is still available via menuselect.
935

    
   
942

   
936
IAX2 Changes
943
IAX2 Changes
937
------------
944
------------
938
 * authdebug is now disabled by default. To enable this functionaility again
945
 * authdebug is now disabled by default. To enable this functionaility again
939
   set authdebug = yes in iax.conf.
946
   set authdebug = yes in iax.conf.
940

    
   
947

   
941
RTP Changes
948
RTP Changes
942
-----------
949
-----------
943
 * The rtp.conf setting "strictrtp" is now enabled by default. In previous
950
 * The rtp.conf setting "strictrtp" is now enabled by default. In previous
944
   releases it was disabled.
951
   releases it was disabled.
945

    
   
952

   
946
PBX Core
953
PBX Core
947
--------
954
--------
948
 * The PBX core previously made a call with a non-existing extension test for
955
 * The PBX core previously made a call with a non-existing extension test for
949
   extension s@default and jump there if the extension existed.
956
   extension s@default and jump there if the extension existed.
950
   This was a bad default behaviour and violated the principle of least surprise.
957
   This was a bad default behaviour and violated the principle of least surprise.
951
   It has therefore been changed in this release. It may affect some
958
   It has therefore been changed in this release. It may affect some
952
   applications and configurations that rely on this behaviour. Most channel
959
   applications and configurations that rely on this behaviour. Most channel
953
   drivers have avoided this for many releases by testing whether the extension
960
   drivers have avoided this for many releases by testing whether the extension
954
   called exists before starting the PBX and generating a local error.
961
   called exists before starting the PBX and generating a local error.
955
   This behaviour still exists and works as before.
962
   This behaviour still exists and works as before.
956

    
   
963

   
957
   Extension "s" is used when no extension is given in a channel driver,
964
   Extension "s" is used when no extension is given in a channel driver,
958
   like immediate answer in DAHDI or calling to a domain with no user part
965
   like immediate answer in DAHDI or calling to a domain with no user part
959
   in a SIP uri.
966
   in a SIP uri.
960

    
   
967

   
961
------------------------------------------------------------------------------
968
------------------------------------------------------------------------------
962
--- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
969
--- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
963
------------------------------------------------------------------------------
970
------------------------------------------------------------------------------
964

    
   
971

   
965
SIP Changes
972
SIP Changes
966
-----------
973
-----------
967
 * Due to potential username discovery vulnerabilities, the 'nat' setting in sip.conf
974
 * Due to potential username discovery vulnerabilities, the 'nat' setting in sip.conf
968
   now defaults to force_rport. It is very important that phones requiring nat=no be
975
   now defaults to force_rport. It is very important that phones requiring nat=no be
969
   specifically set as such instead of relying on the default setting. If at all
976
   specifically set as such instead of relying on the default setting. If at all
970
   possible, all devices should have nat settings configured in the general section as
977
   possible, all devices should have nat settings configured in the general section as
971
   opposed to configuring nat per-device.
978
   opposed to configuring nat per-device.
972
 * Added preferred_codec_only option in sip.conf. This feature limits the joint
979
 * Added preferred_codec_only option in sip.conf. This feature limits the joint
973
   codecs sent in response to an INVITE to the single most preferred codec.
980
   codecs sent in response to an INVITE to the single most preferred codec.
974
 * Added SIP_CODEC_OUTBOUND dialplan variable which can be used to set the codec
981
 * Added SIP_CODEC_OUTBOUND dialplan variable which can be used to set the codec
975
   to be used for the outgoing call. It must be one of the codecs configured
982
   to be used for the outgoing call. It must be one of the codecs configured
976
   for the device.
983
   for the device.
977
 * Added tlsprivatekey option to sip.conf.  This allows a separate .pem file
984
 * Added tlsprivatekey option to sip.conf.  This allows a separate .pem file
978
   to be used for holding a private key.  If tlsprivatekey is not specified,
985
   to be used for holding a private key.  If tlsprivatekey is not specified,
979
   tlscertfile is searched for both public and private key.
986
   tlscertfile is searched for both public and private key.
980
 * Added tlsclientmethod option to sip.conf.  This allows the protocol for
987
 * Added tlsclientmethod option to sip.conf.  This allows the protocol for
981
   outbound client connections to be specified.
988
   outbound client connections to be specified.
982
 * The sendrpid parameter has been expanded to include the options
989
 * The sendrpid parameter has been expanded to include the options
983
   'rpid' and 'pai'. Setting sendrpid to 'rpid' will cause Remote-Party-ID
990
   'rpid' and 'pai'. Setting sendrpid to 'rpid' will cause Remote-Party-ID
984
   header to be sent (equivalent to setting sendrpid=yes) and setting
991
   header to be sent (equivalent to setting sendrpid=yes) and setting
985
   sendrpid to 'pai' will cause P-Asserted-Identity header to be sent.
992
   sendrpid to 'pai' will cause P-Asserted-Identity header to be sent.
986
 * The 'ignoresdpversion' behavior has been made automatic when the SDP received
993
 * The 'ignoresdpversion' behavior has been made automatic when the SDP received
987
   is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
994
   is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
988
   since the call will fail if Asterisk does not process the incoming SDP, Asterisk
995
   since the call will fail if Asterisk does not process the incoming SDP, Asterisk
989
   will accept the SDP even if the SDP version number is not properly incremented,
996
   will accept the SDP even if the SDP version number is not properly incremented,
990
   but will generate a warning in the log indicating that the SIP peer that sent
997
   but will generate a warning in the log indicating that the SIP peer that sent
991
   the SDP should have the 'ignoresdpversion' option set.
998
   the SDP should have the 'ignoresdpversion' option set.
992
 * The 'nat' option has now been been changed to have yes, no, force_rport, and
999
 * The 'nat' option has now been been changed to have yes, no, force_rport, and
993
   comedia as valid values. Setting it to yes forces RFC 3581 behavior and enables
1000
   comedia as valid values. Setting it to yes forces RFC 3581 behavior and enables
994
   symmetric RTP support. Setting it to no only enables RFC 3581 behavior if the
1001
   symmetric RTP support. Setting it to no only enables RFC 3581 behavior if the
995
   remote side requests it and disables symmetric RTP support. Setting it to
1002
   remote side requests it and disables symmetric RTP support. Setting it to
996
   force_rport forces RFC 3581 behavior and disables symmetric RTP support.
1003
   force_rport forces RFC 3581 behavior and disables symmetric RTP support.
997
   Setting it to comedia enables RFC 3581 behavior if the remote side requests it
1004
   Setting it to comedia enables RFC 3581 behavior if the remote side requests it
998
   and enables symmetric RTP support.
1005
   and enables symmetric RTP support.
999
 * Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
1006
 * Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
1000
   response.  This permits the master channel to know how each channel dialled
1007
   response.  This permits the master channel to know how each channel dialled
1001
   in a multi-channel setup resolved in an individual way. This carries a
1008
   in a multi-channel setup resolved in an individual way. This carries a
1002
   performance penalty and can be disabled in sip.conf using the
1009
   performance penalty and can be disabled in sip.conf using the
1003
   'storesipcause' option.
1010
   'storesipcause' option.
1004
 * Added 'externtcpport' and 'externtlsport' options to allow custom port
1011
 * Added 'externtcpport' and 'externtlsport' options to allow custom port
1005
   configuration for the externip and externhost options when tcp or tls is used.
1012
   configuration for the externip and externhost options when tcp or tls is used.
1006
 * Added support for message body (stored in content variable) to SIP NOTIFY message
1013
 * Added support for message body (stored in content variable) to SIP NOTIFY message
1007
   accessible via AMI and CLI.
1014
   accessible via AMI and CLI.
1008
 * Added 'media_address' configuration option which can be used to explicitly specify
1015
 * Added 'media_address' configuration option which can be used to explicitly specify
1009
   the IP address to use in the SDP for media (audio, video, and text) streams.
1016
   the IP address to use in the SDP for media (audio, video, and text) streams.
1010
 * Added 'unsolicited_mailbox' configuration option which specifies the virtual mailbox
1017
 * Added 'unsolicited_mailbox' configuration option which specifies the virtual mailbox
1011
   that the new/old count should be stored on if an unsolicited MWI NOTIFY message is
1018
   that the new/old count should be stored on if an unsolicited MWI NOTIFY message is
1012
   received.
1019
   received.
1013
 * Added 'use_q850_reason' configuration option for generating and parsing
1020
 * Added 'use_q850_reason' configuration option for generating and parsing
1014
   if available  Reason: Q.850;cause=<cause code> header. It is implemented
1021
   if available  Reason: Q.850;cause=<cause code> header. It is implemented
1015
   in some gateways for better passing PRI/SS7 cause codes via SIP.
1022
   in some gateways for better passing PRI/SS7 cause codes via SIP.
1016
 * When dialing SIP peers, a new component may be added to the end of the dialstring
1023
 * When dialing SIP peers, a new component may be added to the end of the dialstring
1017
   to indicate that a specific remote IP address or host should be used when dialing
1024
   to indicate that a specific remote IP address or host should be used when dialing
1018
   the particular peer. The dialstring format is SIP/peer/exten/host_or_IP.
1025
   the particular peer. The dialstring format is SIP/peer/exten/host_or_IP.
1019
 * SRTP SDES support for encrypting calls to/from Asterisk over SIP. The
1026
 * SRTP SDES support for encrypting calls to/from Asterisk over SIP. The
1020
   ability to selectively force bridged channels to also be encrypted is also
1027
   ability to selectively force bridged channels to also be encrypted is also
1021
   implemented. Branching in the dialplan can be done based on whether or not
1028
   implemented. Branching in the dialplan can be done based on whether or not
1022
   a channel has secure media and/or signaling.
1029
   a channel has secure media and/or signaling.
1023
 * Added directmediapermit/directmediadeny to limit which peers can send direct media
1030
 * Added directmediapermit/directmediadeny to limit which peers can send direct media
1024
   to each other
1031
   to each other
1025
 * Added the 'snom_aoc_enabled' option to turn on support for sending Advice of
1032
 * Added the 'snom_aoc_enabled' option to turn on support for sending Advice of
1026
   Charge messages to snom phones.
1033
   Charge messages to snom phones.
1027
 * Added support for G.719 media streams.
1034
 * Added support for G.719 media streams.
1028
 * Added support for 16khz signed linear media streams.
1035
 * Added support for 16khz signed linear media streams.
1029
 * SIP is now able to bind to and communicate with IPv6 addresses. In addition,
1036
 * SIP is now able to bind to and communicate with IPv6 addresses. In addition,
1030
   RTP has been outfitted with the same abilities.
1037
   RTP has been outfitted with the same abilities.
1031
 * Added support for setting the Max-Forwards: header in SIP requests. Setting is
1038
 * Added support for setting the Max-Forwards: header in SIP requests. Setting is
1032
   available in device configurations as well as in the dial plan.
1039
   available in device configurations as well as in the dial plan.
1033
 * Addition of the 'subscribe_network_change' option for turning on and off
1040
 * Addition of the 'subscribe_network_change' option for turning on and off
1034
   res_stun_monitor module support in chan_sip.
1041
   res_stun_monitor module support in chan_sip.
1035
 * Addition of the 'auth_options_requests' option for turning on and off
1042
 * Addition of the 'auth_options_requests' option for turning on and off
1036
   authentication for OPTIONS requests in chan_sip.
1043
   authentication for OPTIONS requests in chan_sip.
1037

    
   
1044

   
1038
Configuration files
1045
Configuration files
1039
-------------------
1046
-------------------
1040
 * Add #tryinclude statement for config files.  This provides the same
1047
 * Add #tryinclude statement for config files.  This provides the same
1041
   functionality as the #include statement however an asterisk module will
1048
   functionality as the #include statement however an asterisk module will
1042
   still load if the filename does not exist.  Using the #include statement
1049
   still load if the filename does not exist.  Using the #include statement
1043
   Asterisk will not allow the module to load.
1050
   Asterisk will not allow the module to load.
1044

    
   
1051

   
1045
IAX2 Changes
1052
IAX2 Changes
1046
-----------
1053
-----------
1047
 * Added rtsavesysname option into iax.conf to allow the systname to be saved
1054
 * Added rtsavesysname option into iax.conf to allow the systname to be saved
1048
   on realtime updates.
1055
   on realtime updates.
1049
 * Added the ability for chan_iax2 to inform the dialplan whether or not
1056
 * Added the ability for chan_iax2 to inform the dialplan whether or not
1050
   encryption is being used. This interoperates with the SIP SRTP implementation
1057
   encryption is being used. This interoperates with the SIP SRTP implementation
1051
   so that a secure SIP call can be bridged to a secure IAX call when the
1058
   so that a secure SIP call can be bridged to a secure IAX call when the
1052
   dialplan requires bridged channels to be "secure".
1059
   dialplan requires bridged channels to be "secure".
1053
 * Addition of the 'subscribe_network_change' option for turning on and off
1060
 * Addition of the 'subscribe_network_change' option for turning on and off
1054
   res_stun_monitor module support in chan_iax.
1061
   res_stun_monitor module support in chan_iax.
1055

    
   
1062

   
1056

    
   
1063

   
1057
MGCP Changes
1064
MGCP Changes
1058
------------
1065
------------
1059
 * Added ability to preset channel variables on indicated lines with the setvar
1066
 * Added ability to preset channel variables on indicated lines with the setvar
1060
   configuration option.  Also, clearvars=all resets the list of variables back
1067
   configuration option.  Also, clearvars=all resets the list of variables back
1061
   to none.
1068
   to none.
1062
 * PacketCable NCS 1.0 support has been added for Docsis/Eurodocsis Networks.
1069
 * PacketCable NCS 1.0 support has been added for Docsis/Eurodocsis Networks.
1063
   See configs/res_pktccops.conf for more information.
1070
   See configs/res_pktccops.conf for more information.
1064

    
   
1071

   
1065
XMPP Google Talk/Jingle changes
1072
XMPP Google Talk/Jingle changes
1066
-------------------------------
1073
-------------------------------
1067
  * Added the externip option to gtalk.conf.
1074
  * Added the externip option to gtalk.conf.
1068
  * Added the stunaddr option to gtalk.conf which allows for the automatic
1075
  * Added the stunaddr option to gtalk.conf which allows for the automatic
1069
    retrieval of the external ip from a stun server.
1076
    retrieval of the external ip from a stun server.
1070

    
   
1077

   
1071
Applications
1078
Applications
1072
------------
1079
------------
1073
 * Added 'p' option to PickupChan() to allow for picking up channel by the first
1080
 * Added 'p' option to PickupChan() to allow for picking up channel by the first
1074
   match to a partial channel name.
1081
   match to a partial channel name.
1075
 * Added .m3u support for Mp3Player application.
1082
 * Added .m3u support for Mp3Player application.
1076
 * Added progress option to the app_dial D() option.  When progress DTMF is
1083
 * Added progress option to the app_dial D() option.  When progress DTMF is
1077
   present, those values are sent immediately upon receiving a PROGRESS message
1084
   present, those values are sent immediately upon receiving a PROGRESS message
1078
   regardless if the call has been answered or not.
1085
   regardless if the call has been answered or not.
1079
 * Added functionality to the app_dial F() option to continue with execution
1086
 * Added functionality to the app_dial F() option to continue with execution
1080
   at the current location when no parameters are provided.
1087
   at the current location when no parameters are provided.
1081
 * Added the 'a' option to app_dial to answer the calling channel before any
1088
 * Added the 'a' option to app_dial to answer the calling channel before any
1082
   announcements or macros are executed.
1089
   announcements or macros are executed.
1083
 * Modified app_dial to set answertime when the called channel answers even if
1090
 * Modified app_dial to set answertime when the called channel answers even if
1084
   the called channel hangs up during playback of an announcement.
1091
   the called channel hangs up during playback of an announcement.
1085
 * Modified app_dial 'r' option to support an additional parameter to play an
1092
 * Modified app_dial 'r' option to support an additional parameter to play an
1086
   indication tone from indications.conf
1093
   indication tone from indications.conf
1087
 * Added c() option to app_chanspy. This option allows custom DTMF to be set
1094
 * Added c() option to app_chanspy. This option allows custom DTMF to be set
1088
   to cycle through the next available channel.  By default this is still '*'.
1095
   to cycle through the next available channel.  By default this is still '*'.
1089
 * Added x() option to app_chanspy.  This option allows DTMF to be set to
1096
 * Added x() option to app_chanspy.  This option allows DTMF to be set to
1090
   exit the application.
1097
   exit the application.
1091
 * The Voicemail application has been improved to automatically ignore messages
1098
 * The Voicemail application has been improved to automatically ignore messages
1092
   that only contain silence.
1099
   that only contain silence.
1093
 * If you set maxmsg to 0 in voicemail.conf, Voicemail will consider the
1100
 * If you set maxmsg to 0 in voicemail.conf, Voicemail will consider the
1094
   associated mailbox(es) to be greetings-only.
1101
   associated mailbox(es) to be greetings-only.
1095
 * The ChanSpy application now has the 'S' option, which makes the application
1102
 * The ChanSpy application now has the 'S' option, which makes the application
1096
   automatically exit once it hits a point where no more channels are available
1103
   automatically exit once it hits a point where no more channels are available
1097
   to spy on.
1104
   to spy on.
1098
 * The ChanSpy application also now has the 'E' option, which spies on a single
1105
 * The ChanSpy application also now has the 'E' option, which spies on a single
1099
   channel and exits when that channel hangs up.
1106
   channel and exits when that channel hangs up.
1100
 * The MeetMe application now turns on the DENOISE() function by default, for
1107
 * The MeetMe application now turns on the DENOISE() function by default, for
1101
   each participant.  In our tests, this has significantly decreased background
1108
   each participant.  In our tests, this has significantly decreased background
1102
   noise (especially noisy data centers).
1109
   noise (especially noisy data centers).
1103
 * Voicemail now permits storage of secrets in a separate file, located in the
1110
 * Voicemail now permits storage of secrets in a separate file, located in the
1104
   spool directory of each individual user.  The control for this is located in
1111
   spool directory of each individual user.  The control for this is located in
1105
   the "passwordlocation" option in voicemail.conf.  Please see the sample
1112
   the "passwordlocation" option in voicemail.conf.  Please see the sample
1106
   configuration for more information.
1113
   configuration for more information.
1107
 * The ChanIsAvail application now exposes the returned cause code using a separate
1114
 * The ChanIsAvail application now exposes the returned cause code using a separate
1108
   variable, AVAILCAUSECODE, instead of overwriting the device state in AVAILSTATUS.
1115
   variable, AVAILCAUSECODE, instead of overwriting the device state in AVAILSTATUS.
1109
 * Added 'd' option to app_followme.  This option disables the "Please hold"
1116
 * Added 'd' option to app_followme.  This option disables the "Please hold"
1110
   announcement.
1117
   announcement.
1111
 * Added 'y' option to app_record. This option enables a mode where any DTMF digit
1118
 * Added 'y' option to app_record. This option enables a mode where any DTMF digit
1112
   received will terminate recording.
1119
   received will terminate recording.
1113
 * Voicemail now supports per mailbox settings for folders when using IMAP storage.
1120
 * Voicemail now supports per mailbox settings for folders when using IMAP storage.
1114
   Previously the folder could only be set per context, but has now been extended
1121
   Previously the folder could only be set per context, but has now been extended
1115
   using the imapfolder option.
1122
   using the imapfolder option.
1116
 * Voicemail now supports per mailbox settings for nextaftercmd and minsecs.
1123
 * Voicemail now supports per mailbox settings for nextaftercmd and minsecs.
1117
 * Voicemail now allows the pager date format to be specified separately from the
1124
 * Voicemail now allows the pager date format to be specified separately from the
1118
   email date format.
1125
   email date format.
1119
 * New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
1126
 * New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
1120
   to allow joining, leaving, and sending text to group chats.
1127
   to allow joining, leaving, and sending text to group chats.
1121
 * MeetMe has a new option 'G' to play an announcement before joining a conference.
1128
 * MeetMe has a new option 'G' to play an announcement before joining a conference.
1122
 * Page has a new option 'A(x)' which will playback an announcement simultaneously
1129
 * Page has a new option 'A(x)' which will playback an announcement simultaneously
1123
   to all paged phones (and optionally excluding the caller's one using the new
1130
   to all paged phones (and optionally excluding the caller's one using the new
1124
   option 'n') before the call is bridged.
1131
   option 'n') before the call is bridged.
1125
 * The 'f' option to Dial has been augmented to take an optional argument. If no
1132
 * The 'f' option to Dial has been augmented to take an optional argument. If no
1126
   argument is provided, the 'f' option works as it always has. If an argument is
1133
   argument is provided, the 'f' option works as it always has. If an argument is
1127
   provided, then the connected party information of all outgoing channels created
1134
   provided, then the connected party information of all outgoing channels created
1128
   during the Dial will be set to the argument passed to the 'f' option.
1135
   during the Dial will be set to the argument passed to the 'f' option.
1129
 * Dial now inherits the GOSUB_RETVAL from the peer, when the U() option runs a
1136
 * Dial now inherits the GOSUB_RETVAL from the peer, when the U() option runs a
1130
   Gosub on the peer.
1137
   Gosub on the peer.
1131
 * The OSP lookup application adds in/outbound network ID, optional security,
1138
 * The OSP lookup application adds in/outbound network ID, optional security,
1132
   number portability, QoS reporting, destination IP port, custom info and service
1139
   number portability, QoS reporting, destination IP port, custom info and service
1133
   type features.
1140
   type features.
1134
 * Added new application VMSayName that will play the recorded name of the voicemail
1141
 * Added new application VMSayName that will play the recorded name of the voicemail
1135
   user if it exists, otherwise will play the mailbox number.
1142
   user if it exists, otherwise will play the mailbox number.
1136
 * Added custom device states to ConfBridge bridges.  Use 'confbridge:<name>' to
1143
 * Added custom device states to ConfBridge bridges.  Use 'confbridge:<name>' to
1137
   retrieve state for a particular bridge, where <name> is the conference name
1144
   retrieve state for a particular bridge, where <name> is the conference name
1138
 * app_directory now allows exiting at any time using the operator or pound key.
1145
 * app_directory now allows exiting at any time using the operator or pound key.
1139
 * Voicemail now supports setting a locale per-mailbox.
1146
 * Voicemail now supports setting a locale per-mailbox.
1140
 * Two new applications are provided for declining counting phrases in multiple
1147
 * Two new applications are provided for declining counting phrases in multiple
1141
   languages.  See the application notes for SayCountedNoun and SayCountedAdj for
1148
   languages.  See the application notes for SayCountedNoun and SayCountedAdj for
1142
   more information.
1149
   more information.
1143
 * Voicemail now runs the externnotify script when pollmailboxes is activated and
1150
 * Voicemail now runs the externnotify script when pollmailboxes is activated and
1144
   notices a change.
1151
   notices a change.
1145
 * Voicemail now includes rdnis within msgXXXX.txt file.
1152
 * Voicemail now includes rdnis within msgXXXX.txt file.
1146
 * ExternalIVR now supports IPv6 addresses.
1153
 * ExternalIVR now supports IPv6 addresses.
1147
 * Added 'D' command to ExternalIVR. Details are available on the Asterisk wiki
1154
 * Added 'D' command to ExternalIVR. Details are available on the Asterisk wiki
1148
   at https://wiki.asterisk.org/wiki/x/oQBB
1155
   at https://wiki.asterisk.org/wiki/x/oQBB
1149
 * ParkedCall and Park can now specify the parking lot to use.
1156
 * ParkedCall and Park can now specify the parking lot to use.
1150

    
   
1157

   
1151
Dialplan Functions
1158
Dialplan Functions
1152
------------------
1159
------------------
1153
 * SRVQUERY and SRVRESULT functions added. This can be used to query and iterate
1160
 * SRVQUERY and SRVRESULT functions added. This can be used to query and iterate
1154
   over SRV records associated with a specific service. From the CLI, type
1161
   over SRV records associated with a specific service. From the CLI, type
1155
   'core show function SRVQUERY' and 'core show function SRVRESULT' for more
1162
   'core show function SRVQUERY' and 'core show function SRVRESULT' for more
1156
   details on how these may be used.
1163
   details on how these may be used.
1157
 * PITCH_SHIFT dialplan function added. This function can be used to modify the
1164
 * PITCH_SHIFT dialplan function added. This function can be used to modify the
1158
   pitch of a channel's tx and rx audio streams.
1165
   pitch of a channel's tx and rx audio streams.
1159
 * Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
1166
 * Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
1160
   setting various connected line and redirecting party information.
1167
   setting various connected line and redirecting party information.
1161
 * CALLERID and CONNECTEDLINE dialplan functions have been extended to
1168
 * CALLERID and CONNECTEDLINE dialplan functions have been extended to
1162
   support ISDN subaddressing.
1169
   support ISDN subaddressing.
1163
 * The CHANNEL() function now supports the "name" and "checkhangup" options.
1170
 * The CHANNEL() function now supports the "name" and "checkhangup" options.
1164
 * For DAHDI channels, the CHANNEL() dialplan function now allows
1171
 * For DAHDI channels, the CHANNEL() dialplan function now allows
1165
   the dialplan to request changes in the configuration of the active
1172
   the dialplan to request changes in the configuration of the active
1166
   echo canceller on the channel (if any), for the current call only.
1173
   echo canceller on the channel (if any), for the current call only.
1167
   The syntax is:
1174
   The syntax is:
1168

    
   
1175

   
1169
   exten => s,n,Set(CHANNEL(echocan_mode)=off)
1176
   exten => s,n,Set(CHANNEL(echocan_mode)=off)
1170

    
   
1177

   
1171
   The possible values are:
1178
   The possible values are:
1172

    
   
1179

   
1173
     on - normal mode (the echo canceller is actually reinitialized)
1180
     on - normal mode (the echo canceller is actually reinitialized)
1174
     off - disabled
1181
     off - disabled
1175
     fax - FAX/data mode (NLP disabled if possible, otherwise completely
1182
     fax - FAX/data mode (NLP disabled if possible, otherwise completely
1176
           disabled)
1183
           disabled)
1177
     voice - voice mode (returns from FAX mode, reverting the changes that
1184
     voice - voice mode (returns from FAX mode, reverting the changes that
1178
             were made when FAX mode was requested)
1185
             were made when FAX mode was requested)
1179
 * Added new dialplan function MASTER_CHANNEL(), which permits retrieving
1186
 * Added new dialplan function MASTER_CHANNEL(), which permits retrieving
1180
   and setting variables on the channel which created the current channel.
1187
   and setting variables on the channel which created the current channel.
1181
   Administrators should take care to avoid naming conflicts, when multiple
1188
   Administrators should take care to avoid naming conflicts, when multiple
1182
   channels are dialled at once, especially when used with the Local channel
1189
   channels are dialled at once, especially when used with the Local channel
1183
   construct (which all could set variables on the master channel).  Usage
1190
   construct (which all could set variables on the master channel).  Usage
1184
   of the HASH() dialplan function, with the key set to the name of the slave
1191
   of the HASH() dialplan function, with the key set to the name of the slave
1185
   channel, is one approach that will avoid conflicts.
1192
   channel, is one approach that will avoid conflicts.
1186
 * Added new dialplan function MUTEAUDIO() for muting inbound and/or outbound
1193
 * Added new dialplan function MUTEAUDIO() for muting inbound and/or outbound
1187
   audio in a channel.
1194
   audio in a channel.
1188
 * func_odbc now allows multiple row results to be retrieved without using
1195
 * func_odbc now allows multiple row results to be retrieved without using
1189
   mode=multirow.  If rowlimit is set, then additional rows may be retrieved
1196
   mode=multirow.  If rowlimit is set, then additional rows may be retrieved
1190
   from the same query by using the name of the function which retrieved the
1197
   from the same query by using the name of the function which retrieved the
1191
   first row as an argument to ODBC_FETCH().
1198
   first row as an argument to ODBC_FETCH().
1192
 * Added JABBER_RECEIVE, which permits receiving XMPP messages from the
1199
 * Added JABBER_RECEIVE, which permits receiving XMPP messages from the
1193
   dialplan. This function returns the content of the received message.
1200
   dialplan. This function returns the content of the received message.
1194
 * Added REPLACE, which searches a given variable name for a set of characters,
1201
 * Added REPLACE, which searches a given variable name for a set of characters,
1195
   then either replaces them with a single character or deletes them.
1202
   then either replaces them with a single character or deletes them.
1196
 * Added PASSTHRU, which literally passes the same argument back as its return
1203
 * Added PASSTHRU, which literally passes the same argument back as its return
1197
   value.  The intent is to be able to use a literal string argument to
1204
   value.  The intent is to be able to use a literal string argument to
1198
   functions that currently require a variable name as an argument.
1205
   functions that currently require a variable name as an argument.
1199
 * HASH-associated variables now can be inherited across channel creation, by
1206
 * HASH-associated variables now can be inherited across channel creation, by
1200
   prefixing the name of the hash at assignment with the appropriate number of
1207
   prefixing the name of the hash at assignment with the appropriate number of
1201
   underscores, just like variables.
1208
   underscores, just like variables.
1202
 * GROUP_MATCH_COUNT has been improved to allow regex matching on category
1209
 * GROUP_MATCH_COUNT has been improved to allow regex matching on category
1203
 * CHANNEL(secure_bridge_signaling) and CHANNEL(secure_bridge_media) to set/get
1210
 * CHANNEL(secure_bridge_signaling) and CHANNEL(secure_bridge_media) to set/get
1204
   whether or not channels that are bridged to the current channel will be
1211
   whether or not channels that are bridged to the current channel will be
1205
   required to have secure signaling and/or media.
1212
   required to have secure signaling and/or media.
1206
 * CHANNEL(secure_signaling) and CHANNEL(secure_media) to get whether or not
1213
 * CHANNEL(secure_signaling) and CHANNEL(secure_media) to get whether or not
1207
   the current channel has secure signaling and/or media.
1214
   the current channel has secure signaling and/or media.
1208
 * For DAHDI/ISDN channels, the CHANNEL() dialplan function now supports the
1215
 * For DAHDI/ISDN channels, the CHANNEL() dialplan function now supports the
1209
   "no_media_path" option.
1216
   "no_media_path" option.
1210
   Returns "0" if there is a B channel associated with the call.
1217
   Returns "0" if there is a B channel associated with the call.
1211
   Returns "1" if no B channel is associated with the call.  The call is either
1218
   Returns "1" if no B channel is associated with the call.  The call is either
1212
   on hold or is a call waiting call.
1219
   on hold or is a call waiting call.
1213
 * Added option to dialplan function CDR(), the 'f' option
1220
 * Added option to dialplan function CDR(), the 'f' option
1214
   allows for high resolution times for billsec and duration fields.
1221
   allows for high resolution times for billsec and duration fields.
1215
 * FILE() now supports line-mode and writing.
1222
 * FILE() now supports line-mode and writing.
1216
 * Added FIELDNUM(), which returns the 1-based offset of a field in a list.
1223
 * Added FIELDNUM(), which returns the 1-based offset of a field in a list.
1217
 * FRAME_TRACE(), for tracking internal ast_frames on a channel.
1224
 * FRAME_TRACE(), for tracking internal ast_frames on a channel.
1218

    
   
1225

   
1219
Dialplan Variables
1226
Dialplan Variables
1220
------------------
1227
------------------
1221
 * Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
1228
 * Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
1222
 * Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
1229
 * Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
1223
   and is set when a dynamic feature is triggered.
1230
   and is set when a dynamic feature is triggered.
1224
 * Added PARKINGLOT which can be used with parkeddynamic feature.conf option
1231
 * Added PARKINGLOT which can be used with parkeddynamic feature.conf option
1225
   to dynamically create a new parking lot matching the value this varible is
1232
   to dynamically create a new parking lot matching the value this varible is
1226
   set to.
1233
   set to.
1227
 * Added PARKINGDYNAMIC which represents the template parkinglot defined in
1234
 * Added PARKINGDYNAMIC which represents the template parkinglot defined in
1228
   features.conf that should be the base for dynamic parkinglots.
1235
   features.conf that should be the base for dynamic parkinglots.
1229
 * Added PARKINGDYNCONTEXT which tells what context a newly created dynamic
1236
 * Added PARKINGDYNCONTEXT which tells what context a newly created dynamic
1230
   parkinglot should have.
1237
   parkinglot should have.
1231
 * Added PARKINGDYNEXTEN which tells what parking exten a newly created dynamic
1238
 * Added PARKINGDYNEXTEN which tells what parking exten a newly created dynamic
1232
   parkinglot should have.
1239
   parkinglot should have.
1233
 * Added PARKINGDYNPOS which holds what parking positions a dynamic parkinglot
1240
 * Added PARKINGDYNPOS which holds what parking positions a dynamic parkinglot
1234
   should have.
1241
   should have.
1235

    
   
1242

   
1236
Queue changes
1243
Queue changes
1237
-------------
1244
-------------
1238
 * Added "ready" option to QUEUE_MEMBER counting to count free agents whose wrap-up
1245
 * Added "ready" option to QUEUE_MEMBER counting to count free agents whose wrap-up
1239
   timeout has expired.
1246
   timeout has expired.
1240
 * Added 'R' option to app_queue.  This option stops moh and indicates ringing
1247
 * Added 'R' option to app_queue.  This option stops moh and indicates ringing
1241
   to the caller when an Agent's phone is ringing.  This can be used to indicate
1248
   to the caller when an Agent's phone is ringing.  This can be used to indicate
1242
   to the caller that their call is about to be picked up, which is nice when
1249
   to the caller that their call is about to be picked up, which is nice when
1243
   one has been on hold for an extened period of time.
1250
   one has been on hold for an extened period of time.
1244
 * A new config option, penaltymemberslimit, has been added to queues.conf.
1251
 * A new config option, penaltymemberslimit, has been added to queues.conf.
1245
   When set this option will disregard penalty settings when a queue has too
1252
   When set this option will disregard penalty settings when a queue has too
1246
   few members.
1253
   few members.
1247
 * A new option, 'I' has been added to both app_queue and app_dial.
1254
 * A new option, 'I' has been added to both app_queue and app_dial.
1248
   By setting this option, Asterisk will not update the caller with
1255
   By setting this option, Asterisk will not update the caller with
1249
   connected line changes or redirecting party changes when they occur.
1256
   connected line changes or redirecting party changes when they occur.
1250
 * A 'relative-periodic-announce' option has been added to queues.conf.  When
1257
 * A 'relative-periodic-announce' option has been added to queues.conf.  When
1251
   enabled, this option will cause periodic announce times to be calculated
1258
   enabled, this option will cause periodic announce times to be calculated
1252
   from the end of announcements rather than from the beginning.
1259
   from the end of announcements rather than from the beginning.
1253
 * The autopause option in queues.conf can be passed a new value, "all." The
1260
 * The autopause option in queues.conf can be passed a new value, "all." The
1254
   result is that if a member becomes auto-paused, he will be paused in all
1261
   result is that if a member becomes auto-paused, he will be paused in all
1255
   queues for which he is a member, not just the queue that failed to reach
1262
   queues for which he is a member, not just the queue that failed to reach
1256
   the member.
1263
   the member.
1257
 * Added dialplan function QUEUE_EXISTS to check if a queue exists
1264
 * Added dialplan function QUEUE_EXISTS to check if a queue exists
1258
 * The queue logger now allows events to optionally propagate to a file,
1265
 * The queue logger now allows events to optionally propagate to a file,
1259
   even when realtime logging is turned on.  Additionally, realtime logging
1266
   even when realtime logging is turned on.  Additionally, realtime logging
1260
   supports sending the event arguments to 5 individual fields, although it
1267
   supports sending the event arguments to 5 individual fields, although it
1261
   will fallback to the previous data definition, if the new table layout is
1268
   will fallback to the previous data definition, if the new table layout is
1262
   not found.
1269
   not found.
1263

    
   
1270

   
1264
mISDN channel driver (chan_misdn) changes
1271
mISDN channel driver (chan_misdn) changes
1265
----------------------------------------
1272
----------------------------------------
1266
 * Added display_connected parameter to misdn.conf to put a display string
1273
 * Added display_connected parameter to misdn.conf to put a display string
1267
   in the CONNECT message containing the connected name and/or number if
1274
   in the CONNECT message containing the connected name and/or number if
1268
   the presentation setting permits it.
1275
   the presentation setting permits it.
1269
 * Added display_setup parameter to misdn.conf to put a display string
1276
 * Added display_setup parameter to misdn.conf to put a display string
1270
   in the SETUP message containing the caller name and/or number if the
1277
   in the SETUP message containing the caller name and/or number if the
1271
   presentation setting permits it.
1278
   presentation setting permits it.
1272
 * Made misdn.conf parameters localdialplan and cpndialplan take a -1 to
1279
 * Made misdn.conf parameters localdialplan and cpndialplan take a -1 to
1273
   indicate the dialplan settings are to be obtained from the asterisk
1280
   indicate the dialplan settings are to be obtained from the asterisk
1274
   channel.
1281
   channel.
1275
 * Made misdn.conf parameter callerid accept the "name" <number> format
1282
 * Made misdn.conf parameter callerid accept the "name" <number> format
1276
   used by the rest of the system.
1283
   used by the rest of the system.
1277
 * Made use the nationalprefix and internationalprefix misdn.conf
1284
 * Made use the nationalprefix and internationalprefix misdn.conf
1278
   parameters to prefix any received number from the ISDN link if that
1285
   parameters to prefix any received number from the ISDN link if that
1279
   number has the corresponding Type-Of-Number.  NOTE:  This includes
1286
   number has the corresponding Type-Of-Number.  NOTE:  This includes
1280
   comparing the incoming call's dialed number against the MSN list.
1287
   comparing the incoming call's dialed number against the MSN list.
1281
 * Added the following new parameters: unknownprefix, netspecificprefix,
1288
 * Added the following new parameters: unknownprefix, netspecificprefix,
1282
   subscriberprefix, and abbreviatedprefix in misdn.conf to prefix any
1289
   subscriberprefix, and abbreviatedprefix in misdn.conf to prefix any
1283
   received number from the ISDN link if that number has the corresponding
1290
   received number from the ISDN link if that number has the corresponding
1284
   Type-Of-Number.
1291
   Type-Of-Number.
1285
 * Added new dialplan application misdn_command which permits controlling
1292
 * Added new dialplan application misdn_command which permits controlling
1286
   the CCBS/CCNR functionality.
1293
   the CCBS/CCNR functionality.
1287
 * Added new dialplan function mISDN_CC which permits retrieval of various
1294
 * Added new dialplan function mISDN_CC which permits retrieval of various
1288
   values from an active call completion record.
1295
   values from an active call completion record.
1289
 * For PTP, you should manually send the COLR of the redirected-to party
1296
 * For PTP, you should manually send the COLR of the redirected-to party
1290
   for an incomming redirected call if the incoming call could experience
1297
   for an incomming redirected call if the incoming call could experience
1291
   further redirects.  Just set the REDIRECTING(to-num,i) = ${EXTEN} and
1298
   further redirects.  Just set the REDIRECTING(to-num,i) = ${EXTEN} and
1292
   set the REDIRECTING(to-pres) to the COLR.  A call has been redirected
1299
   set the REDIRECTING(to-pres) to the COLR.  A call has been redirected
1293
   if the REDIRECTING(from-num) is not empty.
1300
   if the REDIRECTING(from-num) is not empty.
1294
 * For outgoing PTP redirected calls, you now need to use the inhibit(i)
1301
 * For outgoing PTP redirected calls, you now need to use the inhibit(i)
1295
   option on all of the REDIRECTING statements before dialing the
1302
   option on all of the REDIRECTING statements before dialing the
1296
   redirected-to party.  You still have to set the REDIRECTING(to-xxx,i)
1303
   redirected-to party.  You still have to set the REDIRECTING(to-xxx,i)
1297
   and the REDIRECTING(from-xxx,i) values.  The PTP call will update the
1304
   and the REDIRECTING(from-xxx,i) values.  The PTP call will update the
1298
   redirecting-to presentation (COLR) when it becomes available.
1305
   redirecting-to presentation (COLR) when it becomes available.
1299
 * Added outgoing_colp parameter to misdn.conf to filter outgoing COLP
1306
 * Added outgoing_colp parameter to misdn.conf to filter outgoing COLP
1300
   information.
1307
   information.
1301

    
   
1308

   
1302
thirdparty mISDN enhancements
1309
thirdparty mISDN enhancements
1303
-----------------------------
1310
-----------------------------
1304
mISDN has been modified by Digium, Inc. to greatly expand facility message
1311
mISDN has been modified by Digium, Inc. to greatly expand facility message
1305
support to allow:
1312
support to allow:
1306
  * Enhanced COLP support for call diversion and transfer.
1313
  * Enhanced COLP support for call diversion and transfer.
1307
  * CCBS/CCNR support.
1314
  * CCBS/CCNR support.
1308

    
   
1315

   
1309
The latest modified mISDN v1.1.x based version is available at:
1316
The latest modified mISDN v1.1.x based version is available at:
1310
http://svn.digium.com/svn/thirdparty/mISDN/trunk
1317
http://svn.digium.com/svn/thirdparty/mISDN/trunk
1311
http://svn.digium.com/svn/thirdparty/mISDNuser/trunk
1318
http://svn.digium.com/svn/thirdparty/mISDNuser/trunk
1312

    
   
1319

   
1313
Tagged versions of the modified mISDN code are available under:
1320
Tagged versions of the modified mISDN code are available under:
1314
http://svn.digium.com/svn/thirdparty/mISDN/tags
1321
http://svn.digium.com/svn/thirdparty/mISDN/tags
1315
http://svn.digium.com/svn/thirdparty/mISDNuser/tags
1322
http://svn.digium.com/svn/thirdparty/mISDNuser/tags
1316

    
   
1323

   
1317
libpri channel driver (chan_dahdi) DAHDI changes
1324
libpri channel driver (chan_dahdi) DAHDI changes
1318
-------------------------------------------
1325
-------------------------------------------
1319
 * The channel variable PRIREDIRECTREASON is now just a status variable
1326
 * The channel variable PRIREDIRECTREASON is now just a status variable
1320
   and it is also deprecated.  Use the REDIRECTING(reason) dialplan function
1327
   and it is also deprecated.  Use the REDIRECTING(reason) dialplan function
1321
   to read and alter the reason.
1328
   to read and alter the reason.
1322
 * For Q.SIG and ETSI PRI/BRI-PTP, you should manually send the COLR of the
1329
 * For Q.SIG and ETSI PRI/BRI-PTP, you should manually send the COLR of the
1323
   redirected-to party for an incomming redirected call if the incoming call
1330
   redirected-to party for an incomming redirected call if the incoming call
1324
   could experience further redirects.  Just set the
1331
   could experience further redirects.  Just set the
1325
   REDIRECTING(to-num,i) = CALLERID(dnid) and set the REDIRECTING(to-pres)
1332
   REDIRECTING(to-num,i) = CALLERID(dnid) and set the REDIRECTING(to-pres)
1326
   to the COLR.  A call has been redirected if the REDIRECTING(count) is not
1333
   to the COLR.  A call has been redirected if the REDIRECTING(count) is not
1327
   zero.
1334
   zero.
1328
 * For outgoing Q.SIG and ETSI PRI/BRI-PTP redirected calls, you need to
1335
 * For outgoing Q.SIG and ETSI PRI/BRI-PTP redirected calls, you need to
1329
   use the inhibit(i) option on all of the REDIRECTING statements before
1336
   use the inhibit(i) option on all of the REDIRECTING statements before
1330
   dialing the redirected-to party.  You still have to set the
1337
   dialing the redirected-to party.  You still have to set the
1331
   REDIRECTING(to-xxx,i) and the REDIRECTING(from-xxx,i) values.  The call
1338
   REDIRECTING(to-xxx,i) and the REDIRECTING(from-xxx,i) values.  The call
1332
   will update the redirecting-to presentation (COLR) when it becomes available.
1339
   will update the redirecting-to presentation (COLR) when it becomes available.
1333
 * Added the ability to ignore calls that are not in a Multiple Subscriber
1340
 * Added the ability to ignore calls that are not in a Multiple Subscriber
1334
   Number (MSN) list for PTMP CPE interfaces.
1341
   Number (MSN) list for PTMP CPE interfaces.
1335
 * Added dynamic range compression support for dahdi channels.  It is
1342
 * Added dynamic range compression support for dahdi channels.  It is
1336
   configured via the rxdrc and txdrc parameters in chan_dahdi.conf.
1343
   configured via the rxdrc and txdrc parameters in chan_dahdi.conf.
1337
 * Added support for ISDN calling and called subaddress with partial support
1344
 * Added support for ISDN calling and called subaddress with partial support
1338
   for connected line subaddress.
1345
   for connected line subaddress.
1339
 * Added support for BRI PTMP NT mode. (Requires latest LibPRI.)
1346
 * Added support for BRI PTMP NT mode. (Requires latest LibPRI.)
1340
 * Added handling of received HOLD/RETRIEVE messages and the optional ability
1347
 * Added handling of received HOLD/RETRIEVE messages and the optional ability
1341
   to transfer a held call on disconnect similar to an analog phone.
1348
   to transfer a held call on disconnect similar to an analog phone.
1342
 * Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
1349
 * Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
1343
   Will reroute/deflect an outgoing call when receive the message.
1350
   Will reroute/deflect an outgoing call when receive the message.
1344
   Can use the DAHDISendCallreroutingFacility to send the message for the
1351
   Can use the DAHDISendCallreroutingFacility to send the message for the
1345
   supported switches.
1352
   supported switches.
1346
 * Added standard location to add options to chan_dahdi dialing:
1353
 * Added standard location to add options to chan_dahdi dialing:
1347
   Dial(DAHDI/g1[/extension[/options]])
1354
   Dial(DAHDI/g1[/extension[/options]])
1348
   Current options:
1355
   Current options:
1349
   K(<keypad_digits>)
1356
   K(<keypad_digits>)
1350
   R Reverse charging indication
1357
   R Reverse charging indication
1351
 * Added Reverse Charging Indication (Collect calls) send/receive option.
1358
 * Added Reverse Charging Indication (Collect calls) send/receive option.
1352
   Send reverse charging in SETUP message with the chan_dahdi R dialing option.
1359
   Send reverse charging in SETUP message with the chan_dahdi R dialing option.
1353
   Dial(DAHDI/g1/extension/R)
1360
   Dial(DAHDI/g1/extension/R)
1354
   Access received reverse charge in SETUP message by: ${CHANNEL(reversecharge)}
1361
   Access received reverse charge in SETUP message by: ${CHANNEL(reversecharge)}
1355
   (requires latest LibPRI)
1362
   (requires latest LibPRI)
1356
 * Added ability to send/receive keypad digits in the SETUP message.
1363
 * Added ability to send/receive keypad digits in the SETUP message.
1357
   Send keypad digits in SETUP message with the chan_dahdi K(<keypad_digits>)
1364
   Send keypad digits in SETUP message with the chan_dahdi K(<keypad_digits>)
1358
   dialing option.  Dial(DAHDI/g1/[extension]/K(<keypad_digits>))
1365
   dialing option.  Dial(DAHDI/g1/[extension]/K(<keypad_digits>))
1359
   Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
1366
   Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
1360
   (requires latest LibPRI)
1367
   (requires latest LibPRI)
1361
 * Added ability to send and receive ETSI Explicit Call Transfer (ECT) messages
1368
 * Added ability to send and receive ETSI Explicit Call Transfer (ECT) messages
1362
   to eliminate tromboned calls.  A tromboned call goes out an interface and comes
1369
   to eliminate tromboned calls.  A tromboned call goes out an interface and comes
1363
   back into the same interface.  Tromboned calls happen because of call routing,
1370
   back into the same interface.  Tromboned calls happen because of call routing,
1364
   call deflection, call forwarding, and call transfer.
1371
   call deflection, call forwarding, and call transfer.
1365
 * Added the ability to send and receive ETSI Advice-Of-Charge messages.
1372
 * Added the ability to send and receive ETSI Advice-Of-Charge messages.
1366
 * Added the ability to support call waiting calls.  (The SETUP has no B channel
1373
 * Added the ability to support call waiting calls.  (The SETUP has no B channel
1367
   assigned.)
1374
   assigned.)
1368
 * Added Malicious Call ID (MCID) event to the AMI call event class.
1375
 * Added Malicious Call ID (MCID) event to the AMI call event class.
1369
 * Added Message Waiting Indication (MWI) support for ISDN PTMP endpoints (phones).
1376
 * Added Message Waiting Indication (MWI) support for ISDN PTMP endpoints (phones).
1370

    
   
1377

   
1371
Asterisk Manager Interface
1378
Asterisk Manager Interface
1372
--------------------------
1379
--------------------------
1373
 * The Hangup action now accepts a Cause header which may be used to
1380
 * The Hangup action now accepts a Cause header which may be used to
1374
   set the channel's hangup cause.
1381
   set the channel's hangup cause.
1375
 * sslprivatekey option added to manager.conf and http.conf.  Adds the ability
1382
 * sslprivatekey option added to manager.conf and http.conf.  Adds the ability
1376
   to specify a separate .pem file to hold a private key.  By default sslcert
1383
   to specify a separate .pem file to hold a private key.  By default sslcert
1377
   is used to hold both the public and private key.
1384
   is used to hold both the public and private key.
1378
 * Options in manager.conf and http.conf with the 'ssl' prefix have been replaced
1385
 * Options in manager.conf and http.conf with the 'ssl' prefix have been replaced
1379
   for options containing the 'tls' prefix.  For example, 'sslenable' is now
1386
   for options containing the 'tls' prefix.  For example, 'sslenable' is now
1380
   'tlsenable'.  This has been done in effort to keep ssl and tls options consistent
1387
   'tlsenable'.  This has been done in effort to keep ssl and tls options consistent
1381
   across all .conf files. All affected sample.conf files have been modified to
1388
   across all .conf files. All affected sample.conf files have been modified to
1382
   reflect this change.  Previous options such as 'sslenable' still work,
1389
   reflect this change.  Previous options such as 'sslenable' still work,
1383
   but options with the 'tls' prefix are preferred.
1390
   but options with the 'tls' prefix are preferred.
1384
 * Added a MuteAudio AMI action for muting inbound and/or outbound audio
1391
 * Added a MuteAudio AMI action for muting inbound and/or outbound audio
1385
   in a channel. (res_mutestream.so)
1392
   in a channel. (res_mutestream.so)
1386
 * The configuration file manager.conf now supports a channelvars option, which
1393
 * The configuration file manager.conf now supports a channelvars option, which
1387
   specifies a list of channel variables to include in each channel-oriented
1394
   specifies a list of channel variables to include in each channel-oriented
1388
   event.
1395
   event.
1389
 * The redirect command now has new parameters ExtraContext, ExtraExtension,
1396
 * The redirect command now has new parameters ExtraContext, ExtraExtension,
1390
   and ExtraPriority to allow redirecting the second channel to a different
1397
   and ExtraPriority to allow redirecting the second channel to a different
1391
   location than the first.
1398
   location than the first.
1392
 * Added new event "JabberStatus" in the Jabber module to monitor buddies
1399
 * Added new event "JabberStatus" in the Jabber module to monitor buddies
1393
   status.
1400
   status.
1394
 * Added a "MixMonitorMute" AMI action for muting inbound and/or outbound audio
1401
 * Added a "MixMonitorMute" AMI action for muting inbound and/or outbound audio
1395
   in a MixMonitor recording.
1402
   in a MixMonitor recording.
1396
 * The 'iax2 show peers' output is now similar to the expected output of
1403
 * The 'iax2 show peers' output is now similar to the expected output of
1397
   'sip show peers'.
1404
   'sip show peers'.
1398
 * Added Advice-Of-Charge events (AOC-S, AOC-D, and AOC-E) in the new
1405
 * Added Advice-Of-Charge events (AOC-S, AOC-D, and AOC-E) in the new
1399
   aoc event class.
1406
   aoc event class.
1400
 * Added Advice-Of-Charge manager action, AOCMessage, for generating AOC-D and
1407
 * Added Advice-Of-Charge manager action, AOCMessage, for generating AOC-D and
1401
   AOC-E messages on a channel.
1408
   AOC-E messages on a channel.
1402
 * A DBGetComplete event now follows a DBGetResponse, to make the DBGet action
1409
 * A DBGetComplete event now follows a DBGetResponse, to make the DBGet action
1403
   conform more closely to similar events.
1410
   conform more closely to similar events.
1404
 * Added a new eventfilter option per user to allow whitelisting and blacklisting
1411
 * Added a new eventfilter option per user to allow whitelisting and blacklisting
1405
   of events.
1412
   of events.
1406
 * Added optional parkinglot variable for park command.
1413
 * Added optional parkinglot variable for park command.
1407
 * Added ConnectedLineNum and ConnectedLineName headers to AMI events/responses
1414
 * Added ConnectedLineNum and ConnectedLineName headers to AMI events/responses
1408
   if CallerIDNum and CallerIDName headers are also present.
1415
   if CallerIDNum and CallerIDName headers are also present.
1409

    
   
1416

   
1410
Channel Event Logging
1417
Channel Event Logging
1411
---------------------
1418
---------------------
1412
 * A new interface, CEL, is introduced here. CEL logs single events, much like
1419
 * A new interface, CEL, is introduced here. CEL logs single events, much like
1413
   the AMI, but it differs from the AMI in that it logs to db backends much
1420
   the AMI, but it differs from the AMI in that it logs to db backends much
1414
   like CDR does; is based on the event subsystem introduced by Russell, and
1421
   like CDR does; is based on the event subsystem introduced by Russell, and
1415
   can share in all its benefits; allows multiple backends to operate like CDR;
1422
   can share in all its benefits; allows multiple backends to operate like CDR;
1416
   is specialized to event data that would be of concern to billing sytems,
1423
   is specialized to event data that would be of concern to billing sytems,
1417
   like CDR. Backends for logging and accounting calls have been produced,
1424
   like CDR. Backends for logging and accounting calls have been produced,
1418
   but a new CDR backend is still in development.
1425
   but a new CDR backend is still in development.
1419

    
   
1426

   
1420
CDR
1427
CDR
1421
---
1428
---
1422
 * 'linkedid' and 'peeraccount' are new CDR fields available to CDR aficionados.
1429
 * 'linkedid' and 'peeraccount' are new CDR fields available to CDR aficionados.
1423
   linkedid is based on uniqueID, but spreads to other channels as transfers, dials,
1430
   linkedid is based on uniqueID, but spreads to other channels as transfers, dials,
1424
   etc are performed. Thus the pieces of CDR can be grouped into multilegged sets.
1431
   etc are performed. Thus the pieces of CDR can be grouped into multilegged sets.
1425
 * Multiple files and formats can now be specified in cdr_custom.conf.
1432
 * Multiple files and formats can now be specified in cdr_custom.conf.
1426
 * cdr_syslog has been added which allows CDRs to be written directly to syslog.
1433
 * cdr_syslog has been added which allows CDRs to be written directly to syslog.
1427
   See configs/cdr_syslog.conf.sample for more information.
1434
   See configs/cdr_syslog.conf.sample for more information.
1428
 * A 'sequence' field has been added to CDRs which can be combined with
1435
 * A 'sequence' field has been added to CDRs which can be combined with
1429
   linkedid or uniqueid to uniquely identify a CDR.
1436
   linkedid or uniqueid to uniquely identify a CDR.
1430
 * Handling of billsec and duration field has changed. If your table definition
1437
 * Handling of billsec and duration field has changed. If your table definition
1431
   specifies those fields as float,double or similar they will now be logged with
1438
   specifies those fields as float,double or similar they will now be logged with
1432
   microsecond accuracy instead of a whole integer.
1439
   microsecond accuracy instead of a whole integer.
1433

    
   
1440

   
1434
Calendaring for Asterisk
1441
Calendaring for Asterisk
1435
------------------------
1442
------------------------
1436
 * A new set of modules were added supporing calendar integration with Asterisk.
1443
 * A new set of modules were added supporing calendar integration with Asterisk.
1437
   Dialplan functions for reading from and writing to calendars are included,
1444
   Dialplan functions for reading from and writing to calendars are included,
1438
   as well as the ability to execute dialplan logic upon calendar event notifications.
1445
   as well as the ability to execute dialplan logic upon calendar event notifications.
1439
   iCalendar, CalDAV, and Exchange Server calendars (via res_calendar_exchange for
1446
   iCalendar, CalDAV, and Exchange Server calendars (via res_calendar_exchange for
1440
   Exchange Server 2003 with no write or attendee support, and res_calendar_ews for
1447
   Exchange Server 2003 with no write or attendee support, and res_calendar_ews for
1441
   Exchange Server 2007+ with full write and attendee support) are supported (Exchange
1448
   Exchange Server 2007+ with full write and attendee support) are supported (Exchange
1442
   2003 support does not support forms-based authentication).
1449
   2003 support does not support forms-based authentication).
1443

    
   
1450

   
1444
Call Completion Supplementary Services for Asterisk
1451
Call Completion Supplementary Services for Asterisk
1445
---------------------------------------------------
1452
---------------------------------------------------
1446
 * Call completion support has been added for SIP, DAHDI/ISDN, and DAHDI/analog.
1453
 * Call completion support has been added for SIP, DAHDI/ISDN, and DAHDI/analog.
1447
   DAHDI/ISDN supports call completion for the following switch types:
1454
   DAHDI/ISDN supports call completion for the following switch types:
1448
   EuroIsdn(ETSI) for PTP and PTMP modes, and Qsig.
1455
   EuroIsdn(ETSI) for PTP and PTMP modes, and Qsig.
1449
   See https://wiki.asterisk.org/wiki/x/2ABQ for details.
1456
   See https://wiki.asterisk.org/wiki/x/2ABQ for details.
1450

    
   
1457

   
1451
Multicast RTP Support
1458
Multicast RTP Support
1452
---------------------
1459
---------------------
1453
 * A new RTP engine and channel driver have been added which supports Multicast RTP.
1460
 * A new RTP engine and channel driver have been added which supports Multicast RTP.
1454
   The channel driver can be used with the Page application to perform multicast RTP
1461
   The channel driver can be used with the Page application to perform multicast RTP
1455
   paging. The dial string format is: MulticastRTP/<type>/<destination>/<control address>
1462
   paging. The dial string format is: MulticastRTP/<type>/<destination>/<control address>
1456
   Type can be either basic or linksys.
1463
   Type can be either basic or linksys.
1457
   Destination is the IP address and port for the RTP packets.
1464
   Destination is the IP address and port for the RTP packets.
1458
   Control address is specific to the linksys type and is used for sending the control
1465
   Control address is specific to the linksys type and is used for sending the control
1459
   packets unique to them.
1466
   packets unique to them.
1460

    
   
1467

   
1461
Security Events Framework
1468
Security Events Framework
1462
-------------------------
1469
-------------------------
1463
 * Asterisk has a new C API for reporting security events.  The module res_security_log
1470
 * Asterisk has a new C API for reporting security events.  The module res_security_log
1464
   sends these events to the "security" logger level.  Currently, AMI is the only
1471
   sends these events to the "security" logger level.  Currently, AMI is the only
1465
   Asterisk component that reports security events.  However, SIP support will be
1472
   Asterisk component that reports security events.  However, SIP support will be
1466
   coming soon.  For more information on the security events framework, see the
1473
   coming soon.  For more information on the security events framework, see the
1467
   "Asterisk Security Framework" section of the Asterisk wiki at
1474
   "Asterisk Security Framework" section of the Asterisk wiki at
1468
   https://wiki.asterisk.org/wiki/x/wgBQ
1475
   https://wiki.asterisk.org/wiki/x/wgBQ
1469
 * SIP support was added in Asterisk 10
1476
 * SIP support was added in Asterisk 10
1470
 * This API now supports IPv6 addresses
1477
 * This API now supports IPv6 addresses
1471

    
   
1478

   
1472
Fax
1479
Fax
1473
---
1480
---
1474
 * A technology independent fax frontend (res_fax) has been added to Asterisk.
1481
 * A technology independent fax frontend (res_fax) has been added to Asterisk.
1475
 * A spandsp based fax backend (res_fax_spandsp) has been added.
1482
 * A spandsp based fax backend (res_fax_spandsp) has been added.
1476
 * The app_fax module has been deprecated in favor of the res_fax module and
1483
 * The app_fax module has been deprecated in favor of the res_fax module and
1477
   the new res_fax_spandsp backend.
1484
   the new res_fax_spandsp backend.
1478
 * The SendFAX and ReceiveFAX applications now send their log messages to a
1485
 * The SendFAX and ReceiveFAX applications now send their log messages to a
1479
   'fax' logger level, instead of to the generic logger levels. To see these
1486
   'fax' logger level, instead of to the generic logger levels. To see these
1480
   messages, the system's logger.conf file will need to direct the 'fax' logger
1487
   messages, the system's logger.conf file will need to direct the 'fax' logger
1481
   level to one or more destinations; the logger.conf.sample file includes an
1488
   level to one or more destinations; the logger.conf.sample file includes an
1482
   example of how to do this. Note that if the 'fax' logger level is *not*
1489
   example of how to do this. Note that if the 'fax' logger level is *not*
1483
   directed to at least one destination, log messages generated by these
1490
   directed to at least one destination, log messages generated by these
1484
   applications will be lost, and that if the 'fax' logger level is directed to
1491
   applications will be lost, and that if the 'fax' logger level is directed to
1485
   the console, the 'core set verbose' and 'core set debug' CLI commands will
1492
   the console, the 'core set verbose' and 'core set debug' CLI commands will
1486
   have no effect on whether the messages appear on the console or not.
1493
   have no effect on whether the messages appear on the console or not.
1487

    
   
1494

   
1488
Miscellaneous
1495
Miscellaneous
1489
-------------
1496
-------------
1490
 * The transmit_silence_during_record option in asterisk.conf.sample has been removed.
1497
 * The transmit_silence_during_record option in asterisk.conf.sample has been removed.
1491
   Now, in order to enable transmitting silence during record the transmit_silence
1498
   Now, in order to enable transmitting silence during record the transmit_silence
1492
   option should be used.  transmit_silence_during_record remains a valid option, but
1499
   option should be used.  transmit_silence_during_record remains a valid option, but
1493
   defaults to the behavior of the transmit_silence option.
1500
   defaults to the behavior of the transmit_silence option.
1494
 * Addition of the Unit Test Framework API for managing registration and execution
1501
 * Addition of the Unit Test Framework API for managing registration and execution
1495
   of unit tests with the purpose of verifying the operation of C functions.
1502
   of unit tests with the purpose of verifying the operation of C functions.
1496
 * SendText is now implemented in chan_gtalk and chan_jingle. It will simply send
1503
 * SendText is now implemented in chan_gtalk and chan_jingle. It will simply send
1497
   XMPP text messages to the remote JID.
1504
   XMPP text messages to the remote JID.
1498
 * Modules.conf has a new option - "require" - that marks a module as critical for
1505
 * Modules.conf has a new option - "require" - that marks a module as critical for
1499
   the execution of Asterisk.
1506
   the execution of Asterisk.
1500
   If one of the required modules fail to load, Asterisk will exit with a return
1507
   If one of the required modules fail to load, Asterisk will exit with a return
1501
   code set to 2.
1508
   code set to 2.
1502
 * An 'X' option has been added to the asterisk application which enables #exec support.
1509
 * An 'X' option has been added to the asterisk application which enables #exec support.
1503
   This allows #exec to be used in asterisk.conf.
1510
   This allows #exec to be used in asterisk.conf.
1504
 * jabber.conf supports a new option auth_policy that toggles auto user registration.
1511
 * jabber.conf supports a new option auth_policy that toggles auto user registration.
1505
 * A new lockconfdir option has been added to asterisk.conf to protect the
1512
 * A new lockconfdir option has been added to asterisk.conf to protect the
1506
   configuration directory (/etc/asterisk by default) during reloads.
1513
   configuration directory (/etc/asterisk by default) during reloads.
1507
 * The parkeddynamic option has been added to features.conf to enable the creation
1514
 * The parkeddynamic option has been added to features.conf to enable the creation
1508
   of dynamic parkinglots.
1515
   of dynamic parkinglots.
1509
 * chan_dahdi now supports reporting alarms over AMI either by channel or span via
1516
 * chan_dahdi now supports reporting alarms over AMI either by channel or span via
1510
   the reportalarms config option.
1517
   the reportalarms config option.
1511
 * chan_dahdi supports dialing configuring and dialing by device file name.
1518
 * chan_dahdi supports dialing configuring and dialing by device file name.
1512
   DAHDI/span-name!local!1 will use /dev/dahdi/span-name/local/1 . Likewise
1519
   DAHDI/span-name!local!1 will use /dev/dahdi/span-name/local/1 . Likewise
1513
   it may appear in chan_dahdi.conf as 'channel => span-name!local!1'.
1520
   it may appear in chan_dahdi.conf as 'channel => span-name!local!1'.
1514
 * A new options for chan_dahdi.conf: 'ignore_failed_channels'. Boolean.
1521
 * A new options for chan_dahdi.conf: 'ignore_failed_channels'. Boolean.
1515
   False by default. If set, chan_dahdi will ignore failed 'channel' entries.
1522
   False by default. If set, chan_dahdi will ignore failed 'channel' entries.
1516
   Handy for the above name-based syntax as it does not depend on
1523
   Handy for the above name-based syntax as it does not depend on
1517
   initialization order.
1524
   initialization order.
1518
 * The Realtime dialplan switch now caches entries for 1 second.  This provides a
1525
 * The Realtime dialplan switch now caches entries for 1 second.  This provides a
1519
   significant increase in performance (about 3X) for installations using this switchtype.
1526
   significant increase in performance (about 3X) for installations using this switchtype.
1520
 * Distributed devicestate now supports the use of the XMPP protocol, in addition to
1527
 * Distributed devicestate now supports the use of the XMPP protocol, in addition to
1521
   AIS.  For more information, please see the Distributed Device State section of the
1528
   AIS.  For more information, please see the Distributed Device State section of the
1522
   Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
1529
   Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
1523
 * The addition of G.719 pass-through support.
1530
 * The addition of G.719 pass-through support.
1524
 * Added support for 16khz Speex audio.  This can be enabled by using 'allow=speex16'
1531
 * Added support for 16khz Speex audio.  This can be enabled by using 'allow=speex16'
1525
   during device configuration.
1532
   during device configuration.
1526
 * The UNISTIM channel driver (chan_unistim) has been updated to support devices that
1533
 * The UNISTIM channel driver (chan_unistim) has been updated to support devices that
1527
   have less than 3 lines on the LCD.
1534
   have less than 3 lines on the LCD.
1528
 * Realtime now supports database failover.  See the sample extconfig.conf for details.
1535
 * Realtime now supports database failover.  See the sample extconfig.conf for details.
1529
 * The addition of improved translation path building for wideband codecs.  Sample
1536
 * The addition of improved translation path building for wideband codecs.  Sample
1530
   rate changes during translation are now avoided unless absolutely necessary.
1537
   rate changes during translation are now avoided unless absolutely necessary.
1531
 * The addition of the res_stun_monitor module for monitoring and reacting to network
1538
 * The addition of the res_stun_monitor module for monitoring and reacting to network
1532
   changes while behind a NAT.
1539
   changes while behind a NAT.
1533

    
   
1540

   
1534
CLI Changes
1541
CLI Changes
1535
-----------
1542
-----------
1536
 * The 'core set debug' and 'core set verbose' commands, in previous versions, could
1543
 * The 'core set debug' and 'core set verbose' commands, in previous versions, could
1537
   optionally accept a filename, to apply the setting only to the code generated from
1544
   optionally accept a filename, to apply the setting only to the code generated from
1538
   that source file when Asterisk was built. However, there are some modules in Asterisk
1545
   that source file when Asterisk was built. However, there are some modules in Asterisk
1539
   that are composed of multiple source files, so this did not result in the behavior
1546
   that are composed of multiple source files, so this did not result in the behavior
1540
   that users expected. In this version, 'core set debug' and 'core set verbose'
1547
   that users expected. In this version, 'core set debug' and 'core set verbose'
1541
   can optionally accept *module* names instead (with or without the .so extension),
1548
   can optionally accept *module* names instead (with or without the .so extension),
1542
   which applies the setting to the entire module specified, regardless of which source
1549
   which applies the setting to the entire module specified, regardless of which source
1543
   files it was built from.
1550
   files it was built from.
1544
 * New 'manager show settings' command showing the current settings loaded from
1551
 * New 'manager show settings' command showing the current settings loaded from
1545
   manager.conf.
1552
   manager.conf.
1546
 * Added 'all' keyword to the CLI command "channel request hangup" so that you can send
1553
 * Added 'all' keyword to the CLI command "channel request hangup" so that you can send
1547
   the channel hangup request to all channels.
1554
   the channel hangup request to all channels.
1548
 * Added a "core reload" CLI command that executes a global reload of Asterisk.
1555
 * Added a "core reload" CLI command that executes a global reload of Asterisk.
1549

    
   
1556

   
1550
------------------------------------------------------------------------------
1557
------------------------------------------------------------------------------
1551
--- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2  -------------
1558
--- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2  -------------
1552
------------------------------------------------------------------------------
1559
------------------------------------------------------------------------------
1553

    
   
1560

   
1554
SIP Changes
1561
SIP Changes
1555
-----------
1562
-----------
1556
 * Added support for SUBSCRIBE/NOTIFY with dialog-info based call pickups.
1563
 * Added support for SUBSCRIBE/NOTIFY with dialog-info based call pickups.
1557
   Snom phones use this for call pickup of extensions that the phone is
1564
   Snom phones use this for call pickup of extensions that the phone is
1558
   subscribed to.
1565
   subscribed to.
1559
 * Added support for setting the domain in the URI for caller of an
1566
 * Added support for setting the domain in the URI for caller of an
1560
   outbound call by using the SIPFROMDOMAIN channel variable.
1567
   outbound call by using the SIPFROMDOMAIN channel variable.
1561
 * Added a new configuration option "remotesecret" for authentication to
1568
 * Added a new configuration option "remotesecret" for authentication to
1562
   remote services. For backwards compatibility, "secret" still has the
1569
   remote services. For backwards compatibility, "secret" still has the
1563
   same function as before, but now you can configure both a remote secret and a
1570
   same function as before, but now you can configure both a remote secret and a
1564
   local secret for mutual authentication.
1571
   local secret for mutual authentication.
1565
 * If the channel variable  ATTENDED_TRANSFER_COMPLETE_SOUND is set,
1572
 * If the channel variable  ATTENDED_TRANSFER_COMPLETE_SOUND is set,
1566
   the sound will be played to the target of an attended transfer
1573
   the sound will be played to the target of an attended transfer
1567
 * Added two new configuration options, "qualifygap" and "qualifypeers", which allow
1574
 * Added two new configuration options, "qualifygap" and "qualifypeers", which allow
1568
   finer control over how many peers Asterisk will qualify and the gap between them
1575
   finer control over how many peers Asterisk will qualify and the gap between them
1569
   when all peers need to be qualified at the same time.
1576
   when all peers need to be qualified at the same time.
1570
 * Added a new 'ignoresdpversion' option to sip.conf.  When this is enabled
1577
 * Added a new 'ignoresdpversion' option to sip.conf.  When this is enabled
1571
   (either globally or for a specific peer), chan_sip will treat any SDP data
1578
   (either globally or for a specific peer), chan_sip will treat any SDP data
1572
   it receives as new data and update the media stream accordingly.  By
1579
   it receives as new data and update the media stream accordingly.  By
1573
   default, Asterisk will only modify the media stream if the SDP session
1580
   default, Asterisk will only modify the media stream if the SDP session
1574
   version received is different from the current SDP session version.  This
1581
   version received is different from the current SDP session version.  This
1575
   option is required to interoperate with devices that have non-standard SDP
1582
   option is required to interoperate with devices that have non-standard SDP
1576
   session version implementations (observed with Microsoft OCS).  This option
1583
   session version implementations (observed with Microsoft OCS).  This option
1577
   is disabled by default.
1584
   is disabled by default.
1578
 * The parsing of register => lines in sip.conf has been modified to allow a port
1585
 * The parsing of register => lines in sip.conf has been modified to allow a port
1579
   to be present in the "user" portion. Please see the sip.conf.sample file for more
1586
   to be present in the "user" portion. Please see the sip.conf.sample file for more
1580
   information
1587
   information
1581
 * Added support for subscribing to MWI on a remote server and making the status available
1588
 * Added support for subscribing to MWI on a remote server and making the status available
1582
   as a mailbox. Please see the sip.conf.sample file for more information.
1589
   as a mailbox. Please see the sip.conf.sample file for more information.
1583
 * Added a function to remove SIP headers added in the dialplan before the
1590
 * Added a function to remove SIP headers added in the dialplan before the
1584
   first INVITE is generated - SIPRemoveHeader()
1591
   first INVITE is generated - SIPRemoveHeader()
1585
 * Channel variables set with setvar= in a device configuration is now
1592
 * Channel variables set with setvar= in a device configuration is now
1586
   set both for inbound and outbound calls.
1593
   set both for inbound and outbound calls.
1587
 * Added support for ITU G.722.1 and G.722.1C (Siren7 and Siren14) media streams.
1594
 * Added support for ITU G.722.1 and G.722.1C (Siren7 and Siren14) media streams.
1588

    
   
1595

   
1589
IAX2 changes
1596
IAX2 changes
1590
------------
1597
------------
1591
  * Added immediate option to iax.conf
1598
  * Added immediate option to iax.conf
1592
  * Added forceencryption option to iax.conf
1599
  * Added forceencryption option to iax.conf
1593
  * Added Encryption and Trunk status to manager command "iaxpeers"
1600
  * Added Encryption and Trunk status to manager command "iaxpeers"
1594

    
   
1601

   
1595
Skinny Changes
1602
Skinny Changes
1596
--------------
1603
--------------
1597
 * The configuration file now holds separate sections for devices and lines.
1604
 * The configuration file now holds separate sections for devices and lines.
1598
   Please have a look at configs/skinny.conf.sample and change your skinny.conf
1605
   Please have a look at configs/skinny.conf.sample and change your skinny.conf
1599
   accordingly.
1606
   accordingly.
1600

    
   
1607

   
1601
DAHDI Changes
1608
DAHDI Changes
1602
-------------
1609
-------------
1603
 * chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
1610
 * chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
1604
   support for LibOpenR2.  http://www.libopenr2.org/
1611
   support for LibOpenR2.  http://www.libopenr2.org/
1605
 * The UK option waitfordialtone has been added for use with BT analog
1612
 * The UK option waitfordialtone has been added for use with BT analog
1606
   lines.
1613
   lines.
1607
 * Added a 'faxbuffers' configuration option to chan_dahdi.conf.  This option
1614
 * Added a 'faxbuffers' configuration option to chan_dahdi.conf.  This option
1608
   is used in conjunction with the 'faxdetect' configuration option.  When
1615
   is used in conjunction with the 'faxdetect' configuration option.  When
1609
   'faxbuffers' is used and fax tones are detected, the channel will dynamically
1616
   'faxbuffers' is used and fax tones are detected, the channel will dynamically
1610
   switch to the configured faxbuffers policy.  For example, to use 6 buffers
1617
   switch to the configured faxbuffers policy.  For example, to use 6 buffers
1611
   and a 'full' buffer policy for a fax transmission, add:
1618
   and a 'full' buffer policy for a fax transmission, add:
1612
     faxbuffers=>6,full
1619
     faxbuffers=>6,full
1613
   The faxbuffers configuration will be in affect until the call is torn down.
1620
   The faxbuffers configuration will be in affect until the call is torn down.
1614
 * Added service message support for 4ESS/5ESS switches.
1621
 * Added service message support for 4ESS/5ESS switches.
1615

    
   
1622

   
1616
Dialplan Functions
1623
Dialplan Functions
1617
------------------
1624
------------------
1618
 * For DAHDI channels, the CHANNEL() dialplan function now
1625
 * For DAHDI channels, the CHANNEL() dialplan function now
1619
   supports changing the channel's buffer policy (for the current
1626
   supports changing the channel's buffer policy (for the current
1620
   call only), using this syntax:
1627
   call only), using this syntax:
1621

    
   
1628

   
1622
   exten => s,n,Set(CHANNEL(buffers)=6,full)
1629
   exten => s,n,Set(CHANNEL(buffers)=6,full)
1623

    
   
1630

   
1624
   This would change the channel to the 'full' buffer policy and
1631
   This would change the channel to the 'full' buffer policy and
1625
   6 (six) buffers. Possible options for this setting are the same
1632
   6 (six) buffers. Possible options for this setting are the same
1626
   as those in chan_dahdi.conf.
1633
   as those in chan_dahdi.conf.
1627
 * Added a new dialplan function, CURLOPT, which permits setting various
1634
 * Added a new dialplan function, CURLOPT, which permits setting various
1628
   options that may be useful with the CURL dialplan function, such as
1635
   options that may be useful with the CURL dialplan function, such as
1629
   cookies, proxies, connection timeouts, passwords, etc.
1636
   cookies, proxies, connection timeouts, passwords, etc.
1630
 * Permit the syntax and synopsis fields of the corresponding dialplan
1637
 * Permit the syntax and synopsis fields of the corresponding dialplan
1631
   functions to be individually set from func_odbc.conf.
1638
   functions to be individually set from func_odbc.conf.
1632
 * Added debugging CLI functions to func_odbc, 'odbc read' and 'odbc write'.
1639
 * Added debugging CLI functions to func_odbc, 'odbc read' and 'odbc write'.
1633
 * func_odbc now may specify an insert query to execute, when the write query
1640
 * func_odbc now may specify an insert query to execute, when the write query
1634
   affects 0 rows (usually indicating that no such row exists).
1641
   affects 0 rows (usually indicating that no such row exists).
1635
 * Added a new dialplan function, LISTFILTER, which permits removing elements
1642
 * Added a new dialplan function, LISTFILTER, which permits removing elements
1636
   from a set list, by name.  Uses the same general syntax as the existing CUT
1643
   from a set list, by name.  Uses the same general syntax as the existing CUT
1637
   and FIELDQTY dialplan functions, which also manage lists.
1644
   and FIELDQTY dialplan functions, which also manage lists.
1638
 * Added REALTIME_FIELD and REALTIME_HASH, which should aid users in better
1645
 * Added REALTIME_FIELD and REALTIME_HASH, which should aid users in better
1639
   obtaining realtime data from the dialplan.
1646
   obtaining realtime data from the dialplan.
1640
 * Added LOCAL_PEEK, which allows access to variables in any stack frame within
1647
 * Added LOCAL_PEEK, which allows access to variables in any stack frame within
1641
   a subroutine when using the GoSub() and Return() applications.
1648
   a subroutine when using the GoSub() and Return() applications.
1642
 * Added AUDIOHOOK_INHERIT. For information on its use, please see the output
1649
 * Added AUDIOHOOK_INHERIT. For information on its use, please see the output
1643
   of "core show function AUDIOHOOK_INHERIT" from the CLI
1650
   of "core show function AUDIOHOOK_INHERIT" from the CLI
1644
 * Added AES_ENCRYPT. For information on its use, please see the output
1651
 * Added AES_ENCRYPT. For information on its use, please see the output
1645
   of "core show function AES_ENCRYPT" from the CLI
1652
   of "core show function AES_ENCRYPT" from the CLI
1646
 * Added AES_DECRYPT. For information on its use, please see the output
1653
 * Added AES_DECRYPT. For information on its use, please see the output
1647
   of "core show function AES_DECRYPT" from the CLI
1654
   of "core show function AES_DECRYPT" from the CLI
1648
 * func_odbc now supports database transactions across multiple queries.
1655
 * func_odbc now supports database transactions across multiple queries.
1649

    
   
1656

   
1650
Applications
1657
Applications
1651
------------
1658
------------
1652
 * Scheduled meetme conferences may now have their end times extended by
1659
 * Scheduled meetme conferences may now have their end times extended by
1653
   using MeetMeAdmin.
1660
   using MeetMeAdmin.
1654
 * app_authenticate now gives the ability to select a prompt other than
1661
 * app_authenticate now gives the ability to select a prompt other than
1655
   the default.
1662
   the default.
1656
 * app_directory now pays attention to the searchcontexts setting in
1663
 * app_directory now pays attention to the searchcontexts setting in
1657
   voicemail.conf and will look through all contexts, if no context is
1664
   voicemail.conf and will look through all contexts, if no context is
1658
   specified in the initial argument.
1665
   specified in the initial argument.
1659
 * A new application, Originate, has been introduced, that allows asynchronous
1666
 * A new application, Originate, has been introduced, that allows asynchronous
1660
   call origination from the dialplan.
1667
   call origination from the dialplan.
1661
 * Voicemail now permits setting the emailsubject and emailbody per mailbox,
1668
 * Voicemail now permits setting the emailsubject and emailbody per mailbox,
1662
   in addition to the setting in the "general" context.
1669
   in addition to the setting in the "general" context.
1663
 * Added ConfBridge dialplan application which does conference bridges without
1670
 * Added ConfBridge dialplan application which does conference bridges without
1664
   DAHDI. For information on its use, please see the output of
1671
   DAHDI. For information on its use, please see the output of
1665
   "core show application ConfBridge" from the CLI.
1672
   "core show application ConfBridge" from the CLI.
1666

    
   
1673

   
1667
Miscellaneous
1674
Miscellaneous
1668
-------------
1675
-------------
1669
 * The Asterisk CLI has a new command, "channel redirect", which is similar in
1676
 * The Asterisk CLI has a new command, "channel redirect", which is similar in
1670
   operation to the AMI Redirect action.
1677
   operation to the AMI Redirect action.
1671
 * extensions.conf now allows you to use keyword "same" to define an extension
1678
 * extensions.conf now allows you to use keyword "same" to define an extension
1672
   without actually specifying an extension.  It uses exactly the same pattern
1679
   without actually specifying an extension.  It uses exactly the same pattern
1673
   as previously used on the last "exten" line.  For example:
1680
   as previously used on the last "exten" line.  For example:
1674
     exten => 123,1,NoOp(something)
1681
     exten => 123,1,NoOp(something)
1675
     same  =>     n,SomethingElse()
1682
     same  =>     n,SomethingElse()
1676
 * musiconhold.conf classes of type 'files' can now use relative directory paths,
1683
 * musiconhold.conf classes of type 'files' can now use relative directory paths,
1677
   which are interpreted as relative to the astvarlibdir setting in asterisk.conf.
1684
   which are interpreted as relative to the astvarlibdir setting in asterisk.conf.
1678
 * All deprecated CLI commands are removed from the sourcecode. They are now handled
1685
 * All deprecated CLI commands are removed from the sourcecode. They are now handled
1679
   by the new clialiases module. See cli_aliases.conf.sample file.
1686
   by the new clialiases module. See cli_aliases.conf.sample file.
1680
 * Times within timespecs are now accurate down to the minute.  This is a change
1687
 * Times within timespecs are now accurate down to the minute.  This is a change
1681
   from historical Asterisk, which only provided timespecs rounded to the nearest
1688
   from historical Asterisk, which only provided timespecs rounded to the nearest
1682
   even (read: evenly divisible by 2) minute mark.
1689
   even (read: evenly divisible by 2) minute mark.
1683
 * The realtime switch now supports an option flag, 'p', which disables searches for
1690
 * The realtime switch now supports an option flag, 'p', which disables searches for
1684
   pattern matches.
1691
   pattern matches.
1685
 * In addition to a time range and date range, timespecs now accept a 5th optional
1692
 * In addition to a time range and date range, timespecs now accept a 5th optional
1686
   argument, timezone.  This allows you to perform time checks on alternate
1693
   argument, timezone.  This allows you to perform time checks on alternate
1687
   timezones, especially if those daylight savings time ranges vary from your
1694
   timezones, especially if those daylight savings time ranges vary from your
1688
   machine's native timezone.  See GotoIfTime, ExecIfTime, IFTIME(), and timed
1695
   machine's native timezone.  See GotoIfTime, ExecIfTime, IFTIME(), and timed
1689
   includes.
1696
   includes.
1690
 * The contrib/scripts/ directory now has a script called sip_nat_settings that will
1697
 * The contrib/scripts/ directory now has a script called sip_nat_settings that will
1691
   give you the correct output for an asterisk box behind nat. It will give you the
1698
   give you the correct output for an asterisk box behind nat. It will give you the
1692
   externhost and localnet settings.
1699
   externhost and localnet settings.
1693
 * The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
1700
 * The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
1694
   can connect calls in passthrough mode, as well as record and play back files.
1701
   can connect calls in passthrough mode, as well as record and play back files.
1695
 * Successful and unsuccessful call pickup can now be alerted through sounds, by
1702
 * Successful and unsuccessful call pickup can now be alerted through sounds, by
1696
   using pickupsound and pickupfailsound in features.conf.
1703
   using pickupsound and pickupfailsound in features.conf.
1697
 * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default.
1704
 * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default.
1698
   This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
1705
   This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
1699
   instead of the /var/run/asterisk.pid where it used to be. This will make
1706
   instead of the /var/run/asterisk.pid where it used to be. This will make
1700
   installs as non-root easier to manage.
1707
   installs as non-root easier to manage.
1701

    
   
1708

   
1702
CDR
1709
CDR
1703
---
1710
---
1704

    
   
1711

   
1705
* The cdr.conf file must exist and be correctly programmed in order for CDR records to
1712
* The cdr.conf file must exist and be correctly programmed in order for CDR records to
1706
  be written; they will no longer be explicitly written.
1713
  be written; they will no longer be explicitly written.
1707

    
   
1714

   
1708
Asterisk Manager Interface
1715
Asterisk Manager Interface
1709
--------------------------
1716
--------------------------
1710
 * When using the AMI over HTTP, you can now include a 'SuppressEvents' header (with
1717
 * When using the AMI over HTTP, you can now include a 'SuppressEvents' header (with
1711
   a non-empty value) in your request. If you do this, any pending AMI events will
1718
   a non-empty value) in your request. If you do this, any pending AMI events will
1712
   *not* be included in the response to your request as they would normally, but
1719
   *not* be included in the response to your request as they would normally, but
1713
   will be left in the event queue for the next request you make to retrieve. For
1720
   will be left in the event queue for the next request you make to retrieve. For
1714
   some applications, this will allow you to guarantee that you will only see
1721
   some applications, this will allow you to guarantee that you will only see
1715
   events in responses to 'WaitEvent' actions, and can better know when to expect them.
1722
   events in responses to 'WaitEvent' actions, and can better know when to expect them.
1716
   To know whether the Asterisk server supports this header or not, your client can
1723
   To know whether the Asterisk server supports this header or not, your client can
1717
   inspect the first response back from the server to see if it includes this header:
1724
   inspect the first response back from the server to see if it includes this header:
1718

    
   
1725

   
1719
   Pragma: SuppressEvents
1726
   Pragma: SuppressEvents
1720

    
   
1727

   
1721
   If this is included, the server supports event suppression.
1728
   If this is included, the server supports event suppression.
1722

    
   
1729

   
1723
 * Added 4 new Actions to list skinny device(s) and line(s)
1730
 * Added 4 new Actions to list skinny device(s) and line(s)
1724
   SKINNYdevices
1731
   SKINNYdevices
1725
   SKINNYshowdevice
1732
   SKINNYshowdevice
1726
   SKINNYlines
1733
   SKINNYlines
1727
   SKINNYshowline
1734
   SKINNYshowline
1728

    
   
1735

   
1729
LDAP Schema File Additions
1736
LDAP Schema File Additions
1730
--------------------------
1737
--------------------------
1731
 * Added AsteriskDialplan, AsteriskAccount and AsteriskMailbox  objectClasses
1738
 * Added AsteriskDialplan, AsteriskAccount and AsteriskMailbox  objectClasses
1732
   to allow standalone dialplan, account and mailbox entries (STRUCTURAL)
1739
   to allow standalone dialplan, account and mailbox entries (STRUCTURAL)
1733
 * Added new Fields:
1740
 * Added new Fields:
1734
   - AstAccountLanguage, AstAccountTransport, AstAccountPromiscRedir,
1741
   - AstAccountLanguage, AstAccountTransport, AstAccountPromiscRedir,
1735
   - AstAccountAccountCode, AstAccountSetVar, AstAccountAllowOverlap,
1742
   - AstAccountAccountCode, AstAccountSetVar, AstAccountAllowOverlap,
1736
   - AstAccountVideoSupport, AstAccountIgnoreSDPVersion
1743
   - AstAccountVideoSupport, AstAccountIgnoreSDPVersion
1737
 * Removed redundant IPaddr (there's already IPAddress)
1744
 * Removed redundant IPaddr (there's already IPAddress)
1738
   - Gives more configuration Flags for SIP-Users available (tested)
1745
   - Gives more configuration Flags for SIP-Users available (tested)
1739
   - Allows to create Asterisk Attributes in defined Asterisk ObjectClasses
1746
   - Allows to create Asterisk Attributes in defined Asterisk ObjectClasses
1740
     without extensibleObject (which really should be the last resort); gives
1747
     without extensibleObject (which really should be the last resort); gives
1741
     also additional possibilities for LDAP-filter
1748
     also additional possibilities for LDAP-filter
1742

    
   
1749

   
1743
------------------------------------------------------------------------------
1750
------------------------------------------------------------------------------
1744
--- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1  -------------
1751
--- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1  -------------
1745
------------------------------------------------------------------------------
1752
------------------------------------------------------------------------------
1746

    
   
1753

   
1747
Device State Handling
1754
Device State Handling
1748
---------------------
1755
---------------------
1749
 * The event infrastructure in Asterisk got another big update to help support
1756
 * The event infrastructure in Asterisk got another big update to help support
1750
   distributed events.  It currently supports distributed device state and
1757
   distributed events.  It currently supports distributed device state and
1751
   distributed Voicemail MWI (Message Waiting Indication).  A new module has
1758
   distributed Voicemail MWI (Message Waiting Indication).  A new module has
1752
   been merged, res_ais, which facilitates communicating events between servers.
1759
   been merged, res_ais, which facilitates communicating events between servers.
1753
   It uses the SAForum AIS (Service Availability Forum Application Interface
1760
   It uses the SAForum AIS (Service Availability Forum Application Interface
1754
   Specification) CLM (Cluster Management) and EVT (Event) services to maintain
1761
   Specification) CLM (Cluster Management) and EVT (Event) services to maintain
1755
   a cluster of Asterisk servers, and to share events between them.  For more
1762
   a cluster of Asterisk servers, and to share events between them.  For more
1756
   information on setting this up, refer to the Distributed Device State section
1763
   information on setting this up, refer to the Distributed Device State section
1757
   of the Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
1764
   of the Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
1758

    
   
1765

   
1759
Dialplan Functions
1766
Dialplan Functions
1760
------------------
1767
------------------
1761
 * Added a new dialplan function, AST_CONFIG(), which allows you to access
1768
 * Added a new dialplan function, AST_CONFIG(), which allows you to access
1762
   variables from an Asterisk configuration file.
1769
   variables from an Asterisk configuration file.
1763
 * The JACK_HOOK function now has a c() option to supply a custom client name.
1770
 * The JACK_HOOK function now has a c() option to supply a custom client name.
1764
 * Added two new dialplan functions from libspeex for audio gain control and
1771
 * Added two new dialplan functions from libspeex for audio gain control and
1765
   denoise, AGC() and DENOISE(). Both functions can be applied to the tx and
1772
   denoise, AGC() and DENOISE(). Both functions can be applied to the tx and
1766
   rx directions of a channel from the dialplan.
1773
   rx directions of a channel from the dialplan.
1767
 * The SMDI_MSG_RETRIEVE function now has the ability to search for SMDI messages
1774
 * The SMDI_MSG_RETRIEVE function now has the ability to search for SMDI messages
1768
   based on other parameters.  The default is still to search based on the
1775
   based on other parameters.  The default is still to search based on the
1769
   forwarding station ID.  However, there are new options that allow you to search
1776
   forwarding station ID.  However, there are new options that allow you to search
1770
   based on the message desk terminal ID, or the message desk number.
1777
   based on the message desk terminal ID, or the message desk number.
1771
 * TIMEOUT() has been modified to be accurate down to the millisecond.
1778
 * TIMEOUT() has been modified to be accurate down to the millisecond.
1772
 * ENUM*() functions now include the following new options:
1779
 * ENUM*() functions now include the following new options:
1773
     - 'u' returns the full URI and does not strip off the URI-scheme.
1780
     - 'u' returns the full URI and does not strip off the URI-scheme.
1774
     - 's' triggers ISN specific rewriting
1781
     - 's' triggers ISN specific rewriting
1775
     - 'i' looks for branches into an Infrastructure ENUM tree
1782
     - 'i' looks for branches into an Infrastructure ENUM tree
1776
     - 'd' for a direct DNS lookup without any flipping of digits.
1783
     - 'd' for a direct DNS lookup without any flipping of digits.
1777
 * TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
1784
 * TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
1778
 * CHANNEL() now has options for the maximum, minimum, and standard or normal
1785
 * CHANNEL() now has options for the maximum, minimum, and standard or normal
1779
   deviation of jitter, rtt, and loss for a call using chan_sip.
1786
   deviation of jitter, rtt, and loss for a call using chan_sip.
1780

    
   
1787

   
1781
DAHDI channel driver (chan_dahdi) Changes
1788
DAHDI channel driver (chan_dahdi) Changes
1782
----------------------------------------
1789
----------------------------------------
1783
 * Channels can now be configured using named sections in chan_dahdi.conf, just
1790
 * Channels can now be configured using named sections in chan_dahdi.conf, just
1784
   like other channel drivers, including the use of templates.
1791
   like other channel drivers, including the use of templates.
1785
 * The default for pridialplan has changed from 'national' to 'unknown'.
1792
 * The default for pridialplan has changed from 'national' to 'unknown'.
1786

    
   
1793

   
1787
PBX Changes
1794
PBX Changes
1788
-----------
1795
-----------
1789
 * It is now possible to specify a pattern match as a hint. Once a phone subscribes
1796
 * It is now possible to specify a pattern match as a hint. Once a phone subscribes
1790
   to something that matches the pattern a hint will be created using the contents
1797
   to something that matches the pattern a hint will be created using the contents
1791
   and variables evaluated.
1798
   and variables evaluated.
1792
 * Dialplan matching has been extended to allow an extension to return to the
1799
 * Dialplan matching has been extended to allow an extension to return to the
1793
   PBX core to wait for more digits.  This is done by using the new dialplan
1800
   PBX core to wait for more digits.  This is done by using the new dialplan
1794
   application called "Incomplete".  This will permit a whole new level of
1801
   application called "Incomplete".  This will permit a whole new level of
1795
   extension control, by giving the administrator more control over early
1802
   extension control, by giving the administrator more control over early
1796
   matches employing one of the short-circuit pattern match operators.  Note
1803
   matches employing one of the short-circuit pattern match operators.  Note
1797
   that custom applications can trigger this same behavior by returning the
1804
   that custom applications can trigger this same behavior by returning the
1798
   special value AST_PBX_INCOMPLETE.
1805
   special value AST_PBX_INCOMPLETE.
1799

    
   
1806

   
1800
Application Changes
1807
Application Changes
1801
-------------------
1808
-------------------
1802
 * Directory now permits both first and last names to be matched at the same
1809
 * Directory now permits both first and last names to be matched at the same
1803
   time.  In addition, the number of digits to enter of the name can be set in
1810
   time.  In addition, the number of digits to enter of the name can be set in
1804
   the arguments to Directory; previously, you could enter only 3, regardless
1811
   the arguments to Directory; previously, you could enter only 3, regardless
1805
   of how many names are in your company.  For large companies, this should be
1812
   of how many names are in your company.  For large companies, this should be
1806
   quite helpful.
1813
   quite helpful.
1807
 * Voicemail now permits a mailbox setting to wrap around from first to last
1814
 * Voicemail now permits a mailbox setting to wrap around from first to last
1808
   messages, if the "messagewrap" option is set to a true value.
1815
   messages, if the "messagewrap" option is set to a true value.
1809
 * Voicemail now permits an external script to be run, for password validation.
1816
 * Voicemail now permits an external script to be run, for password validation.
1810
   The script should output "VALID" or "INVALID" on stdout, depending upon the
1817
   The script should output "VALID" or "INVALID" on stdout, depending upon the
1811
   wish to validate or invalidate the password given.  Arguments are:
1818
   wish to validate or invalidate the password given.  Arguments are:
1812
   "mailbox" "context" "oldpass" "newpass".  See the sample voicemail.conf for
1819
   "mailbox" "context" "oldpass" "newpass".  See the sample voicemail.conf for
1813
   more details
1820
   more details
1814
 * Dial has a new option: F(context^extension^pri), which permits a callee to
1821
 * Dial has a new option: F(context^extension^pri), which permits a callee to
1815
   continue in the dialplan, at the specified label, if the caller hangs up.
1822
   continue in the dialplan, at the specified label, if the caller hangs up.
1816
 * ChanSpy and ExtenSpy have a new option, 's' which suppresses speaking the
1823
 * ChanSpy and ExtenSpy have a new option, 's' which suppresses speaking the
1817
   technology name (e.g. SIP, IAX, etc) of the channel being spied on.
1824
   technology name (e.g. SIP, IAX, etc) of the channel being spied on.
1818
 * The Jack application now has a c() option to supply a custom client name.
1825
 * The Jack application now has a c() option to supply a custom client name.
1819
 * Chanspy has a new option, 'B', which can be used to "barge" on a call. This is
1826
 * Chanspy has a new option, 'B', which can be used to "barge" on a call. This is
1820
   like the pre-existing whisper mode, except that the spy can also talk to the
1827
   like the pre-existing whisper mode, except that the spy can also talk to the
1821
   participant on the bridged channel as well.
1828
   participant on the bridged channel as well.
1822
 * Chanspy has a new option, 'n', which will allow for the spied-on party's name
1829
 * Chanspy has a new option, 'n', which will allow for the spied-on party's name
1823
   to be spoken instead of the channel name or number. For more information on the
1830
   to be spoken instead of the channel name or number. For more information on the
1824
   use of this option, issue the command "core show application ChanSpy" from the
1831
   use of this option, issue the command "core show application ChanSpy" from the
1825
   Asterisk CLI.
1832
   Asterisk CLI.
1826
 * Chanspy has a new option, 'd', which allows the spy to use DTMF to swap between
1833
 * Chanspy has a new option, 'd', which allows the spy to use DTMF to swap between
1827
   spy modes. Use of this feature overrides the typical use of numeric DTMF. In other
1834
   spy modes. Use of this feature overrides the typical use of numeric DTMF. In other
1828
   words, if using the 'd' option, it is not possible to enter a number to append to
1835
   words, if using the 'd' option, it is not possible to enter a number to append to
1829
   the first argument to Chanspy(). Pressing 4 will change to spy mode, pressing 5 will
1836
   the first argument to Chanspy(). Pressing 4 will change to spy mode, pressing 5 will
1830
   change to whisper mode, and pressing 6 will change to barge mode.
1837
   change to whisper mode, and pressing 6 will change to barge mode.
1831
 * ExternalIVR now takes several options that affect the way it performs, as
1838
 * ExternalIVR now takes several options that affect the way it performs, as
1832
   well as having several new commands.  Please see the External IVR page on the Asterisk
1839
   well as having several new commands.  Please see the External IVR page on the Asterisk
1833
   wiki for complete documentation: https://wiki.asterisk.org/wiki/x/oQBB
1840
   wiki for complete documentation: https://wiki.asterisk.org/wiki/x/oQBB
1834
 * Added ability to communicate over a TCP socket instead of forking a child process for the
1841
 * Added ability to communicate over a TCP socket instead of forking a child process for the
1835
   ExternalIVR application.
1842
   ExternalIVR application.
1836
 * ChanIsAvail has a new option, 'a', which will return all available channels instead
1843
 * ChanIsAvail has a new option, 'a', which will return all available channels instead
1837
   of just the first one if you give the function more then one channel to check.
1844
   of just the first one if you give the function more then one channel to check.
1838
 * PrivacyManager now takes an option where you can specify a context where the
1845
 * PrivacyManager now takes an option where you can specify a context where the
1839
   given number will be matched. This way you have more control over who is allowed
1846
   given number will be matched. This way you have more control over who is allowed
1840
   and it stops the people who blindly enter 10 digits.
1847
   and it stops the people who blindly enter 10 digits.
1841
 * ForkCDR has new options: 'a' updates the answer time on the new CDR; 'A' locks
1848
 * ForkCDR has new options: 'a' updates the answer time on the new CDR; 'A' locks
1842
   answer times, disposition, on orig CDR against updates; 'D' Copies the disposition
1849
   answer times, disposition, on orig CDR against updates; 'D' Copies the disposition
1843
   from the orig CDR to the new CDR after reset; 'e' sets the 'end' time on the
1850
   from the orig CDR to the new CDR after reset; 'e' sets the 'end' time on the
1844
   original CDR; 'R' prevents the new CDR from being reset; 's(var=val)' adds/changes
1851
   original CDR; 'R' prevents the new CDR from being reset; 's(var=val)' adds/changes
1845
   the 'var' variable on the original CDR; 'T' forces ast_cdr_end(), ast_cdr_answer(),
1852
   the 'var' variable on the original CDR; 'T' forces ast_cdr_end(), ast_cdr_answer(),
1846
   obey the LOCKED flag on cdr's in the chain, and also the ast_cdr_setvar() func.
1853
   obey the LOCKED flag on cdr's in the chain, and also the ast_cdr_setvar() func.
1847
 * The Dial() application no longer copies the language used by the caller to the callee's
1854
 * The Dial() application no longer copies the language used by the caller to the callee's
1848
   channel. If you desire for the caller's channel's language to be used for file playback
1855
   channel. If you desire for the caller's channel's language to be used for file playback
1849
   to the callee, then the file specified may be prepended with "${CHANNEL(language)}/" .
1856
   to the callee, then the file specified may be prepended with "${CHANNEL(language)}/" .
1850
 * SendImage() no longer hangs up the channel on error; instead, it sets the
1857
 * SendImage() no longer hangs up the channel on error; instead, it sets the
1851
   status variable SENDIMAGESTATUS to one of 'SUCCESS', 'FAILURE', or
1858
   status variable SENDIMAGESTATUS to one of 'SUCCESS', 'FAILURE', or
1852
   'UNSUPPORTED'.  This change makes SendImage() more consistent with other
1859
   'UNSUPPORTED'.  This change makes SendImage() more consistent with other
1853
   applications.
1860
   applications.
1854
 * Park has a new option, 's', which silences the announcement of the parking space number.
1861
 * Park has a new option, 's', which silences the announcement of the parking space number.
1855
 * A non-numeric, zero, or negative timeout specified to Dial() will now be interpreted as
1862
 * A non-numeric, zero, or negative timeout specified to Dial() will now be interpreted as
1856
   invalid input and will be assumed to mean that no timeout is desired.
1863
   invalid input and will be assumed to mean that no timeout is desired.
1857

    
   
1864

   
1858
SIP Changes
1865
SIP Changes
1859
-----------
1866
-----------
1860
 * Added DNS manager support to registrations for peers referencing peer entries.
1867
 * Added DNS manager support to registrations for peers referencing peer entries.
1861
   DNS manager runs in the background which allows DNS lookups to be run asynchronously
1868
   DNS manager runs in the background which allows DNS lookups to be run asynchronously
1862
   as well as periodically updating the IP address. These properties allow for
1869
   as well as periodically updating the IP address. These properties allow for
1863
   better performance as well as recovery in the event of an IP change.
1870
   better performance as well as recovery in the event of an IP change.
1864
 * Performance improvements via using hash tables (astobj2) and doubly-linked lists to improve
1871
 * Performance improvements via using hash tables (astobj2) and doubly-linked lists to improve
1865
   load/reload of large numbers of peers/users by ~40x (for large lists of peers).
1872
   load/reload of large numbers of peers/users by ~40x (for large lists of peers).
1866
   These changes also provide performance improvements for call setup and tear down.
1873
   These changes also provide performance improvements for call setup and tear down.
1867
 * Added ability to specify registration expiry time on a per registration basis in
1874
 * Added ability to specify registration expiry time on a per registration basis in
1868
   the register line.
1875
   the register line.
1869
 * Added support for T140 RED - redundancy in T.140 to prevent text loss due to
1876
 * Added support for T140 RED - redundancy in T.140 to prevent text loss due to
1870
   lost packets.
1877
   lost packets.
1871
 * Added t38pt_usertpsource option. See sip.conf.sample for details.
1878
 * Added t38pt_usertpsource option. See sip.conf.sample for details.
1872
 * Added SIPnotify AMI command, for sending arbitrary SIP notify commands.
1879
 * Added SIPnotify AMI command, for sending arbitrary SIP notify commands.
1873
 * 'sip show peers' and 'sip show users' display their entries sorted in
1880
 * 'sip show peers' and 'sip show users' display their entries sorted in
1874
    alphabetical order, as opposed to the order they were in, in the config
1881
    alphabetical order, as opposed to the order they were in, in the config
1875
    file or database.
1882
    file or database.
1876
 * Videosupport now supports an additional option, "always", which always sets
1883
 * Videosupport now supports an additional option, "always", which always sets
1877
    up video RTP ports, even on clients that don't support it.  This helps with
1884
    up video RTP ports, even on clients that don't support it.  This helps with
1878
    callfiles and certain transfers to ensure that if two video phones are
1885
    callfiles and certain transfers to ensure that if two video phones are
1879
    connected, they will always share video feeds.
1886
    connected, they will always share video feeds.
1880

    
   
1887

   
1881
IAX Changes
1888
IAX Changes
1882
-----------
1889
-----------
1883
 * Existing DNS manager lookups extended to check for SRV records.
1890
 * Existing DNS manager lookups extended to check for SRV records.
1884
 * IAX2 encryption support has been improved to support periodic key rotation
1891
 * IAX2 encryption support has been improved to support periodic key rotation
1885
   within a call for enhanced security.  The option "keyrotate" has been
1892
   within a call for enhanced security.  The option "keyrotate" has been
1886
   provided to disable this functionality to preserve backwards compatibility
1893
   provided to disable this functionality to preserve backwards compatibility
1887
   with older versions of IAX2 that do not support key rotation.
1894
   with older versions of IAX2 that do not support key rotation.
1888

    
   
1895

   
1889
CLI Changes
1896
CLI Changes
1890
-----------
1897
-----------
1891
  * New CLI command, "data get <path> [<search> [<filter>]]" which retrieves the
1898
  * New CLI command, "data get <path> [<search> [<filter>]]" which retrieves the
1892
     data tree based on the given <path>.
1899
     data tree based on the given <path>.
1893
  * New CLI command "data show providers" that will display all the registered
1900
  * New CLI command "data show providers" that will display all the registered
1894
     callbacks.
1901
     callbacks.
1895
  * New CLI command, "config reload <file.conf>" which reloads any module that
1902
  * New CLI command, "config reload <file.conf>" which reloads any module that
1896
     references that particular configuration file.  Also added "config list"
1903
     references that particular configuration file.  Also added "config list"
1897
     which shows which configuration files are in use.
1904
     which shows which configuration files are in use.
1898
  * New CLI commands, "pri show version" and "ss7 show version" that will
1905
  * New CLI commands, "pri show version" and "ss7 show version" that will
1899
     display which version of libpri and libss7 are being used, respectively.
1906
     display which version of libpri and libss7 are being used, respectively.
1900
     A new API call was added so trunk will now have to be compiled against
1907
     A new API call was added so trunk will now have to be compiled against
1901
     a versions of libpri and libss7 that have them or it will not know that
1908
     a versions of libpri and libss7 that have them or it will not know that
1902
     these libraries exist.
1909
     these libraries exist.
1903
  * The commands "core show globals", "core set global" and "core set chanvar" has
1910
  * The commands "core show globals", "core set global" and "core set chanvar" has
1904
     been deprecated in favor of the more semanticly correct "dialplan show globals",
1911
     been deprecated in favor of the more semanticly correct "dialplan show globals",
1905
     "dialplan set chanvar" and "dialplan set global".
1912
     "dialplan set chanvar" and "dialplan set global".
1906
  * New CLI command "dialplan show chanvar" to list all variables associated
1913
  * New CLI command "dialplan show chanvar" to list all variables associated
1907
    with a given channel.
1914
    with a given channel.
1908

    
   
1915

   
1909
DNS manager changes
1916
DNS manager changes
1910
-------------------
1917
-------------------
1911
  * Addresses managed by DNS manager now can check to see if there is a DNS
1918
  * Addresses managed by DNS manager now can check to see if there is a DNS
1912
    SRV record for a given domain and will use that hostname/port if present.
1919
    SRV record for a given domain and will use that hostname/port if present.
1913

    
   
1920

   
1914
AMI - The manager (TCP/TLS/HTTP)
1921
AMI - The manager (TCP/TLS/HTTP)
1915
--------------------------------
1922
--------------------------------
1916
  * The Status command now takes an optional list of variables to display
1923
  * The Status command now takes an optional list of variables to display
1917
    along with channel status.
1924
    along with channel status.
1918
  * The QueueEntry event now also includes the channel's uniqueid
1925
  * The QueueEntry event now also includes the channel's uniqueid
1919

    
   
1926

   
1920
ODBC Changes
1927
ODBC Changes
1921
------------
1928
------------
1922
  * res_odbc no longer has a limit of 1023 total possible unshared connections,
1929
  * res_odbc no longer has a limit of 1023 total possible unshared connections,
1923
    as some people were running into this limit.  This limit has been increased
1930
    as some people were running into this limit.  This limit has been increased
1924
    to 4.2 billion.
1931
    to 4.2 billion.
1925

    
   
1932

   
1926
Queue changes
1933
Queue changes
1927
-------------
1934
-------------
1928
  * The TRANSFER queue log entry now includes the the caller's original
1935
  * The TRANSFER queue log entry now includes the the caller's original
1929
    position in the transferred-from queue.
1936
    position in the transferred-from queue.
1930
  * A new configuration option, "timeoutpriority" has been added. Please see the section labeled
1937
  * A new configuration option, "timeoutpriority" has been added. Please see the section labeled
1931
    "QUEUE TIMING OPTIONS" in configs/queues.conf.sample for a detailed explanation of the option
1938
    "QUEUE TIMING OPTIONS" in configs/queues.conf.sample for a detailed explanation of the option
1932
    as well as an explanation about timeout options in general
1939
    as well as an explanation about timeout options in general
1933
  * Added a new option - C - for forcing the "answered elsewhere" flag on
1940
  * Added a new option - C - for forcing the "answered elsewhere" flag on
1934
    cancellation of calls in to members of the queue. This is to avoid the
1941
    cancellation of calls in to members of the queue. This is to avoid the
1935
    call to a member of a queue having the call listed as a "missed call".
1942
    call to a member of a queue having the call listed as a "missed call".
1936

    
   
1943

   
1937
Realtime changes
1944
Realtime changes
1938
----------------
1945
----------------
1939
  * Several (ODBC, Postgres, MySQL, SQLite) realtime drivers have been given
1946
  * Several (ODBC, Postgres, MySQL, SQLite) realtime drivers have been given
1940
    adaptive capabilities.  What this means in practical terms is that if your
1947
    adaptive capabilities.  What this means in practical terms is that if your
1941
    realtime table lacks critical fields, Asterisk will now emit warnings to
1948
    realtime table lacks critical fields, Asterisk will now emit warnings to
1942
    that effect.  Also, some of the realtime drivers have the ability (if
1949
    that effect.  Also, some of the realtime drivers have the ability (if
1943
    configured) to automatically add those columns to the table with the
1950
    configured) to automatically add those columns to the table with the
1944
    correct type and length.
1951
    correct type and length.
1945

    
   
1952

   
1946
Miscellaneous
1953
Miscellaneous
1947
-------------
1954
-------------
1948
  * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND can now be set using
1955
  * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND can now be set using
1949
    the 'setvar' option to cause a given audio file to be played upon completion
1956
    the 'setvar' option to cause a given audio file to be played upon completion
1950
    of an attended transfer.  Currently it works for DAHDI, IAX2, SIP, and
1957
    of an attended transfer.  Currently it works for DAHDI, IAX2, SIP, and
1951
    Skinny channels only.
1958
    Skinny channels only.
1952
  * You can now compile Asterisk against the Hoard Memory Allocator, see the
1959
  * You can now compile Asterisk against the Hoard Memory Allocator, see the
1953
    Hoard page on the Asterisk wiki for more information:
1960
    Hoard page on the Asterisk wiki for more information:
1954
    https://wiki.asterisk.org/wiki/x/pQBB
1961
    https://wiki.asterisk.org/wiki/x/pQBB
1955
  * Config file variables may now be appended to, by using the '+=' append
1962
  * Config file variables may now be appended to, by using the '+=' append
1956
    operator.  This is most helpful when working with long SQL queries in
1963
    operator.  This is most helpful when working with long SQL queries in
1957
    func_odbc.conf, as the queries no longer need to be specified on a single
1964
    func_odbc.conf, as the queries no longer need to be specified on a single
1958
    line.
1965
    line.
1959
  * CDR config file, cdr.conf, has an added option, "initiatedseconds",
1966
  * CDR config file, cdr.conf, has an added option, "initiatedseconds",
1960
    which will add a second to the billsec when the ending
1967
    which will add a second to the billsec when the ending
1961
    time is set, if the number in the microseconds field of the end time is
1968
    time is set, if the number in the microseconds field of the end time is
1962
    greater than the number of microseconds in the answer time. This allows
1969
    greater than the number of microseconds in the answer time. This allows
1963
    users to count the 'initiated' seconds in their billing records.
1970
    users to count the 'initiated' seconds in their billing records.
1964

    
   
1971

   
1965
------------------------------------------------------------------------------
1972
------------------------------------------------------------------------------
1966
--- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0  -------------
1973
--- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0  -------------
1967
------------------------------------------------------------------------------
1974
------------------------------------------------------------------------------
1968

    
   
1975

   
1969
AMI - The manager (TCP/TLS/HTTP)
1976
AMI - The manager (TCP/TLS/HTTP)
1970
--------------------------------
1977
--------------------------------
1971
  * Manager has undergone a lot of changes, all of them documented
1978
  * Manager has undergone a lot of changes, all of them documented
1972
    on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/tQBB
1979
    on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/tQBB
1973
  * Manager version has changed to 1.1
1980
  * Manager version has changed to 1.1
1974
  * Added a new action 'CoreShowChannels' to list currently defined channels
1981
  * Added a new action 'CoreShowChannels' to list currently defined channels
1975
     and some information about them.
1982
     and some information about them.
1976
  * Added a new action 'SIPshowregistry' to list SIP registrations.
1983
  * Added a new action 'SIPshowregistry' to list SIP registrations.
1977
  * Added TLS support for the manager interface and HTTP server
1984
  * Added TLS support for the manager interface and HTTP server
1978
  * Added the URI redirect option for the built-in HTTP server
1985
  * Added the URI redirect option for the built-in HTTP server
1979
  * The output of CallerID in Manager events is now more consistent.
1986
  * The output of CallerID in Manager events is now more consistent.
1980
     CallerIDNum is used for number and CallerIDName for name.
1987
     CallerIDNum is used for number and CallerIDName for name.
1981
  * Enable https support for builtin web server.
1988
  * Enable https support for builtin web server.
1982
     See configs/http.conf.sample for details.
1989
     See configs/http.conf.sample for details.
1983
  * Added a new action, GetConfigJSON, which can return the contents of an
1990
  * Added a new action, GetConfigJSON, which can return the contents of an
1984
     Asterisk configuration file in JSON format.  This is intended to help
1991
     Asterisk configuration file in JSON format.  This is intended to help
1985
     improve the performance of AJAX applications using the manager interface
1992
     improve the performance of AJAX applications using the manager interface
1986
     over HTTP.
1993
     over HTTP.
1987
  * SIP and IAX manager events now use "ChannelType" in all cases where we
1994
  * SIP and IAX manager events now use "ChannelType" in all cases where we
1988
     indicate channel driver. Previously, we used a mixture of "Channel"
1995
     indicate channel driver. Previously, we used a mixture of "Channel"
1989
     and "ChannelDriver" headers.
1996
     and "ChannelDriver" headers.
1990
  * Added a "Bridge" action which allows you to bridge any two channels that
1997
  * Added a "Bridge" action which allows you to bridge any two channels that
1991
     are currently active on the system.
1998
     are currently active on the system.
1992
  * Added a "ListAllVoicemailUsers" action that allows you to get a list of all
1999
  * Added a "ListAllVoicemailUsers" action that allows you to get a list of all
1993
     the voicemail users setup.
2000
     the voicemail users setup.
1994
  * Added 'DBDel' and 'DBDelTree' manager commands.
2001
  * Added 'DBDel' and 'DBDelTree' manager commands.
1995
  * cdr_manager now reports events via the "cdr" level, separating it from
2002
  * cdr_manager now reports events via the "cdr" level, separating it from
1996
     the very verbose "call" level.
2003
     the very verbose "call" level.
1997
  * Manager users are now stored in memory. If you change the manager account
2004
  * Manager users are now stored in memory. If you change the manager account
1998
    list (delete or add accounts) you need to reload manager.
2005
    list (delete or add accounts) you need to reload manager.
1999
  * Added Masquerade manager event for when a masquerade happens between
2006
  * Added Masquerade manager event for when a masquerade happens between
2000
     two channels.
2007
     two channels.
2001
  * Added "manager reload" command for the CLI
2008
  * Added "manager reload" command for the CLI
2002
  * Lots of commands that only provided information are now allowed under the
2009
  * Lots of commands that only provided information are now allowed under the
2003
     Reporting privilege, instead of only under Call or System.
2010
     Reporting privilege, instead of only under Call or System.
2004
  * The IAX* commands now require either System or Reporting privilege, to
2011
  * The IAX* commands now require either System or Reporting privilege, to
2005
     mirror the privileges of the SIP* commands.
2012
     mirror the privileges of the SIP* commands.
2006
  * Added ability to retrieve list of categories in a config file.
2013
  * Added ability to retrieve list of categories in a config file.
2007
  * Added ability to retrieve the content of a particular category.
2014
  * Added ability to retrieve the content of a particular category.
2008
  * Added ability to empty a context.
2015
  * Added ability to empty a context.
2009
  * Created new action to create a new file.
2016
  * Created new action to create a new file.
2010
  * Updated delete action to allow deletion by line number with respect to category.
2017
  * Updated delete action to allow deletion by line number with respect to category.
2011
  * Added new action insert to add new variable to category at specified line.
2018
  * Added new action insert to add new variable to category at specified line.
2012
  * Updated action newcat to allow new category to be inserted in file above another
2019
  * Updated action newcat to allow new category to be inserted in file above another
2013
    existing category.
2020
    existing category.
2014
  * Added new event "JitterBufStats" in the IAX2 channel
2021
  * Added new event "JitterBufStats" in the IAX2 channel
2015
  * Originate now requires the Originate privilege and, if you want to call out
2022
  * Originate now requires the Originate privilege and, if you want to call out
2016
    to a subshell, it requires the System privilege, as well.  This was done to
2023
    to a subshell, it requires the System privilege, as well.  This was done to
2017
    enhance manager security.
2024
    enhance manager security.
2018
  * Originate now accepts codec settings with "Codecs: alaw, ulaw, h264"
2025
  * Originate now accepts codec settings with "Codecs: alaw, ulaw, h264"
2019
  * New command: Atxfer. See https://wiki.asterisk.org/wiki/x/uABB for more details
2026
  * New command: Atxfer. See https://wiki.asterisk.org/wiki/x/uABB for more details
2020
    or manager show command Atxfer from the CLI
2027
    or manager show command Atxfer from the CLI
2021
  * New command: IAXregistry. See https://wiki.asterisk.org/wiki/x/uABB for more
2028
  * New command: IAXregistry. See https://wiki.asterisk.org/wiki/x/uABB for more
2022
    details or manager show command IAXregistry from the CLI
2029
    details or manager show command IAXregistry from the CLI
2023

    
   
2030

   
2024
Dialplan functions
2031
Dialplan functions
2025
------------------
2032
------------------
2026
  * Added the DEVICE_STATE() dialplan function which allows retrieving any device
2033
  * Added the DEVICE_STATE() dialplan function which allows retrieving any device
2027
     state in the dialplan, as well as creating custom device states that are
2034
     state in the dialplan, as well as creating custom device states that are
2028
     controllable from the dialplan.
2035
     controllable from the dialplan.
2029
  * Extend CALLERID() function with "pres" and "ton" parameters to
2036
  * Extend CALLERID() function with "pres" and "ton" parameters to
2030
     fetch string representation of calling number presentation indicator
2037
     fetch string representation of calling number presentation indicator
2031
     and numeric representation of type of calling number value.
2038
     and numeric representation of type of calling number value.
2032
  * MailboxExists converted to dialplan function
2039
  * MailboxExists converted to dialplan function
2033
  * A new option to Dial() for telling IP phones not to count the call
2040
  * A new option to Dial() for telling IP phones not to count the call
2034
     as "missed" when dial times out and cancels.
2041
     as "missed" when dial times out and cancels.
2035
  * Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan
2042
  * Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan
2036
     mutex.  No deadlocks are possible, as LOCK() only allows a single lock to be
2043
     mutex.  No deadlocks are possible, as LOCK() only allows a single lock to be
2037
     held for any given channel.  Also, locks are automatically freed when a
2044
     held for any given channel.  Also, locks are automatically freed when a
2038
     channel is hung up.
2045
     channel is hung up.
2039
  * Added HINT() dialplan function that allows retrieving hint information.
2046
  * Added HINT() dialplan function that allows retrieving hint information.
2040
     Hints are mappings between extensions and devices for the sake of
2047
     Hints are mappings between extensions and devices for the sake of
2041
     determining the state of an extension.  This function can retrieve the list
2048
     determining the state of an extension.  This function can retrieve the list
2042
     of devices or the name associated with a hint.
2049
     of devices or the name associated with a hint.
2043
  * Added EXTENSION_STATE() dialplan function which allows retrieving the state
2050
  * Added EXTENSION_STATE() dialplan function which allows retrieving the state
2044
    of any extension.
2051
    of any extension.
2045
  * Added SYSINFO() dialplan function which allows retrieval of system information
2052
  * Added SYSINFO() dialplan function which allows retrieval of system information
2046
  * Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for
2053
  * Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for
2047
     the existence of a dialplan target.
2054
     the existence of a dialplan target.
2048
  * Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to
2055
  * Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to
2049
     upper and lower case, respectively.
2056
     upper and lower case, respectively.
2050
  * When bridging, Asterisk sets the BRIDGEPVTCALLID to the channel drivers unique
2057
  * When bridging, Asterisk sets the BRIDGEPVTCALLID to the channel drivers unique
2051
     ID for the call (not the Asterisk call ID or unique ID), provided that the
2058
     ID for the call (not the Asterisk call ID or unique ID), provided that the
2052
     channel driver supports this. For SIP, you get the SIP call-ID for the
2059
     channel driver supports this. For SIP, you get the SIP call-ID for the
2053
     bridged channel which you can store in the CDR with a custom field.
2060
     bridged channel which you can store in the CDR with a custom field.
2054

    
   
2061

   
2055
CLI Changes
2062
CLI Changes
2056
-----------
2063
-----------
2057
  * Added CLI permissions, config file: cli_permissions.conf
2064
  * Added CLI permissions, config file: cli_permissions.conf
2058
     default is to allow all commands for every local user/group.
2065
     default is to allow all commands for every local user/group.
2059
     Also this new feature added three new CLI commands:
2066
     Also this new feature added three new CLI commands:
2060
      - cli check permissions {<username>|@<groupname>|<username>@<groupname>} [<command>]
2067
      - cli check permissions {<username>|@<groupname>|<username>@<groupname>} [<command>]
2061
      - cli reload permissions
2068
      - cli reload permissions
2062
      - cli show permissions
2069
      - cli show permissions
2063
  * New CLI command "core show hint" (usage: core show hint <exten>)
2070
  * New CLI command "core show hint" (usage: core show hint <exten>)
2064
  * New CLI command "core show settings"
2071
  * New CLI command "core show settings"
2065
  * Added 'core show channels count' CLI command.
2072
  * Added 'core show channels count' CLI command.
2066
  * Added the ability to set the core debug and verbose values on a per-file basis.
2073
  * Added the ability to set the core debug and verbose values on a per-file basis.
2067
  * Added 'queue pause member' and 'queue unpause member' CLI commands
2074
  * Added 'queue pause member' and 'queue unpause member' CLI commands
2068
  * Ability to set process limits ("ulimit") without restarting Asterisk
2075
  * Ability to set process limits ("ulimit") without restarting Asterisk
2069
  * Enhanced "agi debug" to print the channel name as a prefix to the debug
2076
  * Enhanced "agi debug" to print the channel name as a prefix to the debug
2070
     output to make debugging on busy systems much easier.
2077
     output to make debugging on busy systems much easier.
2071
  * New CLI commands "dialplan set extenpatternmatching true/false"
2078
  * New CLI commands "dialplan set extenpatternmatching true/false"
2072
  * New CLI command: "core set chanvar" to set a channel variable from the CLI.
2079
  * New CLI command: "core set chanvar" to set a channel variable from the CLI.
2073
  * Added an easy way to execute Asterisk CLI commands at startup.  Any commands
2080
  * Added an easy way to execute Asterisk CLI commands at startup.  Any commands
2074
    listed in the startup_commands section of cli.conf will get executed.
2081
    listed in the startup_commands section of cli.conf will get executed.
2075
  * Added a CLI command, "devstate change", which allows you to set custom device
2082
  * Added a CLI command, "devstate change", which allows you to set custom device
2076
     states from the func_devstate module that provides the DEVICE_STATE() function
2083
     states from the func_devstate module that provides the DEVICE_STATE() function
2077
     and handling of the "Custom:" devices.
2084
     and handling of the "Custom:" devices.
2078
  * New CLI command: "sip show sched" which shows all ast_sched entries for sip,
2085
  * New CLI command: "sip show sched" which shows all ast_sched entries for sip,
2079
    sorted into the different possible callbacks, with the number of entries
2086
    sorted into the different possible callbacks, with the number of entries
2080
    currently scheduled for each. Gives you a feel for how busy the sip channel
2087
    currently scheduled for each. Gives you a feel for how busy the sip channel
2081
    driver is.
2088
    driver is.
2082
  * Added 'skinny show lines verbose' CLI command. This will show the subs for every channel.
2089
  * Added 'skinny show lines verbose' CLI command. This will show the subs for every channel.
2083
  * Cleanup another bunch of CLI commands. Now all modules follow the same schema.
2090
  * Cleanup another bunch of CLI commands. Now all modules follow the same schema.
2084
    (Done by lmadsen, junky and mvanbaak during the devcon 2008)
2091
    (Done by lmadsen, junky and mvanbaak during the devcon 2008)
2085

    
   
2092

   
2086
SIP changes
2093
SIP changes
2087
-----------
2094
-----------
2088
 * Added a new 'faxdetect=yes|no' configuration option to sip.conf.  When this
2095
 * Added a new 'faxdetect=yes|no' configuration option to sip.conf.  When this
2089
    option is enabled, Asterisk will watch for a CNG tone in the incoming audio
2096
    option is enabled, Asterisk will watch for a CNG tone in the incoming audio
2090
    for a received call.  If it is detected, the channel will jump to the
2097
    for a received call.  If it is detected, the channel will jump to the
2091
    'fax' extension in the dialplan.
2098
    'fax' extension in the dialplan.
2092
  * The default SIP useragent= identifier now includes the Asterisk version
2099
  * The default SIP useragent= identifier now includes the Asterisk version
2093
  * A new option, match_auth_username in sip.conf changes the matching of incoming requests.
2100
  * A new option, match_auth_username in sip.conf changes the matching of incoming requests.
2094
     If set, and the incoming request carries authentication info,
2101
     If set, and the incoming request carries authentication info,
2095
     the username to match in the users list is taken from the Digest header
2102
     the username to match in the users list is taken from the Digest header
2096
     rather than from the From: field. This feature is considered experimental.
2103
     rather than from the From: field. This feature is considered experimental.
2097
  * The "musiconhold" and "musicclass" settings in sip.conf are now removed,
2104
  * The "musiconhold" and "musicclass" settings in sip.conf are now removed,
2098
     since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4
2105
     since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4
2099
  * The "localmask" setting was removed in version 1.2 and the reminder about it
2106
  * The "localmask" setting was removed in version 1.2 and the reminder about it
2100
     being removed is now also removed.
2107
     being removed is now also removed.
2101
  * A new option "busylevel" for setting a level of calls where asterisk reports
2108
  * A new option "busylevel" for setting a level of calls where asterisk reports
2102
     a device as busy, to separate it from call-limit. This value is also added
2109
     a device as busy, to separate it from call-limit. This value is also added
2103
     to the SIP_PEER dialplan function.
2110
     to the SIP_PEER dialplan function.
2104
  * A new realtime family called "sipregs" is now supported to store SIP registration
2111
  * A new realtime family called "sipregs" is now supported to store SIP registration
2105
     data. If this family is defined, "sippeers" will be used for configuration and
2112
     data. If this family is defined, "sippeers" will be used for configuration and
2106
     "sipregs" for registrations. If it's not defined, "sippeers" will be used for
2113
     "sipregs" for registrations. If it's not defined, "sippeers" will be used for
2107
     registration data, as before.
2114
     registration data, as before.
2108
  * The SIPPEER function have new options for port address, call and pickup groups
2115
  * The SIPPEER function have new options for port address, call and pickup groups
2109
  * Added support for T.140 realtime text in SIP/RTP
2116
  * Added support for T.140 realtime text in SIP/RTP
2110
  * The "checkmwi" option has been removed from sip.conf, as it is no longer
2117
  * The "checkmwi" option has been removed from sip.conf, as it is no longer
2111
     required due to the restructuring of how MWI is handled.  See the descriptions
2118
     required due to the restructuring of how MWI is handled.  See the descriptions
2112
     in this file of the "pollmailboxes" and "pollfreq" options to voicemail.conf
2119
     in this file of the "pollmailboxes" and "pollfreq" options to voicemail.conf
2113
     for more information.
2120
     for more information.
2114
  * Added rtpdest option to CHANNEL() dialplan function.
2121
  * Added rtpdest option to CHANNEL() dialplan function.
2115
  * Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place.
2122
  * Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place.
2116
  * SIP now adds a header to the CANCEL if the call was answered by another phone
2123
  * SIP now adds a header to the CANCEL if the call was answered by another phone
2117
     in the same dial command, or if the new c option in dial() is used.
2124
     in the same dial command, or if the new c option in dial() is used.
2118
  * The new default is that 100 Trying is not sent on REGISTER attempts as the RFC specifically
2125
  * The new default is that 100 Trying is not sent on REGISTER attempts as the RFC specifically
2119
     states it is not needed. For phones, however, that do require it the "registertrying" option
2126
     states it is not needed. For phones, however, that do require it the "registertrying" option
2120
     has been added so it can be enabled.
2127
     has been added so it can be enabled.
2121
  * A new option called "callcounter" (global/peer/user level) enables call counters needed
2128
  * A new option called "callcounter" (global/peer/user level) enables call counters needed
2122
     for better status reports needed for queues and SIP subscriptions. (Call-Limit was previously
2129
     for better status reports needed for queues and SIP subscriptions. (Call-Limit was previously
2123
     used to enable this functionality).
2130
     used to enable this functionality).
2124
  * New settings for timer T1 and timer B on a global level or per device. This makes it
2131
  * New settings for timer T1 and timer B on a global level or per device. This makes it
2125
     possible to force timeout faster on non-responsive SIP servers. These settings are
2132
     possible to force timeout faster on non-responsive SIP servers. These settings are
2126
     considered advanced, so don't use them unless you have a problem.
2133
     considered advanced, so don't use them unless you have a problem.
2127
  * Added a dial string option to be able to set the To: header in an INVITE to any
2134
  * Added a dial string option to be able to set the To: header in an INVITE to any
2128
     SIP uri.
2135
     SIP uri.
2129
  * Added a new global and per-peer option, qualifyfreq, which allows you to configure
2136
  * Added a new global and per-peer option, qualifyfreq, which allows you to configure
2130
     the qualify frequency.
2137
     the qualify frequency.
2131
  * Added SIP Session Timers support (RFC 4028).  This prevents stuck SIP sessions that
2138
  * Added SIP Session Timers support (RFC 4028).  This prevents stuck SIP sessions that
2132
     were not properly torn down due to network or endpoint failures during an established
2139
     were not properly torn down due to network or endpoint failures during an established
2133
     SIP session.
2140
     SIP session.
2134
  * Added experimental TCP and TLS support for SIP.  See https://wiki.asterisk.org/wiki/x/ygBB
2141
  * Added experimental TCP and TLS support for SIP.  See https://wiki.asterisk.org/wiki/x/ygBB
2135
     and configs/sip.conf.sample for more information on how it is used.
2142
     and configs/sip.conf.sample for more information on how it is used.
2136
  * Added a new configuration option "authfailureevents" that enables manager events when
2143
  * Added a new configuration option "authfailureevents" that enables manager events when
2137
    a peer can't authenticate properly.
2144
    a peer can't authenticate properly.
2138
  * Added DNS manager support to registrations for peers not referencing a peer entry.
2145
  * Added DNS manager support to registrations for peers not referencing a peer entry.
2139

    
   
2146

   
2140
IAX2 changes
2147
IAX2 changes
2141
------------
2148
------------
2142
  * Added the trunkmaxsize configuration option to chan_iax2.
2149
  * Added the trunkmaxsize configuration option to chan_iax2.
2143
  * Added the srvlookup option to iax.conf
2150
  * Added the srvlookup option to iax.conf
2144
  * Added support for OSP.  The token is set and retrieved through the CHANNEL()
2151
  * Added support for OSP.  The token is set and retrieved through the CHANNEL()
2145
     dialplan function.
2152
     dialplan function.
2146

    
   
2153

   
2147
XMPP Google Talk/Jingle changes
2154
XMPP Google Talk/Jingle changes
2148
-------------------------------
2155
-------------------------------
2149
  * Added the bindaddr option to gtalk.conf.
2156
  * Added the bindaddr option to gtalk.conf.
2150

    
   
2157

   
2151
Skinny changes
2158
Skinny changes
2152
-------------
2159
-------------
2153
  * Added skinny show device, skinny show line, and skinny show settings CLI commands.
2160
  * Added skinny show device, skinny show line, and skinny show settings CLI commands.
2154
  * Proper codec support in chan_skinny.
2161
  * Proper codec support in chan_skinny.
2155
  * Added settings for IP and Ethernet QoS requests
2162
  * Added settings for IP and Ethernet QoS requests
2156

    
   
2163

   
2157
MGCP changes
2164
MGCP changes
2158
------------
2165
------------
2159
  * Added separate settings for media QoS in mgcp.conf
2166
  * Added separate settings for media QoS in mgcp.conf
2160

    
   
2167

   
2161
Console Channel Driver changes
2168
Console Channel Driver changes
2162
------------------------------
2169
------------------------------
2163
  * Added experimental support for video send & receive to chan_oss.
2170
  * Added experimental support for video send & receive to chan_oss.
2164
    This requires SDL and ffmpeg/avcodec, plus Video4Linux or X11 to act as
2171
    This requires SDL and ffmpeg/avcodec, plus Video4Linux or X11 to act as
2165
    a video source.
2172
    a video source.
2166

    
   
2173

   
2167
Phone channel changes (chan_phone)
2174
Phone channel changes (chan_phone)
2168
----------------------------------
2175
----------------------------------
2169
  * Added G729 passthrough support to chan_phone for Sigma Designs boards.
2176
  * Added G729 passthrough support to chan_phone for Sigma Designs boards.
2170

    
   
2177

   
2171
H.323 channel Changes
2178
H.323 channel Changes
2172
---------------------
2179
---------------------
2173
  * H323 remote hold notification support added (by NOTIFY message
2180
  * H323 remote hold notification support added (by NOTIFY message
2174
     and/or H.450 supplementary service)
2181
     and/or H.450 supplementary service)
2175

    
   
2182

   
2176
Local channel changes
2183
Local channel changes
2177
---------------------
2184
---------------------
2178
  * The device state functionality in the Local channel driver has been updated
2185
  * The device state functionality in the Local channel driver has been updated
2179
     to indicate INUSE or NOT_INUSE when a Local channel is being used as opposed
2186
     to indicate INUSE or NOT_INUSE when a Local channel is being used as opposed
2180
     to just UNKNOWN if the extension exists.
2187
     to just UNKNOWN if the extension exists.
2181
  * Added jitterbuffer support for chan_local.  This allows you to use the
2188
  * Added jitterbuffer support for chan_local.  This allows you to use the
2182
     generic jitterbuffer on incoming calls going to Asterisk applications.
2189
     generic jitterbuffer on incoming calls going to Asterisk applications.
2183
     For example, this would allow you to use a jitterbuffer for an incoming
2190
     For example, this would allow you to use a jitterbuffer for an incoming
2184
     SIP call to Voicemail by putting a Local channel in the middle.  This
2191
     SIP call to Voicemail by putting a Local channel in the middle.  This
2185
     feature is enabled by using the 'j' option in the Dial string to the Local
2192
     feature is enabled by using the 'j' option in the Dial string to the Local
2186
     channel in conjunction with the existing 'n' option for local channels.
2193
     channel in conjunction with the existing 'n' option for local channels.
2187
  * A 'b' option has been added which causes chan_local to return the actual channel
2194
  * A 'b' option has been added which causes chan_local to return the actual channel
2188
     that is behind it when queried. This is useful for transfer scenarios as the
2195
     that is behind it when queried. This is useful for transfer scenarios as the
2189
     actual channel will be transferred, not the Local channel.
2196
     actual channel will be transferred, not the Local channel.
2190

    
   
2197

   
2191
Agent channel changes
2198
Agent channel changes
2192
----------------------
2199
----------------------
2193
  * The ackcall and endcall options are now supplemented with options acceptdtmf
2200
  * The ackcall and endcall options are now supplemented with options acceptdtmf
2194
    and enddtmf. These allow for the DTMF keypress to be configurable. The options
2201
    and enddtmf. These allow for the DTMF keypress to be configurable. The options
2195
    default to their old hard-coded values ('#' and '*' respectively) so this should
2202
    default to their old hard-coded values ('#' and '*' respectively) so this should
2196
    not break any existing agent installations.
2203
    not break any existing agent installations.
2197

    
   
2204

   
2198
DAHDI channel driver (chan_dahdi) Changes
2205
DAHDI channel driver (chan_dahdi) Changes
2199
----------------------------------------
2206
----------------------------------------
2200
  * SS7 support (via libss7 library)
2207
  * SS7 support (via libss7 library)
2201
  * In India, some carriers transmit CID via dtmf. Some code has been added
2208
  * In India, some carriers transmit CID via dtmf. Some code has been added
2202
     that will handle some situations. The cidstart=polarity_IN choice has been added for
2209
     that will handle some situations. The cidstart=polarity_IN choice has been added for
2203
     those carriers that transmit CID via dtmf after a polarity change.
2210
     those carriers that transmit CID via dtmf after a polarity change.
2204
  * CID matching information is now shown when doing 'dialplan show'.
2211
  * CID matching information is now shown when doing 'dialplan show'.
2205
  * Added dahdi show version CLI command.
2212
  * Added dahdi show version CLI command.
2206
  * Added setvar support to chan_dahdi.conf channel entries.
2213
  * Added setvar support to chan_dahdi.conf channel entries.
2207
  * Added two new options: mwimonitor and mwimonitornotify.  These options allow
2214
  * Added two new options: mwimonitor and mwimonitornotify.  These options allow
2208
     you to enable MWI monitoring on FXO lines.  When the MWI state changes,
2215
     you to enable MWI monitoring on FXO lines.  When the MWI state changes,
2209
     the script specified in the mwimonitornotify option is executed.  An internal
2216
     the script specified in the mwimonitornotify option is executed.  An internal
2210
     event indicating the new state of the mailbox is also generated, so that
2217
     event indicating the new state of the mailbox is also generated, so that
2211
     the normal MWI facilities in Asterisk work as usual.
2218
     the normal MWI facilities in Asterisk work as usual.
2212
  * Added signalling type 'auto', which attempts to use the same signalling type
2219
  * Added signalling type 'auto', which attempts to use the same signalling type
2213
     for a channel as configured in DAHDI. This is primarily designed for analog
2220
     for a channel as configured in DAHDI. This is primarily designed for analog
2214
     ports, but will also work for digital ports that are configured for FXS or FXO
2221
     ports, but will also work for digital ports that are configured for FXS or FXO
2215
     signalling types. This mode is also the default now, so if your chan_dahdi.conf
2222
     signalling types. This mode is also the default now, so if your chan_dahdi.conf
2216
     does not specify signalling for a channel (which is unlikely as the sample
2223
     does not specify signalling for a channel (which is unlikely as the sample
2217
     configuration file has always recommended specifying it for every channel) then
2224
     configuration file has always recommended specifying it for every channel) then
2218
     the 'auto' mode will be used for that channel if possible.
2225
     the 'auto' mode will be used for that channel if possible.
2219
  * Added a 'dahdi set dnd' command to allow CLI control of the Do-Not-Disturb
2226
  * Added a 'dahdi set dnd' command to allow CLI control of the Do-Not-Disturb
2220
     state for a channel; also ensured that the DNDState Manager event is
2227
     state for a channel; also ensured that the DNDState Manager event is
2221
     emitted no matter how the DND state is set or cleared.
2228
     emitted no matter how the DND state is set or cleared.
2222

    
   
2229

   
2223
New Channel Drivers
2230
New Channel Drivers
2224
-------------------
2231
-------------------
2225
  * Added a new channel driver, chan_unistim.  See the Asterisk wiki at
2232
  * Added a new channel driver, chan_unistim.  See the Asterisk wiki at
2226
     https://wiki.asterisk.org/wiki/x/vgsiAQ and configs/unistim.conf.sample
2233
     https://wiki.asterisk.org/wiki/x/vgsiAQ and configs/unistim.conf.sample
2227
     for details.  This new channel driver allows you to use Nortel i2002,
2234
     for details.  This new channel driver allows you to use Nortel i2002,
2228
     i2004, and i2050 phones with Asterisk.
2235
     i2004, and i2050 phones with Asterisk.
2229
  * Added a new channel driver, chan_console, which uses portaudio as a cross
2236
  * Added a new channel driver, chan_console, which uses portaudio as a cross
2230
     platform audio interface.  It was written as a channel driver that would
2237
     platform audio interface.  It was written as a channel driver that would
2231
     work with Mac CoreAudio, but portaudio supports a number of other audio
2238
     work with Mac CoreAudio, but portaudio supports a number of other audio
2232
     interfaces, as well. Note that this channel driver requires v19 or higher
2239
     interfaces, as well. Note that this channel driver requires v19 or higher
2233
     of portaudio; older versions have a different API.
2240
     of portaudio; older versions have a different API.
2234

    
   
2241

   
2235
DUNDi changes
2242
DUNDi changes
2236
-------------
2243
-------------
2237
  * Added the ability to specify arguments to the Dial application when using
2244
  * Added the ability to specify arguments to the Dial application when using
2238
     the DUNDi switch in the dialplan.
2245
     the DUNDi switch in the dialplan.
2239
  * Added the ability to set weights for responses dynamically.  This can be
2246
  * Added the ability to set weights for responses dynamically.  This can be
2240
     done using a global variable or a dialplan function.  Using the SHELL()
2247
     done using a global variable or a dialplan function.  Using the SHELL()
2241
     function would allow you to have an external script set the weight for
2248
     function would allow you to have an external script set the weight for
2242
     each response.
2249
     each response.
2243
  * Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT.  These
2250
  * Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT.  These
2244
     functions will allow you to initiate a DUNDi query from the dialplan,
2251
     functions will allow you to initiate a DUNDi query from the dialplan,
2245
     find out how many results there are, and access each one.
2252
     find out how many results there are, and access each one.
2246
  * Added the ability to specifiy a port for a dundi peer.
2253
  * Added the ability to specifiy a port for a dundi peer.
2247

    
   
2254

   
2248
ENUM changes
2255
ENUM changes
2249
------------
2256
------------
2250
  * Added two new dialplan functions, ENUMQUERY and ENUMRESULT.  These
2257
  * Added two new dialplan functions, ENUMQUERY and ENUMRESULT.  These
2251
     functions will allow you to initiate an ENUM lookup from the dialplan,
2258
     functions will allow you to initiate an ENUM lookup from the dialplan,
2252
     and Asterisk will cache the results.  ENUMRESULT can be used to access
2259
     and Asterisk will cache the results.  ENUMRESULT can be used to access
2253
     the results without doing multiple DNS queries.
2260
     the results without doing multiple DNS queries.
2254

    
   
2261

   
2255
Voicemail Changes
2262
Voicemail Changes
2256
-----------------
2263
-----------------
2257
  * Added the ability to customize which sound files are used for some of the
2264
  * Added the ability to customize which sound files are used for some of the
2258
     prompts within the Voicemail application by changing them in voicemail.conf
2265
     prompts within the Voicemail application by changing them in voicemail.conf
2259
  * Added the ability for the "voicemail show users" CLI command to show users
2266
  * Added the ability for the "voicemail show users" CLI command to show users
2260
     configured by the dynamic realtime configuration method.
2267
     configured by the dynamic realtime configuration method.
2261
  * MWI (Message Waiting Indication) handling has been significantly
2268
  * MWI (Message Waiting Indication) handling has been significantly
2262
     restructured internally to Asterisk.  It is now totally event based
2269
     restructured internally to Asterisk.  It is now totally event based
2263
     instead of polling based.  The voicemail application will notify other
2270
     instead of polling based.  The voicemail application will notify other
2264
     modules that have subscribed to MWI events when something in the mailbox
2271
     modules that have subscribed to MWI events when something in the mailbox
2265
     changes.
2272
     changes.
2266
    This also means that if any other entity outside of Asterisk is changing
2273
    This also means that if any other entity outside of Asterisk is changing
2267
     the contents of mailboxes, then the voicemail application still needs to
2274
     the contents of mailboxes, then the voicemail application still needs to
2268
     poll for changes.  Examples of situations that would require this option
2275
     poll for changes.  Examples of situations that would require this option
2269
     are web interfaces to voicemail or an email client in the case of using
2276
     are web interfaces to voicemail or an email client in the case of using
2270
     IMAP storage.  So, two new options have been added to voicemail.conf
2277
     IMAP storage.  So, two new options have been added to voicemail.conf
2271
     to account for this: "pollmailboxes" and "pollfreq".  See the sample
2278
     to account for this: "pollmailboxes" and "pollfreq".  See the sample
2272
     configuration file for details.
2279
     configuration file for details.
2273
  * Added "tw" language support
2280
  * Added "tw" language support
2274
  * Added support for storage of greetings using an IMAP server
2281
  * Added support for storage of greetings using an IMAP server
2275
  * Added ability to customize forward, reverse, stop, and pause keys for message playback
2282
  * Added ability to customize forward, reverse, stop, and pause keys for message playback
2276
  * SMDI is now enabled in voicemail using the smdienable option.
2283
  * SMDI is now enabled in voicemail using the smdienable option.
2277
  * A "lockmode" option has been added to asterisk.conf to configure the file
2284
  * A "lockmode" option has been added to asterisk.conf to configure the file
2278
     locking method used for voicemail, and potentially other things in the
2285
     locking method used for voicemail, and potentially other things in the
2279
     future.  The default is the old behavior, lockfile.  However, there is a
2286
     future.  The default is the old behavior, lockfile.  However, there is a
2280
     new method, "flock", that uses a different method for situations where the
2287
     new method, "flock", that uses a different method for situations where the
2281
     lockfile will not work, such as on SMB/CIFS mounts.
2288
     lockfile will not work, such as on SMB/CIFS mounts.
2282
  * Added the ability to backup deleted messages, to ease recovery in the case
2289
  * Added the ability to backup deleted messages, to ease recovery in the case
2283
     that a user accidentally deletes a message, and discovers that they need it.
2290
     that a user accidentally deletes a message, and discovers that they need it.
2284
  * Reworked the SMDI interface in Asterisk.  The new way to access SMDI information
2291
  * Reworked the SMDI interface in Asterisk.  The new way to access SMDI information
2285
     is through the new functions, SMDI_MSG_RETRIEVE() and SMDI_MSG().  The file
2292
     is through the new functions, SMDI_MSG_RETRIEVE() and SMDI_MSG().  The file
2286
     smdi.conf can now be configured with options to map SMDI station IDs to Asterisk
2293
     smdi.conf can now be configured with options to map SMDI station IDs to Asterisk
2287
     voicemail boxes.  The SMDI interface can also poll for MWI changes when some
2294
     voicemail boxes.  The SMDI interface can also poll for MWI changes when some
2288
     outside entity is modifying the state of the mailbox (such as IMAP storage or
2295
     outside entity is modifying the state of the mailbox (such as IMAP storage or
2289
     a web interface of some kind).
2296
     a web interface of some kind).
2290
  * Added the support for marking messages as "urgent." There are two methods to accomplish
2297
  * Added the support for marking messages as "urgent." There are two methods to accomplish
2291
     this. One is to pass the 'U' option to VoiceMail(). Another way to mark a message as urgent
2298
     this. One is to pass the 'U' option to VoiceMail(). Another way to mark a message as urgent
2292
     is to specify "review=yes" in voicemail.conf. Doing this will cause allow the user to mark
2299
     is to specify "review=yes" in voicemail.conf. Doing this will cause allow the user to mark
2293
     the message as urgent after he has recorded a voicemail by following the voice instructions.
2300
     the message as urgent after he has recorded a voicemail by following the voice instructions.
2294
    When listening to voicemails using VoiceMailMain urgent messages will be presented before other
2301
    When listening to voicemails using VoiceMailMain urgent messages will be presented before other
2295
     messages
2302
     messages
2296

    
   
2303

   
2297
Queue changes
2304
Queue changes
2298
-------------
2305
-------------
2299
  * Added the general option 'shared_lastcall' so that member's wrapuptime may be
2306
  * Added the general option 'shared_lastcall' so that member's wrapuptime may be
2300
     used across multiple queues.
2307
     used across multiple queues.
2301
  * Added QUEUE_VARIABLES function to set queue variables added setqueuevar and
2308
  * Added QUEUE_VARIABLES function to set queue variables added setqueuevar and
2302
     setqueueentryvar options for each queue, see queues.conf.sample for details.
2309
     setqueueentryvar options for each queue, see queues.conf.sample for details.
2303
  * Added keepstats option to queues.conf which will keep queue
2310
  * Added keepstats option to queues.conf which will keep queue
2304
     statistics during a reload.
2311
     statistics during a reload.
2305
  * setinterfacevar option in queues.conf also now sets a variable
2312
  * setinterfacevar option in queues.conf also now sets a variable
2306
     called MEMBERNAME which contains the member's name.
2313
     called MEMBERNAME which contains the member's name.
2307
  * Added 'Strategy' field to manager event QueueParams which represents
2314
  * Added 'Strategy' field to manager event QueueParams which represents
2308
     the queue strategy in use.
2315
     the queue strategy in use.
2309
  * Added option to run macro when a queue member is connected to a caller,
2316
  * Added option to run macro when a queue member is connected to a caller,
2310
     see queues.conf.sample for details.
2317
     see queues.conf.sample for details.
2311
  * app_queue now has a 'loose' option which is almost exactly like 'strict' except it
2318
  * app_queue now has a 'loose' option which is almost exactly like 'strict' except it
2312
     does not count paused queue members as unavailable.
2319
     does not count paused queue members as unavailable.
2313
  * Added min-announce-frequency option to queues.conf which allows you to control the
2320
  * Added min-announce-frequency option to queues.conf which allows you to control the
2314
     minimum amount of time between queue announcements for use when the caller's queue
2321
     minimum amount of time between queue announcements for use when the caller's queue
2315
     position changes frequently.
2322
     position changes frequently.
2316
  * Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the
2323
  * Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the
2317
     queue log.
2324
     queue log.
2318
  * Added ability for non-realtime queues to have realtime members
2325
  * Added ability for non-realtime queues to have realtime members
2319
  * Added the "linear" strategy to queues.
2326
  * Added the "linear" strategy to queues.
2320
  * Added the "wrandom" strategy to queues.
2327
  * Added the "wrandom" strategy to queues.
2321
  * Added new channel variable QUEUE_MIN_PENALTY
2328
  * Added new channel variable QUEUE_MIN_PENALTY
2322
  * QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY may be adjusted in mid-call by defining
2329
  * QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY may be adjusted in mid-call by defining
2323
     rules in queuerules.conf. See configs/queuerules.conf.sample for details
2330
     rules in queuerules.conf. See configs/queuerules.conf.sample for details
2324
  * Added a new parameter for member definition, called state_interface. This may be
2331
  * Added a new parameter for member definition, called state_interface. This may be
2325
    used so that a member may be called via one interface but have a different interface's
2332
    used so that a member may be called via one interface but have a different interface's
2326
    device state reported.
2333
    device state reported.
2327
  * Added new CLI and Manager commands relating to reloading queues. From the CLI, see
2334
  * Added new CLI and Manager commands relating to reloading queues. From the CLI, see
2328
    "queue reload", "queue reset stats". Also see "manager show command QueueReload" and
2335
    "queue reload", "queue reset stats". Also see "manager show command QueueReload" and
2329
    "manager show command QueueReset."
2336
    "manager show command QueueReset."
2330
  * New configuration option: randomperiodicannounce. If a list of periodic announcements is
2337
  * New configuration option: randomperiodicannounce. If a list of periodic announcements is
2331
    specified by the periodic-announce option, then one will be chosen randomly when it is time
2338
    specified by the periodic-announce option, then one will be chosen randomly when it is time
2332
    to play a periodic announcment
2339
    to play a periodic announcment
2333
  * New configuration options: announce-position now takes two more values in addition to "yes" and
2340
  * New configuration options: announce-position now takes two more values in addition to "yes" and
2334
    "no." Two new options, "limit" and "more," are allowed. These are tied to another option,
2341
    "no." Two new options, "limit" and "more," are allowed. These are tied to another option,
2335
    announce-position-limit. By setting announce-position to "limit" callers will only have their
2342
    announce-position-limit. By setting announce-position to "limit" callers will only have their
2336
    position announced if their position is less than what is specified by announce-position-limit.
2343
    position announced if their position is less than what is specified by announce-position-limit.
2337
    If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
2344
    If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
2338
    will be told that their are more than announce-position-limit callers waiting.
2345
    will be told that their are more than announce-position-limit callers waiting.
2339
  * Two new queue log events have been added. An ADDMEMBER event will be logged
2346
  * Two new queue log events have been added. An ADDMEMBER event will be logged
2340
    when a realtime queue member is added and a REMOVEMEMBER event will be logged
2347
    when a realtime queue member is added and a REMOVEMEMBER event will be logged
2341
    when a realtime queue member is removed. Since there is no calling channel associated
2348
    when a realtime queue member is removed. Since there is no calling channel associated
2342
    with these events, the string "REALTIME" is placed where the channel's unique id
2349
    with these events, the string "REALTIME" is placed where the channel's unique id
2343
    is typically placed.
2350
    is typically placed.
2344
  * The configuration method for the "joinempty" and "leavewhenempty" options has
2351
  * The configuration method for the "joinempty" and "leavewhenempty" options has
2345
    changed to a comma-separated list of methods of determining member availability
2352
    changed to a comma-separated list of methods of determining member availability
2346
    instead of vague terms such as "yes," "loose," "no," and "strict." These old four
2353
    instead of vague terms such as "yes," "loose," "no," and "strict." These old four
2347
    values are still accepted for backwards-compatibility, though.
2354
    values are still accepted for backwards-compatibility, though.
2348
  * The average talktime is now calculated on queues. This information is reported via the
2355
  * The average talktime is now calculated on queues. This information is reported via the
2349
    CLI commands "queue show" and "queues show"; through the AMI events AgentComplete, QueueSummary,
2356
    CLI commands "queue show" and "queues show"; through the AMI events AgentComplete, QueueSummary,
2350
    and QueueParams; and through the channelvariable QUEUETALKTIME if setinterfacevar=yes is set for
2357
    and QueueParams; and through the channelvariable QUEUETALKTIME if setinterfacevar=yes is set for
2351
    the queue.
2358
    the queue.
2352

    
   
2359

   
2353
MeetMe Changes
2360
MeetMe Changes
2354
--------------
2361
--------------
2355
  * The 'o' option to provide an optimization has been removed and its functionality
2362
  * The 'o' option to provide an optimization has been removed and its functionality
2356
     has been enabled by default.
2363
     has been enabled by default.
2357
  * When a conference is created, the UNIQUEID of the channel that caused it to be
2364
  * When a conference is created, the UNIQUEID of the channel that caused it to be
2358
     created is stored.  Then, every channel that joins the conference will have the
2365
     created is stored.  Then, every channel that joins the conference will have the
2359
     MEETMEUNIQUEID channel variable set with this ID.  This can be used to relate
2366
     MEETMEUNIQUEID channel variable set with this ID.  This can be used to relate
2360
     callers that come and go from long standing conferences.
2367
     callers that come and go from long standing conferences.
2361
  * Added a new application, MeetMeChannelAdmin, which is similar to MeetMeAdmin,
2368
  * Added a new application, MeetMeChannelAdmin, which is similar to MeetMeAdmin,
2362
     except it does operations on a channel by name, instead of number in a conference.
2369
     except it does operations on a channel by name, instead of number in a conference.
2363
     This is a very useful feature in combination with the 'X' option to ChanSpy.
2370
     This is a very useful feature in combination with the 'X' option to ChanSpy.
2364
  * Added 'C' option to Meetme which causes a caller to continue in the dialplan
2371
  * Added 'C' option to Meetme which causes a caller to continue in the dialplan
2365
     when kicked out.
2372
     when kicked out.
2366
  * Added new RealTime functionality to provide support for scheduled conferencing.
2373
  * Added new RealTime functionality to provide support for scheduled conferencing.
2367
     This includes optional messages to the caller if they attempt to join before
2374
     This includes optional messages to the caller if they attempt to join before
2368
     the schedule start time, or to allow the caller to join the conference early.
2375
     the schedule start time, or to allow the caller to join the conference early.
2369
     Also included is optional support for limiting the number of callers per
2376
     Also included is optional support for limiting the number of callers per
2370
     RealTime conference.
2377
     RealTime conference.
2371
  * Added the S() and L() options to the MeetMe application.  These are pretty
2378
  * Added the S() and L() options to the MeetMe application.  These are pretty
2372
     much identical to the S() and L() options to Dial().  They let you set
2379
     much identical to the S() and L() options to Dial().  They let you set
2373
     timeouts for the conference, as well as have warning sounds played to
2380
     timeouts for the conference, as well as have warning sounds played to
2374
     let the caller know how much time is left, and when it is running out.
2381
     let the caller know how much time is left, and when it is running out.
2375
  * Added the ability to do "meetme concise" with the "meetme" CLI command.
2382
  * Added the ability to do "meetme concise" with the "meetme" CLI command.
2376
     This extends the concise capabilities of this CLI command to include
2383
     This extends the concise capabilities of this CLI command to include
2377
     listing all conferences, instead of an addition to the other sub commands
2384
     listing all conferences, instead of an addition to the other sub commands
2378
     for the "meetme" command.
2385
     for the "meetme" command.
2379
  * Added the ability to specify the music on hold class used to play into the
2386
  * Added the ability to specify the music on hold class used to play into the
2380
     conference when there is only one member and the M option is used.
2387
     conference when there is only one member and the M option is used.
2381
  * Added MEETME_INFO dialplan function which provides a way to query
2388
  * Added MEETME_INFO dialplan function which provides a way to query
2382
     various properties of a Meetme conference.
2389
     various properties of a Meetme conference.
2383
  * Added new admin features: *81: Roll call, *82: eject all, *83: mute all,
2390
  * Added new admin features: *81: Roll call, *82: eject all, *83: mute all,
2384
     and *84: record in-conf
2391
     and *84: record in-conf
2385

    
   
2392

   
2386
Other Dialplan Application Changes
2393
Other Dialplan Application Changes
2387
----------------------------------
2394
----------------------------------
2388
  * Argument support for Gosub application
2395
  * Argument support for Gosub application
2389
  * From the to-do lists: straighten out the app timeout args:
2396
  * From the to-do lists: straighten out the app timeout args:
2390
     Wait() app now really does 0.3 seconds- was truncating arg to an int.
2397
     Wait() app now really does 0.3 seconds- was truncating arg to an int.
2391
     WaitExten() same as Wait().
2398
     WaitExten() same as Wait().
2392
     Congestion() - Now takes floating pt. argument.
2399
     Congestion() - Now takes floating pt. argument.
2393
     Busy() - now takes floating pt. argument.
2400
     Busy() - now takes floating pt. argument.
2394
     Read() - timeout now can be floating pt.
2401
     Read() - timeout now can be floating pt.
2395
     WaitForRing() now takes floating pt timeout arg.
2402
     WaitForRing() now takes floating pt timeout arg.
2396
     SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
2403
     SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
2397
  * Added 's' option to Page application.
2404
  * Added 's' option to Page application.
2398
  * Added an optional timeout argument to the Page application.
2405
  * Added an optional timeout argument to the Page application.
2399
  * Added 'E', 'V', and 'P' commands to ExternalIVR.
2406
  * Added 'E', 'V', and 'P' commands to ExternalIVR.
2400
  * Added 'o' and 'X' options to Chanspy.
2407
  * Added 'o' and 'X' options to Chanspy.
2401
  * Added a new dialplan application, Bridge, which allows you to bridge the
2408
  * Added a new dialplan application, Bridge, which allows you to bridge the
2402
     calling channel to any other active channel on the system.
2409
     calling channel to any other active channel on the system.
2403
  * Added the ability to specify a music on hold class to play instead of ringing
2410
  * Added the ability to specify a music on hold class to play instead of ringing
2404
     for the SLATrunk application.
2411
     for the SLATrunk application.
2405
  * The Read application no longer exits the dialplan on error.  Instead, it sets
2412
  * The Read application no longer exits the dialplan on error.  Instead, it sets
2406
     READSTATUS to ERROR, which you can catch and handle separately.
2413
     READSTATUS to ERROR, which you can catch and handle separately.
2407
  * Added 'm' option to Directory, which lists out names, 8 at a time, instead
2414
  * Added 'm' option to Directory, which lists out names, 8 at a time, instead
2408
     of asking for verification of each name, one at a time.
2415
     of asking for verification of each name, one at a time.
2409
  * Privacy() no longer uses privacy.conf, as all options are specifyable as
2416
  * Privacy() no longer uses privacy.conf, as all options are specifyable as
2410
     direct options to the app.
2417
     direct options to the app.
2411
  * AMD() has a new "maximum word length" option. "show application AMD" from the CLI
2418
  * AMD() has a new "maximum word length" option. "show application AMD" from the CLI
2412
     for more details
2419
     for more details
2413
  * GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
2420
  * GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
2414
  * The ChannelRedirect application no longer exits the dialplan if the given channel
2421
  * The ChannelRedirect application no longer exits the dialplan if the given channel
2415
     does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
2422
     does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
2416
     or NOCHANNEL if the given channel was not found.
2423
     or NOCHANNEL if the given channel was not found.
2417
  * The silencethreshold setting that was previously configurable in multiple
2424
  * The silencethreshold setting that was previously configurable in multiple
2418
     applications is now settable globally via dsp.conf.
2425
     applications is now settable globally via dsp.conf.
2419

    
   
2426

   
2420
Music On Hold Changes
2427
Music On Hold Changes
2421
---------------------
2428
---------------------
2422
  * A new option, "digit", has been added for music on hold classes in
2429
  * A new option, "digit", has been added for music on hold classes in
2423
     musiconhold.conf.  If this is set for a music on hold class, a caller
2430
     musiconhold.conf.  If this is set for a music on hold class, a caller
2424
     listening to music on hold can press this digit to switch to listening
2431
     listening to music on hold can press this digit to switch to listening
2425
     to this music on hold class.
2432
     to this music on hold class.
2426
  * Support for realtime music on hold has been added.
2433
  * Support for realtime music on hold has been added.
2427
  * In conjunction with the realtime music on hold, a general section has
2434
  * In conjunction with the realtime music on hold, a general section has
2428
     been added to musiconhold.conf, its sole variable is cachertclasses. If this
2435
     been added to musiconhold.conf, its sole variable is cachertclasses. If this
2429
     is set, then music on hold classes found in realtime will be cached in memory.
2436
     is set, then music on hold classes found in realtime will be cached in memory.
2430

    
   
2437

   
2431
AEL Changes
2438
AEL Changes
2432
-----------
2439
-----------
2433
  * AEL upgraded to use the Gosub with Arguments instead
2440
  * AEL upgraded to use the Gosub with Arguments instead
2434
     of Macro application, to hopefully reduce the problems
2441
     of Macro application, to hopefully reduce the problems
2435
     seen with the artificially low stack ceiling that
2442
     seen with the artificially low stack ceiling that
2436
     Macro bumps into. Macros can only call other Macros
2443
     Macro bumps into. Macros can only call other Macros
2437
     to a depth of 7. Tests run using gosub, show depths
2444
     to a depth of 7. Tests run using gosub, show depths
2438
     limited only by virtual memory. A small test demonstrated
2445
     limited only by virtual memory. A small test demonstrated
2439
     recursive call depths of 100,000 without problems.
2446
     recursive call depths of 100,000 without problems.
2440
     -- in addition to this, all apps that allowed a macro
2447
     -- in addition to this, all apps that allowed a macro
2441
     to be called, as in Dial, queues, etc, are now allowing
2448
     to be called, as in Dial, queues, etc, are now allowing
2442
     a gosub call in similar fashion.
2449
     a gosub call in similar fashion.
2443
  * AEL now generates LOCAL(argname) declarations when it
2450
  * AEL now generates LOCAL(argname) declarations when it
2444
     Set()'s the each arg name to the value of ${ARG1}, ${ARG2),
2451
     Set()'s the each arg name to the value of ${ARG1}, ${ARG2),
2445
     etc. That makes the arguments local in scope. The user
2452
     etc. That makes the arguments local in scope. The user
2446
     can define their own local variables in macros, now,
2453
     can define their own local variables in macros, now,
2447
     by saying "local myvar=someval;"  or using Set() in this
2454
     by saying "local myvar=someval;"  or using Set() in this
2448
     fashion:  Set(LOCAL(myvar)=someval);  ("local" is now
2455
     fashion:  Set(LOCAL(myvar)=someval);  ("local" is now
2449
     an AEL keyword).
2456
     an AEL keyword).
2450
  * utils/conf2ael introduced. Will convert an extensions.conf
2457
  * utils/conf2ael introduced. Will convert an extensions.conf
2451
     file into extensions.ael. Very crude and unfinished, but
2458
     file into extensions.ael. Very crude and unfinished, but
2452
     will be improved as time goes by. Should be useful for a
2459
     will be improved as time goes by. Should be useful for a
2453
     first pass at conversion.
2460
     first pass at conversion.
2454
  * aelparse will now read extensions.conf to see if a referenced
2461
  * aelparse will now read extensions.conf to see if a referenced
2455
     macro or context is there before issueing a warning.
2462
     macro or context is there before issueing a warning.
2456
  * AEL parser sets a local channel variable ~~EXTEN~~, to
2463
  * AEL parser sets a local channel variable ~~EXTEN~~, to
2457
    preserve the value of ${EXTEN} thru switch statements.
2464
    preserve the value of ${EXTEN} thru switch statements.
2458
  * New operator in $[...] expressions: the ~~ operator serves
2465
  * New operator in $[...] expressions: the ~~ operator serves
2459
    as a concatenation operator. AT THE MOMENT, it is really only
2466
    as a concatenation operator. AT THE MOMENT, it is really only
2460
    necessary and useful in AEL, especially in if() expressions.
2467
    necessary and useful in AEL, especially in if() expressions.
2461
    Operation: ${a} ~~ ${b|  with force both a and b to strings, strip
2468
    Operation: ${a} ~~ ${b|  with force both a and b to strings, strip
2462
    any enclosing double-quotes, and evaluate to the value of a
2469
    any enclosing double-quotes, and evaluate to the value of a
2463
    concatenated with the value of b.  For example if a is set to
2470
    concatenated with the value of b.  For example if a is set to
2464
    "xyz"  and b has the value "abc", then ${a} ~~ ${b| would
2471
    "xyz"  and b has the value "abc", then ${a} ~~ ${b| would
2465
    evaluate to xyzabc .
2472
    evaluate to xyzabc .
2466

    
   
2473

   
2467

    
   
2474

   
2468
Call Features (res_features) Changes
2475
Call Features (res_features) Changes
2469
------------------------------------
2476
------------------------------------
2470
  * Added the parkedcalltransfers option to features.conf
2477
  * Added the parkedcalltransfers option to features.conf
2471
  * Added parkedcallparking option to control one touch parking w/ parking
2478
  * Added parkedcallparking option to control one touch parking w/ parking
2472
    pickup
2479
    pickup
2473
  * Added parkedcallhangup option to control disconnect feature w/ parking
2480
  * Added parkedcallhangup option to control disconnect feature w/ parking
2474
    pickup
2481
    pickup
2475
  * Added parkedcallrecording option to control one-touch record w/ parking
2482
  * Added parkedcallrecording option to control one-touch record w/ parking
2476
    pickup
2483
    pickup
2477
  * Added parkedcallparking, parkedcallhangup, parkedcallrecording, and
2484
  * Added parkedcallparking, parkedcallhangup, parkedcallrecording, and
2478
    parkedcalltransfers option support for multiple parking lots.
2485
    parkedcalltransfers option support for multiple parking lots.
2479
  * Added BRIDGE_FEATURES variable to set available features for a channel
2486
  * Added BRIDGE_FEATURES variable to set available features for a channel
2480
  * The built-in method for doing attended transfers has been updated to
2487
  * The built-in method for doing attended transfers has been updated to
2481
     include some new options that allow you to have the transferee sent
2488
     include some new options that allow you to have the transferee sent
2482
     back to the person that did the transfer if the transfer is not successful.
2489
     back to the person that did the transfer if the transfer is not successful.
2483
     See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries"
2490
     See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries"
2484
     in features.conf.sample.
2491
     in features.conf.sample.
2485
  * Added support for configuring named groups of custom call features in
2492
  * Added support for configuring named groups of custom call features in
2486
     features.conf.  This means that features can be written a single time, and
2493
     features.conf.  This means that features can be written a single time, and
2487
     then mapped into groups of features for different key mappings or easier
2494
     then mapped into groups of features for different key mappings or easier
2488
     access control.
2495
     access control.
2489
  * Updated the ParkedCall application to allow you to not specify a parking
2496
  * Updated the ParkedCall application to allow you to not specify a parking
2490
     extension.  If you don't specify a parking space to pick up, it will grab
2497
     extension.  If you don't specify a parking space to pick up, it will grab
2491
     the first one available.
2498
     the first one available.
2492
  * Added cli command 'features reload' to reload call features from features.conf
2499
  * Added cli command 'features reload' to reload call features from features.conf
2493
  * Moved into core asterisk binary.
2500
  * Moved into core asterisk binary.
2494
  * Changed the default setting for featuredigittimeout to 2000 ms from 500 ms.
2501
  * Changed the default setting for featuredigittimeout to 2000 ms from 500 ms.
2495
  * Added the ability for custom parking lots to be configured with their own
2502
  * Added the ability for custom parking lots to be configured with their own
2496
    parking extension with the parkext option.
2503
    parking extension with the parkext option.
2497

    
   
2504

   
2498
Language Support Changes
2505
Language Support Changes
2499
------------------------
2506
------------------------
2500
  * Brazilian Portuguese (pt-BR) in VM, and say.c was added
2507
  * Brazilian Portuguese (pt-BR) in VM, and say.c was added
2501
  * Added support for the Hungarian language for saying numbers, dates, and times.
2508
  * Added support for the Hungarian language for saying numbers, dates, and times.
2502

    
   
2509

   
2503
AGI Changes
2510
AGI Changes
2504
-----------
2511
-----------
2505
  * Added SPEECH commands for speech recognition. A complete listing can be found
2512
  * Added SPEECH commands for speech recognition. A complete listing can be found
2506
    using agi show.
2513
    using agi show.
2507
  * If app_stack is loaded, GOSUB is a native AGI command that may be used to
2514
  * If app_stack is loaded, GOSUB is a native AGI command that may be used to
2508
    invoke subroutines in the dialplan.  Note that calling EXEC with Gosub
2515
    invoke subroutines in the dialplan.  Note that calling EXEC with Gosub
2509
    does not behave as expected; the native command needs to be used, instead.
2516
    does not behave as expected; the native command needs to be used, instead.
2510
  * Added the ability to perform SRV lookups on fast AGI calls. To use this
2517
  * Added the ability to perform SRV lookups on fast AGI calls. To use this
2511
    feature, simply use hagi: instead of agi: as the protocol portion
2518
    feature, simply use hagi: instead of agi: as the protocol portion
2512
    of the URI parameter to the AGI function call in your dial plan. Also note
2519
    of the URI parameter to the AGI function call in your dial plan. Also note
2513
    that specifying a port number in the AGI URI will disable SRV lookups,
2520
    that specifying a port number in the AGI URI will disable SRV lookups,
2514
    even if you use the hagi: protocol.
2521
    even if you use the hagi: protocol.
2515
  * No longer support MSG_OOB flag on HANGUP.
2522
  * No longer support MSG_OOB flag on HANGUP.
2516

    
   
2523

   
2517
Logger changes
2524
Logger changes
2518
--------------
2525
--------------
2519
  * Added rotatestrategy option to logger.conf, along with two new options:
2526
  * Added rotatestrategy option to logger.conf, along with two new options:
2520
     "timestamp" which will use the time to name the logger files instead of
2527
     "timestamp" which will use the time to name the logger files instead of
2521
     sequence number; and "rotate", which rotates the names of the log files,
2528
     sequence number; and "rotate", which rotates the names of the log files,
2522
     similar to the way syslog rotates files.
2529
     similar to the way syslog rotates files.
2523
  * Added exec_after_rotate option to logger.conf, which allows a system
2530
  * Added exec_after_rotate option to logger.conf, which allows a system
2524
     command to be run after rotation.  This is primarily useful with
2531
     command to be run after rotation.  This is primarily useful with
2525
     rotatestrategy=rotate, to allow a limit on the number of log files kept
2532
     rotatestrategy=rotate, to allow a limit on the number of log files kept
2526
     and to ensure that the oldest log file gets deleted.
2533
     and to ensure that the oldest log file gets deleted.
2527
  * Added realtime support for the queue log
2534
  * Added realtime support for the queue log
2528

    
   
2535

   
2529
Call Detail Records
2536
Call Detail Records
2530
-------------------
2537
-------------------
2531
  * The cdr_manager module has a [mappings] feature, like cdr_custom,
2538
  * The cdr_manager module has a [mappings] feature, like cdr_custom,
2532
    to add fields to the manager event from the CDR variables.
2539
    to add fields to the manager event from the CDR variables.
2533
  * Added cdr_adaptive_odbc, a new module that adapts to the structure of your
2540
  * Added cdr_adaptive_odbc, a new module that adapts to the structure of your
2534
     backend database CDR table.  Specifically, additional, non-standard
2541
     backend database CDR table.  Specifically, additional, non-standard
2535
     columns are supported, merely by setting the corresponding CDR variable in
2542
     columns are supported, merely by setting the corresponding CDR variable in
2536
     your dialplan.  In addition, you may alias any column to another name (for
2543
     your dialplan.  In addition, you may alias any column to another name (for
2537
     example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
2544
     example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
2538
     simply "alias src => ANI" in the configuration file).  Records may be
2545
     simply "alias src => ANI" in the configuration file).  Records may be
2539
     posted to more than one backend, simply by specifying multiple categories
2546
     posted to more than one backend, simply by specifying multiple categories
2540
     in the configuration file.  And finally, you may filter which CDRs get
2547
     in the configuration file.  And finally, you may filter which CDRs get
2541
     posted to each backend, by specifying a filter (which the record must
2548
     posted to each backend, by specifying a filter (which the record must
2542
     match) for the particular category.  Filters are additive (meaning all
2549
     match) for the particular category.  Filters are additive (meaning all
2543
     rules must match to post that CDR).
2550
     rules must match to post that CDR).
2544
  * The Postgres CDR module now supports some features of the cdr_adaptive_odbc
2551
  * The Postgres CDR module now supports some features of the cdr_adaptive_odbc
2545
     module.  Specifically, you may add additional columns into the table and
2552
     module.  Specifically, you may add additional columns into the table and
2546
     they will be set, if you set the corresponding CDR variable name.  Also,
2553
     they will be set, if you set the corresponding CDR variable name.  Also,
2547
     if you omit columns in your database table, they will be silently skipped
2554
     if you omit columns in your database table, they will be silently skipped
2548
     (but a record will still be inserted, based on what columns remain).  Note
2555
     (but a record will still be inserted, based on what columns remain).  Note
2549
     that the other two features from cdr_adaptive_odbc (alias and filter) are
2556
     that the other two features from cdr_adaptive_odbc (alias and filter) are
2550
     not currently supported.
2557
     not currently supported.
2551
  * The ResetCDR application now has an 'e' option that re-enables a CDR if it
2558
  * The ResetCDR application now has an 'e' option that re-enables a CDR if it
2552
     has been disabled using the NoCDR application.
2559
     has been disabled using the NoCDR application.
2553

    
   
2560

   
2554
Miscellaneous New Modules
2561
Miscellaneous New Modules
2555
-------------------------
2562
-------------------------
2556
  * Added a new CDR module, cdr_sqlite3_custom.
2563
  * Added a new CDR module, cdr_sqlite3_custom.
2557
  * Added a new realtime configuration module, res_config_sqlite
2564
  * Added a new realtime configuration module, res_config_sqlite
2558
  * Added a new codec translation module, codec_resample, which re-samples
2565
  * Added a new codec translation module, codec_resample, which re-samples
2559
     signed linear audio between 8 kHz and 16 kHz to help support wideband
2566
     signed linear audio between 8 kHz and 16 kHz to help support wideband
2560
     codecs.
2567
     codecs.
2561
  * Added a new module, res_phoneprov, which allows auto-provisioning of phones
2568
  * Added a new module, res_phoneprov, which allows auto-provisioning of phones
2562
     based on configuration templates that use Asterisk dialplan function and
2569
     based on configuration templates that use Asterisk dialplan function and
2563
     variable substitution.  It should be possible to create phone profiles and
2570
     variable substitution.  It should be possible to create phone profiles and
2564
     templates that work for the majority of phones provisioned over http. It
2571
     templates that work for the majority of phones provisioned over http. It
2565
     is currently only intended to provision a single user account per phone.
2572
     is currently only intended to provision a single user account per phone.
2566
     An example profile and set of templates for Polycom phones is provided.
2573
     An example profile and set of templates for Polycom phones is provided.
2567
     NOTE: Polycom firmware is not included, but should be placed in
2574
     NOTE: Polycom firmware is not included, but should be placed in
2568
     AST_DATA_DIR/phoneprov/configs to match up with the included templates.
2575
     AST_DATA_DIR/phoneprov/configs to match up with the included templates.
2569
  * Added a new module, app_jack, which provides interfaces to JACK, the Jack
2576
  * Added a new module, app_jack, which provides interfaces to JACK, the Jack
2570
     Audio Connection Kit (http://www.jackaudio.org/).  Two interfaces are
2577
     Audio Connection Kit (http://www.jackaudio.org/).  Two interfaces are
2571
     provided; there is a JACK() application, and a JACK_HOOK() function.  Both
2578
     provided; there is a JACK() application, and a JACK_HOOK() function.  Both
2572
     interfaces create an input and output JACK port.  The application makes
2579
     interfaces create an input and output JACK port.  The application makes
2573
     these ports the endpoint of the call.  The audio coming from the channel
2580
     these ports the endpoint of the call.  The audio coming from the channel
2574
     goes out the output port and whatever comes back in on the input port is
2581
     goes out the output port and whatever comes back in on the input port is
2575
     what gets sent to the channel.  The JACK_HOOK() function turns on a JACK
2582
     what gets sent to the channel.  The JACK_HOOK() function turns on a JACK
2576
     audiohook on the channel.  This lets you run the audio coming from a
2583
     audiohook on the channel.  This lets you run the audio coming from a
2577
     channel through JACK, and whatever comes back in is what gets forwarded
2584
     channel through JACK, and whatever comes back in is what gets forwarded
2578
     on as the channel's audio.  This is very useful for building custom
2585
     on as the channel's audio.  This is very useful for building custom
2579
     vocoders or doing recording or analysis of the channel's audio in another
2586
     vocoders or doing recording or analysis of the channel's audio in another
2580
     application.
2587
     application.
2581
  * Added a new module, res_config_curl, which permits using a HTTP POST url
2588
  * Added a new module, res_config_curl, which permits using a HTTP POST url
2582
     to retrieve, create, update, and delete realtime information from a remote
2589
     to retrieve, create, update, and delete realtime information from a remote
2583
     web server.  Note that this module requires func_curl.so to be loaded for
2590
     web server.  Note that this module requires func_curl.so to be loaded for
2584
     backend functionality.
2591
     backend functionality.
2585
  * Added a new module, res_config_ldap, which permits the use of an LDAP
2592
  * Added a new module, res_config_ldap, which permits the use of an LDAP
2586
     server for realtime data access.
2593
     server for realtime data access.
2587
  * Added support for writing and running your dialplan in lua using the pbx_lua
2594
  * Added support for writing and running your dialplan in lua using the pbx_lua
2588
     module.  See configs/extensions.lua.sample for examples of how to do this.
2595
     module.  See configs/extensions.lua.sample for examples of how to do this.
2589

    
   
2596

   
2590
Miscellaneous
2597
Miscellaneous
2591
-------------
2598
-------------
2592
  * Ability to use libcap to set high ToS bits when non-root
2599
  * Ability to use libcap to set high ToS bits when non-root
2593
     on Linux. If configure is unable to find libcap then you
2600
     on Linux. If configure is unable to find libcap then you
2594
     can use --with-cap to specify the path.
2601
     can use --with-cap to specify the path.
2595
  * Added maxfiles option to options section of asterisk.conf which allows you to specify
2602
  * Added maxfiles option to options section of asterisk.conf which allows you to specify
2596
     what Asterisk should set as the maximum number of open files when it loads.
2603
     what Asterisk should set as the maximum number of open files when it loads.
2597
  * Added the jittertargetextra configuration option.
2604
  * Added the jittertargetextra configuration option.
2598
  * Added support for setting the CoS for VLAN traffic (802.1p).  See the sample
2605
  * Added support for setting the CoS for VLAN traffic (802.1p).  See the sample
2599
     configuration files for the IP channel drivers.  The new option is "cos".
2606
     configuration files for the IP channel drivers.  The new option is "cos".
2600
     This information is also documented on the Asterisk wiki at
2607
     This information is also documented on the Asterisk wiki at
2601
     https://wiki.asterisk.org/wiki/x/EYBG
2608
     https://wiki.asterisk.org/wiki/x/EYBG
2602
  * When originating a call using AMI or pbx_spool that fails the reason for failure
2609
  * When originating a call using AMI or pbx_spool that fails the reason for failure
2603
     will now be available in the failed extension using the REASON dialplan variable.
2610
     will now be available in the failed extension using the REASON dialplan variable.
2604
  * Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
2611
  * Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
2605
     It allows you to configure a prefix for auto-monitor recordings.
2612
     It allows you to configure a prefix for auto-monitor recordings.
2606
  * A new extension pattern matching algorithm, based on a trie, is introduced
2613
  * A new extension pattern matching algorithm, based on a trie, is introduced
2607
     here, that could noticeably speed up mid-sized to large dialplans.
2614
     here, that could noticeably speed up mid-sized to large dialplans.
2608
     It is NOT used by default, as duplicating the behaviour of the old pattern
2615
     It is NOT used by default, as duplicating the behaviour of the old pattern
2609
     matcher is still under development. A config file option, in extensions.conf,
2616
     matcher is still under development. A config file option, in extensions.conf,
2610
     in the [general] section, called "extenpatternmatchingnew", is by default
2617
     in the [general] section, called "extenpatternmatchingnew", is by default
2611
     set to false; setting that to true will force the use of the new algorithm.
2618
     set to false; setting that to true will force the use of the new algorithm.
2612
     Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can
2619
     Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can
2613
     be used to switch the algorithms at run time.
2620
     be used to switch the algorithms at run time.
2614
  * A new option when starting a remote asterisk (rasterisk, asterisk -r) for
2621
  * A new option when starting a remote asterisk (rasterisk, asterisk -r) for
2615
     specifying which socket to use to connect to the running Asterisk daemon
2622
     specifying which socket to use to connect to the running Asterisk daemon
2616
     (-s)
2623
     (-s)
2617
  * Performance enhancements to the sched facility, which is used in
2624
  * Performance enhancements to the sched facility, which is used in
2618
    the channel drivers, etc. Added hashtabs and doubly-linked lists
2625
    the channel drivers, etc. Added hashtabs and doubly-linked lists
2619
    to speed up deletion; start at the beginning or end of list to
2626
    to speed up deletion; start at the beginning or end of list to
2620
    speed up insertion.
2627
    speed up insertion.
2621
  * Added Doubly-linked lists after the fashion of linkedlists.h. They are in
2628
  * Added Doubly-linked lists after the fashion of linkedlists.h. They are in
2622
    dlinkedlists.h. Doubly-linked lists feature fast deletion times.
2629
    dlinkedlists.h. Doubly-linked lists feature fast deletion times.
2623
    Added regression tests to the tests/ dir, also.
2630
    Added regression tests to the tests/ dir, also.
2624
  * Added a refcount trace feature to astobj2 for those trying to balance
2631
  * Added a refcount trace feature to astobj2 for those trying to balance
2625
    object creation, deletion; work, play; space and time. See the
2632
    object creation, deletion; work, play; space and time. See the
2626
    notes in astobj2.h. Also, see utils/refcounter as well, as a
2633
    notes in astobj2.h. Also, see utils/refcounter as well, as a
2627
    quick way to find unbalanced refcounts in what could be a sea
2634
    quick way to find unbalanced refcounts in what could be a sea
2628
    of objects that were balanced.
2635
    of objects that were balanced.
2629
  * Added logging to 'make update' command.  See update.log
2636
  * Added logging to 'make update' command.  See update.log
2630
  * Added strictrtp option to rtp.conf. If enabled this will drop RTP packets that
2637
  * Added strictrtp option to rtp.conf. If enabled this will drop RTP packets that
2631
     do not come from the remote party.
2638
     do not come from the remote party.
2632
  * Added the 'n' option to the SpeechBackground application to tell it to not
2639
  * Added the 'n' option to the SpeechBackground application to tell it to not
2633
     answer the channel if it has not already been answered.
2640
     answer the channel if it has not already been answered.
2634
  * Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
2641
  * Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
2635
     turned on, via the CHANNEL(trace) dialplan function.  Could be useful for
2642
     turned on, via the CHANNEL(trace) dialplan function.  Could be useful for
2636
     dialplan debugging.
2643
     dialplan debugging.
2637
  * iLBC source code no longer included (see UPGRADE.txt for details)
2644
  * iLBC source code no longer included (see UPGRADE.txt for details)
2638
  * If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if
2645
  * If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if
2639
     deadlock is detected, a backtrace of the stack which led to the lock calls
2646
     deadlock is detected, a backtrace of the stack which led to the lock calls
2640
     will be output to the CLI.
2647
     will be output to the CLI.
2641
  * If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
2648
  * If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
2642
     the "core show locks" CLI command will give lock information output as well
2649
     the "core show locks" CLI command will give lock information output as well
2643
     as a backtrace of the stack which led to the lock calls.
2650
     as a backtrace of the stack which led to the lock calls.
2644
  * users.conf now sports an optional alternateexts property, which permits
2651
  * users.conf now sports an optional alternateexts property, which permits
2645
    allocation of additional extensions which will reach the specified user.
2652
    allocation of additional extensions which will reach the specified user.
2646
  * A new option for the configure script, --enable-internal-poll, has been added
2653
  * A new option for the configure script, --enable-internal-poll, has been added
2647
    for use with systems which may have a buggy implementation of the poll system
2654
    for use with systems which may have a buggy implementation of the poll system
2648
    call. If you notice odd behavior such as the CLI being unresponsive on remote
2655
    call. If you notice odd behavior such as the CLI being unresponsive on remote
2649
    consoles, you may want to try using this option. This option is enabled by default
2656
    consoles, you may want to try using this option. This option is enabled by default
2650
    on Darwin systems since it is known that the Darwin poll() implementation has
2657
    on Darwin systems since it is known that the Darwin poll() implementation has
2651
    odd issues.
2658
    odd issues.
2652

    
   
2659

   
2653
Timer Changes
2660
Timer Changes
2654
--------------------
2661
--------------------
2655
* In addition to timing from DAHDI, there is a new timing module called
2662
* In addition to timing from DAHDI, there is a new timing module called
2656
  res_timing_timerfd. In order to use this, you must be running Linux with
2663
  res_timing_timerfd. In order to use this, you must be running Linux with
2657
  a kernel version 2.6.25 or newer as well as glibc 2.8 or newer. The configure
2664
  a kernel version 2.6.25 or newer as well as glibc 2.8 or newer. The configure
2658
  script will be able to tell if you have the requirements. From menuselect, select
2665
  script will be able to tell if you have the requirements. From menuselect, select
2659
  res_timing_timerfd from the Resource Modules menu.
2666
  res_timing_timerfd from the Resource Modules menu.
trunk/apps/app_queue.c
Diff Revision 2 Diff Revision 3
 
trunk/configs/extensions.conf.sample
Diff Revision 2 Diff Revision 3
 
  1. trunk/CHANGES: Loading...
  2. trunk/apps/app_queue.c: Loading...
  3. trunk/configs/extensions.conf.sample: 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.