Review Board 1.7.16


WebRTC: Add SHA-256 support to chan_pjsip and add option to make it answer using the offer media transport.

Review Request #3686 - Created June 28, 2014 and submitted

Joshua Colp
Reviewers
asterisk-dev
Asterisk
This change requires the work for 11 but the merge up is pretty much clean, so this review only includes the PJSIP parts.

SHA-256 support has been added as has two options. One option controls the outgoing transport in SDP offers and the other controls the transport in SDP answers.
Calling.
/branches/12/UPGRADE.txt
Revision 417661 New Change
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.0 to 12.4.0:
24
From 12.3.0 to 12.4.0:
25

    
   
25

   
26
 - The safe_asterisk script was previously not installed on top of an existing
26
 - The safe_asterisk script was previously not installed on top of an existing
27
   version. This caused bug-fixes in that script not to be deployed. If your
27
   version. This caused bug-fixes in that script not to be deployed. If your
28
   safe_asterisk script is customized, be sure to keep your changes. Custom
28
   safe_asterisk script is customized, be sure to keep your changes. Custom
29
   values for variables should be created in *.sh file(s) inside
29
   values for variables should be created in *.sh file(s) inside
30
   ASTETCDIR/startup.d/. See ASTERISK-21965.
30
   ASTETCDIR/startup.d/. See ASTERISK-21965.
31

    
   
31

   
32
 - Changed a log message in safe_asterisk and the $NOTIFY mail subject. If
32
 - Changed a log message in safe_asterisk and the $NOTIFY mail subject. If
33
   you use tools to parse either of them, update your parse functions
33
   you use tools to parse either of them, update your parse functions
34
   accordingly. The changed strings are:
34
   accordingly. The changed strings are:
35
   - "Exited on signal $EXITSIGNAL" => "Asterisk exited on signal $EXITSIGNAL."
35
   - "Exited on signal $EXITSIGNAL" => "Asterisk exited on signal $EXITSIGNAL."
36
   - "Asterisk Died" => "Asterisk on $MACHINE died (sig $EXITSIGNAL)"
36
   - "Asterisk Died" => "Asterisk on $MACHINE died (sig $EXITSIGNAL)"
37

    
   
37

   
38
 - Added a compatibility option for ari, chan_sip, and chan_pjsip
38
 - Added a compatibility option for ari, chan_sip, and chan_pjsip
39
   'websocket_write_timeout'. When a websocket connection exists where Asterisk
39
   'websocket_write_timeout'. When a websocket connection exists where Asterisk
40
   writes a substantial amount of data to the connected client, and the connected
40
   writes a substantial amount of data to the connected client, and the connected
41
   client is slow to process the received data, the socket may be disconnected.
41
   client is slow to process the received data, the socket may be disconnected.
42
   In such cases, it may be necessary to adjust this value. Default is 100 ms.
42
   In such cases, it may be necessary to adjust this value. Default is 100 ms.
43

    
   
43

   

    
   
44
 - Added a 'force_avp' option to chan_pjsip which will force the usage of

    
   
45
   'RTP/AVP', 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' as the media transport type

    
   
46
   in SDP offers depending on settings, even when DTLS is used for media

    
   
47
   encryption.

    
   
48

   

    
   
49
 - Added a 'media_use_received_transport' option to chan_pjsip which will

    
   
50
   cause the SDP answer to use the media transport as received in the SDP

    
   
51
   offer.

    
   
52

   
44
From 12.3.0 to 12.3.1:
53
From 12.3.0 to 12.3.1:
45

    
   
54

   
46
 - MixMonitor AMI actions now require users to have authorization classes.
55
 - MixMonitor AMI actions now require users to have authorization classes.
47
   * MixMonitor - system
56
   * MixMonitor - system
48
   * MixMonitorMute - call or system
57
   * MixMonitorMute - call or system
49
   * StopMixMonitor - call or system
58
   * StopMixMonitor - call or system
50

    
   
59

   
51
 - Added http.conf session_inactivity timer option to close HTTP connections
60
 - Added http.conf session_inactivity timer option to close HTTP connections
52
   that aren't doing anything.
61
   that aren't doing anything.
53

    
   
62

   
54
 - Removed the undocumented manager.conf block-sockets option.  It interferes with
63
 - Removed the undocumented manager.conf block-sockets option.  It interferes with
55
   TCP/TLS inactivity timeouts.
64
   TCP/TLS inactivity timeouts.
56

    
   
65

   
57
From 12.2.0 to 12.3.0:
66
From 12.2.0 to 12.3.0:
58

    
   
67

   
59
 - The asterisk command line -I option and the asterisk.conf internal_timing
68
 - The asterisk command line -I option and the asterisk.conf internal_timing
60
   option are removed and always enabled if any timing module is loaded.
69
   option are removed and always enabled if any timing module is loaded.
61

    
   
70

   
62
AMI:
71
AMI:
63
 - The AMI version has been changed from 2.2.0 to 2.3.0. This is to reflect
72
 - The AMI version has been changed from 2.2.0 to 2.3.0. This is to reflect
64
   the backwards compatible changes listed in the CHANGES file.
73
   the backwards compatible changes listed in the CHANGES file.
65

    
   
74

   
66
ARI:
75
ARI:
67
 - The ARI version has been changed from 1.2.0 to 1.3.0. This is to reflect
76
 - The ARI version has been changed from 1.2.0 to 1.3.0. This is to reflect
68
   the backwards compatible changes listed in the CHANGES file.
77
   the backwards compatible changes listed in the CHANGES file.
69

    
   
78

   
70
Build Options:
79
Build Options:
71
 - Added a new Compiler Flag, REF_DEBUG. When enabled, reference counted
80
 - Added a new Compiler Flag, REF_DEBUG. When enabled, reference counted
72
   objects will emit additional debug information to the refs log file located
81
   objects will emit additional debug information to the refs log file located
73
   in the standard Asterisk log file directory. This log file is useful in
82
   in the standard Asterisk log file directory. This log file is useful in
74
   tracking down object leaks and other reference counting issues. Prior to
83
   tracking down object leaks and other reference counting issues. Prior to
75
   this version, this option was only available by modifying the source code
84
   this version, this option was only available by modifying the source code
76
   directly. This change also includes a new script, refcounter.py, in the
85
   directly. This change also includes a new script, refcounter.py, in the
77
   contrib folder that will process the refs log file.
86
   contrib folder that will process the refs log file.
78

    
   
87

   
79
chan_sip:
88
chan_sip:
80
 - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
89
 - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
81

    
   
90

   
82
From 12.1.0 to 12.2.0:
91
From 12.1.0 to 12.2.0:
83

    
   
92

   
84
AMI:
93
AMI:
85
 - The AMI version has been changed from 2.1.0 to 2.2.0. This is to reflect
94
 - The AMI version has been changed from 2.1.0 to 2.2.0. This is to reflect
86
   the backwards compatible changes listed in the CHANGES file.
95
   the backwards compatible changes listed in the CHANGES file.
87

    
   
96

   
88
ARI:
97
ARI:
89
 - The ARI version has been changed from 1.1.0 to 1.2.0. This is to reflect
98
 - The ARI version has been changed from 1.1.0 to 1.2.0. This is to reflect
90
   the backwards compatible changes listed in the CHANGES file.
99
   the backwards compatible changes listed in the CHANGES file.
91

    
   
100

   
92
 - A bug fix in bridge creation has caused a behavioural change in how
101
 - A bug fix in bridge creation has caused a behavioural change in how
93
   subscriptions are created for bridges. A bridge created through ARI, does
102
   subscriptions are created for bridges. A bridge created through ARI, does
94
   not, by itself, have a subscription created for any particular Stasis
103
   not, by itself, have a subscription created for any particular Stasis
95
   application. When a channel in a Stasis application joins a bridge, an
104
   application. When a channel in a Stasis application joins a bridge, an
96
   implicit event subscription is created for that bridge as well. Previously,
105
   implicit event subscription is created for that bridge as well. Previously,
97
   when a channel left such a bridge, the subscription was leaked; this allowed
106
   when a channel left such a bridge, the subscription was leaked; this allowed
98
   for later bridge events to continue to be pushed to the subscribed
107
   for later bridge events to continue to be pushed to the subscribed
99
   applications. That leak has been fixed; as a result, bridge events that were
108
   applications. That leak has been fixed; as a result, bridge events that were
100
   delivered after a channel left the bridge are no longer delivered. An
109
   delivered after a channel left the bridge are no longer delivered. An
101
   application must subscribe to a bridge through the applications resource if
110
   application must subscribe to a bridge through the applications resource if
102
   it wishes to receive all events related to a bridge.
111
   it wishes to receive all events related to a bridge.
103

    
   
112

   
104
ConfBridge:
113
ConfBridge:
105
 - The sound_place_into_conference sound used in Confbridge is now deprecated
114
 - The sound_place_into_conference sound used in Confbridge is now deprecated
106
   and is no longer functional since it has been broken since its inception
115
   and is no longer functional since it has been broken since its inception
107
   and the fix involved using a different method to achieve the same goal. The
116
   and the fix involved using a different method to achieve the same goal. The
108
   new method to achieve this functionality is by using sound_begin to play
117
   new method to achieve this functionality is by using sound_begin to play
109
   a sound to the conference when waitmarked users are moved into the
118
   a sound to the conference when waitmarked users are moved into the
110
   conference.
119
   conference.
111

    
   
120

   
112
IAX2:
121
IAX2:
113
 - When communicating with a peer on an Asterisk 1.4 or earlier system, the
122
 - When communicating with a peer on an Asterisk 1.4 or earlier system, the
114
   chan_iax2 parameter 'connectedline' must be set to "no" in iax.conf. This
123
   chan_iax2 parameter 'connectedline' must be set to "no" in iax.conf. This
115
   prevents an incompatible connected line frame from an Astersik 1.8 or later
124
   prevents an incompatible connected line frame from an Astersik 1.8 or later
116
   system from causing a hangup in an Asterisk 1.4 or earlier system. Note that
125
   system from causing a hangup in an Asterisk 1.4 or earlier system. Note that
117
   this particular incompatibility has always existed between 1.4 and 1.8 and
126
   this particular incompatibility has always existed between 1.4 and 1.8 and
118
   later versions; this upgrade note is simply informing users of its existance.
127
   later versions; this upgrade note is simply informing users of its existance.
119

    
   
128

   
120
ODBC:
129
ODBC:
121
- A compatibility setting, allow_empty_string_in_nontext, has been added to
130
- A compatibility setting, allow_empty_string_in_nontext, has been added to
122
  res_odbc.conf. When enabled (default behavior), empty column values are
131
  res_odbc.conf. When enabled (default behavior), empty column values are
123
  stored as empty strings during realtime updates. Disabling this option
132
  stored as empty strings during realtime updates. Disabling this option
124
  causes empty column values to be stored as NULLs for non-text columns.
133
  causes empty column values to be stored as NULLs for non-text columns.
125

    
   
134

   
126
  Disable it for PostgreSQL backends in order to avoid errors caused by
135
  Disable it for PostgreSQL backends in order to avoid errors caused by
127
  updating integer columns with an empty string instead of NULL
136
  updating integer columns with an empty string instead of NULL
128
  (sippeers, sipregs, ..).
137
  (sippeers, sipregs, ..).
129

    
   
138

   
130
PJSIP:
139
PJSIP:
131
 - The PJSIP registrar now stores the contents of the User-Agent header of
140
 - The PJSIP registrar now stores the contents of the User-Agent header of
132
   incoming REGISTER requests for each contact that is registered. If using
141
   incoming REGISTER requests for each contact that is registered. If using
133
   realtime for PJSIP contacts, this means that the schema has been updated to
142
   realtime for PJSIP contacts, this means that the schema has been updated to
134
   add a user_agent column. An alembic revision has been added to facilitate
143
   add a user_agent column. An alembic revision has been added to facilitate
135
   this update.
144
   this update.
136
 
145
 
137
 - PJSIP endpoints now have a "message_context" option that can be used to
146
 - PJSIP endpoints now have a "message_context" option that can be used to
138
   determine where to route incoming MESSAGE requests from the endpoint.
147
   determine where to route incoming MESSAGE requests from the endpoint.
139

    
   
148

   
140
Realtime Configuration:
149
Realtime Configuration:
141
 - PJSIP endpoint columns 'tos_audio' and 'tos_video' have been changed from
150
 - PJSIP endpoint columns 'tos_audio' and 'tos_video' have been changed from
142
   yes/no enumerators to string values. 'cos_audio' and 'cos_video' have been
151
   yes/no enumerators to string values. 'cos_audio' and 'cos_video' have been
143
   changed from yes/no enumerators to integer values. PJSIP transport column
152
   changed from yes/no enumerators to integer values. PJSIP transport column
144
   'tos' has been changed from a yes/no enumerator to a string value. 'cos' has
153
   'tos' has been changed from a yes/no enumerator to a string value. 'cos' has
145
   been changed from a yes/no enumerator to an integer value.
154
   been changed from a yes/no enumerator to an integer value.
146

    
   
155

   
147
 - The 'queues' and 'queue_members' realtime tables have been added to the
156
 - The 'queues' and 'queue_members' realtime tables have been added to the
148
   config Alembic scripts.
157
   config Alembic scripts.
149

    
   
158

   
150
 - A new set of Alembic scripts has been added for CDR tables. This will create
159
 - A new set of Alembic scripts has been added for CDR tables. This will create
151
   a 'cdr' table with the default schema that Asterisk expects.
160
   a 'cdr' table with the default schema that Asterisk expects.
152

    
   
161

   
153
From 12.0.0 to 12.1.0:
162
From 12.0.0 to 12.1.0:
154

    
   
163

   
155
- The per console verbose level feature as previously implemented caused a
164
- The per console verbose level feature as previously implemented caused a
156
  large performance penalty.  The fix required some minor incompatibilities
165
  large performance penalty.  The fix required some minor incompatibilities
157
  if the new rasterisk is used to connect to an earlier version.  If the new
166
  if the new rasterisk is used to connect to an earlier version.  If the new
158
  rasterisk connects to an older Asterisk version then the root console verbose
167
  rasterisk connects to an older Asterisk version then the root console verbose
159
  level is always affected by the "core set verbose" command of the remote
168
  level is always affected by the "core set verbose" command of the remote
160
  console even though it may appear to only affect the current console.  If
169
  console even though it may appear to only affect the current console.  If
161
  an older version of rasterisk connects to the new version then the
170
  an older version of rasterisk connects to the new version then the
162
  "core set verbose" command will have no effect.
171
  "core set verbose" command will have no effect.
163

    
   
172

   
164
ARI:
173
ARI:
165
 - The ARI version has been changed from 1.0.0 to 1.1.0. This is to reflect
174
 - The ARI version has been changed from 1.0.0 to 1.1.0. This is to reflect
166
   the backwards compatible changes listed below.
175
   the backwards compatible changes listed below.
167

    
   
176

   
168
 - Added a new ARI resource 'mailboxes' which allows the creation and
177
 - Added a new ARI resource 'mailboxes' which allows the creation and
169
   modification of mailboxes managed by external MWI. Modules res_mwi_external
178
   modification of mailboxes managed by external MWI. Modules res_mwi_external
170
   and res_stasis_mailbox must be enabled to use this resource.
179
   and res_stasis_mailbox must be enabled to use this resource.
171

    
   
180

   
172
 - Added new events for externally initiated transfers. The event
181
 - Added new events for externally initiated transfers. The event
173
   BridgeBlindTransfer is now raised when a channel initiates a blind transfer
182
   BridgeBlindTransfer is now raised when a channel initiates a blind transfer
174
   of a bridge in the ARI controlled application to the dialplan; the
183
   of a bridge in the ARI controlled application to the dialplan; the
175
   BridgeAttendedTransfer event is raised when a channel initiates an
184
   BridgeAttendedTransfer event is raised when a channel initiates an
176
   attended transfer of a bridge in the ARI controlled application to the
185
   attended transfer of a bridge in the ARI controlled application to the
177
   dialplan.
186
   dialplan.
178

    
   
187

   
179
 - Channel variables may now be specified as a body parameter to the
188
 - Channel variables may now be specified as a body parameter to the
180
   POST /channels operation. The 'variables' key in the JSON is interpreted
189
   POST /channels operation. The 'variables' key in the JSON is interpreted
181
   as a sequence of key/value pairs that will be added to the created channel
190
   as a sequence of key/value pairs that will be added to the created channel
182
   as channel variables. Other parameters in the JSON body are treated as
191
   as channel variables. Other parameters in the JSON body are treated as
183
   query parameters of the same name.
192
   query parameters of the same name.
184

    
   
193

   
185
 - Subscribing to the same device state twice now responds with success
194
 - Subscribing to the same device state twice now responds with success
186
   instead of returning error on the second attempt.
195
   instead of returning error on the second attempt.
187

    
   
196

   
188
AMI:
197
AMI:
189
 - The AMI version has been changed from 2.0.0 to 2.1.0. This is to reflect
198
 - The AMI version has been changed from 2.0.0 to 2.1.0. This is to reflect
190
   the backwards compatible changes listed below.
199
   the backwards compatible changes listed below.
191

    
   
200

   
192
 - The DialStatus field in the DialEnd event can now have additional values.
201
 - The DialStatus field in the DialEnd event can now have additional values.
193
   This includes ABORT, CONTINUE, and GOTO.
202
   This includes ABORT, CONTINUE, and GOTO.
194

    
   
203

   
195
 - The res_mwi_external_ami module can, if loaded, provide additional AMI
204
 - The res_mwi_external_ami module can, if loaded, provide additional AMI
196
   actions and events that convey MWI state within Asterisk. This includes
205
   actions and events that convey MWI state within Asterisk. This includes
197
   the MWIGet, MWIUpdate, and MWIDelete actions, as well as the MWIGet and
206
   the MWIGet, MWIUpdate, and MWIDelete actions, as well as the MWIGet and
198
   MWIGetComplete events that occur in response to an MWIGet action.
207
   MWIGetComplete events that occur in response to an MWIGet action.
199

    
   
208

   
200
 - AMI now contains a new class authorization, 'security'. This is used with
209
 - AMI now contains a new class authorization, 'security'. This is used with
201
   the following new events: FailedACL, InvalidAccountID, SessionLimit,
210
   the following new events: FailedACL, InvalidAccountID, SessionLimit,
202
   MemoryLimit, LoadAverageLimit, RequestNotAllowed, AuthMethodNotAllowed,
211
   MemoryLimit, LoadAverageLimit, RequestNotAllowed, AuthMethodNotAllowed,
203
   RequestBadFormat, SuccessfulAuth, UnexpectedAddress, ChallengeResponseFailed,
212
   RequestBadFormat, SuccessfulAuth, UnexpectedAddress, ChallengeResponseFailed,
204
   InvalidPassword, ChallengeSent, and InvalidTransport.
213
   InvalidPassword, ChallengeSent, and InvalidTransport.
205

    
   
214

   
206
 - Bridge related events now have two additional fields: BridgeName and
215
 - Bridge related events now have two additional fields: BridgeName and
207
   BridgeCreator. BridgeName is a descriptive name for the bridge;
216
   BridgeCreator. BridgeName is a descriptive name for the bridge;
208
   BridgeCreator is the name of the entity that created the bridge. This
217
   BridgeCreator is the name of the entity that created the bridge. This
209
   affects the following events: ConfbridgeStart, ConfbridgeEnd,
218
   affects the following events: ConfbridgeStart, ConfbridgeEnd,
210
   ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
219
   ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
211
   ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
220
   ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
212
   AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
221
   AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
213

    
   
222

   
214
CDRs:
223
CDRs:
215
 - The "endbeforehexten" setting now defaults to "yes", instead of "no".
224
 - The "endbeforehexten" setting now defaults to "yes", instead of "no".
216
   When set to "no", yhis setting will cause a new CDR to be generated when a
225
   When set to "no", yhis setting will cause a new CDR to be generated when a
217
   channel enters into hangup logic (either the 'h' extension or a hangup
226
   channel enters into hangup logic (either the 'h' extension or a hangup
218
   handler subroutine). In general, this is not the preferred default: this
227
   handler subroutine). In general, this is not the preferred default: this
219
   causes extra CDRs to be generated for a channel in many common dialplans.
228
   causes extra CDRs to be generated for a channel in many common dialplans.
220

    
   
229

   
221
CLI commands:
230
CLI commands:
222
 - "core show settings" now lists the current console verbosity in addition
231
 - "core show settings" now lists the current console verbosity in addition
223
   to the root console verbosity.
232
   to the root console verbosity.
224

    
   
233

   
225
 - "core set verbose" has not been able to support the by module verbose
234
 - "core set verbose" has not been able to support the by module verbose
226
   logging levels since verbose logging levels were made per console.  That
235
   logging levels since verbose logging levels were made per console.  That
227
   syntax is now removed and a silence option added in its place.
236
   syntax is now removed and a silence option added in its place.
228

    
   
237

   
229
Configuration Files:
238
Configuration Files:
230
 - The 'verbose' setting in logger.conf still takes an optional argument,
239
 - The 'verbose' setting in logger.conf still takes an optional argument,
231
   specifying the verbosity level for each logging destination.  However,
240
   specifying the verbosity level for each logging destination.  However,
232
   the default is now to once again follow the current root console level.
241
   the default is now to once again follow the current root console level.
233
   As a result, using the AMI Command action with "core set verbose" could
242
   As a result, using the AMI Command action with "core set verbose" could
234
   again set the root console verbose level and affect the verbose level
243
   again set the root console verbose level and affect the verbose level
235
   logged.
244
   logged.
236

    
   
245

   
237
 - res_fax now returns the correct rates for V.27ter (4800 or 9600 bit/s).
246
 - res_fax now returns the correct rates for V.27ter (4800 or 9600 bit/s).
238
   Because of this the default settings would not load, so the minrate (minimum
247
   Because of this the default settings would not load, so the minrate (minimum
239
   transmission rate) option in res_fax.conf was changed to default to 4800
248
   transmission rate) option in res_fax.conf was changed to default to 4800
240
   since that is the minimum rate for v.27 which is included in the default
249
   since that is the minimum rate for v.27 which is included in the default
241
   modem options.
250
   modem options.
242

    
   
251

   
243
Realtime Configuration:
252
Realtime Configuration:
244
 - WARNING: The database migration script that adds the 'extensions' table for
253
 - WARNING: The database migration script that adds the 'extensions' table for
245
   realtime had to be modified due to an error when installing for MySQL.  The
254
   realtime had to be modified due to an error when installing for MySQL.  The
246
   'extensions' table's 'id' column was changed to be a primary key.  This could
255
   'extensions' table's 'id' column was changed to be a primary key.  This could
247
   potentially cause a migration problem.  If so, it may be necessary to
256
   potentially cause a migration problem.  If so, it may be necessary to
248
   manually alter the affected table/column to bring it back in line with the
257
   manually alter the affected table/column to bring it back in line with the
249
   migration scripts.
258
   migration scripts.
250

    
   
259

   
251
 - New columns have been added to realtime tables for 'support_path' on
260
 - New columns have been added to realtime tables for 'support_path' on
252
   ps_registrations and ps_aors and for 'path' on ps_contacts for the new
261
   ps_registrations and ps_aors and for 'path' on ps_contacts for the new
253
   SIP Path support in chan_pjsip.
262
   SIP Path support in chan_pjsip.
254

    
   
263

   
255
 - The following new tables have been added for pjsip realtime: 'ps_systems',
264
 - The following new tables have been added for pjsip realtime: 'ps_systems',
256
   'ps_globals', 'ps_tranports', 'ps_registrations'.
265
   'ps_globals', 'ps_tranports', 'ps_registrations'.
257

    
   
266

   
258
 - The following columns were added to the 'ps_aors' realtime table:
267
 - The following columns were added to the 'ps_aors' realtime table:
259
   'maximum_expiration', 'outbound_proxy', and 'support_path'.
268
   'maximum_expiration', 'outbound_proxy', and 'support_path'.
260

    
   
269

   
261
 - The following columns were added to the 'ps_contacts' realtime table:
270
 - The following columns were added to the 'ps_contacts' realtime table:
262
   'outbound_proxy' and 'path'.
271
   'outbound_proxy' and 'path'.
263

    
   
272

   
264
 - New columns have been added to the ps_endpoints realtime table for the
273
 - New columns have been added to the ps_endpoints realtime table for the
265
   'media_address', 'redirect_method' and 'set_var' options.  Also the
274
   'media_address', 'redirect_method' and 'set_var' options.  Also the
266
   'mwi_fromuser' column was renamed to 'mwi_from_user'.
275
   'mwi_fromuser' column was renamed to 'mwi_from_user'.
267

    
   
276

   
268
 - A new column was added to the 'ps_globals' realtime table for the 'debug'
277
 - A new column was added to the 'ps_globals' realtime table for the 'debug'
269
   option.
278
   option.
270

    
   
279

   
271
From 11 to 12:
280
From 11 to 12:
272
There are many significant architectural changes in Asterisk 12. It is
281
There are many significant architectural changes in Asterisk 12. It is
273
recommended that you not only read through this document for important
282
recommended that you not only read through this document for important
274
changes that affect an upgrade, but that you also read through the CHANGES
283
changes that affect an upgrade, but that you also read through the CHANGES
275
document in depth to better understand the new options available to you.
284
document in depth to better understand the new options available to you.
276

    
   
285

   
277
Additional information on the architectural changes made in Asterisk can be
286
Additional information on the architectural changes made in Asterisk can be
278
found on the Asterisk wiki (https://wiki.asterisk.org)
287
found on the Asterisk wiki (https://wiki.asterisk.org)
279

    
   
288

   
280
Of particular note, the following systems in Asterisk underwent significant
289
Of particular note, the following systems in Asterisk underwent significant
281
changes. Documentation for the changes and a specification for their
290
changes. Documentation for the changes and a specification for their
282
behavior in Asterisk 12 is also available on the Asterisk wiki.
291
behavior in Asterisk 12 is also available on the Asterisk wiki.
283
 - AMI: Many events were changed, and the semantics of channels and bridges
292
 - AMI: Many events were changed, and the semantics of channels and bridges
284
        were defined. In particular, how channels and bridges behave under
293
        were defined. In particular, how channels and bridges behave under
285
        transfer scenarios and situations involving multiple parties has
294
        transfer scenarios and situations involving multiple parties has
286
        changed significantly. See https://wiki.asterisk.org/wiki/x/dAFRAQ
295
        changed significantly. See https://wiki.asterisk.org/wiki/x/dAFRAQ
287
        for more information.
296
        for more information.
288
 - CDR: CDR logic was extracted from the many locations it existed in across
297
 - CDR: CDR logic was extracted from the many locations it existed in across
289
        Asterisk and implemented as a consumer of Stasis message bus events.
298
        Asterisk and implemented as a consumer of Stasis message bus events.
290
        As a result, consistency of records has improved significantly and the
299
        As a result, consistency of records has improved significantly and the
291
        behavior of CDRs in transfer scenarios has been defined in the CDR
300
        behavior of CDRs in transfer scenarios has been defined in the CDR
292
        specification. However, significant behavioral changes in CDRs resulted
301
        specification. However, significant behavioral changes in CDRs resulted
293
        from the transition. The most significant change is the addition of
302
        from the transition. The most significant change is the addition of
294
        CDR entries when a channel who is the Party A in a CDR leaves a bridge.
303
        CDR entries when a channel who is the Party A in a CDR leaves a bridge.
295
        See https://wiki.asterisk.org/wiki/x/pwpRAQ for more information.
304
        See https://wiki.asterisk.org/wiki/x/pwpRAQ for more information.
296
 - CEL: Much like CDRs, CEL was removed from the many locations it existed in
305
 - CEL: Much like CDRs, CEL was removed from the many locations it existed in
297
        across Asterisk and implemented as a consumer of Stasis message bus
306
        across Asterisk and implemented as a consumer of Stasis message bus
298
        events. It now closely follows the Bridging API model of channels and
307
        events. It now closely follows the Bridging API model of channels and
299
        bridges, and has a much closer consistency of conveyed events as AMI.
308
        bridges, and has a much closer consistency of conveyed events as AMI.
300
        For the changes in events, see https://wiki.asterisk.org/wiki/x/4ICLAQ.
309
        For the changes in events, see https://wiki.asterisk.org/wiki/x/4ICLAQ.
301

    
   
310

   
302
Build System:
311
Build System:
303
 - Removed the CHANNEL_TRACE development mode build option. Certain aspects of
312
 - Removed the CHANNEL_TRACE development mode build option. Certain aspects of
304
   the CHANNEL_TRACE build option were incompatible with the new bridging
313
   the CHANNEL_TRACE build option were incompatible with the new bridging
305
   architecture.
314
   architecture.
306

    
   
315

   
307
 - Asterisk now depends on libjansson, libuuid and optionally (but recommended)
316
 - Asterisk now depends on libjansson, libuuid and optionally (but recommended)
308
   libxslt and uriparser.
317
   libxslt and uriparser.
309

    
   
318

   
310
 - The new SIP stack and channel driver uses a particular version of PJSIP.
319
 - The new SIP stack and channel driver uses a particular version of PJSIP.
311
   Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
320
   Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
312
   configuring and installing PJSIP for use with Asterisk.
321
   configuring and installing PJSIP for use with Asterisk.
313

    
   
322

   
314
AgentLogin and chan_agent:
323
AgentLogin and chan_agent:
315
 - Along with AgentRequest, this application has been modified to be a
324
 - Along with AgentRequest, this application has been modified to be a
316
   replacement for chan_agent. The chan_agent module and the Agent channel
325
   replacement for chan_agent. The chan_agent module and the Agent channel
317
   driver have been removed from Asterisk, as the concept of a channel driver
326
   driver have been removed from Asterisk, as the concept of a channel driver
318
   proxying in front of another channel driver was incompatible with the new
327
   proxying in front of another channel driver was incompatible with the new
319
   architecture (and has had numerous problems through past versions of
328
   architecture (and has had numerous problems through past versions of
320
   Asterisk). The act of a channel calling the AgentLogin application places the
329
   Asterisk). The act of a channel calling the AgentLogin application places the
321
   channel into a pool of agents that can be requested by the AgentRequest
330
   channel into a pool of agents that can be requested by the AgentRequest
322
   application. Note that this application, as well as all other agent related
331
   application. Note that this application, as well as all other agent related
323
   functionality, is now provided by the app_agent_pool module.
332
   functionality, is now provided by the app_agent_pool module.
324

    
   
333

   
325
 - This application no longer performs agent authentication. If authentication
334
 - This application no longer performs agent authentication. If authentication
326
   is desired, the dialplan needs to perform this function using the
335
   is desired, the dialplan needs to perform this function using the
327
   Authenticate or VMAuthenticate application or through an AGI script before
336
   Authenticate or VMAuthenticate application or through an AGI script before
328
   running AgentLogin.
337
   running AgentLogin.
329

    
   
338

   
330
 - The agents.conf schema has changed. Rather than specifying agents on a
339
 - The agents.conf schema has changed. Rather than specifying agents on a
331
   single line in comma delineated fashion, each agent is defined in a separate
340
   single line in comma delineated fashion, each agent is defined in a separate
332
   context. This allows agents to use the power of context templates in their
341
   context. This allows agents to use the power of context templates in their
333
   definition.
342
   definition.
334

    
   
343

   
335
 - A number of parameters from agents.conf have been removed. This includes
344
 - A number of parameters from agents.conf have been removed. This includes
336
   maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
345
   maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
337
   urlprefix, and savecallsin. These options were obsoleted by the move from
346
   urlprefix, and savecallsin. These options were obsoleted by the move from
338
   a channel driver model to the bridging/application model provided by
347
   a channel driver model to the bridging/application model provided by
339
   app_agent_pool.
348
   app_agent_pool.
340

    
   
349

   
341
 - The AGENTUPDATECDR channel variable has also been removed, for the same
350
 - The AGENTUPDATECDR channel variable has also been removed, for the same
342
   reason as the updatecdr option.
351
   reason as the updatecdr option.
343

    
   
352

   
344
 - The endcall and enddtmf configuration options are removed.  Use the
353
 - The endcall and enddtmf configuration options are removed.  Use the
345
   dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
354
   dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
346
   channel before calling AgentLogin.
355
   channel before calling AgentLogin.
347

    
   
356

   
348
AgentMonitorOutgoing
357
AgentMonitorOutgoing
349
 - This application has been removed. It was a holdover from when
358
 - This application has been removed. It was a holdover from when
350
   AgentCallbackLogin was removed.
359
   AgentCallbackLogin was removed.
351

    
   
360

   
352
Answer
361
Answer
353
 - It is no longer possible to bypass updating the CDR when answering a
362
 - It is no longer possible to bypass updating the CDR when answering a
354
   channel. CDRs are based on the channel state and will be updated when
363
   channel. CDRs are based on the channel state and will be updated when
355
   the channel is Answered.
364
   the channel is Answered.
356

    
   
365

   
357
ControlPlayback
366
ControlPlayback
358
 - The channel variable CPLAYBACKSTATUS may now return the value
367
 - The channel variable CPLAYBACKSTATUS may now return the value
359
   'REMOTESTOPPED' when playback is stopped by an external entity.
368
   'REMOTESTOPPED' when playback is stopped by an external entity.
360

    
   
369

   
361
DISA
370
DISA
362
 - This application now has a dependency on the app_cdr module. It uses this
371
 - This application now has a dependency on the app_cdr module. It uses this
363
   module to hide the CDR created prior to execution of the DISA application.
372
   module to hide the CDR created prior to execution of the DISA application.
364

    
   
373

   
365
DumpChan:
374
DumpChan:
366
 - The output of DumpChan no longer includes the DirectBridge or IndirectBridge
375
 - The output of DumpChan no longer includes the DirectBridge or IndirectBridge
367
   fields. Instead, if a channel is in a bridge, it includes a BridgeID field
376
   fields. Instead, if a channel is in a bridge, it includes a BridgeID field
368
   containing the unique ID of the bridge that the channel happens to be in.
377
   containing the unique ID of the bridge that the channel happens to be in.
369

    
   
378

   
370
ForkCDR:
379
ForkCDR:
371
 - Nearly every parameter in ForkCDR has been updated and changed to reflect
380
 - Nearly every parameter in ForkCDR has been updated and changed to reflect
372
   the changes in CDRs. Please see the documentation for the ForkCDR
381
   the changes in CDRs. Please see the documentation for the ForkCDR
373
   application, as well as the CDR specification on the Asterisk wiki.
382
   application, as well as the CDR specification on the Asterisk wiki.
374

    
   
383

   
375
NoCDR:
384
NoCDR:
376
 - The NoCDR application has been deprecated. Please use the CDR_PROP function
385
 - The NoCDR application has been deprecated. Please use the CDR_PROP function
377
   to disable CDRs on a channel.
386
   to disable CDRs on a channel.
378

    
   
387

   
379
ParkAndAnnounce:
388
ParkAndAnnounce:
380
 - The app_parkandannounce module has been removed. The application
389
 - The app_parkandannounce module has been removed. The application
381
   ParkAndAnnounce is now provided by the res_parking module. See the
390
   ParkAndAnnounce is now provided by the res_parking module. See the
382
   Parking changes for more information.
391
   Parking changes for more information.
383

    
   
392

   
384
ResetCDR:
393
ResetCDR:
385
 - The 'w' and 'a' options have been removed. Dispatching CDRs to registered
394
 - The 'w' and 'a' options have been removed. Dispatching CDRs to registered
386
   backends occurs on an as-needed basis in order to preserve linkedid
395
   backends occurs on an as-needed basis in order to preserve linkedid
387
   propagation and other needed behavior.
396
   propagation and other needed behavior.
388
 - The 'e' option is deprecated. Please use the CDR_PROP function to enable
397
 - The 'e' option is deprecated. Please use the CDR_PROP function to enable
389
   CDRs on a channel that they were previously disabled on.
398
   CDRs on a channel that they were previously disabled on.
390
 - The ResetCDR application is no longer a part of core Asterisk, and instead
399
 - The ResetCDR application is no longer a part of core Asterisk, and instead
391
   is now delivered as part of app_cdr.
400
   is now delivered as part of app_cdr.
392

    
   
401

   
393
Queues:
402
Queues:
394
 - Queue strategy rrmemory now has a predictable order similar to strategy
403
 - Queue strategy rrmemory now has a predictable order similar to strategy
395
   rrordered. Members will be called in the order that they are added to the
404
   rrordered. Members will be called in the order that they are added to the
396
   queue.
405
   queue.
397

    
   
406

   
398
 - Removed the queues.conf check_state_unknown option.  It is no longer
407
 - Removed the queues.conf check_state_unknown option.  It is no longer
399
   necessary.
408
   necessary.
400

    
   
409

   
401
 - It is now possible to play the Queue prompts to the first user waiting in a
410
 - It is now possible to play the Queue prompts to the first user waiting in a
402
   call queue. Note that this may impact the ability for agents to talk with
411
   call queue. Note that this may impact the ability for agents to talk with
403
   users, as a prompt may still be playing when an agent connects to the user.
412
   users, as a prompt may still be playing when an agent connects to the user.
404
   This ability is disabled by default but can be enabled on an individual
413
   This ability is disabled by default but can be enabled on an individual
405
   queue using the 'announce-to-first-user' option.
414
   queue using the 'announce-to-first-user' option.
406

    
   
415

   
407
 - The configuration options eventwhencalled and eventmemberstatus have been
416
 - The configuration options eventwhencalled and eventmemberstatus have been
408
   removed.  As a result, the AMI events QueueMemberStatus, AgentCalled,
417
   removed.  As a result, the AMI events QueueMemberStatus, AgentCalled,
409
   AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
418
   AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
410
   sent.  The "Variable" fields will also no longer exist on the Agent* events.
419
   sent.  The "Variable" fields will also no longer exist on the Agent* events.
411
   These events can be filtered out from a connected AMI client using the
420
   These events can be filtered out from a connected AMI client using the
412
   eventfilter setting in manager.conf.
421
   eventfilter setting in manager.conf.
413

    
   
422

   
414
 - The queue log now differentiates between blind and attended transfers. A
423
 - The queue log now differentiates between blind and attended transfers. A
415
   blind transfer will result in a BLINDTRANSFER message with the destination
424
   blind transfer will result in a BLINDTRANSFER message with the destination
416
   context and extension. An attended transfer will result in an
425
   context and extension. An attended transfer will result in an
417
   ATTENDEDTRANSFER message. This message will indicate the method by which
426
   ATTENDEDTRANSFER message. This message will indicate the method by which
418
   the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
427
   the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
419
   for running an application on a bridge or channel, or "LINK" for linking
428
   for running an application on a bridge or channel, or "LINK" for linking
420
   two bridges together with local channels. The queue log will also now detect
429
   two bridges together with local channels. The queue log will also now detect
421
   externally initiated blind and attended transfers and record the transfer
430
   externally initiated blind and attended transfers and record the transfer
422
   status accordingly.
431
   status accordingly.
423

    
   
432

   
424
 - When performing queue pause/unpause on an interface without specifying an
433
 - When performing queue pause/unpause on an interface without specifying an
425
   individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
434
   individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
426
   least one member of any queue exists for that interface.
435
   least one member of any queue exists for that interface.
427

    
   
436

   
428
SetAMAFlags
437
SetAMAFlags
429
 - This application is deprecated in favor of CHANNEL(amaflags).
438
 - This application is deprecated in favor of CHANNEL(amaflags).
430

    
   
439

   
431
VoiceMail:
440
VoiceMail:
432
 - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
441
 - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
433
   system as mailbox@context.  The rest of the system cannot add @default
442
   system as mailbox@context.  The rest of the system cannot add @default
434
   to mailbox identifiers for app_voicemail that do not specify a context
443
   to mailbox identifiers for app_voicemail that do not specify a context
435
   any longer.  It is a mailbox identifier format that should only be
444
   any longer.  It is a mailbox identifier format that should only be
436
   interpreted by app_voicemail.
445
   interpreted by app_voicemail.
437

    
   
446

   
438
 - The voicemail.conf configuration file now has an 'alias' configuration
447
 - The voicemail.conf configuration file now has an 'alias' configuration
439
   parameter for use with the Directory application. The voicemail realtime
448
   parameter for use with the Directory application. The voicemail realtime
440
   database table schema has also been updated with an 'alias' column. Systems
449
   database table schema has also been updated with an 'alias' column. Systems
441
   using voicemail with realtime should update their schemas accordingly.
450
   using voicemail with realtime should update their schemas accordingly.
442

    
   
451

   
443
Channel Drivers:
452
Channel Drivers:
444
 - When a channel driver is configured to enable jiterbuffers, they are now
453
 - When a channel driver is configured to enable jiterbuffers, they are now
445
   applied unconditionally when a channel joins a bridge. If a jitterbuffer
454
   applied unconditionally when a channel joins a bridge. If a jitterbuffer
446
   is already set for that channel when it enters, such as by the JITTERBUFFER
455
   is already set for that channel when it enters, such as by the JITTERBUFFER
447
   function, then the existing jitterbuffer will be used and the one set by
456
   function, then the existing jitterbuffer will be used and the one set by
448
   the channel driver will not be applied.
457
   the channel driver will not be applied.
449

    
   
458

   
450
chan_bridge
459
chan_bridge
451
 - chan_bridge is removed and its functionality is incorporated into ConfBridge
460
 - chan_bridge is removed and its functionality is incorporated into ConfBridge
452
   itself.
461
   itself.
453

    
   
462

   
454
chan_dahdi:
463
chan_dahdi:
455
 - Analog port dialing and deferred DTMF dialing for PRI now distinguishes
464
 - Analog port dialing and deferred DTMF dialing for PRI now distinguishes
456
   between 'w' and 'W'.  The 'w' pauses dialing for half a second.  The 'W'
465
   between 'w' and 'W'.  The 'w' pauses dialing for half a second.  The 'W'
457
   pauses dialing for one second.
466
   pauses dialing for one second.
458

    
   
467

   
459
 - The default for inband_on_proceeding has changed to no.
468
 - The default for inband_on_proceeding has changed to no.
460

    
   
469

   
461
 - The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
470
 - The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
462
   A range of channels can be specified to be destroyed. Note that this command
471
   A range of channels can be specified to be destroyed. Note that this command
463
   should only be used if you understand the risks it entails.
472
   should only be used if you understand the risks it entails.
464

    
   
473

   
465
 - The script specified by the chan_dahdi.conf mwimonitornotify option now gets
474
 - The script specified by the chan_dahdi.conf mwimonitornotify option now gets
466
   the exact configured mailbox name.  For app_voicemail mailboxes this is
475
   the exact configured mailbox name.  For app_voicemail mailboxes this is
467
   mailbox@context.
476
   mailbox@context.
468

    
   
477

   
469
 - Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
478
 - Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
470

    
   
479

   
471
chan_local:
480
chan_local:
472
 - The /b option has been removed.
481
 - The /b option has been removed.
473

    
   
482

   
474
 - chan_local moved into the system core and is no longer a loadable module.
483
 - chan_local moved into the system core and is no longer a loadable module.
475

    
   
484

   
476
chan_sip:
485
chan_sip:
477
 - The 'callevents' parameter has been removed. Hold AMI events are now raised
486
 - The 'callevents' parameter has been removed. Hold AMI events are now raised
478
   in the core, and can be filtered out using the 'eventfilter' parameter
487
   in the core, and can be filtered out using the 'eventfilter' parameter
479
   in manager.conf.
488
   in manager.conf.
480

    
   
489

   
481
 - Dynamic realtime tables for SIP Users can now include a 'path' field. This
490
 - Dynamic realtime tables for SIP Users can now include a 'path' field. This
482
   will store the path information for that peer when it registers. Realtime
491
   will store the path information for that peer when it registers. Realtime
483
   tables can also use the 'supportpath' field to enable Path header support.
492
   tables can also use the 'supportpath' field to enable Path header support.
484

    
   
493

   
485
 - LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
494
 - LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
486
   objectIdentifier. This maps to the supportpath option in sip.conf.
495
   objectIdentifier. This maps to the supportpath option in sip.conf.
487

    
   
496

   
488
Core:
497
Core:
489
 - Masquerades as an operation inside Asterisk have been effectively hidden
498
 - Masquerades as an operation inside Asterisk have been effectively hidden
490
   by the migration to the Bridging API. As such, many 'quirks' of Asterisk
499
   by the migration to the Bridging API. As such, many 'quirks' of Asterisk
491
   no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
500
   no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
492
   dropping of frame/audio hooks, and other internal implementation details
501
   dropping of frame/audio hooks, and other internal implementation details
493
   that users had to deal with. This fundamental change has large implications
502
   that users had to deal with. This fundamental change has large implications
494
   throughout the changes documented for this version. For more information
503
   throughout the changes documented for this version. For more information
495
   about the new core architecture of Asterisk, please see the Asterisk wiki.
504
   about the new core architecture of Asterisk, please see the Asterisk wiki.
496

    
   
505

   
497
 - The following channel variables have changed behavior which is described in
506
 - The following channel variables have changed behavior which is described in
498
   the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
507
   the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
499
   ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.
508
   ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.
500

    
   
509

   
501
AMI (Asterisk Manager Interface):
510
AMI (Asterisk Manager Interface):
502
 - Version 1.4 - The details of what happens to a channel when a masquerade
511
 - Version 1.4 - The details of what happens to a channel when a masquerade
503
   happens (transfers, parking, etc) have changed.
512
   happens (transfers, parking, etc) have changed.
504
   - The Masquerade event now includes the Uniqueid's of the clone and original
513
   - The Masquerade event now includes the Uniqueid's of the clone and original
505
     channels.
514
     channels.
506
   - Channels no longer swap Uniqueid's as a result of the masquerade.
515
   - Channels no longer swap Uniqueid's as a result of the masquerade.
507
   - Instead of a shell game of renames, there's now a single rename, appending
516
   - Instead of a shell game of renames, there's now a single rename, appending
508
     <ZOMBIE> to the name of the original channel.
517
     <ZOMBIE> to the name of the original channel.
509

    
   
518

   
510
 - *Major* changes were made to both the syntax as well as the semantics of the
519
 - *Major* changes were made to both the syntax as well as the semantics of the
511
   AMI protocol. In particular, AMI events have been substantially modified
520
   AMI protocol. In particular, AMI events have been substantially modified
512
   and improved in this version of Asterisk. The major event changes are listed
521
   and improved in this version of Asterisk. The major event changes are listed
513
   below.
522
   below.
514
   - NewPeerAccount has been removed. NewAccountCode is raised instead.
523
   - NewPeerAccount has been removed. NewAccountCode is raised instead.
515
   - Reload events have been consolidated and standardized.
524
   - Reload events have been consolidated and standardized.
516
   - ModuleLoadReport has been removed.
525
   - ModuleLoadReport has been removed.
517
   - FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes
526
   - FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes
518
     app_fax and res_fax events.
527
     app_fax and res_fax events.
519
   - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.
528
   - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.
520
   - JabberEvent has been removed.
529
   - JabberEvent has been removed.
521
   - Hold is now in the core and will now raise Hold and Unhold events.
530
   - Hold is now in the core and will now raise Hold and Unhold events.
522
   - Join is now QueueCallerJoin.
531
   - Join is now QueueCallerJoin.
523
   - Leave is now QueueCallerLeave.
532
   - Leave is now QueueCallerLeave.
524
   - Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.
533
   - Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.
525
   - ChannelUpdate has been removed.
534
   - ChannelUpdate has been removed.
526
   - Local channel optimization is now conveyed via LocalOptimizationBegin and
535
   - Local channel optimization is now conveyed via LocalOptimizationBegin and
527
     LocalOptimizationEnd.
536
     LocalOptimizationEnd.
528
   - BridgeAction and BridgeExec have been removed.
537
   - BridgeAction and BridgeExec have been removed.
529
   - BlindTransfer and AttendedTransfer events were added.
538
   - BlindTransfer and AttendedTransfer events were added.
530
   - Dial is now DialBegin and DialEnd.
539
   - Dial is now DialBegin and DialEnd.
531
   - DTMF is now DTMFBegin and DTMFEnd.
540
   - DTMF is now DTMFBegin and DTMFEnd.
532
   - Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and
541
   - Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and
533
     BridgeDestroy
542
     BridgeDestroy
534
   - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop
543
   - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop
535
   - AGIExec is now AGIExecStart and AGIExecEnd
544
   - AGIExec is now AGIExecStart and AGIExecEnd
536
   - AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd
545
   - AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd
537

    
   
546

   
538
 - The 'MCID' AMI event now publishes a channel snapshot when available and
547
 - The 'MCID' AMI event now publishes a channel snapshot when available and
539
   its non-channel-snapshot parameters now use either the "MCallerID" or
548
   its non-channel-snapshot parameters now use either the "MCallerID" or
540
   'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
549
   'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
541
   of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
550
   of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
542
   parameters in the channel snapshot.
551
   parameters in the channel snapshot.
543

    
   
552

   
544
 - The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
553
 - The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
545
   renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
554
   renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
546

    
   
555

   
547
 - All AMI events now contain a 'SystemName' field, if available.
556
 - All AMI events now contain a 'SystemName' field, if available.
548

    
   
557

   
549
 - Local channel information in events is now prefixed with 'LocalOne' and
558
 - Local channel information in events is now prefixed with 'LocalOne' and
550
   'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
559
   'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
551
   the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
560
   the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
552
   and 'LocalOptimizationEnd' events.
561
   and 'LocalOptimizationEnd' events.
553

    
   
562

   
554
 - The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
563
 - The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
555
   previous versions. They now report all SR/RR packets sent/received, and
564
   previous versions. They now report all SR/RR packets sent/received, and
556
   have been restructured to better reflect the data sent in a SR/RR. In
565
   have been restructured to better reflect the data sent in a SR/RR. In
557
   particular, the event structure now supports multiple report blocks.
566
   particular, the event structure now supports multiple report blocks.
558

    
   
567

   
559
 - The deprecated use of | (pipe) as a separator in the channelvars setting in
568
 - The deprecated use of | (pipe) as a separator in the channelvars setting in
560
   manager.conf has been removed.
569
   manager.conf has been removed.
561

    
   
570

   
562
 - The SIP SIPqualifypeer action now sends a response indicating it will qualify
571
 - The SIP SIPqualifypeer action now sends a response indicating it will qualify
563
   a peer once a peer has been found to qualify.  Once the qualify has been
572
   a peer once a peer has been found to qualify.  Once the qualify has been
564
   completed it will now issue a SIPqualifypeerdone event.
573
   completed it will now issue a SIPqualifypeerdone event.
565

    
   
574

   
566
 - The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
575
 - The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
567
   in a future release. Please use the common 'Exten' field instead.
576
   in a future release. Please use the common 'Exten' field instead.
568

    
   
577

   
569
 - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
578
 - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
570
   'UnParkedCall' have changed significantly in the new res_parking module.
579
   'UnParkedCall' have changed significantly in the new res_parking module.
571
   - The 'Channel' and 'From' headers are gone. For the channel that was parked
580
   - The 'Channel' and 'From' headers are gone. For the channel that was parked
572
     or is coming out of parking, a 'Parkee' channel snapshot is issued and it
581
     or is coming out of parking, a 'Parkee' channel snapshot is issued and it
573
     has a number of fields associated with it. The old 'Channel' header relayed
582
     has a number of fields associated with it. The old 'Channel' header relayed
574
     the same data as the new 'ParkeeChannel' header.
583
     the same data as the new 'ParkeeChannel' header.
575
   - The 'From' field was ambiguous and changed meaning depending on the event.
584
   - The 'From' field was ambiguous and changed meaning depending on the event.
576
     for most of these, it was the name of the channel that parked the call
585
     for most of these, it was the name of the channel that parked the call
577
     (the 'Parker'). There is no longer a header that provides this channel name,
586
     (the 'Parker'). There is no longer a header that provides this channel name,
578
     however the 'ParkerDialString' will contain a dialstring to redial the
587
     however the 'ParkerDialString' will contain a dialstring to redial the
579
     device that parked the call.
588
     device that parked the call.
580
   - On UnParkedCall events, the 'From' header would instead represent the
589
   - On UnParkedCall events, the 'From' header would instead represent the
581
     channel responsible for retrieving the parkee. It receives a channel
590
     channel responsible for retrieving the parkee. It receives a channel
582
     snapshot labeled 'Retriever'. The 'from' field is is replaced with
591
     snapshot labeled 'Retriever'. The 'from' field is is replaced with
583
     'RetrieverChannel'.
592
     'RetrieverChannel'.
584
   - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
593
   - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
585

    
   
594

   
586
 - The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
595
 - The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
587
   fashion has changed the field names 'StartExten' and 'StopExten' to
596
   fashion has changed the field names 'StartExten' and 'StopExten' to
588
   'StartSpace' and 'StopSpace' respectively.
597
   'StartSpace' and 'StopSpace' respectively.
589

    
   
598

   
590
 - The AMI 'Status' response event to the AMI Status action replaces the
599
 - The AMI 'Status' response event to the AMI Status action replaces the
591
   'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
600
   'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
592
   indicate what bridge the channel is currently in.
601
   indicate what bridge the channel is currently in.
593

    
   
602

   
594
CDR (Call Detail Records)
603
CDR (Call Detail Records)
595
 - Significant changes have been made to the behavior of CDRs. The CDR engine
604
 - Significant changes have been made to the behavior of CDRs. The CDR engine
596
   was effectively rewritten and built on the Stasis message bus. For a full
605
   was effectively rewritten and built on the Stasis message bus. For a full
597
   definition of CDR behavior in Asterisk 12, please read the specification
606
   definition of CDR behavior in Asterisk 12, please read the specification
598
   on the Asterisk wiki (wiki.asterisk.org).
607
   on the Asterisk wiki (wiki.asterisk.org).
599

    
   
608

   
600
 - CDRs will now be created between all participants in a bridge. For each
609
 - CDRs will now be created between all participants in a bridge. For each
601
   pair of channels in a bridge, a CDR is created to represent the path of
610
   pair of channels in a bridge, a CDR is created to represent the path of
602
   communication between those two endpoints. This lets an end user choose who
611
   communication between those two endpoints. This lets an end user choose who
603
   to bill for what during bridge operations with multiple parties.
612
   to bill for what during bridge operations with multiple parties.
604

    
   
613

   
605
 - The duration, billsec, start, answer, and end times now reflect the times
614
 - The duration, billsec, start, answer, and end times now reflect the times
606
   associated with the current CDR for the channel, as opposed to a cumulative
615
   associated with the current CDR for the channel, as opposed to a cumulative
607
   measurement of all CDRs for that channel.
616
   measurement of all CDRs for that channel.
608

    
   
617

   
609
 - CDR backends can no longer be unloaded while billing data is in flight. This
618
 - CDR backends can no longer be unloaded while billing data is in flight. This
610
   helps to prevent loss of billing data during restarts and shutdowns.
619
   helps to prevent loss of billing data during restarts and shutdowns.
611

    
   
620

   
612
CEL:
621
CEL:
613
 - The Uniqueid field for a channel is now a stable identifier, and will not
622
 - The Uniqueid field for a channel is now a stable identifier, and will not
614
   change due to transfers, parking, etc.
623
   change due to transfers, parking, etc.
615

    
   
624

   
616
 - CEL has undergone significant rework in Asterisk 12, and is now built on the
625
 - CEL has undergone significant rework in Asterisk 12, and is now built on the
617
   Stasis message bus. Please see the specification for CEL on the Asterisk
626
   Stasis message bus. Please see the specification for CEL on the Asterisk
618
   wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
627
   wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
619
   information. A summary of the affected events is below:
628
   information. A summary of the affected events is below:
620
   - BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
629
   - BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
621
     CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
630
     CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
622
     events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT.
631
     events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT.
623
   - BLINDTRANSFER/ATTENDEDTRANSFER events now report the peer as NULL and
632
   - BLINDTRANSFER/ATTENDEDTRANSFER events now report the peer as NULL and
624
     additional information in the extra string field.
633
     additional information in the extra string field.
625

    
   
634

   
626
Dialplan Functions:
635
Dialplan Functions:
627

    
   
636

   
628
 - Certain dialplan functions have been marked as 'dangerous', and may only be
637
 - Certain dialplan functions have been marked as 'dangerous', and may only be
629
   executed from the dialplan. Execution from extenal sources (AMI's GetVar and
638
   executed from the dialplan. Execution from extenal sources (AMI's GetVar and
630
   SetVar actions; etc.) may be inhibited by setting live_dangerously in the
639
   SetVar actions; etc.) may be inhibited by setting live_dangerously in the
631
   [options] section of asterisk.conf to no. SHELL(), channel locking, and
640
   [options] section of asterisk.conf to no. SHELL(), channel locking, and
632
   direct file read/write functions are marked as dangerous. DB_DELETE() and
641
   direct file read/write functions are marked as dangerous. DB_DELETE() and
633
   REALTIME_DESTROY() are marked as dangerous for reads, but can now safely
642
   REALTIME_DESTROY() are marked as dangerous for reads, but can now safely
634
   accept writes (which ignore the provided value).
643
   accept writes (which ignore the provided value).
635
 - The default value for live_dangerously was changed from yes (in Asterisk 11
644
 - The default value for live_dangerously was changed from yes (in Asterisk 11
636
   and earlier) to no (in Asterisk 12 and greater).
645
   and earlier) to no (in Asterisk 12 and greater).
637

    
   
646

   
638
Dialplan:
647
Dialplan:
639
 - All channel and global variable names are evaluated in a case-sensitive
648
 - All channel and global variable names are evaluated in a case-sensitive
640
   manner. In previous versions of Asterisk, variables created and evaluated in
649
   manner. In previous versions of Asterisk, variables created and evaluated in
641
   the dialplan were evaluated case-insensitively, but built-in variables and
650
   the dialplan were evaluated case-insensitively, but built-in variables and
642
   variable evaluation done internally within Asterisk was done
651
   variable evaluation done internally within Asterisk was done
643
   case-sensitively.
652
   case-sensitively.
644

    
   
653

   
645
 - Asterisk has always had code to ignore dash '-' characters that are not
654
 - Asterisk has always had code to ignore dash '-' characters that are not
646
   part of a character set in the dialplan extensions.  The code now
655
   part of a character set in the dialplan extensions.  The code now
647
   consistently ignores these characters when matching dialplan extensions.
656
   consistently ignores these characters when matching dialplan extensions.
648

    
   
657

   
649
 - BRIDGE_FEATURES channel variable is now casesensitive for feature letter
658
 - BRIDGE_FEATURES channel variable is now casesensitive for feature letter
650
   codes. Uppercase variants apply them to the calling party while lowercase
659
   codes. Uppercase variants apply them to the calling party while lowercase
651
   variants apply them to the called party.
660
   variants apply them to the called party.
652

    
   
661

   
653
Features:
662
Features:
654
 - The features.conf [applicationmap] <FeatureName>  ActivatedBy option is
663
 - The features.conf [applicationmap] <FeatureName>  ActivatedBy option is
655
   no longer honored.  The feature is always activated by the channel that has
664
   no longer honored.  The feature is always activated by the channel that has
656
   DYNAMIC_FEATURES defined on it when it enters the bridge. Use predial to set
665
   DYNAMIC_FEATURES defined on it when it enters the bridge. Use predial to set
657
   different values of DYNAMIC_FEATURES on the channels
666
   different values of DYNAMIC_FEATURES on the channels
658

    
   
667

   
659
 - Executing a dynamic feature on the bridge peer in a multi-party bridge will
668
 - Executing a dynamic feature on the bridge peer in a multi-party bridge will
660
   execute it on all peers of the activating channel.
669
   execute it on all peers of the activating channel.
661

    
   
670

   
662
 - There is no longer an explicit 'features reload' CLI command. Features can
671
 - There is no longer an explicit 'features reload' CLI command. Features can
663
   still be reloaded using 'module reload features'.
672
   still be reloaded using 'module reload features'.
664

    
   
673

   
665
 - It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
674
 - It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
666
   features.c for atxferdropcall=no to work properly. This option now just
675
   features.c for atxferdropcall=no to work properly. This option now just
667
   works.
676
   works.
668

    
   
677

   
669
Parking:
678
Parking:
670
 - Parking has been extracted from the Asterisk core as a loadable module,
679
 - Parking has been extracted from the Asterisk core as a loadable module,
671
   res_parking.
680
   res_parking.
672

    
   
681

   
673
 - Configuration is found in res_parking.conf. It is no longer supported in
682
 - Configuration is found in res_parking.conf. It is no longer supported in
674
   features.conf
683
   features.conf
675

    
   
684

   
676
 - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications 
685
 - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications 
677
   have been modified significantly. See the application documents for 
686
   have been modified significantly. See the application documents for 
678
   specific details.
687
   specific details.
679

    
   
688

   
680
 - Numerous changes to Parking related applications, AMI and CLI commands and
689
 - Numerous changes to Parking related applications, AMI and CLI commands and
681
   internal inter-workings  have been made. Please read the CHANGES file for 
690
   internal inter-workings  have been made. Please read the CHANGES file for 
682
   the detailed list.
691
   the detailed list.
683

    
   
692

   
684
Security Events Framework:
693
Security Events Framework:
685
 - Security Event timestamps now use ISO 8601 formatted date/time instead of
694
 - Security Event timestamps now use ISO 8601 formatted date/time instead of
686
   the "seconds-microseconds" format that it was using previously.
695
   the "seconds-microseconds" format that it was using previously.
687

    
   
696

   
688
AGENT:
697
AGENT:
689
 - The password option has been disabled, as the AgentLogin application no
698
 - The password option has been disabled, as the AgentLogin application no
690
   longer provides authentication.
699
   longer provides authentication.
691

    
   
700

   
692
AUDIOHOOK_INHERIT:
701
AUDIOHOOK_INHERIT:
693
 - Due to changes in the Asterisk core, this function is no longer needed to
702
 - Due to changes in the Asterisk core, this function is no longer needed to
694
   preserve a MixMonitor on a channel during transfer operations and dialplan
703
   preserve a MixMonitor on a channel during transfer operations and dialplan
695
   execution. It is effectively obsolete.
704
   execution. It is effectively obsolete.
696

    
   
705

   
697
CDR: (function)
706
CDR: (function)
698
 - The 'amaflags' and 'accountcode' attributes for the CDR function are
707
 - The 'amaflags' and 'accountcode' attributes for the CDR function are
699
   deprecated. Use the CHANNEL function instead to access these attributes.
708
   deprecated. Use the CHANNEL function instead to access these attributes.
700

    
   
709

   
701
 - The 'l' option has been removed. When reading a CDR attribute, the most
710
 - The 'l' option has been removed. When reading a CDR attribute, the most
702
   recent record is always used. When writing a CDR attribute, all non-finalized
711
   recent record is always used. When writing a CDR attribute, all non-finalized
703
   CDRs are updated.
712
   CDRs are updated.
704

    
   
713

   
705
 - The 'r' option has been removed, for the same reason as the 'l' option.
714
 - The 'r' option has been removed, for the same reason as the 'l' option.
706

    
   
715

   
707
 - The 's' option has been removed, as LOCKED semantics no longer exist in the
716
 - The 's' option has been removed, as LOCKED semantics no longer exist in the
708
   CDR engine.
717
   CDR engine.
709

    
   
718

   
710
VMCOUNT:
719
VMCOUNT:
711
 - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
720
 - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
712
   system as mailbox@context.  The rest of the system cannot add @default
721
   system as mailbox@context.  The rest of the system cannot add @default
713
   to mailbox identifiers for app_voicemail that do not specify a context
722
   to mailbox identifiers for app_voicemail that do not specify a context
714
   any longer.  It is a mailbox identifier format that should only be
723
   any longer.  It is a mailbox identifier format that should only be
715
   interpreted by app_voicemail.
724
   interpreted by app_voicemail.
716

    
   
725

   
717
res_rtp_asterisk:
726
res_rtp_asterisk:
718
 - ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable
727
 - ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable
719
   them, an Asterisk-specific version of PJSIP needs to be installed.
728
   them, an Asterisk-specific version of PJSIP needs to be installed.
720
   Tarballs are available from https://github.com/asterisk/pjproject/tags/.
729
   Tarballs are available from https://github.com/asterisk/pjproject/tags/.
721

    
   
730

   
722

    
   
731

   
723
===========================================================
732
===========================================================
724
===========================================================
733
===========================================================
/branches/12/contrib/ast-db-manage/config/versions/51f8cb66540e_add_further_dtls_options.py
New File
 
/branches/12/include/asterisk/res_pjsip.h
Revision 417661 New Change
 
/branches/12/include/asterisk/res_pjsip_session.h
Revision 417661 New Change
 
/branches/12/res/res_pjsip.c
Revision 417661 New Change
 
/branches/12/res/res_pjsip_sdp_rtp.c
Revision 417661 New Change
 
/branches/12/res/res_pjsip/pjsip_configuration.c
Revision 417661 New Change
 
  1. /branches/12/UPGRADE.txt: Loading...
  2. /branches/12/contrib/ast-db-manage/config/versions/51f8cb66540e_add_further_dtls_options.py: Loading...
  3. /branches/12/include/asterisk/res_pjsip.h: Loading...
  4. /branches/12/include/asterisk/res_pjsip_session.h: Loading...
  5. /branches/12/res/res_pjsip.c: Loading...
  6. /branches/12/res/res_pjsip_sdp_rtp.c: Loading...
  7. /branches/12/res/res_pjsip/pjsip_configuration.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.