<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>