The recent fix for ASTERISK-17288 to get RFC3578 SIP overlap support working correctly removed a long standing ability to do overlap dialing using DTMF in the early media phase of a call. See ASTERISK-18702 it has a very good description of the issue. I started with Pavel Troller's chan_sip.diff patch on issue ASTERISK-18702. * Added 'dtmf' enum value to sip.conf allowoverlap config option. The new option value causes the Incomplte application to not send anything with chan_sip so the caller can supply more digits via DTMF. * Renames SIP_GET_DEST_PICKUP_EXTEN_FOUND to SIP_GET_DEST_EXTEN_MATCHMORE since that is what it really means. * Fixed get_destination() inconsistency with the pickup extension matching. * Fixed initialization of PAGE3 of global_flags in reload_config(). (closes issue ASTERISK-18702) Reported by: Pavel Troller Review: https://reviewboard.asterisk.org/r/1517/ Review: https://reviewboard.asterisk.org/r/1582/ ........ Merged revisions 345273 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 345275 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@345276 65c4cc65-6c06-0410-ace0-fbb531ad65f3
330 lines
17 KiB
Text
330 lines
17 KiB
Text
===========================================================
|
|
===
|
|
=== 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.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.
|
|
|