123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- ===========================================================
- ===
- === Information for upgrading between Asterisk versions
- ===
- === These files document all the changes that MUST be taken
- === into account when upgrading between the Asterisk
- === versions listed below. These changes may require that
- === you modify your configuration files, dialplan or (in
- === some cases) source code if you have your own Asterisk
- === modules or patches. These files also includes advance
- === notice of any functionality that has been marked as
- === 'deprecated' and may be removed in a future release,
- === along with the suggested replacement functionality.
- ===
- === UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
- === UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
- === UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
- ===
- ===========================================================
- From 1.8.13 to 1.8.14:
- * permitdirectmedia/denydirectmedia now controls whether peers can be
- bridged via directmedia by comparing the ACL to the bridging peer's
- address rather than its own address.
- From 1.8.12 to 1.8.13:
- * The complex processor detection and optimization has been removed from
- the makefile in favor of using native optimization suppport when available.
- BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".
- From 1.8.10 to 1.8.11:
- * If no transport is specified in sip.conf, transport will default to UDP.
- Also, if multiple transport= lines are used, only the last will be used.
- From 1.6.2 to 1.8:
- * chan_sip no longer sets HASH(SIP_CAUSE,<chan name>) on channels by default.
- This must now be enabled by setting 'sipstorecause' to 'yes' in sip.conf.
- This carries a performance penalty.
- * Asterisk now requires libpri 1.4.11+ for PRI support.
- * A couple of CLI commands in res_ais were changed back to their original form:
- "ais show clm members" --> "ais clm show members"
- "ais show evt event channels" --> "ais evt show event channels"
- * The default value for 'autofill' and 'shared_lastcall' in queues.conf has
- been changed to 'yes'.
- * The default value for the alwaysauthreject option in sip.conf has been changed
- from "no" to "yes".
- * The behavior of the 'parkedcallstimeout' has changed slightly. The formulation
- of the extension name that a timed out parked call is delivered to when this
- option is set to 'no' was modified such that instead of converting '/' to '0',
- the '/' is converted to an underscore '_'. See the updated documentation in
- features.conf.sample for more information on the behavior of the
- 'parkedcallstimeout' option.
- * Asterisk-addons no longer exists as an independent package. Those modules
- now live in the addons directory of the main Asterisk source tree. They
- are not enabled by default. For more information about why modules live in
- addons, see README-addons.txt.
- * The rarely used 'event_log' and LOG_EVENT channel have been removed; the few
- users of this channel in the tree have been converted to LOG_NOTICE or removed
- (in cases where the same message was already generated to another channel).
- * The usage of RTP inside of Asterisk has now become modularized. This means
- the Asterisk RTP stack now exists as a loadable module, res_rtp_asterisk.
- If you are not using autoload=yes in modules.conf you will need to ensure
- it is set to load. If not, then any module which uses RTP (such as chan_sip)
- will not be able to send or receive calls.
- * The app_dahdiscan.c file has been removed, but the dialplan app DAHDIScan still
- remains. It now exists within app_chanspy.c and retains the exact same
- functionality as before.
- * The default behavior for Set, AGI, and pbx_realtime has been changed to implement
- 1.6 behavior by default, if there is no [compat] section in asterisk.conf. In
- prior versions, the behavior defaulted to 1.4 behavior, to assist in upgrades.
- Specifically, that means that pbx_realtime and res_agi expect you to use commas
- to separate arguments in applications, and Set only takes a single pair of
- a variable name/value. The old 1.4 behavior may still be obtained by setting
- app_set, pbx_realtime, and res_agi each to 1.4 in the [compat] section of
- asterisk.conf.
- * The PRI channels in chan_dahdi can no longer change the channel name if a
- different B channel is selected during call negotiation. To prevent using
- the channel name to infer what B channel a call is using and to avoid name
- collisions, the channel name format is changed.
- The new channel naming for PRI channels is:
- DAHDI/i<span>/<number>[:<subaddress>]-<sequence-number>
- * Added CHANNEL(dahdi_span), CHANNEL(dahdi_channel), and CHANNEL(dahdi_type)
- so the dialplan can determine the B channel currently in use by the channel.
- Use CHANNEL(no_media_path) to determine if the channel even has a B channel.
- * Added AMI event DAHDIChannel to associate a DAHDI channel with an Asterisk
- channel so AMI applications can passively determine the B channel currently
- in use. Calls with "no-media" as the DAHDIChannel do not have an associated
- B channel. No-media calls are either on hold or call-waiting.
- * The ChanIsAvail application has been changed so the AVAILSTATUS variable
- no longer contains both the device state and cause code. The cause code
- is now available in the AVAILCAUSECODE variable. If existing dialplan logic
- is written to expect AVAILSTATUS to contain the cause code it needs to be
- changed to use AVAILCAUSECODE.
- * ExternalIVR will now send Z events for invalid or missing files, T events
- now include the interrupted file and bugs in argument parsing have been
- fixed so there may be arguments specified in incorrect ways that were
- working that will no longer work. Please see
- https://wiki.asterisk.org/wiki/display/AST/External+IVR+Interface for details.
- * OSP lookup application changes following variable names:
- OSPPEERIP to OSPINPEERIP
- OSPTECH to OSPOUTTECH
- OSPDEST to OSPDESTINATION
- OSPCALLING to OSPOUTCALLING
- OSPCALLED to OSPOUTCALLED
- OSPRESULTS to OSPDESTREMAILS
- * The Manager event 'iax2 show peers' output has been updated. It now has a
- similar output of 'sip show peers'.
- * VoiceMailMain and VMAuthenticate, if a '*' is entered in the first position
- of a Mailbox or Password, will, if it exists, jump to the 'a' extension in
- the current dialplan context.
- * The CALLERPRES() dialplan function is deprecated in favor of
- CALLERID(num-pres) and CALLERID(name-pres).
- * Environment variables that start with "AST_" are reserved to the system and
- may no longer be set from the dialplan.
- * When a call is redirected inside of a Dial, the app and appdata fields of the
- CDR will now be set to "AppDial" and "(Outgoing Line)" instead of being blank.
- * The CDR handling of billsec and duration field has changed. If your table
- definition specifies those fields as float,double or similar they will now
- be logged with microsecond accuracy instead of a whole integer.
- * chan_sip will no longer set up a local call forward when receiving a
- 482 Loop Detected response. The dialplan will just continue from where it
- left off.
- * The 'stunaddr' option has been removed from chan_sip. This feature did not
- behave as expected, had no correct use case, and was not RFC compliant. The
- removal of this feature will hopefully be followed by a correct RFC compliant
- STUN implementation in chan_sip in the future.
- * The default value for the pedantic option in sip.conf has been changed
- from "no" to "yes".
- * The ConnectedLineNum and ConnectedLineName headers were added to many AMI
- events/responses if the CallerIDNum/CallerIDName headers were also present.
- The addition of connected line support changes the behavior of the channel
- caller ID somewhat. The channel caller ID value no longer time shares with
- the connected line ID on outgoing call legs. The timing of some AMI
- events/responses output the connected line ID as caller ID. These party ID's
- are now separate.
- * The Dial application d and H options do not automatically answer the call
- anymore. It broke DTMF attended transfers. Since many SIP and ISDN phones
- cannot send DTMF before a call is connected, you need to answer the call
- leg to those phones before using Dial with these options for them to have
- any effect before the dialed party answers.
- * The outgoing directory (where .call files are read) now uses inotify to
- detect file changes instead of polling the directory on a regular basis.
- If your outgoing folder is on a NFS mount or another network file system,
- changes to the files will not be detected. You can revert to polling the
- directory by specifying --without-inotify to configure before compiling.
- * The 'sipusers' realtime table has been removed completely. Use the 'sippeers'
- table with type 'user' for user type objects.
- * The sip.conf allowoverlap option now accepts 'dtmf' as a value. If you
- are using the early media DTMF overlap dialing method you now need to set
- allowoverlap=dtmf.
- From 1.6.1 to 1.6.2:
- * SIP no longer sends the 183 progress message for early media by
- default. Applications requiring early media should use the
- progress() dialplan app to generate the progress message.
- * The firmware for the IAXy has been removed from Asterisk. It can be
- downloaded from http://downloads.digium.com/pub/iaxy/. To have Asterisk
- install the firmware into its proper location, place the firmware in the
- contrib/firmware/iax/ directory in the Asterisk source tree before running
- "make install".
- * T.38 FAX error correction mode can no longer be configured in udptl.conf;
- instead, it is configured on a per-peer (or global) basis in sip.conf, with
- the same default as was present in udptl.conf.sample.
- * T.38 FAX maximum datagram size can no longer be configured in updtl.conf;
- instead, it is either supplied by the application servicing the T.38 channel
- (for a FAX send or receive) or calculated from the bridged endpoint's
- maximum datagram size (for a T.38 FAX passthrough call). In addition, sip.conf
- allows for overriding the value supplied by a remote endpoint, which is useful
- when T.38 connections are made to gateways that supply incorrectly-calculated
- maximum datagram sizes.
- * There have been some changes to the IAX2 protocol to address the security
- concerns documented in the security advisory AST-2009-006. Please see the
- IAX2 security document, doc/IAX2-security.pdf, for information regarding
- backwards compatibility with versions of Asterisk that do not contain these
- changes to IAX2.
- * The 'canreinvite' option support by the SIP, MGCP and Skinny channel drivers
- has been renamed to 'directmedia', to better reflect what it actually does.
- In the case of SIP, there are still re-INVITEs issued for T.38 negotiation,
- starting and stopping music-on-hold, and other reasons, and the 'canreinvite'
- option never had any effect on these cases, it only affected the re-INVITEs
- used for direct media path setup. For MGCP and Skinny, the option was poorly
- named because those protocols don't even use INVITE messages at all. For
- backwards compatibility, the old option is still supported in both normal
- and Realtime configuration files, but all of the sample configuration files,
- Realtime/LDAP schemas, and other documentation refer to it using the new name.
- * The default console now will use colors according to the default background
- color, instead of forcing the background color to black. If you are using a
- light colored background for your console, you may wish to use the option
- flag '-W' to present better color choices for the various messages. However,
- if you'd prefer the old method of forcing colors to white text on a black
- background, the compatibility option -B is provided for this purpose.
- * SendImage() no longer hangs up the channel on transmission error or on
- any other error; in those cases, a FAILURE status is stored in
- SENDIMAGESTATUS and dialplan execution continues. The possible
- return values stored in SENDIMAGESTATUS are: SUCCESS, FAILURE, and
- UNSUPPORTED. ('OK' has been replaced with 'SUCCESS', and 'NOSUPPORT'
- has been replaced with 'UNSUPPORTED'). This change makes the
- SendImage application more consistent with other applications.
- * skinny.conf now has separate sections for lines and devices.
- Please have a look at configs/skinny.conf.sample and update
- your skinny.conf.
- * Queue names previously were treated in a case-sensitive manner,
- meaning that queues with names like "sales" and "sALeS" would be
- seen as unique queues. The parsing logic has changed to use
- case-insensitive comparisons now when originally hashing based on
- queue names, meaning that now the two queues mentioned as examples
- earlier will be seen as having the same name.
- * The SPRINTF() dialplan function has been moved into its own module,
- func_sprintf, and is no longer included in func_strings. If you use this
- function and do not use 'autoload=yes' in modules.conf, you will need
- to explicitly load func_sprintf for it to be available.
- * The res_indications module has been removed. Its functionality was important
- enough that most of it has been moved into the Asterisk core.
- Two applications previously provided by res_indications, PlayTones and
- StopPlayTones, have been moved into a new module, app_playtones.
- * Support for Taiwanese was incorrectly supported with the "tw" language code.
- In reality, the "tw" language code is reserved for the Twi language, native
- to Ghana. If you were previously using the "tw" language code, you should
- switch to using either "zh" (for Mandarin Chinese) or "zh_TW" for Taiwan
- specific localizations. Additionally, "mx" should be changed to "es_MX",
- Georgian was incorrectly specified as "ge" but should be "ka", and Czech is
- "cs", not "cz".
- * DAHDISendCallreroutingFacility() parameters are now comma-separated,
- instead of the old pipe.
- * res_jabber: autoprune has been disabled by default, to avoid misconfiguration
- that would end up being interpreted as a bug once Asterisk started removing
- the contacts from a user list.
- * The cdr.conf file must exist and be configured correctly in order for CDR
- records to be written.
- * cdr_pgsql now assumes the encoding of strings it is handed are in LATIN9,
- which should cover most uses of the extended ASCII set. If your strings
- use a different encoding in Asterisk, the "encoding" parameter may be set
- to specify the correct character set.
- From 1.6.0.1 to 1.6.1:
- * The ast_agi_register_multiple() and ast_agi_unregister_multiple()
- API calls were added in 1.6.0, so that modules that provide multiple
- AGI commands could register/unregister them all with a single
- step. However, these API calls were not implemented properly, and did
- not allow the caller to know whether registration or unregistration
- succeeded or failed. They have been redefined to now return success
- or failure, but this means any code using these functions will need
- be recompiled after upgrading to a version of Asterisk containing
- these changes. In addition, the source code using these functions
- should be reviewed to ensure it can properly react to failure
- of registration or unregistration of its API commands.
- * The ast_agi_fdprintf() API call has been renamed to ast_agi_send()
- to better match what it really does, and the argument order has been
- changed to be consistent with other API calls that perform similar
- operations.
- From 1.6.0.x to 1.6.1:
- * In previous versions of Asterisk, due to the way objects were arranged in
- memory by chan_sip, the order of entries in sip.conf could be adjusted to
- control the behavior of matching against peers and users. The way objects
- are managed has been significantly changed for reasons involving performance
- and stability. A side effect of these changes is that the order of entries
- in sip.conf can no longer be relied upon to control behavior.
- * The following core commands dealing with dialplan have been deprecated: 'core
- show globals', 'core set global' and 'core set chanvar'. Use the equivalent
- 'dialplan show globals', 'dialplan set global' and 'dialplan set chanvar'
- instead.
- * In the dialplan expression parser, the logical value of spaces
- immediately preceding a standalone 0 previously evaluated to
- true. It now evaluates to false. This has confused a good many
- people in the past (typically because they failed to realize the
- space had any significance). Since this violates the Principle of
- Least Surprise, it has been changed.
- * While app_directory has always relied on having a voicemail.conf or users.conf file
- correctly set up, it now is dependent on app_voicemail being compiled as well.
- * SIP: All of the functionality in SIPCHANINFO() has been implemented in CHANNEL(),
- and you should start using that function instead for retrieving information about
- the channel in a technology-agnostic way.
- * If you have any third party modules which use a config file variable whose
- name ends in a '+', please note that the append capability added to this
- version may now conflict with that variable naming scheme. An easy
- workaround is to ensure that a space occurs between the '+' and the '=',
- to differentiate your variable from the append operator. This potential
- conflict is unlikely, but is documented here to be thorough.
- * The "Join" event from app_queue now uses the CallerIDNum header instead of
- the CallerID header to indicate the CallerID number.
- * If you use ODBC storage for voicemail, there is a new field called "flag"
- which should be a char(8) or larger. This field specifies whether or not a
- message has been designated to be "Urgent", "PRIORITY", or not.
|