Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »


  • A new event, "DialState" has been added. This is similar to "DialBegin" and "DialEnd" in that it tracks the state of a dialed call. The difference is that this indicates some intermediate state change in the dial attempt, such as "RINGING", "PROGRESS", or "PROCEEDING".


  • A new ARI method has been added to the channels resource. "create" allows for you to create a new channel and place that channel into a Stasis application. This is similar to origination except that the specified channel is not dialed. This allows for an application writer to create a channel, perform manipulations on it, and then delay dialing the channel until later. 
  • To complement the "create" method, a "dial" method has been added to the channels resource in order to place a call to a created channel.
  • All operations that initiate playback of media on a resource now support a list of media URIs. The list of URIs are played in the order they are presented to the resource. A new event, "PlaybackContinuing", is raised when a media URI finishes but before the next media URI starts. When a list is played, the "Playback" model will contain the optional attribute "next_media_uri", which specifies the next media URI in the list to be played back to the resource. The PlaybackFinished" event is raised when all media URIs are done.
  • Stored recordings now allow for the media associated with a stored recording to be retrieved. The new route, GET /recordings/stored/{name}/file, will transmit the raw media file to the requester as binary.
  • "Dial" events have been modified to not only be sent when dialing begins and ends. They now are also sent for intermediate states, such as "RINGING", "PROGRESS", and "PROCEEDING".



  • A new application in Asterisk, this will join the calling channel to an existing bridge containing the named channel prefix.


  • Added the 'l' option, which forces ChanSpy's audiohook to use a long queue to store the audio frames. This option is useful if audio loss is experienced when using ChanSpy, but may introduce some delay in the audio feed on the listening channel.


  • Added the ability to pass options to MixMonitor when recording is used with ConfBridge. This includes the addition of the following configuration parameters for the 'bridge' object:
    • record_file_timestamp: whether or not to append the start time to the recorded file name
    • record_options: the options to pass to the MixMonitor application
    • record_command: a command to execute when recording is finished
      Note that these options may also be with the CONFBRIDGE function.


  • Remote files can now be retrieved and played back. See the Playback dialplan application for more details.


  • It is now possible to disable the prompt from a callee by setting enable_callee_prompt = no in followme.conf.


  • Remote files can now be retrieved and played back via the Playback and other media playback dialplan applications. This is done by directly providing the URL to play to the dialplan application:  

    same => n,Playback(

     Note that unlike 'normal' media files, the entire URI to the file must be provided, including the file extension. Currently, on HTTP and HTTPS URI schemes are supported.


  • Added field ReasonPause on QueueMemberStatus if set when paused, the reason the queue member was paused.
  • Added field LastPause on QueueMemberStatus for time when started the last pause for a queue member.
  • Show the time when started the last pause for queue member on CLI for command 'queue show'.


  • Added the 'n' option, which prevents the SMS from being written to the log file. This is needed for those countries with privacy laws that require providers to not log SMS content.

Channel Drivers


  • The CALLERID(ani2) value for incoming calls is now populated in featdmf signaling mode. The information was previously discarded.
  • Added the force_restart_unavailable_chans compatibility option. When enabled it causes Asterisk to restart the ISDN B channel if an outgoing call receives cause 44 (Requested channel not available).


  • The iax.conf forcejitterbuffer option has been removed. It is now always forced if you set iax.conf jitterbuffer=yes . If you put a jitter buffer on a channel it will be on the channel.
  • A new configuration parameters, calltokenexpiration, has been added that controls the duration before a call token expires. Default duration is 10 seconds. Setting this to a higher value may help in lagged networks or those experiencing high packet loss.

chan_rtp (was chan_multicast_rtp)

  • Added unicast RTP support and renamed chan_multicast_rtp to chan_rtp.
    The format for dialing a unicast RTP channel is: {{UnicastRTP/<destination-addr>[/[<options>]]}}
    • Where <destination-addr> is something like ''.

    • Where <options> are in standard Asterisk flag options format:

      • c(<codec>) - Specify which codec/format to use such as 'ulaw'.
      • e(<engine>) - Specify which RTP engine to use such as 'asterisk'.
  • New options were added for a multicast RTP channel. The format for dialing a multicast RTP channel is: MulticastRTP/<type>/<destination-addr>[/[<control-addr>][/[<options>]]]

Where <type> can be either 'basic' or 'linksys'.
Where <destination-addr> is something like ''.
Where <control-addr> is something like ''.
Where <options> are in standard Asterisk flag options format:
c(<codec>) - Specify which codec/format to use such as 'ulaw'.
i(<address>) - Specify the interface address from which multicast RTP is sent.
l(<enable>) - Set whether packets are looped back to the sender. The enable value can be 0 to set looping to off and non-zero to set looping on.
t(<ttl>) - Set the time-to-live (TTL) value for multicast packets.



* New 'rtpbindaddr' global setting. This allows a user to define which ipaddress to bind the rtpengine to. For example, chan_sip might bind to eth0 ( but rtpengine to eth1 (

* DTLS related configuration options can now be set at a general level. Enabling DTLS support, though, requires enabling it at the user or peer level.

* Added the possibility to set the From: header through the the SIP dial string (populating the fromuser/fromdomain fields), complementing the [!dnid] option for the To: header that has existed since 1.6.0 (1d6b192).
NOTE: This is again separated by an exclamation mark, so the To: header may not contain one of those.



* New 'user_eq_phone' endpoint setting. This adds a 'user=phone' parameter to the request URI and From URI if the user is determined to be a phone number.

* New 'moh_passthrough' endpoint setting. This will pass hold and unhold requests through using SIP re-invites with sendonly and sendrecv accordingly.

* Added the pjsip.conf system type disable_tcp_switch option. The option allows the user to disable switching from UDP to TCP transports described by RFC 3261 section 18.1.1.

* New 'line' and 'endpoint' options added on outbound registrations. This allows some identifying information to be added to the Contact of the outbound registration. If this information is present on messages received
from the remote server the message will automatically be associated with the configured endpoint on the outbound registration.


* The core of Asterisk uses a message bus called "Stasis" to distribute information to internal components. For performance reasons, the message distribution was modified to make use of a thread pool instead of a dedicated thread per consumer in certain cases. The initial settings for the thread pool can now be configured in 'stasis.conf'.

* A new core DNS API has been implemented which provides a common interface for DNS functionality. Modules that use this functionality will require that a DNS resolver module is loaded and available.

* Modified processing of command-line options to first parse only what is necessary to read asterisk.conf. Once asterisk.conf is fully loaded, the remaining options are processed. The -X option now applies to asterisk.conf only. To enable #exec for other config files you must set execincludes=yes in asterisk.conf. Any other option set on the command-line will now override the equivalent setting from asterisk.conf.

* The TLS core in Asterisk now supports X.509 certificate subject alternative names. This way one X.509 certificate can be used for hosts that can be reached under multiple DNS names or for multiple hosts.

* The Asterisk logging system now supports JSON structured logging. Log channels specified in logger.conf or added dynamically via CLI commands now support an optional specifier prior to their levels that determines their formatting. To set a log channel to format its entries as JSON, a formatter of '[json]' can be set, e.g., full => [json]debug,verbose,notice,warning,error

* The core now supports a 'media cache', which stores temporary media files retrieved from external sources. CLI commands have been added to manipulate and display the cached files, including:
- 'media cache show <all>' - show all cached media files, or details about one particular cached media file
- 'media cache refresh <item>' - force a refresh of a particular media file in the cache
- 'media cache delete <item>' - remove an item from the cache
- 'media cache create <uri>' - retrieve a URI and store it in the cache

* The ability for hints to be automatically created as a result of device state changes now exists in the PBX. This functionality is referred to as "autohints" and is configurable in extensions.conf by placing "autohints=yes" in the context. If enabled then a hint will be automatically created with the name of the device.


* The func_odbc global option "single_db_connection" default value has been changed to 'no'.


* New module format_ogg_speex added which supports Speex codec inside Ogg containers (filename extension .spx).


* Added CHANNEL(onhold) item that returns 1 (onhold) and 0 (not-onhold) for the hold status of a channel.



* The CURL function now supports a write option, which will save the retrieved file to a location on disk. As an example: 
same => n,Set(CURL(
will save 'foo.wav' to /tmp.


DTMF Features

* The transferdialattempts default value has been changed from 1 to 3. The transferinvalidsound has been changed from "pbx-invalid" to "privacy-incorrect". These were changed to make DTMF transfers be more user-friendly by default.



* A backend for the core media cache, this module retrieves media files from a remote HTTP(S) server and stores them in the core media cache for later playback.



* Added sort=randstart to the sort options. It sorts the files by name and then chooses the first file to play at random. * Added preferchannelclass=no option to prefer the application-passed class
over the channel-set musicclass. This allows separate hold-music from application (e.g. Queue or Dial) specified music.



* Added a res_resolver_unbound module which uses the libunbound resolver library to perform DNS resolution. This module requires the libunbound library to be installed in order to be used.



* A new SIP resolver using the core DNS API has been implemented. This relies on external SIP resolver support in PJSIP which is only available as of PJSIP 2.4. If this support is unavailable the existing built-in PJSIP SIP resolver
will be used instead. The new SIP resolver provides NAPTR support, improved SRV support, and AAAA record support.



* A new module that can respond to empty Content-Type INFO packets during call.  Some SBCs will terminate a call if their empty INFO packets are not responded to within a predefined time.



* A new 'fatal_retry_interval' option has been added to outbound registration.  When set (default is zero), and upon receiving a failure response to an outbound registration, registration is retried at the given interval up to 'max_retries'.



* Added a new multi_user option that when set to 'yes' allows a given configuration to be used for multiple users.

CEL Backends


* Added a new option, 'usegmtime', which causes timestamps in CEL events to be logged in GMT.

* Added support to set schema where located the table cel. This settings is configurable for cel_pgsql via the 'schema' in configuration file cel_pgsql.conf.

CDR Backends


* Added the ability to set the character to quote identifiers. This allows adding the character at the start and end of table and column names. This setting is configurable for cdr_adaptive_odbc via the quoted_identifiers in configuration file cdr_adaptive_odbc.conf.



* Added a new configuration option, "newcdrcolumns", which enables use of the post-1.8 CDR columns 'peeraccount', 'linkedid', and 'sequence'.



* Added a new configuration option, "newcdrcolumns", which enables use of the post-1.8 CDR columns 'peeraccount', 'linkedid', and 'sequence'.


  • No labels