Newer
Older
Wait() app now really does 0.3 seconds- was truncating arg to an int.
WaitExten() same as Wait().
Congestion() - Now takes floating pt. argument.
Busy() - now takes floating pt. argument.
Read() - timeout now can be floating pt.
WaitForRing() now takes floating pt timeout arg.
SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
* Added 's' option to Page application.
* Added an optional timeout argument to the Page application.
* Added 'E', 'V', and 'P' commands to ExternalIVR.
* Added 'o' and 'X' options to Chanspy.
* Added a new dialplan application, Bridge, which allows you to bridge the
calling channel to any other active channel on the system.
* Added the ability to specify a music on hold class to play instead of ringing
for the SLATrunk application.
* The Read application no longer exits the dialplan on error. Instead, it sets
READSTATUS to ERROR, which you can catch and handle separately.
* Added 'm' option to Directory, which lists out names, 8 at a time, instead
of asking for verification of each name, one at a time.
* Privacy() no longer uses privacy.conf, as all options are specifyable as
direct options to the app.
* AMD() has a new "maximum word length" option. "show application AMD" from the CLI
for more details
* GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
Joshua Colp
committed
* The ChannelRedirect application no longer exits the dialplan if the given channel
does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
or NOCHANNEL if the given channel was not found.
* The silencethreshold setting that was previously configurable in multiple
applications is now settable globally via dsp.conf.
Music On Hold Changes
---------------------
* A new option, "digit", has been added for music on hold classes in
musiconhold.conf. If this is set for a music on hold class, a caller
listening to music on hold can press this digit to switch to listening
to this music on hold class.
Mark Michelson
committed
* Support for realtime music on hold has been added.
* In conjunction with the realtime music on hold, a general section has
Russell Bryant
committed
been added to musiconhold.conf, its sole variable is cachertclasses. If this
is set, then music on hold classes found in realtime will be cached in memory.
AEL Changes
-----------
Steve Murphy
committed
* AEL upgraded to use the Gosub with Arguments instead
of Macro application, to hopefully reduce the problems
seen with the artificially low stack ceiling that
Steve Murphy
committed
Macro bumps into. Macros can only call other Macros
to a depth of 7. Tests run using gosub, show depths
limited only by virtual memory. A small test demonstrated
recursive call depths of 100,000 without problems.
-- in addition to this, all apps that allowed a macro
to be called, as in Dial, queues, etc, are now allowing
a gosub call in similar fashion.
* AEL now generates LOCAL(argname) declarations when it
Set()'s the each arg name to the value of ${ARG1}, ${ARG2),
etc. That makes the arguments local in scope. The user
can define their own local variables in macros, now,
by saying "local myvar=someval;" or using Set() in this
fashion: Set(LOCAL(myvar)=someval); ("local" is now
an AEL keyword).
* utils/conf2ael introduced. Will convert an extensions.conf
file into extensions.ael. Very crude and unfinished, but
Russell Bryant
committed
will be improved as time goes by. Should be useful for a
first pass at conversion.
* aelparse will now read extensions.conf to see if a referenced
Russell Bryant
committed
macro or context is there before issueing a warning.
* AEL parser sets a local channel variable ~~EXTEN~~, to
preserve the value of ${EXTEN} thru switch statements.
* New operator in $[...] expressions: the ~~ operator serves
as a concatenation operator. AT THE MOMENT, it is really only
necessary and useful in AEL, especially in if() expressions.
Operation: ${a} ~~ ${b| with force both a and b to strings, strip
any enclosing double-quotes, and evaluate to the value of a
concatenated with the value of b. For example if a is set to
"xyz" and b has the value "abc", then ${a} ~~ ${b| would
evaluate to xyzabc .
Call Features (res_features) Changes
------------------------------------
* Added the parkedcalltransfers option to features.conf
* Added parkedcallparking option to control one touch parking w/ parking
pickup
* Added parkedcallhangup option to control disconnect feature w/ parking
pickup
* Added parkedcallrecording option to control one-touch record w/ parking
pickup
* Added parkedcallparking, parkedcallhangup, parkedcallrecording, and
parkedcalltransfers option support for multiple parking lots.
* Added BRIDGE_FEATURES variable to set available features for a channel
* The built-in method for doing attended transfers has been updated to
include some new options that allow you to have the transferee sent
back to the person that did the transfer if the transfer is not successful.
See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries"
in features.conf.sample.
* Added support for configuring named groups of custom call features in
features.conf. This means that features can be written a single time, and
then mapped into groups of features for different key mappings or easier
access control.
Russell Bryant
committed
* Updated the ParkedCall application to allow you to not specify a parking
extension. If you don't specify a parking space to pick up, it will grab
the first one available.
* Added cli command 'features reload' to reload call features from features.conf
* Moved into core asterisk binary.
* Changed the default setting for featuredigittimeout to 2000 ms from 500 ms.
* Added the ability for custom parking lots to be configured with their own
parking extension with the parkext option.
Language Support Changes
------------------------
* Brazilian Portuguese (pt-BR) in VM, and say.c was added
* Added support for the Hungarian language for saying numbers, dates, and times.
AGI Changes
-----------
* Added SPEECH commands for speech recognition. A complete listing can be found
* If app_stack is loaded, GOSUB is a native AGI command that may be used to
invoke subroutines in the dialplan. Note that calling EXEC with Gosub
does not behave as expected; the native command needs to be used, instead.
Tilghman Lesher
committed
* Added the ability to perform SRV lookups on fast AGI calls. To use this
feature, simply use hagi: instead of agi: as the protocol portion
of the URI parameter to the AGI function call in your dial plan. Also note
that specifying a port number in the AGI URI will disable SRV lookups,
even if you use the hagi: protocol.
* No longer support MSG_OOB flag on HANGUP.
Logger changes
--------------
* Added rotatestrategy option to logger.conf, along with two new options:
"timestamp" which will use the time to name the logger files instead of
sequence number; and "rotate", which rotates the names of the log files,
similar to the way syslog rotates files.
* Added exec_after_rotate option to logger.conf, which allows a system
command to be run after rotation. This is primarily useful with
rotatestrategy=rotate, to allow a limit on the number of log files kept
and to ensure that the oldest log file gets deleted.
* Added realtime support for the queue log
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
-------------------
* The cdr_manager module has a [mappings] feature, like cdr_custom,
to add fields to the manager event from the CDR variables.
* Added cdr_adaptive_odbc, a new module that adapts to the structure of your
backend database CDR table. Specifically, additional, non-standard
columns are supported, merely by setting the corresponding CDR variable in
your dialplan. In addition, you may alias any column to another name (for
example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
simply "alias src => ANI" in the configuration file). Records may be
posted to more than one backend, simply by specifying multiple categories
in the configuration file. And finally, you may filter which CDRs get
posted to each backend, by specifying a filter (which the record must
match) for the particular category. Filters are additive (meaning all
rules must match to post that CDR).
* The Postgres CDR module now supports some features of the cdr_adaptive_odbc
module. Specifically, you may add additional columns into the table and
they will be set, if you set the corresponding CDR variable name. Also,
if you omit columns in your database table, they will be silently skipped
(but a record will still be inserted, based on what columns remain). Note
that the other two features from cdr_adaptive_odbc (alias and filter) are
not currently supported.
* The ResetCDR application now has an 'e' option that re-enables a CDR if it
has been disabled using the NoCDR application.
Russell Bryant
committed
Miscellaneous New Modules
-------------------------
* Added a new CDR module, cdr_sqlite3_custom.
* Added a new realtime configuration module, res_config_sqlite
* Added a new codec translation module, codec_resample, which re-samples
signed linear audio between 8 kHz and 16 kHz to help support wideband
codecs.
* Added a new module, res_phoneprov, which allows auto-provisioning of phones
based on configuration templates that use Asterisk dialplan function and
variable substitution. It should be possible to create phone profiles and
templates that work for the majority of phones provisioned over http. It
is currently only intended to provision a single user account per phone.
An example profile and set of templates for Polycom phones is provided.
NOTE: Polycom firmware is not included, but should be placed in
AST_DATA_DIR/phoneprov/configs to match up with the included templates.
* Added a new module, app_jack, which provides interfaces to JACK, the Jack
Audio Connection Kit (http://www.jackaudio.org/). Two interfaces are
provided; there is a JACK() application, and a JACK_HOOK() function. Both
interfaces create an input and output JACK port. The application makes
these ports the endpoint of the call. The audio coming from the channel
goes out the output port and whatever comes back in on the input port is
what gets sent to the channel. The JACK_HOOK() function turns on a JACK
audiohook on the channel. This lets you run the audio coming from a
channel through JACK, and whatever comes back in is what gets forwarded
on as the channel's audio. This is very useful for building custom
vocoders or doing recording or analysis of the channel's audio in another
application.
* Added a new module, res_config_curl, which permits using a HTTP POST url
to retrieve, create, update, and delete realtime information from a remote
web server. Note that this module requires func_curl.so to be loaded for
backend functionality.
* Added a new module, res_config_ldap, which permits the use of an LDAP
server for realtime data access.
* Added support for writing and running your dialplan in lua using the pbx_lua
Russell Bryant
committed
module. See configs/extensions.lua.sample for examples of how to do this.
Russell Bryant
committed
Russell Bryant
committed
-------------
* Ability to use libcap to set high ToS bits when non-root
on Linux. If configure is unable to find libcap then you
can use --with-cap to specify the path.
* Added maxfiles option to options section of asterisk.conf which allows you to specify
what Asterisk should set as the maximum number of open files when it loads.
* Added the jittertargetextra configuration option.
* Added support for setting the CoS for VLAN traffic (802.1p). See the sample
configuration files for the IP channel drivers. The new option is "cos".
Sean Bright
committed
This information is also documented on the Asterisk wiki at
https://wiki.asterisk.org/wiki/x/EYBG
Russell Bryant
committed
* When originating a call using AMI or pbx_spool that fails the reason for failure
will now be available in the failed extension using the REASON dialplan variable.
* Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
It allows you to configure a prefix for auto-monitor recordings.
* A new extension pattern matching algorithm, based on a trie, is introduced
here, that could noticeably speed up mid-sized to large dialplans.
It is NOT used by default, as duplicating the behaviour of the old pattern
matcher is still under development. A config file option, in extensions.conf,
in the [general] section, called "extenpatternmatchingnew", is by default
set to false; setting that to true will force the use of the new algorithm.
Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can
be used to switch the algorithms at run time.
* A new option when starting a remote asterisk (rasterisk, asterisk -r) for
specifying which socket to use to connect to the running Asterisk daemon
(-s)
Steve Murphy
committed
* Performance enhancements to the sched facility, which is used in
the channel drivers, etc. Added hashtabs and doubly-linked lists
to speed up deletion; start at the beginning or end of list to
speed up insertion.
* Added Doubly-linked lists after the fashion of linkedlists.h. They are in
dlinkedlists.h. Doubly-linked lists feature fast deletion times.
Added regression tests to the tests/ dir, also.
* Added a refcount trace feature to astobj2 for those trying to balance
object creation, deletion; work, play; space and time. See the
notes in astobj2.h. Also, see utils/refcounter as well, as a
quick way to find unbalanced refcounts in what could be a sea
of objects that were balanced.
Jason Parker
committed
* Added logging to 'make update' command. See update.log
* Added strictrtp option to rtp.conf. If enabled this will drop RTP packets that
do not come from the remote party.
Russell Bryant
committed
* Added the 'n' option to the SpeechBackground application to tell it to not
answer the channel if it has not already been answered.
* Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
turned on, via the CHANNEL(trace) dialplan function. Could be useful for
dialplan debugging.
* iLBC source code no longer included (see UPGRADE.txt for details)
* If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if
deadlock is detected, a backtrace of the stack which led to the lock calls
will be output to the CLI.
* If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
the "core show locks" CLI command will give lock information output as well
as a backtrace of the stack which led to the lock calls.
* users.conf now sports an optional alternateexts property, which permits
allocation of additional extensions which will reach the specified user.
* A new option for the configure script, --enable-internal-poll, has been added
for use with systems which may have a buggy implementation of the poll system
call. If you notice odd behavior such as the CLI being unresponsive on remote
consoles, you may want to try using this option. This option is enabled by default
on Darwin systems since it is known that the Darwin poll() implementation has
odd issues.
Timer Changes
--------------------
* In addition to timing from DAHDI, there is a new timing module called
res_timing_timerfd. In order to use this, you must be running Linux with
a kernel version 2.6.25 or newer as well as glibc 2.8 or newer. The configure
script will be able to tell if you have the requirements. From menuselect, select
res_timing_timerfd from the Resource Modules menu.