Review Board 1.7.16


accountcode: Slightly change accountcode propagation.

Review Request #3601 - Created June 6, 2014 and submitted

rmudgett
trunk
AFS-65
Reviewers
asterisk-dev
Asterisk
Accountcode propagation:

The current behavior is to simply set the accountcode of an outgoing
channel to the accountcode of the channel initiating the call.  It was
done this way a long time ago to allow the accountcode set on the SIP/100
channel to be propagated to a local channel so the dialplan execution on
the Local;2 channel would have the SIP/100 accountcode available.

SIP/100 -> Local;1/Local;2 -> SIP/200

Propagating the SIP/100 accountcode to the local channels is very useful.
Without any dialplan manipulation, all channels in this call would have
the same accountcode.

Using dialplan, you can set a different accountcode on the SIP/200 channel
either by setting the accountcode on the Local;2 channel or by the Dial
application's b(pre-dial), M(macro) or U(gosub) options, or by the
FollowMe application's b(pre-dial) option, or by the Queue application's
macro or gosub options.  Before Asterisk v12, the altered accountcode on
SIP/200 will remain until the local channels optimize out and the
accountcode would change to the SIP/100 accountcode.

Asterisk v1.8 attempted to add peeraccount support but ultimately had to
punt on the support.  The peeraccount support was rendered useless because
of how the CDR code needed to unconditionally force the caller's
accountcode onto the peer channel's accountcode.  The CEL events were thus
intentionally made to always use the channel's accountcode as the
peeraccount value.

With the arrival of Asterisk v12, the situation has improved somewhat so
peeraccount support can be made to work.  Using the indicated example, the
the accountcode values become as follows when the peeraccount is set on
SIP/100 before calling SIP/200:

SIP/100 ---> Local;1 ---- Local;2 ---> SIP/200
acct: 100 \/ acct: 200 \/ acct: 100 \/ acct: 200
peer: 200 /\ peer: 100 /\ peer: 200 /\ peer: 100

If a channel already has an accountcode it can only change by the
following explicit user actions:

1) A channel originate method that can specify an accountcode to use.

2) The calling channel propagating its non-empty peeraccount or its
non-empty accountcode if the peeraccount was empty to the outgoing
channel's accountcode before initiating the dial.  e.g., Dial and
FollowMe.  The exception to this propagation method is Queue.  Queue will
only propagate peeraccounts this way only if the outgoing channel does not
have an accountcode.

3) Dialplan using CHANNEL(accountcode).

4) Dialplan using CHANNEL(peeraccount) on the other end of a local
channel pair.

If a channel does not have an accountcode it can get one from the
following places:

1) The channel driver's configuration at channel creation.

2) Explicit user action as already indicated.

3) Entering a basic or stasis-mixing bridge from a peer channel's
peeraccount value.

You can specify the accountcode for an outgoing channel by setting the
CHANNEL(peeraccount) before using the Dial, FollowMe, and Queue
applications.  Queue adds the wrinkle that it will not overwrite an
existing accountcode on the outgoing channel with the calling channels
values.

Accountcode and peeraccount values propagate to an outgoing channel before
dialing.  Accountcodes also propagate when channels enter or leave a basic
or stasis-mixing bridge.  The peeraccount value only makes sense for
mixing bridges with two channels; it is meaningless otherwise.

* Made peeraccount functional by changing accountcode propagation as
described above.

* Fixed CEL extracting the wrong ie value for the peeraccount.  This was
done intentionally in Asterisk v1.8 when that version had to punt on
peeraccount.

* Fixed a few places dealing with accountcodes that were reading from
channels without the lock held.
* Ran tests from https://reviewboard.asterisk.org/r/3832/ all tests tagged
with accountcode pass.

* Set the accountcode on the calling channel and let the channel driver
supply or not the accountcode for the outgoing channel.  The acccountcode
on the calling channel forces itself on the outgoing channel.  This is the
same as previous behavior.

* Set the accountcode and peeraccount code on the calling channel and let
the channel driver supply or not the acccountcode for the outgoing
channel.  The outgoing channel's accountcode and peeraccount got the
calling channel's peeraccount and accountcode values respectively.

* Let dialplan set accountcodes on channels and performed a DTMF attended
transfer to create a three party bridge.  When the transferrer channel
left the three party bridge, the remaining two channels got the
peeraccount updated to the other party.  Unfortunately, you only see the
updated peeraccount values in the CEL log when the channels leave the
bridge.

Throughout each of these tests, the CEL log had the expected peeraccount
value.  Some interpolation is needed in the CEL log for complicated
accountcode manipulation because there aren't enough events to indicate
when the account codes change.  Note the peeraccount value is meaningless
if the bridge does not contain two parties.
/branches/12/UPGRADE.txt
Diff Revision 3 Diff Revision 4
1
===========================================================
1
===========================================================
2
===
2
===
3
=== Information for upgrading between Asterisk versions
3
=== Information for upgrading between Asterisk versions
4
===
4
===
5
=== These files document all the changes that MUST be taken
5
=== These files document all the changes that MUST be taken
6
=== into account when upgrading between the Asterisk
6
=== into account when upgrading between the Asterisk
7
=== versions listed below. These changes may require that
7
=== versions listed below. These changes may require that
8
=== you modify your configuration files, dialplan or (in
8
=== you modify your configuration files, dialplan or (in
9
=== some cases) source code if you have your own Asterisk
9
=== some cases) source code if you have your own Asterisk
10
=== modules or patches. These files also include advance
10
=== modules or patches. These files also include advance
11
=== notice of any functionality that has been marked as
11
=== notice of any functionality that has been marked as
12
=== 'deprecated' and may be removed in a future release,
12
=== 'deprecated' and may be removed in a future release,
13
=== along with the suggested replacement functionality.
13
=== along with the suggested replacement functionality.
14
===
14
===
15
=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
15
=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
16
=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
16
=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
17
=== UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
17
=== UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
18
=== UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8
18
=== UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8
19
=== UPGRADE-10.txt  -- Upgrade info for 1.8 to 10
19
=== UPGRADE-10.txt  -- Upgrade info for 1.8 to 10
20
=== UPGRADE-11.txt  -- Upgrade info for 10 to 11
20
=== UPGRADE-11.txt  -- Upgrade info for 10 to 11
21
===
21
===
22
===========================================================
22
===========================================================
23

    
   
23

   
24
From 12.3.1 to 12.4.0:
24
From 12.4.0 to 12.5.0:
25

    
   
25

   
26
 - The accountcode propagation is now consistently propagated to outgoing
26
 - Added functional peeraccount support.  Except for Queue, the

    
   
27
   accountcode propagation is now consistently propagated to outgoing
27
   channels before dialing.  The channel accountcode can change from its
28
   channels before dialing.  The channel accountcode can change from its
28
   original non-empty value on channel creation for the following specific
29
   original non-empty value on channel creation for the following specific
29
   reasons.  One, dialplan sets it using CHANNEL(accountcode).  Two, an
30
   reasons.  One, dialplan sets it using CHANNEL(accountcode).  Two, an
30
   originate method that can specify an accountcode value.  Three, the
31
   originate method that can specify an accountcode value.  Three, the
31
   calling channel propagates its peeraccount or accountcode to the
32
   calling channel propagates its peeraccount or accountcode to the
32
   outgoing channel's accountcode before dialing.  The change has two
33
   outgoing channel's accountcode before dialing.  The change has two
33
   visible effects.  One, local channels now cross accountcode and
34
   visible effects.  One, local channels now cross accountcode and
34
   peeraccount across the special bridge between the ;1 and ;2 channels
35
   peeraccount across the special bridge between the ;1 and ;2 channels
35
   just like channels between normal bridges.  Two, the CHANNEL(peeraccount)
36
   just like channels between normal bridges.  Two, the
36
   value now can be set before Dial, FollowMe, and Queue to set the
37
   CHANNEL(peeraccount) value can now be set before Dial and FollowMe to
37
   accountcode on the outgoing channel(s).  For Queue this now includes
38
   set the accountcode on the outgoing channel(s).
38
   local channel members where the accountcodes are propagated early
39

   
39
   enough to be useful on the ;2 channel.
40
   For Queue, an outgoing channel's non-empty accountcode will not change

    
   
41
   unless explicitly set by CHANNEL(accountcode).  The change has three

    
   
42
   visible effects.  One, local channels now cross accountcode and

    
   
43
   peeraccount across the special bridge between the ;1 and ;2 channels

    
   
44
   just like channels between normal bridges.  Two, the queue member will

    
   
45
   get an accountcode if it doesn't have one and one is available from the

    
   
46
   calling channel's peeraccount or accountcode.  Three, accountcode

    
   
47
   propagation includes local channel members where the accountcodes are

    
   
48
   propagated early enough to be available on the ;2 channel.

    
   
49

   

    
   
50
From 12.3.2 to 12.4.0:
40

    
   
51

   
41
 - The safe_asterisk script was previously not installed on top of an existing
52
 - The safe_asterisk script was previously not installed on top of an existing
42
   version. This caused bug-fixes in that script not to be deployed. If your
53
   version. This caused bug-fixes in that script not to be deployed. If your
43
   safe_asterisk script is customized, be sure to keep your changes. Custom
54
   safe_asterisk script is customized, be sure to keep your changes. Custom
44
   values for variables should be created in *.sh file(s) inside
55
   values for variables should be created in *.sh file(s) inside
45
   ASTETCDIR/startup.d/. See ASTERISK-21965.
56
   ASTETCDIR/startup.d/. See ASTERISK-21965.
46

    
   
57

   
47
 - Changed a log message in safe_asterisk and the $NOTIFY mail subject. If
58
 - Changed a log message in safe_asterisk and the $NOTIFY mail subject. If
48
   you use tools to parse either of them, update your parse functions
59
   you use tools to parse either of them, update your parse functions
49
   accordingly. The changed strings are:
60
   accordingly. The changed strings are:
50
   - "Exited on signal $EXITSIGNAL" => "Asterisk exited on signal $EXITSIGNAL."
61
   - "Exited on signal $EXITSIGNAL" => "Asterisk exited on signal $EXITSIGNAL."
51
   - "Asterisk Died" => "Asterisk on $MACHINE died (sig $EXITSIGNAL)"
62
   - "Asterisk Died" => "Asterisk on $MACHINE died (sig $EXITSIGNAL)"
52

    
   
63

   
53
 - Added a compatibility option for ari, chan_sip, and chan_pjsip
64
AMI:
54
   'websocket_write_timeout'. When a websocket connection exists where Asterisk
65
 - The AMI version has been changed from 2.3.0 to 2.4.0. This is to reflect
55
   writes a substantial amount of data to the connected client, and the connected
66
   the backwards compatible changes listed in the CHANGES file.
56
   client is slow to process the received data, the socket may be disconnected.
67

   
57
   In such cases, it may be necessary to adjust this value. Default is 100 ms.
68
ARI:

    
   
69
 - Added a compatibility option 'websocket_write_timeout'.  When a websocket

    
   
70
   connection exists where Asterisk writes a substantial amount of data to

    
   
71
   the connected client, and the connected client is slow to process the

    
   
72
   received data, the socket may be disconnected.  In such cases, it may be

    
   
73
   necessary to adjust this value.

    
   
74
   Default is 100 ms.

    
   
75

   

    
   
76
 - The ARI version has been changed from 1.3.0 to 1.4.0. This is to reflect

    
   
77
   the backwards compatible changes listed in the CHANGES file.

    
   
78

   

    
   
79
chan_dahdi:

    
   
80
 - Added the inband_on_setup_ack compatibility option to chan_dahdi.conf to

    
   
81
   deal with switches that don't send an inband progress indication in the

    
   
82
   SETUP ACKNOWLEDGE message.

    
   
83

   

    
   
84
chan_pjsip:

    
   
85
 - Added a compatibility option 'websocket_write_timeout'.  When a websocket

    
   
86
   connection exists where Asterisk writes a substantial amount of data to

    
   
87
   the connected client, and the connected client is slow to process the

    
   
88
   received data, the socket may be disconnected.  In such cases, it may be

    
   
89
   necessary to adjust this value.

    
   
90
   Default is 100 ms.
58

    
   
91

   
59
 - Added a 'force_avp' option to chan_pjsip which will force the usage of
92
 - Added a 'force_avp' option to chan_pjsip which will force the usage of
60
   'RTP/AVP', 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' as the media transport type
93
   'RTP/AVP', 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' as the media transport type
61
   in SDP offers depending on settings, even when DTLS is used for media
94
   in SDP offers depending on settings, even when DTLS is used for media
62
   encryption.
95
   encryption.
63

    
   
96

   
64
 - Added a 'media_use_received_transport' option to chan_pjsip which will
97
 - Added a 'media_use_received_transport' option to chan_pjsip which will
65
   cause the SDP answer to use the media transport as received in the SDP
98
   cause the SDP answer to use the media transport as received in the SDP
66
   offer.
99
   offer.
67

    
   
100

   

    
   
101
chan_sip:

    
   
102
 - Added a compatibility option 'websocket_write_timeout'.  When a websocket

    
   
103
   connection exists where Asterisk writes a substantial amount of data to

    
   
104
   the connected client, and the connected client is slow to process the

    
   
105
   received data, the socket may be disconnected.  In such cases, it may be

    
   
106
   necessary to adjust this value.

    
   
107
   Default is 100 ms.

    
   
108

   
68
 - Added a 'force_avp' option for chan_sip. When enabled this option will
109
 - Added a 'force_avp' option for chan_sip. When enabled this option will
69
   cause the media transport in the offer or answer SDP to be 'RTP/AVP',
110
   cause the media transport in the offer or answer SDP to be 'RTP/AVP',
70
   'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' even if a DTLS stream has been
111
   'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' even if a DTLS stream has been
71
   configured. This option can be set to improve interoperability with WebRTC
112
   configured. This option can be set to improve interoperability with WebRTC
72
   clients that don't use the RFC defined transport for DTLS.
113
   clients that don't use the RFC defined transport for DTLS.
73

    
   
114

   
74
 - The 'dtlsverify' option in chan_sip now has additional values besides
115
 - The 'dtlsverify' option in chan_sip now has additional values besides
75
   'yes' and 'no'. If 'yes' is specified both the certificate and fingerprint
116
   'yes' and 'no'. If 'yes' is specified both the certificate and fingerprint
76
   will be verified. If 'no' is specified then neither the certificate or
117
   will be verified. If 'no' is specified then neither the certificate or
77
   fingerprint is verified. If 'certificate' is specified then only the
118
   fingerprint is verified. If 'certificate' is specified then only the
78
   certificate is verified. If 'fingerprint' is specified then only the
119
   certificate is verified. If 'fingerprint' is specified then only the
79
   fingerprint is verified.
120
   fingerprint is verified.
80

    
   
121

   
81
 - A 'dtlsfingerprint' option has been added to chan_sip which allows the
122
 - A 'dtlsfingerprint' option has been added to chan_sip which allows the
82
   hash to be specified for the DTLS fingerprint placed in SDP. Supported
123
   hash to be specified for the DTLS fingerprint placed in SDP. Supported
83
   values are 'sha-1' and 'sha-256' with 'sha-256' being the default.
124
   values are 'sha-1' and 'sha-256' with 'sha-256' being the default.
84

    
   
125

   

    
   
126
HTTP:

    
   
127
 - Added support for persistent HTTP connections.  To enable persistent

    
   
128
   HTTP connections configure the keep alive time between HTTP requests.  The

    
   
129
   keep alive time between HTTP requests is configured in http.conf with the

    
   
130
   session_keep_alive parameter.

    
   
131

   
85
From 12.3.0 to 12.3.1:
132
From 12.3.0 to 12.3.1:
86

    
   
133

   
87
 - MixMonitor AMI actions now require users to have authorization classes.
134
 - MixMonitor AMI actions now require users to have authorization classes.
88
   * MixMonitor - system
135
   * MixMonitor - system
89
   * MixMonitorMute - call or system
136
   * MixMonitorMute - call or system
90
   * StopMixMonitor - call or system
137
   * StopMixMonitor - call or system
91

    
   
138

   
92
 - Added http.conf session_inactivity timer option to close HTTP connections
139
 - Added http.conf session_inactivity timer option to close HTTP connections
93
   that aren't doing anything.
140
   that aren't doing anything.
94

    
   
141

   
95
 - Removed the undocumented manager.conf block-sockets option.  It interferes with
142
 - Removed the undocumented manager.conf block-sockets option.  It interferes with
96
   TCP/TLS inactivity timeouts.
143
   TCP/TLS inactivity timeouts.
97

    
   
144

   
98
From 12.2.0 to 12.3.0:
145
From 12.2.0 to 12.3.0:
99

    
   
146

   
100
 - The asterisk command line -I option and the asterisk.conf internal_timing
147
 - The asterisk command line -I option and the asterisk.conf internal_timing
101
   option are removed and always enabled if any timing module is loaded.
148
   option are removed and always enabled if any timing module is loaded.
102

    
   
149

   
103
AMI:
150
AMI:
104
 - The AMI version has been changed from 2.2.0 to 2.3.0. This is to reflect
151
 - The AMI version has been changed from 2.2.0 to 2.3.0. This is to reflect
105
   the backwards compatible changes listed in the CHANGES file.
152
   the backwards compatible changes listed in the CHANGES file.
106

    
   
153

   
107
ARI:
154
ARI:
108
 - The ARI version has been changed from 1.2.0 to 1.3.0. This is to reflect
155
 - The ARI version has been changed from 1.2.0 to 1.3.0. This is to reflect
109
   the backwards compatible changes listed in the CHANGES file.
156
   the backwards compatible changes listed in the CHANGES file.
110

    
   
157

   
111
Build Options:
158
Build Options:
112
 - Added a new Compiler Flag, REF_DEBUG. When enabled, reference counted
159
 - Added a new Compiler Flag, REF_DEBUG. When enabled, reference counted
113
   objects will emit additional debug information to the refs log file located
160
   objects will emit additional debug information to the refs log file located
114
   in the standard Asterisk log file directory. This log file is useful in
161
   in the standard Asterisk log file directory. This log file is useful in
115
   tracking down object leaks and other reference counting issues. Prior to
162
   tracking down object leaks and other reference counting issues. Prior to
116
   this version, this option was only available by modifying the source code
163
   this version, this option was only available by modifying the source code
117
   directly. This change also includes a new script, refcounter.py, in the
164
   directly. This change also includes a new script, refcounter.py, in the
118
   contrib folder that will process the refs log file.
165
   contrib folder that will process the refs log file.
119

    
   
166

   
120
chan_sip:
167
chan_sip:
121
 - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
168
 - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
122

    
   
169

   
123
From 12.1.0 to 12.2.0:
170
From 12.1.0 to 12.2.0:
124

    
   
171

   
125
AMI:
172
AMI:
126
 - The AMI version has been changed from 2.1.0 to 2.2.0. This is to reflect
173
 - The AMI version has been changed from 2.1.0 to 2.2.0. This is to reflect
127
   the backwards compatible changes listed in the CHANGES file.
174
   the backwards compatible changes listed in the CHANGES file.
128

    
   
175

   
129
ARI:
176
ARI:
130
 - The ARI version has been changed from 1.1.0 to 1.2.0. This is to reflect
177
 - The ARI version has been changed from 1.1.0 to 1.2.0. This is to reflect
131
   the backwards compatible changes listed in the CHANGES file.
178
   the backwards compatible changes listed in the CHANGES file.
132

    
   
179

   
133
 - A bug fix in bridge creation has caused a behavioural change in how
180
 - A bug fix in bridge creation has caused a behavioural change in how
134
   subscriptions are created for bridges. A bridge created through ARI, does
181
   subscriptions are created for bridges. A bridge created through ARI, does
135
   not, by itself, have a subscription created for any particular Stasis
182
   not, by itself, have a subscription created for any particular Stasis
136
   application. When a channel in a Stasis application joins a bridge, an
183
   application. When a channel in a Stasis application joins a bridge, an
137
   implicit event subscription is created for that bridge as well. Previously,
184
   implicit event subscription is created for that bridge as well. Previously,
138
   when a channel left such a bridge, the subscription was leaked; this allowed
185
   when a channel left such a bridge, the subscription was leaked; this allowed
139
   for later bridge events to continue to be pushed to the subscribed
186
   for later bridge events to continue to be pushed to the subscribed
140
   applications. That leak has been fixed; as a result, bridge events that were
187
   applications. That leak has been fixed; as a result, bridge events that were
141
   delivered after a channel left the bridge are no longer delivered. An
188
   delivered after a channel left the bridge are no longer delivered. An
142
   application must subscribe to a bridge through the applications resource if
189
   application must subscribe to a bridge through the applications resource if
143
   it wishes to receive all events related to a bridge.
190
   it wishes to receive all events related to a bridge.
144

    
   
191

   
145
ConfBridge:
192
ConfBridge:
146
 - The sound_place_into_conference sound used in Confbridge is now deprecated
193
 - The sound_place_into_conference sound used in Confbridge is now deprecated
147
   and is no longer functional since it has been broken since its inception
194
   and is no longer functional since it has been broken since its inception
148
   and the fix involved using a different method to achieve the same goal. The
195
   and the fix involved using a different method to achieve the same goal. The
149
   new method to achieve this functionality is by using sound_begin to play
196
   new method to achieve this functionality is by using sound_begin to play
150
   a sound to the conference when waitmarked users are moved into the
197
   a sound to the conference when waitmarked users are moved into the
151
   conference.
198
   conference.
152

    
   
199

   
153
IAX2:
200
IAX2:
154
 - When communicating with a peer on an Asterisk 1.4 or earlier system, the
201
 - When communicating with a peer on an Asterisk 1.4 or earlier system, the
155
   chan_iax2 parameter 'connectedline' must be set to "no" in iax.conf. This
202
   chan_iax2 parameter 'connectedline' must be set to "no" in iax.conf. This
156
   prevents an incompatible connected line frame from an Astersik 1.8 or later
203
   prevents an incompatible connected line frame from an Astersik 1.8 or later
157
   system from causing a hangup in an Asterisk 1.4 or earlier system. Note that
204
   system from causing a hangup in an Asterisk 1.4 or earlier system. Note that
158
   this particular incompatibility has always existed between 1.4 and 1.8 and
205
   this particular incompatibility has always existed between 1.4 and 1.8 and
159
   later versions; this upgrade note is simply informing users of its existance.
206
   later versions; this upgrade note is simply informing users of its existance.
160

    
   
207

   
161
ODBC:
208
ODBC:
162
- A compatibility setting, allow_empty_string_in_nontext, has been added to
209
- A compatibility setting, allow_empty_string_in_nontext, has been added to
163
  res_odbc.conf. When enabled (default behavior), empty column values are
210
  res_odbc.conf. When enabled (default behavior), empty column values are
164
  stored as empty strings during realtime updates. Disabling this option
211
  stored as empty strings during realtime updates. Disabling this option
165
  causes empty column values to be stored as NULLs for non-text columns.
212
  causes empty column values to be stored as NULLs for non-text columns.
166

    
   
213

   
167
  Disable it for PostgreSQL backends in order to avoid errors caused by
214
  Disable it for PostgreSQL backends in order to avoid errors caused by
168
  updating integer columns with an empty string instead of NULL
215
  updating integer columns with an empty string instead of NULL
169
  (sippeers, sipregs, ..).
216
  (sippeers, sipregs, ..).
170

    
   
217

   
171
PJSIP:
218
PJSIP:
172
 - The PJSIP registrar now stores the contents of the User-Agent header of
219
 - The PJSIP registrar now stores the contents of the User-Agent header of
173
   incoming REGISTER requests for each contact that is registered. If using
220
   incoming REGISTER requests for each contact that is registered. If using
174
   realtime for PJSIP contacts, this means that the schema has been updated to
221
   realtime for PJSIP contacts, this means that the schema has been updated to
175
   add a user_agent column. An alembic revision has been added to facilitate
222
   add a user_agent column. An alembic revision has been added to facilitate
176
   this update.
223
   this update.
177
 
224
 
178
 - PJSIP endpoints now have a "message_context" option that can be used to
225
 - PJSIP endpoints now have a "message_context" option that can be used to
179
   determine where to route incoming MESSAGE requests from the endpoint.
226
   determine where to route incoming MESSAGE requests from the endpoint.
180

    
   
227

   
181
Realtime Configuration:
228
Realtime Configuration:
182
 - PJSIP endpoint columns 'tos_audio' and 'tos_video' have been changed from
229
 - PJSIP endpoint columns 'tos_audio' and 'tos_video' have been changed from
183
   yes/no enumerators to string values. 'cos_audio' and 'cos_video' have been
230
   yes/no enumerators to string values. 'cos_audio' and 'cos_video' have been
184
   changed from yes/no enumerators to integer values. PJSIP transport column
231
   changed from yes/no enumerators to integer values. PJSIP transport column
185
   'tos' has been changed from a yes/no enumerator to a string value. 'cos' has
232
   'tos' has been changed from a yes/no enumerator to a string value. 'cos' has
186
   been changed from a yes/no enumerator to an integer value.
233
   been changed from a yes/no enumerator to an integer value.
187

    
   
234

   
188
 - The 'queues' and 'queue_members' realtime tables have been added to the
235
 - The 'queues' and 'queue_members' realtime tables have been added to the
189
   config Alembic scripts.
236
   config Alembic scripts.
190

    
   
237

   
191
 - A new set of Alembic scripts has been added for CDR tables. This will create
238
 - A new set of Alembic scripts has been added for CDR tables. This will create
192
   a 'cdr' table with the default schema that Asterisk expects.
239
   a 'cdr' table with the default schema that Asterisk expects.
193

    
   
240

   
194
From 12.0.0 to 12.1.0:
241
From 12.0.0 to 12.1.0:
195

    
   
242

   
196
- The per console verbose level feature as previously implemented caused a
243
- The per console verbose level feature as previously implemented caused a
197
  large performance penalty.  The fix required some minor incompatibilities
244
  large performance penalty.  The fix required some minor incompatibilities
198
  if the new rasterisk is used to connect to an earlier version.  If the new
245
  if the new rasterisk is used to connect to an earlier version.  If the new
199
  rasterisk connects to an older Asterisk version then the root console verbose
246
  rasterisk connects to an older Asterisk version then the root console verbose
200
  level is always affected by the "core set verbose" command of the remote
247
  level is always affected by the "core set verbose" command of the remote
201
  console even though it may appear to only affect the current console.  If
248
  console even though it may appear to only affect the current console.  If
202
  an older version of rasterisk connects to the new version then the
249
  an older version of rasterisk connects to the new version then the
203
  "core set verbose" command will have no effect.
250
  "core set verbose" command will have no effect.
204

    
   
251

   
205
ARI:
252
ARI:
206
 - The ARI version has been changed from 1.0.0 to 1.1.0. This is to reflect
253
 - The ARI version has been changed from 1.0.0 to 1.1.0. This is to reflect
207
   the backwards compatible changes listed below.
254
   the backwards compatible changes listed below.
208

    
   
255

   
209
 - Added a new ARI resource 'mailboxes' which allows the creation and
256
 - Added a new ARI resource 'mailboxes' which allows the creation and
210
   modification of mailboxes managed by external MWI. Modules res_mwi_external
257
   modification of mailboxes managed by external MWI. Modules res_mwi_external
211
   and res_stasis_mailbox must be enabled to use this resource.
258
   and res_stasis_mailbox must be enabled to use this resource.
212

    
   
259

   
213
 - Added new events for externally initiated transfers. The event
260
 - Added new events for externally initiated transfers. The event
214
   BridgeBlindTransfer is now raised when a channel initiates a blind transfer
261
   BridgeBlindTransfer is now raised when a channel initiates a blind transfer
215
   of a bridge in the ARI controlled application to the dialplan; the
262
   of a bridge in the ARI controlled application to the dialplan; the
216
   BridgeAttendedTransfer event is raised when a channel initiates an
263
   BridgeAttendedTransfer event is raised when a channel initiates an
217
   attended transfer of a bridge in the ARI controlled application to the
264
   attended transfer of a bridge in the ARI controlled application to the
218
   dialplan.
265
   dialplan.
219

    
   
266

   
220
 - Channel variables may now be specified as a body parameter to the
267
 - Channel variables may now be specified as a body parameter to the
221
   POST /channels operation. The 'variables' key in the JSON is interpreted
268
   POST /channels operation. The 'variables' key in the JSON is interpreted
222
   as a sequence of key/value pairs that will be added to the created channel
269
   as a sequence of key/value pairs that will be added to the created channel
223
   as channel variables. Other parameters in the JSON body are treated as
270
   as channel variables. Other parameters in the JSON body are treated as
224
   query parameters of the same name.
271
   query parameters of the same name.
225

    
   
272

   
226
 - Subscribing to the same device state twice now responds with success
273
 - Subscribing to the same device state twice now responds with success
227
   instead of returning error on the second attempt.
274
   instead of returning error on the second attempt.
228

    
   
275

   
229
AMI:
276
AMI:
230
 - The AMI version has been changed from 2.0.0 to 2.1.0. This is to reflect
277
 - The AMI version has been changed from 2.0.0 to 2.1.0. This is to reflect
231
   the backwards compatible changes listed below.
278
   the backwards compatible changes listed below.
232

    
   
279

   
233
 - The DialStatus field in the DialEnd event can now have additional values.
280
 - The DialStatus field in the DialEnd event can now have additional values.
234
   This includes ABORT, CONTINUE, and GOTO.
281
   This includes ABORT, CONTINUE, and GOTO.
235

    
   
282

   
236
 - The res_mwi_external_ami module can, if loaded, provide additional AMI
283
 - The res_mwi_external_ami module can, if loaded, provide additional AMI
237
   actions and events that convey MWI state within Asterisk. This includes
284
   actions and events that convey MWI state within Asterisk. This includes
238
   the MWIGet, MWIUpdate, and MWIDelete actions, as well as the MWIGet and
285
   the MWIGet, MWIUpdate, and MWIDelete actions, as well as the MWIGet and
239
   MWIGetComplete events that occur in response to an MWIGet action.
286
   MWIGetComplete events that occur in response to an MWIGet action.
240

    
   
287

   
241
 - AMI now contains a new class authorization, 'security'. This is used with
288
 - AMI now contains a new class authorization, 'security'. This is used with
242
   the following new events: FailedACL, InvalidAccountID, SessionLimit,
289
   the following new events: FailedACL, InvalidAccountID, SessionLimit,
243
   MemoryLimit, LoadAverageLimit, RequestNotAllowed, AuthMethodNotAllowed,
290
   MemoryLimit, LoadAverageLimit, RequestNotAllowed, AuthMethodNotAllowed,
244
   RequestBadFormat, SuccessfulAuth, UnexpectedAddress, ChallengeResponseFailed,
291
   RequestBadFormat, SuccessfulAuth, UnexpectedAddress, ChallengeResponseFailed,
245
   InvalidPassword, ChallengeSent, and InvalidTransport.
292
   InvalidPassword, ChallengeSent, and InvalidTransport.
246

    
   
293

   
247
 - Bridge related events now have two additional fields: BridgeName and
294
 - Bridge related events now have two additional fields: BridgeName and
248
   BridgeCreator. BridgeName is a descriptive name for the bridge;
295
   BridgeCreator. BridgeName is a descriptive name for the bridge;
249
   BridgeCreator is the name of the entity that created the bridge. This
296
   BridgeCreator is the name of the entity that created the bridge. This
250
   affects the following events: ConfbridgeStart, ConfbridgeEnd,
297
   affects the following events: ConfbridgeStart, ConfbridgeEnd,
251
   ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
298
   ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
252
   ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
299
   ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
253
   AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
300
   AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
254

    
   
301

   
255
CDRs:
302
CDRs:
256
 - The "endbeforehexten" setting now defaults to "yes", instead of "no".
303
 - The "endbeforehexten" setting now defaults to "yes", instead of "no".
257
   When set to "no", yhis setting will cause a new CDR to be generated when a
304
   When set to "no", yhis setting will cause a new CDR to be generated when a
258
   channel enters into hangup logic (either the 'h' extension or a hangup
305
   channel enters into hangup logic (either the 'h' extension or a hangup
259
   handler subroutine). In general, this is not the preferred default: this
306
   handler subroutine). In general, this is not the preferred default: this
260
   causes extra CDRs to be generated for a channel in many common dialplans.
307
   causes extra CDRs to be generated for a channel in many common dialplans.
261

    
   
308

   
262
CLI commands:
309
CLI commands:
263
 - "core show settings" now lists the current console verbosity in addition
310
 - "core show settings" now lists the current console verbosity in addition
264
   to the root console verbosity.
311
   to the root console verbosity.
265

    
   
312

   
266
 - "core set verbose" has not been able to support the by module verbose
313
 - "core set verbose" has not been able to support the by module verbose
267
   logging levels since verbose logging levels were made per console.  That
314
   logging levels since verbose logging levels were made per console.  That
268
   syntax is now removed and a silence option added in its place.
315
   syntax is now removed and a silence option added in its place.
269

    
   
316

   
270
Configuration Files:
317
Configuration Files:
271
 - The 'verbose' setting in logger.conf still takes an optional argument,
318
 - The 'verbose' setting in logger.conf still takes an optional argument,
272
   specifying the verbosity level for each logging destination.  However,
319
   specifying the verbosity level for each logging destination.  However,
273
   the default is now to once again follow the current root console level.
320
   the default is now to once again follow the current root console level.
274
   As a result, using the AMI Command action with "core set verbose" could
321
   As a result, using the AMI Command action with "core set verbose" could
275
   again set the root console verbose level and affect the verbose level
322
   again set the root console verbose level and affect the verbose level
276
   logged.
323
   logged.
277

    
   
324

   
278
 - res_fax now returns the correct rates for V.27ter (4800 or 9600 bit/s).
325
 - res_fax now returns the correct rates for V.27ter (4800 or 9600 bit/s).
279
   Because of this the default settings would not load, so the minrate (minimum
326
   Because of this the default settings would not load, so the minrate (minimum
280
   transmission rate) option in res_fax.conf was changed to default to 4800
327
   transmission rate) option in res_fax.conf was changed to default to 4800
281
   since that is the minimum rate for v.27 which is included in the default
328
   since that is the minimum rate for v.27 which is included in the default
282
   modem options.
329
   modem options.
283

    
   
330

   
284
Realtime Configuration:
331
Realtime Configuration:
285
 - WARNING: The database migration script that adds the 'extensions' table for
332
 - WARNING: The database migration script that adds the 'extensions' table for
286
   realtime had to be modified due to an error when installing for MySQL.  The
333
   realtime had to be modified due to an error when installing for MySQL.  The
287
   'extensions' table's 'id' column was changed to be a primary key.  This could
334
   'extensions' table's 'id' column was changed to be a primary key.  This could
288
   potentially cause a migration problem.  If so, it may be necessary to
335
   potentially cause a migration problem.  If so, it may be necessary to
289
   manually alter the affected table/column to bring it back in line with the
336
   manually alter the affected table/column to bring it back in line with the
290
   migration scripts.
337
   migration scripts.
291

    
   
338

   
292
 - New columns have been added to realtime tables for 'support_path' on
339
 - New columns have been added to realtime tables for 'support_path' on
293
   ps_registrations and ps_aors and for 'path' on ps_contacts for the new
340
   ps_registrations and ps_aors and for 'path' on ps_contacts for the new
294
   SIP Path support in chan_pjsip.
341
   SIP Path support in chan_pjsip.
295

    
   
342

   
296
 - The following new tables have been added for pjsip realtime: 'ps_systems',
343
 - The following new tables have been added for pjsip realtime: 'ps_systems',
297
   'ps_globals', 'ps_tranports', 'ps_registrations'.
344
   'ps_globals', 'ps_tranports', 'ps_registrations'.
298

    
   
345

   
299
 - The following columns were added to the 'ps_aors' realtime table:
346
 - The following columns were added to the 'ps_aors' realtime table:
300
   'maximum_expiration', 'outbound_proxy', and 'support_path'.
347
   'maximum_expiration', 'outbound_proxy', and 'support_path'.
301

    
   
348

   
302
 - The following columns were added to the 'ps_contacts' realtime table:
349
 - The following columns were added to the 'ps_contacts' realtime table:
303
   'outbound_proxy' and 'path'.
350
   'outbound_proxy' and 'path'.
304

    
   
351

   
305
 - New columns have been added to the ps_endpoints realtime table for the
352
 - New columns have been added to the ps_endpoints realtime table for the
306
   'media_address', 'redirect_method' and 'set_var' options.  Also the
353
   'media_address', 'redirect_method' and 'set_var' options.  Also the
307
   'mwi_fromuser' column was renamed to 'mwi_from_user'.
354
   'mwi_fromuser' column was renamed to 'mwi_from_user'.
308

    
   
355

   
309
 - A new column was added to the 'ps_globals' realtime table for the 'debug'
356
 - A new column was added to the 'ps_globals' realtime table for the 'debug'
310
   option.
357
   option.
311

    
   
358

   
312
From 11 to 12:
359
From 11 to 12:
313
There are many significant architectural changes in Asterisk 12. It is
360
There are many significant architectural changes in Asterisk 12. It is
314
recommended that you not only read through this document for important
361
recommended that you not only read through this document for important
315
changes that affect an upgrade, but that you also read through the CHANGES
362
changes that affect an upgrade, but that you also read through the CHANGES
316
document in depth to better understand the new options available to you.
363
document in depth to better understand the new options available to you.
317

    
   
364

   
318
Additional information on the architectural changes made in Asterisk can be
365
Additional information on the architectural changes made in Asterisk can be
319
found on the Asterisk wiki (https://wiki.asterisk.org)
366
found on the Asterisk wiki (https://wiki.asterisk.org)
320

    
   
367

   
321
Of particular note, the following systems in Asterisk underwent significant
368
Of particular note, the following systems in Asterisk underwent significant
322
changes. Documentation for the changes and a specification for their
369
changes. Documentation for the changes and a specification for their
323
behavior in Asterisk 12 is also available on the Asterisk wiki.
370
behavior in Asterisk 12 is also available on the Asterisk wiki.
324
 - AMI: Many events were changed, and the semantics of channels and bridges
371
 - AMI: Many events were changed, and the semantics of channels and bridges
325
        were defined. In particular, how channels and bridges behave under
372
        were defined. In particular, how channels and bridges behave under
326
        transfer scenarios and situations involving multiple parties has
373
        transfer scenarios and situations involving multiple parties has
327
        changed significantly. See https://wiki.asterisk.org/wiki/x/dAFRAQ
374
        changed significantly. See https://wiki.asterisk.org/wiki/x/dAFRAQ
328
        for more information.
375
        for more information.
329
 - CDR: CDR logic was extracted from the many locations it existed in across
376
 - CDR: CDR logic was extracted from the many locations it existed in across
330
        Asterisk and implemented as a consumer of Stasis message bus events.
377
        Asterisk and implemented as a consumer of Stasis message bus events.
331
        As a result, consistency of records has improved significantly and the
378
        As a result, consistency of records has improved significantly and the
332
        behavior of CDRs in transfer scenarios has been defined in the CDR
379
        behavior of CDRs in transfer scenarios has been defined in the CDR
333
        specification. However, significant behavioral changes in CDRs resulted
380
        specification. However, significant behavioral changes in CDRs resulted
334
        from the transition. The most significant change is the addition of
381
        from the transition. The most significant change is the addition of
335
        CDR entries when a channel who is the Party A in a CDR leaves a bridge.
382
        CDR entries when a channel who is the Party A in a CDR leaves a bridge.
336
        See https://wiki.asterisk.org/wiki/x/pwpRAQ for more information.
383
        See https://wiki.asterisk.org/wiki/x/pwpRAQ for more information.
337
 - CEL: Much like CDRs, CEL was removed from the many locations it existed in
384
 - CEL: Much like CDRs, CEL was removed from the many locations it existed in
338
        across Asterisk and implemented as a consumer of Stasis message bus
385
        across Asterisk and implemented as a consumer of Stasis message bus
339
        events. It now closely follows the Bridging API model of channels and
386
        events. It now closely follows the Bridging API model of channels and
340
        bridges, and has a much closer consistency of conveyed events as AMI.
387
        bridges, and has a much closer consistency of conveyed events as AMI.
341
        For the changes in events, see https://wiki.asterisk.org/wiki/x/4ICLAQ.
388
        For the changes in events, see https://wiki.asterisk.org/wiki/x/4ICLAQ.
342

    
   
389

   
343
Build System:
390
Build System:
344
 - Removed the CHANNEL_TRACE development mode build option. Certain aspects of
391
 - Removed the CHANNEL_TRACE development mode build option. Certain aspects of
345
   the CHANNEL_TRACE build option were incompatible with the new bridging
392
   the CHANNEL_TRACE build option were incompatible with the new bridging
346
   architecture.
393
   architecture.
347

    
   
394

   
348
 - Asterisk now depends on libjansson, libuuid and optionally (but recommended)
395
 - Asterisk now depends on libjansson, libuuid and optionally (but recommended)
349
   libxslt and uriparser.
396
   libxslt and uriparser.
350

    
   
397

   
351
 - The new SIP stack and channel driver uses a particular version of PJSIP.
398
 - The new SIP stack and channel driver uses a particular version of PJSIP.
352
   Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
399
   Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
353
   configuring and installing PJSIP for use with Asterisk.
400
   configuring and installing PJSIP for use with Asterisk.
354

    
   
401

   
355
AgentLogin and chan_agent:
402
AgentLogin and chan_agent:
356
 - Along with AgentRequest, this application has been modified to be a
403
 - Along with AgentRequest, this application has been modified to be a
357
   replacement for chan_agent. The chan_agent module and the Agent channel
404
   replacement for chan_agent. The chan_agent module and the Agent channel
358
   driver have been removed from Asterisk, as the concept of a channel driver
405
   driver have been removed from Asterisk, as the concept of a channel driver
359
   proxying in front of another channel driver was incompatible with the new
406
   proxying in front of another channel driver was incompatible with the new
360
   architecture (and has had numerous problems through past versions of
407
   architecture (and has had numerous problems through past versions of
361
   Asterisk). The act of a channel calling the AgentLogin application places the
408
   Asterisk). The act of a channel calling the AgentLogin application places the
362
   channel into a pool of agents that can be requested by the AgentRequest
409
   channel into a pool of agents that can be requested by the AgentRequest
363
   application. Note that this application, as well as all other agent related
410
   application. Note that this application, as well as all other agent related
364
   functionality, is now provided by the app_agent_pool module.
411
   functionality, is now provided by the app_agent_pool module.
365

    
   
412

   
366
 - This application no longer performs agent authentication. If authentication
413
 - This application no longer performs agent authentication. If authentication
367
   is desired, the dialplan needs to perform this function using the
414
   is desired, the dialplan needs to perform this function using the
368
   Authenticate or VMAuthenticate application or through an AGI script before
415
   Authenticate or VMAuthenticate application or through an AGI script before
369
   running AgentLogin.
416
   running AgentLogin.
370

    
   
417

   
371
 - The agents.conf schema has changed. Rather than specifying agents on a
418
 - The agents.conf schema has changed. Rather than specifying agents on a
372
   single line in comma delineated fashion, each agent is defined in a separate
419
   single line in comma delineated fashion, each agent is defined in a separate
373
   context. This allows agents to use the power of context templates in their
420
   context. This allows agents to use the power of context templates in their
374
   definition.
421
   definition.
375

    
   
422

   
376
 - A number of parameters from agents.conf have been removed. This includes
423
 - A number of parameters from agents.conf have been removed. This includes
377
   maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
424
   maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
378
   urlprefix, and savecallsin. These options were obsoleted by the move from
425
   urlprefix, and savecallsin. These options were obsoleted by the move from
379
   a channel driver model to the bridging/application model provided by
426
   a channel driver model to the bridging/application model provided by
380
   app_agent_pool.
427
   app_agent_pool.
381

    
   
428

   
382
 - The AGENTUPDATECDR channel variable has also been removed, for the same
429
 - The AGENTUPDATECDR channel variable has also been removed, for the same
383
   reason as the updatecdr option.
430
   reason as the updatecdr option.
384

    
   
431

   
385
 - The endcall and enddtmf configuration options are removed.  Use the
432
 - The endcall and enddtmf configuration options are removed.  Use the
386
   dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
433
   dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
387
   channel before calling AgentLogin.
434
   channel before calling AgentLogin.
388

    
   
435

   
389
AgentMonitorOutgoing
436
AgentMonitorOutgoing
390
 - This application has been removed. It was a holdover from when
437
 - This application has been removed. It was a holdover from when
391
   AgentCallbackLogin was removed.
438
   AgentCallbackLogin was removed.
392

    
   
439

   
393
Answer
440
Answer
394
 - It is no longer possible to bypass updating the CDR when answering a
441
 - It is no longer possible to bypass updating the CDR when answering a
395
   channel. CDRs are based on the channel state and will be updated when
442
   channel. CDRs are based on the channel state and will be updated when
396
   the channel is Answered.
443
   the channel is Answered.
397

    
   
444

   
398
ControlPlayback
445
ControlPlayback
399
 - The channel variable CPLAYBACKSTATUS may now return the value
446
 - The channel variable CPLAYBACKSTATUS may now return the value
400
   'REMOTESTOPPED' when playback is stopped by an external entity.
447
   'REMOTESTOPPED' when playback is stopped by an external entity.
401

    
   
448

   
402
DISA
449
DISA
403
 - This application now has a dependency on the app_cdr module. It uses this
450
 - This application now has a dependency on the app_cdr module. It uses this
404
   module to hide the CDR created prior to execution of the DISA application.
451
   module to hide the CDR created prior to execution of the DISA application.
405

    
   
452

   
406
DumpChan:
453
DumpChan:
407
 - The output of DumpChan no longer includes the DirectBridge or IndirectBridge
454
 - The output of DumpChan no longer includes the DirectBridge or IndirectBridge
408
   fields. Instead, if a channel is in a bridge, it includes a BridgeID field
455
   fields. Instead, if a channel is in a bridge, it includes a BridgeID field
409
   containing the unique ID of the bridge that the channel happens to be in.
456
   containing the unique ID of the bridge that the channel happens to be in.
410

    
   
457

   
411
ForkCDR:
458
ForkCDR:
412
 - Nearly every parameter in ForkCDR has been updated and changed to reflect
459
 - Nearly every parameter in ForkCDR has been updated and changed to reflect
413
   the changes in CDRs. Please see the documentation for the ForkCDR
460
   the changes in CDRs. Please see the documentation for the ForkCDR
414
   application, as well as the CDR specification on the Asterisk wiki.
461
   application, as well as the CDR specification on the Asterisk wiki.
415

    
   
462

   
416
NoCDR:
463
NoCDR:
417
 - The NoCDR application has been deprecated. Please use the CDR_PROP function
464
 - The NoCDR application has been deprecated. Please use the CDR_PROP function
418
   to disable CDRs on a channel.
465
   to disable CDRs on a channel.
419

    
   
466

   
420
ParkAndAnnounce:
467
ParkAndAnnounce:
421
 - The app_parkandannounce module has been removed. The application
468
 - The app_parkandannounce module has been removed. The application
422
   ParkAndAnnounce is now provided by the res_parking module. See the
469
   ParkAndAnnounce is now provided by the res_parking module. See the
423
   Parking changes for more information.
470
   Parking changes for more information.
424

    
   
471

   
425
ResetCDR:
472
ResetCDR:
426
 - The 'w' and 'a' options have been removed. Dispatching CDRs to registered
473
 - The 'w' and 'a' options have been removed. Dispatching CDRs to registered
427
   backends occurs on an as-needed basis in order to preserve linkedid
474
   backends occurs on an as-needed basis in order to preserve linkedid
428
   propagation and other needed behavior.
475
   propagation and other needed behavior.
429
 - The 'e' option is deprecated. Please use the CDR_PROP function to enable
476
 - The 'e' option is deprecated. Please use the CDR_PROP function to enable
430
   CDRs on a channel that they were previously disabled on.
477
   CDRs on a channel that they were previously disabled on.
431
 - The ResetCDR application is no longer a part of core Asterisk, and instead
478
 - The ResetCDR application is no longer a part of core Asterisk, and instead
432
   is now delivered as part of app_cdr.
479
   is now delivered as part of app_cdr.
433

    
   
480

   
434
Queues:
481
Queues:
435
 - Queue strategy rrmemory now has a predictable order similar to strategy
482
 - Queue strategy rrmemory now has a predictable order similar to strategy
436
   rrordered. Members will be called in the order that they are added to the
483
   rrordered. Members will be called in the order that they are added to the
437
   queue.
484
   queue.
438

    
   
485

   
439
 - Removed the queues.conf check_state_unknown option.  It is no longer
486
 - Removed the queues.conf check_state_unknown option.  It is no longer
440
   necessary.
487
   necessary.
441

    
   
488

   
442
 - It is now possible to play the Queue prompts to the first user waiting in a
489
 - It is now possible to play the Queue prompts to the first user waiting in a
443
   call queue. Note that this may impact the ability for agents to talk with
490
   call queue. Note that this may impact the ability for agents to talk with
444
   users, as a prompt may still be playing when an agent connects to the user.
491
   users, as a prompt may still be playing when an agent connects to the user.
445
   This ability is disabled by default but can be enabled on an individual
492
   This ability is disabled by default but can be enabled on an individual
446
   queue using the 'announce-to-first-user' option.
493
   queue using the 'announce-to-first-user' option.
447

    
   
494

   
448
 - The configuration options eventwhencalled and eventmemberstatus have been
495
 - The configuration options eventwhencalled and eventmemberstatus have been
449
   removed.  As a result, the AMI events QueueMemberStatus, AgentCalled,
496
   removed.  As a result, the AMI events QueueMemberStatus, AgentCalled,
450
   AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
497
   AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
451
   sent.  The "Variable" fields will also no longer exist on the Agent* events.
498
   sent.  The "Variable" fields will also no longer exist on the Agent* events.
452
   These events can be filtered out from a connected AMI client using the
499
   These events can be filtered out from a connected AMI client using the
453
   eventfilter setting in manager.conf.
500
   eventfilter setting in manager.conf.
454

    
   
501

   
455
 - The queue log now differentiates between blind and attended transfers. A
502
 - The queue log now differentiates between blind and attended transfers. A
456
   blind transfer will result in a BLINDTRANSFER message with the destination
503
   blind transfer will result in a BLINDTRANSFER message with the destination
457
   context and extension. An attended transfer will result in an
504
   context and extension. An attended transfer will result in an
458
   ATTENDEDTRANSFER message. This message will indicate the method by which
505
   ATTENDEDTRANSFER message. This message will indicate the method by which
459
   the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
506
   the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
460
   for running an application on a bridge or channel, or "LINK" for linking
507
   for running an application on a bridge or channel, or "LINK" for linking
461
   two bridges together with local channels. The queue log will also now detect
508
   two bridges together with local channels. The queue log will also now detect
462
   externally initiated blind and attended transfers and record the transfer
509
   externally initiated blind and attended transfers and record the transfer
463
   status accordingly.
510
   status accordingly.
464

    
   
511

   
465
 - When performing queue pause/unpause on an interface without specifying an
512
 - When performing queue pause/unpause on an interface without specifying an
466
   individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
513
   individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
467
   least one member of any queue exists for that interface.
514
   least one member of any queue exists for that interface.
468

    
   
515

   
469
SetAMAFlags
516
SetAMAFlags
470
 - This application is deprecated in favor of CHANNEL(amaflags).
517
 - This application is deprecated in favor of CHANNEL(amaflags).
471

    
   
518

   
472
VoiceMail:
519
VoiceMail:
473
 - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
520
 - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
474
   system as mailbox@context.  The rest of the system cannot add @default
521
   system as mailbox@context.  The rest of the system cannot add @default
475
   to mailbox identifiers for app_voicemail that do not specify a context
522
   to mailbox identifiers for app_voicemail that do not specify a context
476
   any longer.  It is a mailbox identifier format that should only be
523
   any longer.  It is a mailbox identifier format that should only be
477
   interpreted by app_voicemail.
524
   interpreted by app_voicemail.
478

    
   
525

   
479
 - The voicemail.conf configuration file now has an 'alias' configuration
526
 - The voicemail.conf configuration file now has an 'alias' configuration
480
   parameter for use with the Directory application. The voicemail realtime
527
   parameter for use with the Directory application. The voicemail realtime
481
   database table schema has also been updated with an 'alias' column. Systems
528
   database table schema has also been updated with an 'alias' column. Systems
482
   using voicemail with realtime should update their schemas accordingly.
529
   using voicemail with realtime should update their schemas accordingly.
483

    
   
530

   
484
Channel Drivers:
531
Channel Drivers:
485
 - When a channel driver is configured to enable jiterbuffers, they are now
532
 - When a channel driver is configured to enable jiterbuffers, they are now
486
   applied unconditionally when a channel joins a bridge. If a jitterbuffer
533
   applied unconditionally when a channel joins a bridge. If a jitterbuffer
487
   is already set for that channel when it enters, such as by the JITTERBUFFER
534
   is already set for that channel when it enters, such as by the JITTERBUFFER
488
   function, then the existing jitterbuffer will be used and the one set by
535
   function, then the existing jitterbuffer will be used and the one set by
489
   the channel driver will not be applied.
536
   the channel driver will not be applied.
490

    
   
537

   
491
chan_bridge
538
chan_bridge
492
 - chan_bridge is removed and its functionality is incorporated into ConfBridge
539
 - chan_bridge is removed and its functionality is incorporated into ConfBridge
493
   itself.
540
   itself.
494

    
   
541

   
495
chan_dahdi:
542
chan_dahdi:
496
 - Analog port dialing and deferred DTMF dialing for PRI now distinguishes
543
 - Analog port dialing and deferred DTMF dialing for PRI now distinguishes
497
   between 'w' and 'W'.  The 'w' pauses dialing for half a second.  The 'W'
544
   between 'w' and 'W'.  The 'w' pauses dialing for half a second.  The 'W'
498
   pauses dialing for one second.
545
   pauses dialing for one second.
499

    
   
546

   
500
 - The default for inband_on_proceeding has changed to no.
547
 - The default for inband_on_proceeding has changed to no.
501

    
   
548

   
502
 - The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
549
 - The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
503
   A range of channels can be specified to be destroyed. Note that this command
550
   A range of channels can be specified to be destroyed. Note that this command
504
   should only be used if you understand the risks it entails.
551
   should only be used if you understand the risks it entails.
505

    
   
552

   
506
 - The script specified by the chan_dahdi.conf mwimonitornotify option now gets
553
 - The script specified by the chan_dahdi.conf mwimonitornotify option now gets
507
   the exact configured mailbox name.  For app_voicemail mailboxes this is
554
   the exact configured mailbox name.  For app_voicemail mailboxes this is
508
   mailbox@context.
555
   mailbox@context.
509

    
   
556

   
510
 - Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
557
 - Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
511

    
   
558

   
512
chan_local:
559
chan_local:
513
 - The /b option has been removed.
560
 - The /b option has been removed.
514

    
   
561

   
515
 - chan_local moved into the system core and is no longer a loadable module.
562
 - chan_local moved into the system core and is no longer a loadable module.
516

    
   
563

   
517
chan_sip:
564
chan_sip:
518
 - The 'callevents' parameter has been removed. Hold AMI events are now raised
565
 - The 'callevents' parameter has been removed. Hold AMI events are now raised
519
   in the core, and can be filtered out using the 'eventfilter' parameter
566
   in the core, and can be filtered out using the 'eventfilter' parameter
520
   in manager.conf.
567
   in manager.conf.
521

    
   
568

   
522
 - Dynamic realtime tables for SIP Users can now include a 'path' field. This
569
 - Dynamic realtime tables for SIP Users can now include a 'path' field. This
523
   will store the path information for that peer when it registers. Realtime
570
   will store the path information for that peer when it registers. Realtime
524
   tables can also use the 'supportpath' field to enable Path header support.
571
   tables can also use the 'supportpath' field to enable Path header support.
525

    
   
572

   
526
 - LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
573
 - LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
527
   objectIdentifier. This maps to the supportpath option in sip.conf.
574
   objectIdentifier. This maps to the supportpath option in sip.conf.
528

    
   
575

   
529
Core:
576
Core:
530
 - Masquerades as an operation inside Asterisk have been effectively hidden
577
 - Masquerades as an operation inside Asterisk have been effectively hidden
531
   by the migration to the Bridging API. As such, many 'quirks' of Asterisk
578
   by the migration to the Bridging API. As such, many 'quirks' of Asterisk
532
   no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
579
   no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
533
   dropping of frame/audio hooks, and other internal implementation details
580
   dropping of frame/audio hooks, and other internal implementation details
534
   that users had to deal with. This fundamental change has large implications
581
   that users had to deal with. This fundamental change has large implications
535
   throughout the changes documented for this version. For more information
582
   throughout the changes documented for this version. For more information
536
   about the new core architecture of Asterisk, please see the Asterisk wiki.
583
   about the new core architecture of Asterisk, please see the Asterisk wiki.
537

    
   
584

   
538
 - The following channel variables have changed behavior which is described in
585
 - The following channel variables have changed behavior which is described in
539
   the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
586
   the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
540
   ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.
587
   ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.
541

    
   
588

   
542
AMI (Asterisk Manager Interface):
589
AMI (Asterisk Manager Interface):
543
 - Version 1.4 - The details of what happens to a channel when a masquerade
590
 - Version 1.4 - The details of what happens to a channel when a masquerade
544
   happens (transfers, parking, etc) have changed.
591
   happens (transfers, parking, etc) have changed.
545
   - The Masquerade event now includes the Uniqueid's of the clone and original
592
   - The Masquerade event now includes the Uniqueid's of the clone and original
546
     channels.
593
     channels.
547
   - Channels no longer swap Uniqueid's as a result of the masquerade.
594
   - Channels no longer swap Uniqueid's as a result of the masquerade.
548
   - Instead of a shell game of renames, there's now a single rename, appending
595
   - Instead of a shell game of renames, there's now a single rename, appending
549
     <ZOMBIE> to the name of the original channel.
596
     <ZOMBIE> to the name of the original channel.
550

    
   
597

   
551
 - *Major* changes were made to both the syntax as well as the semantics of the
598
 - *Major* changes were made to both the syntax as well as the semantics of the
552
   AMI protocol. In particular, AMI events have been substantially modified
599
   AMI protocol. In particular, AMI events have been substantially modified
553
   and improved in this version of Asterisk. The major event changes are listed
600
   and improved in this version of Asterisk. The major event changes are listed
554
   below.
601
   below.
555
   - NewPeerAccount has been removed. NewAccountCode is raised instead.
602
   - NewPeerAccount has been removed. NewAccountCode is raised instead.
556
   - Reload events have been consolidated and standardized.
603
   - Reload events have been consolidated and standardized.
557
   - ModuleLoadReport has been removed.
604
   - ModuleLoadReport has been removed.
558
   - FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes
605
   - FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes
559
     app_fax and res_fax events.
606
     app_fax and res_fax events.
560
   - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.
607
   - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.
561
   - JabberEvent has been removed.
608
   - JabberEvent has been removed.
562
   - Hold is now in the core and will now raise Hold and Unhold events.
609
   - Hold is now in the core and will now raise Hold and Unhold events.
563
   - Join is now QueueCallerJoin.
610
   - Join is now QueueCallerJoin.
564
   - Leave is now QueueCallerLeave.
611
   - Leave is now QueueCallerLeave.
565
   - Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.
612
   - Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.
566
   - ChannelUpdate has been removed.
613
   - ChannelUpdate has been removed.
567
   - Local channel optimization is now conveyed via LocalOptimizationBegin and
614
   - Local channel optimization is now conveyed via LocalOptimizationBegin and
568
     LocalOptimizationEnd.
615
     LocalOptimizationEnd.
569
   - BridgeAction and BridgeExec have been removed.
616
   - BridgeAction and BridgeExec have been removed.
570
   - BlindTransfer and AttendedTransfer events were added.
617
   - BlindTransfer and AttendedTransfer events were added.
571
   - Dial is now DialBegin and DialEnd.
618
   - Dial is now DialBegin and DialEnd.
572
   - DTMF is now DTMFBegin and DTMFEnd.
619
   - DTMF is now DTMFBegin and DTMFEnd.
573
   - Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and
620
   - Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and
574
     BridgeDestroy
621
     BridgeDestroy
575
   - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop
622
   - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop
576
   - AGIExec is now AGIExecStart and AGIExecEnd
623
   - AGIExec is now AGIExecStart and AGIExecEnd
577
   - AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd
624
   - AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd
578

    
   
625

   
579
 - The 'MCID' AMI event now publishes a channel snapshot when available and
626
 - The 'MCID' AMI event now publishes a channel snapshot when available and
580
   its non-channel-snapshot parameters now use either the "MCallerID" or
627
   its non-channel-snapshot parameters now use either the "MCallerID" or
581
   'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
628
   'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
582
   of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
629
   of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
583
   parameters in the channel snapshot.
630
   parameters in the channel snapshot.
584

    
   
631

   
585
 - The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
632
 - The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
586
   renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
633
   renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
587

    
   
634

   
588
 - All AMI events now contain a 'SystemName' field, if available.
635
 - All AMI events now contain a 'SystemName' field, if available.
589

    
   
636

   
590
 - Local channel information in events is now prefixed with 'LocalOne' and
637
 - Local channel information in events is now prefixed with 'LocalOne' and
591
   'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
638
   'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
592
   the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
639
   the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
593
   and 'LocalOptimizationEnd' events.
640
   and 'LocalOptimizationEnd' events.
594

    
   
641

   
595
 - The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
642
 - The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
596
   previous versions. They now report all SR/RR packets sent/received, and
643
   previous versions. They now report all SR/RR packets sent/received, and
597
   have been restructured to better reflect the data sent in a SR/RR. In
644
   have been restructured to better reflect the data sent in a SR/RR. In
598
   particular, the event structure now supports multiple report blocks.
645
   particular, the event structure now supports multiple report blocks.
599

    
   
646

   
600
 - The deprecated use of | (pipe) as a separator in the channelvars setting in
647
 - The deprecated use of | (pipe) as a separator in the channelvars setting in
601
   manager.conf has been removed.
648
   manager.conf has been removed.
602

    
   
649

   
603
 - The SIP SIPqualifypeer action now sends a response indicating it will qualify
650
 - The SIP SIPqualifypeer action now sends a response indicating it will qualify
604
   a peer once a peer has been found to qualify.  Once the qualify has been
651
   a peer once a peer has been found to qualify.  Once the qualify has been
605
   completed it will now issue a SIPqualifypeerdone event.
652
   completed it will now issue a SIPqualifypeerdone event.
606

    
   
653

   
607
 - The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
654
 - The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
608
   in a future release. Please use the common 'Exten' field instead.
655
   in a future release. Please use the common 'Exten' field instead.
609

    
   
656

   
610
 - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
657
 - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
611
   'UnParkedCall' have changed significantly in the new res_parking module.
658
   'UnParkedCall' have changed significantly in the new res_parking module.
612
   - The 'Channel' and 'From' headers are gone. For the channel that was parked
659
   - The 'Channel' and 'From' headers are gone. For the channel that was parked
613
     or is coming out of parking, a 'Parkee' channel snapshot is issued and it
660
     or is coming out of parking, a 'Parkee' channel snapshot is issued and it
614
     has a number of fields associated with it. The old 'Channel' header relayed
661
     has a number of fields associated with it. The old 'Channel' header relayed
615
     the same data as the new 'ParkeeChannel' header.
662
     the same data as the new 'ParkeeChannel' header.
616
   - The 'From' field was ambiguous and changed meaning depending on the event.
663
   - The 'From' field was ambiguous and changed meaning depending on the event.
617
     for most of these, it was the name of the channel that parked the call
664
     for most of these, it was the name of the channel that parked the call
618
     (the 'Parker'). There is no longer a header that provides this channel name,
665
     (the 'Parker'). There is no longer a header that provides this channel name,
619
     however the 'ParkerDialString' will contain a dialstring to redial the
666
     however the 'ParkerDialString' will contain a dialstring to redial the
620
     device that parked the call.
667
     device that parked the call.
621
   - On UnParkedCall events, the 'From' header would instead represent the
668
   - On UnParkedCall events, the 'From' header would instead represent the
622
     channel responsible for retrieving the parkee. It receives a channel
669
     channel responsible for retrieving the parkee. It receives a channel
623
     snapshot labeled 'Retriever'. The 'from' field is is replaced with
670
     snapshot labeled 'Retriever'. The 'from' field is is replaced with
624
     'RetrieverChannel'.
671
     'RetrieverChannel'.
625
   - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
672
   - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
626

    
   
673

   
627
 - The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
674
 - The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
628
   fashion has changed the field names 'StartExten' and 'StopExten' to
675
   fashion has changed the field names 'StartExten' and 'StopExten' to
629
   'StartSpace' and 'StopSpace' respectively.
676
   'StartSpace' and 'StopSpace' respectively.
630

    
   
677

   
631
 - The AMI 'Status' response event to the AMI Status action replaces the
678
 - The AMI 'Status' response event to the AMI Status action replaces the
632
   'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
679
   'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
633
   indicate what bridge the channel is currently in.
680
   indicate what bridge the channel is currently in.
634

    
   
681

   
635
CDR (Call Detail Records)
682
CDR (Call Detail Records)
636
 - Significant changes have been made to the behavior of CDRs. The CDR engine
683
 - Significant changes have been made to the behavior of CDRs. The CDR engine
637
   was effectively rewritten and built on the Stasis message bus. For a full
684
   was effectively rewritten and built on the Stasis message bus. For a full
638
   definition of CDR behavior in Asterisk 12, please read the specification
685
   definition of CDR behavior in Asterisk 12, please read the specification
639
   on the Asterisk wiki (wiki.asterisk.org).
686
   on the Asterisk wiki (wiki.asterisk.org).
640

    
   
687

   
641
 - CDRs will now be created between all participants in a bridge. For each
688
 - CDRs will now be created between all participants in a bridge. For each
642
   pair of channels in a bridge, a CDR is created to represent the path of
689
   pair of channels in a bridge, a CDR is created to represent the path of
643
   communication between those two endpoints. This lets an end user choose who
690
   communication between those two endpoints. This lets an end user choose who
644
   to bill for what during bridge operations with multiple parties.
691
   to bill for what during bridge operations with multiple parties.
645

    
   
692

   
646
 - The duration, billsec, start, answer, and end times now reflect the times
693
 - The duration, billsec, start, answer, and end times now reflect the times
647
   associated with the current CDR for the channel, as opposed to a cumulative
694
   associated with the current CDR for the channel, as opposed to a cumulative
648
   measurement of all CDRs for that channel.
695
   measurement of all CDRs for that channel.
649

    
   
696

   
650
 - CDR backends can no longer be unloaded while billing data is in flight. This
697
 - CDR backends can no longer be unloaded while billing data is in flight. This
651
   helps to prevent loss of billing data during restarts and shutdowns.
698
   helps to prevent loss of billing data during restarts and shutdowns.
652

    
   
699

   
653
CEL:
700
CEL:
654
 - The Uniqueid field for a channel is now a stable identifier, and will not
701
 - The Uniqueid field for a channel is now a stable identifier, and will not
655
   change due to transfers, parking, etc.
702
   change due to transfers, parking, etc.
656

    
   
703

   
657
 - CEL has undergone significant rework in Asterisk 12, and is now built on the
704
 - CEL has undergone significant rework in Asterisk 12, and is now built on the
658
   Stasis message bus. Please see the specification for CEL on the Asterisk
705
   Stasis message bus. Please see the specification for CEL on the Asterisk
659
   wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
706
   wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
660
   information. A summary of the affected events is below:
707
   information. A summary of the affected events is below:
661
   - BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
708
   - BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
662
     CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
709
     CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
663
     events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT.
710
     events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT.
664
   - BLINDTRANSFER/ATTENDEDTRANSFER events now report the peer as NULL and
711
   - BLINDTRANSFER/ATTENDEDTRANSFER events now report the peer as NULL and
665
     additional information in the extra string field.
712
     additional information in the extra string field.
666

    
   
713

   
667
Dialplan Functions:
714
Dialplan Functions:
668

    
   
715

   
669
 - Certain dialplan functions have been marked as 'dangerous', and may only be
716
 - Certain dialplan functions have been marked as 'dangerous', and may only be
670
   executed from the dialplan. Execution from extenal sources (AMI's GetVar and
717
   executed from the dialplan. Execution from extenal sources (AMI's GetVar and
671
   SetVar actions; etc.) may be inhibited by setting live_dangerously in the
718
   SetVar actions; etc.) may be inhibited by setting live_dangerously in the
672
   [options] section of asterisk.conf to no. SHELL(), channel locking, and
719
   [options] section of asterisk.conf to no. SHELL(), channel locking, and
673
   direct file read/write functions are marked as dangerous. DB_DELETE() and
720
   direct file read/write functions are marked as dangerous. DB_DELETE() and
674
   REALTIME_DESTROY() are marked as dangerous for reads, but can now safely
721
   REALTIME_DESTROY() are marked as dangerous for reads, but can now safely
675
   accept writes (which ignore the provided value).
722
   accept writes (which ignore the provided value).
676
 - The default value for live_dangerously was changed from yes (in Asterisk 11
723
 - The default value for live_dangerously was changed from yes (in Asterisk 11
677
   and earlier) to no (in Asterisk 12 and greater).
724
   and earlier) to no (in Asterisk 12 and greater).
678

    
   
725

   
679
Dialplan:
726
Dialplan:
680
 - All channel and global variable names are evaluated in a case-sensitive
727
 - All channel and global variable names are evaluated in a case-sensitive
681
   manner. In previous versions of Asterisk, variables created and evaluated in
728
   manner. In previous versions of Asterisk, variables created and evaluated in
682
   the dialplan were evaluated case-insensitively, but built-in variables and
729
   the dialplan were evaluated case-insensitively, but built-in variables and
683
   variable evaluation done internally within Asterisk was done
730
   variable evaluation done internally within Asterisk was done
684
   case-sensitively.
731
   case-sensitively.
685

    
   
732

   
686
 - Asterisk has always had code to ignore dash '-' characters that are not
733
 - Asterisk has always had code to ignore dash '-' characters that are not
687
   part of a character set in the dialplan extensions.  The code now
734
   part of a character set in the dialplan extensions.  The code now
688
   consistently ignores these characters when matching dialplan extensions.
735
   consistently ignores these characters when matching dialplan extensions.
689

    
   
736

   
690
 - BRIDGE_FEATURES channel variable is now casesensitive for feature letter
737
 - BRIDGE_FEATURES channel variable is now casesensitive for feature letter
691
   codes. Uppercase variants apply them to the calling party while lowercase
738
   codes. Uppercase variants apply them to the calling party while lowercase
692
   variants apply them to the called party.
739
   variants apply them to the called party.
693

    
   
740

   
694
Features:
741
Features:
695
 - The features.conf [applicationmap] <FeatureName>  ActivatedBy option is
742
 - The features.conf [applicationmap] <FeatureName>  ActivatedBy option is
696
   no longer honored.  The feature is always activated by the channel that has
743
   no longer honored.  The feature is always activated by the channel that has
697
   DYNAMIC_FEATURES defined on it when it enters the bridge. Use predial to set
744
   DYNAMIC_FEATURES defined on it when it enters the bridge. Use predial to set
698
   different values of DYNAMIC_FEATURES on the channels
745
   different values of DYNAMIC_FEATURES on the channels
699

    
   
746

   
700
 - Executing a dynamic feature on the bridge peer in a multi-party bridge will
747
 - Executing a dynamic feature on the bridge peer in a multi-party bridge will
701
   execute it on all peers of the activating channel.
748
   execute it on all peers of the activating channel.
702

    
   
749

   
703
 - There is no longer an explicit 'features reload' CLI command. Features can
750
 - There is no longer an explicit 'features reload' CLI command. Features can
704
   still be reloaded using 'module reload features'.
751
   still be reloaded using 'module reload features'.
705

    
   
752

   
706
 - It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
753
 - It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
707
   features.c for atxferdropcall=no to work properly. This option now just
754
   features.c for atxferdropcall=no to work properly. This option now just
708
   works.
755
   works.
709

    
   
756

   
710
Parking:
757
Parking:
711
 - Parking has been extracted from the Asterisk core as a loadable module,
758
 - Parking has been extracted from the Asterisk core as a loadable module,
712
   res_parking.
759
   res_parking.
713

    
   
760

   
714
 - Configuration is found in res_parking.conf. It is no longer supported in
761
 - Configuration is found in res_parking.conf. It is no longer supported in
715
   features.conf
762
   features.conf
716

    
   
763

   
717
 - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications 
764
 - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications 
718
   have been modified significantly. See the application documents for 
765
   have been modified significantly. See the application documents for 
719
   specific details.
766
   specific details.
720

    
   
767

   
721
 - Numerous changes to Parking related applications, AMI and CLI commands and
768
 - Numerous changes to Parking related applications, AMI and CLI commands and
722
   internal inter-workings  have been made. Please read the CHANGES file for 
769
   internal inter-workings  have been made. Please read the CHANGES file for 
723
   the detailed list.
770
   the detailed list.
724

    
   
771

   
725
Security Events Framework:
772
Security Events Framework:
726
 - Security Event timestamps now use ISO 8601 formatted date/time instead of
773
 - Security Event timestamps now use ISO 8601 formatted date/time instead of
727
   the "seconds-microseconds" format that it was using previously.
774
   the "seconds-microseconds" format that it was using previously.
728

    
   
775

   
729
AGENT:
776
AGENT:
730
 - The password option has been disabled, as the AgentLogin application no
777
 - The password option has been disabled, as the AgentLogin application no
731
   longer provides authentication.
778
   longer provides authentication.
732

    
   
779

   
733
AUDIOHOOK_INHERIT:
780
AUDIOHOOK_INHERIT:
734
 - Due to changes in the Asterisk core, this function is no longer needed to
781
 - Due to changes in the Asterisk core, this function is no longer needed to
735
   preserve a MixMonitor on a channel during transfer operations and dialplan
782
   preserve a MixMonitor on a channel during transfer operations and dialplan
736
   execution. It is effectively obsolete.
783
   execution. It is effectively obsolete.
737

    
   
784

   
738
CDR: (function)
785
CDR: (function)
739
 - The 'amaflags' and 'accountcode' attributes for the CDR function are
786
 - The 'amaflags' and 'accountcode' attributes for the CDR function are
740
   deprecated. Use the CHANNEL function instead to access these attributes.
787
   deprecated. Use the CHANNEL function instead to access these attributes.
741

    
   
788

   
742
 - The 'l' option has been removed. When reading a CDR attribute, the most
789
 - The 'l' option has been removed. When reading a CDR attribute, the most
743
   recent record is always used. When writing a CDR attribute, all non-finalized
790
   recent record is always used. When writing a CDR attribute, all non-finalized
744
   CDRs are updated.
791
   CDRs are updated.
745

    
   
792

   
746
 - The 'r' option has been removed, for the same reason as the 'l' option.
793
 - The 'r' option has been removed, for the same reason as the 'l' option.
747

    
   
794

   
748
 - The 's' option has been removed, as LOCKED semantics no longer exist in the
795
 - The 's' option has been removed, as LOCKED semantics no longer exist in the
749
   CDR engine.
796
   CDR engine.
750

    
   
797

   
751
VMCOUNT:
798
VMCOUNT:
752
 - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
799
 - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
753
   system as mailbox@context.  The rest of the system cannot add @default
800
   system as mailbox@context.  The rest of the system cannot add @default
754
   to mailbox identifiers for app_voicemail that do not specify a context
801
   to mailbox identifiers for app_voicemail that do not specify a context
755
   any longer.  It is a mailbox identifier format that should only be
802
   any longer.  It is a mailbox identifier format that should only be
756
   interpreted by app_voicemail.
803
   interpreted by app_voicemail.
757

    
   
804

   
758
res_rtp_asterisk:
805
res_rtp_asterisk:
759
 - ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable
806
 - ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable
760
   them, an Asterisk-specific version of PJSIP needs to be installed.
807
   them, an Asterisk-specific version of PJSIP needs to be installed.
761
   Tarballs are available from https://github.com/asterisk/pjproject/tags/.
808
   Tarballs are available from https://github.com/asterisk/pjproject/tags/.
762

    
   
809

   
763

    
   
810

   
764
===========================================================
811
===========================================================
765
===========================================================
812
===========================================================
/branches/12/apps/app_dial.c
Diff Revision 3 Diff Revision 4
 
/branches/12/apps/app_followme.c
Diff Revision 3 Diff Revision 4
 
/branches/12/apps/app_queue.c
Diff Revision 3 Diff Revision 4
 
/branches/12/include/asterisk/bridge_channel.h
Diff Revision 3 Diff Revision 4 - File Reverted
 
/branches/12/include/asterisk/channel.h
Diff Revision 3 Diff Revision 4
 
/branches/12/main/bridge.c
Diff Revision 3 Diff Revision 4
 
/branches/12/main/bridge_basic.c
Diff Revision 3 Diff Revision 4
 
/branches/12/main/bridge_channel.c
Diff Revision 3 Diff Revision 4 - File Reverted
 
/branches/12/main/cel.c
Diff Revision 3 Diff Revision 4
 
/branches/12/main/channel.c
Diff Revision 3 Diff Revision 4
 
/branches/12/main/core_unreal.c
Diff Revision 3 Diff Revision 4
 
/branches/12/main/dial.c
Diff Revision 3 Diff Revision 4
 
/branches/12/main/pbx.c
Diff Revision 3 Diff Revision 4
 
/branches/12/res/parking/parking_bridge_features.c
Diff Revision 3 Diff Revision 4
 
  1. /branches/12/UPGRADE.txt: Loading...
  2. /branches/12/apps/app_dial.c: Loading...
  3. /branches/12/apps/app_followme.c: Loading...
  4. /branches/12/apps/app_queue.c: Loading...
  5. /branches/12/include/asterisk/bridge_channel.h: Loading...
  6. /branches/12/include/asterisk/channel.h: Loading...
  7. /branches/12/main/bridge.c: Loading...
  8. /branches/12/main/bridge_basic.c: Loading...
  9. /branches/12/main/bridge_channel.c: Loading...
  10. /branches/12/main/cel.c: Loading...
  11. /branches/12/main/channel.c: Loading...
  12. /branches/12/main/core_unreal.c: Loading...
  13. /branches/12/main/dial.c: Loading...
  14. /branches/12/main/pbx.c: Loading...
  15. /branches/12/res/parking/parking_bridge_features.c: Loading...

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