Information for Upgrading From Previous Asterisk Releases ========================================================= 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;". * The conf2ael program is 'introduced' in this release; it is in a rather crude state, but deemed useful for making a first pass at converting extensions.conf code into AEL. More intelligence will come with time. 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. * The delimiter passed to applications has been changed to the comma (','), as that is what people are used to using within extensions.conf. If you are using realtime extensions, you will need to translate your existing dialplan to use this separator. To use a literal comma, you need merely to escape it with a backslash ('\'). Another possible side effect is that you may need to remove the obscene level of backslashing that was necessary for the dialplan to work correctly in 1.4 and previous versions. This should make writing dialplans less painful in the future, albeit with the pain of a one-time conversion. * The logger.conf option 'rotatetimestamp' has been deprecated in favor of 'rotatestrategy'. This new option supports a 'rotate' strategy that more closely mimics the system logger in terms of file rotation. 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: * 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'. * Macro() is now deprecated. If you need subroutines, you should use the Gosub()/Return() applications. To replace MacroExclusive(), we have introduced dialplan functions LOCK(), TRYLOCK(), and UNLOCK(). You may use these functions in any location where you desire to ensure that only one channel is executing that path at any one time. Dialplan Functions: * QUEUE_MEMBER_COUNT() has been deprecated in favor of the QUEUE_MEMBER() function. For more information, issue a "show function QUEUE_MEMBER" from the CLI. CDR: * 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. * The cdr_odbc module now uses res_odbc to manage its connections. The username and password parameters in cdr_odbc.conf, therefore, are no longer used. The dsn parameter now points to an entry in res_odbc.conf. Formats: * 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 Channel Drivers: * 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. * chan_local.c: the comma delimiter inside the channel name has been changed to a semicolon, in order to make the Local channel driver compatible with the comma delimiter change in applications. Configuration: * pbx_dundi.c: tos parameter changed to use new values. Old values like lowdelay, lowcost and other is not acceptable now. Look into qos.tex for description of this parameter. 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. * The IAXpeers command output has been changed to more closely resemble the output of the SIPpeers command.