Add the ability to play an announcement to queue caller just before bridging
[asterisk/asterisk.git] / UPGRADE.txt
index db9eab8..f986544 100644 (file)
 Information for Upgrading From Previous Asterisk Releases
 =========================================================
 
-Compiling:
-
-* The Asterisk 1.2 source code now uses C language features
-  supported only by 'modern' C compilers.  Generally, this means GCC
-  version 3.0 or higher, although some GCC 2.96 releases will also
-  work.  Some non-GCC compilers that support C99 and the common GCC
-  extensions (including anonymous structures and unions) will also
-  work.  All releases of GCC 2.95 do _not_ have the requisite feature
-  support; systems using that compiler will need to be upgraded to
-  a more recent compiler release.
-
-Dialplan Expressions:
-
-* The dialplan expression parser (which handles $[ ... ] constructs)
-  has gone through a major upgrade, but has one incompatible change:
-  spaces are no longer required around expression operators, including
-  string comparisons. However, you can now use quoting to keep strings
-  together for comparison. For more details, please read the
-  doc/README.variables file, and check over your dialplan for possible
-  problems.
-
-Agents:
-
-* The default for ackcall has been changed to "no" instead of "yes" 
-  because of a bug which caused the "yes" behavior to generally act like
-  "no".  You may need to adjust the value if your agents behave 
-  differently than you expect with respect to acknowledgement.
-
-* The AgentCallBackLogin application now requires a second '|' before
-  specifying an extension@context.  This is to distinguish the options
-  string from the extension, so that they do not conflict.  See
-  'show application AgentCallbackLogin' for more details.
-
-Parking:
-
-* Parking behavior has changed slightly; when a parked call times out,
-  Asterisk will attempt to deliver the call back to the extension that
-  parked it, rather than the 's' extension. If that extension is busy
-  or unavailable, the parked call will be lost.
-
-Dialing:
-
-* The Caller*ID of the outbound leg is now the extension that was 
-  called, rather than the Caller*ID of the inbound leg of the call.  The 
-  "o" flag for Dial can be used to restore the original behavior if 
-  desired.  Note that if you are looking for the originating callerid
-  from the manager event, there is a new manager event "Dial" which 
-  provides the source and destination channels and callerid.
-
-IAX: 
-
-* The naming convention for IAX channels has changed in two ways: 
-   1. The call number follows a "-" rather than a "/" character.
-   2. The name of the channel has been simplified to IAX2/peer-callno,
-   rather than IAX2/peer@peer-callno or even IAX2/peer@peer/callno.
-
-SIP:
-
-* The global option "port" in 1.0.X that is used to set which port to
-  bind to has been changed to "bindport" to be more consistent with
-  the other channel drivers and to avoid confusion with the "port"
-  option for users/peers.
-
-* The "Registry" event now uses "Username" rather than "User" for 
-  consistency with IAX.
+Manager:
+
+* The CallerID fields across Manager events have now been made more
+  consistent. CallerID Number will be sent as CallerIDNum and CallerID
+  Name will be sent as CallerIDName wherever used.
+
+AEL:
+
+* Macros are now implemented underneath with the Gosub() application.
+  Heaven Help You if you wrote code depending on any aspect of this!
+  Previous to 1.6, macros were implemented with the Macro() app, which
+  provided a nice feature of auto-returning. The compiler will do its
+  best to insert a Return() app call at the end of your macro if you did
+  not include it, but really, you should make sure that all execution
+  paths within your macros end in "return;".
+
+Core:
+
+* The 'languageprefix' option in asterisk.conf is now deprecated, and
+  the default sound file layout for non-English sounds is the 'new
+  style' layout introduced in Asterisk 1.4 (and used by the automatic
+  sound file installer in the Makefile).
+
+* The ast_expr2 stuff has been modified to handle floating-point numbers.
+  Numbers of the format D.D are now acceptable input for the expr parser, 
+  Where D is a string of base-10 digits. All math is now done in "long double",
+  if it is available on your compiler/architecture. This was half-way between
+  a bug-fix (because the MATH func returns fp by default), and an enhancement.
+  Also, for those counting on, or needing, integer operations, a series of
+  'functions' were also added to the expr language, to allow several styles
+  of rounding/truncation, along with a set of common floating point operations,
+  like sin, cos, tan, log, pow, etc. The ability to call external functions
+  like CDR(), etc. was also added, without having to use the ${...} notation.
+Voicemail:
+
+* The voicemail configuration values 'maxmessage' and 'minmessage' have
+  been changed to 'maxsecs' and 'minsecs' to clarify their purpose and
+  to make them more distinguishable from 'maxmsgs', which sets folder
+  size.  The old variables will continue to work in this version, albeit
+  with a deprecation warning.
+* If you use any interface for modifying voicemail aside from the built in
+  dialplan applications, then the option "pollmailboxes" *must* be set in
+  voicemail.conf for message waiting indication (MWI) to work properly.  This
+  is because Voicemail notification is now event based instead of polling
+  based.  The channel drivers are no longer responsible for constantly manually
+  checking mailboxes for changes so that they can send MWI information to users.
+  Examples of situations that would require this option are web interfaces to
+  voicemail or an email client in the case of using IMAP storage.
 
 Applications:
 
-* With the addition of dialplan functions (which operate similarly
-  to variables), the SetVar application has been renamed to Set.
-
-* The CallerPres application has been removed.  Use SetCallerPres 
-  instead.  It accepts both numeric and symbolic names.
-
-* The applications GetGroupCount, GetGroupMatchCount, SetGroup, and
-  CheckGroup have been deprecated in favor of functions.  Here is a
-  table of their replacements:
-
-  GetGroupCount([groupname][@category]        GROUP_COUNT([groupname][@category])      Set(GROUPCOUNT=${GROUP_COUNT()})
-  GroupMatchCount(groupmatch[@category])       GROUP_MATCH_COUNT(groupmatch[@category])        Set(GROUPCOUNT=${GROUP_MATCH_COUNT(SIP/.*)})
-  SetGroup(groupname[@category])              GROUP([category])=groupname              Set(GROUP()=test)
-  CheckGroup(max[@category])                  N/A                                      GotoIf($[ ${GROUP_COUNT()} > 5 ]?103)
-
-  Note that CheckGroup does not have a direct replacement.  There is
-  also a new function called GROUP_LIST() which will return a space
-  separated list of all of the groups set on a channel.  The GROUP()
-  function can also return the name of the group set on a channel when
-  used in a read environment.
-
-* The applications DBGet and DBPut have been deprecated in favor of
-  functions.  Here is a table of their replacements:
-
-  DBGet(foo=family/key)        Set(foo=${DB(family/key)})
-  DBPut(family/key=${foo})     Set(DB(family/key)=${foo})
-
-* The application SetLanguage has been deprecated in favor of the
-  function LANGUAGE().
-
-  SetLanguage(fr)              Set(LANGUAGE()=fr)
-
-  The LANGUAGE function can also return the currently set language:
-
-  Set(MYLANG=${LANGUAGE()})
-
-* The applications AbsoluteTimeout, DigitTimeout, and ResponseTimeout
-  have been deprecated in favor of the function TIMEOUT(timeouttype):
-
-  AbsoluteTimeout(300)         Set(TIMEOUT(absolute)=300)
-  DigitTimeout(15)             Set(TIMEOUT(digit)=15)
-  ResponseTimeout(15)          Set(TIMEOUT(response)=15)
-
-  The TIMEOUT() function can also return the currently set timeouts:
-
-  Set(DTIMEOUT=${TIMEOUT(digit)})
-
-* The applications SetCIDName, SetCIDNum, and SetRDNIS have been
-  deprecated in favor of the CALLERID(datatype) function:
-
-  SetCIDName(Joe Cool)         Set(CALLERID(name)=Joe Cool)
-  SetCIDNum(2025551212)                Set(CALLERID(number)=2025551212)
-  SetRDNIS(2024561414)         Set(CALLERID(RDNIS)=2024561414)
-
-* The application Record now uses the period to separate the filename
-  from the format, rather than the colon.
-
-* The application VoiceMail now supports a 'temporary' greeting for each
-  mailbox. This greeting can be recorded by using option 4 in the
-  'mailbox options' menu, and 'change your password' option has been
-  moved to option 5.
-
-* The application VoiceMailMain now only matches the 'default' context if
-  none is specified in the arguments.  (This was the previously 
-  documented behavior, however, we didn't follow that behavior.)
-
-Queues:
-
-* A queue is now considered empty not only if there are no members but if
-  none of the members are available (e.g. agents not logged on).  To
-  restore the original behavior, use "leavewhenempty=strict" or 
-  "joinwhenempty=strict" instead of "=yes" for those options.
-
-* It is now possible to use multi-digit extensions in the exit context
-  for a queue (although you should not have overlapping extensions,
-  as there is no digit timeout). This means that the EXITWITHKEY event
-  in queue_log can now contain a key field with more than a single
-  character in it.
-
-Extensions:
-
-* By default, there is a new option called "autofallthrough" in
-  extensions.conf that is set to yes.  Asterisk 1.0 (and earlier) 
-  behavior was to wait for an extension to be dialed after there were no 
-  more extensions to execute.  "autofallthrough" changes this behavior
-  so that the call will immediately be terminated with BUSY,
-  CONGESTION, or HANGUP based on Asterisk's best guess.  If you are
-  writing an extension for IVR, you must use the WaitExten application
-  if "autofallthrough" is set to yes.
-
-AGI:
-
-* AGI scripts did not always get SIGHUP at the end, previously.  That 
-  behavior has been fixed.  If you do not want your script to terminate 
-  at the end of AGI being called (e.g. on a hangup) then set SIGHUP to 
-  be ignored within your application.
-
-* CallerID is reported with agi_callerid and agi_calleridname instead
-  of a single parameter holding both.
-
-Music On Hold:
+* ChanIsAvail() now has a 't' option, which allows the specified device
+  to be queried for state without consulting the channel drivers. This
+  performs mostly a 'ChanExists' sort of function.
+* SetCallerPres() has been replaced with the CALLERPRES() dialplan function
+  and is now deprecated.
+* DISA()'s fifth argument is now an options argument.  If you have previously
+  used 'NOANSWER' in this argument, you'll need to convert that to the new
+  option 'n'.
 
-* The preferred format for musiconhold.conf has changed; please see the
-  sample configuration file for the new format. The existing format
-  is still supported but will generate warnings when the module is loaded.
+CDR:
 
-chan_modem:
+* The cdr_sqlite module has been marked as deprecated in favor of
+  cdr_sqlite3_custom.  It will potentially be removed from the tree
+  after Asterisk 1.6 is released.
 
-* All the chan_modem channel drivers (aopen, bestdata and i4l) are deprecated
-  in this release, and will be removed in the next major Asterisk release.
-  Please migrate to chan_misdn for ISDN interfaces; there is no upgrade
-  path for aopen and bestdata modem users.
+Formats:
 
-MeetMe:
+* format_wav: The GAIN preprocessor definition and source code that used it
+  is removed.  This change was made in response to user complaints of
+  choppiness or the clipping of loud signal peaks.  To increasing the volume
+  of voicemail messages, use the 'volgain' option in voicemail.conf
 
-* The conference application now allows users to increase/decrease their
-  speaking volume and listening volume (independently of each other and 
-  other users); the 'admin' and 'user' menus have changed, and new sound 
-  files are included with this release. However, if a user calling in 
-  over a Zaptel channel that does NOT have hardware DTMF detection 
-  increases their speaking volume, it is likely they will no longer be 
-  able to enter/exit the menu or make any further adjustments, as the  
-  software DTMF detector will not be able to recognize the DTMF coming 
-  from their device.
+Channel Drivers:
 
-GetVar Manager Action:
+* chan_sip.c: a small upgrade to support the "Record" button on the SNOM360,
+  which sends a sip INFO message with a "Record: on" or "Record: off" 
+  header. If asterisk is set up (via features.conf) to accept "One Touch Monitor"
+  requests (by default, via '*1'), then the user-configured dialpad sequence
+  is generated, and recording can be started and stopped via this button. The
+  file names and formats are all controlled via the normal mechanisms. If the
+  user has not configured the automon feature, the normal "415 Unsupported media type"
+  is returned, and nothing is done.
 
-* Previously, the behavior of the GetVar manager action reported the value
-  of a variable in the following manner:
-   > name: value
-  This has been changed to a manner similar to the SetVar action and is now
-   > Variable: name
-   > Value: value