<p>Benjamin Keith Ford <strong>merged</strong> this change.</p><p><a href="https://gerrit.asterisk.org/c/asterisk/+/10943">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Kevin Harwell: Looks good to me, but someone else must approve
George Joseph: Looks good to me, approved
Friendly Automation: Approved for Submit
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">build: Revise CHANGES and UPGRADE.txt handling.<br><br>This changes the way that we handle adding changes to CHANGES and<br>UPGRADE.txt. The reason for this is because whenever someone needed to<br>make a change to one of these files and someone else had already done<br>so, you would run into merge conflicts. With this new setup, there will<br>never be merge conflicts since all changes will be documented in the<br>doc/<file>-staging directory. The release script is now responsible for<br>merging all of these changes into the appropriate files.<br><br>There is a special format that these files have to follow in order to be<br>parsed. The files do not need to have a meaningful name, but it is<br>strongly recommended. For example, if you made a change to pjsip, you<br>may have something like this "res_pjsip_relative_title", where<br>"relative_title" is something more descriptive than that. Inside each<br>file, you will need a subject line for your change, followed by a<br>description. There can be multiple subject lines. The file may look<br>something like this:<br><br> Subject: res_pjsip<br> Subject: Core<br><br> A description that explains the changes made and why. The release<br> script will handle the bulleting and section separators!<br><br> You can still separate with new lines within your description.<br><br>The headers ("Subject" and "Master-Only") are case sensative, but the<br>value for "Master-Only" ("true" or "True") is not.<br><br>For more information, check out the wiki page:<br>https://wiki.asterisk.org/wiki/display/AST/CHANGES+and+UPGRADE.txt<br><br>ASTERISK-28111 #close<br><br>Change-Id: I19cf4b569321c88155a65e9b0b80f6d58075dd47<br>---<br>M CHANGES<br>D UPGRADE-1.2.txt<br>D UPGRADE-1.4.txt<br>D UPGRADE-1.6.txt<br>D UPGRADE-1.8.txt<br>D UPGRADE-10.txt<br>D UPGRADE-11.txt<br>D UPGRADE-12.txt<br>M UPGRADE.txt<br>M doc/CHANGES-staging/README.md<br>M doc/UPGRADE-staging/README.md<br>11 files changed, 2,100 insertions(+), 2,228 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/CHANGES b/CHANGES</span><br><span>index 0d39730..dbdf744 100644</span><br><span>--- a/CHANGES</span><br><span>+++ b/CHANGES</span><br><span>@@ -1,5 +1,9 @@</span><br><span> ==============================================================================</span><br><span> ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== THIS FILE IS AUTOMATICALLY GENERATED DURING THE RELEASE</span><br><span style="color: hsl(120, 100%, 40%);">+=== PROCESS. DO NOT MAKE CHANGES HERE. INSTEAD, REFER TO</span><br><span style="color: hsl(120, 100%, 40%);">+=== doc/CHANGES-staging/README.md FOR MORE DETAILS.</span><br><span style="color: hsl(120, 100%, 40%);">+===</span><br><span> === This file documents the new and/or enhanced functionality added in</span><br><span> === the Asterisk versions listed below. This file does NOT include</span><br><span> === changes in behavior that would not be backwards compatible with</span><br><span>diff --git a/UPGRADE-1.2.txt b/UPGRADE-1.2.txt</span><br><span>deleted file mode 100644</span><br><span>index cfbff94..0000000</span><br><span>--- a/UPGRADE-1.2.txt</span><br><span>+++ /dev/null</span><br><span>@@ -1,218 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-=========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== Information for upgrading from Asterisk 1.0 to 1.2</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== This file documents all the changes that MUST be taken</span><br><span style="color: hsl(0, 100%, 40%);">-=== into account when upgrading between the Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== versions listed below. These changes may require that</span><br><span style="color: hsl(0, 100%, 40%);">-=== you modify your configuration files, dialplan or (in</span><br><span style="color: hsl(0, 100%, 40%);">-=== some cases) source code if you have your own Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== modules or patches. These files also includes advance</span><br><span style="color: hsl(0, 100%, 40%);">-=== notice of any functionality that has been marked as</span><br><span style="color: hsl(0, 100%, 40%);">-=== 'deprecated' and may be removed in a future release,</span><br><span style="color: hsl(0, 100%, 40%);">-=== along with the suggested replacement functionality.</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Compiling:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The Asterisk 1.2 source code now uses C language features</span><br><span style="color: hsl(0, 100%, 40%);">- supported only by 'modern' C compilers. Generally, this means GCC</span><br><span style="color: hsl(0, 100%, 40%);">- version 3.0 or higher, although some GCC 2.96 releases will also</span><br><span style="color: hsl(0, 100%, 40%);">- work. Some non-GCC compilers that support C99 and the common GCC</span><br><span style="color: hsl(0, 100%, 40%);">- extensions (including anonymous structures and unions) will also</span><br><span style="color: hsl(0, 100%, 40%);">- work. All releases of GCC 2.95 do _not_ have the requisite feature</span><br><span style="color: hsl(0, 100%, 40%);">- support; systems using that compiler will need to be upgraded to</span><br><span style="color: hsl(0, 100%, 40%);">- a more recent compiler release.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Dialplan Expressions:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The dialplan expression parser (which handles $[ ... ] constructs)</span><br><span style="color: hsl(0, 100%, 40%);">- has gone through a major upgrade, but has one incompatible change:</span><br><span style="color: hsl(0, 100%, 40%);">- spaces are no longer required around expression operators, including</span><br><span style="color: hsl(0, 100%, 40%);">- string comparisons. However, you can now use quoting to keep strings</span><br><span style="color: hsl(0, 100%, 40%);">- together for comparison. For more details, please read the</span><br><span style="color: hsl(0, 100%, 40%);">- doc/README.variables file, and check over your dialplan for possible</span><br><span style="color: hsl(0, 100%, 40%);">- problems.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Agents:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The default for ackcall has been changed to "no" instead of "yes"</span><br><span style="color: hsl(0, 100%, 40%);">- because of a bug which caused the "yes" behavior to generally act like</span><br><span style="color: hsl(0, 100%, 40%);">- "no". You may need to adjust the value if your agents behave</span><br><span style="color: hsl(0, 100%, 40%);">- differently than you expect with respect to acknowledgement.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The AgentCallBackLogin application now requires a second '|' before</span><br><span style="color: hsl(0, 100%, 40%);">- specifying an extension@context. This is to distinguish the options</span><br><span style="color: hsl(0, 100%, 40%);">- string from the extension, so that they do not conflict. See</span><br><span style="color: hsl(0, 100%, 40%);">- 'show application AgentCallbackLogin' for more details.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Parking:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Parking behavior has changed slightly; when a parked call times out,</span><br><span style="color: hsl(0, 100%, 40%);">- Asterisk will attempt to deliver the call back to the extension that</span><br><span style="color: hsl(0, 100%, 40%);">- parked it, rather than the 's' extension. If that extension is busy</span><br><span style="color: hsl(0, 100%, 40%);">- or unavailable, the parked call will be lost.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Dialing:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The Caller*ID of the outbound leg is now the extension that was</span><br><span style="color: hsl(0, 100%, 40%);">- called, rather than the Caller*ID of the inbound leg of the call. The</span><br><span style="color: hsl(0, 100%, 40%);">- "o" flag for Dial can be used to restore the original behavior if</span><br><span style="color: hsl(0, 100%, 40%);">- desired. Note that if you are looking for the originating callerid</span><br><span style="color: hsl(0, 100%, 40%);">- from the manager event, there is a new manager event "Dial" which</span><br><span style="color: hsl(0, 100%, 40%);">- provides the source and destination channels and callerid.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-IAX:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The naming convention for IAX channels has changed in two ways:</span><br><span style="color: hsl(0, 100%, 40%);">- 1. The call number follows a "-" rather than a "/" character.</span><br><span style="color: hsl(0, 100%, 40%);">- 2. The name of the channel has been simplified to IAX2/peer-callno,</span><br><span style="color: hsl(0, 100%, 40%);">- rather than IAX2/peer@peer-callno or even IAX2/peer@peer/callno.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-SIP:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The global option "port" in 1.0.X that is used to set which port to</span><br><span style="color: hsl(0, 100%, 40%);">- bind to has been changed to "bindport" to be more consistent with</span><br><span style="color: hsl(0, 100%, 40%);">- the other channel drivers and to avoid confusion with the "port"</span><br><span style="color: hsl(0, 100%, 40%);">- option for users/peers.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The "Registry" event now uses "Username" rather than "User" for</span><br><span style="color: hsl(0, 100%, 40%);">- consistency with IAX.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Applications:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* With the addition of dialplan functions (which operate similarly</span><br><span style="color: hsl(0, 100%, 40%);">- to variables), the SetVar application has been renamed to Set.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The CallerPres application has been removed. Use SetCallerPres</span><br><span style="color: hsl(0, 100%, 40%);">- instead. It accepts both numeric and symbolic names.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The applications GetGroupCount, GetGroupMatchCount, SetGroup, and</span><br><span style="color: hsl(0, 100%, 40%);">- CheckGroup have been deprecated in favor of functions. Here is a</span><br><span style="color: hsl(0, 100%, 40%);">- table of their replacements:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- GetGroupCount([groupname][@category] GROUP_COUNT([groupname][@category]) Set(GROUPCOUNT=${GROUP_COUNT()})</span><br><span style="color: hsl(0, 100%, 40%);">- GroupMatchCount(groupmatch[@category]) GROUP_MATCH_COUNT(groupmatch[@category]) Set(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})</span><br><span style="color: hsl(0, 100%, 40%);">- SetGroup(groupname[@category]) GROUP([category])=groupname Set(GROUP()=test)</span><br><span style="color: hsl(0, 100%, 40%);">- CheckGroup(max[@category]) N/A GotoIf($[ ${GROUP_COUNT()} > 5 ]?103)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Note that CheckGroup does not have a direct replacement. There is</span><br><span style="color: hsl(0, 100%, 40%);">- also a new function called GROUP_LIST() which will return a space</span><br><span style="color: hsl(0, 100%, 40%);">- separated list of all of the groups set on a channel. The GROUP()</span><br><span style="color: hsl(0, 100%, 40%);">- function can also return the name of the group set on a channel when</span><br><span style="color: hsl(0, 100%, 40%);">- used in a read environment.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The applications DBGet and DBPut have been deprecated in favor of</span><br><span style="color: hsl(0, 100%, 40%);">- functions. Here is a table of their replacements:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- DBGet(foo=family/key) Set(foo=${DB(family/key)})</span><br><span style="color: hsl(0, 100%, 40%);">- DBPut(family/key=${foo}) Set(DB(family/key)=${foo})</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The application SetLanguage has been deprecated in favor of the</span><br><span style="color: hsl(0, 100%, 40%);">- function LANGUAGE().</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- SetLanguage(fr) Set(LANGUAGE()=fr)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- The LANGUAGE function can also return the currently set language:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Set(MYLANG=${LANGUAGE()})</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The applications AbsoluteTimeout, DigitTimeout, and ResponseTimeout</span><br><span style="color: hsl(0, 100%, 40%);">- have been deprecated in favor of the function TIMEOUT(timeouttype):</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- AbsoluteTimeout(300) Set(TIMEOUT(absolute)=300)</span><br><span style="color: hsl(0, 100%, 40%);">- DigitTimeout(15) Set(TIMEOUT(digit)=15)</span><br><span style="color: hsl(0, 100%, 40%);">- ResponseTimeout(15) Set(TIMEOUT(response)=15)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- The TIMEOUT() function can also return the currently set timeouts:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Set(DTIMEOUT=${TIMEOUT(digit)})</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The applications SetCIDName, SetCIDNum, and SetRDNIS have been</span><br><span style="color: hsl(0, 100%, 40%);">- deprecated in favor of the CALLERID(datatype) function:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- SetCIDName(Joe Cool) Set(CALLERID(name)=Joe Cool)</span><br><span style="color: hsl(0, 100%, 40%);">- SetCIDNum(2025551212) Set(CALLERID(number)=2025551212)</span><br><span style="color: hsl(0, 100%, 40%);">- SetRDNIS(2024561414) Set(CALLERID(RDNIS)=2024561414)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The application Record now uses the period to separate the filename</span><br><span style="color: hsl(0, 100%, 40%);">- from the format, rather than the colon.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The application VoiceMail now supports a 'temporary' greeting for each</span><br><span style="color: hsl(0, 100%, 40%);">- mailbox. This greeting can be recorded by using option 4 in the</span><br><span style="color: hsl(0, 100%, 40%);">- 'mailbox options' menu, and 'change your password' option has been</span><br><span style="color: hsl(0, 100%, 40%);">- moved to option 5.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The application VoiceMailMain now only matches the 'default' context if</span><br><span style="color: hsl(0, 100%, 40%);">- none is specified in the arguments. (This was the previously</span><br><span style="color: hsl(0, 100%, 40%);">- documented behavior, however, we didn't follow that behavior.) The old</span><br><span style="color: hsl(0, 100%, 40%);">- behavior can be restored by setting searchcontexts=yes in voicemail.conf.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Queues:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* A queue is now considered empty not only if there are no members but if</span><br><span style="color: hsl(0, 100%, 40%);">- none of the members are available (e.g. agents not logged on). To</span><br><span style="color: hsl(0, 100%, 40%);">- restore the original behavior, use "leavewhenempty=strict" or</span><br><span style="color: hsl(0, 100%, 40%);">- "joinwhenempty=strict" instead of "=yes" for those options.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* It is now possible to use multi-digit extensions in the exit context</span><br><span style="color: hsl(0, 100%, 40%);">- for a queue (although you should not have overlapping extensions,</span><br><span style="color: hsl(0, 100%, 40%);">- as there is no digit timeout). This means that the EXITWITHKEY event</span><br><span style="color: hsl(0, 100%, 40%);">- in queue_log can now contain a key field with more than a single</span><br><span style="color: hsl(0, 100%, 40%);">- character in it.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Extensions:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* By default, there is a new option called "autofallthrough" in</span><br><span style="color: hsl(0, 100%, 40%);">- extensions.conf that is set to yes. Asterisk 1.0 (and earlier)</span><br><span style="color: hsl(0, 100%, 40%);">- behavior was to wait for an extension to be dialed after there were no</span><br><span style="color: hsl(0, 100%, 40%);">- more extensions to execute. "autofallthrough" changes this behavior</span><br><span style="color: hsl(0, 100%, 40%);">- so that the call will immediately be terminated with BUSY,</span><br><span style="color: hsl(0, 100%, 40%);">- CONGESTION, or HANGUP based on Asterisk's best guess. If you are</span><br><span style="color: hsl(0, 100%, 40%);">- writing an extension for IVR, you must use the WaitExten application</span><br><span style="color: hsl(0, 100%, 40%);">- if "autofallthrough" is set to yes.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AGI:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* AGI scripts did not always get SIGHUP at the end, previously. That</span><br><span style="color: hsl(0, 100%, 40%);">- behavior has been fixed. If you do not want your script to terminate</span><br><span style="color: hsl(0, 100%, 40%);">- at the end of AGI being called (e.g. on a hangup) then set SIGHUP to</span><br><span style="color: hsl(0, 100%, 40%);">- be ignored within your application.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* CallerID is reported with agi_callerid and agi_calleridname instead</span><br><span style="color: hsl(0, 100%, 40%);">- of a single parameter holding both.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Music On Hold:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The preferred format for musiconhold.conf has changed; please see the</span><br><span style="color: hsl(0, 100%, 40%);">- sample configuration file for the new format. The existing format</span><br><span style="color: hsl(0, 100%, 40%);">- is still supported but will generate warnings when the module is loaded.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-chan_modem:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* All the chan_modem channel drivers (aopen, bestdata and i4l) are deprecated</span><br><span style="color: hsl(0, 100%, 40%);">- in this release, and will be removed in the next major Asterisk release.</span><br><span style="color: hsl(0, 100%, 40%);">- Please migrate to chan_misdn for ISDN interfaces; there is no upgrade</span><br><span style="color: hsl(0, 100%, 40%);">- path for aopen and bestdata modem users.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-MeetMe:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The conference application now allows users to increase/decrease their</span><br><span style="color: hsl(0, 100%, 40%);">- speaking volume and listening volume (independently of each other and</span><br><span style="color: hsl(0, 100%, 40%);">- other users); the 'admin' and 'user' menus have changed, and new sound</span><br><span style="color: hsl(0, 100%, 40%);">- files are included with this release. However, if a user calling in</span><br><span style="color: hsl(0, 100%, 40%);">- over a Zaptel channel that does NOT have hardware DTMF detection</span><br><span style="color: hsl(0, 100%, 40%);">- increases their speaking volume, it is likely they will no longer be</span><br><span style="color: hsl(0, 100%, 40%);">- able to enter/exit the menu or make any further adjustments, as the</span><br><span style="color: hsl(0, 100%, 40%);">- software DTMF detector will not be able to recognize the DTMF coming</span><br><span style="color: hsl(0, 100%, 40%);">- from their device.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-GetVar Manager Action:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Previously, the behavior of the GetVar manager action reported the value</span><br><span style="color: hsl(0, 100%, 40%);">- of a variable in the following manner:</span><br><span style="color: hsl(0, 100%, 40%);">- > name: value</span><br><span style="color: hsl(0, 100%, 40%);">- This has been changed to a manner similar to the SetVar action and is now</span><br><span style="color: hsl(0, 100%, 40%);">- > Variable: name</span><br><span style="color: hsl(0, 100%, 40%);">- > Value: value</span><br><span>diff --git a/UPGRADE-1.4.txt b/UPGRADE-1.4.txt</span><br><span>deleted file mode 100644</span><br><span>index 74cb1e5..0000000</span><br><span>--- a/UPGRADE-1.4.txt</span><br><span>+++ /dev/null</span><br><span>@@ -1,497 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-=========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== Information for upgrading from Asterisk 1.2 to 1.4</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== These files document all the changes that MUST be taken</span><br><span style="color: hsl(0, 100%, 40%);">-=== into account when upgrading between the Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== versions listed below. These changes may require that</span><br><span style="color: hsl(0, 100%, 40%);">-=== you modify your configuration files, dialplan or (in</span><br><span style="color: hsl(0, 100%, 40%);">-=== some cases) source code if you have your own Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== modules or patches. These files also includes advance</span><br><span style="color: hsl(0, 100%, 40%);">-=== notice of any functionality that has been marked as</span><br><span style="color: hsl(0, 100%, 40%);">-=== 'deprecated' and may be removed in a future release,</span><br><span style="color: hsl(0, 100%, 40%);">-=== along with the suggested replacement functionality.</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Build Process (configure script):</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Asterisk now uses an autoconf-generated configuration script to learn how it</span><br><span style="color: hsl(0, 100%, 40%);">-should build itself for your system. As it is a standard script, running:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-$ ./configure --help</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-will show you all the options available. This script can be used to tell the</span><br><span style="color: hsl(0, 100%, 40%);">-build process what libraries you have on your system (if it cannot find them</span><br><span style="color: hsl(0, 100%, 40%);">-automatically), which libraries you wish to have ignored even though they may</span><br><span style="color: hsl(0, 100%, 40%);">-be present, etc.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-You must run the configure script before Asterisk will build, although it will</span><br><span style="color: hsl(0, 100%, 40%);">-attempt to automatically run it for you with no options specified; for most</span><br><span style="color: hsl(0, 100%, 40%);">-users, that will result in a similar build to what they would have had before</span><br><span style="color: hsl(0, 100%, 40%);">-the configure script was added to the build process (except for having to run</span><br><span style="color: hsl(0, 100%, 40%);">-'make' again after the configure script is run). Note that the configure script</span><br><span style="color: hsl(0, 100%, 40%);">-does NOT need to be re-run just to rebuild Asterisk; you only need to re-run it</span><br><span style="color: hsl(0, 100%, 40%);">-when your system configuration changes or you wish to build Asterisk with</span><br><span style="color: hsl(0, 100%, 40%);">-different options.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Build Process (module selection):</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The Asterisk source tree now includes a basic module selection and build option</span><br><span style="color: hsl(0, 100%, 40%);">-selection tool called 'menuselect'. Run 'make menuselect' to make your choices.</span><br><span style="color: hsl(0, 100%, 40%);">-In this tool, you can disable building of modules that you don't care about,</span><br><span style="color: hsl(0, 100%, 40%);">-turn on/off global options for the build and see which modules will not</span><br><span style="color: hsl(0, 100%, 40%);">-(and cannot) be built because your system does not have the required external</span><br><span style="color: hsl(0, 100%, 40%);">-dependencies installed.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The resulting file from menuselect is called 'menuselect.makeopts'. Note that</span><br><span style="color: hsl(0, 100%, 40%);">-the resulting menuselect.makeopts file generally contains which modules *not*</span><br><span style="color: hsl(0, 100%, 40%);">-to build. The modules listed in this file indicate which modules have unmet</span><br><span style="color: hsl(0, 100%, 40%);">-dependencies, a present conflict, or have been disabled by the user in the</span><br><span style="color: hsl(0, 100%, 40%);">-menuselect interface. Compiler Flags can also be set in the menuselect</span><br><span style="color: hsl(0, 100%, 40%);">-interface. In this case, the resulting file contains which CFLAGS are in use,</span><br><span style="color: hsl(0, 100%, 40%);">-not which ones are not in use.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-If you would like to save your choices and have them applied against all</span><br><span style="color: hsl(0, 100%, 40%);">-builds, the file can be copied to '~/.asterisk.makeopts' or</span><br><span style="color: hsl(0, 100%, 40%);">-'/etc/asterisk.makeopts'.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Build Process (Makefile targets):</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The 'valgrind' and 'dont-optimize' targets have been removed; their functionality</span><br><span style="color: hsl(0, 100%, 40%);">-is available by enabling the DONT_OPTIMIZE setting in the 'Compiler Flags' menu</span><br><span style="color: hsl(0, 100%, 40%);">-in the menuselect tool.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-It is now possible to run most make targets against a single subdirectory; from</span><br><span style="color: hsl(0, 100%, 40%);">-the top level directory, for example, 'make channels' will run 'make all' in the</span><br><span style="color: hsl(0, 100%, 40%);">-'channels' subdirectory. This also is true for 'clean', 'distclean' and 'depend'.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Sound (prompt) and Music On Hold files:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Beginning with Asterisk 1.4, the sound files and music on hold files supplied for</span><br><span style="color: hsl(0, 100%, 40%);">-use with Asterisk have been replaced with new versions produced from high quality</span><br><span style="color: hsl(0, 100%, 40%);">-master recordings, and are available in three languages (English, French and</span><br><span style="color: hsl(0, 100%, 40%);">-Spanish) and in five formats (WAV (uncompressed), mu-Law, a-Law, GSM and G.729).</span><br><span style="color: hsl(0, 100%, 40%);">-In addition, the music on hold files provided by opsound.org Music are now available</span><br><span style="color: hsl(0, 100%, 40%);">-in the same five formats, but no longer available in MP3 format.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The Asterisk 1.4 tarball packages will only include English prompts in GSM format,</span><br><span style="color: hsl(0, 100%, 40%);">-(as were supplied with previous releases) and the opsound.org MOH files in WAV format.</span><br><span style="color: hsl(0, 100%, 40%);">-All of the other variations can be installed by running 'make menuselect' and</span><br><span style="color: hsl(0, 100%, 40%);">-selecting the packages you wish to install; when you run 'make install', those</span><br><span style="color: hsl(0, 100%, 40%);">-packages will be downloaded and installed along with the standard files included</span><br><span style="color: hsl(0, 100%, 40%);">-in the tarball.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-If for some reason you expect to not have Internet access at the time you will be</span><br><span style="color: hsl(0, 100%, 40%);">-running 'make install', you can make your package selections using menuselect and</span><br><span style="color: hsl(0, 100%, 40%);">-then run 'make sounds' to download (only) the sound packages; this will leave the</span><br><span style="color: hsl(0, 100%, 40%);">-sound packages in the 'sounds' subdirectory to be used later during installation.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-WARNING: Asterisk 1.4 supports a new layout for sound files in multiple languages;</span><br><span style="color: hsl(0, 100%, 40%);">-instead of the alternate-language files being stored in subdirectories underneath</span><br><span style="color: hsl(0, 100%, 40%);">-the existing files (for French, that would be digits/fr, letters/fr, phonetic/fr,</span><br><span style="color: hsl(0, 100%, 40%);">-etc.) the new layout creates one directory under /var/lib/asterisk/sounds for the</span><br><span style="color: hsl(0, 100%, 40%);">-language itself, then places all the sound files for that language under that</span><br><span style="color: hsl(0, 100%, 40%);">-directory and its subdirectories. This is the layout that will be created if you</span><br><span style="color: hsl(0, 100%, 40%);">-select non-English languages to be installed via menuselect, HOWEVER Asterisk does</span><br><span style="color: hsl(0, 100%, 40%);">-not default to this layout and will not find the files in the places it expects them</span><br><span style="color: hsl(0, 100%, 40%);">-to be. If you wish to use this layout, make sure you put 'languageprefix=yes' in your</span><br><span style="color: hsl(0, 100%, 40%);">-/etc/asterisk/asterisk.conf file, so that Asterisk will know how the files were</span><br><span style="color: hsl(0, 100%, 40%);">-installed.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-PBX Core:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The (very old and undocumented) ability to use BYEXTENSION for dialing</span><br><span style="color: hsl(0, 100%, 40%);">- instead of ${EXTEN} has been removed.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Builtin (res_features) transfer functionality attempts to use the context</span><br><span style="color: hsl(0, 100%, 40%);">- defined in TRANSFER_CONTEXT variable of the transferer channel first. If</span><br><span style="color: hsl(0, 100%, 40%);">- not set, it uses the transferee variable. If not set in any channel, it will</span><br><span style="color: hsl(0, 100%, 40%);">- attempt to use the last non macro context. If not possible, it will default</span><br><span style="color: hsl(0, 100%, 40%);">- to the current context.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The autofallthrough setting introduced in Asterisk 1.2 now defaults to 'yes';</span><br><span style="color: hsl(0, 100%, 40%);">- if your dialplan relies on the ability to 'run off the end' of an extension</span><br><span style="color: hsl(0, 100%, 40%);">- and wait for a new extension without using WaitExten() to accomplish that,</span><br><span style="color: hsl(0, 100%, 40%);">- you will need set autofallthrough to 'no' in your extensions.conf file.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Command Line Interface:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* 'show channels concise', designed to be used by applications that will parse</span><br><span style="color: hsl(0, 100%, 40%);">- its output, previously used ':' characters to separate fields. However, some</span><br><span style="color: hsl(0, 100%, 40%);">- of those fields can easily contain that character, making the output not</span><br><span style="color: hsl(0, 100%, 40%);">- parseable. The delimiter has been changed to '!'.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Applications:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* In previous Asterisk releases, many applications would jump to priority n+101</span><br><span style="color: hsl(0, 100%, 40%);">- to indicate some kind of status or error condition. This functionality was</span><br><span style="color: hsl(0, 100%, 40%);">- marked deprecated in Asterisk 1.2. An option to disable it was provided with</span><br><span style="color: hsl(0, 100%, 40%);">- the default value set to 'on'. The default value for the global priority</span><br><span style="color: hsl(0, 100%, 40%);">- jumping option is now 'off'.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The applications Cut, Sort, DBGet, DBPut, SetCIDNum, SetCIDName, SetRDNIS,</span><br><span style="color: hsl(0, 100%, 40%);">- AbsoluteTimeout, DigitTimeout, ResponseTimeout, SetLanguage, GetGroupCount,</span><br><span style="color: hsl(0, 100%, 40%);">- and GetGroupMatchCount were all deprecated in version 1.2, and therefore have</span><br><span style="color: hsl(0, 100%, 40%);">- been removed in this version. You should use the equivalent dialplan</span><br><span style="color: hsl(0, 100%, 40%);">- function in places where you have previously used one of these applications.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The application SetGlobalVar has been deprecated. You should replace uses</span><br><span style="color: hsl(0, 100%, 40%);">- of this application with the following combination of Set and GLOBAL():</span><br><span style="color: hsl(0, 100%, 40%);">- Set(GLOBAL(name)=value). You may also access global variables exclusively by</span><br><span style="color: hsl(0, 100%, 40%);">- using the GLOBAL() dialplan function, instead of relying on variable</span><br><span style="color: hsl(0, 100%, 40%);">- interpolation falling back to globals when no channel variable is set.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The application SetVar has been renamed to Set. The syntax SetVar was marked</span><br><span style="color: hsl(0, 100%, 40%);">- deprecated in version 1.2 and is no longer recognized in this version. The</span><br><span style="color: hsl(0, 100%, 40%);">- use of Set with multiple argument pairs has also been deprecated. Please</span><br><span style="color: hsl(0, 100%, 40%);">- separate each name/value pair into its own dialplan line.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* app_read has been updated to use the newer options codes, using "skip" or</span><br><span style="color: hsl(0, 100%, 40%);">- "noanswer" will not work. Use s or n. Also there is a new feature i, for</span><br><span style="color: hsl(0, 100%, 40%);">- using indication tones, so typing in skip would give you unexpected results.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* OSPAuth is added to authenticate OSP tokens in in_bound call setup messages.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The CONNECT event in the queue_log from app_queue now has a second field</span><br><span style="color: hsl(0, 100%, 40%);">- in addition to the holdtime field. It contains the unique ID of the</span><br><span style="color: hsl(0, 100%, 40%);">- queue member channel that is taking the call. This is useful when trying</span><br><span style="color: hsl(0, 100%, 40%);">- to link recording filenames back to a particular call from the queue.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The old/current behavior of app_queue has a serial type behavior</span><br><span style="color: hsl(0, 100%, 40%);">- in that the queue will make all waiting callers wait in the queue</span><br><span style="color: hsl(0, 100%, 40%);">- even if there is more than one available member ready to take</span><br><span style="color: hsl(0, 100%, 40%);">- calls until the head caller is connected with the member they</span><br><span style="color: hsl(0, 100%, 40%);">- were trying to get to. The next waiting caller in line then</span><br><span style="color: hsl(0, 100%, 40%);">- becomes the head caller, and they are then connected with the</span><br><span style="color: hsl(0, 100%, 40%);">- next available member and all available members and waiting callers</span><br><span style="color: hsl(0, 100%, 40%);">- waits while this happens. This cycle continues until there are</span><br><span style="color: hsl(0, 100%, 40%);">- no more available members or waiting callers, whichever comes first.</span><br><span style="color: hsl(0, 100%, 40%);">- The new behavior, enabled by setting autofill=yes in queues.conf</span><br><span style="color: hsl(0, 100%, 40%);">- either at the [general] level to default for all queues or</span><br><span style="color: hsl(0, 100%, 40%);">- to set on a per-queue level, makes sure that when the waiting</span><br><span style="color: hsl(0, 100%, 40%);">- callers are connecting with available members in a parallel fashion</span><br><span style="color: hsl(0, 100%, 40%);">- until there are no more available members or no more waiting callers,</span><br><span style="color: hsl(0, 100%, 40%);">- whichever comes first. This is probably more along the lines of how</span><br><span style="color: hsl(0, 100%, 40%);">- one would expect a queue should work and in most cases, you will want</span><br><span style="color: hsl(0, 100%, 40%);">- to enable this new behavior. If you do not specify or comment out this</span><br><span style="color: hsl(0, 100%, 40%);">- option, it will default to "no" to keep backward compatability with the old</span><br><span style="color: hsl(0, 100%, 40%);">- behavior.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Queues depend on the channel driver reporting the proper state</span><br><span style="color: hsl(0, 100%, 40%);">- for each member of the queue. To get proper signalling on</span><br><span style="color: hsl(0, 100%, 40%);">- queue members that use the SIP channel driver, you need to</span><br><span style="color: hsl(0, 100%, 40%);">- enable a call limit (could be set to a high value so it</span><br><span style="color: hsl(0, 100%, 40%);">- is not put into action) and also make sure that both inbound</span><br><span style="color: hsl(0, 100%, 40%);">- and outbound calls are accounted for.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Example:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- [general]</span><br><span style="color: hsl(0, 100%, 40%);">- limitonpeer = yes</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- [peername]</span><br><span style="color: hsl(0, 100%, 40%);">- type=friend</span><br><span style="color: hsl(0, 100%, 40%);">- call-limit=10</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The app_queue application now has the ability to use MixMonitor to</span><br><span style="color: hsl(0, 100%, 40%);">- record conversations queue members are having with queue callers. Please</span><br><span style="color: hsl(0, 100%, 40%);">- see configs/queues.conf.sample for more information on this option.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The app_queue application strategy called 'roundrobin' has been deprecated</span><br><span style="color: hsl(0, 100%, 40%);">- for this release. Users are encouraged to use 'rrmemory' instead, since it</span><br><span style="color: hsl(0, 100%, 40%);">- provides more 'true' round-robin call delivery. For the Asterisk 1.6 release,</span><br><span style="color: hsl(0, 100%, 40%);">- 'rrmemory' will be renamed 'roundrobin'.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The app_queue application option called 'monitor-join' has been deprecated</span><br><span style="color: hsl(0, 100%, 40%);">- for this release. Users are encouraged to use 'monitor-type=mixmonitor' instead,</span><br><span style="color: hsl(0, 100%, 40%);">- since it provides the same functionality but is not dependent on soxmix or some</span><br><span style="color: hsl(0, 100%, 40%);">- other external program in order to mix the audio.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* app_meetme: The 'm' option (monitor) is renamed to 'l' (listen only), and</span><br><span style="color: hsl(0, 100%, 40%);">- the 'm' option now provides the functionality of "initially muted".</span><br><span style="color: hsl(0, 100%, 40%);">- In practice, most existing dialplans using the 'm' flag should not notice</span><br><span style="color: hsl(0, 100%, 40%);">- any difference, unless the keypad menu is enabled, allowing the user</span><br><span style="color: hsl(0, 100%, 40%);">- to unmute themsleves.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* ast_play_and_record would attempt to cancel the recording if a DTMF</span><br><span style="color: hsl(0, 100%, 40%);">- '0' was received. This behavior was not documented in most of the</span><br><span style="color: hsl(0, 100%, 40%);">- applications that used ast_play_and_record and the return codes from</span><br><span style="color: hsl(0, 100%, 40%);">- ast_play_and_record weren't checked for properly.</span><br><span style="color: hsl(0, 100%, 40%);">- ast_play_and_record has been changed so that '0' no longer cancels a</span><br><span style="color: hsl(0, 100%, 40%);">- recording. If you want to allow DTMF digits to cancel an</span><br><span style="color: hsl(0, 100%, 40%);">- in-progress recording use ast_play_and_record_full which allows you</span><br><span style="color: hsl(0, 100%, 40%);">- to specify which DTMF digits can be used to accept a recording and</span><br><span style="color: hsl(0, 100%, 40%);">- which digits can be used to cancel a recording.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* ast_app_messagecount has been renamed to ast_app_inboxcount. There is now a</span><br><span style="color: hsl(0, 100%, 40%);">- new ast_app_messagecount function which takes a single context/mailbox/folder</span><br><span style="color: hsl(0, 100%, 40%);">- mailbox specification and returns the message count for that folder only.</span><br><span style="color: hsl(0, 100%, 40%);">- This addresses the deficiency of not being able to count the number of</span><br><span style="color: hsl(0, 100%, 40%);">- messages in folders other than INBOX and Old.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The exit behavior of the AGI applications has changed. Previously, when</span><br><span style="color: hsl(0, 100%, 40%);">- a connection to an AGI server failed, the application would cause the channel</span><br><span style="color: hsl(0, 100%, 40%);">- to immediately stop dialplan execution and hangup. Now, the only time that</span><br><span style="color: hsl(0, 100%, 40%);">- the AGI applications will cause the channel to stop dialplan execution is</span><br><span style="color: hsl(0, 100%, 40%);">- when the channel itself requests hangup. The AGI applications now set an</span><br><span style="color: hsl(0, 100%, 40%);">- AGISTATUS variable which will allow you to find out whether running the AGI</span><br><span style="color: hsl(0, 100%, 40%);">- was successful or not.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Previously, there was no way to handle the case where Asterisk was unable to</span><br><span style="color: hsl(0, 100%, 40%);">- locally execute an AGI script for some reason. In this case, dialplan</span><br><span style="color: hsl(0, 100%, 40%);">- execution will continue as it did before, but the AGISTATUS variable will be</span><br><span style="color: hsl(0, 100%, 40%);">- set to "FAILURE".</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- A locally executed AGI script can now exit with a non-zero exit code and this</span><br><span style="color: hsl(0, 100%, 40%);">- failure will be detected by Asterisk. If an AGI script exits with a non-zero</span><br><span style="color: hsl(0, 100%, 40%);">- exit code, the AGISTATUS variable will be set to "FAILURE" as opposed to</span><br><span style="color: hsl(0, 100%, 40%);">- "SUCCESS".</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* app_voicemail: The ODBC_STORAGE capability now requires the extended table format</span><br><span style="color: hsl(0, 100%, 40%);">- previously used only by EXTENDED_ODBC_STORAGE. This means that you will need to update</span><br><span style="color: hsl(0, 100%, 40%);">- your table format using the schema provided in doc/odbcstorage.txt</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* app_waitforsilence: Fixes have been made to this application which changes the</span><br><span style="color: hsl(0, 100%, 40%);">- default behavior with how quickly it returns. You can maintain "old-style" behavior</span><br><span style="color: hsl(0, 100%, 40%);">- with the addition/use of a third "timeout" parameter.</span><br><span style="color: hsl(0, 100%, 40%);">- Please consult the application documentation and make changes to your dialplan</span><br><span style="color: hsl(0, 100%, 40%);">- if appropriate.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Manager:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* After executing the 'status' manager action, the "Status" manager events</span><br><span style="color: hsl(0, 100%, 40%);">- included the header "CallerID:" which was actually only the CallerID number,</span><br><span style="color: hsl(0, 100%, 40%);">- and not the full CallerID string. This header has been renamed to</span><br><span style="color: hsl(0, 100%, 40%);">- "CallerIDNum". For compatibility purposes, the CallerID parameter will remain</span><br><span style="color: hsl(0, 100%, 40%);">- until after the release of 1.4, when it will be removed. Please use the time</span><br><span style="color: hsl(0, 100%, 40%);">- during the 1.4 release to make this transition.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The AgentConnect event now has an additional field called "BridgedChannel"</span><br><span style="color: hsl(0, 100%, 40%);">- which contains the unique ID of the queue member channel that is taking the</span><br><span style="color: hsl(0, 100%, 40%);">- call. This is useful when trying to link recording filenames back to</span><br><span style="color: hsl(0, 100%, 40%);">- a particular call from the queue.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* app_userevent has been modified to always send Event: UserEvent with the</span><br><span style="color: hsl(0, 100%, 40%);">- additional header UserEvent: <userspec>. Also, the Channel and UniqueID</span><br><span style="color: hsl(0, 100%, 40%);">- headers are not automatically sent, unless you specify them as separate</span><br><span style="color: hsl(0, 100%, 40%);">- arguments. Please see the application help for the new syntax.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* app_meetme: Mute and Unmute events are now reported via the Manager API.</span><br><span style="color: hsl(0, 100%, 40%);">- Native Manager API commands MeetMeMute and MeetMeUnmute are provided, which</span><br><span style="color: hsl(0, 100%, 40%);">- are easier to use than "Action Command:". The MeetMeStopTalking event has</span><br><span style="color: hsl(0, 100%, 40%);">- also been deprecated in favor of the already existing MeetmeTalking event</span><br><span style="color: hsl(0, 100%, 40%);">- with a "Status" of "on" or "off" added.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* OriginateFailure and OriginateSuccess events were replaced by event</span><br><span style="color: hsl(0, 100%, 40%);">- OriginateResponse with a header named "Response" to indicate success or</span><br><span style="color: hsl(0, 100%, 40%);">- failure</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Variables:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The builtin variables ${CALLERID}, ${CALLERIDNAME}, ${CALLERIDNUM},</span><br><span style="color: hsl(0, 100%, 40%);">- ${CALLERANI}, ${DNID}, ${RDNIS}, ${DATETIME}, ${TIMESTAMP}, ${ACCOUNTCODE},</span><br><span style="color: hsl(0, 100%, 40%);">- and ${LANGUAGE} have all been deprecated in favor of their related dialplan</span><br><span style="color: hsl(0, 100%, 40%);">- functions. You are encouraged to move towards the associated dialplan</span><br><span style="color: hsl(0, 100%, 40%);">- function, as these variables will be removed in a future release.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The CDR-CSV variables uniqueid, userfield, and basing time on GMT are now</span><br><span style="color: hsl(0, 100%, 40%);">- adjustable from cdr.conf, instead of recompiling.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* OSP applications exports several new variables, ${OSPINHANDLE},</span><br><span style="color: hsl(0, 100%, 40%);">- ${OSPOUTHANDLE}, ${OSPINTOKEN}, ${OSPOUTTOKEN}, ${OSPCALLING},</span><br><span style="color: hsl(0, 100%, 40%);">- ${OSPINTIMELIMIT}, and ${OSPOUTTIMELIMIT}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Builtin transfer functionality sets the variable ${TRANSFERERNAME} in the new</span><br><span style="color: hsl(0, 100%, 40%);">- created channel. This variables holds the channel name of the transferer.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The dial plan variable PRI_CAUSE will be removed from future versions</span><br><span style="color: hsl(0, 100%, 40%);">- of Asterisk.</span><br><span style="color: hsl(0, 100%, 40%);">- It is replaced by adding a cause value to the hangup() application.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Functions:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The function ${CHECK_MD5()} has been deprecated in favor of using an</span><br><span style="color: hsl(0, 100%, 40%);">- expression: $[${MD5(<string>)} = ${saved_md5}].</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The 'builtin' functions that used to be combined in pbx_functions.so are</span><br><span style="color: hsl(0, 100%, 40%);">- now built as separate modules. If you are not using 'autoload=yes' in your</span><br><span style="color: hsl(0, 100%, 40%);">- modules.conf file then you will need to explicitly load the modules that</span><br><span style="color: hsl(0, 100%, 40%);">- contain the functions you want to use.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The ENUMLOOKUP() function with the 'c' option (for counting the number of</span><br><span style="color: hsl(0, 100%, 40%);">- records), but the lookup fails to match any records, the returned value will</span><br><span style="color: hsl(0, 100%, 40%);">- now be "0" instead of blank.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The REALTIME() function is now available in version 1.4 and app_realtime has</span><br><span style="color: hsl(0, 100%, 40%);">- been deprecated in favor of the new function. app_realtime will be removed</span><br><span style="color: hsl(0, 100%, 40%);">- completely with the version 1.6 release so please take the time between</span><br><span style="color: hsl(0, 100%, 40%);">- releases to make any necessary changes</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The QUEUEAGENTCOUNT() function has been deprecated in favor of</span><br><span style="color: hsl(0, 100%, 40%);">- QUEUE_MEMBER_COUNT().</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The IAX2 channel:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* It is possible that previous configurations depended on the order in which</span><br><span style="color: hsl(0, 100%, 40%);">- peers and users were specified in iax.conf for forcing the order in which</span><br><span style="color: hsl(0, 100%, 40%);">- chan_iax2 matched against them. This behavior is going away and is considered</span><br><span style="color: hsl(0, 100%, 40%);">- deprecated in this version. Avoid having ambiguous peer and user entries and</span><br><span style="color: hsl(0, 100%, 40%);">- to make things easy on yourself, always set the "username" option for users</span><br><span style="color: hsl(0, 100%, 40%);">- so that the remote end can match on that exactly instead of trying to infer</span><br><span style="color: hsl(0, 100%, 40%);">- which user you want based on host.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- If you would like to go ahead and use the new behavior which doesn't use the</span><br><span style="color: hsl(0, 100%, 40%);">- order in the config file to influence matching order, then change the</span><br><span style="color: hsl(0, 100%, 40%);">- MAX_PEER_BUCKETS define in chan_iax2.c to a value greater than one. An</span><br><span style="color: hsl(0, 100%, 40%);">- example is provided there. By changing this, you will get *much* better</span><br><span style="color: hsl(0, 100%, 40%);">- performance on systems that do a lot of peer and user lookups as they will be</span><br><span style="color: hsl(0, 100%, 40%);">- stored in memory in a much more efficient manner.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The "mailboxdetail" option has been deprecated. Previously, if this option</span><br><span style="color: hsl(0, 100%, 40%);">- was not enabled, the 2 byte MSGCOUNT information element would be set to all</span><br><span style="color: hsl(0, 100%, 40%);">- 1's to indicate there there is some number of messages waiting. With this</span><br><span style="color: hsl(0, 100%, 40%);">- option enabled, the number of new messages were placed in one byte and the</span><br><span style="color: hsl(0, 100%, 40%);">- number of old messages are placed in the other. This is now the default</span><br><span style="color: hsl(0, 100%, 40%);">- (and the only) behavior.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The SIP channel:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The "incominglimit" setting is replaced by the "call-limit" setting in</span><br><span style="color: hsl(0, 100%, 40%);">- sip.conf.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* OSP support code is removed from SIP channel to OSP applications. ospauth</span><br><span style="color: hsl(0, 100%, 40%);">- option in sip.conf is removed to osp.conf as authpolicy. allowguest option</span><br><span style="color: hsl(0, 100%, 40%);">- in sip.conf cannot be set as osp anymore.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The Asterisk RTP stack has been changed in regards to RFC2833 reception</span><br><span style="color: hsl(0, 100%, 40%);">- and transmission. Packets will now be sent with proper duration instead of all</span><br><span style="color: hsl(0, 100%, 40%);">- at once. If you are receiving calls from a pre-1.4 Asterisk installation you</span><br><span style="color: hsl(0, 100%, 40%);">- will want to turn on the rfc2833compensate option. Without this option your</span><br><span style="color: hsl(0, 100%, 40%);">- DTMF reception may act poorly.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The $SIPUSERAGENT dialplan variable is deprecated and will be removed</span><br><span style="color: hsl(0, 100%, 40%);">- in coming versions of Asterisk. Please use the dialplan function</span><br><span style="color: hsl(0, 100%, 40%);">- SIPCHANINFO(useragent) instead.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The ALERT_INFO dialplan variable is deprecated and will be removed</span><br><span style="color: hsl(0, 100%, 40%);">- in coming versions of Asterisk. Please use the dialplan application</span><br><span style="color: hsl(0, 100%, 40%);">- sipaddheader() to add the "Alert-Info" header to the outbound invite.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The "canreinvite" option has changed. canreinvite=yes used to disable</span><br><span style="color: hsl(0, 100%, 40%);">- re-invites if you had NAT=yes. In 1.4, you need to set canreinvite=nonat</span><br><span style="color: hsl(0, 100%, 40%);">- to disable re-invites when NAT=yes. This is propably what you want.</span><br><span style="color: hsl(0, 100%, 40%);">- The settings are now: "yes", "no", "nonat", "update". Please consult</span><br><span style="color: hsl(0, 100%, 40%);">- sip.conf.sample for detailed information.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The Zap channel:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Support for MFC/R2 has been removed, as it has not been functional for some</span><br><span style="color: hsl(0, 100%, 40%);">- time and it has no maintainer.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The Agent channel:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Callback mode (AgentCallbackLogin) is now deprecated, since the entire function</span><br><span style="color: hsl(0, 100%, 40%);">- it provided can be done using dialplan logic, without requiring additional</span><br><span style="color: hsl(0, 100%, 40%);">- channel and module locks (which frequently caused deadlocks). An example of</span><br><span style="color: hsl(0, 100%, 40%);">- how to do this using AEL dialplan is in doc/queues-with-callback-members.txt.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-The G726-32 codec:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* It has been determined that previous versions of Asterisk used the wrong codeword</span><br><span style="color: hsl(0, 100%, 40%);">- packing order for G726-32 data. This version supports both available packing orders,</span><br><span style="color: hsl(0, 100%, 40%);">- and can transcode between them. It also now selects the proper order when</span><br><span style="color: hsl(0, 100%, 40%);">- negotiating with a SIP peer based on the codec name supplied in the SDP. However,</span><br><span style="color: hsl(0, 100%, 40%);">- there are existing devices that improperly request one order and then use another;</span><br><span style="color: hsl(0, 100%, 40%);">- Sipura and Grandstream ATAs are known to do this, and there may be others. To</span><br><span style="color: hsl(0, 100%, 40%);">- be able to continue to use these devices with this version of Asterisk and the</span><br><span style="color: hsl(0, 100%, 40%);">- G726-32 codec, a configuration parameter called 'g726nonstandard' has been added</span><br><span style="color: hsl(0, 100%, 40%);">- to sip.conf, so that Asterisk can use the packing order expected by the device (even</span><br><span style="color: hsl(0, 100%, 40%);">- though it requested a different order). In addition, the internal format number for</span><br><span style="color: hsl(0, 100%, 40%);">- G726-32 has been changed, and the old number is now assigned to AAL2-G726-32. The</span><br><span style="color: hsl(0, 100%, 40%);">- result of this is that this version of Asterisk will be able to interoperate over</span><br><span style="color: hsl(0, 100%, 40%);">- IAX2 with older versions of Asterisk, as long as this version is told to allow</span><br><span style="color: hsl(0, 100%, 40%);">- 'g726aal2' instead of 'g726' as the codec for the call.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Installation:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* On BSD systems, the installation directories have changed to more "FreeBSDish"</span><br><span style="color: hsl(0, 100%, 40%);">- directories. On startup, Asterisk will look for the main configuration in</span><br><span style="color: hsl(0, 100%, 40%);">- /usr/local/etc/asterisk/asterisk.conf</span><br><span style="color: hsl(0, 100%, 40%);">- If you have an old installation, you might want to remove the binaries and</span><br><span style="color: hsl(0, 100%, 40%);">- move the configuration files to the new locations. The following directories</span><br><span style="color: hsl(0, 100%, 40%);">- are now default:</span><br><span style="color: hsl(0, 100%, 40%);">- ASTLIBDIR /usr/local/lib/asterisk</span><br><span style="color: hsl(0, 100%, 40%);">- ASTVARLIBDIR /usr/local/share/asterisk</span><br><span style="color: hsl(0, 100%, 40%);">- ASTETCDIR /usr/local/etc/asterisk</span><br><span style="color: hsl(0, 100%, 40%);">- ASTBINDIR /usr/local/bin/asterisk</span><br><span style="color: hsl(0, 100%, 40%);">- ASTSBINDIR /usr/local/sbin/asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Music on Hold:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The music on hold handling has been changed in some significant ways in hopes</span><br><span style="color: hsl(0, 100%, 40%);">- to make it work in a way that is much less confusing to users. Behavior will</span><br><span style="color: hsl(0, 100%, 40%);">- not change if the same configuration is used from older versions of Asterisk.</span><br><span style="color: hsl(0, 100%, 40%);">- However, there are some new configuration options that will make things work</span><br><span style="color: hsl(0, 100%, 40%);">- in a way that makes more sense.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Previously, many of the channel drivers had an option called "musicclass" or</span><br><span style="color: hsl(0, 100%, 40%);">- something similar. This option set what music on hold class this channel</span><br><span style="color: hsl(0, 100%, 40%);">- would *hear* when put on hold. Some people expected (with good reason) that</span><br><span style="color: hsl(0, 100%, 40%);">- this option was to configure what music on hold class to play when putting</span><br><span style="color: hsl(0, 100%, 40%);">- the bridged channel on hold. This option has now been deprecated.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Two new music on hold related configuration options for channel drivers have</span><br><span style="color: hsl(0, 100%, 40%);">- been introduced. Some channel drivers support both options, some just one,</span><br><span style="color: hsl(0, 100%, 40%);">- and some support neither of them. Check the sample configuration files to see</span><br><span style="color: hsl(0, 100%, 40%);">- which options apply to which channel driver.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- The "mohsuggest" option specifies which music on hold class to suggest to the</span><br><span style="color: hsl(0, 100%, 40%);">- bridged channel when putting them on hold. The only way that this class can</span><br><span style="color: hsl(0, 100%, 40%);">- be overridden is if the bridged channel has a specific music class set that</span><br><span style="color: hsl(0, 100%, 40%);">- was done in the dialplan using Set(CHANNEL(musicclass)=something).</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- The "mohinterpret" option is similar to the old "musicclass" option. It</span><br><span style="color: hsl(0, 100%, 40%);">- specifies which music on hold class this channel would like to listen to when</span><br><span style="color: hsl(0, 100%, 40%);">- put on hold. This music class is only effective if this channel has no music</span><br><span style="color: hsl(0, 100%, 40%);">- class set on it from the dialplan and the bridged channel putting this one on</span><br><span style="color: hsl(0, 100%, 40%);">- hold had no "mohsuggest" setting.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- The IAX2 and Zap channel drivers have an additional feature for the</span><br><span style="color: hsl(0, 100%, 40%);">- "mohinterpret" option. If this option is set to "passthrough", then these</span><br><span style="color: hsl(0, 100%, 40%);">- channel drivers will pass through the HOLD message in signalling instead of</span><br><span style="color: hsl(0, 100%, 40%);">- starting music on hold on the channel. An example for how this would be</span><br><span style="color: hsl(0, 100%, 40%);">- useful is in an enterprise network of Asterisk servers. When one phone on one</span><br><span style="color: hsl(0, 100%, 40%);">- server puts a phone on a different server on hold, the remote server will be</span><br><span style="color: hsl(0, 100%, 40%);">- responsible for playing the hold music to its local phone that was put on</span><br><span style="color: hsl(0, 100%, 40%);">- hold instead of the far end server across the network playing the music.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-CDR Records:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The behavior of the "clid" field of the CDR has always been that it will</span><br><span style="color: hsl(0, 100%, 40%);">- contain the callerid ANI if it is set, or the callerid number if ANI was not</span><br><span style="color: hsl(0, 100%, 40%);">- set. When using the "callerid" option for various channel drivers, some</span><br><span style="color: hsl(0, 100%, 40%);">- would set ANI and some would not. This has been cleared up so that all</span><br><span style="color: hsl(0, 100%, 40%);">- channel drivers set ANI. If you would like to change the callerid number</span><br><span style="color: hsl(0, 100%, 40%);">- on the channel from the dialplan and have that change also show up in the</span><br><span style="color: hsl(0, 100%, 40%);">- CDR, then you *must* set CALLERID(ANI) as well as CALLERID(num).</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-API:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* There are some API functions that were not previously prefixed with the 'ast_'</span><br><span style="color: hsl(0, 100%, 40%);">- prefix but now are; these include the ADSI, ODBC and AGI interfaces. If you</span><br><span style="color: hsl(0, 100%, 40%);">- have a module that uses the services provided by res_adsi, res_odbc, or</span><br><span style="color: hsl(0, 100%, 40%);">- res_agi, you will need to add ast_ prefixes to the functions that you call</span><br><span style="color: hsl(0, 100%, 40%);">- from those modules.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Formats:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* format_wav: The GAIN preprocessor definition has been changed from 2 to 0</span><br><span style="color: hsl(0, 100%, 40%);">- in Asterisk 1.4. This change was made in response to user complaints of</span><br><span style="color: hsl(0, 100%, 40%);">- choppiness or the clipping of loud signal peaks. The GAIN preprocessor</span><br><span style="color: hsl(0, 100%, 40%);">- definition will be retained in Asterisk 1.4, but will be removed in a</span><br><span style="color: hsl(0, 100%, 40%);">- future release. The use of GAIN for the increasing of voicemail message</span><br><span style="color: hsl(0, 100%, 40%);">- volume should use the 'volgain' option in voicemail.conf</span><br><span>diff --git a/UPGRADE-1.6.txt b/UPGRADE-1.6.txt</span><br><span>deleted file mode 100644</span><br><span>index 4ae4401..0000000</span><br><span>--- a/UPGRADE-1.6.txt</span><br><span>+++ /dev/null</span><br><span>@@ -1,277 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-=========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== Information for upgrading from Asterisk 1.4 to 1.6</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== These files document all the changes that MUST be taken</span><br><span style="color: hsl(0, 100%, 40%);">-=== into account when upgrading between the Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== versions listed below. These changes may require that</span><br><span style="color: hsl(0, 100%, 40%);">-=== you modify your configuration files, dialplan or (in</span><br><span style="color: hsl(0, 100%, 40%);">-=== some cases) source code if you have your own Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== modules or patches. These files also includes advance</span><br><span style="color: hsl(0, 100%, 40%);">-=== notice of any functionality that has been marked as</span><br><span style="color: hsl(0, 100%, 40%);">-=== 'deprecated' and may be removed in a future release,</span><br><span style="color: hsl(0, 100%, 40%);">-=== along with the suggested replacement functionality.</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AEL:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Macros are now implemented underneath with the Gosub() application.</span><br><span style="color: hsl(0, 100%, 40%);">- Heaven Help You if you wrote code depending on any aspect of this!</span><br><span style="color: hsl(0, 100%, 40%);">- Previous to 1.6, macros were implemented with the Macro() app, which</span><br><span style="color: hsl(0, 100%, 40%);">- provided a nice feature of auto-returning. The compiler will do its</span><br><span style="color: hsl(0, 100%, 40%);">- best to insert a Return() app call at the end of your macro if you did</span><br><span style="color: hsl(0, 100%, 40%);">- not include it, but really, you should make sure that all execution</span><br><span style="color: hsl(0, 100%, 40%);">- paths within your macros end in "return;".</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The conf2ael program is 'introduced' in this release; it is in a rather</span><br><span style="color: hsl(0, 100%, 40%);">- crude state, but deemed useful for making a first pass at converting</span><br><span style="color: hsl(0, 100%, 40%);">- extensions.conf code into AEL. More intelligence will come with time.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Core:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The 'languageprefix' option in asterisk.conf is now deprecated, and</span><br><span style="color: hsl(0, 100%, 40%);">- the default sound file layout for non-English sounds is the 'new</span><br><span style="color: hsl(0, 100%, 40%);">- style' layout introduced in Asterisk 1.4 (and used by the automatic</span><br><span style="color: hsl(0, 100%, 40%);">- sound file installer in the Makefile).</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The ast_expr2 stuff has been modified to handle floating-point numbers.</span><br><span style="color: hsl(0, 100%, 40%);">- Numbers of the format D.D are now acceptable input for the expr parser,</span><br><span style="color: hsl(0, 100%, 40%);">- Where D is a string of base-10 digits. All math is now done in "long double",</span><br><span style="color: hsl(0, 100%, 40%);">- if it is available on your compiler/architecture. This was half-way between</span><br><span style="color: hsl(0, 100%, 40%);">- a bug-fix (because the MATH func returns fp by default), and an enhancement.</span><br><span style="color: hsl(0, 100%, 40%);">- Also, for those counting on, or needing, integer operations, a series of</span><br><span style="color: hsl(0, 100%, 40%);">- 'functions' were also added to the expr language, to allow several styles</span><br><span style="color: hsl(0, 100%, 40%);">- of rounding/truncation, along with a set of common floating point operations,</span><br><span style="color: hsl(0, 100%, 40%);">- like sin, cos, tan, log, pow, etc. The ability to call external functions</span><br><span style="color: hsl(0, 100%, 40%);">- like CDR(), etc. was also added, without having to use the ${...} notation.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The delimiter passed to applications has been changed to the comma (','), as</span><br><span style="color: hsl(0, 100%, 40%);">- that is what people are used to using within extensions.conf. If you are</span><br><span style="color: hsl(0, 100%, 40%);">- using realtime extensions, you will need to translate your existing dialplan</span><br><span style="color: hsl(0, 100%, 40%);">- to use this separator. To use a literal comma, you need merely to escape it</span><br><span style="color: hsl(0, 100%, 40%);">- with a backslash ('\'). Another possible side effect is that you may need to</span><br><span style="color: hsl(0, 100%, 40%);">- remove the obscene level of backslashing that was necessary for the dialplan</span><br><span style="color: hsl(0, 100%, 40%);">- to work correctly in 1.4 and previous versions. This should make writing</span><br><span style="color: hsl(0, 100%, 40%);">- dialplans less painful in the future, albeit with the pain of a one-time</span><br><span style="color: hsl(0, 100%, 40%);">- conversion. If you would like to avoid this conversion immediately, set</span><br><span style="color: hsl(0, 100%, 40%);">- pbx_realtime=1.4 in the [compat] section of asterisk.conf. After</span><br><span style="color: hsl(0, 100%, 40%);">- transitioning, set pbx_realtime=1.6 in the same section.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* For the same purpose as above, you may set res_agi=1.4 in the [compat]</span><br><span style="color: hsl(0, 100%, 40%);">- section of asterisk.conf to continue to use the '|' delimiter in the EXEC</span><br><span style="color: hsl(0, 100%, 40%);">- arguments of AGI applications. After converting to use the ',' delimiter,</span><br><span style="color: hsl(0, 100%, 40%);">- change this option to res_agi=1.6.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* As a side effect of the application delimiter change, many places that used</span><br><span style="color: hsl(0, 100%, 40%);">- to need quotes in order to get the proper meaning are no longer required.</span><br><span style="color: hsl(0, 100%, 40%);">- You now only need to quote strings in configuration files if you literally</span><br><span style="color: hsl(0, 100%, 40%);">- want quotation marks within a string.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Any applications run that contain the pipe symbol but not a comma symbol will</span><br><span style="color: hsl(0, 100%, 40%);">- get a warning printed to the effect that the application delimiter has changed.</span><br><span style="color: hsl(0, 100%, 40%);">- However, there are legitimate reasons why this might be useful in certain</span><br><span style="color: hsl(0, 100%, 40%);">- situations, so this warning can be turned off with the dontwarn option in</span><br><span style="color: hsl(0, 100%, 40%);">- asterisk.conf.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The logger.conf option 'rotatetimestamp' has been deprecated in favor of</span><br><span style="color: hsl(0, 100%, 40%);">- 'rotatestrategy'. This new option supports a 'rotate' strategy that more</span><br><span style="color: hsl(0, 100%, 40%);">- closely mimics the system logger in terms of file rotation.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The concise versions of various CLI commands are now deprecated. We recommend</span><br><span style="color: hsl(0, 100%, 40%);">- using the manager interface (AMI) for application integration with Asterisk.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Voicemail:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The voicemail configuration values 'maxmessage' and 'minmessage' have</span><br><span style="color: hsl(0, 100%, 40%);">- been changed to 'maxsecs' and 'minsecs' to clarify their purpose and</span><br><span style="color: hsl(0, 100%, 40%);">- to make them more distinguishable from 'maxmsgs', which sets folder</span><br><span style="color: hsl(0, 100%, 40%);">- size. The old variables will continue to work in this version, albeit</span><br><span style="color: hsl(0, 100%, 40%);">- with a deprecation warning.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* If you use any interface for modifying voicemail aside from the built in</span><br><span style="color: hsl(0, 100%, 40%);">- dialplan applications, then the option "pollmailboxes" *must* be set in</span><br><span style="color: hsl(0, 100%, 40%);">- voicemail.conf for message waiting indication (MWI) to work properly. This</span><br><span style="color: hsl(0, 100%, 40%);">- is because Voicemail notification is now event based instead of polling</span><br><span style="color: hsl(0, 100%, 40%);">- based. The channel drivers are no longer responsible for constantly manually</span><br><span style="color: hsl(0, 100%, 40%);">- checking mailboxes for changes so that they can send MWI information to users.</span><br><span style="color: hsl(0, 100%, 40%);">- Examples of situations that would require this option are web interfaces to</span><br><span style="color: hsl(0, 100%, 40%);">- voicemail or an email client in the case of using IMAP storage.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Applications:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* ChanIsAvail() now has a 't' option, which allows the specified device</span><br><span style="color: hsl(0, 100%, 40%);">- to be queried for state without consulting the channel drivers. This</span><br><span style="color: hsl(0, 100%, 40%);">- performs mostly a 'ChanExists' sort of function.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* ChannelRedirect() will not terminate the channel that fails to do a</span><br><span style="color: hsl(0, 100%, 40%);">- channelredirect as it has done previously. Instead CHANNELREDIRECT_STATUS</span><br><span style="color: hsl(0, 100%, 40%);">- will reflect if the attempt was successful of not.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* SetCallerPres() has been replaced with the CALLERPRES() dialplan function</span><br><span style="color: hsl(0, 100%, 40%);">- and is now deprecated.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* DISA()'s fifth argument is now an options argument. If you have previously</span><br><span style="color: hsl(0, 100%, 40%);">- used 'NOANSWER' in this argument, you'll need to convert that to the new</span><br><span style="color: hsl(0, 100%, 40%);">- option 'n'.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Macro() is now deprecated. If you need subroutines, you should use the</span><br><span style="color: hsl(0, 100%, 40%);">- Gosub()/Return() applications. To replace MacroExclusive(), we have</span><br><span style="color: hsl(0, 100%, 40%);">- introduced dialplan functions LOCK(), TRYLOCK(), and UNLOCK(). You may use</span><br><span style="color: hsl(0, 100%, 40%);">- these functions in any location where you desire to ensure that only one</span><br><span style="color: hsl(0, 100%, 40%);">- channel is executing that path at any one time. The Macro() applications</span><br><span style="color: hsl(0, 100%, 40%);">- are deprecated for performance reasons. However, since Macro() has been</span><br><span style="color: hsl(0, 100%, 40%);">- around for a long time and so many dialplans depend heavily on it, for the</span><br><span style="color: hsl(0, 100%, 40%);">- sake of backwards compatibility it will not be removed . It is also worth</span><br><span style="color: hsl(0, 100%, 40%);">- noting that using both Macro() and GoSub() at the same time is _heavily_</span><br><span style="color: hsl(0, 100%, 40%);">- discouraged.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Read() now sets a READSTATUS variable on exit. It does NOT automatically</span><br><span style="color: hsl(0, 100%, 40%);">- return -1 (and hangup) anymore on error. If you want to hangup on error,</span><br><span style="color: hsl(0, 100%, 40%);">- you need to do so explicitly in your dialplan.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Privacy() no longer uses privacy.conf, so any options must be specified</span><br><span style="color: hsl(0, 100%, 40%);">- directly in the application arguments.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* MusicOnHold application now has duration parameter which allows specifying</span><br><span style="color: hsl(0, 100%, 40%);">- timeout in seconds.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* WaitMusicOnHold application is now deprecated in favor of extended MusicOnHold.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* SetMusicOnHold is now deprecated. You should use Set(CHANNEL(musicclass)=...)</span><br><span style="color: hsl(0, 100%, 40%);">- instead.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The arguments in ExecIf changed a bit, to be more like other applications.</span><br><span style="color: hsl(0, 100%, 40%);">- The syntax is now ExecIf(<cond>?appiftrue(args):appiffalse(args)).</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The behavior of the Set application now depends upon a compatibility option,</span><br><span style="color: hsl(0, 100%, 40%);">- set in asterisk.conf. To use the old 1.4 behavior, which allowed Set to take</span><br><span style="color: hsl(0, 100%, 40%);">- multiple key/value pairs, set app_set=1.4 in [compat] in asterisk.conf. To</span><br><span style="color: hsl(0, 100%, 40%);">- use the new behavior, which permits variables to be set with embedded commas,</span><br><span style="color: hsl(0, 100%, 40%);">- set app_set=1.6 in [compat] in asterisk.conf. Note that you can have both</span><br><span style="color: hsl(0, 100%, 40%);">- behaviors at the same time, if you switch to using MSet if you want the old</span><br><span style="color: hsl(0, 100%, 40%);">- behavior.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Dialplan Functions:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* QUEUE_MEMBER_COUNT() has been deprecated in favor of the QUEUE_MEMBER() function. For</span><br><span style="color: hsl(0, 100%, 40%);">- more information, issue a "show function QUEUE_MEMBER" from the CLI.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-CDR:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The cdr_sqlite module has been marked as deprecated in favor of</span><br><span style="color: hsl(0, 100%, 40%);">- cdr_sqlite3_custom. It will potentially be removed from the tree</span><br><span style="color: hsl(0, 100%, 40%);">- after Asterisk 1.6 is released.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The cdr_odbc module now uses res_odbc to manage its connections. The</span><br><span style="color: hsl(0, 100%, 40%);">- username and password parameters in cdr_odbc.conf, therefore, are no</span><br><span style="color: hsl(0, 100%, 40%);">- longer used. The dsn parameter now points to an entry in res_odbc.conf.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The uniqueid field in the core Asterisk structure has been changed from a</span><br><span style="color: hsl(0, 100%, 40%);">- maximum 31 character field to a 149 character field, to account for all</span><br><span style="color: hsl(0, 100%, 40%);">- possible values the systemname prefix could be. In the past, if the</span><br><span style="color: hsl(0, 100%, 40%);">- systemname was too long, the uniqueid would have been truncated.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The cdr_tds module now supports all versions of FreeTDS that contain</span><br><span style="color: hsl(0, 100%, 40%);">- the db-lib frontend. It will also now log the userfield variable if</span><br><span style="color: hsl(0, 100%, 40%);">- the target database table contains a column for it.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Formats:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* format_wav: The GAIN preprocessor definition and source code that used it</span><br><span style="color: hsl(0, 100%, 40%);">- is removed. This change was made in response to user complaints of</span><br><span style="color: hsl(0, 100%, 40%);">- choppiness or the clipping of loud signal peaks. To increase the volume</span><br><span style="color: hsl(0, 100%, 40%);">- of voicemail messages, use the 'volgain' option in voicemail.conf</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Channel Drivers:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* SIP: a small upgrade to support the "Record" button on the SNOM360,</span><br><span style="color: hsl(0, 100%, 40%);">- which sends a sip INFO message with a "Record: on" or "Record: off"</span><br><span style="color: hsl(0, 100%, 40%);">- header. If Asterisk is set up (via features.conf) to accept "One Touch Monitor"</span><br><span style="color: hsl(0, 100%, 40%);">- requests (by default, via '*1'), then the user-configured dialpad sequence</span><br><span style="color: hsl(0, 100%, 40%);">- is generated, and recording can be started and stopped via this button. The</span><br><span style="color: hsl(0, 100%, 40%);">- file names and formats are all controlled via the normal mechanisms. If the</span><br><span style="color: hsl(0, 100%, 40%);">- user has not configured the automon feature, the normal "415 Unsupported media type"</span><br><span style="color: hsl(0, 100%, 40%);">- is returned, and nothing is done.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* SIP: The "call-limit" option is marked as deprecated. It still works in this version of</span><br><span style="color: hsl(0, 100%, 40%);">- Asterisk, but will be removed in the following version. Please use the groupcount functions</span><br><span style="color: hsl(0, 100%, 40%);">- in the dialplan to enforce call limits. The "limitonpeer" configuration option is</span><br><span style="color: hsl(0, 100%, 40%);">- now renamed to "counteronpeer".</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* SIP: The "username" option is now renamed to "defaultuser" to match "defaultip".</span><br><span style="color: hsl(0, 100%, 40%);">- These are used only before registration to call a peer with the uri</span><br><span style="color: hsl(0, 100%, 40%);">- sip:defaultuser@defaultip</span><br><span style="color: hsl(0, 100%, 40%);">- The "username" setting still work, but is deprecated and will not work in</span><br><span style="color: hsl(0, 100%, 40%);">- the next version of Asterisk.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* SIP: The old "insecure" options, deprecated in 1.4, have been removed.</span><br><span style="color: hsl(0, 100%, 40%);">- "insecure=very" should be changed to "insecure=port,invite"</span><br><span style="color: hsl(0, 100%, 40%);">- "insecure=yes" should be changed to "insecure=port"</span><br><span style="color: hsl(0, 100%, 40%);">- Be aware that some telephony providers show the invalid syntax in their</span><br><span style="color: hsl(0, 100%, 40%);">- sample configurations.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* chan_local.c: the comma delimiter inside the channel name has been changed to a</span><br><span style="color: hsl(0, 100%, 40%);">- semicolon, in order to make the Local channel driver compatible with the comma</span><br><span style="color: hsl(0, 100%, 40%);">- delimiter change in applications.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* H323: The "tos" setting has changed name to "tos_audio" and "cos" to "cos_audio"</span><br><span style="color: hsl(0, 100%, 40%);">- to be compatible with settings in sip.conf. The "tos" and "cos" configuration</span><br><span style="color: hsl(0, 100%, 40%);">- is deprecated and will stop working in the next release of Asterisk.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Console: A new console channel driver, chan_console, has been added to Asterisk.</span><br><span style="color: hsl(0, 100%, 40%);">- This new module can not be loaded at the same time as chan_alsa or chan_oss. The</span><br><span style="color: hsl(0, 100%, 40%);">- default modules.conf only loads one of them (chan_oss by default). So, unless you</span><br><span style="color: hsl(0, 100%, 40%);">- have modified your modules.conf to not use the autoload option, then you will need</span><br><span style="color: hsl(0, 100%, 40%);">- to modify modules.conf to add another "noload" line to ensure that only one of</span><br><span style="color: hsl(0, 100%, 40%);">- these three modules gets loaded.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* DAHDI: The chan_zap module that supported PSTN interfaces using</span><br><span style="color: hsl(0, 100%, 40%);">- Zaptel has been renamed to chan_dahdi, and only supports the DAHDI</span><br><span style="color: hsl(0, 100%, 40%);">- telephony driver package for PSTN interfaces. See the</span><br><span style="color: hsl(0, 100%, 40%);">- Zaptel-to-DAHDI.txt file for more details on this transition.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* DAHDI: The "msdstrip" option has been deprecated, as it provides no value over</span><br><span style="color: hsl(0, 100%, 40%);">- the method of stripping digits in the dialplan using variable substring syntax.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Configuration:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* pbx_dundi.c: tos parameter changed to use new values. Old values like lowdelay,</span><br><span style="color: hsl(0, 100%, 40%);">- lowcost and other is not acceptable now. Look into qos.tex for description of</span><br><span style="color: hsl(0, 100%, 40%);">- this parameter.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* queues.conf: the queue-lessthan sound file option is no longer available, and the</span><br><span style="color: hsl(0, 100%, 40%);">- queue-round-seconds option no longer takes '1' as a valid parameter.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Manager:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Manager has been upgraded to version 1.1 with a lot of changes.</span><br><span style="color: hsl(0, 100%, 40%);">- Please check doc/manager_1_1.txt for information</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The IAXpeers command output has been changed to more closely resemble the</span><br><span style="color: hsl(0, 100%, 40%);">- output of the SIPpeers command.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* cdr_manager now reports at the "cdr" level, not at "call" You may need to</span><br><span style="color: hsl(0, 100%, 40%);">- change your manager.conf to add the level to existing AMI users, if they</span><br><span style="color: hsl(0, 100%, 40%);">- want to see the CDR events generated.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The Originate command now requires the Originate write permission. For</span><br><span style="color: hsl(0, 100%, 40%);">- Originate with the Application parameter, you need the additional System</span><br><span style="color: hsl(0, 100%, 40%);">- privilege if you want to do anything that calls out to a subshell.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-iLBC Codec:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Previously, the Asterisk source code distribution included the iLBC</span><br><span style="color: hsl(0, 100%, 40%);">- encoder/decoder source code, from Global IP Solutions</span><br><span style="color: hsl(0, 100%, 40%);">- (http://www.gipscorp.com). This code is not licensed for</span><br><span style="color: hsl(0, 100%, 40%);">- distribution, and thus has been removed from the Asterisk source</span><br><span style="color: hsl(0, 100%, 40%);">- code distribution. If you wish to use codec_ilbc to support iLBC</span><br><span style="color: hsl(0, 100%, 40%);">- channels in Asterisk, you can run the contrib/scripts/get_ilbc_source.sh</span><br><span style="color: hsl(0, 100%, 40%);">- script to download the source and put it in the proper place in</span><br><span style="color: hsl(0, 100%, 40%);">- the Asterisk build tree. Once that is done you can follow your normal</span><br><span style="color: hsl(0, 100%, 40%);">- steps of building Asterisk. You will need to run 'menuselect' and enable</span><br><span style="color: hsl(0, 100%, 40%);">- the iLBC codec in the 'Codec Translators' category.</span><br><span>diff --git a/UPGRADE-1.8.txt b/UPGRADE-1.8.txt</span><br><span>deleted file mode 100644</span><br><span>index b01f762..0000000</span><br><span>--- a/UPGRADE-1.8.txt</span><br><span>+++ /dev/null</span><br><span>@@ -1,343 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== Information for upgrading between Asterisk versions</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== These files document all the changes that MUST be taken</span><br><span style="color: hsl(0, 100%, 40%);">-=== into account when upgrading between the Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== versions listed below. These changes may require that</span><br><span style="color: hsl(0, 100%, 40%);">-=== you modify your configuration files, dialplan or (in</span><br><span style="color: hsl(0, 100%, 40%);">-=== some cases) source code if you have your own Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== modules or patches. These files also includes advance</span><br><span style="color: hsl(0, 100%, 40%);">-=== notice of any functionality that has been marked as</span><br><span style="color: hsl(0, 100%, 40%);">-=== 'deprecated' and may be removed in a future release,</span><br><span style="color: hsl(0, 100%, 40%);">-=== along with the suggested replacement functionality.</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 1.8.13 to 1.8.14:</span><br><span style="color: hsl(0, 100%, 40%);">-* permitdirectmedia/denydirectmedia now controls whether peers can be</span><br><span style="color: hsl(0, 100%, 40%);">- bridged via directmedia by comparing the ACL to the bridging peer's</span><br><span style="color: hsl(0, 100%, 40%);">- address rather than its own address.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 1.8.12 to 1.8.13:</span><br><span style="color: hsl(0, 100%, 40%);">-* The complex processor detection and optimization has been removed from</span><br><span style="color: hsl(0, 100%, 40%);">- the makefile in favor of using native optimization suppport when available.</span><br><span style="color: hsl(0, 100%, 40%);">- BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 1.8.10 to 1.8.11:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* If no transport is specified in sip.conf, transport will default to UDP.</span><br><span style="color: hsl(0, 100%, 40%);">- Also, if multiple transport= lines are used, only the last will be used.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 1.6.2 to 1.8:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* chan_sip no longer sets HASH(SIP_CAUSE,<chan name>) on channels by default.</span><br><span style="color: hsl(0, 100%, 40%);">- This must now be enabled by setting 'sipstorecause' to 'yes' in sip.conf.</span><br><span style="color: hsl(0, 100%, 40%);">- This carries a performance penalty.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Asterisk now requires libpri 1.4.11+ for PRI support.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* A couple of CLI commands in res_ais were changed back to their original form:</span><br><span style="color: hsl(0, 100%, 40%);">- "ais show clm members" --> "ais clm show members"</span><br><span style="color: hsl(0, 100%, 40%);">- "ais show evt event channels" --> "ais evt show event channels"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The default value for 'autofill' and 'shared_lastcall' in queues.conf has</span><br><span style="color: hsl(0, 100%, 40%);">- been changed to 'yes'.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The default value for the alwaysauthreject option in sip.conf has been changed</span><br><span style="color: hsl(0, 100%, 40%);">- from "no" to "yes".</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The behavior of the 'parkedcallstimeout' has changed slightly. The formulation</span><br><span style="color: hsl(0, 100%, 40%);">- of the extension name that a timed out parked call is delivered to when this</span><br><span style="color: hsl(0, 100%, 40%);">- option is set to 'no' was modified such that instead of converting '/' to '0',</span><br><span style="color: hsl(0, 100%, 40%);">- the '/' is converted to an underscore '_'. See the updated documentation in</span><br><span style="color: hsl(0, 100%, 40%);">- features.conf.sample for more information on the behavior of the</span><br><span style="color: hsl(0, 100%, 40%);">- 'parkedcallstimeout' option.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Asterisk-addons no longer exists as an independent package. Those modules</span><br><span style="color: hsl(0, 100%, 40%);">- now live in the addons directory of the main Asterisk source tree. They</span><br><span style="color: hsl(0, 100%, 40%);">- are not enabled by default. For more information about why modules live in</span><br><span style="color: hsl(0, 100%, 40%);">- addons, see README-addons.txt.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The rarely used 'event_log' and LOG_EVENT channel have been removed; the few</span><br><span style="color: hsl(0, 100%, 40%);">- users of this channel in the tree have been converted to LOG_NOTICE or removed</span><br><span style="color: hsl(0, 100%, 40%);">- (in cases where the same message was already generated to another channel).</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The usage of RTP inside of Asterisk has now become modularized. This means</span><br><span style="color: hsl(0, 100%, 40%);">- the Asterisk RTP stack now exists as a loadable module, res_rtp_asterisk.</span><br><span style="color: hsl(0, 100%, 40%);">- If you are not using autoload=yes in modules.conf you will need to ensure</span><br><span style="color: hsl(0, 100%, 40%);">- it is set to load. If not, then any module which uses RTP (such as chan_sip)</span><br><span style="color: hsl(0, 100%, 40%);">- will not be able to send or receive calls.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The app_dahdiscan.c file has been removed, but the dialplan app DAHDIScan still</span><br><span style="color: hsl(0, 100%, 40%);">- remains. It now exists within app_chanspy.c and retains the exact same</span><br><span style="color: hsl(0, 100%, 40%);">- functionality as before.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The default behavior for Set, AGI, and pbx_realtime has been changed to implement</span><br><span style="color: hsl(0, 100%, 40%);">- 1.6 behavior by default, if there is no [compat] section in asterisk.conf. In</span><br><span style="color: hsl(0, 100%, 40%);">- prior versions, the behavior defaulted to 1.4 behavior, to assist in upgrades.</span><br><span style="color: hsl(0, 100%, 40%);">- Specifically, that means that pbx_realtime and res_agi expect you to use commas</span><br><span style="color: hsl(0, 100%, 40%);">- to separate arguments in applications, and Set only takes a single pair of</span><br><span style="color: hsl(0, 100%, 40%);">- a variable name/value. The old 1.4 behavior may still be obtained by setting</span><br><span style="color: hsl(0, 100%, 40%);">- app_set, pbx_realtime, and res_agi each to 1.4 in the [compat] section of</span><br><span style="color: hsl(0, 100%, 40%);">- asterisk.conf.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The PRI channels in chan_dahdi can no longer change the channel name if a</span><br><span style="color: hsl(0, 100%, 40%);">- different B channel is selected during call negotiation. To prevent using</span><br><span style="color: hsl(0, 100%, 40%);">- the channel name to infer what B channel a call is using and to avoid name</span><br><span style="color: hsl(0, 100%, 40%);">- collisions, the channel name format is changed.</span><br><span style="color: hsl(0, 100%, 40%);">- The new channel naming for PRI channels is:</span><br><span style="color: hsl(0, 100%, 40%);">- DAHDI/i<span>/<number>[:<subaddress>]-<sequence-number></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Added CHANNEL(dahdi_span), CHANNEL(dahdi_channel), and CHANNEL(dahdi_type)</span><br><span style="color: hsl(0, 100%, 40%);">- so the dialplan can determine the B channel currently in use by the channel.</span><br><span style="color: hsl(0, 100%, 40%);">- Use CHANNEL(no_media_path) to determine if the channel even has a B channel.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Added AMI event DAHDIChannel to associate a DAHDI channel with an Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">- channel so AMI applications can passively determine the B channel currently</span><br><span style="color: hsl(0, 100%, 40%);">- in use. Calls with "no-media" as the DAHDIChannel do not have an associated</span><br><span style="color: hsl(0, 100%, 40%);">- B channel. No-media calls are either on hold or call-waiting.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The ChanIsAvail application has been changed so the AVAILSTATUS variable</span><br><span style="color: hsl(0, 100%, 40%);">- no longer contains both the device state and cause code. The cause code</span><br><span style="color: hsl(0, 100%, 40%);">- is now available in the AVAILCAUSECODE variable. If existing dialplan logic</span><br><span style="color: hsl(0, 100%, 40%);">- is written to expect AVAILSTATUS to contain the cause code it needs to be</span><br><span style="color: hsl(0, 100%, 40%);">- changed to use AVAILCAUSECODE.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* ExternalIVR will now send Z events for invalid or missing files, T events</span><br><span style="color: hsl(0, 100%, 40%);">- now include the interrupted file and bugs in argument parsing have been</span><br><span style="color: hsl(0, 100%, 40%);">- fixed so there may be arguments specified in incorrect ways that were</span><br><span style="color: hsl(0, 100%, 40%);">- working that will no longer work. Please see</span><br><span style="color: hsl(0, 100%, 40%);">- https://wiki.asterisk.org/wiki/display/AST/External+IVR+Interface for details.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* OSP lookup application changes following variable names:</span><br><span style="color: hsl(0, 100%, 40%);">- OSPPEERIP to OSPINPEERIP</span><br><span style="color: hsl(0, 100%, 40%);">- OSPTECH to OSPOUTTECH</span><br><span style="color: hsl(0, 100%, 40%);">- OSPDEST to OSPDESTINATION</span><br><span style="color: hsl(0, 100%, 40%);">- OSPCALLING to OSPOUTCALLING</span><br><span style="color: hsl(0, 100%, 40%);">- OSPCALLED to OSPOUTCALLED</span><br><span style="color: hsl(0, 100%, 40%);">- OSPRESULTS to OSPDESTREMAILS</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The Manager event 'iax2 show peers' output has been updated. It now has a</span><br><span style="color: hsl(0, 100%, 40%);">- similar output of 'sip show peers'.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* VoiceMailMain and VMAuthenticate, if a '*' is entered in the first position</span><br><span style="color: hsl(0, 100%, 40%);">- of a Mailbox or Password, will, if it exists, jump to the 'a' extension in</span><br><span style="color: hsl(0, 100%, 40%);">- the current dialplan context.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The CALLERPRES() dialplan function is deprecated in favor of</span><br><span style="color: hsl(0, 100%, 40%);">- CALLERID(num-pres) and CALLERID(name-pres).</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Environment variables that start with "AST_" are reserved to the system and</span><br><span style="color: hsl(0, 100%, 40%);">- may no longer be set from the dialplan.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* When a call is redirected inside of a Dial, the app and appdata fields of the</span><br><span style="color: hsl(0, 100%, 40%);">- CDR will now be set to "AppDial" and "(Outgoing Line)" instead of being blank.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The CDR handling of billsec and duration field has changed. If your table</span><br><span style="color: hsl(0, 100%, 40%);">- definition specifies those fields as float,double or similar they will now</span><br><span style="color: hsl(0, 100%, 40%);">- be logged with microsecond accuracy instead of a whole integer.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* chan_sip will no longer set up a local call forward when receiving a</span><br><span style="color: hsl(0, 100%, 40%);">- 482 Loop Detected response. The dialplan will just continue from where it</span><br><span style="color: hsl(0, 100%, 40%);">- left off.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The 'stunaddr' option has been removed from chan_sip. This feature did not</span><br><span style="color: hsl(0, 100%, 40%);">- behave as expected, had no correct use case, and was not RFC compliant. The</span><br><span style="color: hsl(0, 100%, 40%);">- removal of this feature will hopefully be followed by a correct RFC compliant</span><br><span style="color: hsl(0, 100%, 40%);">- STUN implementation in chan_sip in the future.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The default value for the pedantic option in sip.conf has been changed</span><br><span style="color: hsl(0, 100%, 40%);">- from "no" to "yes".</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The ConnectedLineNum and ConnectedLineName headers were added to many AMI</span><br><span style="color: hsl(0, 100%, 40%);">- events/responses if the CallerIDNum/CallerIDName headers were also present.</span><br><span style="color: hsl(0, 100%, 40%);">- The addition of connected line support changes the behavior of the channel</span><br><span style="color: hsl(0, 100%, 40%);">- caller ID somewhat. The channel caller ID value no longer time shares with</span><br><span style="color: hsl(0, 100%, 40%);">- the connected line ID on outgoing call legs. The timing of some AMI</span><br><span style="color: hsl(0, 100%, 40%);">- events/responses output the connected line ID as caller ID. These party ID's</span><br><span style="color: hsl(0, 100%, 40%);">- are now separate.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The Dial application d and H options do not automatically answer the call</span><br><span style="color: hsl(0, 100%, 40%);">- anymore. It broke DTMF attended transfers. Since many SIP and ISDN phones</span><br><span style="color: hsl(0, 100%, 40%);">- cannot send DTMF before a call is connected, you need to answer the call</span><br><span style="color: hsl(0, 100%, 40%);">- leg to those phones before using Dial with these options for them to have</span><br><span style="color: hsl(0, 100%, 40%);">- any effect before the dialed party answers.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The outgoing directory (where .call files are read) now uses inotify to</span><br><span style="color: hsl(0, 100%, 40%);">- detect file changes instead of polling the directory on a regular basis.</span><br><span style="color: hsl(0, 100%, 40%);">- If your outgoing folder is on a NFS mount or another network file system,</span><br><span style="color: hsl(0, 100%, 40%);">- changes to the files will not be detected. You can revert to polling the</span><br><span style="color: hsl(0, 100%, 40%);">- directory by specifying --without-inotify to configure before compiling.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The 'sipusers' realtime table has been removed completely. Use the 'sippeers'</span><br><span style="color: hsl(0, 100%, 40%);">- table with type 'user' for user type objects.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The sip.conf allowoverlap option now accepts 'dtmf' as a value. If you</span><br><span style="color: hsl(0, 100%, 40%);">- are using the early media DTMF overlap dialing method you now need to set</span><br><span style="color: hsl(0, 100%, 40%);">- allowoverlap=dtmf.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 1.6.1 to 1.6.2:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* SIP no longer sends the 183 progress message for early media by</span><br><span style="color: hsl(0, 100%, 40%);">- default. Applications requiring early media should use the</span><br><span style="color: hsl(0, 100%, 40%);">- progress() dialplan app to generate the progress message.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The firmware for the IAXy has been removed from Asterisk. It can be</span><br><span style="color: hsl(0, 100%, 40%);">- downloaded from http://downloads.digium.com/pub/iaxy/. To have Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">- install the firmware into its proper location, place the firmware in the</span><br><span style="color: hsl(0, 100%, 40%);">- contrib/firmware/iax/ directory in the Asterisk source tree before running</span><br><span style="color: hsl(0, 100%, 40%);">- "make install".</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* T.38 FAX error correction mode can no longer be configured in udptl.conf;</span><br><span style="color: hsl(0, 100%, 40%);">- instead, it is configured on a per-peer (or global) basis in sip.conf, with</span><br><span style="color: hsl(0, 100%, 40%);">- the same default as was present in udptl.conf.sample.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* T.38 FAX maximum datagram size can no longer be configured in updtl.conf;</span><br><span style="color: hsl(0, 100%, 40%);">- instead, it is either supplied by the application servicing the T.38 channel</span><br><span style="color: hsl(0, 100%, 40%);">- (for a FAX send or receive) or calculated from the bridged endpoint's</span><br><span style="color: hsl(0, 100%, 40%);">- maximum datagram size (for a T.38 FAX passthrough call). In addition, sip.conf</span><br><span style="color: hsl(0, 100%, 40%);">- allows for overriding the value supplied by a remote endpoint, which is useful</span><br><span style="color: hsl(0, 100%, 40%);">- when T.38 connections are made to gateways that supply incorrectly-calculated</span><br><span style="color: hsl(0, 100%, 40%);">- maximum datagram sizes.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* There have been some changes to the IAX2 protocol to address the security</span><br><span style="color: hsl(0, 100%, 40%);">- concerns documented in the security advisory AST-2009-006. Please see the</span><br><span style="color: hsl(0, 100%, 40%);">- IAX2 security document, doc/IAX2-security.pdf, for information regarding</span><br><span style="color: hsl(0, 100%, 40%);">- backwards compatibility with versions of Asterisk that do not contain these</span><br><span style="color: hsl(0, 100%, 40%);">- changes to IAX2.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The 'canreinvite' option support by the SIP, MGCP and Skinny channel drivers</span><br><span style="color: hsl(0, 100%, 40%);">- has been renamed to 'directmedia', to better reflect what it actually does.</span><br><span style="color: hsl(0, 100%, 40%);">- In the case of SIP, there are still re-INVITEs issued for T.38 negotiation,</span><br><span style="color: hsl(0, 100%, 40%);">- starting and stopping music-on-hold, and other reasons, and the 'canreinvite'</span><br><span style="color: hsl(0, 100%, 40%);">- option never had any effect on these cases, it only affected the re-INVITEs</span><br><span style="color: hsl(0, 100%, 40%);">- used for direct media path setup. For MGCP and Skinny, the option was poorly</span><br><span style="color: hsl(0, 100%, 40%);">- named because those protocols don't even use INVITE messages at all. For</span><br><span style="color: hsl(0, 100%, 40%);">- backwards compatibility, the old option is still supported in both normal</span><br><span style="color: hsl(0, 100%, 40%);">- and Realtime configuration files, but all of the sample configuration files,</span><br><span style="color: hsl(0, 100%, 40%);">- Realtime/LDAP schemas, and other documentation refer to it using the new name.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The default console now will use colors according to the default background</span><br><span style="color: hsl(0, 100%, 40%);">- color, instead of forcing the background color to black. If you are using a</span><br><span style="color: hsl(0, 100%, 40%);">- light colored background for your console, you may wish to use the option</span><br><span style="color: hsl(0, 100%, 40%);">- flag '-W' to present better color choices for the various messages. However,</span><br><span style="color: hsl(0, 100%, 40%);">- if you'd prefer the old method of forcing colors to white text on a black</span><br><span style="color: hsl(0, 100%, 40%);">- background, the compatibility option -B is provided for this purpose.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* SendImage() no longer hangs up the channel on transmission error or on</span><br><span style="color: hsl(0, 100%, 40%);">- any other error; in those cases, a FAILURE status is stored in</span><br><span style="color: hsl(0, 100%, 40%);">- SENDIMAGESTATUS and dialplan execution continues. The possible</span><br><span style="color: hsl(0, 100%, 40%);">- return values stored in SENDIMAGESTATUS are: SUCCESS, FAILURE, and</span><br><span style="color: hsl(0, 100%, 40%);">- UNSUPPORTED. ('OK' has been replaced with 'SUCCESS', and 'NOSUPPORT'</span><br><span style="color: hsl(0, 100%, 40%);">- has been replaced with 'UNSUPPORTED'). This change makes the</span><br><span style="color: hsl(0, 100%, 40%);">- SendImage application more consistent with other applications.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* skinny.conf now has separate sections for lines and devices.</span><br><span style="color: hsl(0, 100%, 40%);">- Please have a look at configs/skinny.conf.sample and update</span><br><span style="color: hsl(0, 100%, 40%);">- your skinny.conf.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Queue names previously were treated in a case-sensitive manner,</span><br><span style="color: hsl(0, 100%, 40%);">- meaning that queues with names like "sales" and "sALeS" would be</span><br><span style="color: hsl(0, 100%, 40%);">- seen as unique queues. The parsing logic has changed to use</span><br><span style="color: hsl(0, 100%, 40%);">- case-insensitive comparisons now when originally hashing based on</span><br><span style="color: hsl(0, 100%, 40%);">- queue names, meaning that now the two queues mentioned as examples</span><br><span style="color: hsl(0, 100%, 40%);">- earlier will be seen as having the same name.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The SPRINTF() dialplan function has been moved into its own module,</span><br><span style="color: hsl(0, 100%, 40%);">- func_sprintf, and is no longer included in func_strings. If you use this</span><br><span style="color: hsl(0, 100%, 40%);">- function and do not use 'autoload=yes' in modules.conf, you will need</span><br><span style="color: hsl(0, 100%, 40%);">- to explicitly load func_sprintf for it to be available.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The res_indications module has been removed. Its functionality was important</span><br><span style="color: hsl(0, 100%, 40%);">- enough that most of it has been moved into the Asterisk core.</span><br><span style="color: hsl(0, 100%, 40%);">- Two applications previously provided by res_indications, PlayTones and</span><br><span style="color: hsl(0, 100%, 40%);">- StopPlayTones, have been moved into a new module, app_playtones.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Support for Taiwanese was incorrectly supported with the "tw" language code.</span><br><span style="color: hsl(0, 100%, 40%);">- In reality, the "tw" language code is reserved for the Twi language, native</span><br><span style="color: hsl(0, 100%, 40%);">- to Ghana. If you were previously using the "tw" language code, you should</span><br><span style="color: hsl(0, 100%, 40%);">- switch to using either "zh" (for Mandarin Chinese) or "zh_TW" for Taiwan</span><br><span style="color: hsl(0, 100%, 40%);">- specific localizations. Additionally, "mx" should be changed to "es_MX",</span><br><span style="color: hsl(0, 100%, 40%);">- Georgian was incorrectly specified as "ge" but should be "ka", and Czech is</span><br><span style="color: hsl(0, 100%, 40%);">- "cs", not "cz".</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* DAHDISendCallreroutingFacility() parameters are now comma-separated,</span><br><span style="color: hsl(0, 100%, 40%);">- instead of the old pipe.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* res_jabber: autoprune has been disabled by default, to avoid misconfiguration</span><br><span style="color: hsl(0, 100%, 40%);">- that would end up being interpreted as a bug once Asterisk started removing</span><br><span style="color: hsl(0, 100%, 40%);">- the contacts from a user list.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The cdr.conf file must exist and be configured correctly in order for CDR</span><br><span style="color: hsl(0, 100%, 40%);">- records to be written.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* cdr_pgsql now assumes the encoding of strings it is handed are in LATIN9,</span><br><span style="color: hsl(0, 100%, 40%);">- which should cover most uses of the extended ASCII set. If your strings</span><br><span style="color: hsl(0, 100%, 40%);">- use a different encoding in Asterisk, the "encoding" parameter may be set</span><br><span style="color: hsl(0, 100%, 40%);">- to specify the correct character set.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 1.6.0.1 to 1.6.1:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The ast_agi_register_multiple() and ast_agi_unregister_multiple()</span><br><span style="color: hsl(0, 100%, 40%);">- API calls were added in 1.6.0, so that modules that provide multiple</span><br><span style="color: hsl(0, 100%, 40%);">- AGI commands could register/unregister them all with a single</span><br><span style="color: hsl(0, 100%, 40%);">- step. However, these API calls were not implemented properly, and did</span><br><span style="color: hsl(0, 100%, 40%);">- not allow the caller to know whether registration or unregistration</span><br><span style="color: hsl(0, 100%, 40%);">- succeeded or failed. They have been redefined to now return success</span><br><span style="color: hsl(0, 100%, 40%);">- or failure, but this means any code using these functions will need</span><br><span style="color: hsl(0, 100%, 40%);">- be recompiled after upgrading to a version of Asterisk containing</span><br><span style="color: hsl(0, 100%, 40%);">- these changes. In addition, the source code using these functions</span><br><span style="color: hsl(0, 100%, 40%);">- should be reviewed to ensure it can properly react to failure</span><br><span style="color: hsl(0, 100%, 40%);">- of registration or unregistration of its API commands.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The ast_agi_fdprintf() API call has been renamed to ast_agi_send()</span><br><span style="color: hsl(0, 100%, 40%);">- to better match what it really does, and the argument order has been</span><br><span style="color: hsl(0, 100%, 40%);">- changed to be consistent with other API calls that perform similar</span><br><span style="color: hsl(0, 100%, 40%);">- operations.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 1.6.0.x to 1.6.1:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* In previous versions of Asterisk, due to the way objects were arranged in</span><br><span style="color: hsl(0, 100%, 40%);">- memory by chan_sip, the order of entries in sip.conf could be adjusted to</span><br><span style="color: hsl(0, 100%, 40%);">- control the behavior of matching against peers and users. The way objects</span><br><span style="color: hsl(0, 100%, 40%);">- are managed has been significantly changed for reasons involving performance</span><br><span style="color: hsl(0, 100%, 40%);">- and stability. A side effect of these changes is that the order of entries</span><br><span style="color: hsl(0, 100%, 40%);">- in sip.conf can no longer be relied upon to control behavior.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The following core commands dealing with dialplan have been deprecated: 'core</span><br><span style="color: hsl(0, 100%, 40%);">- show globals', 'core set global' and 'core set chanvar'. Use the equivalent</span><br><span style="color: hsl(0, 100%, 40%);">- 'dialplan show globals', 'dialplan set global' and 'dialplan set chanvar'</span><br><span style="color: hsl(0, 100%, 40%);">- instead.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* In the dialplan expression parser, the logical value of spaces</span><br><span style="color: hsl(0, 100%, 40%);">- immediately preceding a standalone 0 previously evaluated to</span><br><span style="color: hsl(0, 100%, 40%);">- true. It now evaluates to false. This has confused a good many</span><br><span style="color: hsl(0, 100%, 40%);">- people in the past (typically because they failed to realize the</span><br><span style="color: hsl(0, 100%, 40%);">- space had any significance). Since this violates the Principle of</span><br><span style="color: hsl(0, 100%, 40%);">- Least Surprise, it has been changed.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* While app_directory has always relied on having a voicemail.conf or users.conf file</span><br><span style="color: hsl(0, 100%, 40%);">- correctly set up, it now is dependent on app_voicemail being compiled as well.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* SIP: All of the functionality in SIPCHANINFO() has been implemented in CHANNEL(),</span><br><span style="color: hsl(0, 100%, 40%);">- and you should start using that function instead for retrieving information about</span><br><span style="color: hsl(0, 100%, 40%);">- the channel in a technology-agnostic way.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* If you have any third party modules which use a config file variable whose</span><br><span style="color: hsl(0, 100%, 40%);">- name ends in a '+', please note that the append capability added to this</span><br><span style="color: hsl(0, 100%, 40%);">- version may now conflict with that variable naming scheme. An easy</span><br><span style="color: hsl(0, 100%, 40%);">- workaround is to ensure that a space occurs between the '+' and the '=',</span><br><span style="color: hsl(0, 100%, 40%);">- to differentiate your variable from the append operator. This potential</span><br><span style="color: hsl(0, 100%, 40%);">- conflict is unlikely, but is documented here to be thorough.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The "Join" event from app_queue now uses the CallerIDNum header instead of</span><br><span style="color: hsl(0, 100%, 40%);">- the CallerID header to indicate the CallerID number.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* If you use ODBC storage for voicemail, there is a new field called "flag"</span><br><span style="color: hsl(0, 100%, 40%);">- which should be a char(8) or larger. This field specifies whether or not a</span><br><span style="color: hsl(0, 100%, 40%);">- message has been designated to be "Urgent", "PRIORITY", or not.</span><br><span>diff --git a/UPGRADE-10.txt b/UPGRADE-10.txt</span><br><span>deleted file mode 100644</span><br><span>index f4b2bec..0000000</span><br><span>--- a/UPGRADE-10.txt</span><br><span>+++ /dev/null</span><br><span>@@ -1,92 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== Information for upgrading between Asterisk versions</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== These files document all the changes that MUST be taken</span><br><span style="color: hsl(0, 100%, 40%);">-=== into account when upgrading between the Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== versions listed below. These changes may require that</span><br><span style="color: hsl(0, 100%, 40%);">-=== you modify your configuration files, dialplan or (in</span><br><span style="color: hsl(0, 100%, 40%);">-=== some cases) source code if you have your own Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== modules or patches. These files also include advance</span><br><span style="color: hsl(0, 100%, 40%);">-=== notice of any functionality that has been marked as</span><br><span style="color: hsl(0, 100%, 40%);">-=== 'deprecated' and may be removed in a future release,</span><br><span style="color: hsl(0, 100%, 40%);">-=== along with the suggested replacement functionality.</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 10.4 to 10.5:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The complex processor detection and optimization has been removed from</span><br><span style="color: hsl(0, 100%, 40%);">- the makefile in favor of using native optimization suppport when available.</span><br><span style="color: hsl(0, 100%, 40%);">- BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 10.2 to 10.3:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* If no transport is specified in sip.conf, transport will default to UDP.</span><br><span style="color: hsl(0, 100%, 40%);">- Also, if multiple transport= lines are used, only the last will be used.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 1.8 to 10:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-cel_pgsql:</span><br><span style="color: hsl(0, 100%, 40%);">- - This module now expects an 'extra' column in the database for data added</span><br><span style="color: hsl(0, 100%, 40%);">- using the CELGenUserEvent() application.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-ConfBridge</span><br><span style="color: hsl(0, 100%, 40%);">- - ConfBridge's dialplan arguments have changed and are not</span><br><span style="color: hsl(0, 100%, 40%);">- backwards compatible.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-File Interpreters</span><br><span style="color: hsl(0, 100%, 40%);">- - The format interpreter formats/format_sln16.c for the file extension</span><br><span style="color: hsl(0, 100%, 40%);">- '.sln16' has been removed. The '.sln16' file interpreter now exists</span><br><span style="color: hsl(0, 100%, 40%);">- in the formats/format_sln.c module along with new support for sln12,</span><br><span style="color: hsl(0, 100%, 40%);">- sln24, sln32, sln44, sln48, sln96, and sln192 file extensions.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-HTTP:</span><br><span style="color: hsl(0, 100%, 40%);">- - A bindaddr must be specified in order for the HTTP server</span><br><span style="color: hsl(0, 100%, 40%);">- to run. Previous versions would default to 0.0.0.0 if no</span><br><span style="color: hsl(0, 100%, 40%);">- bindaddr was specified.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Gtalk:</span><br><span style="color: hsl(0, 100%, 40%);">- - The default value for 'context' and 'parkinglots' in gtalk.conf has</span><br><span style="color: hsl(0, 100%, 40%);">- been changed to 'default', previously they were empty.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-chan_dahdi:</span><br><span style="color: hsl(0, 100%, 40%);">- - The mohinterpret=passthrough setting is deprecated in favor of</span><br><span style="color: hsl(0, 100%, 40%);">- moh_signaling=notify.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-pbx_lua:</span><br><span style="color: hsl(0, 100%, 40%);">- - Execution no longer continues after applications that do dialplan jumps</span><br><span style="color: hsl(0, 100%, 40%);">- (such as app.goto). Now when an application such as app.goto() is called,</span><br><span style="color: hsl(0, 100%, 40%);">- control is returned back to the pbx engine and the current extension</span><br><span style="color: hsl(0, 100%, 40%);">- function stops executing.</span><br><span style="color: hsl(0, 100%, 40%);">- - the autoservice now defaults to being on by default</span><br><span style="color: hsl(0, 100%, 40%);">- - autoservice_start() and autoservice_start() no longer return a value.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Queue:</span><br><span style="color: hsl(0, 100%, 40%);">- - Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members</span><br><span style="color: hsl(0, 100%, 40%);">- - QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Asterisk Database:</span><br><span style="color: hsl(0, 100%, 40%);">- - The internal Asterisk database has been switched from Berkeley DB 1.86 to</span><br><span style="color: hsl(0, 100%, 40%);">- SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3</span><br><span style="color: hsl(0, 100%, 40%);">- utility in the UTILS section of menuselect. If an existing astdb is found and no</span><br><span style="color: hsl(0, 100%, 40%);">- astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will</span><br><span style="color: hsl(0, 100%, 40%);">- convert an existing astdb to the SQLite3 version automatically at runtime.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Module Support Level</span><br><span style="color: hsl(0, 100%, 40%);">- - All modules in the addons, apps, bridge, cdr, cel, channels, codecs,</span><br><span style="color: hsl(0, 100%, 40%);">- formats, funcs, pbx, and res have been updated to include MODULEINFO data</span><br><span style="color: hsl(0, 100%, 40%);">- that includes <support_level> tags with a value of core, extended, or deprecated.</span><br><span style="color: hsl(0, 100%, 40%);">- More information is available on the Asterisk wiki at</span><br><span style="color: hsl(0, 100%, 40%);">- https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Deprecated modules are now marked to not build by default and must be explicitly</span><br><span style="color: hsl(0, 100%, 40%);">- enabled in menuselect.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span>diff --git a/UPGRADE-11.txt b/UPGRADE-11.txt</span><br><span>deleted file mode 100644</span><br><span>index 58b70b6..0000000</span><br><span>--- a/UPGRADE-11.txt</span><br><span>+++ /dev/null</span><br><span>@@ -1,280 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== Information for upgrading between Asterisk versions</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== These files document all the changes that MUST be taken</span><br><span style="color: hsl(0, 100%, 40%);">-=== into account when upgrading between the Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== versions listed below. These changes may require that</span><br><span style="color: hsl(0, 100%, 40%);">-=== you modify your configuration files, dialplan or (in</span><br><span style="color: hsl(0, 100%, 40%);">-=== some cases) source code if you have your own Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== modules or patches. These files also include advance</span><br><span style="color: hsl(0, 100%, 40%);">-=== notice of any functionality that has been marked as</span><br><span style="color: hsl(0, 100%, 40%);">-=== 'deprecated' and may be removed in a future release,</span><br><span style="color: hsl(0, 100%, 40%);">-=== along with the suggested replacement functionality.</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-10.txt -- Upgrade info for 1.8 to 10</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 11.6 to 11.7:</span><br><span style="color: hsl(0, 100%, 40%);">-ConfBridge</span><br><span style="color: hsl(0, 100%, 40%);">- - ConfBridge now has the ability to set the language of announcements to the</span><br><span style="color: hsl(0, 100%, 40%);">- conference. The language can be set on a bridge profile in confbridge.conf</span><br><span style="color: hsl(0, 100%, 40%);">- or by the dialplan function CONFBRIDGE(bridge,language)=en.</span><br><span style="color: hsl(0, 100%, 40%);">-chan_sip - Clarify The "sip show peers" Forcerport Column And Add Comedia</span><br><span style="color: hsl(0, 100%, 40%);">- - Under the "Forcerport" column, the "N" used to mean NAT (i.e. Yes). With</span><br><span style="color: hsl(0, 100%, 40%);">- the additon of auto_* NAT settings, the meaning changed and there was a</span><br><span style="color: hsl(0, 100%, 40%);">- certain combination of letters added to indicate the current setting. The</span><br><span style="color: hsl(0, 100%, 40%);">- combination of using "Y", "N", "A" or "a", can be confusing. Therefore, we</span><br><span style="color: hsl(0, 100%, 40%);">- now display clearly what the current Forcerport setting is: "Yes", "No",</span><br><span style="color: hsl(0, 100%, 40%);">- "Auto (Yes)", "Auto (No)".</span><br><span style="color: hsl(0, 100%, 40%);">- - Since we are clarifying the Forcerport column, we have added a column to</span><br><span style="color: hsl(0, 100%, 40%);">- display the Comedia setting since this is useful information as well. We</span><br><span style="color: hsl(0, 100%, 40%);">- no longer have a simple "NAT" setting like other versions before 11.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 11.5 to 11.6:</span><br><span style="color: hsl(0, 100%, 40%);">-* res_agi will now properly indicate if there was an error in streaming an</span><br><span style="color: hsl(0, 100%, 40%);">- audio file. The result code will be -1 and the result returned from the</span><br><span style="color: hsl(0, 100%, 40%);">- the function will be RESULT_FAILURE instead of the prior behavior of always</span><br><span style="color: hsl(0, 100%, 40%);">- returning RESULT_SUCCESS even if there was an error.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 11.4 to 11.5:</span><br><span style="color: hsl(0, 100%, 40%);">-* The default settings for chan_sip are now overriden properly by the general</span><br><span style="color: hsl(0, 100%, 40%);">- settings in sip.conf. Please look over your settings upon upgrading.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 11.3 to 11.4:</span><br><span style="color: hsl(0, 100%, 40%);">-* Added the 'n' option to MeetMe to prevent application of the DENOISE function</span><br><span style="color: hsl(0, 100%, 40%);">- to a channel joining a conference. Some channel drivers that vary the number</span><br><span style="color: hsl(0, 100%, 40%);">- of audio samples in a voice frame will experience significant quality problems</span><br><span style="color: hsl(0, 100%, 40%);">- if a denoiser is attached to the channel; this option gives them the ability</span><br><span style="color: hsl(0, 100%, 40%);">- to remove the denoiser without having to unload func_speex.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* The Registry AMI event for SIP registrations will now always include the</span><br><span style="color: hsl(0, 100%, 40%);">- Username field. A previous bug fix missed an instance where it was not</span><br><span style="color: hsl(0, 100%, 40%);">- included; that has been corrected in this release.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 11.2.0 to 11.2.1:</span><br><span style="color: hsl(0, 100%, 40%);">-* Asterisk would previously not output certain error messages when a remote</span><br><span style="color: hsl(0, 100%, 40%);">- console attempted to connect to Asterisk and no instance of Asterisk was</span><br><span style="color: hsl(0, 100%, 40%);">- running. This error message is displayed on stderr; as a result, some</span><br><span style="color: hsl(0, 100%, 40%);">- initialization scripts that used remote consoles to test for the presence</span><br><span style="color: hsl(0, 100%, 40%);">- of a running Asterisk instance started to display erroneous error messages.</span><br><span style="color: hsl(0, 100%, 40%);">- The init.d scripts and the safe_asterisk have been updated in the contrib</span><br><span style="color: hsl(0, 100%, 40%);">- folder to account for this.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 11.2 to 11.3:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-* Now by default, when Asterisk is installed in a path other than /usr, the</span><br><span style="color: hsl(0, 100%, 40%);">- Asterisk binary will search for shared libraries in ${libdir} in addition to</span><br><span style="color: hsl(0, 100%, 40%);">- searching system libraries. This allows Asterisk to find its shared</span><br><span style="color: hsl(0, 100%, 40%);">- libraries without having to specify LD_LIBRARY_PATH. This can be disabled by</span><br><span style="color: hsl(0, 100%, 40%);">- passing --disable-rpath to configure.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 10 to 11:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Voicemail:</span><br><span style="color: hsl(0, 100%, 40%);">- - All voicemails now have a "msg_id" which uniquely identifies a message. For</span><br><span style="color: hsl(0, 100%, 40%);">- users of filesystem and IMAP storage of voicemail, this should be transparent.</span><br><span style="color: hsl(0, 100%, 40%);">- For users of ODBC, you will need to add a "msg_id" column to your voice mail</span><br><span style="color: hsl(0, 100%, 40%);">- messages table. This should be a string capable of holding at least 32 characters.</span><br><span style="color: hsl(0, 100%, 40%);">- All messages created in old Asterisk installations will have a msg_id added to</span><br><span style="color: hsl(0, 100%, 40%);">- them when required. This operation should be transparent as well.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Parking:</span><br><span style="color: hsl(0, 100%, 40%);">- - The comebacktoorigin setting must now be set per parking lot. The setting in</span><br><span style="color: hsl(0, 100%, 40%);">- the general section will not be applied automatically to each parking lot.</span><br><span style="color: hsl(0, 100%, 40%);">- - The BLINDTRANSFER channel variable is deleted from a channel when it is</span><br><span style="color: hsl(0, 100%, 40%);">- bridged to prevent subtle bugs in the parking feature. The channel</span><br><span style="color: hsl(0, 100%, 40%);">- variable is used by Asterisk internally for the Park application to work</span><br><span style="color: hsl(0, 100%, 40%);">- properly. If you were using it for your own purposes, copy it to your</span><br><span style="color: hsl(0, 100%, 40%);">- own channel variable before the channel is bridged.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-res_ais:</span><br><span style="color: hsl(0, 100%, 40%);">- - Users of res_ais in versions of Asterisk prior to Asterisk 11 must change</span><br><span style="color: hsl(0, 100%, 40%);">- to use the res_corosync module, instead. OpenAIS is deprecated, but</span><br><span style="color: hsl(0, 100%, 40%);">- Corosync is still actively developed and maintained. Corosync came out of</span><br><span style="color: hsl(0, 100%, 40%);">- the OpenAIS project.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Dialplan Functions:</span><br><span style="color: hsl(0, 100%, 40%);">- - MAILBOX_EXISTS has been deprecated. Use VM_INFO with the 'exists' parameter</span><br><span style="color: hsl(0, 100%, 40%);">- instead.</span><br><span style="color: hsl(0, 100%, 40%);">- - Macro has been deprecated in favor of GoSub. For redirecting and connected</span><br><span style="color: hsl(0, 100%, 40%);">- line purposes use the following variables instead of their macro equivalents:</span><br><span style="color: hsl(0, 100%, 40%);">- REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS,</span><br><span style="color: hsl(0, 100%, 40%);">- CONNECTED_LINE_SEND_SUB, CONNECTED_LINE_SEND_SUB_ARGS.</span><br><span style="color: hsl(0, 100%, 40%);">- - The REDIRECTING function now supports the redirecting original party id</span><br><span style="color: hsl(0, 100%, 40%);">- and reason.</span><br><span style="color: hsl(0, 100%, 40%);">- - The HANGUPCAUSE and HANGUPCAUSE_KEYS functions have been introduced to</span><br><span style="color: hsl(0, 100%, 40%);">- provide a replacement for the SIP_CAUSE hash. The HangupCauseClear</span><br><span style="color: hsl(0, 100%, 40%);">- application has also been introduced to remove this data from the channel</span><br><span style="color: hsl(0, 100%, 40%);">- when necessary.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-func_enum:</span><br><span style="color: hsl(0, 100%, 40%);">- - ENUM query functions now return a count of -1 on lookup error to</span><br><span style="color: hsl(0, 100%, 40%);">- differentiate between a failed query and a successful query with 0 results</span><br><span style="color: hsl(0, 100%, 40%);">- matching the specified type.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-CDR:</span><br><span style="color: hsl(0, 100%, 40%);">- - cdr_adaptive_odbc now supports specifying a schema so that Asterisk can</span><br><span style="color: hsl(0, 100%, 40%);">- connect to databases that use schemas.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Configuration Files:</span><br><span style="color: hsl(0, 100%, 40%);">- - Files listed below have been updated to be more consistent with how Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">- parses configuration files. This makes configuration files more consistent</span><br><span style="color: hsl(0, 100%, 40%);">- with what is expected across modules.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - cdr.conf: [general] and [csv] sections</span><br><span style="color: hsl(0, 100%, 40%);">- - dnsmgr.conf</span><br><span style="color: hsl(0, 100%, 40%);">- - dsp.conf</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'verbose' setting in logger.conf now takes an optional argument,</span><br><span style="color: hsl(0, 100%, 40%);">- specifying the verbosity level for each logging destination. The default,</span><br><span style="color: hsl(0, 100%, 40%);">- if not otherwise specified, is a verbosity of 3.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AMI:</span><br><span style="color: hsl(0, 100%, 40%);">- - DBDelTree now correctly returns an error when 0 rows are deleted just as</span><br><span style="color: hsl(0, 100%, 40%);">- the DBDel action does.</span><br><span style="color: hsl(0, 100%, 40%);">- - The IAX2 PeerStatus event now sends a 'Port' header. In Asterisk 10, this was</span><br><span style="color: hsl(0, 100%, 40%);">- erroneously being sent as a 'Post' header.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-CCSS:</span><br><span style="color: hsl(0, 100%, 40%);">- - Macro is deprecated. Use cc_callback_sub instead of cc_callback_macro</span><br><span style="color: hsl(0, 100%, 40%);">- in channel configurations.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-app_meetme:</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'c' option (announce user count) will now work even if the 'q' (quiet)</span><br><span style="color: hsl(0, 100%, 40%);">- option is enabled.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-app_followme:</span><br><span style="color: hsl(0, 100%, 40%);">- - Answered outgoing calls no longer get cut off when the next step is started.</span><br><span style="color: hsl(0, 100%, 40%);">- You now have until the last step times out to decide if you want to accept</span><br><span style="color: hsl(0, 100%, 40%);">- the call or not before being disconnected.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-chan_gtalk:</span><br><span style="color: hsl(0, 100%, 40%);">- - chan_gtalk has been deprecated in favor of the chan_motif channel driver. It is recommended</span><br><span style="color: hsl(0, 100%, 40%);">- that users switch to using it as it is a core supported module.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-chan_jingle:</span><br><span style="color: hsl(0, 100%, 40%);">- - chan_jingle has been deprecated in favor of the chan_motif channel driver. It is recommended</span><br><span style="color: hsl(0, 100%, 40%);">- that users switch to using it as it is a core supported module.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-SIP</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">- - A new option "tonezone" for setting default tonezone for the channel driver</span><br><span style="color: hsl(0, 100%, 40%);">- or individual devices</span><br><span style="color: hsl(0, 100%, 40%);">- - A new manager event, "SessionTimeout" has been added and is triggered when</span><br><span style="color: hsl(0, 100%, 40%);">- a call is terminated due to RTP stream inactivity or SIP session timer</span><br><span style="color: hsl(0, 100%, 40%);">- expiration.</span><br><span style="color: hsl(0, 100%, 40%);">- - SIP_CAUSE is now deprecated. It has been modified to use the same</span><br><span style="color: hsl(0, 100%, 40%);">- mechanism as the HANGUPCAUSE function. Behavior should not change, but</span><br><span style="color: hsl(0, 100%, 40%);">- performance should be vastly improved. The HANGUPCAUSE function should now</span><br><span style="color: hsl(0, 100%, 40%);">- be used instead of SIP_CAUSE. Because of this, the storesipcause option in</span><br><span style="color: hsl(0, 100%, 40%);">- sip.conf is also deprecated.</span><br><span style="color: hsl(0, 100%, 40%);">- - The sip paramater for Originating Line Information (oli, isup-oli, and</span><br><span style="color: hsl(0, 100%, 40%);">- ss7-oli) is now parsed out of the From header and copied into the channel's</span><br><span style="color: hsl(0, 100%, 40%);">- ANI2 information field. This is readable from the CALLERID(ani2) dialplan</span><br><span style="color: hsl(0, 100%, 40%);">- function.</span><br><span style="color: hsl(0, 100%, 40%);">- - ICE support has been added and is enabled by default. Some endpoints may have</span><br><span style="color: hsl(0, 100%, 40%);">- problems with the ICE candidates within the SDP. If this is the case ICE support</span><br><span style="color: hsl(0, 100%, 40%);">- can be disabled globally or on a per-endpoint basis using the icesupport</span><br><span style="color: hsl(0, 100%, 40%);">- configuration option. Symptoms of this include one way media or no media flow.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-chan_unistim</span><br><span style="color: hsl(0, 100%, 40%);">- - Due to massive update in chan_unistim phone keys functions and on-screen</span><br><span style="color: hsl(0, 100%, 40%);">- information changed.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-users.conf:</span><br><span style="color: hsl(0, 100%, 40%);">- - A defined user with hasvoicemail=yes now finally uses a Gosub to stdexten</span><br><span style="color: hsl(0, 100%, 40%);">- as documented in extensions.conf.sample since v1.6.0 instead of a Macro as</span><br><span style="color: hsl(0, 100%, 40%);">- documented in v1.4. Set the asterisk.conf stdexten=macro parameter to</span><br><span style="color: hsl(0, 100%, 40%);">- invoke the stdexten the old way.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-res_jabber</span><br><span style="color: hsl(0, 100%, 40%);">- - This module has been deprecated in favor of the res_xmpp module. The res_xmpp</span><br><span style="color: hsl(0, 100%, 40%);">- module is backwards compatible with the res_jabber configuration file, dialplan</span><br><span style="color: hsl(0, 100%, 40%);">- functions, and AMI actions. The old CLI commands can also be made available using</span><br><span style="color: hsl(0, 100%, 40%);">- the res_clialiases template for Asterisk 11.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-From 1.8 to 10:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-cel_pgsql:</span><br><span style="color: hsl(0, 100%, 40%);">- - This module now expects an 'extra' column in the database for data added</span><br><span style="color: hsl(0, 100%, 40%);">- using the CELGenUserEvent() application.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-ConfBridge</span><br><span style="color: hsl(0, 100%, 40%);">- - ConfBridge's dialplan arguments have changed and are not</span><br><span style="color: hsl(0, 100%, 40%);">- backwards compatible.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-File Interpreters</span><br><span style="color: hsl(0, 100%, 40%);">- - The format interpreter formats/format_sln16.c for the file extension</span><br><span style="color: hsl(0, 100%, 40%);">- '.sln16' has been removed. The '.sln16' file interpreter now exists</span><br><span style="color: hsl(0, 100%, 40%);">- in the formats/format_sln.c module along with new support for sln12,</span><br><span style="color: hsl(0, 100%, 40%);">- sln24, sln32, sln44, sln48, sln96, and sln192 file extensions.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-HTTP:</span><br><span style="color: hsl(0, 100%, 40%);">- - A bindaddr must be specified in order for the HTTP server</span><br><span style="color: hsl(0, 100%, 40%);">- to run. Previous versions would default to 0.0.0.0 if no</span><br><span style="color: hsl(0, 100%, 40%);">- bindaddr was specified.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Gtalk:</span><br><span style="color: hsl(0, 100%, 40%);">- - The default value for 'context' and 'parkinglots' in gtalk.conf has</span><br><span style="color: hsl(0, 100%, 40%);">- been changed to 'default', previously they were empty.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-chan_dahdi:</span><br><span style="color: hsl(0, 100%, 40%);">- - The mohinterpret=passthrough setting is deprecated in favor of</span><br><span style="color: hsl(0, 100%, 40%);">- moh_signaling=notify.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-pbx_lua:</span><br><span style="color: hsl(0, 100%, 40%);">- - Execution no longer continues after applications that do dialplan jumps</span><br><span style="color: hsl(0, 100%, 40%);">- (such as app.goto). Now when an application such as app.goto() is called,</span><br><span style="color: hsl(0, 100%, 40%);">- control is returned back to the pbx engine and the current extension</span><br><span style="color: hsl(0, 100%, 40%);">- function stops executing.</span><br><span style="color: hsl(0, 100%, 40%);">- - the autoservice now defaults to being on by default</span><br><span style="color: hsl(0, 100%, 40%);">- - autoservice_start() and autoservice_start() no longer return a value.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Queue:</span><br><span style="color: hsl(0, 100%, 40%);">- - Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members</span><br><span style="color: hsl(0, 100%, 40%);">- - QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Asterisk Database:</span><br><span style="color: hsl(0, 100%, 40%);">- - The internal Asterisk database has been switched from Berkeley DB 1.86 to</span><br><span style="color: hsl(0, 100%, 40%);">- SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3</span><br><span style="color: hsl(0, 100%, 40%);">- utility in the UTILS section of menuselect. If an existing astdb is found and no</span><br><span style="color: hsl(0, 100%, 40%);">- astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will</span><br><span style="color: hsl(0, 100%, 40%);">- convert an existing astdb to the SQLite3 version automatically at runtime. If</span><br><span style="color: hsl(0, 100%, 40%);">- moving back from Asterisk 10 to Asterisk 1.8, the astdb2bdb utility can be used</span><br><span style="color: hsl(0, 100%, 40%);">- to create a Berkeley DB copy of the SQLite3 astdb that Asterisk 10 uses.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Manager:</span><br><span style="color: hsl(0, 100%, 40%);">- - The AMI protocol version was incremented to 1.2 as a result of changing two</span><br><span style="color: hsl(0, 100%, 40%);">- instances of the Unlink event to Bridge events. This change was documented</span><br><span style="color: hsl(0, 100%, 40%);">- as part of the AMI 1.1 update, but two Unlink events were inadvertently left</span><br><span style="color: hsl(0, 100%, 40%);">- unchanged.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Module Support Level</span><br><span style="color: hsl(0, 100%, 40%);">- - All modules in the addons, apps, bridge, cdr, cel, channels, codecs,</span><br><span style="color: hsl(0, 100%, 40%);">- formats, funcs, pbx, and res have been updated to include MODULEINFO data</span><br><span style="color: hsl(0, 100%, 40%);">- that includes <support_level> tags with a value of core, extended, or deprecated.</span><br><span style="color: hsl(0, 100%, 40%);">- More information is available on the Asterisk wiki at</span><br><span style="color: hsl(0, 100%, 40%);">- https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- Deprecated modules are now marked to not build by default and must be explicitly</span><br><span style="color: hsl(0, 100%, 40%);">- enabled in menuselect.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-chan_sip:</span><br><span style="color: hsl(0, 100%, 40%);">- - Setting of HASH(SIP_CAUSE,<slave-channel-name>) on channels is now disabled</span><br><span style="color: hsl(0, 100%, 40%);">- by default. It can be enabled using the 'storesipcause' option. This feature</span><br><span style="color: hsl(0, 100%, 40%);">- has a significant performance penalty.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-UDPTL:</span><br><span style="color: hsl(0, 100%, 40%);">- - The default UDPTL port range in udptl.conf.sample differed from the defaults</span><br><span style="color: hsl(0, 100%, 40%);">- in the source. If you didn't have a config file, you got 4500 to 4599. Now the</span><br><span style="color: hsl(0, 100%, 40%);">- default is 4000 to 4999.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span>diff --git a/UPGRADE-12.txt b/UPGRADE-12.txt</span><br><span>deleted file mode 100644</span><br><span>index 665e016..0000000</span><br><span>--- a/UPGRADE-12.txt</span><br><span>+++ /dev/null</span><br><span>@@ -1,478 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== Information for upgrading between Asterisk versions</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== These files document all the changes that MUST be taken</span><br><span style="color: hsl(0, 100%, 40%);">-=== into account when upgrading between the Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== versions listed below. These changes may require that</span><br><span style="color: hsl(0, 100%, 40%);">-=== you modify your configuration files, dialplan or (in</span><br><span style="color: hsl(0, 100%, 40%);">-=== some cases) source code if you have your own Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== modules or patches. These files also include advance</span><br><span style="color: hsl(0, 100%, 40%);">-=== notice of any functionality that has been marked as</span><br><span style="color: hsl(0, 100%, 40%);">-=== 'deprecated' and may be removed in a future release,</span><br><span style="color: hsl(0, 100%, 40%);">-=== along with the suggested replacement functionality.</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-10.txt -- Upgrade info for 1.8 to 10</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-11.txt -- Upgrade info for 10 to 11</span><br><span style="color: hsl(0, 100%, 40%);">-===</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-There are many significant architectural changes in Asterisk 12. It is</span><br><span style="color: hsl(0, 100%, 40%);">-recommended that you not only read through this document for important</span><br><span style="color: hsl(0, 100%, 40%);">-changes that affect an upgrade, but that you also read through the CHANGES</span><br><span style="color: hsl(0, 100%, 40%);">-document in depth to better understand the new options available to you.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Additional information on the architectural changes made in Asterisk can be</span><br><span style="color: hsl(0, 100%, 40%);">-found on the Asterisk wiki (https://wiki.asterisk.org)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Of particular note, the following systems in Asterisk underwent significant</span><br><span style="color: hsl(0, 100%, 40%);">-changes. Documentation for the changes and a specification for their</span><br><span style="color: hsl(0, 100%, 40%);">-behavior in Asterisk 12 is also available on the Asterisk wiki.</span><br><span style="color: hsl(0, 100%, 40%);">- - AMI: Many events were changed, and the semantics of channels and bridges</span><br><span style="color: hsl(0, 100%, 40%);">- were defined. In particular, how channels and bridges behave under</span><br><span style="color: hsl(0, 100%, 40%);">- transfer scenarios and situations involving multiple parties has</span><br><span style="color: hsl(0, 100%, 40%);">- changed significantly. See https://wiki.asterisk.org/wiki/x/dAFRAQ</span><br><span style="color: hsl(0, 100%, 40%);">- for more information.</span><br><span style="color: hsl(0, 100%, 40%);">- - CDR: CDR logic was extracted from the many locations it existed in across</span><br><span style="color: hsl(0, 100%, 40%);">- Asterisk and implemented as a consumer of Stasis message bus events.</span><br><span style="color: hsl(0, 100%, 40%);">- As a result, consistency of records has improved significantly and the</span><br><span style="color: hsl(0, 100%, 40%);">- behavior of CDRs in transfer scenarios has been defined in the CDR</span><br><span style="color: hsl(0, 100%, 40%);">- specification. However, significant behavioral changes in CDRs resulted</span><br><span style="color: hsl(0, 100%, 40%);">- from the transition. The most significant change is the addition of</span><br><span style="color: hsl(0, 100%, 40%);">- CDR entries when a channel who is the Party A in a CDR leaves a bridge.</span><br><span style="color: hsl(0, 100%, 40%);">- See https://wiki.asterisk.org/wiki/x/pwpRAQ for more information.</span><br><span style="color: hsl(0, 100%, 40%);">- - CEL: Much like CDRs, CEL was removed from the many locations it existed in</span><br><span style="color: hsl(0, 100%, 40%);">- across Asterisk and implemented as a consumer of Stasis message bus</span><br><span style="color: hsl(0, 100%, 40%);">- events. It now closely follows the Bridging API model of channels and</span><br><span style="color: hsl(0, 100%, 40%);">- bridges, and has a much closer consistency of conveyed events as AMI.</span><br><span style="color: hsl(0, 100%, 40%);">- For the changes in events, see https://wiki.asterisk.org/wiki/x/4ICLAQ.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Build System:</span><br><span style="color: hsl(0, 100%, 40%);">- - Removed the CHANNEL_TRACE development mode build option. Certain aspects of</span><br><span style="color: hsl(0, 100%, 40%);">- the CHANNEL_TRACE build option were incompatible with the new bridging</span><br><span style="color: hsl(0, 100%, 40%);">- architecture.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - Asterisk now depends on libjansson, libuuid and optionally (but recommended)</span><br><span style="color: hsl(0, 100%, 40%);">- libxslt and uriparser.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The new SIP stack and channel driver uses a particular version of PJSIP.</span><br><span style="color: hsl(0, 100%, 40%);">- Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on</span><br><span style="color: hsl(0, 100%, 40%);">- configuring and installing PJSIP for use with Asterisk.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AgentLogin and chan_agent:</span><br><span style="color: hsl(0, 100%, 40%);">- - Along with AgentRequest, this application has been modified to be a</span><br><span style="color: hsl(0, 100%, 40%);">- replacement for chan_agent. The chan_agent module and the Agent channel</span><br><span style="color: hsl(0, 100%, 40%);">- driver have been removed from Asterisk, as the concept of a channel driver</span><br><span style="color: hsl(0, 100%, 40%);">- proxying in front of another channel driver was incompatible with the new</span><br><span style="color: hsl(0, 100%, 40%);">- architecture (and has had numerous problems through past versions of</span><br><span style="color: hsl(0, 100%, 40%);">- Asterisk). The act of a channel calling the AgentLogin application places the</span><br><span style="color: hsl(0, 100%, 40%);">- channel into a pool of agents that can be requested by the AgentRequest</span><br><span style="color: hsl(0, 100%, 40%);">- application. Note that this application, as well as all other agent related</span><br><span style="color: hsl(0, 100%, 40%);">- functionality, is now provided by the app_agent_pool module.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - This application no longer performs agent authentication. If authentication</span><br><span style="color: hsl(0, 100%, 40%);">- is desired, the dialplan needs to perform this function using the</span><br><span style="color: hsl(0, 100%, 40%);">- Authenticate or VMAuthenticate application or through an AGI script before</span><br><span style="color: hsl(0, 100%, 40%);">- running AgentLogin.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The agents.conf schema has changed. Rather than specifying agents on a</span><br><span style="color: hsl(0, 100%, 40%);">- single line in comma delineated fashion, each agent is defined in a separate</span><br><span style="color: hsl(0, 100%, 40%);">- context. This allows agents to use the power of context templates in their</span><br><span style="color: hsl(0, 100%, 40%);">- definition.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - A number of parameters from agents.conf have been removed. This includes</span><br><span style="color: hsl(0, 100%, 40%);">- maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,</span><br><span style="color: hsl(0, 100%, 40%);">- urlprefix, and savecallsin. These options were obsoleted by the move from</span><br><span style="color: hsl(0, 100%, 40%);">- a channel driver model to the bridging/application model provided by</span><br><span style="color: hsl(0, 100%, 40%);">- app_agent_pool.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The AGENTUPDATECDR channel variable has also been removed, for the same</span><br><span style="color: hsl(0, 100%, 40%);">- reason as the updatecdr option.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The endcall and enddtmf configuration options are removed. Use the</span><br><span style="color: hsl(0, 100%, 40%);">- dialplan function CHANNEL(dtmf_features) to set DTMF features on the agent</span><br><span style="color: hsl(0, 100%, 40%);">- channel before calling AgentLogin.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AgentMonitorOutgoing</span><br><span style="color: hsl(0, 100%, 40%);">- - This application has been removed. It was a holdover from when</span><br><span style="color: hsl(0, 100%, 40%);">- AgentCallbackLogin was removed.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Answer</span><br><span style="color: hsl(0, 100%, 40%);">- - It is no longer possible to bypass updating the CDR when answering a</span><br><span style="color: hsl(0, 100%, 40%);">- channel. CDRs are based on the channel state and will be updated when</span><br><span style="color: hsl(0, 100%, 40%);">- the channel is Answered.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-ControlPlayback</span><br><span style="color: hsl(0, 100%, 40%);">- - The channel variable CPLAYBACKSTATUS may now return the value</span><br><span style="color: hsl(0, 100%, 40%);">- 'REMOTESTOPPED' when playback is stopped by an external entity.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-DISA</span><br><span style="color: hsl(0, 100%, 40%);">- - This application now has a dependency on the app_cdr module. It uses this</span><br><span style="color: hsl(0, 100%, 40%);">- module to hide the CDR created prior to execution of the DISA application.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-DumpChan:</span><br><span style="color: hsl(0, 100%, 40%);">- - The output of DumpChan no longer includes the DirectBridge or IndirectBridge</span><br><span style="color: hsl(0, 100%, 40%);">- fields. Instead, if a channel is in a bridge, it includes a BridgeID field</span><br><span style="color: hsl(0, 100%, 40%);">- containing the unique ID of the bridge that the channel happens to be in.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-ForkCDR:</span><br><span style="color: hsl(0, 100%, 40%);">- - Nearly every parameter in ForkCDR has been updated and changed to reflect</span><br><span style="color: hsl(0, 100%, 40%);">- the changes in CDRs. Please see the documentation for the ForkCDR</span><br><span style="color: hsl(0, 100%, 40%);">- application, as well as the CDR specification on the Asterisk wiki.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-NoCDR:</span><br><span style="color: hsl(0, 100%, 40%);">- - The NoCDR application has been deprecated. Please use the CDR_PROP function</span><br><span style="color: hsl(0, 100%, 40%);">- to disable CDRs on a channel.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-ParkAndAnnounce:</span><br><span style="color: hsl(0, 100%, 40%);">- - The app_parkandannounce module has been removed. The application</span><br><span style="color: hsl(0, 100%, 40%);">- ParkAndAnnounce is now provided by the res_parking module. See the</span><br><span style="color: hsl(0, 100%, 40%);">- Parking changes for more information.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-ResetCDR:</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'w' and 'a' options have been removed. Dispatching CDRs to registered</span><br><span style="color: hsl(0, 100%, 40%);">- backends occurs on an as-needed basis in order to preserve linkedid</span><br><span style="color: hsl(0, 100%, 40%);">- propagation and other needed behavior.</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'e' option is deprecated. Please use the CDR_PROP function to enable</span><br><span style="color: hsl(0, 100%, 40%);">- CDRs on a channel that they were previously disabled on.</span><br><span style="color: hsl(0, 100%, 40%);">- - The ResetCDR application is no longer a part of core Asterisk, and instead</span><br><span style="color: hsl(0, 100%, 40%);">- is now delivered as part of app_cdr.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Queues:</span><br><span style="color: hsl(0, 100%, 40%);">- - Queue strategy rrmemory now has a predictable order similar to strategy</span><br><span style="color: hsl(0, 100%, 40%);">- rrordered. Members will be called in the order that they are added to the</span><br><span style="color: hsl(0, 100%, 40%);">- queue.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - Removed the queues.conf check_state_unknown option. It is no longer</span><br><span style="color: hsl(0, 100%, 40%);">- necessary.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - It is now possible to play the Queue prompts to the first user waiting in a</span><br><span style="color: hsl(0, 100%, 40%);">- call queue. Note that this may impact the ability for agents to talk with</span><br><span style="color: hsl(0, 100%, 40%);">- users, as a prompt may still be playing when an agent connects to the user.</span><br><span style="color: hsl(0, 100%, 40%);">- This ability is disabled by default but can be enabled on an individual</span><br><span style="color: hsl(0, 100%, 40%);">- queue using the 'announce-to-first-user' option.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The configuration options eventwhencalled and eventmemberstatus have been</span><br><span style="color: hsl(0, 100%, 40%);">- removed. As a result, the AMI events QueueMemberStatus, AgentCalled,</span><br><span style="color: hsl(0, 100%, 40%);">- AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be</span><br><span style="color: hsl(0, 100%, 40%);">- sent. The "Variable" fields will also no longer exist on the Agent* events.</span><br><span style="color: hsl(0, 100%, 40%);">- These events can be filtered out from a connected AMI client using the</span><br><span style="color: hsl(0, 100%, 40%);">- eventfilter setting in manager.conf.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The queue log now differentiates between blind and attended transfers. A</span><br><span style="color: hsl(0, 100%, 40%);">- blind transfer will result in a BLINDTRANSFER message with the destination</span><br><span style="color: hsl(0, 100%, 40%);">- context and extension. An attended transfer will result in an</span><br><span style="color: hsl(0, 100%, 40%);">- ATTENDEDTRANSFER message. This message will indicate the method by which</span><br><span style="color: hsl(0, 100%, 40%);">- the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"</span><br><span style="color: hsl(0, 100%, 40%);">- for running an application on a bridge or channel, or "LINK" for linking</span><br><span style="color: hsl(0, 100%, 40%);">- two bridges together with local channels. The queue log will also now detect</span><br><span style="color: hsl(0, 100%, 40%);">- externally initiated blind and attended transfers and record the transfer</span><br><span style="color: hsl(0, 100%, 40%);">- status accordingly.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - When performing queue pause/unpause on an interface without specifying an</span><br><span style="color: hsl(0, 100%, 40%);">- individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at</span><br><span style="color: hsl(0, 100%, 40%);">- least one member of any queue exists for that interface.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-SetAMAFlags</span><br><span style="color: hsl(0, 100%, 40%);">- - This application is deprecated in favor of CHANNEL(amaflags).</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-VoiceMail:</span><br><span style="color: hsl(0, 100%, 40%);">- - Mailboxes defined by app_voicemail MUST be referenced by the rest of the</span><br><span style="color: hsl(0, 100%, 40%);">- system as mailbox@context. The rest of the system cannot add @default</span><br><span style="color: hsl(0, 100%, 40%);">- to mailbox identifiers for app_voicemail that do not specify a context</span><br><span style="color: hsl(0, 100%, 40%);">- any longer. It is a mailbox identifier format that should only be</span><br><span style="color: hsl(0, 100%, 40%);">- interpreted by app_voicemail.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The voicemail.conf configuration file now has an 'alias' configuration</span><br><span style="color: hsl(0, 100%, 40%);">- parameter for use with the Directory application. The voicemail realtime</span><br><span style="color: hsl(0, 100%, 40%);">- database table schema has also been updated with an 'alias' column. Systems</span><br><span style="color: hsl(0, 100%, 40%);">- using voicemail with realtime should update their schemas accordingly.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Channel Drivers:</span><br><span style="color: hsl(0, 100%, 40%);">- - When a channel driver is configured to enable jiterbuffers, they are now</span><br><span style="color: hsl(0, 100%, 40%);">- applied unconditionally when a channel joins a bridge. If a jitterbuffer</span><br><span style="color: hsl(0, 100%, 40%);">- is already set for that channel when it enters, such as by the JITTERBUFFER</span><br><span style="color: hsl(0, 100%, 40%);">- function, then the existing jitterbuffer will be used and the one set by</span><br><span style="color: hsl(0, 100%, 40%);">- the channel driver will not be applied.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-chan_bridge</span><br><span style="color: hsl(0, 100%, 40%);">- - chan_bridge is removed and its functionality is incorporated into ConfBridge</span><br><span style="color: hsl(0, 100%, 40%);">- itself.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-chan_dahdi:</span><br><span style="color: hsl(0, 100%, 40%);">- - Analog port dialing and deferred DTMF dialing for PRI now distinguishes</span><br><span style="color: hsl(0, 100%, 40%);">- between 'w' and 'W'. The 'w' pauses dialing for half a second. The 'W'</span><br><span style="color: hsl(0, 100%, 40%);">- pauses dialing for one second.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The default for inband_on_proceeding has changed to no.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.</span><br><span style="color: hsl(0, 100%, 40%);">- A range of channels can be specified to be destroyed. Note that this command</span><br><span style="color: hsl(0, 100%, 40%);">- should only be used if you understand the risks it entails.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The script specified by the chan_dahdi.conf mwimonitornotify option now gets</span><br><span style="color: hsl(0, 100%, 40%);">- the exact configured mailbox name. For app_voicemail mailboxes this is</span><br><span style="color: hsl(0, 100%, 40%);">- mailbox@context.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - ignore_failed_channels now defaults to True: the channel will continue to</span><br><span style="color: hsl(0, 100%, 40%);">- be configured even if configuring it has failed. This is generally a</span><br><span style="color: hsl(0, 100%, 40%);">- better setup for systems with not more than one DAHDI device or with DAHDI</span><br><span style="color: hsl(0, 100%, 40%);">- >= 2.8.0 .</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-chan_local:</span><br><span style="color: hsl(0, 100%, 40%);">- - The /b option has been removed.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - chan_local moved into the system core and is no longer a loadable module.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-chan_sip:</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'callevents' parameter has been removed. Hold AMI events are now raised</span><br><span style="color: hsl(0, 100%, 40%);">- in the core, and can be filtered out using the 'eventfilter' parameter</span><br><span style="color: hsl(0, 100%, 40%);">- in manager.conf.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - Dynamic realtime tables for SIP Users can now include a 'path' field. This</span><br><span style="color: hsl(0, 100%, 40%);">- will store the path information for that peer when it registers. Realtime</span><br><span style="color: hsl(0, 100%, 40%);">- tables can also use the 'supportpath' field to enable Path header support.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - LDAP realtime configurations for SIP Users now have the AstAccountPathSupport</span><br><span style="color: hsl(0, 100%, 40%);">- objectIdentifier. This maps to the supportpath option in sip.conf.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Core:</span><br><span style="color: hsl(0, 100%, 40%);">- - Masquerades as an operation inside Asterisk have been effectively hidden</span><br><span style="color: hsl(0, 100%, 40%);">- by the migration to the Bridging API. As such, many 'quirks' of Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">- no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,</span><br><span style="color: hsl(0, 100%, 40%);">- dropping of frame/audio hooks, and other internal implementation details</span><br><span style="color: hsl(0, 100%, 40%);">- that users had to deal with. This fundamental change has large implications</span><br><span style="color: hsl(0, 100%, 40%);">- throughout the changes documented for this version. For more information</span><br><span style="color: hsl(0, 100%, 40%);">- about the new core architecture of Asterisk, please see the Asterisk wiki.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The following channel variables have changed behavior which is described in</span><br><span style="color: hsl(0, 100%, 40%);">- the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,</span><br><span style="color: hsl(0, 100%, 40%);">- ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AMI (Asterisk Manager Interface):</span><br><span style="color: hsl(0, 100%, 40%);">- - Version 1.4 - The details of what happens to a channel when a masquerade</span><br><span style="color: hsl(0, 100%, 40%);">- happens (transfers, parking, etc) have changed.</span><br><span style="color: hsl(0, 100%, 40%);">- - The Masquerade event now includes the Uniqueid's of the clone and original</span><br><span style="color: hsl(0, 100%, 40%);">- channels.</span><br><span style="color: hsl(0, 100%, 40%);">- - Channels no longer swap Uniqueid's as a result of the masquerade.</span><br><span style="color: hsl(0, 100%, 40%);">- - Instead of a shell game of renames, there's now a single rename, appending</span><br><span style="color: hsl(0, 100%, 40%);">- <ZOMBIE> to the name of the original channel.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - *Major* changes were made to both the syntax as well as the semantics of the</span><br><span style="color: hsl(0, 100%, 40%);">- AMI protocol. In particular, AMI events have been substantially modified</span><br><span style="color: hsl(0, 100%, 40%);">- and improved in this version of Asterisk. The major event changes are listed</span><br><span style="color: hsl(0, 100%, 40%);">- below.</span><br><span style="color: hsl(0, 100%, 40%);">- - NewPeerAccount has been removed. NewAccountCode is raised instead.</span><br><span style="color: hsl(0, 100%, 40%);">- - Reload events have been consolidated and standardized.</span><br><span style="color: hsl(0, 100%, 40%);">- - ModuleLoadReport has been removed.</span><br><span style="color: hsl(0, 100%, 40%);">- - FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes</span><br><span style="color: hsl(0, 100%, 40%);">- app_fax and res_fax events.</span><br><span style="color: hsl(0, 100%, 40%);">- - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.</span><br><span style="color: hsl(0, 100%, 40%);">- - JabberEvent has been removed.</span><br><span style="color: hsl(0, 100%, 40%);">- - Hold is now in the core and will now raise Hold and Unhold events.</span><br><span style="color: hsl(0, 100%, 40%);">- - Join is now QueueCallerJoin.</span><br><span style="color: hsl(0, 100%, 40%);">- - Leave is now QueueCallerLeave.</span><br><span style="color: hsl(0, 100%, 40%);">- - Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.</span><br><span style="color: hsl(0, 100%, 40%);">- - ChannelUpdate has been removed.</span><br><span style="color: hsl(0, 100%, 40%);">- - Local channel optimization is now conveyed via LocalOptimizationBegin and</span><br><span style="color: hsl(0, 100%, 40%);">- LocalOptimizationEnd.</span><br><span style="color: hsl(0, 100%, 40%);">- - BridgeAction and BridgeExec have been removed.</span><br><span style="color: hsl(0, 100%, 40%);">- - BlindTransfer and AttendedTransfer events were added.</span><br><span style="color: hsl(0, 100%, 40%);">- - Dial is now DialBegin and DialEnd.</span><br><span style="color: hsl(0, 100%, 40%);">- - DTMF is now DTMFBegin and DTMFEnd.</span><br><span style="color: hsl(0, 100%, 40%);">- - Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and</span><br><span style="color: hsl(0, 100%, 40%);">- BridgeDestroy</span><br><span style="color: hsl(0, 100%, 40%);">- - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop</span><br><span style="color: hsl(0, 100%, 40%);">- - AGIExec is now AGIExecStart and AGIExecEnd</span><br><span style="color: hsl(0, 100%, 40%);">- - AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'MCID' AMI event now publishes a channel snapshot when available and</span><br><span style="color: hsl(0, 100%, 40%);">- its non-channel-snapshot parameters now use either the "MCallerID" or</span><br><span style="color: hsl(0, 100%, 40%);">- 'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead</span><br><span style="color: hsl(0, 100%, 40%);">- of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named</span><br><span style="color: hsl(0, 100%, 40%);">- parameters in the channel snapshot.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been</span><br><span style="color: hsl(0, 100%, 40%);">- renamed "DAHDIChannel" since it does not convey an Asterisk channel name.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - All AMI events now contain a 'SystemName' field, if available.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - Local channel information in events is now prefixed with 'LocalOne' and</span><br><span style="color: hsl(0, 100%, 40%);">- 'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of</span><br><span style="color: hsl(0, 100%, 40%);">- the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',</span><br><span style="color: hsl(0, 100%, 40%);">- and 'LocalOptimizationEnd' events.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'RTCPSent'/'RTCPReceived' events have been significantly modified from</span><br><span style="color: hsl(0, 100%, 40%);">- previous versions. They now report all SR/RR packets sent/received, and</span><br><span style="color: hsl(0, 100%, 40%);">- have been restructured to better reflect the data sent in a SR/RR. In</span><br><span style="color: hsl(0, 100%, 40%);">- particular, the event structure now supports multiple report blocks.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The deprecated use of | (pipe) as a separator in the channelvars setting in</span><br><span style="color: hsl(0, 100%, 40%);">- manager.conf has been removed.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The SIP SIPqualifypeer action now sends a response indicating it will qualify</span><br><span style="color: hsl(0, 100%, 40%);">- a peer once a peer has been found to qualify. Once the qualify has been</span><br><span style="color: hsl(0, 100%, 40%);">- completed it will now issue a SIPqualifypeerdone event.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed</span><br><span style="color: hsl(0, 100%, 40%);">- in a future release. Please use the common 'Exten' field instead.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and</span><br><span style="color: hsl(0, 100%, 40%);">- 'UnParkedCall' have changed significantly in the new res_parking module.</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'Channel' and 'From' headers are gone. For the channel that was parked</span><br><span style="color: hsl(0, 100%, 40%);">- or is coming out of parking, a 'Parkee' channel snapshot is issued and it</span><br><span style="color: hsl(0, 100%, 40%);">- has a number of fields associated with it. The old 'Channel' header relayed</span><br><span style="color: hsl(0, 100%, 40%);">- the same data as the new 'ParkeeChannel' header.</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'From' field was ambiguous and changed meaning depending on the event.</span><br><span style="color: hsl(0, 100%, 40%);">- for most of these, it was the name of the channel that parked the call</span><br><span style="color: hsl(0, 100%, 40%);">- (the 'Parker'). There is no longer a header that provides this channel name,</span><br><span style="color: hsl(0, 100%, 40%);">- however the 'ParkerDialString' will contain a dialstring to redial the</span><br><span style="color: hsl(0, 100%, 40%);">- device that parked the call.</span><br><span style="color: hsl(0, 100%, 40%);">- - On UnParkedCall events, the 'From' header would instead represent the</span><br><span style="color: hsl(0, 100%, 40%);">- channel responsible for retrieving the parkee. It receives a channel</span><br><span style="color: hsl(0, 100%, 40%);">- snapshot labeled 'Retriever'. The 'from' field is is replaced with</span><br><span style="color: hsl(0, 100%, 40%);">- 'RetrieverChannel'.</span><br><span style="color: hsl(0, 100%, 40%);">- - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar</span><br><span style="color: hsl(0, 100%, 40%);">- fashion has changed the field names 'StartExten' and 'StopExten' to</span><br><span style="color: hsl(0, 100%, 40%);">- 'StartSpace' and 'StopSpace' respectively.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The AMI 'Status' response event to the AMI Status action replaces the</span><br><span style="color: hsl(0, 100%, 40%);">- 'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to</span><br><span style="color: hsl(0, 100%, 40%);">- indicate what bridge the channel is currently in.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-CDR (Call Detail Records)</span><br><span style="color: hsl(0, 100%, 40%);">- - Significant changes have been made to the behavior of CDRs. The CDR engine</span><br><span style="color: hsl(0, 100%, 40%);">- was effectively rewritten and built on the Stasis message bus. For a full</span><br><span style="color: hsl(0, 100%, 40%);">- definition of CDR behavior in Asterisk 12, please read the specification</span><br><span style="color: hsl(0, 100%, 40%);">- on the Asterisk wiki (wiki.asterisk.org).</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - CDRs will now be created between all participants in a bridge. For each</span><br><span style="color: hsl(0, 100%, 40%);">- pair of channels in a bridge, a CDR is created to represent the path of</span><br><span style="color: hsl(0, 100%, 40%);">- communication between those two endpoints. This lets an end user choose who</span><br><span style="color: hsl(0, 100%, 40%);">- to bill for what during bridge operations with multiple parties.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The duration, billsec, start, answer, and end times now reflect the times</span><br><span style="color: hsl(0, 100%, 40%);">- associated with the current CDR for the channel, as opposed to a cumulative</span><br><span style="color: hsl(0, 100%, 40%);">- measurement of all CDRs for that channel.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-CEL:</span><br><span style="color: hsl(0, 100%, 40%);">- - The Uniqueid field for a channel is now a stable identifier, and will not</span><br><span style="color: hsl(0, 100%, 40%);">- change due to transfers, parking, etc.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - CEL has undergone significant rework in Asterisk 12, and is now built on the</span><br><span style="color: hsl(0, 100%, 40%);">- Stasis message bus. Please see the specification for CEL on the Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">- wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed</span><br><span style="color: hsl(0, 100%, 40%);">- information. A summary of the affected events is below:</span><br><span style="color: hsl(0, 100%, 40%);">- - BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,</span><br><span style="color: hsl(0, 100%, 40%);">- CONF_EXIT, CONF_START, and CONF_END events have all been removed. These</span><br><span style="color: hsl(0, 100%, 40%);">- events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT.</span><br><span style="color: hsl(0, 100%, 40%);">- - BLINDTRANSFER/ATTENDEDTRANSFER events now report the peer as NULL and</span><br><span style="color: hsl(0, 100%, 40%);">- additional information in the extra string field.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Dialplan Functions:</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - Certain dialplan functions have been marked as 'dangerous', and may only be</span><br><span style="color: hsl(0, 100%, 40%);">- executed from the dialplan. Execution from extenal sources (AMI's GetVar and</span><br><span style="color: hsl(0, 100%, 40%);">- SetVar actions; etc.) may be inhibited by setting live_dangerously in the</span><br><span style="color: hsl(0, 100%, 40%);">- [options] section of asterisk.conf to no. SHELL(), channel locking, and</span><br><span style="color: hsl(0, 100%, 40%);">- direct file read/write functions are marked as dangerous. DB_DELETE() and</span><br><span style="color: hsl(0, 100%, 40%);">- REALTIME_DESTROY() are marked as dangerous for reads, but can now safely</span><br><span style="color: hsl(0, 100%, 40%);">- accept writes (which ignore the provided value).</span><br><span style="color: hsl(0, 100%, 40%);">- - The default value for live_dangerously was changed from yes (in Asterisk 11</span><br><span style="color: hsl(0, 100%, 40%);">- and earlier) to no (in Asterisk 12 and greater).</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Dialplan:</span><br><span style="color: hsl(0, 100%, 40%);">- - All channel and global variable names are evaluated in a case-sensitive</span><br><span style="color: hsl(0, 100%, 40%);">- manner. In previous versions of Asterisk, variables created and evaluated in</span><br><span style="color: hsl(0, 100%, 40%);">- the dialplan were evaluated case-insensitively, but built-in variables and</span><br><span style="color: hsl(0, 100%, 40%);">- variable evaluation done internally within Asterisk was done</span><br><span style="color: hsl(0, 100%, 40%);">- case-sensitively.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - Asterisk has always had code to ignore dash '-' characters that are not</span><br><span style="color: hsl(0, 100%, 40%);">- part of a character set in the dialplan extensions. The code now</span><br><span style="color: hsl(0, 100%, 40%);">- consistently ignores these characters when matching dialplan extensions.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - BRIDGE_FEATURES channel variable is now casesensitive for feature letter</span><br><span style="color: hsl(0, 100%, 40%);">- codes. Uppercase variants apply them to the calling party while lowercase</span><br><span style="color: hsl(0, 100%, 40%);">- variants apply them to the called party.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Features:</span><br><span style="color: hsl(0, 100%, 40%);">- - The features.conf [applicationmap] <FeatureName> ActivatedBy option is</span><br><span style="color: hsl(0, 100%, 40%);">- no longer honored. The feature is always activated by the channel that has</span><br><span style="color: hsl(0, 100%, 40%);">- DYNAMIC_FEATURES defined on it when it enters the bridge. Use predial to set</span><br><span style="color: hsl(0, 100%, 40%);">- different values of DYNAMIC_FEATURES on the channels</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - Executing a dynamic feature on the bridge peer in a multi-party bridge will</span><br><span style="color: hsl(0, 100%, 40%);">- execute it on all peers of the activating channel.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - There is no longer an explicit 'features reload' CLI command. Features can</span><br><span style="color: hsl(0, 100%, 40%);">- still be reloaded using 'module reload features'.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in</span><br><span style="color: hsl(0, 100%, 40%);">- features.c for atxferdropcall=no to work properly. This option now just</span><br><span style="color: hsl(0, 100%, 40%);">- works.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Parking:</span><br><span style="color: hsl(0, 100%, 40%);">- - Parking has been extracted from the Asterisk core as a loadable module,</span><br><span style="color: hsl(0, 100%, 40%);">- res_parking.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - Configuration is found in res_parking.conf. It is no longer supported in</span><br><span style="color: hsl(0, 100%, 40%);">- features.conf</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications</span><br><span style="color: hsl(0, 100%, 40%);">- have been modified significantly. See the application documents for</span><br><span style="color: hsl(0, 100%, 40%);">- specific details.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - Numerous changes to Parking related applications, AMI and CLI commands and</span><br><span style="color: hsl(0, 100%, 40%);">- internal inter-workings have been made. Please read the CHANGES file for</span><br><span style="color: hsl(0, 100%, 40%);">- the detailed list.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-Security Events Framework:</span><br><span style="color: hsl(0, 100%, 40%);">- - Security Event timestamps now use ISO 8601 formatted date/time instead of</span><br><span style="color: hsl(0, 100%, 40%);">- the "seconds-microseconds" format that it was using previously.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AGENT:</span><br><span style="color: hsl(0, 100%, 40%);">- - The password option has been disabled, as the AgentLogin application no</span><br><span style="color: hsl(0, 100%, 40%);">- longer provides authentication.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AUDIOHOOK_INHERIT:</span><br><span style="color: hsl(0, 100%, 40%);">- - Due to changes in the Asterisk core, this function is no longer needed to</span><br><span style="color: hsl(0, 100%, 40%);">- preserve a MixMonitor on a channel during transfer operations and dialplan</span><br><span style="color: hsl(0, 100%, 40%);">- execution. It is effectively obsolete.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-CDR: (function)</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'amaflags' and 'accountcode' attributes for the CDR function are</span><br><span style="color: hsl(0, 100%, 40%);">- deprecated. Use the CHANNEL function instead to access these attributes.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'l' option has been removed. When reading a CDR attribute, the most</span><br><span style="color: hsl(0, 100%, 40%);">- recent record is always used. When writing a CDR attribute, all non-finalized</span><br><span style="color: hsl(0, 100%, 40%);">- CDRs are updated.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The 'r' option has been removed, for the same reason as the 'l' option.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- - The 's' option has been removed, as LOCKED semantics no longer exist in the</span><br><span style="color: hsl(0, 100%, 40%);">- CDR engine.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-VMCOUNT:</span><br><span style="color: hsl(0, 100%, 40%);">- - Mailboxes defined by app_voicemail MUST be referenced by the rest of the</span><br><span style="color: hsl(0, 100%, 40%);">- system as mailbox@context. The rest of the system cannot add @default</span><br><span style="color: hsl(0, 100%, 40%);">- to mailbox identifiers for app_voicemail that do not specify a context</span><br><span style="color: hsl(0, 100%, 40%);">- any longer. It is a mailbox identifier format that should only be</span><br><span style="color: hsl(0, 100%, 40%);">- interpreted by app_voicemail.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-res_rtp_asterisk:</span><br><span style="color: hsl(0, 100%, 40%);">- - ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable</span><br><span style="color: hsl(0, 100%, 40%);">- them, an Asterisk-specific version of PJSIP needs to be installed.</span><br><span style="color: hsl(0, 100%, 40%);">- Tarballs are available from https://github.com/asterisk/pjproject/tags/.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span>diff --git a/UPGRADE.txt b/UPGRADE.txt</span><br><span>index 4426686..b3dcf0f 100644</span><br><span>--- a/UPGRADE.txt</span><br><span>+++ b/UPGRADE.txt</span><br><span>@@ -1,24 +1,21 @@</span><br><span> ===========================================================</span><br><span> ===</span><br><span style="color: hsl(120, 100%, 40%);">+=== THIS FILE IS AUTOMATICALLY GENERATED DURING THE RELEASE</span><br><span style="color: hsl(120, 100%, 40%);">+=== PROCESS. DO NOT MAKE CHANGES HERE. INSTEAD, REFER TO</span><br><span style="color: hsl(120, 100%, 40%);">+=== doc/UPGRADE-staging/README.md FOR MORE DETAILS.</span><br><span style="color: hsl(120, 100%, 40%);">+===</span><br><span> === Information for upgrading between Asterisk versions</span><br><span> ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== These files document all the changes that MUST be taken</span><br><span style="color: hsl(0, 100%, 40%);">-=== into account when upgrading between the Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== versions listed below. These changes may require that</span><br><span style="color: hsl(0, 100%, 40%);">-=== you modify your configuration files, dialplan or (in</span><br><span style="color: hsl(0, 100%, 40%);">-=== some cases) source code if you have your own Asterisk</span><br><span style="color: hsl(0, 100%, 40%);">-=== modules or patches. These files also include advance</span><br><span style="color: hsl(0, 100%, 40%);">-=== notice of any functionality that has been marked as</span><br><span style="color: hsl(0, 100%, 40%);">-=== 'deprecated' and may be removed in a future release,</span><br><span style="color: hsl(0, 100%, 40%);">-=== along with the suggested replacement functionality.</span><br><span style="color: hsl(120, 100%, 40%);">+=== This file documents all the changes that MUST be taken</span><br><span style="color: hsl(120, 100%, 40%);">+=== into account when upgrading between certain Asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+=== versions. These changes may require that you modify</span><br><span style="color: hsl(120, 100%, 40%);">+=== your configuration files, dialplan or (in some cases)</span><br><span style="color: hsl(120, 100%, 40%);">+=== source code if you have your own Asterisk modules or</span><br><span style="color: hsl(120, 100%, 40%);">+=== patches. This file also includes advance notice of any</span><br><span style="color: hsl(120, 100%, 40%);">+=== functionality that has been marked as 'deprecated' and</span><br><span style="color: hsl(120, 100%, 40%);">+=== may be removed in a future release, along with the</span><br><span style="color: hsl(120, 100%, 40%);">+=== suggested replacement functionality.</span><br><span> ===</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-10.txt -- Upgrade info for 1.8 to 10</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-11.txt -- Upgrade info for 10 to 11</span><br><span style="color: hsl(0, 100%, 40%);">-=== UPGRADE-12.txt -- Upgrade info for 11 to 12</span><br><span> ===========================================================</span><br><span> </span><br><span> From 13.23.1 to 13.24.0:</span><br><span>@@ -624,5 +621,2053 @@</span><br><span> - The refcounter program has been removed in favor of the refcounter.py script</span><br><span> in contrib/scripts.</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(0, 100%, 40%);">-===========================================================</span><br><span style="color: hsl(120, 100%, 40%);">+From 11 to 12:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+There are many significant architectural changes in Asterisk 12. It is</span><br><span style="color: hsl(120, 100%, 40%);">+recommended that you not only read through this document for important</span><br><span style="color: hsl(120, 100%, 40%);">+changes that affect an upgrade, but that you also read through the CHANGES</span><br><span style="color: hsl(120, 100%, 40%);">+document in depth to better understand the new options available to you.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Additional information on the architectural changes made in Asterisk can be</span><br><span style="color: hsl(120, 100%, 40%);">+found on the Asterisk wiki (https://wiki.asterisk.org)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Of particular note, the following systems in Asterisk underwent significant</span><br><span style="color: hsl(120, 100%, 40%);">+changes. Documentation for the changes and a specification for their</span><br><span style="color: hsl(120, 100%, 40%);">+behavior in Asterisk 12 is also available on the Asterisk wiki.</span><br><span style="color: hsl(120, 100%, 40%);">+ - AMI: Many events were changed, and the semantics of channels and bridges</span><br><span style="color: hsl(120, 100%, 40%);">+ were defined. In particular, how channels and bridges behave under</span><br><span style="color: hsl(120, 100%, 40%);">+ transfer scenarios and situations involving multiple parties has</span><br><span style="color: hsl(120, 100%, 40%);">+ changed significantly. See https://wiki.asterisk.org/wiki/x/dAFRAQ</span><br><span style="color: hsl(120, 100%, 40%);">+ for more information.</span><br><span style="color: hsl(120, 100%, 40%);">+ - CDR: CDR logic was extracted from the many locations it existed in across</span><br><span style="color: hsl(120, 100%, 40%);">+ Asterisk and implemented as a consumer of Stasis message bus events.</span><br><span style="color: hsl(120, 100%, 40%);">+ As a result, consistency of records has improved significantly and the</span><br><span style="color: hsl(120, 100%, 40%);">+ behavior of CDRs in transfer scenarios has been defined in the CDR</span><br><span style="color: hsl(120, 100%, 40%);">+ specification. However, significant behavioral changes in CDRs resulted</span><br><span style="color: hsl(120, 100%, 40%);">+ from the transition. The most significant change is the addition of</span><br><span style="color: hsl(120, 100%, 40%);">+ CDR entries when a channel who is the Party A in a CDR leaves a bridge.</span><br><span style="color: hsl(120, 100%, 40%);">+ See https://wiki.asterisk.org/wiki/x/pwpRAQ for more information.</span><br><span style="color: hsl(120, 100%, 40%);">+ - CEL: Much like CDRs, CEL was removed from the many locations it existed in</span><br><span style="color: hsl(120, 100%, 40%);">+ across Asterisk and implemented as a consumer of Stasis message bus</span><br><span style="color: hsl(120, 100%, 40%);">+ events. It now closely follows the Bridging API model of channels and</span><br><span style="color: hsl(120, 100%, 40%);">+ bridges, and has a much closer consistency of conveyed events as AMI.</span><br><span style="color: hsl(120, 100%, 40%);">+ For the changes in events, see https://wiki.asterisk.org/wiki/x/4ICLAQ.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Build System:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Removed the CHANNEL_TRACE development mode build option. Certain aspects of</span><br><span style="color: hsl(120, 100%, 40%);">+ the CHANNEL_TRACE build option were incompatible with the new bridging</span><br><span style="color: hsl(120, 100%, 40%);">+ architecture.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - Asterisk now depends on libjansson, libuuid and optionally (but recommended)</span><br><span style="color: hsl(120, 100%, 40%);">+ libxslt and uriparser.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The new SIP stack and channel driver uses a particular version of PJSIP.</span><br><span style="color: hsl(120, 100%, 40%);">+ Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on</span><br><span style="color: hsl(120, 100%, 40%);">+ configuring and installing PJSIP for use with Asterisk.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+AgentLogin and chan_agent:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Along with AgentRequest, this application has been modified to be a</span><br><span style="color: hsl(120, 100%, 40%);">+ replacement for chan_agent. The chan_agent module and the Agent channel</span><br><span style="color: hsl(120, 100%, 40%);">+ driver have been removed from Asterisk, as the concept of a channel driver</span><br><span style="color: hsl(120, 100%, 40%);">+ proxying in front of another channel driver was incompatible with the new</span><br><span style="color: hsl(120, 100%, 40%);">+ architecture (and has had numerous problems through past versions of</span><br><span style="color: hsl(120, 100%, 40%);">+ Asterisk). The act of a channel calling the AgentLogin application places the</span><br><span style="color: hsl(120, 100%, 40%);">+ channel into a pool of agents that can be requested by the AgentRequest</span><br><span style="color: hsl(120, 100%, 40%);">+ application. Note that this application, as well as all other agent related</span><br><span style="color: hsl(120, 100%, 40%);">+ functionality, is now provided by the app_agent_pool module.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - This application no longer performs agent authentication. If authentication</span><br><span style="color: hsl(120, 100%, 40%);">+ is desired, the dialplan needs to perform this function using the</span><br><span style="color: hsl(120, 100%, 40%);">+ Authenticate or VMAuthenticate application or through an AGI script before</span><br><span style="color: hsl(120, 100%, 40%);">+ running AgentLogin.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The agents.conf schema has changed. Rather than specifying agents on a</span><br><span style="color: hsl(120, 100%, 40%);">+ single line in comma delineated fashion, each agent is defined in a separate</span><br><span style="color: hsl(120, 100%, 40%);">+ context. This allows agents to use the power of context templates in their</span><br><span style="color: hsl(120, 100%, 40%);">+ definition.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - A number of parameters from agents.conf have been removed. This includes</span><br><span style="color: hsl(120, 100%, 40%);">+ maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,</span><br><span style="color: hsl(120, 100%, 40%);">+ urlprefix, and savecallsin. These options were obsoleted by the move from</span><br><span style="color: hsl(120, 100%, 40%);">+ a channel driver model to the bridging/application model provided by</span><br><span style="color: hsl(120, 100%, 40%);">+ app_agent_pool.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The AGENTUPDATECDR channel variable has also been removed, for the same</span><br><span style="color: hsl(120, 100%, 40%);">+ reason as the updatecdr option.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The endcall and enddtmf configuration options are removed. Use the</span><br><span style="color: hsl(120, 100%, 40%);">+ dialplan function CHANNEL(dtmf_features) to set DTMF features on the agent</span><br><span style="color: hsl(120, 100%, 40%);">+ channel before calling AgentLogin.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+AgentMonitorOutgoing</span><br><span style="color: hsl(120, 100%, 40%);">+ - This application has been removed. It was a holdover from when</span><br><span style="color: hsl(120, 100%, 40%);">+ AgentCallbackLogin was removed.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Answer</span><br><span style="color: hsl(120, 100%, 40%);">+ - It is no longer possible to bypass updating the CDR when answering a</span><br><span style="color: hsl(120, 100%, 40%);">+ channel. CDRs are based on the channel state and will be updated when</span><br><span style="color: hsl(120, 100%, 40%);">+ the channel is Answered.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ControlPlayback</span><br><span style="color: hsl(120, 100%, 40%);">+ - The channel variable CPLAYBACKSTATUS may now return the value</span><br><span style="color: hsl(120, 100%, 40%);">+ 'REMOTESTOPPED' when playback is stopped by an external entity.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DISA</span><br><span style="color: hsl(120, 100%, 40%);">+ - This application now has a dependency on the app_cdr module. It uses this</span><br><span style="color: hsl(120, 100%, 40%);">+ module to hide the CDR created prior to execution of the DISA application.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DumpChan:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The output of DumpChan no longer includes the DirectBridge or IndirectBridge</span><br><span style="color: hsl(120, 100%, 40%);">+ fields. Instead, if a channel is in a bridge, it includes a BridgeID field</span><br><span style="color: hsl(120, 100%, 40%);">+ containing the unique ID of the bridge that the channel happens to be in.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ForkCDR:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Nearly every parameter in ForkCDR has been updated and changed to reflect</span><br><span style="color: hsl(120, 100%, 40%);">+ the changes in CDRs. Please see the documentation for the ForkCDR</span><br><span style="color: hsl(120, 100%, 40%);">+ application, as well as the CDR specification on the Asterisk wiki.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+NoCDR:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The NoCDR application has been deprecated. Please use the CDR_PROP function</span><br><span style="color: hsl(120, 100%, 40%);">+ to disable CDRs on a channel.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ParkAndAnnounce:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The app_parkandannounce module has been removed. The application</span><br><span style="color: hsl(120, 100%, 40%);">+ ParkAndAnnounce is now provided by the res_parking module. See the</span><br><span style="color: hsl(120, 100%, 40%);">+ Parking changes for more information.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ResetCDR:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'w' and 'a' options have been removed. Dispatching CDRs to registered</span><br><span style="color: hsl(120, 100%, 40%);">+ backends occurs on an as-needed basis in order to preserve linkedid</span><br><span style="color: hsl(120, 100%, 40%);">+ propagation and other needed behavior.</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'e' option is deprecated. Please use the CDR_PROP function to enable</span><br><span style="color: hsl(120, 100%, 40%);">+ CDRs on a channel that they were previously disabled on.</span><br><span style="color: hsl(120, 100%, 40%);">+ - The ResetCDR application is no longer a part of core Asterisk, and instead</span><br><span style="color: hsl(120, 100%, 40%);">+ is now delivered as part of app_cdr.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Queues:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Queue strategy rrmemory now has a predictable order similar to strategy</span><br><span style="color: hsl(120, 100%, 40%);">+ rrordered. Members will be called in the order that they are added to the</span><br><span style="color: hsl(120, 100%, 40%);">+ queue.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - Removed the queues.conf check_state_unknown option. It is no longer</span><br><span style="color: hsl(120, 100%, 40%);">+ necessary.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - It is now possible to play the Queue prompts to the first user waiting in a</span><br><span style="color: hsl(120, 100%, 40%);">+ call queue. Note that this may impact the ability for agents to talk with</span><br><span style="color: hsl(120, 100%, 40%);">+ users, as a prompt may still be playing when an agent connects to the user.</span><br><span style="color: hsl(120, 100%, 40%);">+ This ability is disabled by default but can be enabled on an individual</span><br><span style="color: hsl(120, 100%, 40%);">+ queue using the 'announce-to-first-user' option.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The configuration options eventwhencalled and eventmemberstatus have been</span><br><span style="color: hsl(120, 100%, 40%);">+ removed. As a result, the AMI events QueueMemberStatus, AgentCalled,</span><br><span style="color: hsl(120, 100%, 40%);">+ AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be</span><br><span style="color: hsl(120, 100%, 40%);">+ sent. The "Variable" fields will also no longer exist on the Agent* events.</span><br><span style="color: hsl(120, 100%, 40%);">+ These events can be filtered out from a connected AMI client using the</span><br><span style="color: hsl(120, 100%, 40%);">+ eventfilter setting in manager.conf.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The queue log now differentiates between blind and attended transfers. A</span><br><span style="color: hsl(120, 100%, 40%);">+ blind transfer will result in a BLINDTRANSFER message with the destination</span><br><span style="color: hsl(120, 100%, 40%);">+ context and extension. An attended transfer will result in an</span><br><span style="color: hsl(120, 100%, 40%);">+ ATTENDEDTRANSFER message. This message will indicate the method by which</span><br><span style="color: hsl(120, 100%, 40%);">+ the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"</span><br><span style="color: hsl(120, 100%, 40%);">+ for running an application on a bridge or channel, or "LINK" for linking</span><br><span style="color: hsl(120, 100%, 40%);">+ two bridges together with local channels. The queue log will also now detect</span><br><span style="color: hsl(120, 100%, 40%);">+ externally initiated blind and attended transfers and record the transfer</span><br><span style="color: hsl(120, 100%, 40%);">+ status accordingly.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - When performing queue pause/unpause on an interface without specifying an</span><br><span style="color: hsl(120, 100%, 40%);">+ individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at</span><br><span style="color: hsl(120, 100%, 40%);">+ least one member of any queue exists for that interface.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+SetAMAFlags</span><br><span style="color: hsl(120, 100%, 40%);">+ - This application is deprecated in favor of CHANNEL(amaflags).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+VoiceMail:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Mailboxes defined by app_voicemail MUST be referenced by the rest of the</span><br><span style="color: hsl(120, 100%, 40%);">+ system as mailbox@context. The rest of the system cannot add @default</span><br><span style="color: hsl(120, 100%, 40%);">+ to mailbox identifiers for app_voicemail that do not specify a context</span><br><span style="color: hsl(120, 100%, 40%);">+ any longer. It is a mailbox identifier format that should only be</span><br><span style="color: hsl(120, 100%, 40%);">+ interpreted by app_voicemail.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The voicemail.conf configuration file now has an 'alias' configuration</span><br><span style="color: hsl(120, 100%, 40%);">+ parameter for use with the Directory application. The voicemail realtime</span><br><span style="color: hsl(120, 100%, 40%);">+ database table schema has also been updated with an 'alias' column. Systems</span><br><span style="color: hsl(120, 100%, 40%);">+ using voicemail with realtime should update their schemas accordingly.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Channel Drivers:</span><br><span style="color: hsl(120, 100%, 40%);">+ - When a channel driver is configured to enable jiterbuffers, they are now</span><br><span style="color: hsl(120, 100%, 40%);">+ applied unconditionally when a channel joins a bridge. If a jitterbuffer</span><br><span style="color: hsl(120, 100%, 40%);">+ is already set for that channel when it enters, such as by the JITTERBUFFER</span><br><span style="color: hsl(120, 100%, 40%);">+ function, then the existing jitterbuffer will be used and the one set by</span><br><span style="color: hsl(120, 100%, 40%);">+ the channel driver will not be applied.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chan_bridge</span><br><span style="color: hsl(120, 100%, 40%);">+ - chan_bridge is removed and its functionality is incorporated into ConfBridge</span><br><span style="color: hsl(120, 100%, 40%);">+ itself.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chan_dahdi:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Analog port dialing and deferred DTMF dialing for PRI now distinguishes</span><br><span style="color: hsl(120, 100%, 40%);">+ between 'w' and 'W'. The 'w' pauses dialing for half a second. The 'W'</span><br><span style="color: hsl(120, 100%, 40%);">+ pauses dialing for one second.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The default for inband_on_proceeding has changed to no.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.</span><br><span style="color: hsl(120, 100%, 40%);">+ A range of channels can be specified to be destroyed. Note that this command</span><br><span style="color: hsl(120, 100%, 40%);">+ should only be used if you understand the risks it entails.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The script specified by the chan_dahdi.conf mwimonitornotify option now gets</span><br><span style="color: hsl(120, 100%, 40%);">+ the exact configured mailbox name. For app_voicemail mailboxes this is</span><br><span style="color: hsl(120, 100%, 40%);">+ mailbox@context.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - ignore_failed_channels now defaults to True: the channel will continue to</span><br><span style="color: hsl(120, 100%, 40%);">+ be configured even if configuring it has failed. This is generally a</span><br><span style="color: hsl(120, 100%, 40%);">+ better setup for systems with not more than one DAHDI device or with DAHDI</span><br><span style="color: hsl(120, 100%, 40%);">+ >= 2.8.0 .</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chan_local:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The /b option has been removed.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - chan_local moved into the system core and is no longer a loadable module.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chan_sip:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'callevents' parameter has been removed. Hold AMI events are now raised</span><br><span style="color: hsl(120, 100%, 40%);">+ in the core, and can be filtered out using the 'eventfilter' parameter</span><br><span style="color: hsl(120, 100%, 40%);">+ in manager.conf.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - Dynamic realtime tables for SIP Users can now include a 'path' field. This</span><br><span style="color: hsl(120, 100%, 40%);">+ will store the path information for that peer when it registers. Realtime</span><br><span style="color: hsl(120, 100%, 40%);">+ tables can also use the 'supportpath' field to enable Path header support.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - LDAP realtime configurations for SIP Users now have the AstAccountPathSupport</span><br><span style="color: hsl(120, 100%, 40%);">+ objectIdentifier. This maps to the supportpath option in sip.conf.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Core:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Masquerades as an operation inside Asterisk have been effectively hidden</span><br><span style="color: hsl(120, 100%, 40%);">+ by the migration to the Bridging API. As such, many 'quirks' of Asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+ no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,</span><br><span style="color: hsl(120, 100%, 40%);">+ dropping of frame/audio hooks, and other internal implementation details</span><br><span style="color: hsl(120, 100%, 40%);">+ that users had to deal with. This fundamental change has large implications</span><br><span style="color: hsl(120, 100%, 40%);">+ throughout the changes documented for this version. For more information</span><br><span style="color: hsl(120, 100%, 40%);">+ about the new core architecture of Asterisk, please see the Asterisk wiki.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The following channel variables have changed behavior which is described in</span><br><span style="color: hsl(120, 100%, 40%);">+ the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,</span><br><span style="color: hsl(120, 100%, 40%);">+ ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+AMI (Asterisk Manager Interface):</span><br><span style="color: hsl(120, 100%, 40%);">+ - Version 1.4 - The details of what happens to a channel when a masquerade</span><br><span style="color: hsl(120, 100%, 40%);">+ happens (transfers, parking, etc) have changed.</span><br><span style="color: hsl(120, 100%, 40%);">+ - The Masquerade event now includes the Uniqueid's of the clone and original</span><br><span style="color: hsl(120, 100%, 40%);">+ channels.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Channels no longer swap Uniqueid's as a result of the masquerade.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Instead of a shell game of renames, there's now a single rename, appending</span><br><span style="color: hsl(120, 100%, 40%);">+ <ZOMBIE> to the name of the original channel.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - *Major* changes were made to both the syntax as well as the semantics of the</span><br><span style="color: hsl(120, 100%, 40%);">+ AMI protocol. In particular, AMI events have been substantially modified</span><br><span style="color: hsl(120, 100%, 40%);">+ and improved in this version of Asterisk. The major event changes are listed</span><br><span style="color: hsl(120, 100%, 40%);">+ below.</span><br><span style="color: hsl(120, 100%, 40%);">+ - NewPeerAccount has been removed. NewAccountCode is raised instead.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Reload events have been consolidated and standardized.</span><br><span style="color: hsl(120, 100%, 40%);">+ - ModuleLoadReport has been removed.</span><br><span style="color: hsl(120, 100%, 40%);">+ - FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes</span><br><span style="color: hsl(120, 100%, 40%);">+ app_fax and res_fax events.</span><br><span style="color: hsl(120, 100%, 40%);">+ - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.</span><br><span style="color: hsl(120, 100%, 40%);">+ - JabberEvent has been removed.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Hold is now in the core and will now raise Hold and Unhold events.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Join is now QueueCallerJoin.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Leave is now QueueCallerLeave.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.</span><br><span style="color: hsl(120, 100%, 40%);">+ - ChannelUpdate has been removed.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Local channel optimization is now conveyed via LocalOptimizationBegin and</span><br><span style="color: hsl(120, 100%, 40%);">+ LocalOptimizationEnd.</span><br><span style="color: hsl(120, 100%, 40%);">+ - BridgeAction and BridgeExec have been removed.</span><br><span style="color: hsl(120, 100%, 40%);">+ - BlindTransfer and AttendedTransfer events were added.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Dial is now DialBegin and DialEnd.</span><br><span style="color: hsl(120, 100%, 40%);">+ - DTMF is now DTMFBegin and DTMFEnd.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and</span><br><span style="color: hsl(120, 100%, 40%);">+ BridgeDestroy</span><br><span style="color: hsl(120, 100%, 40%);">+ - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop</span><br><span style="color: hsl(120, 100%, 40%);">+ - AGIExec is now AGIExecStart and AGIExecEnd</span><br><span style="color: hsl(120, 100%, 40%);">+ - AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'MCID' AMI event now publishes a channel snapshot when available and</span><br><span style="color: hsl(120, 100%, 40%);">+ its non-channel-snapshot parameters now use either the "MCallerID" or</span><br><span style="color: hsl(120, 100%, 40%);">+ 'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead</span><br><span style="color: hsl(120, 100%, 40%);">+ of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named</span><br><span style="color: hsl(120, 100%, 40%);">+ parameters in the channel snapshot.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been</span><br><span style="color: hsl(120, 100%, 40%);">+ renamed "DAHDIChannel" since it does not convey an Asterisk channel name.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - All AMI events now contain a 'SystemName' field, if available.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - Local channel information in events is now prefixed with 'LocalOne' and</span><br><span style="color: hsl(120, 100%, 40%);">+ 'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of</span><br><span style="color: hsl(120, 100%, 40%);">+ the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',</span><br><span style="color: hsl(120, 100%, 40%);">+ and 'LocalOptimizationEnd' events.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'RTCPSent'/'RTCPReceived' events have been significantly modified from</span><br><span style="color: hsl(120, 100%, 40%);">+ previous versions. They now report all SR/RR packets sent/received, and</span><br><span style="color: hsl(120, 100%, 40%);">+ have been restructured to better reflect the data sent in a SR/RR. In</span><br><span style="color: hsl(120, 100%, 40%);">+ particular, the event structure now supports multiple report blocks.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The deprecated use of | (pipe) as a separator in the channelvars setting in</span><br><span style="color: hsl(120, 100%, 40%);">+ manager.conf has been removed.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The SIP SIPqualifypeer action now sends a response indicating it will qualify</span><br><span style="color: hsl(120, 100%, 40%);">+ a peer once a peer has been found to qualify. Once the qualify has been</span><br><span style="color: hsl(120, 100%, 40%);">+ completed it will now issue a SIPqualifypeerdone event.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed</span><br><span style="color: hsl(120, 100%, 40%);">+ in a future release. Please use the common 'Exten' field instead.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and</span><br><span style="color: hsl(120, 100%, 40%);">+ 'UnParkedCall' have changed significantly in the new res_parking module.</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'Channel' and 'From' headers are gone. For the channel that was parked</span><br><span style="color: hsl(120, 100%, 40%);">+ or is coming out of parking, a 'Parkee' channel snapshot is issued and it</span><br><span style="color: hsl(120, 100%, 40%);">+ has a number of fields associated with it. The old 'Channel' header relayed</span><br><span style="color: hsl(120, 100%, 40%);">+ the same data as the new 'ParkeeChannel' header.</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'From' field was ambiguous and changed meaning depending on the event.</span><br><span style="color: hsl(120, 100%, 40%);">+ for most of these, it was the name of the channel that parked the call</span><br><span style="color: hsl(120, 100%, 40%);">+ (the 'Parker'). There is no longer a header that provides this channel name,</span><br><span style="color: hsl(120, 100%, 40%);">+ however the 'ParkerDialString' will contain a dialstring to redial the</span><br><span style="color: hsl(120, 100%, 40%);">+ device that parked the call.</span><br><span style="color: hsl(120, 100%, 40%);">+ - On UnParkedCall events, the 'From' header would instead represent the</span><br><span style="color: hsl(120, 100%, 40%);">+ channel responsible for retrieving the parkee. It receives a channel</span><br><span style="color: hsl(120, 100%, 40%);">+ snapshot labeled 'Retriever'. The 'from' field is is replaced with</span><br><span style="color: hsl(120, 100%, 40%);">+ 'RetrieverChannel'.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar</span><br><span style="color: hsl(120, 100%, 40%);">+ fashion has changed the field names 'StartExten' and 'StopExten' to</span><br><span style="color: hsl(120, 100%, 40%);">+ 'StartSpace' and 'StopSpace' respectively.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The AMI 'Status' response event to the AMI Status action replaces the</span><br><span style="color: hsl(120, 100%, 40%);">+ 'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to</span><br><span style="color: hsl(120, 100%, 40%);">+ indicate what bridge the channel is currently in.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CDR (Call Detail Records)</span><br><span style="color: hsl(120, 100%, 40%);">+ - Significant changes have been made to the behavior of CDRs. The CDR engine</span><br><span style="color: hsl(120, 100%, 40%);">+ was effectively rewritten and built on the Stasis message bus. For a full</span><br><span style="color: hsl(120, 100%, 40%);">+ definition of CDR behavior in Asterisk 12, please read the specification</span><br><span style="color: hsl(120, 100%, 40%);">+ on the Asterisk wiki (wiki.asterisk.org).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - CDRs will now be created between all participants in a bridge. For each</span><br><span style="color: hsl(120, 100%, 40%);">+ pair of channels in a bridge, a CDR is created to represent the path of</span><br><span style="color: hsl(120, 100%, 40%);">+ communication between those two endpoints. This lets an end user choose who</span><br><span style="color: hsl(120, 100%, 40%);">+ to bill for what during bridge operations with multiple parties.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The duration, billsec, start, answer, and end times now reflect the times</span><br><span style="color: hsl(120, 100%, 40%);">+ associated with the current CDR for the channel, as opposed to a cumulative</span><br><span style="color: hsl(120, 100%, 40%);">+ measurement of all CDRs for that channel.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CEL:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The Uniqueid field for a channel is now a stable identifier, and will not</span><br><span style="color: hsl(120, 100%, 40%);">+ change due to transfers, parking, etc.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - CEL has undergone significant rework in Asterisk 12, and is now built on the</span><br><span style="color: hsl(120, 100%, 40%);">+ Stasis message bus. Please see the specification for CEL on the Asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+ wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed</span><br><span style="color: hsl(120, 100%, 40%);">+ information. A summary of the affected events is below:</span><br><span style="color: hsl(120, 100%, 40%);">+ - BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,</span><br><span style="color: hsl(120, 100%, 40%);">+ CONF_EXIT, CONF_START, and CONF_END events have all been removed. These</span><br><span style="color: hsl(120, 100%, 40%);">+ events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT.</span><br><span style="color: hsl(120, 100%, 40%);">+ - BLINDTRANSFER/ATTENDEDTRANSFER events now report the peer as NULL and</span><br><span style="color: hsl(120, 100%, 40%);">+ additional information in the extra string field.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Dialplan Functions:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - Certain dialplan functions have been marked as 'dangerous', and may only be</span><br><span style="color: hsl(120, 100%, 40%);">+ executed from the dialplan. Execution from extenal sources (AMI's GetVar and</span><br><span style="color: hsl(120, 100%, 40%);">+ SetVar actions; etc.) may be inhibited by setting live_dangerously in the</span><br><span style="color: hsl(120, 100%, 40%);">+ [options] section of asterisk.conf to no. SHELL(), channel locking, and</span><br><span style="color: hsl(120, 100%, 40%);">+ direct file read/write functions are marked as dangerous. DB_DELETE() and</span><br><span style="color: hsl(120, 100%, 40%);">+ REALTIME_DESTROY() are marked as dangerous for reads, but can now safely</span><br><span style="color: hsl(120, 100%, 40%);">+ accept writes (which ignore the provided value).</span><br><span style="color: hsl(120, 100%, 40%);">+ - The default value for live_dangerously was changed from yes (in Asterisk 11</span><br><span style="color: hsl(120, 100%, 40%);">+ and earlier) to no (in Asterisk 12 and greater).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Dialplan:</span><br><span style="color: hsl(120, 100%, 40%);">+ - All channel and global variable names are evaluated in a case-sensitive</span><br><span style="color: hsl(120, 100%, 40%);">+ manner. In previous versions of Asterisk, variables created and evaluated in</span><br><span style="color: hsl(120, 100%, 40%);">+ the dialplan were evaluated case-insensitively, but built-in variables and</span><br><span style="color: hsl(120, 100%, 40%);">+ variable evaluation done internally within Asterisk was done</span><br><span style="color: hsl(120, 100%, 40%);">+ case-sensitively.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - Asterisk has always had code to ignore dash '-' characters that are not</span><br><span style="color: hsl(120, 100%, 40%);">+ part of a character set in the dialplan extensions. The code now</span><br><span style="color: hsl(120, 100%, 40%);">+ consistently ignores these characters when matching dialplan extensions.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - BRIDGE_FEATURES channel variable is now casesensitive for feature letter</span><br><span style="color: hsl(120, 100%, 40%);">+ codes. Uppercase variants apply them to the calling party while lowercase</span><br><span style="color: hsl(120, 100%, 40%);">+ variants apply them to the called party.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Features:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The features.conf [applicationmap] <FeatureName> ActivatedBy option is</span><br><span style="color: hsl(120, 100%, 40%);">+ no longer honored. The feature is always activated by the channel that has</span><br><span style="color: hsl(120, 100%, 40%);">+ DYNAMIC_FEATURES defined on it when it enters the bridge. Use predial to set</span><br><span style="color: hsl(120, 100%, 40%);">+ different values of DYNAMIC_FEATURES on the channels</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - Executing a dynamic feature on the bridge peer in a multi-party bridge will</span><br><span style="color: hsl(120, 100%, 40%);">+ execute it on all peers of the activating channel.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - There is no longer an explicit 'features reload' CLI command. Features can</span><br><span style="color: hsl(120, 100%, 40%);">+ still be reloaded using 'module reload features'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in</span><br><span style="color: hsl(120, 100%, 40%);">+ features.c for atxferdropcall=no to work properly. This option now just</span><br><span style="color: hsl(120, 100%, 40%);">+ works.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Parking:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Parking has been extracted from the Asterisk core as a loadable module,</span><br><span style="color: hsl(120, 100%, 40%);">+ res_parking.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - Configuration is found in res_parking.conf. It is no longer supported in</span><br><span style="color: hsl(120, 100%, 40%);">+ features.conf</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications</span><br><span style="color: hsl(120, 100%, 40%);">+ have been modified significantly. See the application documents for</span><br><span style="color: hsl(120, 100%, 40%);">+ specific details.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - Numerous changes to Parking related applications, AMI and CLI commands and</span><br><span style="color: hsl(120, 100%, 40%);">+ internal inter-workings have been made. Please read the CHANGES file for</span><br><span style="color: hsl(120, 100%, 40%);">+ the detailed list.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Security Events Framework:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Security Event timestamps now use ISO 8601 formatted date/time instead of</span><br><span style="color: hsl(120, 100%, 40%);">+ the "seconds-microseconds" format that it was using previously.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+AGENT:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The password option has been disabled, as the AgentLogin application no</span><br><span style="color: hsl(120, 100%, 40%);">+ longer provides authentication.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+AUDIOHOOK_INHERIT:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Due to changes in the Asterisk core, this function is no longer needed to</span><br><span style="color: hsl(120, 100%, 40%);">+ preserve a MixMonitor on a channel during transfer operations and dialplan</span><br><span style="color: hsl(120, 100%, 40%);">+ execution. It is effectively obsolete.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CDR: (function)</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'amaflags' and 'accountcode' attributes for the CDR function are</span><br><span style="color: hsl(120, 100%, 40%);">+ deprecated. Use the CHANNEL function instead to access these attributes.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'l' option has been removed. When reading a CDR attribute, the most</span><br><span style="color: hsl(120, 100%, 40%);">+ recent record is always used. When writing a CDR attribute, all non-finalized</span><br><span style="color: hsl(120, 100%, 40%);">+ CDRs are updated.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'r' option has been removed, for the same reason as the 'l' option.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 's' option has been removed, as LOCKED semantics no longer exist in the</span><br><span style="color: hsl(120, 100%, 40%);">+ CDR engine.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+VMCOUNT:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Mailboxes defined by app_voicemail MUST be referenced by the rest of the</span><br><span style="color: hsl(120, 100%, 40%);">+ system as mailbox@context. The rest of the system cannot add @default</span><br><span style="color: hsl(120, 100%, 40%);">+ to mailbox identifiers for app_voicemail that do not specify a context</span><br><span style="color: hsl(120, 100%, 40%);">+ any longer. It is a mailbox identifier format that should only be</span><br><span style="color: hsl(120, 100%, 40%);">+ interpreted by app_voicemail.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+res_rtp_asterisk:</span><br><span style="color: hsl(120, 100%, 40%);">+ - ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable</span><br><span style="color: hsl(120, 100%, 40%);">+ them, an Asterisk-specific version of PJSIP needs to be installed.</span><br><span style="color: hsl(120, 100%, 40%);">+ Tarballs are available from https://github.com/asterisk/pjproject/tags/.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 11.6 to 11.7:</span><br><span style="color: hsl(120, 100%, 40%);">+ConfBridge</span><br><span style="color: hsl(120, 100%, 40%);">+ - ConfBridge now has the ability to set the language of announcements to the</span><br><span style="color: hsl(120, 100%, 40%);">+ conference. The language can be set on a bridge profile in confbridge.conf</span><br><span style="color: hsl(120, 100%, 40%);">+ or by the dialplan function CONFBRIDGE(bridge,language)=en.</span><br><span style="color: hsl(120, 100%, 40%);">+chan_sip - Clarify The "sip show peers" Forcerport Column And Add Comedia</span><br><span style="color: hsl(120, 100%, 40%);">+ - Under the "Forcerport" column, the "N" used to mean NAT (i.e. Yes). With</span><br><span style="color: hsl(120, 100%, 40%);">+ the additon of auto_* NAT settings, the meaning changed and there was a</span><br><span style="color: hsl(120, 100%, 40%);">+ certain combination of letters added to indicate the current setting. The</span><br><span style="color: hsl(120, 100%, 40%);">+ combination of using "Y", "N", "A" or "a", can be confusing. Therefore, we</span><br><span style="color: hsl(120, 100%, 40%);">+ now display clearly what the current Forcerport setting is: "Yes", "No",</span><br><span style="color: hsl(120, 100%, 40%);">+ "Auto (Yes)", "Auto (No)".</span><br><span style="color: hsl(120, 100%, 40%);">+ - Since we are clarifying the Forcerport column, we have added a column to</span><br><span style="color: hsl(120, 100%, 40%);">+ display the Comedia setting since this is useful information as well. We</span><br><span style="color: hsl(120, 100%, 40%);">+ no longer have a simple "NAT" setting like other versions before 11.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 11.5 to 11.6:</span><br><span style="color: hsl(120, 100%, 40%);">+* res_agi will now properly indicate if there was an error in streaming an</span><br><span style="color: hsl(120, 100%, 40%);">+ audio file. The result code will be -1 and the result returned from the</span><br><span style="color: hsl(120, 100%, 40%);">+ the function will be RESULT_FAILURE instead of the prior behavior of always</span><br><span style="color: hsl(120, 100%, 40%);">+ returning RESULT_SUCCESS even if there was an error.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 11.4 to 11.5:</span><br><span style="color: hsl(120, 100%, 40%);">+* The default settings for chan_sip are now overriden properly by the general</span><br><span style="color: hsl(120, 100%, 40%);">+ settings in sip.conf. Please look over your settings upon upgrading.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 11.3 to 11.4:</span><br><span style="color: hsl(120, 100%, 40%);">+* Added the 'n' option to MeetMe to prevent application of the DENOISE function</span><br><span style="color: hsl(120, 100%, 40%);">+ to a channel joining a conference. Some channel drivers that vary the number</span><br><span style="color: hsl(120, 100%, 40%);">+ of audio samples in a voice frame will experience significant quality problems</span><br><span style="color: hsl(120, 100%, 40%);">+ if a denoiser is attached to the channel; this option gives them the ability</span><br><span style="color: hsl(120, 100%, 40%);">+ to remove the denoiser without having to unload func_speex.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The Registry AMI event for SIP registrations will now always include the</span><br><span style="color: hsl(120, 100%, 40%);">+ Username field. A previous bug fix missed an instance where it was not</span><br><span style="color: hsl(120, 100%, 40%);">+ included; that has been corrected in this release.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 11.2.0 to 11.2.1:</span><br><span style="color: hsl(120, 100%, 40%);">+* Asterisk would previously not output certain error messages when a remote</span><br><span style="color: hsl(120, 100%, 40%);">+ console attempted to connect to Asterisk and no instance of Asterisk was</span><br><span style="color: hsl(120, 100%, 40%);">+ running. This error message is displayed on stderr; as a result, some</span><br><span style="color: hsl(120, 100%, 40%);">+ initialization scripts that used remote consoles to test for the presence</span><br><span style="color: hsl(120, 100%, 40%);">+ of a running Asterisk instance started to display erroneous error messages.</span><br><span style="color: hsl(120, 100%, 40%);">+ The init.d scripts and the safe_asterisk have been updated in the contrib</span><br><span style="color: hsl(120, 100%, 40%);">+ folder to account for this.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 11.2 to 11.3:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Now by default, when Asterisk is installed in a path other than /usr, the</span><br><span style="color: hsl(120, 100%, 40%);">+ Asterisk binary will search for shared libraries in ${libdir} in addition to</span><br><span style="color: hsl(120, 100%, 40%);">+ searching system libraries. This allows Asterisk to find its shared</span><br><span style="color: hsl(120, 100%, 40%);">+ libraries without having to specify LD_LIBRARY_PATH. This can be disabled by</span><br><span style="color: hsl(120, 100%, 40%);">+ passing --disable-rpath to configure.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 10 to 11:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Voicemail:</span><br><span style="color: hsl(120, 100%, 40%);">+ - All voicemails now have a "msg_id" which uniquely identifies a message. For</span><br><span style="color: hsl(120, 100%, 40%);">+ users of filesystem and IMAP storage of voicemail, this should be transparent.</span><br><span style="color: hsl(120, 100%, 40%);">+ For users of ODBC, you will need to add a "msg_id" column to your voice mail</span><br><span style="color: hsl(120, 100%, 40%);">+ messages table. This should be a string capable of holding at least 32 characters.</span><br><span style="color: hsl(120, 100%, 40%);">+ All messages created in old Asterisk installations will have a msg_id added to</span><br><span style="color: hsl(120, 100%, 40%);">+ them when required. This operation should be transparent as well.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Parking:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The comebacktoorigin setting must now be set per parking lot. The setting in</span><br><span style="color: hsl(120, 100%, 40%);">+ the general section will not be applied automatically to each parking lot.</span><br><span style="color: hsl(120, 100%, 40%);">+ - The BLINDTRANSFER channel variable is deleted from a channel when it is</span><br><span style="color: hsl(120, 100%, 40%);">+ bridged to prevent subtle bugs in the parking feature. The channel</span><br><span style="color: hsl(120, 100%, 40%);">+ variable is used by Asterisk internally for the Park application to work</span><br><span style="color: hsl(120, 100%, 40%);">+ properly. If you were using it for your own purposes, copy it to your</span><br><span style="color: hsl(120, 100%, 40%);">+ own channel variable before the channel is bridged.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+res_ais:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Users of res_ais in versions of Asterisk prior to Asterisk 11 must change</span><br><span style="color: hsl(120, 100%, 40%);">+ to use the res_corosync module, instead. OpenAIS is deprecated, but</span><br><span style="color: hsl(120, 100%, 40%);">+ Corosync is still actively developed and maintained. Corosync came out of</span><br><span style="color: hsl(120, 100%, 40%);">+ the OpenAIS project.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Dialplan Functions:</span><br><span style="color: hsl(120, 100%, 40%);">+ - MAILBOX_EXISTS has been deprecated. Use VM_INFO with the 'exists' parameter</span><br><span style="color: hsl(120, 100%, 40%);">+ instead.</span><br><span style="color: hsl(120, 100%, 40%);">+ - Macro has been deprecated in favor of GoSub. For redirecting and connected</span><br><span style="color: hsl(120, 100%, 40%);">+ line purposes use the following variables instead of their macro equivalents:</span><br><span style="color: hsl(120, 100%, 40%);">+ REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS,</span><br><span style="color: hsl(120, 100%, 40%);">+ CONNECTED_LINE_SEND_SUB, CONNECTED_LINE_SEND_SUB_ARGS.</span><br><span style="color: hsl(120, 100%, 40%);">+ - The REDIRECTING function now supports the redirecting original party id</span><br><span style="color: hsl(120, 100%, 40%);">+ and reason.</span><br><span style="color: hsl(120, 100%, 40%);">+ - The HANGUPCAUSE and HANGUPCAUSE_KEYS functions have been introduced to</span><br><span style="color: hsl(120, 100%, 40%);">+ provide a replacement for the SIP_CAUSE hash. The HangupCauseClear</span><br><span style="color: hsl(120, 100%, 40%);">+ application has also been introduced to remove this data from the channel</span><br><span style="color: hsl(120, 100%, 40%);">+ when necessary.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+func_enum:</span><br><span style="color: hsl(120, 100%, 40%);">+ - ENUM query functions now return a count of -1 on lookup error to</span><br><span style="color: hsl(120, 100%, 40%);">+ differentiate between a failed query and a successful query with 0 results</span><br><span style="color: hsl(120, 100%, 40%);">+ matching the specified type.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CDR:</span><br><span style="color: hsl(120, 100%, 40%);">+ - cdr_adaptive_odbc now supports specifying a schema so that Asterisk can</span><br><span style="color: hsl(120, 100%, 40%);">+ connect to databases that use schemas.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Configuration Files:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Files listed below have been updated to be more consistent with how Asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+ parses configuration files. This makes configuration files more consistent</span><br><span style="color: hsl(120, 100%, 40%);">+ with what is expected across modules.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - cdr.conf: [general] and [csv] sections</span><br><span style="color: hsl(120, 100%, 40%);">+ - dnsmgr.conf</span><br><span style="color: hsl(120, 100%, 40%);">+ - dsp.conf</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'verbose' setting in logger.conf now takes an optional argument,</span><br><span style="color: hsl(120, 100%, 40%);">+ specifying the verbosity level for each logging destination. The default,</span><br><span style="color: hsl(120, 100%, 40%);">+ if not otherwise specified, is a verbosity of 3.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+AMI:</span><br><span style="color: hsl(120, 100%, 40%);">+ - DBDelTree now correctly returns an error when 0 rows are deleted just as</span><br><span style="color: hsl(120, 100%, 40%);">+ the DBDel action does.</span><br><span style="color: hsl(120, 100%, 40%);">+ - The IAX2 PeerStatus event now sends a 'Port' header. In Asterisk 10, this was</span><br><span style="color: hsl(120, 100%, 40%);">+ erroneously being sent as a 'Post' header.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CCSS:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Macro is deprecated. Use cc_callback_sub instead of cc_callback_macro</span><br><span style="color: hsl(120, 100%, 40%);">+ in channel configurations.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+app_meetme:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The 'c' option (announce user count) will now work even if the 'q' (quiet)</span><br><span style="color: hsl(120, 100%, 40%);">+ option is enabled.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+app_followme:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Answered outgoing calls no longer get cut off when the next step is started.</span><br><span style="color: hsl(120, 100%, 40%);">+ You now have until the last step times out to decide if you want to accept</span><br><span style="color: hsl(120, 100%, 40%);">+ the call or not before being disconnected.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chan_gtalk:</span><br><span style="color: hsl(120, 100%, 40%);">+ - chan_gtalk has been deprecated in favor of the chan_motif channel driver. It is recommended</span><br><span style="color: hsl(120, 100%, 40%);">+ that users switch to using it as it is a core supported module.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chan_jingle:</span><br><span style="color: hsl(120, 100%, 40%);">+ - chan_jingle has been deprecated in favor of the chan_motif channel driver. It is recommended</span><br><span style="color: hsl(120, 100%, 40%);">+ that users switch to using it as it is a core supported module.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+SIP</span><br><span style="color: hsl(120, 100%, 40%);">+===</span><br><span style="color: hsl(120, 100%, 40%);">+ - A new option "tonezone" for setting default tonezone for the channel driver</span><br><span style="color: hsl(120, 100%, 40%);">+ or individual devices</span><br><span style="color: hsl(120, 100%, 40%);">+ - A new manager event, "SessionTimeout" has been added and is triggered when</span><br><span style="color: hsl(120, 100%, 40%);">+ a call is terminated due to RTP stream inactivity or SIP session timer</span><br><span style="color: hsl(120, 100%, 40%);">+ expiration.</span><br><span style="color: hsl(120, 100%, 40%);">+ - SIP_CAUSE is now deprecated. It has been modified to use the same</span><br><span style="color: hsl(120, 100%, 40%);">+ mechanism as the HANGUPCAUSE function. Behavior should not change, but</span><br><span style="color: hsl(120, 100%, 40%);">+ performance should be vastly improved. The HANGUPCAUSE function should now</span><br><span style="color: hsl(120, 100%, 40%);">+ be used instead of SIP_CAUSE. Because of this, the storesipcause option in</span><br><span style="color: hsl(120, 100%, 40%);">+ sip.conf is also deprecated.</span><br><span style="color: hsl(120, 100%, 40%);">+ - The sip paramater for Originating Line Information (oli, isup-oli, and</span><br><span style="color: hsl(120, 100%, 40%);">+ ss7-oli) is now parsed out of the From header and copied into the channel's</span><br><span style="color: hsl(120, 100%, 40%);">+ ANI2 information field. This is readable from the CALLERID(ani2) dialplan</span><br><span style="color: hsl(120, 100%, 40%);">+ function.</span><br><span style="color: hsl(120, 100%, 40%);">+ - ICE support has been added and is enabled by default. Some endpoints may have</span><br><span style="color: hsl(120, 100%, 40%);">+ problems with the ICE candidates within the SDP. If this is the case ICE support</span><br><span style="color: hsl(120, 100%, 40%);">+ can be disabled globally or on a per-endpoint basis using the icesupport</span><br><span style="color: hsl(120, 100%, 40%);">+ configuration option. Symptoms of this include one way media or no media flow.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chan_unistim</span><br><span style="color: hsl(120, 100%, 40%);">+ - Due to massive update in chan_unistim phone keys functions and on-screen</span><br><span style="color: hsl(120, 100%, 40%);">+ information changed.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+users.conf:</span><br><span style="color: hsl(120, 100%, 40%);">+ - A defined user with hasvoicemail=yes now finally uses a Gosub to stdexten</span><br><span style="color: hsl(120, 100%, 40%);">+ as documented in extensions.conf.sample since v1.6.0 instead of a Macro as</span><br><span style="color: hsl(120, 100%, 40%);">+ documented in v1.4. Set the asterisk.conf stdexten=macro parameter to</span><br><span style="color: hsl(120, 100%, 40%);">+ invoke the stdexten the old way.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+res_jabber</span><br><span style="color: hsl(120, 100%, 40%);">+ - This module has been deprecated in favor of the res_xmpp module. The res_xmpp</span><br><span style="color: hsl(120, 100%, 40%);">+ module is backwards compatible with the res_jabber configuration file, dialplan</span><br><span style="color: hsl(120, 100%, 40%);">+ functions, and AMI actions. The old CLI commands can also be made available using</span><br><span style="color: hsl(120, 100%, 40%);">+ the res_clialiases template for Asterisk 11.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.8 to 10:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+cel_pgsql:</span><br><span style="color: hsl(120, 100%, 40%);">+ - This module now expects an 'extra' column in the database for data added</span><br><span style="color: hsl(120, 100%, 40%);">+ using the CELGenUserEvent() application.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ConfBridge</span><br><span style="color: hsl(120, 100%, 40%);">+ - ConfBridge's dialplan arguments have changed and are not</span><br><span style="color: hsl(120, 100%, 40%);">+ backwards compatible.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+File Interpreters</span><br><span style="color: hsl(120, 100%, 40%);">+ - The format interpreter formats/format_sln16.c for the file extension</span><br><span style="color: hsl(120, 100%, 40%);">+ '.sln16' has been removed. The '.sln16' file interpreter now exists</span><br><span style="color: hsl(120, 100%, 40%);">+ in the formats/format_sln.c module along with new support for sln12,</span><br><span style="color: hsl(120, 100%, 40%);">+ sln24, sln32, sln44, sln48, sln96, and sln192 file extensions.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+HTTP:</span><br><span style="color: hsl(120, 100%, 40%);">+ - A bindaddr must be specified in order for the HTTP server</span><br><span style="color: hsl(120, 100%, 40%);">+ to run. Previous versions would default to 0.0.0.0 if no</span><br><span style="color: hsl(120, 100%, 40%);">+ bindaddr was specified.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Gtalk:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The default value for 'context' and 'parkinglots' in gtalk.conf has</span><br><span style="color: hsl(120, 100%, 40%);">+ been changed to 'default', previously they were empty.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chan_dahdi:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The mohinterpret=passthrough setting is deprecated in favor of</span><br><span style="color: hsl(120, 100%, 40%);">+ moh_signaling=notify.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+pbx_lua:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Execution no longer continues after applications that do dialplan jumps</span><br><span style="color: hsl(120, 100%, 40%);">+ (such as app.goto). Now when an application such as app.goto() is called,</span><br><span style="color: hsl(120, 100%, 40%);">+ control is returned back to the pbx engine and the current extension</span><br><span style="color: hsl(120, 100%, 40%);">+ function stops executing.</span><br><span style="color: hsl(120, 100%, 40%);">+ - the autoservice now defaults to being on by default</span><br><span style="color: hsl(120, 100%, 40%);">+ - autoservice_start() and autoservice_start() no longer return a value.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Queue:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members</span><br><span style="color: hsl(120, 100%, 40%);">+ - QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Asterisk Database:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The internal Asterisk database has been switched from Berkeley DB 1.86 to</span><br><span style="color: hsl(120, 100%, 40%);">+ SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3</span><br><span style="color: hsl(120, 100%, 40%);">+ utility in the UTILS section of menuselect. If an existing astdb is found and no</span><br><span style="color: hsl(120, 100%, 40%);">+ astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will</span><br><span style="color: hsl(120, 100%, 40%);">+ convert an existing astdb to the SQLite3 version automatically at runtime. If</span><br><span style="color: hsl(120, 100%, 40%);">+ moving back from Asterisk 10 to Asterisk 1.8, the astdb2bdb utility can be used</span><br><span style="color: hsl(120, 100%, 40%);">+ to create a Berkeley DB copy of the SQLite3 astdb that Asterisk 10 uses.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Manager:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The AMI protocol version was incremented to 1.2 as a result of changing two</span><br><span style="color: hsl(120, 100%, 40%);">+ instances of the Unlink event to Bridge events. This change was documented</span><br><span style="color: hsl(120, 100%, 40%);">+ as part of the AMI 1.1 update, but two Unlink events were inadvertently left</span><br><span style="color: hsl(120, 100%, 40%);">+ unchanged.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Module Support Level</span><br><span style="color: hsl(120, 100%, 40%);">+ - All modules in the addons, apps, bridge, cdr, cel, channels, codecs,</span><br><span style="color: hsl(120, 100%, 40%);">+ formats, funcs, pbx, and res have been updated to include MODULEINFO data</span><br><span style="color: hsl(120, 100%, 40%);">+ that includes <support_level> tags with a value of core, extended, or deprecated.</span><br><span style="color: hsl(120, 100%, 40%);">+ More information is available on the Asterisk wiki at</span><br><span style="color: hsl(120, 100%, 40%);">+ https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ Deprecated modules are now marked to not build by default and must be explicitly</span><br><span style="color: hsl(120, 100%, 40%);">+ enabled in menuselect.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chan_sip:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Setting of HASH(SIP_CAUSE,<slave-channel-name>) on channels is now disabled</span><br><span style="color: hsl(120, 100%, 40%);">+ by default. It can be enabled using the 'storesipcause' option. This feature</span><br><span style="color: hsl(120, 100%, 40%);">+ has a significant performance penalty.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+UDPTL:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The default UDPTL port range in udptl.conf.sample differed from the defaults</span><br><span style="color: hsl(120, 100%, 40%);">+ in the source. If you didn't have a config file, you got 4500 to 4599. Now the</span><br><span style="color: hsl(120, 100%, 40%);">+ default is 4000 to 4999.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 10.4 to 10.5:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The complex processor detection and optimization has been removed from</span><br><span style="color: hsl(120, 100%, 40%);">+ the makefile in favor of using native optimization suppport when available.</span><br><span style="color: hsl(120, 100%, 40%);">+ BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 10.2 to 10.3:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* If no transport is specified in sip.conf, transport will default to UDP.</span><br><span style="color: hsl(120, 100%, 40%);">+ Also, if multiple transport= lines are used, only the last will be used.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.8 to 10:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+cel_pgsql:</span><br><span style="color: hsl(120, 100%, 40%);">+ - This module now expects an 'extra' column in the database for data added</span><br><span style="color: hsl(120, 100%, 40%);">+ using the CELGenUserEvent() application.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ConfBridge</span><br><span style="color: hsl(120, 100%, 40%);">+ - ConfBridge's dialplan arguments have changed and are not</span><br><span style="color: hsl(120, 100%, 40%);">+ backwards compatible.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+File Interpreters</span><br><span style="color: hsl(120, 100%, 40%);">+ - The format interpreter formats/format_sln16.c for the file extension</span><br><span style="color: hsl(120, 100%, 40%);">+ '.sln16' has been removed. The '.sln16' file interpreter now exists</span><br><span style="color: hsl(120, 100%, 40%);">+ in the formats/format_sln.c module along with new support for sln12,</span><br><span style="color: hsl(120, 100%, 40%);">+ sln24, sln32, sln44, sln48, sln96, and sln192 file extensions.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+HTTP:</span><br><span style="color: hsl(120, 100%, 40%);">+ - A bindaddr must be specified in order for the HTTP server</span><br><span style="color: hsl(120, 100%, 40%);">+ to run. Previous versions would default to 0.0.0.0 if no</span><br><span style="color: hsl(120, 100%, 40%);">+ bindaddr was specified.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Gtalk:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The default value for 'context' and 'parkinglots' in gtalk.conf has</span><br><span style="color: hsl(120, 100%, 40%);">+ been changed to 'default', previously they were empty.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chan_dahdi:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The mohinterpret=passthrough setting is deprecated in favor of</span><br><span style="color: hsl(120, 100%, 40%);">+ moh_signaling=notify.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+pbx_lua:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Execution no longer continues after applications that do dialplan jumps</span><br><span style="color: hsl(120, 100%, 40%);">+ (such as app.goto). Now when an application such as app.goto() is called,</span><br><span style="color: hsl(120, 100%, 40%);">+ control is returned back to the pbx engine and the current extension</span><br><span style="color: hsl(120, 100%, 40%);">+ function stops executing.</span><br><span style="color: hsl(120, 100%, 40%);">+ - the autoservice now defaults to being on by default</span><br><span style="color: hsl(120, 100%, 40%);">+ - autoservice_start() and autoservice_start() no longer return a value.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Queue:</span><br><span style="color: hsl(120, 100%, 40%);">+ - Mark QUEUE_MEMBER_PENALTY Deprecated it never worked for realtime members</span><br><span style="color: hsl(120, 100%, 40%);">+ - QUEUE_MEMBER is now R/W supporting setting paused, ignorebusy and penalty.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Asterisk Database:</span><br><span style="color: hsl(120, 100%, 40%);">+ - The internal Asterisk database has been switched from Berkeley DB 1.86 to</span><br><span style="color: hsl(120, 100%, 40%);">+ SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3</span><br><span style="color: hsl(120, 100%, 40%);">+ utility in the UTILS section of menuselect. If an existing astdb is found and no</span><br><span style="color: hsl(120, 100%, 40%);">+ astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will</span><br><span style="color: hsl(120, 100%, 40%);">+ convert an existing astdb to the SQLite3 version automatically at runtime.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Module Support Level</span><br><span style="color: hsl(120, 100%, 40%);">+ - All modules in the addons, apps, bridge, cdr, cel, channels, codecs,</span><br><span style="color: hsl(120, 100%, 40%);">+ formats, funcs, pbx, and res have been updated to include MODULEINFO data</span><br><span style="color: hsl(120, 100%, 40%);">+ that includes <support_level> tags with a value of core, extended, or deprecated.</span><br><span style="color: hsl(120, 100%, 40%);">+ More information is available on the Asterisk wiki at</span><br><span style="color: hsl(120, 100%, 40%);">+ https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ Deprecated modules are now marked to not build by default and must be explicitly</span><br><span style="color: hsl(120, 100%, 40%);">+ enabled in menuselect.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.8.13 to 1.8.14:</span><br><span style="color: hsl(120, 100%, 40%);">+* permitdirectmedia/denydirectmedia now controls whether peers can be</span><br><span style="color: hsl(120, 100%, 40%);">+ bridged via directmedia by comparing the ACL to the bridging peer's</span><br><span style="color: hsl(120, 100%, 40%);">+ address rather than its own address.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.8.12 to 1.8.13:</span><br><span style="color: hsl(120, 100%, 40%);">+* The complex processor detection and optimization has been removed from</span><br><span style="color: hsl(120, 100%, 40%);">+ the makefile in favor of using native optimization suppport when available.</span><br><span style="color: hsl(120, 100%, 40%);">+ BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.8.10 to 1.8.11:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* If no transport is specified in sip.conf, transport will default to UDP.</span><br><span style="color: hsl(120, 100%, 40%);">+ Also, if multiple transport= lines are used, only the last will be used.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.6.2 to 1.8:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* chan_sip no longer sets HASH(SIP_CAUSE,<chan name>) on channels by default.</span><br><span style="color: hsl(120, 100%, 40%);">+ This must now be enabled by setting 'sipstorecause' to 'yes' in sip.conf.</span><br><span style="color: hsl(120, 100%, 40%);">+ This carries a performance penalty.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Asterisk now requires libpri 1.4.11+ for PRI support.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* A couple of CLI commands in res_ais were changed back to their original form:</span><br><span style="color: hsl(120, 100%, 40%);">+ "ais show clm members" --> "ais clm show members"</span><br><span style="color: hsl(120, 100%, 40%);">+ "ais show evt event channels" --> "ais evt show event channels"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The default value for 'autofill' and 'shared_lastcall' in queues.conf has</span><br><span style="color: hsl(120, 100%, 40%);">+ been changed to 'yes'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The default value for the alwaysauthreject option in sip.conf has been changed</span><br><span style="color: hsl(120, 100%, 40%);">+ from "no" to "yes".</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The behavior of the 'parkedcallstimeout' has changed slightly. The formulation</span><br><span style="color: hsl(120, 100%, 40%);">+ of the extension name that a timed out parked call is delivered to when this</span><br><span style="color: hsl(120, 100%, 40%);">+ option is set to 'no' was modified such that instead of converting '/' to '0',</span><br><span style="color: hsl(120, 100%, 40%);">+ the '/' is converted to an underscore '_'. See the updated documentation in</span><br><span style="color: hsl(120, 100%, 40%);">+ features.conf.sample for more information on the behavior of the</span><br><span style="color: hsl(120, 100%, 40%);">+ 'parkedcallstimeout' option.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Asterisk-addons no longer exists as an independent package. Those modules</span><br><span style="color: hsl(120, 100%, 40%);">+ now live in the addons directory of the main Asterisk source tree. They</span><br><span style="color: hsl(120, 100%, 40%);">+ are not enabled by default. For more information about why modules live in</span><br><span style="color: hsl(120, 100%, 40%);">+ addons, see README-addons.txt.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The rarely used 'event_log' and LOG_EVENT channel have been removed; the few</span><br><span style="color: hsl(120, 100%, 40%);">+ users of this channel in the tree have been converted to LOG_NOTICE or removed</span><br><span style="color: hsl(120, 100%, 40%);">+ (in cases where the same message was already generated to another channel).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The usage of RTP inside of Asterisk has now become modularized. This means</span><br><span style="color: hsl(120, 100%, 40%);">+ the Asterisk RTP stack now exists as a loadable module, res_rtp_asterisk.</span><br><span style="color: hsl(120, 100%, 40%);">+ If you are not using autoload=yes in modules.conf you will need to ensure</span><br><span style="color: hsl(120, 100%, 40%);">+ it is set to load. If not, then any module which uses RTP (such as chan_sip)</span><br><span style="color: hsl(120, 100%, 40%);">+ will not be able to send or receive calls.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The app_dahdiscan.c file has been removed, but the dialplan app DAHDIScan still</span><br><span style="color: hsl(120, 100%, 40%);">+ remains. It now exists within app_chanspy.c and retains the exact same</span><br><span style="color: hsl(120, 100%, 40%);">+ functionality as before.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The default behavior for Set, AGI, and pbx_realtime has been changed to implement</span><br><span style="color: hsl(120, 100%, 40%);">+ 1.6 behavior by default, if there is no [compat] section in asterisk.conf. In</span><br><span style="color: hsl(120, 100%, 40%);">+ prior versions, the behavior defaulted to 1.4 behavior, to assist in upgrades.</span><br><span style="color: hsl(120, 100%, 40%);">+ Specifically, that means that pbx_realtime and res_agi expect you to use commas</span><br><span style="color: hsl(120, 100%, 40%);">+ to separate arguments in applications, and Set only takes a single pair of</span><br><span style="color: hsl(120, 100%, 40%);">+ a variable name/value. The old 1.4 behavior may still be obtained by setting</span><br><span style="color: hsl(120, 100%, 40%);">+ app_set, pbx_realtime, and res_agi each to 1.4 in the [compat] section of</span><br><span style="color: hsl(120, 100%, 40%);">+ asterisk.conf.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The PRI channels in chan_dahdi can no longer change the channel name if a</span><br><span style="color: hsl(120, 100%, 40%);">+ different B channel is selected during call negotiation. To prevent using</span><br><span style="color: hsl(120, 100%, 40%);">+ the channel name to infer what B channel a call is using and to avoid name</span><br><span style="color: hsl(120, 100%, 40%);">+ collisions, the channel name format is changed.</span><br><span style="color: hsl(120, 100%, 40%);">+ The new channel naming for PRI channels is:</span><br><span style="color: hsl(120, 100%, 40%);">+ DAHDI/i<span>/<number>[:<subaddress>]-<sequence-number></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Added CHANNEL(dahdi_span), CHANNEL(dahdi_channel), and CHANNEL(dahdi_type)</span><br><span style="color: hsl(120, 100%, 40%);">+ so the dialplan can determine the B channel currently in use by the channel.</span><br><span style="color: hsl(120, 100%, 40%);">+ Use CHANNEL(no_media_path) to determine if the channel even has a B channel.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Added AMI event DAHDIChannel to associate a DAHDI channel with an Asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+ channel so AMI applications can passively determine the B channel currently</span><br><span style="color: hsl(120, 100%, 40%);">+ in use. Calls with "no-media" as the DAHDIChannel do not have an associated</span><br><span style="color: hsl(120, 100%, 40%);">+ B channel. No-media calls are either on hold or call-waiting.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The ChanIsAvail application has been changed so the AVAILSTATUS variable</span><br><span style="color: hsl(120, 100%, 40%);">+ no longer contains both the device state and cause code. The cause code</span><br><span style="color: hsl(120, 100%, 40%);">+ is now available in the AVAILCAUSECODE variable. If existing dialplan logic</span><br><span style="color: hsl(120, 100%, 40%);">+ is written to expect AVAILSTATUS to contain the cause code it needs to be</span><br><span style="color: hsl(120, 100%, 40%);">+ changed to use AVAILCAUSECODE.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* ExternalIVR will now send Z events for invalid or missing files, T events</span><br><span style="color: hsl(120, 100%, 40%);">+ now include the interrupted file and bugs in argument parsing have been</span><br><span style="color: hsl(120, 100%, 40%);">+ fixed so there may be arguments specified in incorrect ways that were</span><br><span style="color: hsl(120, 100%, 40%);">+ working that will no longer work. Please see</span><br><span style="color: hsl(120, 100%, 40%);">+ https://wiki.asterisk.org/wiki/display/AST/External+IVR+Interface for details.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* OSP lookup application changes following variable names:</span><br><span style="color: hsl(120, 100%, 40%);">+ OSPPEERIP to OSPINPEERIP</span><br><span style="color: hsl(120, 100%, 40%);">+ OSPTECH to OSPOUTTECH</span><br><span style="color: hsl(120, 100%, 40%);">+ OSPDEST to OSPDESTINATION</span><br><span style="color: hsl(120, 100%, 40%);">+ OSPCALLING to OSPOUTCALLING</span><br><span style="color: hsl(120, 100%, 40%);">+ OSPCALLED to OSPOUTCALLED</span><br><span style="color: hsl(120, 100%, 40%);">+ OSPRESULTS to OSPDESTREMAILS</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The Manager event 'iax2 show peers' output has been updated. It now has a</span><br><span style="color: hsl(120, 100%, 40%);">+ similar output of 'sip show peers'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* VoiceMailMain and VMAuthenticate, if a '*' is entered in the first position</span><br><span style="color: hsl(120, 100%, 40%);">+ of a Mailbox or Password, will, if it exists, jump to the 'a' extension in</span><br><span style="color: hsl(120, 100%, 40%);">+ the current dialplan context.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The CALLERPRES() dialplan function is deprecated in favor of</span><br><span style="color: hsl(120, 100%, 40%);">+ CALLERID(num-pres) and CALLERID(name-pres).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Environment variables that start with "AST_" are reserved to the system and</span><br><span style="color: hsl(120, 100%, 40%);">+ may no longer be set from the dialplan.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* When a call is redirected inside of a Dial, the app and appdata fields of the</span><br><span style="color: hsl(120, 100%, 40%);">+ CDR will now be set to "AppDial" and "(Outgoing Line)" instead of being blank.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The CDR handling of billsec and duration field has changed. If your table</span><br><span style="color: hsl(120, 100%, 40%);">+ definition specifies those fields as float,double or similar they will now</span><br><span style="color: hsl(120, 100%, 40%);">+ be logged with microsecond accuracy instead of a whole integer.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* chan_sip will no longer set up a local call forward when receiving a</span><br><span style="color: hsl(120, 100%, 40%);">+ 482 Loop Detected response. The dialplan will just continue from where it</span><br><span style="color: hsl(120, 100%, 40%);">+ left off.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The 'stunaddr' option has been removed from chan_sip. This feature did not</span><br><span style="color: hsl(120, 100%, 40%);">+ behave as expected, had no correct use case, and was not RFC compliant. The</span><br><span style="color: hsl(120, 100%, 40%);">+ removal of this feature will hopefully be followed by a correct RFC compliant</span><br><span style="color: hsl(120, 100%, 40%);">+ STUN implementation in chan_sip in the future.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The default value for the pedantic option in sip.conf has been changed</span><br><span style="color: hsl(120, 100%, 40%);">+ from "no" to "yes".</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The ConnectedLineNum and ConnectedLineName headers were added to many AMI</span><br><span style="color: hsl(120, 100%, 40%);">+ events/responses if the CallerIDNum/CallerIDName headers were also present.</span><br><span style="color: hsl(120, 100%, 40%);">+ The addition of connected line support changes the behavior of the channel</span><br><span style="color: hsl(120, 100%, 40%);">+ caller ID somewhat. The channel caller ID value no longer time shares with</span><br><span style="color: hsl(120, 100%, 40%);">+ the connected line ID on outgoing call legs. The timing of some AMI</span><br><span style="color: hsl(120, 100%, 40%);">+ events/responses output the connected line ID as caller ID. These party ID's</span><br><span style="color: hsl(120, 100%, 40%);">+ are now separate.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The Dial application d and H options do not automatically answer the call</span><br><span style="color: hsl(120, 100%, 40%);">+ anymore. It broke DTMF attended transfers. Since many SIP and ISDN phones</span><br><span style="color: hsl(120, 100%, 40%);">+ cannot send DTMF before a call is connected, you need to answer the call</span><br><span style="color: hsl(120, 100%, 40%);">+ leg to those phones before using Dial with these options for them to have</span><br><span style="color: hsl(120, 100%, 40%);">+ any effect before the dialed party answers.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The outgoing directory (where .call files are read) now uses inotify to</span><br><span style="color: hsl(120, 100%, 40%);">+ detect file changes instead of polling the directory on a regular basis.</span><br><span style="color: hsl(120, 100%, 40%);">+ If your outgoing folder is on a NFS mount or another network file system,</span><br><span style="color: hsl(120, 100%, 40%);">+ changes to the files will not be detected. You can revert to polling the</span><br><span style="color: hsl(120, 100%, 40%);">+ directory by specifying --without-inotify to configure before compiling.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The 'sipusers' realtime table has been removed completely. Use the 'sippeers'</span><br><span style="color: hsl(120, 100%, 40%);">+ table with type 'user' for user type objects.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The sip.conf allowoverlap option now accepts 'dtmf' as a value. If you</span><br><span style="color: hsl(120, 100%, 40%);">+ are using the early media DTMF overlap dialing method you now need to set</span><br><span style="color: hsl(120, 100%, 40%);">+ allowoverlap=dtmf.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.6.1 to 1.6.2:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* SIP no longer sends the 183 progress message for early media by</span><br><span style="color: hsl(120, 100%, 40%);">+ default. Applications requiring early media should use the</span><br><span style="color: hsl(120, 100%, 40%);">+ progress() dialplan app to generate the progress message.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The firmware for the IAXy has been removed from Asterisk. It can be</span><br><span style="color: hsl(120, 100%, 40%);">+ downloaded from http://downloads.digium.com/pub/iaxy/. To have Asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+ install the firmware into its proper location, place the firmware in the</span><br><span style="color: hsl(120, 100%, 40%);">+ contrib/firmware/iax/ directory in the Asterisk source tree before running</span><br><span style="color: hsl(120, 100%, 40%);">+ "make install".</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* T.38 FAX error correction mode can no longer be configured in udptl.conf;</span><br><span style="color: hsl(120, 100%, 40%);">+ instead, it is configured on a per-peer (or global) basis in sip.conf, with</span><br><span style="color: hsl(120, 100%, 40%);">+ the same default as was present in udptl.conf.sample.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* T.38 FAX maximum datagram size can no longer be configured in updtl.conf;</span><br><span style="color: hsl(120, 100%, 40%);">+ instead, it is either supplied by the application servicing the T.38 channel</span><br><span style="color: hsl(120, 100%, 40%);">+ (for a FAX send or receive) or calculated from the bridged endpoint's</span><br><span style="color: hsl(120, 100%, 40%);">+ maximum datagram size (for a T.38 FAX passthrough call). In addition, sip.conf</span><br><span style="color: hsl(120, 100%, 40%);">+ allows for overriding the value supplied by a remote endpoint, which is useful</span><br><span style="color: hsl(120, 100%, 40%);">+ when T.38 connections are made to gateways that supply incorrectly-calculated</span><br><span style="color: hsl(120, 100%, 40%);">+ maximum datagram sizes.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* There have been some changes to the IAX2 protocol to address the security</span><br><span style="color: hsl(120, 100%, 40%);">+ concerns documented in the security advisory AST-2009-006. Please see the</span><br><span style="color: hsl(120, 100%, 40%);">+ IAX2 security document, doc/IAX2-security.pdf, for information regarding</span><br><span style="color: hsl(120, 100%, 40%);">+ backwards compatibility with versions of Asterisk that do not contain these</span><br><span style="color: hsl(120, 100%, 40%);">+ changes to IAX2.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The 'canreinvite' option support by the SIP, MGCP and Skinny channel drivers</span><br><span style="color: hsl(120, 100%, 40%);">+ has been renamed to 'directmedia', to better reflect what it actually does.</span><br><span style="color: hsl(120, 100%, 40%);">+ In the case of SIP, there are still re-INVITEs issued for T.38 negotiation,</span><br><span style="color: hsl(120, 100%, 40%);">+ starting and stopping music-on-hold, and other reasons, and the 'canreinvite'</span><br><span style="color: hsl(120, 100%, 40%);">+ option never had any effect on these cases, it only affected the re-INVITEs</span><br><span style="color: hsl(120, 100%, 40%);">+ used for direct media path setup. For MGCP and Skinny, the option was poorly</span><br><span style="color: hsl(120, 100%, 40%);">+ named because those protocols don't even use INVITE messages at all. For</span><br><span style="color: hsl(120, 100%, 40%);">+ backwards compatibility, the old option is still supported in both normal</span><br><span style="color: hsl(120, 100%, 40%);">+ and Realtime configuration files, but all of the sample configuration files,</span><br><span style="color: hsl(120, 100%, 40%);">+ Realtime/LDAP schemas, and other documentation refer to it using the new name.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The default console now will use colors according to the default background</span><br><span style="color: hsl(120, 100%, 40%);">+ color, instead of forcing the background color to black. If you are using a</span><br><span style="color: hsl(120, 100%, 40%);">+ light colored background for your console, you may wish to use the option</span><br><span style="color: hsl(120, 100%, 40%);">+ flag '-W' to present better color choices for the various messages. However,</span><br><span style="color: hsl(120, 100%, 40%);">+ if you'd prefer the old method of forcing colors to white text on a black</span><br><span style="color: hsl(120, 100%, 40%);">+ background, the compatibility option -B is provided for this purpose.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* SendImage() no longer hangs up the channel on transmission error or on</span><br><span style="color: hsl(120, 100%, 40%);">+ any other error; in those cases, a FAILURE status is stored in</span><br><span style="color: hsl(120, 100%, 40%);">+ SENDIMAGESTATUS and dialplan execution continues. The possible</span><br><span style="color: hsl(120, 100%, 40%);">+ return values stored in SENDIMAGESTATUS are: SUCCESS, FAILURE, and</span><br><span style="color: hsl(120, 100%, 40%);">+ UNSUPPORTED. ('OK' has been replaced with 'SUCCESS', and 'NOSUPPORT'</span><br><span style="color: hsl(120, 100%, 40%);">+ has been replaced with 'UNSUPPORTED'). This change makes the</span><br><span style="color: hsl(120, 100%, 40%);">+ SendImage application more consistent with other applications.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* skinny.conf now has separate sections for lines and devices.</span><br><span style="color: hsl(120, 100%, 40%);">+ Please have a look at configs/skinny.conf.sample and update</span><br><span style="color: hsl(120, 100%, 40%);">+ your skinny.conf.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Queue names previously were treated in a case-sensitive manner,</span><br><span style="color: hsl(120, 100%, 40%);">+ meaning that queues with names like "sales" and "sALeS" would be</span><br><span style="color: hsl(120, 100%, 40%);">+ seen as unique queues. The parsing logic has changed to use</span><br><span style="color: hsl(120, 100%, 40%);">+ case-insensitive comparisons now when originally hashing based on</span><br><span style="color: hsl(120, 100%, 40%);">+ queue names, meaning that now the two queues mentioned as examples</span><br><span style="color: hsl(120, 100%, 40%);">+ earlier will be seen as having the same name.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The SPRINTF() dialplan function has been moved into its own module,</span><br><span style="color: hsl(120, 100%, 40%);">+ func_sprintf, and is no longer included in func_strings. If you use this</span><br><span style="color: hsl(120, 100%, 40%);">+ function and do not use 'autoload=yes' in modules.conf, you will need</span><br><span style="color: hsl(120, 100%, 40%);">+ to explicitly load func_sprintf for it to be available.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The res_indications module has been removed. Its functionality was important</span><br><span style="color: hsl(120, 100%, 40%);">+ enough that most of it has been moved into the Asterisk core.</span><br><span style="color: hsl(120, 100%, 40%);">+ Two applications previously provided by res_indications, PlayTones and</span><br><span style="color: hsl(120, 100%, 40%);">+ StopPlayTones, have been moved into a new module, app_playtones.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Support for Taiwanese was incorrectly supported with the "tw" language code.</span><br><span style="color: hsl(120, 100%, 40%);">+ In reality, the "tw" language code is reserved for the Twi language, native</span><br><span style="color: hsl(120, 100%, 40%);">+ to Ghana. If you were previously using the "tw" language code, you should</span><br><span style="color: hsl(120, 100%, 40%);">+ switch to using either "zh" (for Mandarin Chinese) or "zh_TW" for Taiwan</span><br><span style="color: hsl(120, 100%, 40%);">+ specific localizations. Additionally, "mx" should be changed to "es_MX",</span><br><span style="color: hsl(120, 100%, 40%);">+ Georgian was incorrectly specified as "ge" but should be "ka", and Czech is</span><br><span style="color: hsl(120, 100%, 40%);">+ "cs", not "cz".</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* DAHDISendCallreroutingFacility() parameters are now comma-separated,</span><br><span style="color: hsl(120, 100%, 40%);">+ instead of the old pipe.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* res_jabber: autoprune has been disabled by default, to avoid misconfiguration</span><br><span style="color: hsl(120, 100%, 40%);">+ that would end up being interpreted as a bug once Asterisk started removing</span><br><span style="color: hsl(120, 100%, 40%);">+ the contacts from a user list.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The cdr.conf file must exist and be configured correctly in order for CDR</span><br><span style="color: hsl(120, 100%, 40%);">+ records to be written.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* cdr_pgsql now assumes the encoding of strings it is handed are in LATIN9,</span><br><span style="color: hsl(120, 100%, 40%);">+ which should cover most uses of the extended ASCII set. If your strings</span><br><span style="color: hsl(120, 100%, 40%);">+ use a different encoding in Asterisk, the "encoding" parameter may be set</span><br><span style="color: hsl(120, 100%, 40%);">+ to specify the correct character set.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.6.0.1 to 1.6.1:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The ast_agi_register_multiple() and ast_agi_unregister_multiple()</span><br><span style="color: hsl(120, 100%, 40%);">+ API calls were added in 1.6.0, so that modules that provide multiple</span><br><span style="color: hsl(120, 100%, 40%);">+ AGI commands could register/unregister them all with a single</span><br><span style="color: hsl(120, 100%, 40%);">+ step. However, these API calls were not implemented properly, and did</span><br><span style="color: hsl(120, 100%, 40%);">+ not allow the caller to know whether registration or unregistration</span><br><span style="color: hsl(120, 100%, 40%);">+ succeeded or failed. They have been redefined to now return success</span><br><span style="color: hsl(120, 100%, 40%);">+ or failure, but this means any code using these functions will need</span><br><span style="color: hsl(120, 100%, 40%);">+ be recompiled after upgrading to a version of Asterisk containing</span><br><span style="color: hsl(120, 100%, 40%);">+ these changes. In addition, the source code using these functions</span><br><span style="color: hsl(120, 100%, 40%);">+ should be reviewed to ensure it can properly react to failure</span><br><span style="color: hsl(120, 100%, 40%);">+ of registration or unregistration of its API commands.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The ast_agi_fdprintf() API call has been renamed to ast_agi_send()</span><br><span style="color: hsl(120, 100%, 40%);">+ to better match what it really does, and the argument order has been</span><br><span style="color: hsl(120, 100%, 40%);">+ changed to be consistent with other API calls that perform similar</span><br><span style="color: hsl(120, 100%, 40%);">+ operations.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.6.0.x to 1.6.1:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* In previous versions of Asterisk, due to the way objects were arranged in</span><br><span style="color: hsl(120, 100%, 40%);">+ memory by chan_sip, the order of entries in sip.conf could be adjusted to</span><br><span style="color: hsl(120, 100%, 40%);">+ control the behavior of matching against peers and users. The way objects</span><br><span style="color: hsl(120, 100%, 40%);">+ are managed has been significantly changed for reasons involving performance</span><br><span style="color: hsl(120, 100%, 40%);">+ and stability. A side effect of these changes is that the order of entries</span><br><span style="color: hsl(120, 100%, 40%);">+ in sip.conf can no longer be relied upon to control behavior.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The following core commands dealing with dialplan have been deprecated: 'core</span><br><span style="color: hsl(120, 100%, 40%);">+ show globals', 'core set global' and 'core set chanvar'. Use the equivalent</span><br><span style="color: hsl(120, 100%, 40%);">+ 'dialplan show globals', 'dialplan set global' and 'dialplan set chanvar'</span><br><span style="color: hsl(120, 100%, 40%);">+ instead.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* In the dialplan expression parser, the logical value of spaces</span><br><span style="color: hsl(120, 100%, 40%);">+ immediately preceding a standalone 0 previously evaluated to</span><br><span style="color: hsl(120, 100%, 40%);">+ true. It now evaluates to false. This has confused a good many</span><br><span style="color: hsl(120, 100%, 40%);">+ people in the past (typically because they failed to realize the</span><br><span style="color: hsl(120, 100%, 40%);">+ space had any significance). Since this violates the Principle of</span><br><span style="color: hsl(120, 100%, 40%);">+ Least Surprise, it has been changed.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* While app_directory has always relied on having a voicemail.conf or users.conf file</span><br><span style="color: hsl(120, 100%, 40%);">+ correctly set up, it now is dependent on app_voicemail being compiled as well.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* SIP: All of the functionality in SIPCHANINFO() has been implemented in CHANNEL(),</span><br><span style="color: hsl(120, 100%, 40%);">+ and you should start using that function instead for retrieving information about</span><br><span style="color: hsl(120, 100%, 40%);">+ the channel in a technology-agnostic way.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* If you have any third party modules which use a config file variable whose</span><br><span style="color: hsl(120, 100%, 40%);">+ name ends in a '+', please note that the append capability added to this</span><br><span style="color: hsl(120, 100%, 40%);">+ version may now conflict with that variable naming scheme. An easy</span><br><span style="color: hsl(120, 100%, 40%);">+ workaround is to ensure that a space occurs between the '+' and the '=',</span><br><span style="color: hsl(120, 100%, 40%);">+ to differentiate your variable from the append operator. This potential</span><br><span style="color: hsl(120, 100%, 40%);">+ conflict is unlikely, but is documented here to be thorough.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The "Join" event from app_queue now uses the CallerIDNum header instead of</span><br><span style="color: hsl(120, 100%, 40%);">+ the CallerID header to indicate the CallerID number.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* If you use ODBC storage for voicemail, there is a new field called "flag"</span><br><span style="color: hsl(120, 100%, 40%);">+ which should be a char(8) or larger. This field specifies whether or not a</span><br><span style="color: hsl(120, 100%, 40%);">+ message has been designated to be "Urgent", "PRIORITY", or not.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.4 to 1.6:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+AEL:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Macros are now implemented underneath with the Gosub() application.</span><br><span style="color: hsl(120, 100%, 40%);">+ Heaven Help You if you wrote code depending on any aspect of this!</span><br><span style="color: hsl(120, 100%, 40%);">+ Previous to 1.6, macros were implemented with the Macro() app, which</span><br><span style="color: hsl(120, 100%, 40%);">+ provided a nice feature of auto-returning. The compiler will do its</span><br><span style="color: hsl(120, 100%, 40%);">+ best to insert a Return() app call at the end of your macro if you did</span><br><span style="color: hsl(120, 100%, 40%);">+ not include it, but really, you should make sure that all execution</span><br><span style="color: hsl(120, 100%, 40%);">+ paths within your macros end in "return;".</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The conf2ael program is 'introduced' in this release; it is in a rather</span><br><span style="color: hsl(120, 100%, 40%);">+ crude state, but deemed useful for making a first pass at converting</span><br><span style="color: hsl(120, 100%, 40%);">+ extensions.conf code into AEL. More intelligence will come with time.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Core:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The 'languageprefix' option in asterisk.conf is now deprecated, and</span><br><span style="color: hsl(120, 100%, 40%);">+ the default sound file layout for non-English sounds is the 'new</span><br><span style="color: hsl(120, 100%, 40%);">+ style' layout introduced in Asterisk 1.4 (and used by the automatic</span><br><span style="color: hsl(120, 100%, 40%);">+ sound file installer in the Makefile).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The ast_expr2 stuff has been modified to handle floating-point numbers.</span><br><span style="color: hsl(120, 100%, 40%);">+ Numbers of the format D.D are now acceptable input for the expr parser,</span><br><span style="color: hsl(120, 100%, 40%);">+ Where D is a string of base-10 digits. All math is now done in "long double",</span><br><span style="color: hsl(120, 100%, 40%);">+ if it is available on your compiler/architecture. This was half-way between</span><br><span style="color: hsl(120, 100%, 40%);">+ a bug-fix (because the MATH func returns fp by default), and an enhancement.</span><br><span style="color: hsl(120, 100%, 40%);">+ Also, for those counting on, or needing, integer operations, a series of</span><br><span style="color: hsl(120, 100%, 40%);">+ 'functions' were also added to the expr language, to allow several styles</span><br><span style="color: hsl(120, 100%, 40%);">+ of rounding/truncation, along with a set of common floating point operations,</span><br><span style="color: hsl(120, 100%, 40%);">+ like sin, cos, tan, log, pow, etc. The ability to call external functions</span><br><span style="color: hsl(120, 100%, 40%);">+ like CDR(), etc. was also added, without having to use the ${...} notation.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The delimiter passed to applications has been changed to the comma (','), as</span><br><span style="color: hsl(120, 100%, 40%);">+ that is what people are used to using within extensions.conf. If you are</span><br><span style="color: hsl(120, 100%, 40%);">+ using realtime extensions, you will need to translate your existing dialplan</span><br><span style="color: hsl(120, 100%, 40%);">+ to use this separator. To use a literal comma, you need merely to escape it</span><br><span style="color: hsl(120, 100%, 40%);">+ with a backslash ('\'). Another possible side effect is that you may need to</span><br><span style="color: hsl(120, 100%, 40%);">+ remove the obscene level of backslashing that was necessary for the dialplan</span><br><span style="color: hsl(120, 100%, 40%);">+ to work correctly in 1.4 and previous versions. This should make writing</span><br><span style="color: hsl(120, 100%, 40%);">+ dialplans less painful in the future, albeit with the pain of a one-time</span><br><span style="color: hsl(120, 100%, 40%);">+ conversion. If you would like to avoid this conversion immediately, set</span><br><span style="color: hsl(120, 100%, 40%);">+ pbx_realtime=1.4 in the [compat] section of asterisk.conf. After</span><br><span style="color: hsl(120, 100%, 40%);">+ transitioning, set pbx_realtime=1.6 in the same section.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* For the same purpose as above, you may set res_agi=1.4 in the [compat]</span><br><span style="color: hsl(120, 100%, 40%);">+ section of asterisk.conf to continue to use the '|' delimiter in the EXEC</span><br><span style="color: hsl(120, 100%, 40%);">+ arguments of AGI applications. After converting to use the ',' delimiter,</span><br><span style="color: hsl(120, 100%, 40%);">+ change this option to res_agi=1.6.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* As a side effect of the application delimiter change, many places that used</span><br><span style="color: hsl(120, 100%, 40%);">+ to need quotes in order to get the proper meaning are no longer required.</span><br><span style="color: hsl(120, 100%, 40%);">+ You now only need to quote strings in configuration files if you literally</span><br><span style="color: hsl(120, 100%, 40%);">+ want quotation marks within a string.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Any applications run that contain the pipe symbol but not a comma symbol will</span><br><span style="color: hsl(120, 100%, 40%);">+ get a warning printed to the effect that the application delimiter has changed.</span><br><span style="color: hsl(120, 100%, 40%);">+ However, there are legitimate reasons why this might be useful in certain</span><br><span style="color: hsl(120, 100%, 40%);">+ situations, so this warning can be turned off with the dontwarn option in</span><br><span style="color: hsl(120, 100%, 40%);">+ asterisk.conf.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The logger.conf option 'rotatetimestamp' has been deprecated in favor of</span><br><span style="color: hsl(120, 100%, 40%);">+ 'rotatestrategy'. This new option supports a 'rotate' strategy that more</span><br><span style="color: hsl(120, 100%, 40%);">+ closely mimics the system logger in terms of file rotation.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The concise versions of various CLI commands are now deprecated. We recommend</span><br><span style="color: hsl(120, 100%, 40%);">+ using the manager interface (AMI) for application integration with Asterisk.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Voicemail:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The voicemail configuration values 'maxmessage' and 'minmessage' have</span><br><span style="color: hsl(120, 100%, 40%);">+ been changed to 'maxsecs' and 'minsecs' to clarify their purpose and</span><br><span style="color: hsl(120, 100%, 40%);">+ to make them more distinguishable from 'maxmsgs', which sets folder</span><br><span style="color: hsl(120, 100%, 40%);">+ size. The old variables will continue to work in this version, albeit</span><br><span style="color: hsl(120, 100%, 40%);">+ with a deprecation warning.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* If you use any interface for modifying voicemail aside from the built in</span><br><span style="color: hsl(120, 100%, 40%);">+ dialplan applications, then the option "pollmailboxes" *must* be set in</span><br><span style="color: hsl(120, 100%, 40%);">+ voicemail.conf for message waiting indication (MWI) to work properly. This</span><br><span style="color: hsl(120, 100%, 40%);">+ is because Voicemail notification is now event based instead of polling</span><br><span style="color: hsl(120, 100%, 40%);">+ based. The channel drivers are no longer responsible for constantly manually</span><br><span style="color: hsl(120, 100%, 40%);">+ checking mailboxes for changes so that they can send MWI information to users.</span><br><span style="color: hsl(120, 100%, 40%);">+ Examples of situations that would require this option are web interfaces to</span><br><span style="color: hsl(120, 100%, 40%);">+ voicemail or an email client in the case of using IMAP storage.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Applications:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* ChanIsAvail() now has a 't' option, which allows the specified device</span><br><span style="color: hsl(120, 100%, 40%);">+ to be queried for state without consulting the channel drivers. This</span><br><span style="color: hsl(120, 100%, 40%);">+ performs mostly a 'ChanExists' sort of function.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* ChannelRedirect() will not terminate the channel that fails to do a</span><br><span style="color: hsl(120, 100%, 40%);">+ channelredirect as it has done previously. Instead CHANNELREDIRECT_STATUS</span><br><span style="color: hsl(120, 100%, 40%);">+ will reflect if the attempt was successful of not.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* SetCallerPres() has been replaced with the CALLERPRES() dialplan function</span><br><span style="color: hsl(120, 100%, 40%);">+ and is now deprecated.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* DISA()'s fifth argument is now an options argument. If you have previously</span><br><span style="color: hsl(120, 100%, 40%);">+ used 'NOANSWER' in this argument, you'll need to convert that to the new</span><br><span style="color: hsl(120, 100%, 40%);">+ option 'n'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Macro() is now deprecated. If you need subroutines, you should use the</span><br><span style="color: hsl(120, 100%, 40%);">+ Gosub()/Return() applications. To replace MacroExclusive(), we have</span><br><span style="color: hsl(120, 100%, 40%);">+ introduced dialplan functions LOCK(), TRYLOCK(), and UNLOCK(). You may use</span><br><span style="color: hsl(120, 100%, 40%);">+ these functions in any location where you desire to ensure that only one</span><br><span style="color: hsl(120, 100%, 40%);">+ channel is executing that path at any one time. The Macro() applications</span><br><span style="color: hsl(120, 100%, 40%);">+ are deprecated for performance reasons. However, since Macro() has been</span><br><span style="color: hsl(120, 100%, 40%);">+ around for a long time and so many dialplans depend heavily on it, for the</span><br><span style="color: hsl(120, 100%, 40%);">+ sake of backwards compatibility it will not be removed . It is also worth</span><br><span style="color: hsl(120, 100%, 40%);">+ noting that using both Macro() and GoSub() at the same time is _heavily_</span><br><span style="color: hsl(120, 100%, 40%);">+ discouraged.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Read() now sets a READSTATUS variable on exit. It does NOT automatically</span><br><span style="color: hsl(120, 100%, 40%);">+ return -1 (and hangup) anymore on error. If you want to hangup on error,</span><br><span style="color: hsl(120, 100%, 40%);">+ you need to do so explicitly in your dialplan.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Privacy() no longer uses privacy.conf, so any options must be specified</span><br><span style="color: hsl(120, 100%, 40%);">+ directly in the application arguments.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* MusicOnHold application now has duration parameter which allows specifying</span><br><span style="color: hsl(120, 100%, 40%);">+ timeout in seconds.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* WaitMusicOnHold application is now deprecated in favor of extended MusicOnHold.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* SetMusicOnHold is now deprecated. You should use Set(CHANNEL(musicclass)=...)</span><br><span style="color: hsl(120, 100%, 40%);">+ instead.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The arguments in ExecIf changed a bit, to be more like other applications.</span><br><span style="color: hsl(120, 100%, 40%);">+ The syntax is now ExecIf(<cond>?appiftrue(args):appiffalse(args)).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The behavior of the Set application now depends upon a compatibility option,</span><br><span style="color: hsl(120, 100%, 40%);">+ set in asterisk.conf. To use the old 1.4 behavior, which allowed Set to take</span><br><span style="color: hsl(120, 100%, 40%);">+ multiple key/value pairs, set app_set=1.4 in [compat] in asterisk.conf. To</span><br><span style="color: hsl(120, 100%, 40%);">+ use the new behavior, which permits variables to be set with embedded commas,</span><br><span style="color: hsl(120, 100%, 40%);">+ set app_set=1.6 in [compat] in asterisk.conf. Note that you can have both</span><br><span style="color: hsl(120, 100%, 40%);">+ behaviors at the same time, if you switch to using MSet if you want the old</span><br><span style="color: hsl(120, 100%, 40%);">+ behavior.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Dialplan Functions:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* QUEUE_MEMBER_COUNT() has been deprecated in favor of the QUEUE_MEMBER() function. For</span><br><span style="color: hsl(120, 100%, 40%);">+ more information, issue a "show function QUEUE_MEMBER" from the CLI.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CDR:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The cdr_sqlite module has been marked as deprecated in favor of</span><br><span style="color: hsl(120, 100%, 40%);">+ cdr_sqlite3_custom. It will potentially be removed from the tree</span><br><span style="color: hsl(120, 100%, 40%);">+ after Asterisk 1.6 is released.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The cdr_odbc module now uses res_odbc to manage its connections. The</span><br><span style="color: hsl(120, 100%, 40%);">+ username and password parameters in cdr_odbc.conf, therefore, are no</span><br><span style="color: hsl(120, 100%, 40%);">+ longer used. The dsn parameter now points to an entry in res_odbc.conf.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The uniqueid field in the core Asterisk structure has been changed from a</span><br><span style="color: hsl(120, 100%, 40%);">+ maximum 31 character field to a 149 character field, to account for all</span><br><span style="color: hsl(120, 100%, 40%);">+ possible values the systemname prefix could be. In the past, if the</span><br><span style="color: hsl(120, 100%, 40%);">+ systemname was too long, the uniqueid would have been truncated.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The cdr_tds module now supports all versions of FreeTDS that contain</span><br><span style="color: hsl(120, 100%, 40%);">+ the db-lib frontend. It will also now log the userfield variable if</span><br><span style="color: hsl(120, 100%, 40%);">+ the target database table contains a column for it.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Formats:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* format_wav: The GAIN preprocessor definition and source code that used it</span><br><span style="color: hsl(120, 100%, 40%);">+ is removed. This change was made in response to user complaints of</span><br><span style="color: hsl(120, 100%, 40%);">+ choppiness or the clipping of loud signal peaks. To increase the volume</span><br><span style="color: hsl(120, 100%, 40%);">+ of voicemail messages, use the 'volgain' option in voicemail.conf</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Channel Drivers:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* SIP: a small upgrade to support the "Record" button on the SNOM360,</span><br><span style="color: hsl(120, 100%, 40%);">+ which sends a sip INFO message with a "Record: on" or "Record: off"</span><br><span style="color: hsl(120, 100%, 40%);">+ header. If Asterisk is set up (via features.conf) to accept "One Touch Monitor"</span><br><span style="color: hsl(120, 100%, 40%);">+ requests (by default, via '*1'), then the user-configured dialpad sequence</span><br><span style="color: hsl(120, 100%, 40%);">+ is generated, and recording can be started and stopped via this button. The</span><br><span style="color: hsl(120, 100%, 40%);">+ file names and formats are all controlled via the normal mechanisms. If the</span><br><span style="color: hsl(120, 100%, 40%);">+ user has not configured the automon feature, the normal "415 Unsupported media type"</span><br><span style="color: hsl(120, 100%, 40%);">+ is returned, and nothing is done.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* SIP: The "call-limit" option is marked as deprecated. It still works in this version of</span><br><span style="color: hsl(120, 100%, 40%);">+ Asterisk, but will be removed in the following version. Please use the groupcount functions</span><br><span style="color: hsl(120, 100%, 40%);">+ in the dialplan to enforce call limits. The "limitonpeer" configuration option is</span><br><span style="color: hsl(120, 100%, 40%);">+ now renamed to "counteronpeer".</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* SIP: The "username" option is now renamed to "defaultuser" to match "defaultip".</span><br><span style="color: hsl(120, 100%, 40%);">+ These are used only before registration to call a peer with the uri</span><br><span style="color: hsl(120, 100%, 40%);">+ sip:defaultuser@defaultip</span><br><span style="color: hsl(120, 100%, 40%);">+ The "username" setting still work, but is deprecated and will not work in</span><br><span style="color: hsl(120, 100%, 40%);">+ the next version of Asterisk.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* SIP: The old "insecure" options, deprecated in 1.4, have been removed.</span><br><span style="color: hsl(120, 100%, 40%);">+ "insecure=very" should be changed to "insecure=port,invite"</span><br><span style="color: hsl(120, 100%, 40%);">+ "insecure=yes" should be changed to "insecure=port"</span><br><span style="color: hsl(120, 100%, 40%);">+ Be aware that some telephony providers show the invalid syntax in their</span><br><span style="color: hsl(120, 100%, 40%);">+ sample configurations.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* chan_local.c: the comma delimiter inside the channel name has been changed to a</span><br><span style="color: hsl(120, 100%, 40%);">+ semicolon, in order to make the Local channel driver compatible with the comma</span><br><span style="color: hsl(120, 100%, 40%);">+ delimiter change in applications.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* H323: The "tos" setting has changed name to "tos_audio" and "cos" to "cos_audio"</span><br><span style="color: hsl(120, 100%, 40%);">+ to be compatible with settings in sip.conf. The "tos" and "cos" configuration</span><br><span style="color: hsl(120, 100%, 40%);">+ is deprecated and will stop working in the next release of Asterisk.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Console: A new console channel driver, chan_console, has been added to Asterisk.</span><br><span style="color: hsl(120, 100%, 40%);">+ This new module can not be loaded at the same time as chan_alsa or chan_oss. The</span><br><span style="color: hsl(120, 100%, 40%);">+ default modules.conf only loads one of them (chan_oss by default). So, unless you</span><br><span style="color: hsl(120, 100%, 40%);">+ have modified your modules.conf to not use the autoload option, then you will need</span><br><span style="color: hsl(120, 100%, 40%);">+ to modify modules.conf to add another "noload" line to ensure that only one of</span><br><span style="color: hsl(120, 100%, 40%);">+ these three modules gets loaded.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* DAHDI: The chan_zap module that supported PSTN interfaces using</span><br><span style="color: hsl(120, 100%, 40%);">+ Zaptel has been renamed to chan_dahdi, and only supports the DAHDI</span><br><span style="color: hsl(120, 100%, 40%);">+ telephony driver package for PSTN interfaces. See the</span><br><span style="color: hsl(120, 100%, 40%);">+ Zaptel-to-DAHDI.txt file for more details on this transition.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* DAHDI: The "msdstrip" option has been deprecated, as it provides no value over</span><br><span style="color: hsl(120, 100%, 40%);">+ the method of stripping digits in the dialplan using variable substring syntax.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Configuration:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* pbx_dundi.c: tos parameter changed to use new values. Old values like lowdelay,</span><br><span style="color: hsl(120, 100%, 40%);">+ lowcost and other is not acceptable now. Look into qos.tex for description of</span><br><span style="color: hsl(120, 100%, 40%);">+ this parameter.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* queues.conf: the queue-lessthan sound file option is no longer available, and the</span><br><span style="color: hsl(120, 100%, 40%);">+ queue-round-seconds option no longer takes '1' as a valid parameter.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Manager:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Manager has been upgraded to version 1.1 with a lot of changes.</span><br><span style="color: hsl(120, 100%, 40%);">+ Please check doc/manager_1_1.txt for information</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The IAXpeers command output has been changed to more closely resemble the</span><br><span style="color: hsl(120, 100%, 40%);">+ output of the SIPpeers command.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* cdr_manager now reports at the "cdr" level, not at "call" You may need to</span><br><span style="color: hsl(120, 100%, 40%);">+ change your manager.conf to add the level to existing AMI users, if they</span><br><span style="color: hsl(120, 100%, 40%);">+ want to see the CDR events generated.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The Originate command now requires the Originate write permission. For</span><br><span style="color: hsl(120, 100%, 40%);">+ Originate with the Application parameter, you need the additional System</span><br><span style="color: hsl(120, 100%, 40%);">+ privilege if you want to do anything that calls out to a subshell.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+iLBC Codec:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Previously, the Asterisk source code distribution included the iLBC</span><br><span style="color: hsl(120, 100%, 40%);">+ encoder/decoder source code, from Global IP Solutions</span><br><span style="color: hsl(120, 100%, 40%);">+ (http://www.gipscorp.com). This code is not licensed for</span><br><span style="color: hsl(120, 100%, 40%);">+ distribution, and thus has been removed from the Asterisk source</span><br><span style="color: hsl(120, 100%, 40%);">+ code distribution. If you wish to use codec_ilbc to support iLBC</span><br><span style="color: hsl(120, 100%, 40%);">+ channels in Asterisk, you can run the contrib/scripts/get_ilbc_source.sh</span><br><span style="color: hsl(120, 100%, 40%);">+ script to download the source and put it in the proper place in</span><br><span style="color: hsl(120, 100%, 40%);">+ the Asterisk build tree. Once that is done you can follow your normal</span><br><span style="color: hsl(120, 100%, 40%);">+ steps of building Asterisk. You will need to run 'menuselect' and enable</span><br><span style="color: hsl(120, 100%, 40%);">+ the iLBC codec in the 'Codec Translators' category.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.2 to 1.4:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Build Process (configure script):</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Asterisk now uses an autoconf-generated configuration script to learn how it</span><br><span style="color: hsl(120, 100%, 40%);">+should build itself for your system. As it is a standard script, running:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+$ ./configure --help</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+will show you all the options available. This script can be used to tell the</span><br><span style="color: hsl(120, 100%, 40%);">+build process what libraries you have on your system (if it cannot find them</span><br><span style="color: hsl(120, 100%, 40%);">+automatically), which libraries you wish to have ignored even though they may</span><br><span style="color: hsl(120, 100%, 40%);">+be present, etc.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+You must run the configure script before Asterisk will build, although it will</span><br><span style="color: hsl(120, 100%, 40%);">+attempt to automatically run it for you with no options specified; for most</span><br><span style="color: hsl(120, 100%, 40%);">+users, that will result in a similar build to what they would have had before</span><br><span style="color: hsl(120, 100%, 40%);">+the configure script was added to the build process (except for having to run</span><br><span style="color: hsl(120, 100%, 40%);">+'make' again after the configure script is run). Note that the configure script</span><br><span style="color: hsl(120, 100%, 40%);">+does NOT need to be re-run just to rebuild Asterisk; you only need to re-run it</span><br><span style="color: hsl(120, 100%, 40%);">+when your system configuration changes or you wish to build Asterisk with</span><br><span style="color: hsl(120, 100%, 40%);">+different options.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Build Process (module selection):</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The Asterisk source tree now includes a basic module selection and build option</span><br><span style="color: hsl(120, 100%, 40%);">+selection tool called 'menuselect'. Run 'make menuselect' to make your choices.</span><br><span style="color: hsl(120, 100%, 40%);">+In this tool, you can disable building of modules that you don't care about,</span><br><span style="color: hsl(120, 100%, 40%);">+turn on/off global options for the build and see which modules will not</span><br><span style="color: hsl(120, 100%, 40%);">+(and cannot) be built because your system does not have the required external</span><br><span style="color: hsl(120, 100%, 40%);">+dependencies installed.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The resulting file from menuselect is called 'menuselect.makeopts'. Note that</span><br><span style="color: hsl(120, 100%, 40%);">+the resulting menuselect.makeopts file generally contains which modules *not*</span><br><span style="color: hsl(120, 100%, 40%);">+to build. The modules listed in this file indicate which modules have unmet</span><br><span style="color: hsl(120, 100%, 40%);">+dependencies, a present conflict, or have been disabled by the user in the</span><br><span style="color: hsl(120, 100%, 40%);">+menuselect interface. Compiler Flags can also be set in the menuselect</span><br><span style="color: hsl(120, 100%, 40%);">+interface. In this case, the resulting file contains which CFLAGS are in use,</span><br><span style="color: hsl(120, 100%, 40%);">+not which ones are not in use.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+If you would like to save your choices and have them applied against all</span><br><span style="color: hsl(120, 100%, 40%);">+builds, the file can be copied to '~/.asterisk.makeopts' or</span><br><span style="color: hsl(120, 100%, 40%);">+'/etc/asterisk.makeopts'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Build Process (Makefile targets):</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The 'valgrind' and 'dont-optimize' targets have been removed; their functionality</span><br><span style="color: hsl(120, 100%, 40%);">+is available by enabling the DONT_OPTIMIZE setting in the 'Compiler Flags' menu</span><br><span style="color: hsl(120, 100%, 40%);">+in the menuselect tool.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+It is now possible to run most make targets against a single subdirectory; from</span><br><span style="color: hsl(120, 100%, 40%);">+the top level directory, for example, 'make channels' will run 'make all' in the</span><br><span style="color: hsl(120, 100%, 40%);">+'channels' subdirectory. This also is true for 'clean', 'distclean' and 'depend'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Sound (prompt) and Music On Hold files:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Beginning with Asterisk 1.4, the sound files and music on hold files supplied for</span><br><span style="color: hsl(120, 100%, 40%);">+use with Asterisk have been replaced with new versions produced from high quality</span><br><span style="color: hsl(120, 100%, 40%);">+master recordings, and are available in three languages (English, French and</span><br><span style="color: hsl(120, 100%, 40%);">+Spanish) and in five formats (WAV (uncompressed), mu-Law, a-Law, GSM and G.729).</span><br><span style="color: hsl(120, 100%, 40%);">+In addition, the music on hold files provided by opsound.org Music are now available</span><br><span style="color: hsl(120, 100%, 40%);">+in the same five formats, but no longer available in MP3 format.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The Asterisk 1.4 tarball packages will only include English prompts in GSM format,</span><br><span style="color: hsl(120, 100%, 40%);">+(as were supplied with previous releases) and the opsound.org MOH files in WAV format.</span><br><span style="color: hsl(120, 100%, 40%);">+All of the other variations can be installed by running 'make menuselect' and</span><br><span style="color: hsl(120, 100%, 40%);">+selecting the packages you wish to install; when you run 'make install', those</span><br><span style="color: hsl(120, 100%, 40%);">+packages will be downloaded and installed along with the standard files included</span><br><span style="color: hsl(120, 100%, 40%);">+in the tarball.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+If for some reason you expect to not have Internet access at the time you will be</span><br><span style="color: hsl(120, 100%, 40%);">+running 'make install', you can make your package selections using menuselect and</span><br><span style="color: hsl(120, 100%, 40%);">+then run 'make sounds' to download (only) the sound packages; this will leave the</span><br><span style="color: hsl(120, 100%, 40%);">+sound packages in the 'sounds' subdirectory to be used later during installation.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+WARNING: Asterisk 1.4 supports a new layout for sound files in multiple languages;</span><br><span style="color: hsl(120, 100%, 40%);">+instead of the alternate-language files being stored in subdirectories underneath</span><br><span style="color: hsl(120, 100%, 40%);">+the existing files (for French, that would be digits/fr, letters/fr, phonetic/fr,</span><br><span style="color: hsl(120, 100%, 40%);">+etc.) the new layout creates one directory under /var/lib/asterisk/sounds for the</span><br><span style="color: hsl(120, 100%, 40%);">+language itself, then places all the sound files for that language under that</span><br><span style="color: hsl(120, 100%, 40%);">+directory and its subdirectories. This is the layout that will be created if you</span><br><span style="color: hsl(120, 100%, 40%);">+select non-English languages to be installed via menuselect, HOWEVER Asterisk does</span><br><span style="color: hsl(120, 100%, 40%);">+not default to this layout and will not find the files in the places it expects them</span><br><span style="color: hsl(120, 100%, 40%);">+to be. If you wish to use this layout, make sure you put 'languageprefix=yes' in your</span><br><span style="color: hsl(120, 100%, 40%);">+/etc/asterisk/asterisk.conf file, so that Asterisk will know how the files were</span><br><span style="color: hsl(120, 100%, 40%);">+installed.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+PBX Core:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The (very old and undocumented) ability to use BYEXTENSION for dialing</span><br><span style="color: hsl(120, 100%, 40%);">+ instead of ${EXTEN} has been removed.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Builtin (res_features) transfer functionality attempts to use the context</span><br><span style="color: hsl(120, 100%, 40%);">+ defined in TRANSFER_CONTEXT variable of the transferer channel first. If</span><br><span style="color: hsl(120, 100%, 40%);">+ not set, it uses the transferee variable. If not set in any channel, it will</span><br><span style="color: hsl(120, 100%, 40%);">+ attempt to use the last non macro context. If not possible, it will default</span><br><span style="color: hsl(120, 100%, 40%);">+ to the current context.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The autofallthrough setting introduced in Asterisk 1.2 now defaults to 'yes';</span><br><span style="color: hsl(120, 100%, 40%);">+ if your dialplan relies on the ability to 'run off the end' of an extension</span><br><span style="color: hsl(120, 100%, 40%);">+ and wait for a new extension without using WaitExten() to accomplish that,</span><br><span style="color: hsl(120, 100%, 40%);">+ you will need set autofallthrough to 'no' in your extensions.conf file.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Command Line Interface:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* 'show channels concise', designed to be used by applications that will parse</span><br><span style="color: hsl(120, 100%, 40%);">+ its output, previously used ':' characters to separate fields. However, some</span><br><span style="color: hsl(120, 100%, 40%);">+ of those fields can easily contain that character, making the output not</span><br><span style="color: hsl(120, 100%, 40%);">+ parseable. The delimiter has been changed to '!'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Applications:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* In previous Asterisk releases, many applications would jump to priority n+101</span><br><span style="color: hsl(120, 100%, 40%);">+ to indicate some kind of status or error condition. This functionality was</span><br><span style="color: hsl(120, 100%, 40%);">+ marked deprecated in Asterisk 1.2. An option to disable it was provided with</span><br><span style="color: hsl(120, 100%, 40%);">+ the default value set to 'on'. The default value for the global priority</span><br><span style="color: hsl(120, 100%, 40%);">+ jumping option is now 'off'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The applications Cut, Sort, DBGet, DBPut, SetCIDNum, SetCIDName, SetRDNIS,</span><br><span style="color: hsl(120, 100%, 40%);">+ AbsoluteTimeout, DigitTimeout, ResponseTimeout, SetLanguage, GetGroupCount,</span><br><span style="color: hsl(120, 100%, 40%);">+ and GetGroupMatchCount were all deprecated in version 1.2, and therefore have</span><br><span style="color: hsl(120, 100%, 40%);">+ been removed in this version. You should use the equivalent dialplan</span><br><span style="color: hsl(120, 100%, 40%);">+ function in places where you have previously used one of these applications.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The application SetGlobalVar has been deprecated. You should replace uses</span><br><span style="color: hsl(120, 100%, 40%);">+ of this application with the following combination of Set and GLOBAL():</span><br><span style="color: hsl(120, 100%, 40%);">+ Set(GLOBAL(name)=value). You may also access global variables exclusively by</span><br><span style="color: hsl(120, 100%, 40%);">+ using the GLOBAL() dialplan function, instead of relying on variable</span><br><span style="color: hsl(120, 100%, 40%);">+ interpolation falling back to globals when no channel variable is set.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The application SetVar has been renamed to Set. The syntax SetVar was marked</span><br><span style="color: hsl(120, 100%, 40%);">+ deprecated in version 1.2 and is no longer recognized in this version. The</span><br><span style="color: hsl(120, 100%, 40%);">+ use of Set with multiple argument pairs has also been deprecated. Please</span><br><span style="color: hsl(120, 100%, 40%);">+ separate each name/value pair into its own dialplan line.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* app_read has been updated to use the newer options codes, using "skip" or</span><br><span style="color: hsl(120, 100%, 40%);">+ "noanswer" will not work. Use s or n. Also there is a new feature i, for</span><br><span style="color: hsl(120, 100%, 40%);">+ using indication tones, so typing in skip would give you unexpected results.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* OSPAuth is added to authenticate OSP tokens in in_bound call setup messages.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The CONNECT event in the queue_log from app_queue now has a second field</span><br><span style="color: hsl(120, 100%, 40%);">+ in addition to the holdtime field. It contains the unique ID of the</span><br><span style="color: hsl(120, 100%, 40%);">+ queue member channel that is taking the call. This is useful when trying</span><br><span style="color: hsl(120, 100%, 40%);">+ to link recording filenames back to a particular call from the queue.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The old/current behavior of app_queue has a serial type behavior</span><br><span style="color: hsl(120, 100%, 40%);">+ in that the queue will make all waiting callers wait in the queue</span><br><span style="color: hsl(120, 100%, 40%);">+ even if there is more than one available member ready to take</span><br><span style="color: hsl(120, 100%, 40%);">+ calls until the head caller is connected with the member they</span><br><span style="color: hsl(120, 100%, 40%);">+ were trying to get to. The next waiting caller in line then</span><br><span style="color: hsl(120, 100%, 40%);">+ becomes the head caller, and they are then connected with the</span><br><span style="color: hsl(120, 100%, 40%);">+ next available member and all available members and waiting callers</span><br><span style="color: hsl(120, 100%, 40%);">+ waits while this happens. This cycle continues until there are</span><br><span style="color: hsl(120, 100%, 40%);">+ no more available members or waiting callers, whichever comes first.</span><br><span style="color: hsl(120, 100%, 40%);">+ The new behavior, enabled by setting autofill=yes in queues.conf</span><br><span style="color: hsl(120, 100%, 40%);">+ either at the [general] level to default for all queues or</span><br><span style="color: hsl(120, 100%, 40%);">+ to set on a per-queue level, makes sure that when the waiting</span><br><span style="color: hsl(120, 100%, 40%);">+ callers are connecting with available members in a parallel fashion</span><br><span style="color: hsl(120, 100%, 40%);">+ until there are no more available members or no more waiting callers,</span><br><span style="color: hsl(120, 100%, 40%);">+ whichever comes first. This is probably more along the lines of how</span><br><span style="color: hsl(120, 100%, 40%);">+ one would expect a queue should work and in most cases, you will want</span><br><span style="color: hsl(120, 100%, 40%);">+ to enable this new behavior. If you do not specify or comment out this</span><br><span style="color: hsl(120, 100%, 40%);">+ option, it will default to "no" to keep backward compatability with the old</span><br><span style="color: hsl(120, 100%, 40%);">+ behavior.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Queues depend on the channel driver reporting the proper state</span><br><span style="color: hsl(120, 100%, 40%);">+ for each member of the queue. To get proper signalling on</span><br><span style="color: hsl(120, 100%, 40%);">+ queue members that use the SIP channel driver, you need to</span><br><span style="color: hsl(120, 100%, 40%);">+ enable a call limit (could be set to a high value so it</span><br><span style="color: hsl(120, 100%, 40%);">+ is not put into action) and also make sure that both inbound</span><br><span style="color: hsl(120, 100%, 40%);">+ and outbound calls are accounted for.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ Example:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ [general]</span><br><span style="color: hsl(120, 100%, 40%);">+ limitonpeer = yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ [peername]</span><br><span style="color: hsl(120, 100%, 40%);">+ type=friend</span><br><span style="color: hsl(120, 100%, 40%);">+ call-limit=10</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The app_queue application now has the ability to use MixMonitor to</span><br><span style="color: hsl(120, 100%, 40%);">+ record conversations queue members are having with queue callers. Please</span><br><span style="color: hsl(120, 100%, 40%);">+ see configs/queues.conf.sample for more information on this option.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The app_queue application strategy called 'roundrobin' has been deprecated</span><br><span style="color: hsl(120, 100%, 40%);">+ for this release. Users are encouraged to use 'rrmemory' instead, since it</span><br><span style="color: hsl(120, 100%, 40%);">+ provides more 'true' round-robin call delivery. For the Asterisk 1.6 release,</span><br><span style="color: hsl(120, 100%, 40%);">+ 'rrmemory' will be renamed 'roundrobin'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The app_queue application option called 'monitor-join' has been deprecated</span><br><span style="color: hsl(120, 100%, 40%);">+ for this release. Users are encouraged to use 'monitor-type=mixmonitor' instead,</span><br><span style="color: hsl(120, 100%, 40%);">+ since it provides the same functionality but is not dependent on soxmix or some</span><br><span style="color: hsl(120, 100%, 40%);">+ other external program in order to mix the audio.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* app_meetme: The 'm' option (monitor) is renamed to 'l' (listen only), and</span><br><span style="color: hsl(120, 100%, 40%);">+ the 'm' option now provides the functionality of "initially muted".</span><br><span style="color: hsl(120, 100%, 40%);">+ In practice, most existing dialplans using the 'm' flag should not notice</span><br><span style="color: hsl(120, 100%, 40%);">+ any difference, unless the keypad menu is enabled, allowing the user</span><br><span style="color: hsl(120, 100%, 40%);">+ to unmute themsleves.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* ast_play_and_record would attempt to cancel the recording if a DTMF</span><br><span style="color: hsl(120, 100%, 40%);">+ '0' was received. This behavior was not documented in most of the</span><br><span style="color: hsl(120, 100%, 40%);">+ applications that used ast_play_and_record and the return codes from</span><br><span style="color: hsl(120, 100%, 40%);">+ ast_play_and_record weren't checked for properly.</span><br><span style="color: hsl(120, 100%, 40%);">+ ast_play_and_record has been changed so that '0' no longer cancels a</span><br><span style="color: hsl(120, 100%, 40%);">+ recording. If you want to allow DTMF digits to cancel an</span><br><span style="color: hsl(120, 100%, 40%);">+ in-progress recording use ast_play_and_record_full which allows you</span><br><span style="color: hsl(120, 100%, 40%);">+ to specify which DTMF digits can be used to accept a recording and</span><br><span style="color: hsl(120, 100%, 40%);">+ which digits can be used to cancel a recording.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* ast_app_messagecount has been renamed to ast_app_inboxcount. There is now a</span><br><span style="color: hsl(120, 100%, 40%);">+ new ast_app_messagecount function which takes a single context/mailbox/folder</span><br><span style="color: hsl(120, 100%, 40%);">+ mailbox specification and returns the message count for that folder only.</span><br><span style="color: hsl(120, 100%, 40%);">+ This addresses the deficiency of not being able to count the number of</span><br><span style="color: hsl(120, 100%, 40%);">+ messages in folders other than INBOX and Old.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The exit behavior of the AGI applications has changed. Previously, when</span><br><span style="color: hsl(120, 100%, 40%);">+ a connection to an AGI server failed, the application would cause the channel</span><br><span style="color: hsl(120, 100%, 40%);">+ to immediately stop dialplan execution and hangup. Now, the only time that</span><br><span style="color: hsl(120, 100%, 40%);">+ the AGI applications will cause the channel to stop dialplan execution is</span><br><span style="color: hsl(120, 100%, 40%);">+ when the channel itself requests hangup. The AGI applications now set an</span><br><span style="color: hsl(120, 100%, 40%);">+ AGISTATUS variable which will allow you to find out whether running the AGI</span><br><span style="color: hsl(120, 100%, 40%);">+ was successful or not.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ Previously, there was no way to handle the case where Asterisk was unable to</span><br><span style="color: hsl(120, 100%, 40%);">+ locally execute an AGI script for some reason. In this case, dialplan</span><br><span style="color: hsl(120, 100%, 40%);">+ execution will continue as it did before, but the AGISTATUS variable will be</span><br><span style="color: hsl(120, 100%, 40%);">+ set to "FAILURE".</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ A locally executed AGI script can now exit with a non-zero exit code and this</span><br><span style="color: hsl(120, 100%, 40%);">+ failure will be detected by Asterisk. If an AGI script exits with a non-zero</span><br><span style="color: hsl(120, 100%, 40%);">+ exit code, the AGISTATUS variable will be set to "FAILURE" as opposed to</span><br><span style="color: hsl(120, 100%, 40%);">+ "SUCCESS".</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* app_voicemail: The ODBC_STORAGE capability now requires the extended table format</span><br><span style="color: hsl(120, 100%, 40%);">+ previously used only by EXTENDED_ODBC_STORAGE. This means that you will need to update</span><br><span style="color: hsl(120, 100%, 40%);">+ your table format using the schema provided in doc/odbcstorage.txt</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* app_waitforsilence: Fixes have been made to this application which changes the</span><br><span style="color: hsl(120, 100%, 40%);">+ default behavior with how quickly it returns. You can maintain "old-style" behavior</span><br><span style="color: hsl(120, 100%, 40%);">+ with the addition/use of a third "timeout" parameter.</span><br><span style="color: hsl(120, 100%, 40%);">+ Please consult the application documentation and make changes to your dialplan</span><br><span style="color: hsl(120, 100%, 40%);">+ if appropriate.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Manager:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* After executing the 'status' manager action, the "Status" manager events</span><br><span style="color: hsl(120, 100%, 40%);">+ included the header "CallerID:" which was actually only the CallerID number,</span><br><span style="color: hsl(120, 100%, 40%);">+ and not the full CallerID string. This header has been renamed to</span><br><span style="color: hsl(120, 100%, 40%);">+ "CallerIDNum". For compatibility purposes, the CallerID parameter will remain</span><br><span style="color: hsl(120, 100%, 40%);">+ until after the release of 1.4, when it will be removed. Please use the time</span><br><span style="color: hsl(120, 100%, 40%);">+ during the 1.4 release to make this transition.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The AgentConnect event now has an additional field called "BridgedChannel"</span><br><span style="color: hsl(120, 100%, 40%);">+ which contains the unique ID of the queue member channel that is taking the</span><br><span style="color: hsl(120, 100%, 40%);">+ call. This is useful when trying to link recording filenames back to</span><br><span style="color: hsl(120, 100%, 40%);">+ a particular call from the queue.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* app_userevent has been modified to always send Event: UserEvent with the</span><br><span style="color: hsl(120, 100%, 40%);">+ additional header UserEvent: <userspec>. Also, the Channel and UniqueID</span><br><span style="color: hsl(120, 100%, 40%);">+ headers are not automatically sent, unless you specify them as separate</span><br><span style="color: hsl(120, 100%, 40%);">+ arguments. Please see the application help for the new syntax.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* app_meetme: Mute and Unmute events are now reported via the Manager API.</span><br><span style="color: hsl(120, 100%, 40%);">+ Native Manager API commands MeetMeMute and MeetMeUnmute are provided, which</span><br><span style="color: hsl(120, 100%, 40%);">+ are easier to use than "Action Command:". The MeetMeStopTalking event has</span><br><span style="color: hsl(120, 100%, 40%);">+ also been deprecated in favor of the already existing MeetmeTalking event</span><br><span style="color: hsl(120, 100%, 40%);">+ with a "Status" of "on" or "off" added.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* OriginateFailure and OriginateSuccess events were replaced by event</span><br><span style="color: hsl(120, 100%, 40%);">+ OriginateResponse with a header named "Response" to indicate success or</span><br><span style="color: hsl(120, 100%, 40%);">+ failure</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Variables:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The builtin variables ${CALLERID}, ${CALLERIDNAME}, ${CALLERIDNUM},</span><br><span style="color: hsl(120, 100%, 40%);">+ ${CALLERANI}, ${DNID}, ${RDNIS}, ${DATETIME}, ${TIMESTAMP}, ${ACCOUNTCODE},</span><br><span style="color: hsl(120, 100%, 40%);">+ and ${LANGUAGE} have all been deprecated in favor of their related dialplan</span><br><span style="color: hsl(120, 100%, 40%);">+ functions. You are encouraged to move towards the associated dialplan</span><br><span style="color: hsl(120, 100%, 40%);">+ function, as these variables will be removed in a future release.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The CDR-CSV variables uniqueid, userfield, and basing time on GMT are now</span><br><span style="color: hsl(120, 100%, 40%);">+ adjustable from cdr.conf, instead of recompiling.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* OSP applications exports several new variables, ${OSPINHANDLE},</span><br><span style="color: hsl(120, 100%, 40%);">+ ${OSPOUTHANDLE}, ${OSPINTOKEN}, ${OSPOUTTOKEN}, ${OSPCALLING},</span><br><span style="color: hsl(120, 100%, 40%);">+ ${OSPINTIMELIMIT}, and ${OSPOUTTIMELIMIT}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Builtin transfer functionality sets the variable ${TRANSFERERNAME} in the new</span><br><span style="color: hsl(120, 100%, 40%);">+ created channel. This variables holds the channel name of the transferer.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The dial plan variable PRI_CAUSE will be removed from future versions</span><br><span style="color: hsl(120, 100%, 40%);">+ of Asterisk.</span><br><span style="color: hsl(120, 100%, 40%);">+ It is replaced by adding a cause value to the hangup() application.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Functions:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The function ${CHECK_MD5()} has been deprecated in favor of using an</span><br><span style="color: hsl(120, 100%, 40%);">+ expression: $[${MD5(<string>)} = ${saved_md5}].</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The 'builtin' functions that used to be combined in pbx_functions.so are</span><br><span style="color: hsl(120, 100%, 40%);">+ now built as separate modules. If you are not using 'autoload=yes' in your</span><br><span style="color: hsl(120, 100%, 40%);">+ modules.conf file then you will need to explicitly load the modules that</span><br><span style="color: hsl(120, 100%, 40%);">+ contain the functions you want to use.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The ENUMLOOKUP() function with the 'c' option (for counting the number of</span><br><span style="color: hsl(120, 100%, 40%);">+ records), but the lookup fails to match any records, the returned value will</span><br><span style="color: hsl(120, 100%, 40%);">+ now be "0" instead of blank.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The REALTIME() function is now available in version 1.4 and app_realtime has</span><br><span style="color: hsl(120, 100%, 40%);">+ been deprecated in favor of the new function. app_realtime will be removed</span><br><span style="color: hsl(120, 100%, 40%);">+ completely with the version 1.6 release so please take the time between</span><br><span style="color: hsl(120, 100%, 40%);">+ releases to make any necessary changes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The QUEUEAGENTCOUNT() function has been deprecated in favor of</span><br><span style="color: hsl(120, 100%, 40%);">+ QUEUE_MEMBER_COUNT().</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The IAX2 channel:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* It is possible that previous configurations depended on the order in which</span><br><span style="color: hsl(120, 100%, 40%);">+ peers and users were specified in iax.conf for forcing the order in which</span><br><span style="color: hsl(120, 100%, 40%);">+ chan_iax2 matched against them. This behavior is going away and is considered</span><br><span style="color: hsl(120, 100%, 40%);">+ deprecated in this version. Avoid having ambiguous peer and user entries and</span><br><span style="color: hsl(120, 100%, 40%);">+ to make things easy on yourself, always set the "username" option for users</span><br><span style="color: hsl(120, 100%, 40%);">+ so that the remote end can match on that exactly instead of trying to infer</span><br><span style="color: hsl(120, 100%, 40%);">+ which user you want based on host.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ If you would like to go ahead and use the new behavior which doesn't use the</span><br><span style="color: hsl(120, 100%, 40%);">+ order in the config file to influence matching order, then change the</span><br><span style="color: hsl(120, 100%, 40%);">+ MAX_PEER_BUCKETS define in chan_iax2.c to a value greater than one. An</span><br><span style="color: hsl(120, 100%, 40%);">+ example is provided there. By changing this, you will get *much* better</span><br><span style="color: hsl(120, 100%, 40%);">+ performance on systems that do a lot of peer and user lookups as they will be</span><br><span style="color: hsl(120, 100%, 40%);">+ stored in memory in a much more efficient manner.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The "mailboxdetail" option has been deprecated. Previously, if this option</span><br><span style="color: hsl(120, 100%, 40%);">+ was not enabled, the 2 byte MSGCOUNT information element would be set to all</span><br><span style="color: hsl(120, 100%, 40%);">+ 1's to indicate there there is some number of messages waiting. With this</span><br><span style="color: hsl(120, 100%, 40%);">+ option enabled, the number of new messages were placed in one byte and the</span><br><span style="color: hsl(120, 100%, 40%);">+ number of old messages are placed in the other. This is now the default</span><br><span style="color: hsl(120, 100%, 40%);">+ (and the only) behavior.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The SIP channel:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The "incominglimit" setting is replaced by the "call-limit" setting in</span><br><span style="color: hsl(120, 100%, 40%);">+ sip.conf.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* OSP support code is removed from SIP channel to OSP applications. ospauth</span><br><span style="color: hsl(120, 100%, 40%);">+ option in sip.conf is removed to osp.conf as authpolicy. allowguest option</span><br><span style="color: hsl(120, 100%, 40%);">+ in sip.conf cannot be set as osp anymore.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The Asterisk RTP stack has been changed in regards to RFC2833 reception</span><br><span style="color: hsl(120, 100%, 40%);">+ and transmission. Packets will now be sent with proper duration instead of all</span><br><span style="color: hsl(120, 100%, 40%);">+ at once. If you are receiving calls from a pre-1.4 Asterisk installation you</span><br><span style="color: hsl(120, 100%, 40%);">+ will want to turn on the rfc2833compensate option. Without this option your</span><br><span style="color: hsl(120, 100%, 40%);">+ DTMF reception may act poorly.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The $SIPUSERAGENT dialplan variable is deprecated and will be removed</span><br><span style="color: hsl(120, 100%, 40%);">+ in coming versions of Asterisk. Please use the dialplan function</span><br><span style="color: hsl(120, 100%, 40%);">+ SIPCHANINFO(useragent) instead.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The ALERT_INFO dialplan variable is deprecated and will be removed</span><br><span style="color: hsl(120, 100%, 40%);">+ in coming versions of Asterisk. Please use the dialplan application</span><br><span style="color: hsl(120, 100%, 40%);">+ sipaddheader() to add the "Alert-Info" header to the outbound invite.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The "canreinvite" option has changed. canreinvite=yes used to disable</span><br><span style="color: hsl(120, 100%, 40%);">+ re-invites if you had NAT=yes. In 1.4, you need to set canreinvite=nonat</span><br><span style="color: hsl(120, 100%, 40%);">+ to disable re-invites when NAT=yes. This is propably what you want.</span><br><span style="color: hsl(120, 100%, 40%);">+ The settings are now: "yes", "no", "nonat", "update". Please consult</span><br><span style="color: hsl(120, 100%, 40%);">+ sip.conf.sample for detailed information.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The Zap channel:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Support for MFC/R2 has been removed, as it has not been functional for some</span><br><span style="color: hsl(120, 100%, 40%);">+ time and it has no maintainer.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The Agent channel:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Callback mode (AgentCallbackLogin) is now deprecated, since the entire function</span><br><span style="color: hsl(120, 100%, 40%);">+ it provided can be done using dialplan logic, without requiring additional</span><br><span style="color: hsl(120, 100%, 40%);">+ channel and module locks (which frequently caused deadlocks). An example of</span><br><span style="color: hsl(120, 100%, 40%);">+ how to do this using AEL dialplan is in doc/queues-with-callback-members.txt.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The G726-32 codec:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* It has been determined that previous versions of Asterisk used the wrong codeword</span><br><span style="color: hsl(120, 100%, 40%);">+ packing order for G726-32 data. This version supports both available packing orders,</span><br><span style="color: hsl(120, 100%, 40%);">+ and can transcode between them. It also now selects the proper order when</span><br><span style="color: hsl(120, 100%, 40%);">+ negotiating with a SIP peer based on the codec name supplied in the SDP. However,</span><br><span style="color: hsl(120, 100%, 40%);">+ there are existing devices that improperly request one order and then use another;</span><br><span style="color: hsl(120, 100%, 40%);">+ Sipura and Grandstream ATAs are known to do this, and there may be others. To</span><br><span style="color: hsl(120, 100%, 40%);">+ be able to continue to use these devices with this version of Asterisk and the</span><br><span style="color: hsl(120, 100%, 40%);">+ G726-32 codec, a configuration parameter called 'g726nonstandard' has been added</span><br><span style="color: hsl(120, 100%, 40%);">+ to sip.conf, so that Asterisk can use the packing order expected by the device (even</span><br><span style="color: hsl(120, 100%, 40%);">+ though it requested a different order). In addition, the internal format number for</span><br><span style="color: hsl(120, 100%, 40%);">+ G726-32 has been changed, and the old number is now assigned to AAL2-G726-32. The</span><br><span style="color: hsl(120, 100%, 40%);">+ result of this is that this version of Asterisk will be able to interoperate over</span><br><span style="color: hsl(120, 100%, 40%);">+ IAX2 with older versions of Asterisk, as long as this version is told to allow</span><br><span style="color: hsl(120, 100%, 40%);">+ 'g726aal2' instead of 'g726' as the codec for the call.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Installation:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* On BSD systems, the installation directories have changed to more "FreeBSDish"</span><br><span style="color: hsl(120, 100%, 40%);">+ directories. On startup, Asterisk will look for the main configuration in</span><br><span style="color: hsl(120, 100%, 40%);">+ /usr/local/etc/asterisk/asterisk.conf</span><br><span style="color: hsl(120, 100%, 40%);">+ If you have an old installation, you might want to remove the binaries and</span><br><span style="color: hsl(120, 100%, 40%);">+ move the configuration files to the new locations. The following directories</span><br><span style="color: hsl(120, 100%, 40%);">+ are now default:</span><br><span style="color: hsl(120, 100%, 40%);">+ ASTLIBDIR /usr/local/lib/asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+ ASTVARLIBDIR /usr/local/share/asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+ ASTETCDIR /usr/local/etc/asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+ ASTBINDIR /usr/local/bin/asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+ ASTSBINDIR /usr/local/sbin/asterisk</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Music on Hold:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The music on hold handling has been changed in some significant ways in hopes</span><br><span style="color: hsl(120, 100%, 40%);">+ to make it work in a way that is much less confusing to users. Behavior will</span><br><span style="color: hsl(120, 100%, 40%);">+ not change if the same configuration is used from older versions of Asterisk.</span><br><span style="color: hsl(120, 100%, 40%);">+ However, there are some new configuration options that will make things work</span><br><span style="color: hsl(120, 100%, 40%);">+ in a way that makes more sense.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ Previously, many of the channel drivers had an option called "musicclass" or</span><br><span style="color: hsl(120, 100%, 40%);">+ something similar. This option set what music on hold class this channel</span><br><span style="color: hsl(120, 100%, 40%);">+ would *hear* when put on hold. Some people expected (with good reason) that</span><br><span style="color: hsl(120, 100%, 40%);">+ this option was to configure what music on hold class to play when putting</span><br><span style="color: hsl(120, 100%, 40%);">+ the bridged channel on hold. This option has now been deprecated.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ Two new music on hold related configuration options for channel drivers have</span><br><span style="color: hsl(120, 100%, 40%);">+ been introduced. Some channel drivers support both options, some just one,</span><br><span style="color: hsl(120, 100%, 40%);">+ and some support neither of them. Check the sample configuration files to see</span><br><span style="color: hsl(120, 100%, 40%);">+ which options apply to which channel driver.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ The "mohsuggest" option specifies which music on hold class to suggest to the</span><br><span style="color: hsl(120, 100%, 40%);">+ bridged channel when putting them on hold. The only way that this class can</span><br><span style="color: hsl(120, 100%, 40%);">+ be overridden is if the bridged channel has a specific music class set that</span><br><span style="color: hsl(120, 100%, 40%);">+ was done in the dialplan using Set(CHANNEL(musicclass)=something).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ The "mohinterpret" option is similar to the old "musicclass" option. It</span><br><span style="color: hsl(120, 100%, 40%);">+ specifies which music on hold class this channel would like to listen to when</span><br><span style="color: hsl(120, 100%, 40%);">+ put on hold. This music class is only effective if this channel has no music</span><br><span style="color: hsl(120, 100%, 40%);">+ class set on it from the dialplan and the bridged channel putting this one on</span><br><span style="color: hsl(120, 100%, 40%);">+ hold had no "mohsuggest" setting.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ The IAX2 and Zap channel drivers have an additional feature for the</span><br><span style="color: hsl(120, 100%, 40%);">+ "mohinterpret" option. If this option is set to "passthrough", then these</span><br><span style="color: hsl(120, 100%, 40%);">+ channel drivers will pass through the HOLD message in signalling instead of</span><br><span style="color: hsl(120, 100%, 40%);">+ starting music on hold on the channel. An example for how this would be</span><br><span style="color: hsl(120, 100%, 40%);">+ useful is in an enterprise network of Asterisk servers. When one phone on one</span><br><span style="color: hsl(120, 100%, 40%);">+ server puts a phone on a different server on hold, the remote server will be</span><br><span style="color: hsl(120, 100%, 40%);">+ responsible for playing the hold music to its local phone that was put on</span><br><span style="color: hsl(120, 100%, 40%);">+ hold instead of the far end server across the network playing the music.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CDR Records:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The behavior of the "clid" field of the CDR has always been that it will</span><br><span style="color: hsl(120, 100%, 40%);">+ contain the callerid ANI if it is set, or the callerid number if ANI was not</span><br><span style="color: hsl(120, 100%, 40%);">+ set. When using the "callerid" option for various channel drivers, some</span><br><span style="color: hsl(120, 100%, 40%);">+ would set ANI and some would not. This has been cleared up so that all</span><br><span style="color: hsl(120, 100%, 40%);">+ channel drivers set ANI. If you would like to change the callerid number</span><br><span style="color: hsl(120, 100%, 40%);">+ on the channel from the dialplan and have that change also show up in the</span><br><span style="color: hsl(120, 100%, 40%);">+ CDR, then you *must* set CALLERID(ANI) as well as CALLERID(num).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+API:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* There are some API functions that were not previously prefixed with the 'ast_'</span><br><span style="color: hsl(120, 100%, 40%);">+ prefix but now are; these include the ADSI, ODBC and AGI interfaces. If you</span><br><span style="color: hsl(120, 100%, 40%);">+ have a module that uses the services provided by res_adsi, res_odbc, or</span><br><span style="color: hsl(120, 100%, 40%);">+ res_agi, you will need to add ast_ prefixes to the functions that you call</span><br><span style="color: hsl(120, 100%, 40%);">+ from those modules.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Formats:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* format_wav: The GAIN preprocessor definition has been changed from 2 to 0</span><br><span style="color: hsl(120, 100%, 40%);">+ in Asterisk 1.4. This change was made in response to user complaints of</span><br><span style="color: hsl(120, 100%, 40%);">+ choppiness or the clipping of loud signal peaks. The GAIN preprocessor</span><br><span style="color: hsl(120, 100%, 40%);">+ definition will be retained in Asterisk 1.4, but will be removed in a</span><br><span style="color: hsl(120, 100%, 40%);">+ future release. The use of GAIN for the increasing of voicemail message</span><br><span style="color: hsl(120, 100%, 40%);">+ volume should use the 'volgain' option in voicemail.conf</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+From 1.0 to 1.2:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Compiling:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The Asterisk 1.2 source code now uses C language features</span><br><span style="color: hsl(120, 100%, 40%);">+ supported only by 'modern' C compilers. Generally, this means GCC</span><br><span style="color: hsl(120, 100%, 40%);">+ version 3.0 or higher, although some GCC 2.96 releases will also</span><br><span style="color: hsl(120, 100%, 40%);">+ work. Some non-GCC compilers that support C99 and the common GCC</span><br><span style="color: hsl(120, 100%, 40%);">+ extensions (including anonymous structures and unions) will also</span><br><span style="color: hsl(120, 100%, 40%);">+ work. All releases of GCC 2.95 do _not_ have the requisite feature</span><br><span style="color: hsl(120, 100%, 40%);">+ support; systems using that compiler will need to be upgraded to</span><br><span style="color: hsl(120, 100%, 40%);">+ a more recent compiler release.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Dialplan Expressions:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The dialplan expression parser (which handles $[ ... ] constructs)</span><br><span style="color: hsl(120, 100%, 40%);">+ has gone through a major upgrade, but has one incompatible change:</span><br><span style="color: hsl(120, 100%, 40%);">+ spaces are no longer required around expression operators, including</span><br><span style="color: hsl(120, 100%, 40%);">+ string comparisons. However, you can now use quoting to keep strings</span><br><span style="color: hsl(120, 100%, 40%);">+ together for comparison. For more details, please read the</span><br><span style="color: hsl(120, 100%, 40%);">+ doc/README.variables file, and check over your dialplan for possible</span><br><span style="color: hsl(120, 100%, 40%);">+ problems.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Agents:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The default for ackcall has been changed to "no" instead of "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+ because of a bug which caused the "yes" behavior to generally act like</span><br><span style="color: hsl(120, 100%, 40%);">+ "no". You may need to adjust the value if your agents behave</span><br><span style="color: hsl(120, 100%, 40%);">+ differently than you expect with respect to acknowledgement.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The AgentCallBackLogin application now requires a second '|' before</span><br><span style="color: hsl(120, 100%, 40%);">+ specifying an extension@context. This is to distinguish the options</span><br><span style="color: hsl(120, 100%, 40%);">+ string from the extension, so that they do not conflict. See</span><br><span style="color: hsl(120, 100%, 40%);">+ 'show application AgentCallbackLogin' for more details.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Parking:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Parking behavior has changed slightly; when a parked call times out,</span><br><span style="color: hsl(120, 100%, 40%);">+ Asterisk will attempt to deliver the call back to the extension that</span><br><span style="color: hsl(120, 100%, 40%);">+ parked it, rather than the 's' extension. If that extension is busy</span><br><span style="color: hsl(120, 100%, 40%);">+ or unavailable, the parked call will be lost.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Dialing:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The Caller*ID of the outbound leg is now the extension that was</span><br><span style="color: hsl(120, 100%, 40%);">+ called, rather than the Caller*ID of the inbound leg of the call. The</span><br><span style="color: hsl(120, 100%, 40%);">+ "o" flag for Dial can be used to restore the original behavior if</span><br><span style="color: hsl(120, 100%, 40%);">+ desired. Note that if you are looking for the originating callerid</span><br><span style="color: hsl(120, 100%, 40%);">+ from the manager event, there is a new manager event "Dial" which</span><br><span style="color: hsl(120, 100%, 40%);">+ provides the source and destination channels and callerid.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+IAX:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The naming convention for IAX channels has changed in two ways:</span><br><span style="color: hsl(120, 100%, 40%);">+ 1. The call number follows a "-" rather than a "/" character.</span><br><span style="color: hsl(120, 100%, 40%);">+ 2. The name of the channel has been simplified to IAX2/peer-callno,</span><br><span style="color: hsl(120, 100%, 40%);">+ rather than IAX2/peer@peer-callno or even IAX2/peer@peer/callno.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+SIP:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The global option "port" in 1.0.X that is used to set which port to</span><br><span style="color: hsl(120, 100%, 40%);">+ bind to has been changed to "bindport" to be more consistent with</span><br><span style="color: hsl(120, 100%, 40%);">+ the other channel drivers and to avoid confusion with the "port"</span><br><span style="color: hsl(120, 100%, 40%);">+ option for users/peers.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The "Registry" event now uses "Username" rather than "User" for</span><br><span style="color: hsl(120, 100%, 40%);">+ consistency with IAX.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Applications:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* With the addition of dialplan functions (which operate similarly</span><br><span style="color: hsl(120, 100%, 40%);">+ to variables), the SetVar application has been renamed to Set.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The CallerPres application has been removed. Use SetCallerPres</span><br><span style="color: hsl(120, 100%, 40%);">+ instead. It accepts both numeric and symbolic names.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The applications GetGroupCount, GetGroupMatchCount, SetGroup, and</span><br><span style="color: hsl(120, 100%, 40%);">+ CheckGroup have been deprecated in favor of functions. Here is a</span><br><span style="color: hsl(120, 100%, 40%);">+ table of their replacements:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ GetGroupCount([groupname][@category] GROUP_COUNT([groupname][@category]) Set(GROUPCOUNT=${GROUP_COUNT()})</span><br><span style="color: hsl(120, 100%, 40%);">+ GroupMatchCount(groupmatch[@category]) GROUP_MATCH_COUNT(groupmatch[@category]) Set(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})</span><br><span style="color: hsl(120, 100%, 40%);">+ SetGroup(groupname[@category]) GROUP([category])=groupname Set(GROUP()=test)</span><br><span style="color: hsl(120, 100%, 40%);">+ CheckGroup(max[@category]) N/A GotoIf($[ ${GROUP_COUNT()} > 5 ]?103)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ Note that CheckGroup does not have a direct replacement. There is</span><br><span style="color: hsl(120, 100%, 40%);">+ also a new function called GROUP_LIST() which will return a space</span><br><span style="color: hsl(120, 100%, 40%);">+ separated list of all of the groups set on a channel. The GROUP()</span><br><span style="color: hsl(120, 100%, 40%);">+ function can also return the name of the group set on a channel when</span><br><span style="color: hsl(120, 100%, 40%);">+ used in a read environment.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The applications DBGet and DBPut have been deprecated in favor of</span><br><span style="color: hsl(120, 100%, 40%);">+ functions. Here is a table of their replacements:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ DBGet(foo=family/key) Set(foo=${DB(family/key)})</span><br><span style="color: hsl(120, 100%, 40%);">+ DBPut(family/key=${foo}) Set(DB(family/key)=${foo})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The application SetLanguage has been deprecated in favor of the</span><br><span style="color: hsl(120, 100%, 40%);">+ function LANGUAGE().</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ SetLanguage(fr) Set(LANGUAGE()=fr)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ The LANGUAGE function can also return the currently set language:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ Set(MYLANG=${LANGUAGE()})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The applications AbsoluteTimeout, DigitTimeout, and ResponseTimeout</span><br><span style="color: hsl(120, 100%, 40%);">+ have been deprecated in favor of the function TIMEOUT(timeouttype):</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ AbsoluteTimeout(300) Set(TIMEOUT(absolute)=300)</span><br><span style="color: hsl(120, 100%, 40%);">+ DigitTimeout(15) Set(TIMEOUT(digit)=15)</span><br><span style="color: hsl(120, 100%, 40%);">+ ResponseTimeout(15) Set(TIMEOUT(response)=15)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ The TIMEOUT() function can also return the currently set timeouts:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ Set(DTIMEOUT=${TIMEOUT(digit)})</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The applications SetCIDName, SetCIDNum, and SetRDNIS have been</span><br><span style="color: hsl(120, 100%, 40%);">+ deprecated in favor of the CALLERID(datatype) function:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ SetCIDName(Joe Cool) Set(CALLERID(name)=Joe Cool)</span><br><span style="color: hsl(120, 100%, 40%);">+ SetCIDNum(2025551212) Set(CALLERID(number)=2025551212)</span><br><span style="color: hsl(120, 100%, 40%);">+ SetRDNIS(2024561414) Set(CALLERID(RDNIS)=2024561414)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The application Record now uses the period to separate the filename</span><br><span style="color: hsl(120, 100%, 40%);">+ from the format, rather than the colon.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The application VoiceMail now supports a 'temporary' greeting for each</span><br><span style="color: hsl(120, 100%, 40%);">+ mailbox. This greeting can be recorded by using option 4 in the</span><br><span style="color: hsl(120, 100%, 40%);">+ 'mailbox options' menu, and 'change your password' option has been</span><br><span style="color: hsl(120, 100%, 40%);">+ moved to option 5.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The application VoiceMailMain now only matches the 'default' context if</span><br><span style="color: hsl(120, 100%, 40%);">+ none is specified in the arguments. (This was the previously</span><br><span style="color: hsl(120, 100%, 40%);">+ documented behavior, however, we didn't follow that behavior.) The old</span><br><span style="color: hsl(120, 100%, 40%);">+ behavior can be restored by setting searchcontexts=yes in voicemail.conf.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Queues:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* A queue is now considered empty not only if there are no members but if</span><br><span style="color: hsl(120, 100%, 40%);">+ none of the members are available (e.g. agents not logged on). To</span><br><span style="color: hsl(120, 100%, 40%);">+ restore the original behavior, use "leavewhenempty=strict" or</span><br><span style="color: hsl(120, 100%, 40%);">+ "joinwhenempty=strict" instead of "=yes" for those options.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* It is now possible to use multi-digit extensions in the exit context</span><br><span style="color: hsl(120, 100%, 40%);">+ for a queue (although you should not have overlapping extensions,</span><br><span style="color: hsl(120, 100%, 40%);">+ as there is no digit timeout). This means that the EXITWITHKEY event</span><br><span style="color: hsl(120, 100%, 40%);">+ in queue_log can now contain a key field with more than a single</span><br><span style="color: hsl(120, 100%, 40%);">+ character in it.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Extensions:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* By default, there is a new option called "autofallthrough" in</span><br><span style="color: hsl(120, 100%, 40%);">+ extensions.conf that is set to yes. Asterisk 1.0 (and earlier)</span><br><span style="color: hsl(120, 100%, 40%);">+ behavior was to wait for an extension to be dialed after there were no</span><br><span style="color: hsl(120, 100%, 40%);">+ more extensions to execute. "autofallthrough" changes this behavior</span><br><span style="color: hsl(120, 100%, 40%);">+ so that the call will immediately be terminated with BUSY,</span><br><span style="color: hsl(120, 100%, 40%);">+ CONGESTION, or HANGUP based on Asterisk's best guess. If you are</span><br><span style="color: hsl(120, 100%, 40%);">+ writing an extension for IVR, you must use the WaitExten application</span><br><span style="color: hsl(120, 100%, 40%);">+ if "autofallthrough" is set to yes.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+AGI:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* AGI scripts did not always get SIGHUP at the end, previously. That</span><br><span style="color: hsl(120, 100%, 40%);">+ behavior has been fixed. If you do not want your script to terminate</span><br><span style="color: hsl(120, 100%, 40%);">+ at the end of AGI being called (e.g. on a hangup) then set SIGHUP to</span><br><span style="color: hsl(120, 100%, 40%);">+ be ignored within your application.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* CallerID is reported with agi_callerid and agi_calleridname instead</span><br><span style="color: hsl(120, 100%, 40%);">+ of a single parameter holding both.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Music On Hold:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The preferred format for musiconhold.conf has changed; please see the</span><br><span style="color: hsl(120, 100%, 40%);">+ sample configuration file for the new format. The existing format</span><br><span style="color: hsl(120, 100%, 40%);">+ is still supported but will generate warnings when the module is loaded.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+chan_modem:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* All the chan_modem channel drivers (aopen, bestdata and i4l) are deprecated</span><br><span style="color: hsl(120, 100%, 40%);">+ in this release, and will be removed in the next major Asterisk release.</span><br><span style="color: hsl(120, 100%, 40%);">+ Please migrate to chan_misdn for ISDN interfaces; there is no upgrade</span><br><span style="color: hsl(120, 100%, 40%);">+ path for aopen and bestdata modem users.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+MeetMe:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* The conference application now allows users to increase/decrease their</span><br><span style="color: hsl(120, 100%, 40%);">+ speaking volume and listening volume (independently of each other and</span><br><span style="color: hsl(120, 100%, 40%);">+ other users); the 'admin' and 'user' menus have changed, and new sound</span><br><span style="color: hsl(120, 100%, 40%);">+ files are included with this release. However, if a user calling in</span><br><span style="color: hsl(120, 100%, 40%);">+ over a Zaptel channel that does NOT have hardware DTMF detection</span><br><span style="color: hsl(120, 100%, 40%);">+ increases their speaking volume, it is likely they will no longer be</span><br><span style="color: hsl(120, 100%, 40%);">+ able to enter/exit the menu or make any further adjustments, as the</span><br><span style="color: hsl(120, 100%, 40%);">+ software DTMF detector will not be able to recognize the DTMF coming</span><br><span style="color: hsl(120, 100%, 40%);">+ from their device.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+GetVar Manager Action:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* Previously, the behavior of the GetVar manager action reported the value</span><br><span style="color: hsl(120, 100%, 40%);">+ of a variable in the following manner:</span><br><span style="color: hsl(120, 100%, 40%);">+ > name: value</span><br><span style="color: hsl(120, 100%, 40%);">+ This has been changed to a manner similar to the SetVar action and is now</span><br><span style="color: hsl(120, 100%, 40%);">+ > Variable: name</span><br><span style="color: hsl(120, 100%, 40%);">+ > Value: value</span><br><span>diff --git a/doc/CHANGES-staging/README.md b/doc/CHANGES-staging/README.md</span><br><span>index da0df2a..8a2407f 100644</span><br><span>--- a/doc/CHANGES-staging/README.md</span><br><span>+++ b/doc/CHANGES-staging/README.md</span><br><span>@@ -5,24 +5,28 @@</span><br><span> time that it is necessary to add something to the CHANGES-staging directory is</span><br><span> if you are either adding a new feature to Asterisk or adding new functionality</span><br><span> to an existing feature. The file does not need to have a meaningful name, but</span><br><span style="color: hsl(0, 100%, 40%);">-it probably should. If there are multiple items that need documenting, each can</span><br><span style="color: hsl(0, 100%, 40%);">-be separated with a subject line, which should always start with "Subject:",</span><br><span style="color: hsl(0, 100%, 40%);">-followed by the subject of the change. This is case sensitive! For example, if</span><br><span style="color: hsl(0, 100%, 40%);">-you are making a change to PJSIP, then you might add the file</span><br><span style="color: hsl(0, 100%, 40%);">-"res_pjsip_my_cool_feature" to this directory, with a short description of what</span><br><span style="color: hsl(0, 100%, 40%);">-it does. If you are adding multiple entries, they should be done in the same</span><br><span style="color: hsl(0, 100%, 40%);">-commit to avoid merge conflicts. Here's an example:</span><br><span style="color: hsl(120, 100%, 40%);">+it probably should. If there are multiple items that need documenting, you can</span><br><span style="color: hsl(120, 100%, 40%);">+add multiple files, each with their own description. If the message is going to</span><br><span style="color: hsl(120, 100%, 40%);">+be the same for each subject, then you can add multiple subject headers to one</span><br><span style="color: hsl(120, 100%, 40%);">+file. The "Subject: xxx" line is case sensitive! For example, if you are making</span><br><span style="color: hsl(120, 100%, 40%);">+a change to PJSIP, then you might add the file "res_pjsip_my_cool_feature" to</span><br><span style="color: hsl(120, 100%, 40%);">+this directory, with a short description of what it does. If you are adding</span><br><span style="color: hsl(120, 100%, 40%);">+multiple entries, they should be done in the same commit to avoid merge</span><br><span style="color: hsl(120, 100%, 40%);">+conflicts. Here's an example:</span><br><span> </span><br><span> > Subject: res_pjsip</span><br><span style="color: hsl(120, 100%, 40%);">+> Subject: Core</span><br><span> ></span><br><span> > Here's a pretty good description of my new feature that explains exactly what</span><br><span> > it does and how to use it.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Here's a master-only example:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+> Subject: res_ari</span><br><span style="color: hsl(120, 100%, 40%);">+> Master-Only: True</span><br><span> ></span><br><span style="color: hsl(0, 100%, 40%);">-> Subject: core</span><br><span style="color: hsl(0, 100%, 40%);">-> Master-Only: true</span><br><span style="color: hsl(0, 100%, 40%);">-></span><br><span style="color: hsl(0, 100%, 40%);">-> Here's another description of something else I added that is a big enough</span><br><span style="color: hsl(0, 100%, 40%);">-> change to warrant another entry in the CHANGES file.</span><br><span style="color: hsl(120, 100%, 40%);">+> This change will only go into the master branch. The "Master-Only" header</span><br><span style="color: hsl(120, 100%, 40%);">+> will never be in a change not in master.</span><br><span> </span><br><span> Note that the second subject has another header: "Master-Only". Changes that go</span><br><span> into the master branch and ONLY the master branch are the only ones that should</span><br><span>diff --git a/doc/UPGRADE-staging/README.md b/doc/UPGRADE-staging/README.md</span><br><span>index 1ef9334..8147161 100644</span><br><span>--- a/doc/UPGRADE-staging/README.md</span><br><span>+++ b/doc/UPGRADE-staging/README.md</span><br><span>@@ -5,23 +5,27 @@</span><br><span> only time that it is necessary to add something to the UPGRADE-staging directory</span><br><span> is if you are making a breaking change to an existing feature in Asterisk. The</span><br><span> file does not need to have a meaningful name, but it probably should. If there</span><br><span style="color: hsl(0, 100%, 40%);">-are multiple items that need documenting, each can be separated with a subject</span><br><span style="color: hsl(0, 100%, 40%);">-line, which should always start with "Subject:", followed by the subject of the</span><br><span style="color: hsl(0, 100%, 40%);">-change. This is case sensitive! For example, if you are making a change to PJSIP,</span><br><span style="color: hsl(0, 100%, 40%);">-then you might add the file "res_pjsip_breaking_change" to this directory, with</span><br><span style="color: hsl(0, 100%, 40%);">-a short description of what it does. If you are adding multiple entries, they</span><br><span style="color: hsl(0, 100%, 40%);">-should be done in the same commit to avoid merge conflicts. Here's an example:</span><br><span style="color: hsl(120, 100%, 40%);">+are multiple items that need documenting, you can add multiple files, each with</span><br><span style="color: hsl(120, 100%, 40%);">+their own description. If the message is going to be the same for each subject,</span><br><span style="color: hsl(120, 100%, 40%);">+then you can add multiple subject headers to one file. The "Subject: xxx" line</span><br><span style="color: hsl(120, 100%, 40%);">+is case sensitive! For example, if you are making a change to PJSIP, then you</span><br><span style="color: hsl(120, 100%, 40%);">+might add the file "res_pjsip_my_cool_feature" to this directory, with a short</span><br><span style="color: hsl(120, 100%, 40%);">+description of what it does. If you are adding multiple entries, they should be</span><br><span style="color: hsl(120, 100%, 40%);">+done in the same commit to avoid merge conflicts. Here's an example:</span><br><span> </span><br><span> > Subject: res_pjsip</span><br><span style="color: hsl(120, 100%, 40%);">+> Subject: Core</span><br><span> ></span><br><span style="color: hsl(0, 100%, 40%);">-> Here's a pretty good description of what I changed that explains exactly what</span><br><span style="color: hsl(0, 100%, 40%);">-> it does and why it breaks things (and why they needed to be broken).</span><br><span style="color: hsl(120, 100%, 40%);">+> Here's a pretty good description of my new feature that explains exactly what</span><br><span style="color: hsl(120, 100%, 40%);">+> it does and how to use it.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Here's a master-only example:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+> Subject: res_ari</span><br><span style="color: hsl(120, 100%, 40%);">+> Master-Only: True</span><br><span> ></span><br><span style="color: hsl(0, 100%, 40%);">-> Subject: core</span><br><span style="color: hsl(0, 100%, 40%);">-> Master-Only: true</span><br><span style="color: hsl(0, 100%, 40%);">-></span><br><span style="color: hsl(0, 100%, 40%);">-> Here's another description of something else I added that is a big enough</span><br><span style="color: hsl(0, 100%, 40%);">-> change to warrant another entry in the UPDATE.txt file.</span><br><span style="color: hsl(120, 100%, 40%);">+> This change will only go into the master branch. The "Master-Only" header</span><br><span style="color: hsl(120, 100%, 40%);">+> will never be in a change not in master.</span><br><span> </span><br><span> Note that the second subject has another header: "Master-Only". Changes that go</span><br><span> into the master branch and ONLY the master branch are the only ones that should</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/asterisk/+/10943">change 10943</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/asterisk/+/10943"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 13 </div>
<div style="display:none"> Gerrit-Change-Id: I19cf4b569321c88155a65e9b0b80f6d58075dd47 </div>
<div style="display:none"> Gerrit-Change-Number: 10943 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Benjamin Keith Ford <bford@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Benjamin Keith Ford <bford@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Friendly Automation </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>