Newer
Older
Kevin P. Fleming
committed
======================================================================
===
=== This file documents the new and/or enhanced functionality added in
=== the Asterisk versions listed below. This file does NOT include
=== changes in behavior that would not be backwards compatible with
=== previous versions; for that information see the UPGRADE.txt file
=== and the other UPGRADE files for older releases.
===
======================================================================
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 1.6.2 to Asterisk 1.6.3 -------------
------------------------------------------------------------------------------
SIP Changes
-----------
* Added preferred_codec_only option in sip.conf. This feature limits the joint
codecs sent in response to an INVITE to the single most preferred codec.
* Added SIP_CODEC_OUTBOUND dialplan variable which can be used to set the codec
to be used for the outgoing call. It must be one of the codecs configured
for the device.
* Added tlsprivatekey option to sip.conf. This allows a separate .pem file
to be used for holding a private key. If tlsprivatekey is not specified,
tlscertfile is searched for both public and private key.
* Added tlsclientmethod option to sip.conf. This allows the protocol for
outbound client connections to be specified.
Kevin P. Fleming
committed
* The sendrpid parameter has been expanded to include the options
'rpid' and 'pai'. Setting sendrpid to 'rpid' will cause Remote-Party-ID
header to be sent (equivalent to setting sendrpid=yes) and setting
sendrpid to 'pai' will cause P-Asserted-Identity header to be sent.
Applications
------------
* Added progress option to the app_dial D() option. When progress DTMF is
present, those values are sent immediatly upon receiving a PROGRESS message
regardless if the call has been answered or not.
* Added functionality to the app_dial F() option to continue with execution
at the current location when no parameters are provided.
* Added c() option to app_chanspy. This option allows custom DTMF to be set
to cycle through the next avaliable channel. By default this is still '*'.
* Added x() option to app_chanspy. This option allows DTMF to be set to
exit the application.
Mark Michelson
committed
Dialplan Functions
------------------
* Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
setting various connected line and redirecting party information.
* The CHANNEL() function now supports the "name" option.
Kevin P. Fleming
committed
* For DAHDI channels, the CHANNEL() dialplan function now
supports changing the channel's buffer policy (for the current
call only), using this syntax:
exten => s,n,Set(CHANNEL(buffers)=6,full)
This would change the channel to the 'full' buffer policy and
6 (six) buffers. Possible options for this setting are the same
as those in chan_dahdi.conf.
* For DAHDI channels, the CHANNEL() dialplan function now allows
the dialplan to request changes in the configuration of the active
echo canceller on the channel (if any), for the current call only.
The syntax is:
exten => s,n,Set(CHANNEL(echocan_mode)=off)
The possible values are:
on - normal mode (the echo canceller is actually reinitalized)
off - disabled
fax - FAX/data mode (NLP disabled if possible, otherwise completely
disabled)
voice - voice mode (returns from FAX mode, reverting the changes that
were made when FAX mode was requested)
Mark Michelson
committed
Queue changes
-------------
* A new option, 'I' has been added to both app_queue and app_dial.
By setting this option, Asterisk will not update the caller with
connected line changes or redirecting party changes when they occur.
mISDN channel driver (chan_misdn) changes
----------------------------------------
* Added display_connected parameter to misdn.conf to put a display string
in the CONNECT message containing the connected name and/or number if
the presentation setting permits it.
* Added display_setup parameter to misdn.conf to put a display string
in the SETUP message containing the caller name and/or number if the
presentation setting permits it.
* Made misdn.conf parameters localdialplan and cpndialplan take a -1 to
indicate the dialplan settings are to be obtained from the asterisk
channel.
* Made misdn.conf parameter callerid accept the "name" <number> format
used by the rest of the system.
* Made use the nationalprefix and internationalprefix misdn.conf
parameters to prefix any received number from the ISDN link if that
number has the corresponding Type-Of-Number.
* Added the following new parameters: unknownprefix, netspecificprefix,
subscriberprefix, and abbreviatedprefix in misdn.conf to prefix any
received number from the ISDN link if that number has the corresponding
Type-Of-Number.
* Added new dialplan application misdn_command which permits controlling
the CCBS/CCNR functionality.
* Added new dialplan function mISDN_CC which permits retrieval of various
values from an active call completion record.
Richard Mudgett
committed
* For PTP, you should manually send the COLR of the redirected-to party
for an incomming redirected call if the incoming call could experience
further redirects. Just set the REDIRECTING(to-num,i) = ${EXTEN} and
set the REDIRECTING(to-pres) to the COLR. A call has been redirected
if the REDIRECTING(from-num) is not empty.
* For outgoing PTP redirected calls, you now need to use the inhibit(i)
option on all of the REDIRECTING statements before dialing the
redirected-to party. You still have to set the REDIRECTING(to-xxx,i)
and the REDIRECTING(from-xxx,i) values. The PTP call will update the
redirecting-to presentation (COLR) when it becomes available.
* Added outgoing_colp parameter to misdn.conf to filter outgoing COLP
information.
Mark Michelson
committed
thirdparty mISDN enhancements
-----------------------------
mISDN has been modified by Digium, Inc. to greatly expand facility message
support to allow:
* Enhanced COLP support for call diversion and transfer.
* CCBS/CCNR support.
The latest modified mISDN v1.1.x based version is available at:
http://svn.digium.com/svn/thirdparty/mISDN/trunk
http://svn.digium.com/svn/thirdparty/mISDNuser/trunk
Tagged versions of the modified mISDN code are available under:
http://svn.digium.com/svn/thirdparty/mISDN/tags
http://svn.digium.com/svn/thirdparty/mISDNuser/tags
Mark Michelson
committed
Asterisk Manager Interface
--------------------------
* The Hangup action now accepts a Cause header which may be used to
set the channel's hangup cause.
* sslprivatekey option added to manager.conf and http.conf. Adds the ability
to specify a separate .pem file to hold a private key. By default sslcert
is used to hold both the public and private key.
* Options in manager.conf and http.conf with the 'ssl' prefix have been replaced
for options containing the 'tls' prefix. For example, 'sslenable' is now
'tlsenable'. This has been done in effort to keep ssl and tls options consistent
across all .conf files. All affected sample.conf files have been modified to
reflect this change. Previous options such as 'sslenable' still work,
but options with the 'tls' prefix are preferred.
Kevin P. Fleming
committed
Logger
------
* 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).
CDR
---
* Multiple files and formats can now be specified in cdr_custom.conf.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 1.6.1 to Asterisk 1.6.2 -------------
------------------------------------------------------------------------------
SIP Changes
-----------
* Added support for SUBSCRIBE/NOTIFY with dialog-info based call pickups.
Snom phones use this for call pickup of extensions that the phone is
subscribed to.
* Added support for subscribing to a voice mailbox on a remote server and
making the new/old message count available to local devices.
* Added support for setting the domain in the URI for caller of an
outbound call by using the SIPFROMDOMAIN channel variable.
* Added a new configuration option "remotesecret" for authentication to
remote services. For backwards compatibility, "secret" still has the
same function as before, but now you can configure both a remote secret and a
local secret for mutual authentication.
Dwayne M. Hubbard
committed
* Added a new 'faxdetect=yes|no' configuration option to sip.conf. When this
option is enabled, a SIP channel will go to the fax extension (if it exists)
after T38 is negotiated. This option is disabled by default.
* If the channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is set,
the sound will be played to the target of an attended transfer
* Added two new configuration options, "qualifygap" and "qualifypeers", which allow
finer control over how many peers Asterisk will qualify and the gap between them
when all peers need to be qualified at the same time.
Matthew Nicholson
committed
* Added a new 'ignoresdpversion' option to sip.conf. When this is enabled
(either globally or for a specific peer), chan_sip will treat any SDP data
it receives as new data and update the media stream accordingly. By
default, Asterisk will only modify the media stream if the SDP session
version received is different from the current SDP session version. This
option is required to interoperate with devices that have non-standard SDP
session version implementations (observed with Microsoft OCS). This option
Mark Michelson
committed
* The parsing of register => lines in sip.conf has been modified to allow a port
to be present in the "user" portion. Please see the sip.conf.sample file for more
information
Joshua Colp
committed
* Added support for subscribing to MWI on a remote server and making the status available
as a mailbox. Please see the sip.conf.sample file for more information.
* Added a function to remove SIP headers added in the dialplan before the
first INVITE is generated - SIPRemoveHeader()
* Channel variables set with setvar= in a device configuration is now
set both for inbound and outbound calls.
* Added support for ITU G.722.1 and G.722.1C (Siren7 and Siren14) media streams.
David Vossel
committed
IAX2 changes
------------
* Added immediate option to iax.conf
* Added forceencryption option to iax.conf
* Added Encryption and Trunk status to manager command "iaxpeers"
Skinny Changes
--------------
* The configuration file now holds separate sections for devices and lines.
Please have a look at configs/skinny.conf.sample and change your skinny.conf
accordingly.
Tilghman Lesher
committed
DAHDI Changes
-------------
* chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
support for LibOpenR2. http://www.libopenr2.org/
Tilghman Lesher
committed
* The UK option waitfordialtone has been added for use with BT analog
lines.
* Added a 'faxbuffers' configuration option to chan_dahdi.conf. This option
is used in conjunction with the 'faxdetect' configuration option. When
'faxbuffers' is used and fax tones are detected, the channel will dynamically
switch to the configured faxbuffers policy. For example, to use 6 buffers
and a 'full' buffer policy for a fax transmission, add:
faxbuffers=>6,full
The faxbuffers configuration will be in affect until the call is torn down.
* Added service message support for 4ESS/5ESS switches.
Tilghman Lesher
committed
Tilghman Lesher
committed
Dialplan Functions
------------------
* Added a new dialplan function, CURLOPT, which permits setting various
options that may be useful with the CURL dialplan function, such as
cookies, proxies, connection timeouts, passwords, etc.
* Permit the syntax and synopsis fields of the corresponding dialplan
functions to be individually set from func_odbc.conf.
* Added debugging CLI functions to func_odbc, 'odbc read' and 'odbc write'.
Tilghman Lesher
committed
* func_odbc now may specify an insert query to execute, when the write query
affects 0 rows (usually indicating that no such row exists).
Tilghman Lesher
committed
* Added a new dialplan function, LISTFILTER, which permits removing elements
from a set list, by name. Uses the same general syntax as the existing CUT
and FIELDQTY dialplan functions, which also manage lists.
* Added REALTIME_FIELD and REALTIME_HASH, which should aid users in better
obtaining realtime data from the dialplan.
* Added LOCAL_PEEK, which I have no idea how to use, but Leif Madsen wanted it.
Russell says it's, like, a scope resolution function for LOCAL variables.
Totally. Hopefully, that means more to you than it does to me.
* Added AUDIOHOOK_INHERIT. For information on its use, please see the output
of "core show function AUDIOHOOK_INHERIT" from the CLI
* Added AES_ENCRYPT. For information on its use, please see the output
of "core show function AES_ENCRYPT" from the CLI
* Added AES_DECRYPT. For information on its use, please see the output
of "core show function AES_DECRYPT" from the CLI
* func_odbc now supports database transactions across multiple queries.
Applications
------------
Tilghman Lesher
committed
* DAHDISendCallreroutingFacility parameters are now comma-separated,
instead of the old pipe.
* Scheduled meetme conferences may now have their end times extended by
using MeetMeAdmin.
* app_authenticate now gives the ability to select a prompt other than
the default.
Tilghman Lesher
committed
* app_directory now pays attention to the searchcontexts setting in
voicemail.conf and will look through all contexts, if no context is
specified in the initial argument.
* A new application, Originate, has been introduced, that allows asynchronous
call origination from the dialplan.
* Voicemail now permits setting the emailsubject and emailbody per mailbox,
in addition to the setting in the "general" context.
* Added ConfBridge dialplan application which does conference bridges without
DAHDI. For information on its use, please see the output of
"core show application ConfBridge" from the CLI.
Miscellaneous
-------------
* The Asterisk CLI has a new command, "channel redirect", which is similar in
operation to the AMI Redirect action.
* 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.
Tilghman Lesher
committed
* extensions.conf now allows you to use keyword "same" to define an extension
without actually specifying an extension. It uses exactly the same pattern
as previously used on the last "exten" line. For example:
exten => 123,1,NoOp(something)
same => n,SomethingElse()
Kevin P. Fleming
committed
* musiconhold.conf classes of type 'files' can now use relative directory paths,
which are interpreted as relative to the astvarlibdir setting in asterisk.conf.
* All deprecated CLI commands are removed from the sourcecode. They are now handled
by the new clialiases module. See cli_aliases.conf.sample file.
* Times within timespecs are now accurate down to the minute. This is a change
from historical Asterisk, which only provided timespecs rounded to the nearest
even (read: evenly divisible by 2) minute mark.
Tilghman Lesher
committed
* The realtime switch now supports an option flag, 'p', which disables searches for
pattern matches.
* In addition to a time range and date range, timespecs now accept a 5th optional
argument, timezone. This allows you to perform time checks on alternate
timezones, especially if those daylight savings time ranges vary from your
machine's native timezone. See GotoIfTime, ExecIfTime, IFTIME(), and timed
includes.
* The contrib/scripts/ directory now has a script called sip_nat_settings that will
give you the correct output for an asterisk box behind nat. It will give you the
externhost and localnet settings.
* The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
can connect calls in passthrough mode, as well as record and play back files.
* Successful and unsuccessful call pickup can now be alerted through sounds, by
using pickupsound and pickupfailsound in features.conf.
* ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default.
This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
instead of the /var/run/asterisk.pid where it used to be. This will make
installs as non-root easier to manage.
Asterisk Manager Interface
--------------------------
* When using the AMI over HTTP, you can now include a 'SuppressEvents' header (with
a non-empty value) in your request. If you do this, any pending AMI events will
*not* be included in the response to your request as they would normally, but
will be left in the event queue for the next request you make to retrieve. For
some applications, this will allow you to guarantee that you will only see
events in responses to 'WaitEvent' actions, and can better know when to expect them.
To know whether the Asterisk server supports this header or not, your client can
inspect the first response back from the server to see if it includes this header:
Pragma: SuppressEvents
If this is included, the server supports event suppression.
* Added 4 new Actions to list skinny device(s) and line(s)
SKINNYdevices
SKINNYshowdevice
SKINNYlines
SKINNYshowline
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1 -------------
------------------------------------------------------------------------------
Device State Handling
---------------------
* The event infrastructure in Asterisk got another big update to help support
distributed events. It currently supports distributed device state and
distributed Voicemail MWI (Message Waiting Indication). A new module has
been merged, res_ais, which facilitates communicating events between servers.
It uses the SAForum AIS (Service Availability Forum Application Interface
Specification) CLM (Cluster Management) and EVT (Event) services to maintain
a cluster of Asterisk servers, and to share events between them. For more
information on setting this up, see doc/distributed_devstate.txt.
Russell Bryant
committed
Dialplan Functions
------------------
* Added a new dialplan function, AST_CONFIG(), which allows you to access
variables from an Asterisk configuration file.
Russell Bryant
committed
* The JACK_HOOK function now has a c() option to supply a custom client name.
* Added two new dialplan functions from libspeex for audio gain control and
denoise, AGC() and DENOISE(). Both functions can be applied to the tx and
rx directions of a channel from the dialplan.
* The SMDI_MSG_RETRIEVE function now has the ability to search for SMDI messages
based on other parameters. The default is still to search based on the
forwarding station ID. However, there are new options that allow you to search
based on the message desk terminal ID, or the message desk number.
* TIMEOUT() has been modified to be accurate down to the millisecond.
* ENUM*() functions now include the following new options:
- 'u' returns the full URI and does not strip off the URI-scheme.
- 's' triggers ISN specific rewriting
- 'i' looks for branches into an Infrastructure ENUM tree
- 'd' for a direct DNS lookup without any flipping of digits.
* TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
* CHANNEL() now has options for the maximum, minimum, and standard or normal
deviation of jitter, rtt, and loss for a call using chan_sip.
DAHDI channel driver (chan_dahdi) Changes
Kevin P. Fleming
committed
----------------------------------------
* Channels can now be configured using named sections in chan_dahdi.conf, just
Kevin P. Fleming
committed
like other channel drivers, including the use of templates.
Tilghman Lesher
committed
* The default for pridialplan has changed from 'national' to 'unknown'.
Kevin P. Fleming
committed
PBX Changes
-----------
* It is now possible to specify a pattern match as a hint. Once a phone subscribes
to something that matches the pattern a hint will be created using the contents
and variables evaluated.
* Dialplan matching has been extended to allow an extension to return to the
PBX core to wait for more digits. This is done by using the new dialplan
application called "Incomplete". This will permit a whole new level of
extension control, by giving the administrator more control over early
matches employing one of the short-circuit pattern match operators. Note
that custom applications can trigger this same behavior by returning the
special value AST_PBX_INCOMPLETE.
Tilghman Lesher
committed
Application Changes
-------------------
* Directory now permits both first and last names to be matched at the same
time. In addition, the number of digits to enter of the name can be set in
the arguments to Directory; previously, you could enter only 3, regardless
of how many names are in your company. For large companies, this should be
quite helpful.
* Voicemail now permits a mailbox setting to wrap around from first to last
messages, if the "messagewrap" option is set to a true value.
* Voicemail now permits an external script to be run, for password validation.
The script should output "VALID" or "INVALID" on stdout, depending upon the
wish to validate or invalidate the password given. Arguments are:
"mailbox" "context" "oldpass" "newpass". See the sample voicemail.conf for
more details
* Dial has a new option: F(context^extension^pri), which permits a callee to
continue in the dialplan, at the specified label, if the caller hangs up.
Sean Bright
committed
* ChanSpy and ExtenSpy have a new option, 's' which suppresses speaking the
technology name (e.g. SIP, IAX, etc) of the channel being spied on.
Russell Bryant
committed
* The Jack application now has a c() option to supply a custom client name.
* Chanspy has a new option, 'B', which can be used to "barge" on a call. This is
like the pre-existing whisper mode, except that the spy can also talk to the
participant on the bridged channel as well.
Mark Michelson
committed
* Chanspy has a new option, 'n', which will allow for the spied-on party's name
to be spoken instead of the channel name or number. For more information on the
use of this option, issue the command "core show application ChanSpy" from the
Asterisk CLI.
* Chanspy has a new option, 'd', which allows the spy to use DTMF to swap between
spy modes. Use of this feature overrides the typical use of numeric DTMF. In other
words, if using the 'd' option, it is not possible to enter a number to append to
the first argument to Chanspy(). Pressing 4 will change to spy mode, pressing 5 will
change to whisper mode, and pressing 6 will change to barge mode.
* ExternalIVR now takes several options that affect the way it performs, as
well as having several new commands. Please see doc/externalivr.txt for the
complete documentation.
* Added ability to communicate over a TCP socket instead of forking a child process for the
ExternalIVR application.
* ChanIsAvail has a new option, 'a', which will return all available channels instead
of just the first one if you give the function more then one channel to check.
* PrivacyManager now takes an option where you can specify a context where the
given number will be matched. This way you have more control over who is allowed
and it stops the people who blindly enter 10 digits.
* ForkCDR has new options: 'a' updates the answer time on the new CDR; 'A' locks
answer times, disposition, on orig CDR against updates; 'D' Copies the disposition
from the orig CDR to the new CDR after reset; 'e' sets the 'end' time on the
original CDR; 'R' prevents the new CDR from being reset; 's(var=val)' adds/changes
the 'var' variable on the original CDR; 'T' forces ast_cdr_end(), ast_cdr_answer(),
obey the LOCKED flag on cdr's in the chain, and also the ast_cdr_setvar() func.
* The Dial() application no longer copies the language used by the caller to the callee's
channel. If you desire for the caller's channel's language to be used for file playback
to the callee, then the file specified may be prepended with "${CHANNEL(language)}/" .
* SendImage() no longer hangs up the channel on error; instead, it sets the
status variable SENDIMAGESTATUS to one of 'SUCCESS', 'FAILURE', or
'UNSUPPORTED'. This change makes SendImage() more consistent with other
applications.
Jeff Peeler
committed
* Park has a new option, 's', which silences the announcement of the parking space number.
* A non-numeric, zero, or negative timeout specified to Dial() will now be interpreted as
invalid input and will be assumed to mean that no timeout is desired.
Tilghman Lesher
committed
Joshua Colp
committed
SIP Changes
-----------
* Added DNS manager support to registrations for peers referencing peer entries.
DNS manager runs in the background which allows DNS lookups to be run asynchronously
as well as periodically updating the IP address. These properties allow for
better performance as well as recovery in the event of an IP change.
* Performance improvements via using hash tables (astobj2) and doubly-linked lists to improve
load/reload of large numbers of peers/users by ~40x (for large lists of peers.
Initially, we saw 4x improvement in call setup/destruction, but at the time
of merging, this gain has disappeared; further research will be done to try
and restore this performance improvement. Astobj2 refcounting is now used
for users, peers, and dialogs. Users are encouraged to assist in regression
testing and problem reporting!
Joshua Colp
committed
* Added ability to specify registration expiry time on a per registration basis in
the register line.
Olle Johansson
committed
* Added support for T140 RED - redundancy in T.140 to prevent text loss due to
lost packets.
* Added t38pt_usertpsource option. See sip.conf.sample for details.
* Added SIPnotify AMI command, for sending arbitrary SIP notify commands.
Steve Murphy
committed
* 'sip show peers' and 'sip show users' display their entries sorted in
alphabetical order, as opposed to the order they were in, in the config
file or database.
Tilghman Lesher
committed
* Videosupport now supports an additional option, "always", which always sets
up video RTP ports, even on clients that don't support it. This helps with
callfiles and certain transfers to ensure that if two video phones are
connected, they will always share video feeds.
IAX Changes
-----------
* Existing DNS manager lookups extended to check for SRV records.
* IAX2 encryption support has been improved to support periodic key rotation
within a call for enhanced security. The option "keyrotate" has been
provided to disable this functionality to preserve backwards compatibility
with older versions of IAX2 that do not support key rotation.
Joshua Colp
committed
CLI Changes
-----------
* New CLI command, "config reload <file.conf>" which reloads any module that
references that particular configuration file. Also added "config list"
which shows which configuration files are in use.
Brett Bryant
committed
* New CLI commands, "pri show version" and "ss7 show version" that will
display which version of libpri and libss7 are being used, respectively.
A new API call was added so trunk will now have to be compiled against
a versions of libpri and libss7 that have them or it will not know that
these libraries exist.
Tilghman Lesher
committed
* The commands "core show globals", "core set global" and "core set chanvar" has
been deprecated in favor of the more semanticly correct "dialplan show globals",
"dialplan set chanvar" and "dialplan set global".
* New CLI command "dialplan show chanvar" to list all variables associated
with a given channel.
DNS manager changes
-------------------
* Addresses managed by DNS manager now can check to see if there is a DNS
SRV record for a given domain and will use that hostname/port if present.
Tilghman Lesher
committed
AMI - The manager (TCP/TLS/HTTP)
--------------------------------
* The Status command now takes an optional list of variables to display
along with channel status.
* The QueueEntry event now also includes the channel's uniqueid
Tilghman Lesher
committed
ODBC Changes
------------
* res_odbc no longer has a limit of 1023 total possible unshared connections,
as some people were running into this limit. This limit has been increased
to 4.2 billion.
Queue changes
-------------
* The TRANSFER queue log entry now includes the the caller's original
position in the transferred-from queue.
* A new configuration option, "timeoutpriority" has been added. Please see the section labeled
"QUEUE TIMING OPTIONS" in configs/queues.conf.sample for a detailed explanation of the option
as well as an explanation about timeout options in general
* Added a new option - C - for forcing the "answered elsewhere" flag on
cancellation of calls in to members of the queue. This is to avoid the
call to a member of a queue having the call listed as a "missed call".
Realtime changes
----------------
* Several (ODBC, Postgres, MySQL, SQLite) realtime drivers have been given
adaptive capabilities. What this means in practical terms is that if your
realtime table lacks critical fields, Asterisk will now emit warnings to
that effect. Also, some of the realtime drivers have the ability (if
configured) to automatically add those columns to the table with the
correct type and length.
Tilghman Lesher
committed
Miscellaneous
-------------
* The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND can now be set using
the 'setvar' option to cause a given audio file to be played upon completion
of an attended transfer. Currently it works for DAHDI, IAX2, SIP, and
Skinny channels only.
* You can now compile Asterisk against the Hoard Memory Allocator, see doc/hoard.txt
for more information.
* Config file variables may now be appended to, by using the '+=' append
operator. This is most helpful when working with long SQL queries in
func_odbc.conf, as the queries no longer need to be specified on a single
line.
* CDR config file, cdr.conf, has an added option, "initiatedseconds",
which will add a second to the billsec when the ending
time is set, if the number in the microseconds field of the end time is
greater than the number of microseconds in the answer time. This allows
users to count the 'initiated' seconds in their billing records.
Tilghman Lesher
committed
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0 -------------
------------------------------------------------------------------------------
Russell Bryant
committed
AMI - The manager (TCP/TLS/HTTP)
--------------------------------
* Manager has undergone a lot of changes, all of them documented
in doc/manager_1_1.txt
* Manager version has changed to 1.1
* Added a new action 'CoreShowChannels' to list currently defined channels
and some information about them.
* Added a new action 'SIPshowregistry' to list SIP registrations.
* Added TLS support for the manager interface and HTTP server
Russell Bryant
committed
* Added the URI redirect option for the built-in HTTP server
* The output of CallerID in Manager events is now more consistent.
CallerIDNum is used for number and CallerIDName for name.
Olle Johansson
committed
* Enable https support for builtin web server.
Russell Bryant
committed
See configs/http.conf.sample for details.
* Added a new action, GetConfigJSON, which can return the contents of an
Asterisk configuration file in JSON format. This is intended to help
improve the performance of AJAX applications using the manager interface
over HTTP.
* SIP and IAX manager events now use "ChannelType" in all cases where we
indicate channel driver. Previously, we used a mixture of "Channel"
and "ChannelDriver" headers.
* Added a "Bridge" action which allows you to bridge any two channels that
are currently active on the system.
Joshua Colp
committed
* Added a "ListAllVoicemailUsers" action that allows you to get a list of all
the voicemail users setup.
Tilghman Lesher
committed
* cdr_manager now reports events via the "cdr" level, separating it from
the very verbose "call" level.
Olle Johansson
committed
* Manager users are now stored in memory. If you change the manager account
list (delete or add accounts) you need to reload manager.
* Added Masquerade manager event for when a masquerade happens between
two channels.
* Added "manager reload" command for the CLI
* Lots of commands that only provided information are now allowed under the
Reporting privilege, instead of only under Call or System.
* The IAX* commands now require either System or Reporting privilege, to
mirror the privileges of the SIP* commands.
* Added ability to retrieve list of categories in a config file.
* Added ability to retrieve the content of a particular category.
* Added ability to empty a context.
* Created new action to create a new file.
* Updated delete action to allow deletion by line number with respect to category.
* Added new action insert to add new variable to category at specified line.
* Updated action newcat to allow new category to be inserted in file above another
existing category.
* Added new event "JitterBufStats" in the IAX2 channel
Tilghman Lesher
committed
* Originate now requires the Originate privilege and, if you want to call out
to a subshell, it requires the System privilege, as well. This was done to
enhance manager security.
* Originate now accepts codec settings with "Codecs: alaw, ulaw, h264"
* New command: Atxfer. See doc/manager_1_1.txt for more details or
manager show command Atxfer from the CLI
* New command: IAXregistry. See doc/manager_1_1.txt for more details or
manager show command IAXregistry from the CLI
Russell Bryant
committed
Dialplan functions
------------------
* Added the DEVICE_STATE() dialplan function which allows retrieving any device
Russell Bryant
committed
state in the dialplan, as well as creating custom device states that are
controllable from the dialplan.
Russell Bryant
committed
* Extend CALLERID() function with "pres" and "ton" parameters to
fetch string representation of calling number presentation indicator
and numeric representation of type of calling number value.
* MailboxExists converted to dialplan function
* A new option to Dial() for telling IP phones not to count the call
Russell Bryant
committed
as "missed" when dial times out and cancels.
Tilghman Lesher
committed
* Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan
Russell Bryant
committed
mutex. No deadlocks are possible, as LOCK() only allows a single lock to be
held for any given channel. Also, locks are automatically freed when a
channel is hung up.
Russell Bryant
committed
* Added HINT() dialplan function that allows retrieving hint information.
Russell Bryant
committed
Hints are mappings between extensions and devices for the sake of
determining the state of an extension. This function can retrieve the list
of devices or the name associated with a hint.
Russell Bryant
committed
* Added EXTENSION_STATE() dialplan function which allows retrieving the state
of any extension.
* Added SYSINFO() dialplan function which allows retrieval of system information
* Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for
the existence of a dialplan target.
* Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to
upper and lower case, respectively.
* When bridging, Asterisk sets the BRIDGEPVTCALLID to the channel drivers unique
ID for the call (not the Asterisk call ID or unique ID), provided that the
channel driver supports this. For SIP, you get the SIP call-ID for the
bridged channel which you can store in the CDR with a custom field.
Russell Bryant
committed
CLI Changes
-----------
* Added CLI permissions, config file: cli_permissions.conf
default is to allow all commands for every local user/group.
Also this new feature added three new CLI commands:
- cli check permissions {<username>|@<groupname>|<username>@<groupname>} [<command>]
- cli reload permissions
- cli show permissions
* New CLI command "core show hint" (usage: core show hint <exten>)
Russell Bryant
committed
* New CLI command "core show settings"
* Added 'core show channels count' CLI command.
* Added the ability to set the core debug and verbose values on a per-file basis.
* Added 'queue pause member' and 'queue unpause member' CLI commands
* Ability to set process limits ("ulimit") without restarting Asterisk
* Enhanced "agi debug" to print the channel name as a prefix to the debug
output to make debugging on busy systems much easier.
Steve Murphy
committed
* New CLI commands "dialplan set extenpatternmatching true/false"
Russell Bryant
committed
* New CLI command: "core set chanvar" to set a channel variable from the CLI.
Russell Bryant
committed
* Added an easy way to execute Asterisk CLI commands at startup. Any commands
Russell Bryant
committed
listed in the startup_commands section of cli.conf will get executed.
* Added a CLI command, "devstate change", which allows you to set custom device
states from the func_devstate module that provides the DEVICE_STATE() function
and handling of the "Custom:" devices.
* New CLI command: "sip show sched" which shows all ast_sched entries for sip,
sorted into the different possible callbacks, with the number of entries
currently scheduled for each. Gives you a feel for how busy the sip channel
driver is.
* Added 'skinny show lines verbose' CLI command. This will show the subs for every channel.
* Cleanup another bunch of CLI commands. Now all modules follow the same schema.
(Done by lmadsen, junky and mvanbaak during the devcon 2008)
Russell Bryant
committed
SIP changes
-----------
Russell Bryant
committed
* Improved NAT and STUN support.
chan_sip now can use port numbers in bindaddr, externip and externhost
options, as well as contact a STUN server to detect its external address
for the SIP socket. See sip.conf.sample, 'NAT' section.
Russell Bryant
committed
* The default SIP useragent= identifier now includes the Asterisk version
* A new option, match_auth_username in sip.conf changes the matching of incoming requests.
If set, and the incoming request carries authentication info,
the username to match in the users list is taken from the Digest header
rather than from the From: field. This feature is considered experimental.
* The "musiconhold" and "musicclass" settings in sip.conf are now removed,
since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4
* The "localmask" setting was removed in version 1.2 and the reminder about it
being removed is now also removed.
Mark Michelson
committed
* A new option "busylevel" for setting a level of calls where asterisk reports
a device as busy, to separate it from call-limit. This value is also added
to the SIP_PEER dialplan function.
Russell Bryant
committed
* A new realtime family called "sipregs" is now supported to store SIP registration
data. If this family is defined, "sippeers" will be used for configuration and
"sipregs" for registrations. If it's not defined, "sippeers" will be used for
registration data, as before.
* The SIPPEER function have new options for port address, call and pickup groups
* Added support for T.140 realtime text in SIP/RTP
* The "checkmwi" option has been removed from sip.conf, as it is no longer
required due to the restructuring of how MWI is handled. See the descriptions
in this file of the "pollmailboxes" and "pollfreq" options to voicemail.conf
for more information.
Joshua Colp
committed
* Added rtpdest option to CHANNEL() dialplan function.
Joshua Colp
committed
* Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place.
* SIP now adds a header to the CANCEL if the call was answered by another phone
in the same dial command, or if the new c option in dial() is used.
* The new default is that 100 Trying is not sent on REGISTER attempts as the RFC specifically
Olle Johansson
committed
states it is not needed. For phones, however, that do require it the "registertrying" option
Olle Johansson
committed
* A new option called "callcounter" (global/peer/user level) enables call counters needed
Russell Bryant
committed
for better status reports needed for queues and SIP subscriptions. (Call-Limit was previously
used to enable this functionality).
* New settings for timer T1 and timer B on a global level or per device. This makes it
Russell Bryant
committed
possible to force timeout faster on non-responsive SIP servers. These settings are
considered advanced, so don't use them unless you have a problem.
* Added a dial string option to be able to set the To: header in an INVITE to any
Russell Bryant
committed
SIP uri.
Russell Bryant
committed
* Added a new global and per-peer option, qualifyfreq, which allows you to configure
the qualify frequency.
* Added SIP Session Timers support (RFC 4028). This prevents stuck SIP sessions that
were not properly torn down due to network or endpoint failures during an established
SIP session.
* Added experimental TCP and TLS support for SIP. See doc/siptls.txt and
configs/sip.conf.sample for more information on how it is used.
* Added a new configuration option "authfailureevents" that enables manager events when
a peer can't authenticate properly.
* Added DNS manager support to registrations for peers not referencing a peer entry.
Russell Bryant
committed
IAX2 changes
------------
* Added the trunkmaxsize configuration option to chan_iax2.
* Added the srvlookup option to iax.conf
* Added support for OSP. The token is set and retrieved through the CHANNEL()
dialplan function.
Olle Johansson
committed
XMPP Google Talk/Jingle changes
-------------------------------
* Added the bindaddr option to gtalk.conf.
Skinny changes
-------------
* Added skinny show device, skinny show line, and skinny show settings CLI commands.
* Proper codec support in chan_skinny.
* Added settings for IP and Ethernet QoS requests
MGCP changes
------------
* Added separate settings for media QoS in mgcp.conf
Console Channel Driver changes
* Added experimental support for video send & receive to chan_oss.
This requires SDL and ffmpeg/avcodec, plus Video4Linux or X11 to act as
a video source.
Olle Johansson
committed
Phone channel changes (chan_phone)
----------------------------------
* Added G729 passthrough support to chan_phone for Sigma Designs boards.
H.323 channel Changes
---------------------
* H323 remote hold notification support added (by NOTIFY message
and/or H.450 supplementary service)
Local channel changes
---------------------
* The device state functionality in the Local channel driver has been updated
to indicate INUSE or NOT_INUSE when a Local channel is being used as opposed
to just UNKNOWN if the extension exists.
* Added jitterbuffer support for chan_local. This allows you to use the
generic jitterbuffer on incoming calls going to Asterisk applications.
For example, this would allow you to use a jitterbuffer for an incoming
SIP call to Voicemail by putting a Local channel in the middle. This
feature is enabled by using the 'j' option in the Dial string to the Local
channel in conjunction with the existing 'n' option for local channels.
* A 'b' option has been added which causes chan_local to return the actual channel
that is behind it when queried. This is useful for transfer scenarios as the
actual channel will be transferred, not the Local channel.
Mark Michelson
committed
Agent channel changes
----------------------
* The ackcall and endcall options are now supplemented with options acceptdtmf
and enddtmf. These allow for the DTMF keypress to be configurable. The options
default to their old hard-coded values ('#' and '*' respectively) so this should
not break any existing agent installations.
Mark Michelson
committed
DAHDI channel driver (chan_dahdi) Changes
----------------------------------------
* SS7 support (via libss7 library)
* In India, some carriers transmit CID via dtmf. Some code has been added
Russell Bryant
committed
that will handle some situations. The cidstart=polarity_IN choice has been added for
those carriers that transmit CID via dtmf after a polarity change.
* CID matching information is now shown when doing 'dialplan show'.
* Added dahdi show version CLI command.
* Added setvar support to chan_dahdi.conf channel entries.
* Added two new options: mwimonitor and mwimonitornotify. These options allow
you to enable MWI monitoring on FXO lines. When the MWI state changes,
the script specified in the mwimonitornotify option is executed. An internal
event indicating the new state of the mailbox is also generated, so that
the normal MWI facilities in Asterisk work as usual.
* Added signalling type 'auto', which attempts to use the same signalling type
for a channel as configured in DAHDI. This is primarily designed for analog
Russell Bryant
committed
ports, but will also work for digital ports that are configured for FXS or FXO
signalling types. This mode is also the default now, so if your chan_dahdi.conf
Russell Bryant
committed
does not specify signalling for a channel (which is unlikely as the sample
configuration file has always recommended specifying it for every channel) then
the 'auto' mode will be used for that channel if possible.
* Added a 'dahdi set dnd' command to allow CLI control of the Do-Not-Disturb
Russell Bryant
committed
state for a channel; also ensured that the DNDState Manager event is
emitted no matter how the DND state is set or cleared.
Russell Bryant
committed
New Channel Drivers
-------------------
* Added a new channel driver, chan_unistim. See doc/unistim.txt and
configs/unistim.conf.sample for details. This new channel driver allows
you to use Nortel i2002, i2004, and i2050 phones with Asterisk.
Russell Bryant
committed
* Added a new channel driver, chan_console, which uses portaudio as a cross
platform audio interface. It was written as a channel driver that would
work with Mac CoreAudio, but portaudio supports a number of other audio
interfaces, as well. Note that this channel driver requires v19 or higher
of portaudio; older versions have a different API.
Russell Bryant
committed
DUNDi changes
-------------
* Added the ability to specify arguments to the Dial application when using
the DUNDi switch in the dialplan.
* Added the ability to set weights for responses dynamically. This can be
done using a global variable or a dialplan function. Using the SHELL()
function would allow you to have an external script set the weight for
each response.
* Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT. These
functions will allow you to initiate a DUNDi query from the dialplan,
find out how many results there are, and access each one.
Russell Bryant
committed
ENUM changes
------------
* Added two new dialplan functions, ENUMQUERY and ENUMRESULT. These
functions will allow you to initiate an ENUM lookup from the dialplan,
and Asterisk will cache the results. ENUMRESULT can be used to access
the results without doing multiple DNS queries.
Russell Bryant
committed
Voicemail Changes
-----------------
* Added the ability to customize which sound files are used for some of the
prompts within the Voicemail application by changing them in voicemail.conf
* Added the ability for the "voicemail show users" CLI command to show users
Russell Bryant
committed
configured by the dynamic realtime configuration method.
* MWI (Message Waiting Indication) handling has been significantly
restructured internally to Asterisk. It is now totally event based
instead of polling based. The voicemail application will notify other
modules that have subscribed to MWI events when something in the mailbox
changes.
This also means that if any other entity outside of Asterisk is changing
the contents of mailboxes, then the voicemail application still needs to
poll for changes. Examples of situations that would require this option
are web interfaces to voicemail or an email client in the case of using
IMAP storage. So, two new options have been added to voicemail.conf
to account for this: "pollmailboxes" and "pollfreq". See the sample
configuration file for details.
* Added "tw" language support
Mark Michelson
committed
* Added support for storage of greetings using an IMAP server
Mark Michelson
committed
* Added ability to customize forward, reverse, stop, and pause keys for message playback
* SMDI is now enabled in voicemail using the smdienable option.
* A "lockmode" option has been added to asterisk.conf to configure the file
locking method used for voicemail, and potentially other things in the
future. The default is the old behavior, lockfile. However, there is a
new method, "flock", that uses a different method for situations where the
lockfile will not work, such as on SMB/CIFS mounts.
* Added the ability to backup deleted messages, to ease recovery in the case
that a user accidentally deletes a message, and discovers that they need it.
* Reworked the SMDI interface in Asterisk. The new way to access SMDI information
is through the new functions, SMDI_MSG_RETRIEVE() and SMDI_MSG(). The file
smdi.conf can now be configured with options to map SMDI station IDs to Asterisk
voicemail boxes. The SMDI interface can also poll for MWI changes when some
outside entity is modifying the state of the mailbox (such as IMAP storage or
a web interface of some kind).
* Added the support for marking messages as "urgent." There are two methods to accomplish
this. One is to pass the 'U' option to VoiceMail(). Another way to mark a message as urgent
is to specify "review=yes" in voicemail.conf. Doing this will cause allow the user to mark
the message as urgent after he has recorded a voicemail by following the voice instructions.
When listening to voicemails using VoiceMailMain urgent messages will be presented before other
messages
Russell Bryant
committed
Queue changes
-------------
* Added the general option 'shared_lastcall' so that member's wrapuptime may be
used across multiple queues.
Russell Bryant
committed
* Added QUEUE_VARIABLES function to set queue variables added setqueuevar and
setqueueentryvar options for each queue, see queues.conf.sample for details.
* Added keepstats option to queues.conf which will keep queue
statistics during a reload.
* setinterfacevar option in queues.conf also now sets a variable
called MEMBERNAME which contains the member's name.
* Added 'Strategy' field to manager event QueueParams which represents
the queue strategy in use.
* Added option to run macro when a queue member is connected to a caller,
see queues.conf.sample for details.
* app_queue now has a 'loose' option which is almost exactly like 'strict' except it
does not count paused queue members as unavailable.
* Added min-announce-frequency option to queues.conf which allows you to control the
minimum amount of time between queue announcements for use when the caller's queue
position changes frequently.
Russell Bryant
committed
* Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the
queue log.
* Added ability for non-realtime queues to have realtime members
* Added the "linear" strategy to queues.
* Added the "wrandom" strategy to queues.
Mark Michelson
committed
* Added new channel variable QUEUE_MIN_PENALTY
* QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY may be adjusted in mid-call by defining
rules in queuerules.conf. See configs/queuerules.conf.sample for details
Mark Michelson
committed
* Added a new parameter for member definition, called state_interface. This may be
used so that a member may be called via one interface but have a different interface's
* Added new CLI and Manager commands relating to reloading queues. From the CLI, see
"queue reload", "queue reset stats". Also see "manager show command QueueReload" and
"manager show command QueueReset."
* New configuration option: randomperiodicannounce. If a list of periodic announcements is
specified by the periodic-announce option, then one will be chosen randomly when it is time
to play a periodic announcment
* New configuration options: announce-position now takes two more values in addition to "yes" and
"no." Two new options, "limit" and "more," are allowed. These are tied to another option,
announce-position-limit. By setting announce-position to "limit" callers will only have their
position announced if their position is less than what is specified by announce-position-limit.
If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
will be told that their are more than announce-position-limit callers waiting.
* Two new queue log events have been added. An ADDMEMBER event will be logged
when a realtime queue member is added and a REMOVEMEMBER event will be logged
when a realtime queue member is removed. Since there is no calling channel associated
with these events, the string "REALTIME" is placed where the channel's unique id
is typically placed.
* The configuration method for the "joinempty" and "leavewhenempty" options has
changed to a comma-separated list of methods of determining member availability
instead of vague terms such as "yes," "loose," "no," and "strict." These old four
values are still accepted for backwards-compatibility, though.
* The average talktime is now calculated on queues. This information is reported via the
CLI commands "queue show" and "queues show"; through the AMI events AgentComplete, QueueSummary,
and QueueParams; and through the channelvariable QUEUETALKTIME if setinterfacevar=yes is set for
the queue.
Russell Bryant
committed
MeetMe Changes
--------------
* The 'o' option to provide an optimization has been removed and its functionality
has been enabled by default.
Russell Bryant
committed
* When a conference is created, the UNIQUEID of the channel that caused it to be
created is stored. Then, every channel that joins the conference will have the
MEETMEUNIQUEID channel variable set with this ID. This can be used to relate
Russell Bryant
committed
callers that come and go from long standing conferences.
Russell Bryant
committed
* Added a new application, MeetMeChannelAdmin, which is similar to MeetMeAdmin,
except it does operations on a channel by name, instead of number in a conference.
This is a very useful feature in combination with the 'X' option to ChanSpy.
* Added 'C' option to Meetme which causes a caller to continue in the dialplan
when kicked out.
* Added new RealTime functionality to provide support for scheduled conferencing.
This includes optional messages to the caller if they attempt to join before
the schedule start time, or to allow the caller to join the conference early.
Also included is optional support for limiting the number of callers per
RealTime conference.
* Added the S() and L() options to the MeetMe application. These are pretty
much identical to the S() and L() options to Dial(). They let you set
timeouts for the conference, as well as have warning sounds played to
let the caller know how much time is left, and when it is running out.
* Added the ability to do "meetme concise" with the "meetme" CLI command.
This extends the concise capabilities of this CLI command to include
listing all conferences, instead of an addition to the other sub commands
for the "meetme" command.
* Added the ability to specify the music on hold class used to play into the
conference when there is only one member and the M option is used.
Joshua Colp
committed
* Added MEETME_INFO dialplan function which provides a way to query
various properties of a Meetme conference.
Other Dialplan Application Changes
----------------------------------
* Argument support for Gosub application
* From the to-do lists: straighten out the app timeout args:
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.