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.
===
======================================================================
------------------------------------------------------------------------------
Tilghman Lesher
committed
--- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
------------------------------------------------------------------------------
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.
* The 'ignoresdpversion' behavior has been made automatic when the SDP received
is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
since the call will fail if Asterisk does not process the incoming SDP, Asterisk
will accept the SDP even if the SDP version number is not properly incremented,
but will generate a warning in the log indicating that the SIP peer that sent
the SDP should have the 'ignoresdpversion' option set.
* The 'nat' option has now been been changed to have yes, no, force_rport, and
comedia as valid values. Setting it to yes forces RFC 3581 behavior and enables
symmetric RTP support. Setting it to no only enables RFC 3581 behavior if the
remote side requests it and disables symmetric RTP support. Setting it to
force_rport forces RFC 3581 behavior and disables symmetric RTP support.
Setting it to comedia enables RFC 3581 behavior if the remote side requests it
and enables symmetric RTP support.
* Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
response. This permits the master channel to know how each channel dialled
in a multi-channel setup resolved in an individual way.
David Vossel
committed
* Added 'externtcpport' and 'externtlsport' options to allow custom port
configuration for the externip and externhost options when tcp or tls is used.
* Added support for message body (stored in content variable) to SIP NOTIFY message
accessible via AMI and CLI.
Joshua Colp
committed
* Added 'media_address' configuration option which can be used to explicitly specify
the IP address to use in the SDP for media (audio, video, and text) streams.
* Added 'unsolicited_mailbox' configuration option which specifies the virtual mailbox
that the new/old count should be stored on if an unsolicited MWI NOTIFY message is
received.
Matthew Nicholson
committed
* Added 'use_q850_reason' configuration option for generating and parsing
if available Reason: Q.850;cause=<cause code> header. It is implemented
in some gateways for better passing PRI/SS7 cause codes via SIP.
IAX2 Changes
-----------
* Added rtsavesysname option into iax.conf to allow the systname to be saved
on realtime updates.
Tilghman Lesher
committed
MGCP Changes
------------
* Added ability to preset channel variables on indicated lines with the setvar
configuration option. Also, clearvars=all resets the list of variables back
to none.
* PacketCable NCS 1.0 support has been added for Docsis/Eurodocsis Networks.
See configs/res_pktccops.conf for more information.
Tilghman Lesher
committed
Applications
------------
* Added progress option to the app_dial D() option. When progress DTMF is
present, those values are sent immediately 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.
Matthew Nicholson
committed
* Added the 'a' option to app_dial to answer the calling channel before any
announcements or macros are executed.
* Modified app_dial to set answertime when the called channel answers even if
the called channel hangs up during playback of an announcement.
* Added c() option to app_chanspy. This option allows custom DTMF to be set
to cycle through the next available channel. By default this is still '*'.
* Added x() option to app_chanspy. This option allows DTMF to be set to
exit the application.
* The Voicemail application has been improved to automatically ignore messages
that only contain silence.
Tilghman Lesher
committed
* The ChanSpy application now has the 'S' option, which makes the application
Russell Bryant
committed
automatically exit once it hits a point where no more channels are available
to spy on.
Tilghman Lesher
committed
* The ChanSpy application also now has the 'E' option, which spies on a single
channel and exits when that channel hangs up.
* The MeetMe application now turns on the DENOISE() function by default, for
each participant. In our tests, this has significantly decreased background
noise (especially noisy data centers).
Tilghman Lesher
committed
* Voicemail now permits storage of secrets in a separate file, located in the
spool directory of each individual user. The control for this is located in
the "passwordlocation" option in voicemail.conf. Please see the sample
configuration for more information.
Mark Michelson
committed
Dialplan Functions
------------------
* Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
setting various connected line and redirecting party information.
Richard Mudgett
committed
* CALLERID and CONNECTEDLINE dialplan functions have been extended to
support ISDN subaddressing.
* 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 reinitialized)
Kevin P. Fleming
committed
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)
* Added new dialplan function MASTER_CHANNEL(), which permits retrieving
and setting variables on the channel which created the current channel.
Administrators should take care to avoid naming conflicts, when multiple
channels are dialled at once, especially when used with the Local channel
construct (which all could set variables on the master channel). Usage
of the HASH() dialplan function, with the key set to the name of the slave
channel, is one approach that will avoid conflicts.
* Added new dialplan function MUTEAUDIO() for muting inbound and/or outbound
audio in a channel.
* func_odbc now allows multiple row results to be retrieved without using
mode=multirow. If rowlimit is set, then additional rows may be retrieved
from the same query by using the name of the function which retrieved the
first row as an argument to ODBC_FETCH().
Philippe Sultan
committed
* Added JABBER_RECEIVE, which permits receiving XMPP messages from the
dialplan. This function returns the content of the received message.
Dialplan Variables
------------------
* Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
* Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
and is set when a dynamic feature is triggered.
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.
Matthew Nicholson
committed
* A 'relative-peroidic-announce' option has been added to queues.conf. When
enabled, this option will cause periodic announce times to be calculated
from the end of announcements rather than from the beginning.
Mark Michelson
committed
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. NOTE: This includes
comparing the incoming call's dialed number against the MSN list.
Mark Michelson
committed
* 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
libpri channel driver (chan_dahdi) DAHDI changes
-------------------------------------------
* The channel variable PRIREDIRECTREASON is now just a status variable
and it is also deprecated. Use the REDIRECTING(reason) dialplan function
to read and alter the reason.
* For Q.SIG and ETSI PRI/BRI-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) = CALLERID(dnid) and set the REDIRECTING(to-pres)
to the COLR. A call has been redirected if the REDIRECTING(count) is not
zero.
* For outgoing Q.SIG and ETSI PRI/BRI-PTP redirected calls, you 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 call
will update the redirecting-to presentation (COLR) when it becomes available.
Richard Mudgett
committed
* Added the ability to ignore calls that are not in a Multiple Subscriber
Number (MSN) list for PTMP CPE interfaces.
Matthew Nicholson
committed
* Added dynamic range compression support for dahdi channels. It is
configured via the rxdrc and txdrc parameters in chan_dahdi.conf.
Richard Mudgett
committed
* Added support for ISDN calling and called subaddress with partial support
for connected line subaddress.
Richard Mudgett
committed
* Added support for BRI PTMP NT mode. (Requires latest LibPRI.)
* Added handling of received HOLD/RETRIEVE messages and the optional ability
to transfer a held call on disconnect similar to an analog phone.
* Added CallRerouting/CallDeflection support for Q.SIG, ETSI PTP, ETSI PTMP.
Will reroute/deflect an outgoing call when receive the message.
Can use the DAHDISendCallreroutingFacility to send the message for the
supported switches.
* Added standard location to add options to chan_dahdi dialing:
Dial(DAHDI/g1[/extension[/options]])
Current options:
K(<keypad_digits>)
R Reverse charging indication
* Added Reverse Charging Indication (Collect calls) send/receive option.
Send reverse charging in SETUP message with the chan_dahdi R dialing option.
Dial(DAHDI/g1/extension/R)
Access received reverse charge in SETUP message by: ${CHANNEL(reversecharge)}
(requires latest LibPRI)
Richard Mudgett
committed
* Added ability to send/receive keypad digits in the SETUP message.
Send keypad digits in SETUP message with the chan_dahdi K(<keypad_digits>)
dialing option. Dial(DAHDI/g1/[extension]/K(<keypad_digits>))
Richard Mudgett
committed
Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
(requires latest LibPRI)
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.
* Added a MuteAudio AMI action for muting inbound and/or outbound audio
in a channel. (res_mutestream.so)
Kevin P. Fleming
committed
Channel Event Logging
---------------------
* A new interface, CEL, is introduced here. CEL logs single events, much like
the AMI, but it differs from the AMI in that it logs to db backends much
like CDR does; is based on the event subsystem introduced by Russell, and
can share in all its benefits; allows multiple backends to operate like CDR;
is specialized to event data that would be of concern to billing sytems,
like CDR. Backends for logging and accounting calls have been produced,
but a new CDR backend is still in development.
CDR
---
* 'linkedid' and 'peeraccount' are new CDR fields available to CDR officianados.
linkedid is based on uniqueID, but spreads to other channels as transfers, dials,
etc are performed. Thus the peices of CDR can be grouped into multilegged sets.
* Multiple files and formats can now be specified in cdr_custom.conf.
* cdr_syslog has been added which allows CDRs to be written directly to syslog.
See configs/cdr_syslog.conf.sample for more information.
Matthew Nicholson
committed
* A 'sequence' field has been added to CDRs which can be combined with
linkedid or uniqueid to uniquely identify a CDR.
Calendaring for Asterisk
------------------------
* A new set of modules were added supporing calendar integration with Asterisk.
Dialplan functions for reading from and writing to calendars are included,
as well as the ability to execute dialplan logic upon calendar event notifications.
iCalendar, CalDAV, and Exchange Server calendars are supported (Exchange support
only tested on Exchange Server 2003 with no support for forms-based authentication).
Multicast RTP Support
---------------------
* A new RTP engine and channel driver have been added which supports Multicast RTP.
The channel driver can be used with the Page application to perform multicast RTP
paging. The dial string format is: MulticastRTP/<type>/<destination>/<control address>
Type can be either basic or linksys.
Destination is the IP address and port for the RTP packets.
Control address is specific to the linksys type and is used for sending the control
packets unique to them.
Security Events Framework
-------------------------
* Asterisk has a new C API for reporting security events. The module res_security_log
sends these events to the "security" logger level. Currently, AMI is the only
Asterisk component that reports security events. However, SIP support will be
coming soon. For more information on the security events framework, see the
"Security Events" chapter of the included documentation - doc/tex/asterisk.pdf.
Philippe Sultan
committed
Miscellaneous
-------------
* SendText is now implemented in chan_gtalk and chan_jingle. It will simply send
XMPP text messages to the remote JID.
------------------------------------------------------------------------------
--- 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.
Philippe Sultan
committed
* 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).
These changes also provide performance improvements for call setup and tear down.
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,