Applications and Functions - New Features, Upgrades, and Changes
Asterisk 1.4 -> Asterisk 1.6.0 -> Asterisk 1.6.1 -> Asterisk 1.6.2 -> Asterisk 1.8
+ Operator:
Asterisk 1.6.0 -> Asterisk 1.6.1
- If you have any third party modules which use a config file variable whose
name ends in a '+', please note that the append capability added to this
version may now conflict with that variable naming scheme. An easy
workaround is to ensure that a space occurs between the '+' and the '=',
to differentiate your variable from the append operator. This potential
conflict is unlikely, but is documented here to be thorough.
+= Operator:
Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
AGC Function:
Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
AGI:
Asterisk 1.4 -> 1.6.0
- Added SPEECH commands for speech recognition. A complete listing can be found
using agi show.
- If app_stack is loaded, GOSUB is a native AGI command that may be used to
invoke subroutines in the dialplan. Note that calling EXEC with Gosub
does not behave as expected; the native command needs to be used, instead.
AMD:Asterisk 1.4 -> Asterisk 1.6.0
- AMD() has a new "maximum word length" option. "show application AMD" from the CLI
for more details
AST_PBX_INCOMPLETE variable:Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
ATTENDED_TRANSFER_COMPLETE_SOUND variable:Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
BRIDGE:Asterisk 1.4 -> Asterisk 1.6.0
- Added a new dialplan application, Bridge, which allows you to bridge the
calling channel to any other active channel on the system.
BRIDGE_FEATURES variable:Asterisk 1.4 -> Asterisk 1.6.0
- Added BRIDGE_FEATURES variable to set available features for a channel
BRIDGEPVTCALLID variable:Asterisk 1.4 -> Asterisk 1.6.0
- 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.
BUSY:Asterisk 1.4 -> Asterisk 1.6.0
- Busy() - now takes floating pt. argument.
CALLERID() Function:Asterisk 1.4 -> Asterisk 1.6.0
- 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.
Asterisk 1.6.2 -> Asterisk 1.8
- CALLERID and CONNECTEDLINE dialplan functions have been extended to
support ISDN subaddressing.
Calendering:Asterisk 1.6.2 -> Asterisk 1.8
- 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 (via res_calendar_exchange for
Exchange Server 2003 with no write or attendee support, and res_calendar_ews for
Exchange Server 2007+ with full write and attendee support) are supported (Exchange
2003 support does not support forms-based authentication).
CDR:Asterisk 1.4 -> 1.6.0
- The cdr_sqlite module has been marked as deprecated in favor of
cdr_sqlite3_custom. It will potentially be removed from the tree
after Asterisk 1.6.0is released.
- The cdr_odbc module now uses res_odbc to manage its connections. The
username and password parameters in cdr_odbc.conf, therefore, are no
longer used. The dsn parameter now points to an entry in res_odbc.conf.
- The uniqueid field in the core Asterisk structure has been changed from a
maximum 31 character field to a 149 character field, to account for all
possible values the systemname prefix could be. In the past, if the
systemname was too long, the uniqueid would have been truncated.
- The cdr_tds module now supports all versions of FreeTDS that contain
the db-lib frontend. It will also now log the userfield variable if
the target database table contains a column for it.
- Added a new CDR module, cdr_sqlite3_custom.
- The cdr_manager module has a [mappings] feature, like cdr_custom,
to add fields to the manager event from the CDR variables.
- Added cdr_adaptive_odbc, a new module that adapts to the structure of your
backend database CDR table. Specifically, additional, non-standard
columns are supported, merely by setting the corresponding CDR variable in
your dialplan. In addition, you may alias any column to another name (for
example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
simply "alias src => ANI" in the configuration file). Records may be
posted to more than one backend, simply by specifying multiple categories
in the configuration file. And finally, you may filter which CDRs get
posted to each backend, by specifying a filter (which the record must
match) for the particular category. Filters are additive (meaning all
rules must match to post that CDR).
- The Postgres CDR module now supports some features of the cdr_adaptive_odbc
module. Specifically, you may add additional columns into the table and
they will be set, if you set the corresponding CDR variable name. Also,
if you omit columns in your database table, they will be silently skipped
(but a record will still be inserted, based on what columns remain). Note
that the other two features from cdr_adaptive_odbc (alias and filter) are
not currently supported.
- The ResetCDR application now has an 'e' option that re-enables a CDR if it
has been disabled using the NoCDR application.
Asterisk 1.6.2 -> Asterisk 1.8
- 'linkedid' and 'peeraccount' are new CDR fields available to CDR aficionados.
linkedid is based on uniqueID, but spreads to other channels as transfers, dials,
etc are performed. Thus the pieces 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.
- A 'sequence' field has been added to CDRs which can be combined with
linkedid or uniqueid to uniquely identify a CDR.
- Handling of billsec and duration field has changed. If your table definition
specifies those fields as float,double or similar they will now be logged with
microsecond accuracy instead of a whole integer.
- 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.
- Added option to dialplan function CDR(), the 'f' option
allows for high resolution times for billsec and duration fields.
CEL Interface:Asterisk 1.6.2 -> Asterisk 1.8
- 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.
CHANISAVAIL:Asterisk 1.4 -> Asterisk 1.6.0
- ChanIsAvail() now has a 't' option, which allows the specified device
to be queried for state without consulting the channel drivers. This
performs mostly a 'ChanExists' sort of function.
Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
Asterisk 1.6.2 -> Asterisk 1.8
- The ChanIsAvail application now exposes the returned cause code using a separate
variable, AVAILCAUSECODE, instead of overwriting the device state in AVAILSTATUS.
CHANNEL:Asterisk 1.6.0 -> Asterisk 1.6.1
- CHANNEL() now has options for the maximum, minimum, and standard or normal
deviation of jitter, rtt, and loss for a call using chan_sip.
- SIP: All of the functionality in SIPCHANINFO() has been implemented in CHANNEL(),
and you should start using that function instead for retrieving information about
the channel in a technology-agnostic way.
Asterisk 1.6.2 -> Asterisk 1.8
- The CHANNEL() function now supports the "name" and "checkhangup" options.
- 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)
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)
- CHANNEL(secure_bridge_signaling) and CHANNEL(secure_bridge_media) to set/get
whether or not channels that are bridged to the current channel will be
required to have secure signaling and/or media.
- CHANNEL(secure_signaling) and CHANNEL(secure_media) to get whether or not
the current channel has secure signaling and/or media.
- For DAHDI/ISDN channels, the CHANNEL() dialplan function now supports the
"no_media_path" option.
Returns "0" if there is a B channel associated with the call.
Returns "1" if no B channel is associated with the call. The call is either
on hold or is a call waiting call.
CHANNELREDIRECT:Asterisk 1.4 -> Asterisk 1.6.0
- ChannelRedirect() will not terminate the channel that fails to do a
channelredirect as it has done previously. Instead CHANNELREDIRECT_STATUS
will reflect if the attempt was successful of not.
- 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.
CHANSPY:Asterisk 1.4 -> Asterisk 1.6.0
- Added 'o' and 'X' options to Chanspy.
Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
- 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.
- 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.
Asterisk 1.6.2 -> Asterisk 1.8
- 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 ChanSpy application now has the 'S' option, which makes the application
automatically exit once it hits a point where no more channels are available
to spy on.
- The ChanSpy application also now has the 'E' option, which spies on a single
channel and exits when that channel hangs up.
CONGESTION:Asterisk 1.4 -> Asterisk 1.6.0
- Congestion() - Now takes floating pt. argument.
CONNECTEDLINE:Asterisk 1.6.2 -> Asterisk 1.8
- Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
setting various connected line and redirecting party information.
- CALLERID and CONNECTEDLINE dialplan functions have been extended to
support ISDN subaddressing.
DENOISE Function:Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
DEVICE_STATE Function:Asterisk 1.4 -> Asterisk 1.6.0
- Added the DEVICE_STATE() dialplan function which allows retrieving any device
state in the dialplan, as well as creating custom device states that are
controllable from the dialplan.
DIAL Application:Asterisk 1.4 -> Asterisk 1.6.0
- A new option to Dial() for telling IP phones not to count the call
as "missed" when dial times out and cancels.
Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
- 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.
- 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)}/" .
Asterisk 1.6.2 -> Asterisk 1.8
- 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.
- 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.
- Modified app_dial 'r' option to support an additional parameter to play an
indication tone from indications.conf
- The 'f' option to Dial has been augmented to take an optional argument. If no
argument is provided, the 'f' option works as it always has. If an argument is
provided, then the connected party information of all outgoing channels created
during the Dial will be set to the argument passed to the 'f' option.
- Dial now inherits the GOSUB_RETVAL from the peer, when the U() option runs a
Gosub on the peer.
DIALPLAN_EXISTS Function:Asterisk 1.4 -> Asterisk 1.6.0
- Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for
the existence of a dialplan target.
DIRECTORY:Asterisk 1.4 -> Asterisk 1.6.0
- 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.
Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
- While app_directory has always relied on having a voicemail.conf or users.conf file
correctly set up, it now is dependent on app_voicemail being compiled as well.
Asterisk 1.6.2 -> Asterisk 1.8
- app_directory now allows exiting at any time using the operator or pound key.
DISA:Asterisk 1.4 -> Asterisk 1.6.0
- DISA()'s fifth argument is now an options argument. If you have previously
used 'NOANSWER' in this argument, you'll need to convert that to the new
option 'n'.
DNS Manager:Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
DYNAMIC_FEATURENAME Variable:Asterisk 1.6.2 -> Asterisk 1.8
- Added DYNAMIC_FEATURENAME which holds the last triggered dynamic feature.
DYNAMIC_PEERNAME Variable:Asterisk 1.6.2 -> Asterisk 1.8
- Added DYNAMIC_PEERNAME which holds the unique channel name on the other side
and is set when a dynamic feature is triggered.
ENUM Function:Asterisk 1.4 -> 1.6.0
- 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.
Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
EXECIF
Asterisk 1.4 -> Asterisk 1.6.0
- The arguments in ExecIf changed a bit, to be more like other applications.
The syntax is now ExecIf(?appiftrue(args):appiffalse(args)).
EXTENSION_STATE Function:Asterisk 1.4 -> Asterisk 1.6.0
- Added EXTENSION_STATE() dialplan function which allows retrieving the state
of any extension.
EXTERNALIVR:Asterisk 1.4 -> Asterisk 1.6.0
- Added 'E', 'V', and 'P' commands to ExternalIVR.
Asterisk 1.6.0 -> Asterisk 1.6.1
- Added ability to communicate over a TCP socket instead of forking a child process for the
ExternalIVR application.
- 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.
Fax:Asterisk 1.6.1.1 -> Asterisk 1.6.1.2
- Beginning with this release, Asterisk's internal methods of
negotiating T.38 (FAX over IP) sessions changed in
non-backwards-compatible ways. Any applications that previously used
AST_CONTROL_T38 control frames will have to be upgraded to use
AST_CONTROL_T38_PARAMETERS control frames instead; app_fax.c is a good
example of how to generate and respond to these frames. These changes
were made to solve significant T.38 interoperability problems between
Asterisk and various SIP/T.38 endpoints identified by many users of
Asterisk.
Asterisk 1.6.1 -> Asterisk 1.6.2
- T.38 FAX error correction mode can no longer be configured in udptl.conf;
instead, it is configured on a per-peer (or global) basis in sip.conf, with
the same default as was present in udptl.conf.sample.
- T.38 FAX maximum datagram size can no longer be configured in updtl.conf;
instead, it is either supplied by the application servicing the T.38 channel
(for a FAX send or receive) or calculated from the bridged endpoint's
maximum datagram size (for a T.38 FAX passthrough call). In addition, sip.conf
allows for overriding the value supplied by a remote endpoint, which is useful
when T.38 connections are made to gateways that supply incorrectly-calculated
maximum datagram sizes.
- Asterisk's internal methods of
negotiating T.38 (FAX over IP) sessions changed in
non-backwards-compatible ways. Any applications that previously used
AST_CONTROL_T38 control frames will have to be upgraded to use
AST_CONTROL_T38_PARAMETERS control frames instead; app_fax.c is a good
example of how to generate and respond to these frames. These changes
were made to solve significant T.38 interoperability problems between
Asterisk and various SIP/T.38 endpoints identified by many users of
Asterisk.
Asterisk 1.6.2 -> Asterisk 1.8
- A technology independent fax frontend (res_fax) has been added to Asterisk.
- A spandsp based fax backend (res_fax_spandsp) has been added.
- The app_fax module has been deprecated in favor of the res_fax module and
the new res_fax_spandsp backend.
- The SendFAX and ReceiveFAX applications now send their log messages to a
'fax' logger level, instead of to the generic logger levels. To see these
messages, the system's logger.conf file will need to direct the 'fax' logger
level to one or more destinations; the logger.conf.sample file includes an
example of how to do this. Note that if the 'fax' logger level is
- not*
directed to at least one destination, log messages generated by these
applications will be lost, and that if the 'fax' logger level is directed to
the console, the 'core set verbose' and 'core set debug' CLI commands will
have no effect on whether the messages appear on the console or not.
FIELDNUM Function:Asterisk 1.6.2 -> Asterisk 1.8
- Added FIELDNUM(), which returns the 1-based offset of a field in a list.
FILE Function:Asterisk 1.6.2 -> Asterisk 1.8
- FILE() now supports line-mode and writing.
FORKCDR:Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
FOLLOW_ME:Asterisk 1.6.2 -> Asterisk 1.6.8
- Added 'd' option to app_followme. This option disables the "Please hold"
announcement.
FRAME_TRACE Function:Asterisk 1.6.2 -> Asterisk 1.8
- FRAME_TRACE(), for tracking internal ast_frames on a channel.
GOSUB:Asterisk 1.4 -> Asterisk 1.6.0
- Argument support for Gosub application
GOTOIFTIME:Asterisk 1.4 -> Asterisk 1.6.0
- GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
GROUP_MATCH_COUNT Function:Asterisk 1.6.2 -> Asterisk 1.8
- GROUP_MATCH_COUNT has been improved to allow regex matching on category
HINT Function:Asterisk 1.4 -> Asterisk 1.6.0
- Added HINT() dialplan function that allows retrieving hint information.
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.
JabberJoin:Asterisk 1.6.2 -> Asterisk 1.8
- New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
to allow joining, leaving, and sending text to group chats.
JabberLeave:Asterisk 1.6.2 -> Asterisk 1.8
- New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
to allow joining, leaving, and sending text to group chats.
JABBER_RECEIVE Function:Asterisk 1.6.2 -> Asterisk 1.8
- Added JABBER_RECEIVE, which permits receiving XMPP messages from the
dialplan. This function returns the content of the received message.
JabberSendGroup:Asterisk 1.6.2 -> Asterisk 1.8
- New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
to allow joining, leaving, and sending text to group chats.
JACK (Jack Audio Connection Kit):Asterisk 1.4 -> 1.6.0
- Added a new module, app_jack, which provides interfaces to JACK, the Jack
Audio Connection Kit (http://www.jackaudio.org/). Two interfaces are
provided; there is a JACK() application, and a JACK_HOOK() function. Both
interfaces create an input and output JACK port. The application makes
these ports the endpoint of the call. The audio coming from the channel
goes out the output port and whatever comes back in on the input port is
what gets sent to the channel. The JACK_HOOK() function turns on a JACK
audiohook on the channel. This lets you run the audio coming from a
channel through JACK, and whatever comes back in is what gets forwarded
on as the channel's audio. This is very useful for building custom
vocoders or doing recording or analysis of the channel's audio in another
application.
Asterisk 1.6.0 -> Asterisk 1.6.1
- The Jack application now has a c() option to supply a custom client name.
JACK_HOOK Function:Asterisk 1.6.0 -> Asterisk 1.6.1
- The JACK_HOOK function now has a c() option to supply a custom client name.
LOCK, TRYLOCK, UNLOCK Functions:Asterisk 1.4 -> Asterisk 1.6.0
- Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan
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.
LOGGER:Asterisk 1.4 -> 1.6.0
- Added rotatestrategy option to logger.conf, along with two new options:
"timestamp" which will use the time to name the logger files instead of
sequence number; and "rotate", which rotates the names of the logfiles,
similar to the way syslog rotates files.
- Added exec_after_rotate option to logger.conf, which allows a system
command to be run after rotation. This is primarily useful with
rotatestrategry=rotate, to allow a limit on the number of logfiles kept
and to ensure that the oldest log file gets deleted.
- Added realtime support for the queue log
MACRO:Asterisk 1.4 -> Asterisk 1.6.0
- Macro() is now deprecated. If you need subroutines, you should use the
Gosub()/Return() applications. To replace MacroExclusive(), we have
introduced dialplan functions LOCK(), TRYLOCK(), and UNLOCK(). You may use
these functions in any location where you desire to ensure that only one
channel is executing that path at any one time. The Macro() applications
are deprecated for performance reasons. However, since Macro() has been
around for a long time and so many dialplans depend heavily on it, for the
sake of backwards compatibility it will not be removed . It is also worth
noting that using both Macro() and GoSub() at the same time is _heavily_
discouraged.
MAILBOXEXISTS Function:Asterisk 1.4 -> Asterisk 1.6.0
- MailboxExists converted to dialplan function
MANAGER (AMI):Asterisk 1.4 -> Asterisk 1.6.0
- Manager has been upgraded to version 1.1 with a lot of changes.
Please check doc/manager_1_1.txt for information
- The IAXpeers command output has been changed to more closely resemble the
output of the SIPpeers command.
- cdr_manager now reports at the "cdr" level, not at "call" You may need to
change your manager.conf to add the level to existing AMI users, if they
want to see the CDR events generated.
- The Originate command now requires the Originate write permission. For
Originate with the Application parameter, you need the additional System
privilege if you want to do anything that calls out to a subshell.
- 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
- 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.
- Enable https support for builtin web server.
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.
- Added a "ListAllVoicemailUsers" action that allows you to get a list of all
the voicemail users setup.
- Added 'DBDel' and 'DBDelTree' manager commands.
- cdr_manager now reports events via the "cdr" level, separating it from
the very verbose "call" level.
- 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
- 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
Asterisk 1.6.0 -> Asterisk 1.6.1
- The Status action now takes an optional list of variables to display
along with channel status.
- Added SIPnotify AMI command, for sending arbitrary SIP notify commands
Asterisk 1.6.2 -> Asterisk 1.8
- Added support for message body (stored in content variable) to SIP NOTIFY message
accessible via AMI and CLI.
- 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)
- The configuration file manager.conf now supports a channelvars option, which
specifies a list of channel variables to include in each channel-oriented
event.
- The redirect command now has new parameters ExtraContext, ExtraExtension,
and ExtraPriority to allow redirecting the second channel to a different
location than the first.
- Added new event "JabberStatus" in the Jabber module to monitor buddies
status.
- Added a "MixMonitorMute" AMI action for muting inbound and/or outbound audio
in a MixMonitor recording.
- The 'iax2 show peers' output is now similar to the expected output of
'sip show peers'.
- Added Advice-Of-Charge events (AOC-S, AOC-D, and AOC-E) in the new
aoc event class.
- Added Advice-Of-Charge manager action, AOCMessage, for generating AOC-D and
AOC-E messages on a channel.
- A DBGetComplete event now follows a DBGetResponse, to make the DBGet action
conform more closely to similar events.
- Added a new eventfilter option per user to allow whitelisting and blacklisting
of events.
- Added optional parkinglot variable for park command.
- New 'manager show settings' command showing the current settings loaded from
manager.conf.
- chan_dahdi now supports reporting alarms over AMI either by channel or span via
the reportalarms config option.
- 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.
- 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.
MASTER_CHANNEL Function:Asterisk 1.6.2 -> Asterisk 1.8
- 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.
MEET-ME:Asterisk 1.4 -> 1.6.0
- The 'o' option to provide an optimization has been removed and its functionality
has been enabled by default.
- 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
callers that come and go from long standing conferences.
- 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.
- Added MEETME_INFO dialplan function which provides a way to query
various properties of a Meetme conference.
Asterisk 1.6.2 -> Asterisk 1.8
- 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).
- MeetMe has a new option 'G' to play an announcement before joining a conference.
mISDN_CC Fuction:Asterisk 1.6.2 -> Asterisk 1.8
- Added new dialplan function mISDN_CC which permits retrieval of various
values from an active call completion record.
misdn_command Application:Asterisk 1.6.2 -> Asterisk 1.8
- Added new dialplan application misdn_command which permits controlling
the CCBS/CCNR functionality.
MP3PLAYER:Asterisk 1.6.2 -> 1.8
- Added .m3u support for Mp3Player application.
MUSIC-ON-HOLD:Asterisk 1.4 -> 1.6.0
- MusicOnHold application now has duration parameter which allows specifying
timeout in seconds.
- WaitMusicOnHold application is now deprecated in favor of extended MusicOnHold.
- SetMusicOnHold is now deprecated. You should use Set(CHANNEL(musicclass)=...)
instead.
- The "musiconhold" and "musicclass" settings in sip.conf are now removed,
since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4
- A new option, "digit", has been added for music on hold classes in
musiconhold.conf. If this is set for a music on hold class, a caller
listening to music on hold can press this digit to switch to listening
to this music on hold class.
- Support for realtime music on hold has been added.
- In conjunction with the realtime music on hold, a general section has
been added to musiconhold.conf, its sole variable is cachertclasses. If this
is set, then music on hold classes found in realtime will be cached in memory.
MUTEAUDIO Function:Asterisk 1.6.2 -> Asterisk 1.8
- Added new dialplan function MUTEAUDIO() for muting inbound and/or outbound
audio in a channel.
ODBC Function:Asterisk 1.6.2 -> Asterisk 1.8
- 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().
OSP™:Asterisk 1.6.2 -> Asterisk 1.8
- The OSP™ lookup application adds in/outbound network ID, optional security,
number portability, QoS reporting, destination IP port, custom info and service
type features.
.
PAGE:Asterisk 1.4 -> Asterisk 1.6.0
- Added 's' option to Page application.
Asterisk 1.6.2 -> Asterisk 1.8
- Page has a new option 'A(x)' which will playback an announcement simultaneously
to all paged phones (and optionally excluding the caller's one using the new
option 'n') before the call is bridged.
PARKEDCALL:Asterisk 1.4 -> Asterisk 1.6.0
- Updated the ParkedCall application to allow you to not specify a parking
extension. If you don't specify a parking space to pick up, it will grab
the first one available.
PARKINGLOT Variable:Asterisk 1.6.2 -> Asterisk 1.8
- Added PARKINGLOT which can be used with parkeddynamic feature.conf option
to dynamically create a new parking lot matching the value this varible is
set to.
PARKINGDYNAMIC Variable:Asterisk 1.6.2 -> Asterisk 1.8
- Added PARKINGDYNAMIC which represents the template parkinglot defined in
features.conf that should be the base for dynamic parkinglots.
PARKINGDYNCONTEXT Variable:Asterisk 1.6.2 -> Asterisk 1.8
- Added PARKINGDYNCONTEXT which tells what context a newly created dynamic
parkinglot should have.
PARKINGDYNPOS Variable:Asterisk 1.6.2 -> Asterisk 1.8
- Added PARKINGDYNPOS which holds what parking positions a dynamic parkinglot
should have.
PASSTHRU Fuction:Asterisk 1.6.2 -> Asterisk 1.8
- Added PASSTHRU, which literally passes the same argument back as its return
value. The intent is to be able to use a literal string argument to
functions that currently require a variable name as an argument.
PICKUPCHAN:Asterisk 1.6.2 -> Asterisk 1.8
- Added 'p' option to PickupChan() to allow for picking up channel by the first
match to a partial channel name.
PITCH_SHIFT Function:Asterisk 1.6.2 -> Asterisk 1.8
- PITCH_SHIFT dialplan function added. This function can be used to modify the
pitch of a channel's tx and rx audio streams.
PRIVACY:Asterisk 1.4 -> Asterisk 1.6.0
- Privacy() no longer uses privacy.conf, so any options must be specified
directly in the application arguments.
PRIVACYMANAGER:Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
QUEUES:Asterisk 1.4 -> 1.6.0
- queues.conf: the queue-lessthan sound file option is no longer available, and the
queue-round-seconds option no longer takes '1' as a valid parameter.
- QUEUE_MEMBER_COUNT() has been deprecated in favor of the QUEUE_MEMBER() function. For
more information, issue a "show function QUEUE_MEMBER" from the CLI.
- Added the general option 'shared_lastcall' so that member's wrapuptime may be
used across multiple queues.
- 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.
- 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.
- 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
- 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
device state reported.
- 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.
Asterisk 1.6.0 -> Asterisk 1.6.1
- The TRANSFER queue log entry now includes 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
- The "Join" event from app_queue now uses the CallerIDNum header instead of
the CallerID header to indicate the CallerID number.
Asterisk 1.6.2 -> Asterisk 1.8
- Added "ready" option to QUEUE_MEMBER counting to count free agents whose wrap-up
timeout has expired.
- Added 'R' option to app_queue. This option stops moh and indicates ringing
to the caller when an Agent's phone is ringing. This can be used to indicate
to the caller that their call is about to be picked up, which is nice when
one has been on hold for an extened period of time.
- A new config option, penaltymemberslimit, has been added to queues.conf.
When set this option will disregard penalty settings when a queue has too
few members.
- 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.
- 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.
- The autopause option in queues.conf can be passed a new value, "all." The
result is that if a member becomes auto-paused, he will be paused in all
queues for which he is a member, not just the queue that failed to reach
the member.
- Added dialplan function QUEUE_EXISTS to check if a queue exists
- The queue logger now allows events to optionally propagate to a file,
even when realtime logging is turned on. Additionally, realtime logging
supports sending the event arguments to 5 individual fields, although it
will fallback to the previous data definition, if the new table layout is
not found.
QUEUE_EXISTS Function:Asterisk 1.6.2 -> Asterisk 1.8
- Added dialplan function QUEUE_EXISTS to check if a queue exists
QUEUE_MEMBER() - QUEUE_MEMBER_COUNT() Function:Asterisk 1.4 -> Asterisk 1.6.0
- QUEUE_MEMBER_COUNT() has been deprecated in favor of the QUEUE_MEMBER() function. For
more information, issue a "show function QUEUE_MEMBER" from the CLI.
READ:Asterisk 1.4 -> Asterisk 1.6.0
- Read() now sets a READSTATUS variable on exit. It does NOT automatically
return -1 (and hangup) anymore on error. If you want to hangup on error,
you need to do so explicitly in your dialplan.
- Read() - timeout now can be floating pt.
RECORD:Asterisk 1.6.2 -> Asterisk 1.6.8
- Added 'y' option to app_record. This option enables a mode where any DTMF digit
received will terminate recording.
REDICRECTING:Asterisk 1.6.2 -> Asterisk 1.8
- Added new dialplan functions CONNECTEDLINE and REDIRECTING which permits
setting various connected line and redirecting party information.
REPLACE Function:Asterisk 1.6.2 -> Asterisk 1.8
- Added REPLACE, which searches a given variable name for a set of characters,
then either replaces them with a single character or deletes them.
SET:Asterisk 1.4 -> Asterisk 1.6.0
- The behavior of the Set application now depends upon a compatibility option,
set in asterisk.conf. To use the old 1.4 behavior, which allowed Set to take
multiple key/value pairs, set app_set=1.4 in [compat] in asterisk.conf. To
use the new behavior, which permits variables to be set with embedded commas,
set app_set=1.6.0in [compat] in asterisk.conf. Note that you can have both
behaviors at the same time, if you switch to using MSet if you want the old
behavior.
SETCALLERPRES:Asterisk 1.4 -> Asterisk 1.6.0
- SetCallerPres() has been replaced with the CALLERPRES() dialplan function
and is now deprecated.
SENDIMAGE:Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
SILENCETHRESHOLD:Asterisk 1.4 -> Asterisk 1.6.0
- The silencethreshold setting that was previously configurable in multiple
applications is now settable globally via dsp.conf.
SIP_PEER Function:Asterisk 1.4 -> Asterisk 1.6.0
- A new sip.conf 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.
- The SIPPEER function have new options for port address, call and pickup groups
SIPREFERRINGCONTEXT, SIPREFERREDBYHDR variables:Asterisk 1.4 -> Asterisk 1.6.0
- Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place.
SLATrunk:Asterisk 1.4 -> Asterisk 1.6.0
- Added the ability to specify a music on hold class to play instead of ringing
for the SLATrunk application.
SMDI_MSG_RETRIEVE:Asterisk 1.6.0 -> Asterisk 1.6.1
- 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.
SPEECHBACKGROUND:Asterisk 1.4 -> Asterisk 1.6.0
SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
SRVQUERY Function:Asterisk 1.6.2 -> Asterisk 1.8
- SRVQUERY and SRVRESULT functions added. This can be used to query and iterate
over SRV records associated with a specific service. From the CLI, type
'core show function SRVQUERY' and 'core show function SRVRESULT' for more
details on how these may be used.
SRVRESULT Function:Asterisk 1.6.2 -> Asterisk 1.8
- SRVQUERY and SRVRESULT functions added. This can be used to query and iterate
over SRV records associated with a specific service. From the CLI, type
'core show function SRVQUERY' and 'core show function SRVRESULT' for more
details on how these may be used.
SYSINFO Function:Asterisk 1.4 -> Asterisk 1.6.0
- Added SYSINFO() dialplan function which allows retrieval of system information
TIMEOUT:Asterisk 1.6.0 -> Asterisk 1.6.1
- TIMEOUT() has been modified to be accurate down to the millisecond.
TOUPPER, TOLOWER Function:Asterisk 1.4 -> Asterisk 1.6.0
- Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to
upper and lower case, respectively.
TXCIDNAME:Asterisk 1.6.0 -> Asterisk 1.6.1
- TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
VMSayName:Asterisk 1.6.2 -> Asterisk 1.8
- Added new application VMSayName that will play the recorded name of the voicemail
user if it exists, otherwise will play the mailbox number.
VOICEMAIL:Asterisk 1.4 -> 1.6.0
- The voicemail configuration values 'maxmessage' and 'minmessage' have
been changed to 'maxsecs' and 'minsecs' to clarify their purpose and
to make them more distinguishable from 'maxmsgs', which sets folder
size. The old variables will continue to work in this version, albeit
with a deprecation warning.
- If you use any interface for modifying voicemail aside from the built in
dialplan applications, then the option "pollmailboxes"
- must
- be set in
voicemail.conf for message waiting indication (MWI) to work properly. This
is because Voicemail notification is now event based instead of polling
based. The channel drivers are no longer responsible for constantly manually
checking mailboxes for changes so that they can send MWI information to users.
Examples of situations that would require this option are web interfaces to
voicemail or an email client in the case of using IMAP storage.
- 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
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
- Added support for storage of greetings using an IMAP server
- 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
Asterisk 1.6.0 -> Asterisk 1.6.1
- 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
- The voicemail externnotify script now accepts an additional (last) parameter
containing the number of urgent messages in the INBOX.
- If you use ODBC storage for voicemail, there is a new field called "flag"
which should be a char(8) or larger. This field specifies whether or not a
message has been designated to be "Urgent", "PRIORITY", or not.
Asterisk 1.6.2 -> Asterisk 1.8
- The Voicemail application has been improved to automatically ignore messages
that only contain silence.
- If you set maxmsg to 0 in voicemail.conf, Voicemail will consider the
associated mailbox(es) to be greetings-only.
- 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.
- Voicemail now supports per mailbox settings for folders when using IMAP storage.
Previously the folder could only be set per context, but has now been extended
using the imapfolder option.
- Voicemail now supports per mailbox settings for nextaftercmd and minsecs.
- Voicemail now allows the pager date format to be specified separately from the
email date format.
- Voicemail now supports setting a locale per-mailbox.
- Two new applications are provided for declining counting phrases in multiple
languages. See the application notes for SayCountedNoun and SayCountedAdj for
more information.
- Voicemail now runs the externnotify script when pollmailboxes is activated and
notices a change.
- Voicemail now includes rdnis within msgXXXX.txt file.
- Added new application VMSayName that will play the recorded name of the voicemail
user if it exists, otherwise will play the mailbox number.
WAIT:Asterisk 1.4 -> Asterisk 1.6.0
- Wait() app now really does 0.3 seconds- was truncating arg to an int.
WAITEXTEN:Asterisk 1.4 -> Asterisk 1.6.0
- WaitExten() same as Wait().
WAITFORRING:Asterisk 1.4 -> Asterisk 1.6.0
- WaitForRing() now takes floating pt timeout arg.