mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			5260 lines
		
	
	
		
			255 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			5260 lines
		
	
	
		
			255 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ==============================================================================
 | |
| ===
 | |
| === This file documents the new and/or enhanced functionality added in
 | |
| === the Asterisk versions listed below. This file does NOT include
 | |
| === changes in behavior that would not be backwards compatible with
 | |
| === previous versions; for that information see the UPGRADE.txt file
 | |
| === and the other UPGRADE files for older releases.
 | |
| ===
 | |
| ==============================================================================
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 13.9.0 to Asterisk 13.10.0 -----------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| Core
 | |
| ------------------
 | |
|  * A channel variable FORWARDERNAME is now set which indicates which channel
 | |
|    was responsible for a forwarding requests received on dial attempt.
 | |
| 
 | |
| func_odbc
 | |
| ------------------
 | |
|  * Added new global option "single_db_connection".
 | |
|    Enabling this option func_odbc will use a single database connection per DSN.
 | |
|    This option is enabled by default.
 | |
| 
 | |
| res_fax
 | |
| ------------------
 | |
|  * Added FAXMODE variable to let dialplan know what fax transport was used.
 | |
|    FAXMODE variable is set to either "audio" or "T38".
 | |
| 
 | |
| res_pjsip
 | |
| ------------------
 | |
|  * Added "via_addr", "via_port", "call_id" to contacts.
 | |
|    As res_pjsip_nat rewrites contact's address, only the last Via header
 | |
|    can contain the source address of registered endpoint.
 | |
|    Also Call-Id header may contain the source address of registered endpoint.
 | |
|    Added new fields ViaAddress,CallID to AMI event ContactStatus
 | |
| 
 | |
|  * Endpoint IP Access Controls
 | |
|    Added new configuration Endpoint options:
 | |
|     "acl" - list of IP ACL section names in acl.conf
 | |
|     "deny" - List of IP addresses to deny access from
 | |
|     "permit" - List of IP addresses to permit access from
 | |
|     "contact_acl" - List of Contact ACL section names in acl.conf
 | |
|     "contact_deny" - List of Contact header addresses to deny
 | |
|     "contact_permit" - List of Contact header addresses to permit
 | |
| 
 | |
|  * Added new status Updated to AMI event ContactStatus on update registration
 | |
| 
 | |
|  * Added "reg_server" to contacts.
 | |
|    If the Asterisk system name is set in asterisk.conf, it will be stored
 | |
|    into the "reg_server" field in the ps_contacts table to facilitate
 | |
|    multi-server setups.
 | |
| 
 | |
|  * When starting Asterisk, received traffic will now be ignored until Asterisk
 | |
|    has loaded all modules and is fully booted.
 | |
| 
 | |
| res_hep
 | |
| ------------------
 | |
|  * Added a new option, 'uuid_type', that sets the preferred source of the Homer
 | |
|    correlation UUID. The valid options are:
 | |
|    - call-id: Use the PJSIP SIP Call-ID header value
 | |
|    - channel: Use the Asterisk channel name
 | |
|    The default value is 'call-id'. In the event that a HEP module cannot find a
 | |
|    valid value using the specified 'uuid_type', the module may fallback to a
 | |
|    more readily available source for the correlation UUID.
 | |
| 
 | |
| res_pjsip_info_empty
 | |
| --------------------
 | |
|  * 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.
 | |
| 
 | |
| res_odbc
 | |
| ------------------
 | |
|  * A new option has been added, 'max_connections', which sets the maximum number
 | |
|    of concurrent connections to the database. This option defaults to 1 which
 | |
|    returns the behavior to that of Asterisk 13.7 and prior.
 | |
| 
 | |
| app_confbridge
 | |
| ------------------
 | |
|  * Added a bridge profile option called regcontext that allows you to
 | |
|    dynamically register the conference bridge name as an extension into
 | |
|    the specified context.  This allows tracking down conferences on multi-
 | |
|    server installations via alternate means (DUNDI for example). By default
 | |
|    this feature is not used.
 | |
| 
 | |
| Codecs
 | |
| ------------------
 | |
|  * Added the associated format name to 'core show codecs'.
 | |
| 
 | |
| res_ari_channels
 | |
| ------------------
 | |
|  * Added 'formats' to channel create/originate to allow setting the allowed
 | |
|    formats for a channel when no originator channel is available.  Especially
 | |
|    useful for Local channel creation where no other format information is
 | |
|    available.  'core show codecs' can now be used to look up suitable format
 | |
|    names.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 13.8.0 to Asterisk 13.9.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| res_pjsip
 | |
| ------------------
 | |
|  * Added new global option (disable_multi_domain) to pjsip.
 | |
|    Disabling Multi Domain can improve realtime performace by reducing
 | |
|    number of database requsts.
 | |
| 
 | |
| chan_pjsip
 | |
| ------------------
 | |
|  * Added 'pjsip show channelstats' CLI command.
 | |
| 
 | |
| res_pjsip_outbound_publish
 | |
| ------------------
 | |
|  * Added support for setting the transport used on outbound publish
 | |
|    using the transport configuration option.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 13.7.0 to Asterisk 13.8.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| res_pjsip_caller_id
 | |
| ------------------
 | |
|  * Per RFC3325, the 'From' header is now anonymized on outgoing calls when
 | |
|    caller id presentation is prohibited.
 | |
| 
 | |
| res_pjsip_config_wizard
 | |
| ------------------
 | |
|  * A new command (pjsip export config_wizard primitives) has been added that
 | |
|    will export all the pjsip objects it created to the console or a file
 | |
|    suitable for reuse in a pjsip.conf file.
 | |
| 
 | |
| Build System
 | |
| ------------------
 | |
|  * To help insure that Asterisk is compiled and run with the same known
 | |
|    version of pjproject, a new option (--with-pjproject-bundled) has been
 | |
|    added to ./configure.  When specified, the version of pjproject specified
 | |
|    in third-party/versions.mak will be downloaded and configured.  When you
 | |
|    make Asterisk, the build process will also automatically build pjproject
 | |
|    and Asterisk will be statically linked to it.  Once a particular version
 | |
|    of pjproject is configured and built, it won't be configured or built
 | |
|    again unless you run a 'make distclean'.
 | |
| 
 | |
|    To facilitate testing, when 'make install' is run, the pjsua and pjsystest
 | |
|    utilities and the pjproject python bindings will be installed in
 | |
|    ASTDATADIR/third-party/pjproject.
 | |
| 
 | |
|    The default behavior remains building with the shared pjproject
 | |
|    installation, if any.
 | |
| 
 | |
| app_confbridge
 | |
| ------------------
 | |
|  * Added CONFBRIDGE_INFO(muted,) for querying the muted conference state.
 | |
| 
 | |
|  * Added Muted header to AMI ConfbridgeListRooms action response list events
 | |
|    to indicate the muted conference state.
 | |
| 
 | |
|  * Added Muted column to CLI "confbridge list" output to indicate the muted
 | |
|    conference state and made the locked column a yes/no value instead of a
 | |
|    locked/unlocked value.
 | |
| 
 | |
| REDIRECTING(reason)
 | |
| ------------------
 | |
|  * The REDIRECTING(reason) value is now treated consistently between
 | |
|    chan_sip and chan_pjsip.
 | |
| 
 | |
|    Both channel drivers match incoming reason values with values documented
 | |
|    by REDIRECTING(reason) and values documented by RFC5806 regardless of
 | |
|    whether they are quoted or not.  RFC5806 values are mapped to the
 | |
|    equivalent REDIRECTING(reason) documented value and is set in
 | |
|    REDIRECTING(reason).  e.g., an incoming RFC5806 'unconditional' value or a
 | |
|    quoted string version ('"unconditional"') is converted to
 | |
|    REDIRECTING(reason)'s 'cfu' value.  The user's dialplan only needs to deal
 | |
|    with 'cfu' instead of any of the aliases.
 | |
| 
 | |
|    The incoming 480 response reason text supported by chan_sip checks for
 | |
|    known reason values and if not matched then puts quotes around the reason
 | |
|    string and assigns that to REDIRECTING(reason).
 | |
| 
 | |
|    Both channel drivers send outgoing known REDIRECTING(reason) values as the
 | |
|    unquoted RFC5806 equivalent.  User custom values are either sent as is or
 | |
|    with added quotes if SIP doesn't allow a character within the value as
 | |
|    part of a RFC3261 Section 25.1 token.  Note that there are still
 | |
|    limitations on what characters can be put in a custom user value.  e.g.,
 | |
|    embedding quotes in the middle of the reason string is just going to cause
 | |
|    you grief.
 | |
| 
 | |
|  * Setting a REDIRECTING(reason) value now recognizes RFC5806 aliases.
 | |
|    e.g., Setting REDIRECTING(reason) to 'unconditional' is converted to the
 | |
|    'cfu' value.
 | |
| 
 | |
| res_pjproject
 | |
| ------------------
 | |
|  * This module is the successor of res_pjsip_log_forwarder.  As well as
 | |
|    handling the log forwarding (which now displays as 'pjproject:0' instead
 | |
|    of 'pjsip:0'), it also adds a 'pjproject show buildopts' command to the CLI.
 | |
|    This displays the compiled-in options of the pjproject installation
 | |
|    Asterisk is currently running against.
 | |
| 
 | |
|  * Another feature of this module is the ability to map pjproject log levels
 | |
|    to Asterisk log levels, or to suppress the pjproject log messages
 | |
|    altogether.  Many of the messages emitted by pjproject itself are the result
 | |
|    of errors which Asterisk will ultimately handle so the messages can be
 | |
|    misleading or just noise.  A new config file (pjproject.conf) has been added
 | |
|    to configure the mapping and a new CLI command (pjproject show log mappings)
 | |
|    has been added to display the mappings currently in use.
 | |
| 
 | |
| res_pjsip
 | |
| ------------------
 | |
|  * Transports are now reloadable.  In testing, no in-progress calls were
 | |
|    disrupted if the ip address or port weren't changed, but the possibility
 | |
|    still exists.  To make sure there are no unintentional drops, a new option
 | |
|    'allow_reload', which defaults to 'no' has been added to transport.  If
 | |
|    left at the default, changes to the particular transport will be ignored.
 | |
|    If set to 'yes', changes (if any) will be applied.
 | |
| 
 | |
|  * Added new global option (regcontext) to pjsip. When set, Asterisk will
 | |
|    dynamically create and destroy a NoOp priority 1 extension
 | |
|    for a given endpoint who registers or unregisters with us.
 | |
| 
 | |
|  * Endpoints and aors can now be identified by the username and realm in an
 | |
|    incoming Authorization header.  To use this feature, add "auth_username"
 | |
|    to your endpoint's "identify_by" list.  You can combine "auth_username"
 | |
|    and the original "username" to test both the From/To and Authorization
 | |
|    headers.  For endpoints, the order is controlled by the global
 | |
|    "endpoint_identifier_order" setting.  For matching aors to an endpoint
 | |
|    for inbound registration, the order is controlled by this option.
 | |
| 
 | |
|  * In conjunction with the "auth_username" change, 3 new options have been
 | |
|    added to the global configuration object that control how many unidentified
 | |
|    requests over a certain period from the same IP address can be received
 | |
|    before a security altert is generated.  A new CLI command
 | |
|    "pjsip show unidentified_requests" will list the current candidates.
 | |
| 
 | |
| res_pjsip_history
 | |
| ------------------
 | |
|  * A new module, res_pjsip_history, has been added that provides SIP history
 | |
|    viewing/filtering from the CLI. The module is intended to be used on systems
 | |
|    with busy SIP traffic, where existing forms of viewing SIP messages - such
 | |
|    as the res_pjsip_logger - may be inadequate. The module provides two new
 | |
|    CLI commands:
 | |
|    - 'pjsip set history {on|off|clear}' - this enables/disables SIP history
 | |
|      capturing, as well as clears an existing history capture. Note that SIP
 | |
|      packets captured are stored in memory until cleared. As a result, the
 | |
|      history capture should only be used for debugging/viewing purposes, and
 | |
|      should *NOT* be left permanently enabled on a system.
 | |
|    - 'pjsip show history' - displays the captured SIP history. When invoked
 | |
|      with no options, the entire captured history is displayed. Two options
 | |
|      are available:
 | |
|      -- 'entry <num>' - display a detailed view of a single SIP message in
 | |
|         the history
 | |
|      -- 'where ...' - filter the history based on some expression. For more
 | |
|         information on filtering, view the current CLI help for the
 | |
|         'pjsip show history' command.
 | |
| 
 | |
| Voicemail
 | |
| ------------------
 | |
|  * app_voicemail and res_mwi_external can now be built together.  The default
 | |
|    remains to build app_voicemail and not res_mwi_external but if they are
 | |
|    both built, the load order will cause res_mwi_external to load first and
 | |
|    app_voicemail will be skipped.  Use 'preload=app_voicemail.so' in
 | |
|    modules.conf to force app_voicemail to be the voicemail provider.
 | |
| 
 | |
| Queue
 | |
| -------------------
 | |
|  * Added field ReasonPause on QueueMemberStatus if set when paused, the reason
 | |
|    the queue member was paused.
 | |
| 
 | |
| res_pjsip_sdp_rtp
 | |
| ------------------
 | |
|  * A new option (bind_rtp_to_media_address) has been added to endpoint which
 | |
|    will cause res_pjsip_sdp_rtp to actually bind the RTP instance to the
 | |
|    media_address as well as using it in the SDP.  If set, RTP packets will now
 | |
|    originate from the media address instead of the operating system's "primary"
 | |
|    ip address.
 | |
| 
 | |
| res_rtp_asterisk
 | |
| ------------------
 | |
|  * A new configuration section - ice_host_candidates - has been added to
 | |
|    rtp.conf, allowing automatically discovered ICE host candidates to be
 | |
|    overriden. This allows an Asterisk server behind a 1:1 NAT to send its
 | |
|    external IP as a host candidate rather than relying on STUN to discover it.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 13.6.0 to Asterisk 13.7.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| Codecs
 | |
| ------------------
 | |
|  * Added format attribute negotiation for the VP8 video codec. Format attribute
 | |
|    negotiation is provided by the res_format_attr_vp8 module.
 | |
| 
 | |
| ConfBridge
 | |
| ------------------
 | |
|  * A new "timeout" user profile option has been added. This configures the number
 | |
|    of seconds that a participant may stay in the ConfBridge after joining. When
 | |
|    the time expires, the user is ejected from the conference and CONFBRIDGE_RESULT
 | |
|    is set to "TIMEOUT" on the channel.
 | |
| 
 | |
| chan_sip
 | |
| ------------------
 | |
|  * The websockets_enabled option has been added to the general section of
 | |
|    sip.conf.  The option is enabled by default to match the previous behavior.
 | |
|    The option should be disabled when using res_pjsip_transport_websockets to
 | |
|    ensure chan_sip will not conflict with PJSIP websockets.
 | |
| 
 | |
| Dialplan Functions
 | |
| ------------------
 | |
|  * The HOLD_INTERCEPT dialplan function now actually exists in the source tree.
 | |
|    While support for the events was added in Asterisk 13.4.0, the function
 | |
|    accidentally never made it in. That function is now present, and will cause
 | |
|    the 'hold' raised by a channel to be intercepted and converted into an
 | |
|    event instead.
 | |
| 
 | |
| res_pjsip_outbound_registration
 | |
| -------------------------------
 | |
|  * 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'.
 | |
| 
 | |
|  * If res_statsd is loaded and a StatsD server is configured, basic statistics
 | |
|    regarding the state of outbound registrations will now be emitted. This
 | |
|    includes:
 | |
|    - A GAUGE statistic for the overall number of outbound registrations, i.e.:
 | |
|        PJSIP.registrations.count
 | |
|    - A GAUGE statistic for the overall number of outbound registrations in a
 | |
|      particular state, e.g.:
 | |
|        PJSIP.registrations.state.Registered
 | |
| 
 | |
| res_pjsip
 | |
| ------------------
 | |
|  * The ability to use "like" has been added to the pjsip list and show
 | |
|    CLI commands.  For instance: CLI> pjsip list endpoints like abc
 | |
| 
 | |
|  * If res_statsd is loaded and a StatsD server is configured, basic statistics
 | |
|    regarding the state of PJSIP contacts will now be emitted. This includes:
 | |
|    - A GAUGE statistic for the overall number of contacts in a particular
 | |
|      state, e.g.:
 | |
|        PJSIP.contacts.states.Reachable
 | |
|    - A TIMER statistic for the RTT time for each qualified contact, e.g.:
 | |
|        PJSIP.contacts.alice@@127.0.0.1:5061.rtt
 | |
| 
 | |
| res_sorcery_memory_cache
 | |
| ------------------------
 | |
|  * A new caching strategy, full_backend_cache, has been added which caches
 | |
|    all stored objects in the backend. When enabled all objects will be
 | |
|    expired or go stale according to the configuration. As well when enabled
 | |
|    all retrieval operations will be performed against the cache instead of
 | |
|    the backend.
 | |
| 
 | |
| func_callerid
 | |
| -------------------
 | |
|  * CALLERID(pres) is now documented as a valid alternative to setting both
 | |
|    CALLERID(name-pres) and CALLERID(num-pres) at once.  Some channel drivers,
 | |
|    like chan_sip, don't make a distinction between the two: they take the
 | |
|    least public value from name-pres and num-pres.  By using CALLERID(pres)
 | |
|    for reading and writing, you touch the same combined value in the dialplan.
 | |
|    The same applies to CONNECTEDLINE(pres), REDIRECTING(orig-pres),
 | |
|    REDIRECTING(to-pres) and REDIRECTING(from-pres).
 | |
| 
 | |
| res_endpoint_stats
 | |
| -------------------
 | |
|  * A new module that emits StatsD statistics regarding Asterisk endpoints.
 | |
|    This includes a total count of the number of endpoints, the count of the
 | |
|    number of endpoints in the technology agnostic state of the endpoint -
 | |
|    online or offline - as well as the number of channels associated with each
 | |
|    endpoint. These are recorded as three different GAUGE statistics:
 | |
|     - endpoints.count
 | |
|     - endpoints.state.{unknown|offline|online}
 | |
|     - endpoints.{tech}.{resource}.channels
 | |
| 
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 13.5.0 to Asterisk 13.6.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| Dialplan Functions
 | |
| ------------------
 | |
|  * The CHANNEL function, when used on a PJSIP channel, now exposes a 'call-id'
 | |
|    extraction option when using with the 'pjsip' signalling option. It will
 | |
|    return the SIP Call-ID associated with the INVITE request that established
 | |
|    the PJSIP channel.
 | |
| 
 | |
| ARI
 | |
| ------------------
 | |
|  * Two new endpoint related events are now available: PeerStatusChange and
 | |
|    ContactStatusChange. In particular, these events are useful when subscribing
 | |
|    to all event sources, as they provide additional endpoint related
 | |
|    information beyond the addition/removal of channels from an endpoint.
 | |
|    The ARI version has been bumped to 1.9.0 as a result.
 | |
| 
 | |
|  * Added the ability to subscribe to all ARI events in Asterisk, regardless
 | |
|    of whether the application 'controls' the resource. This is useful for
 | |
|    scenarios where an ARI application merely wants to observe the system,
 | |
|    as opposed to control it. There are two ways to accomplish this:
 | |
|    (1) Via the WebSocket connection URI. A new query paramter, 'subscribeAll',
 | |
|        has been added that, when present and True, will subscribe all
 | |
|        specified applications to all ARI event sources in Asterisk.
 | |
|    (2) Via the applications resource. An ARI client can, at any time, subscribe
 | |
|        to all resources in an event source merely by not providing an explicit
 | |
|        resource. For example, subscribing to an event source of 'channels:'
 | |
|        as opposed to 'channels:12345' will subscribe the application to all
 | |
|        channels.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 13.4.0 to Asterisk 13.5.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| AMI
 | |
| ------------------
 | |
|  * A new ContactStatus event has been added that reflects res_pjsip contact
 | |
|    lifecycle changes:  Created, Removed, Reachable, Unreachable, Unknown.
 | |
| 
 | |
|  * Added the Linkedid header to the common channel headers listed for each
 | |
|    channel in AMI events.
 | |
| 
 | |
| ARI
 | |
| ------------------
 | |
|  * A new feature has been added that enables the retrieval of modules and
 | |
|    module information through an HTTP request. Information on a single module
 | |
|    can be also be retrieved. Individual modules can be loaded to Asterisk, as
 | |
|    well as unloaded and reloaded.
 | |
| 
 | |
| * A new resource has been added to the 'asterisk' resource, 'config/dynamic'.
 | |
|    This resource allows for push configuration of sorcery derived objects
 | |
|    within Asterisk. The resource supports creation, retrieval, updating, and
 | |
|    deletion. Sorcery derived objects that are manipulated by this resource
 | |
|    must have a sorcery wizard that supports the desired operations.
 | |
| 
 | |
|  * A new feature has been added that allows for the rotation of log channels
 | |
|    through HTTP requests.
 | |
| 
 | |
| 
 | |
| res_pjsip
 | |
| ------------------
 | |
| * A new 'g726_non_standard' endpoint option has been added that, when set to
 | |
|   'yes' and g.726 audio is negotiated, forces the codec to be treated as if it
 | |
|   is AAL2 packed on the channel.
 | |
| 
 | |
| * A new 'rtp_keepalive' endpoint option has been added. This option specifies
 | |
|   an interval, in seconds, at which we will send RTP comfort noise packets to
 | |
|   the endpoint. This functions identically to chan_sip's "rtpkeepalive" option.
 | |
| 
 | |
| * New 'rtp_timeout' and 'rtp_timeout_hold' endpoint options have been added.
 | |
|   These options specify the amount of time, in seconds, that Asterisk will wait
 | |
|   before terminating the call due to lack of received RTP. These are identical
 | |
|   to chan_sip's rtptimeout and rtpholdtimeout options.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 13.3.0 to Asterisk 13.4.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| chan_pjsip
 | |
| ------------------
 | |
|  * New 'rpid_immediate' option to control if connected line update information
 | |
|    goes to the caller immediately or waits for another reason to send the
 | |
|    connected line information update.  See the online option documentation for
 | |
|    more information.  Defaults to 'no' as setting it to 'yes' can result in
 | |
|    many unnecessary messages being sent to the caller.
 | |
| 
 | |
|  * The configuration setting 'progressinband' now defaults to 'no', which
 | |
|    matches the actual behavior of previous versions.
 | |
| 
 | |
|  * 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.
 | |
| 
 | |
| res_pjsip
 | |
| ------------------
 | |
|  * A new CLI command has been added: "pjsip show settings", which shows
 | |
|    both the global and system configuration settings.
 | |
| 
 | |
|  * A new global option has been added: "max_initial_qualify_time", which
 | |
|    sets the maximum amount of time from startup that qualifies should be
 | |
|    attempted on all contacts.
 | |
| 
 | |
| * A new aor option has been added: "qualify_timeout", which sets the timeout
 | |
|    in seconds for a qualify.  The default is 3 seconds.  This overrides the
 | |
|    hard coded 32 seconds in pjproject.
 | |
| 
 | |
|  * Endpoint status will now change to "Unreachable" when all contacts are
 | |
|    unavailable.  When any contact becomes available, the endpoint will status
 | |
|    will change back to "Reachable".
 | |
| 
 | |
| res_ari_channels
 | |
| ------------------
 | |
|  * Two new events, 'ChannelHold' and 'ChannelUnhold', have been added to the
 | |
|    events data model. These events are raised when a channel indicates a hold
 | |
|    or unhold, respectively.
 | |
| 
 | |
| func_holdintercept
 | |
| ------------------
 | |
|  * A new dialplan function, HOLD_INTERCEPT, has been added. This function, when
 | |
|    placed on a channel, intercepts hold/unhold indications signalled by the
 | |
|    channel and prevents them from moving on to other channels in a bridge with
 | |
|    the hold initiator. Instead, AMI or ARI events are raised indicating that
 | |
|    the channel wanted to place someone on hold. This allows external
 | |
|    applications to implement their own custom hold/unhold logic.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 13.2.0 to Asterisk 13.3.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| chan_pjsip/app_transfer
 | |
| ------------------
 | |
|  * The Transfer application, when used with chan_pjsip, now supports using
 | |
|    a PJSIP endpoint as the transfer destination. This is in addition to
 | |
|    explicitly specifying a SIP URI to transfer to.
 | |
| 
 | |
| res_ari_channels
 | |
| ------------------
 | |
|  * The ARI /channels resource now supports a new operation, 'redirect'. The
 | |
|    redirect operation will perform a technology and state specific redirection
 | |
|    on the channel to a specified endpoint or destination. In the case of SIP
 | |
|    technologies, this is either a 302 Redirect response to an on-going INVITE
 | |
|    dialog or a SIP REFER request.
 | |
| 
 | |
| res_pjsip
 | |
| ------------------
 | |
|  * A new 'endpoint_identifier_order' option has been added that allows one to
 | |
|    set the order by which endpoint identifiers are processed and checked. This
 | |
|    option is specified under the 'global' type configuration section.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 13.1.0 to Asterisk 13.2.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| res_pjsip_outbound_registration
 | |
| ------------------
 | |
|  * The 'pjsip send unregister' command now stops further registrations.
 | |
| 
 | |
|  * A new command 'pjsip send register' has been added which allows you to
 | |
|    start or restart periodic registration.  It can be used after a
 | |
|    'send unregister' or after a 401 permanent error.
 | |
| 
 | |
| chan_pjsip
 | |
| ------------------
 | |
|  * 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 global setting 'keep_alive_interval'. Setting this to a non-zero value
 | |
|    will cause keep alive messages to be sent periodically over connection
 | |
|    oriented transports.
 | |
| 
 | |
|  * New 'PJSIP_AOR' and 'PJSIP_CONTACT' dialplan functions have been added which
 | |
|    allow examining PJSIP AORs or contacts from the dialplan.
 | |
| 
 | |
| res_pjsip_config_wizard
 | |
| ------------------
 | |
|  * This is a new module that adds streamlined configuration capability for
 | |
|    chan_pjsip.  It's targetted at users who have lots of basic configuration
 | |
|    scenarios like 'phone' or 'agent' or 'trunk'.  Additional information
 | |
|    can be found in the sample configuration file at
 | |
|    config/samples/pjsip_wizard.conf.sample.
 | |
| 
 | |
| res_fax
 | |
| -----------
 | |
|  * The T.38 negotiation timeout was previously hard coded at 5000 milliseconds
 | |
|    and is now configurable via the 't38timeout' configuration option in
 | |
|    res_fax.conf and via the fax options dialplan function 'FAXOPT(t38timeout)'.
 | |
|    The default remains at 5000 milliseconds.
 | |
| 
 | |
| PJSIP Transports
 | |
| ----------
 | |
|  * The ca_list_path transport parameter has been added for TLS transports. This
 | |
|    option behaves similarly to the old sip.conf option "tlscapath". In order to
 | |
|    use this, you must be using PJProject version 2.4 or higher.
 | |
| 
 | |
| ARI
 | |
| ------------------
 | |
|  * The Originate operation now takes in an originator channel. The linked ID of
 | |
|    this originator channel is applied to the newly originated outgoing channel.
 | |
|    If using CEL this allows an association to be established between the two so
 | |
|    it can be recognized that the originator is dialing the originated channel.
 | |
| 
 | |
|  * "language" (the default spoken language for the channel) is now included in
 | |
|    the standard channel state output for suitable events.
 | |
| 
 | |
|  * The POST channels/{id} operation and the POST channels/{id}/continue operation
 | |
|    now have a new "label" parameter. This allows for origination or continuation
 | |
|    to a labeled priority in the dialplan instead of requiring a specific priority
 | |
|    number. The ARI version has been bumped to 1.7.0 as a result.
 | |
| 
 | |
| AMI
 | |
| ------------------
 | |
|  * "Language" (the default spoken language for the channel) is now included in
 | |
|    the standard channel state output for suitable events.
 | |
| 
 | |
|  * AMI actions that return a list of events have been made to return consistent
 | |
|    headers for the action response event starting the list and the list complete
 | |
|    event.  The AMI version has been bumped to 2.7.0 as a result.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 13.0.0 to Asterisk 13.1.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| AMI
 | |
| ------------------
 | |
|  * Event NewConnectedLine is emitted when the connected line information on
 | |
|    a channel changes.
 | |
| 
 | |
|  * The version of AMI has been bumped to 2.6.0 to account for the backwards
 | |
|    compatible feature listed above.
 | |
| 
 | |
| ARI
 | |
| ------------------
 | |
|  * Event ChannelConnectedLine is emitted when the connected line information
 | |
|    on a channel changes.
 | |
| 
 | |
|  * The version of ARI has been bumped to 1.6.0 to account for the backwards
 | |
|    compatible feature listed above.
 | |
| 
 | |
| Core Transfers
 | |
| -----------------
 | |
| 
 | |
| The features.conf general section has three new configurable options:
 | |
|     * transferdialattempts
 | |
| 	* transferretrysound
 | |
| 	* transferinvalidsound
 | |
| For more information on what these options do, see the Asterisk wiki:
 | |
| 	https://wiki.asterisk.org/wiki/x/W4fAAQ
 | |
| 
 | |
| Channel Drivers
 | |
| ------------------
 | |
| 
 | |
| chan_pjsip
 | |
| ------------------
 | |
|  * New 'media_encryption_optimistic' endpoint setting. This will use SRTP
 | |
|    when possible but does not consider lack of it a failure.
 | |
| 
 | |
| res_pjsip_endpoint_identifer_ip
 | |
| ------------------
 | |
|  * New CLI commands have been added: "pjsip show identif(y|ies)", which lists
 | |
|    all configured PJSIP identify objects
 | |
|    
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 12 to Asterisk 13 --------------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| Overview
 | |
| ------------------
 | |
| 
 | |
| Asterisk 13 is the next Long Term Support (LTS) release of Asterisk. As such,
 | |
| the focus of development for this release of Asterisk was on improving the
 | |
| usability and features developed in the previous Standard release, Asterisk 12.
 | |
| Beyond a general refinement of end user features, development focussed heavily
 | |
| on the Asterisk APIs - the Asterisk Manager Interface (AMI) and the Asterisk
 | |
| REST Interface (ARI) - and the PJSIP stack in Asterisk. Some highlights of the
 | |
| new features include:
 | |
| 
 | |
| * Asterisk security events are now provided via AMI, allowing end users to
 | |
|   monitor their Asterisk system in real time for security related issues.
 | |
| * External control of Message Waiting Indicators (MWI) through both AMI and ARI.
 | |
| * Reception/transmission of out of call text messages using any supported
 | |
|   channel driver/protocol stack through ARI.
 | |
| * Resource List Server support in the PJSIP stack, providing subscriptions to
 | |
|   lists of resources and batched delivery of NOTIFY requests.
 | |
| * Inter-Asterisk distributed device state and mailbox state using the PJSIP
 | |
|   stack.
 | |
| 
 | |
| It is important to note that Asterisk 13 is built on the architecture developed
 | |
| during the previous Standard release, Asterisk 12. Users upgrading to
 | |
| Asterisk 13 should read about the new features in Asterisk 12 later in this file
 | |
| (see Functionality changes from Asterisk 11 to Asterisk 12), as well as the
 | |
| UPGRADE-12.txt delivered with this release. In particular, users upgrading to
 | |
| Asterisk 13 from a release prior to Asterisk 12 should read the specifications
 | |
| on AMI, CDRs, and CEL on the Asterisk wiki:
 | |
|  * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
 | |
|  * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
 | |
|  * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
 | |
| 
 | |
| Many new featuers in Asterisk 13 were introduced in point releases of
 | |
| Asterisk 12. Following this section - which documents the changes from all
 | |
| versions of Asterisk 12 to Asterisk 13 - users should examine the new features
 | |
| that were introduced in the point releases of Asterisk 12, as they are also
 | |
| included in Asterisk 13.
 | |
| 
 | |
| Finally, all users upgrading to Asterisk 13 should read the UPGRADE.txt file
 | |
| delivered with this release.
 | |
| 
 | |
| Build System
 | |
| ------------------
 | |
|  * Sample config files have been moved from configs/ to a sub-folder of that
 | |
|    directory, samples.
 | |
| 
 | |
|  * The menuselect utility has been pulled into the Asterisk repository. As a
 | |
|    result, the libxml2 development library is now a required dependency for
 | |
|    Asterisk.
 | |
| 
 | |
|  * A new Compiler Flag, REF_DEBUG, has been added. When enabled, reference
 | |
|    counted objects will emit additional debug information to the refs log file
 | |
|    located in the standard Asterisk log file directory. This log file is useful
 | |
|    in tracking down object leaks and other reference counting issues. Prior to
 | |
|    this version, this option was only available by modifying the source code
 | |
|    directly. This change also includes a new script, refcounter.py, in the
 | |
|    contrib folder that will process the refs log file. Note that this replaces
 | |
|    the refcounter utility that could be built from the utils directory.
 | |
| 
 | |
| 
 | |
| Applications
 | |
| ------------------
 | |
| 
 | |
| DahdiBarge
 | |
| ------------------
 | |
|  * This module was deprecated and has been removed. Users of app_dahdibarge
 | |
|    should use ChanSpy instead.
 | |
| 
 | |
| MixMonitor
 | |
| ------------------
 | |
|  * New options to play a beep when starting a recording and stopping a recording
 | |
|    have been added.  The option "p" will play a beep to the channel that starts
 | |
|    the recording.  The option "P" will play a beep to the channel that stops the
 | |
|    recording.
 | |
| 
 | |
| Queue
 | |
| ------------------
 | |
|  * Queue rules can now be stored in a database table, queue_rules. Unlike other
 | |
|    RealTime tables, the queue_rules table is only examined on module load or
 | |
|    module reload. A new general setting has been added to queuerules.conf,
 | |
|    'realtime_rules', which, when set to 'yes', will cause app_queue to look in
 | |
|    RealTime for additional queue rules to parse. Note that both the file and
 | |
|    the database can be used as a provide of queue rules when 'realtime_rules'
 | |
|    is set to 'yes'.
 | |
| 
 | |
|    When app_queue is reloaded, all rules are re-parsed and loaded into memory.
 | |
|    There is no caching of RealTime queue rules.
 | |
| 
 | |
| ReadFile
 | |
| ------------------
 | |
|  * This module was deprecated and has been removed. Users of app_readfile
 | |
|    should use func_env's FILE function instead.
 | |
| 
 | |
| Say
 | |
| ------------------
 | |
|  * The 'say' family of dialplan applications now support the Japanese
 | |
|    language. The 'language' parameter in say.conf now recognizes a setting of
 | |
|    'ja', which will enable Japanese language specific mechanisms for playing
 | |
|    back numbers, dates, and other items.
 | |
| 
 | |
| SayCountPL
 | |
| ------------------
 | |
|  * This module was deprecated and has been removed. Users of app_saycountpl
 | |
|    should use the Say family of applications.
 | |
| 
 | |
| SetMusicOnHold
 | |
| ------------------
 | |
|  * The SetMusicOnHold dialplan application was deprecated and has been removed.
 | |
|    Users of the application should use the CHANNEL function's musicclass
 | |
|    setting instead.
 | |
| 
 | |
| WaitMusicOnHold
 | |
| ------------------
 | |
|  * The WaitMusicOnHold dialplan application was deprecated and has been
 | |
|    removed. Users of the application should use MusicOnHold with a duration
 | |
|    parameter instead.
 | |
| 
 | |
| VoiceMail
 | |
| ------------------
 | |
|  * VoiceMail and VoiceMailMain now support the Japanese language. The
 | |
|    'language' parameter in voicemail.conf now recognizes a setting of 'ja',
 | |
|    which will enable prompts to be played back using a Japanese grammatical
 | |
|    structure. Additional prompts are necessary for this functionality,
 | |
|    including:
 | |
|    - jb-arimasu: there is
 | |
|    - jb-arimasen: there is not
 | |
|    - jb-oshitekudasai: please press
 | |
|    - jb-ni: article ni
 | |
|    - jb-ga: article ga
 | |
|    - jb-wa: article wa
 | |
|    - jb-wo: article wo
 | |
| 
 | |
|  * Add the ability to specify multiple email addresses in configuration,
 | |
|    separated by a |.
 | |
| 
 | |
| 
 | |
| CDR Backends
 | |
| ------------------
 | |
| 
 | |
| cdr_sqlite
 | |
| -----------------
 | |
|  * This module was deprecated and has been removed. Users of cdr_sqlite
 | |
|    should use cdr_sqlite3_custom.
 | |
| 
 | |
| cdr_pgsql
 | |
| ------------------
 | |
|  * Added the ability to support PostgreSQL application_name on connections.
 | |
|    This allows PostgreSQL to display the configured name in the
 | |
|    pg_stat_activity view and CSV log entries. This setting is configurable
 | |
|    for cdr_pgsql via the appname configuration setting in cdr_pgsql.conf.
 | |
| 
 | |
| 
 | |
| CEL Backends
 | |
| ------------------
 | |
| 
 | |
| cel_pgsql
 | |
| ------------------
 | |
|  * Added the ability to support PostgreSQL application_name on connections.
 | |
|    This allows PostgreSQL to display the configured name in the
 | |
|    pg_stat_activity view and CSV log entries. This setting is configurable
 | |
|    for cel_pgsql via the appname configuration setting in cel_pgsql.conf.
 | |
| 
 | |
| 
 | |
| Channel Drivers
 | |
| ------------------
 | |
| 
 | |
| chan_dahdi
 | |
| ------------------
 | |
|  * SS7 support now requires libss7 v2.0 or later.
 | |
| 
 | |
|  * Added SS7 support for connected line and redirecting.
 | |
| 
 | |
|  * Most SS7 CLI commands are reworked as well as new SS7 commands added.
 | |
|    See online CLI help.
 | |
| 
 | |
|  * Added several SS7 config option parameters described in
 | |
|    chan_dahdi.conf.sample.
 | |
| 
 | |
| chan_gtalk
 | |
| ------------------
 | |
|  * This module was deprecated and has been removed. Users of chan_gtalk
 | |
|    should use chan_motif.
 | |
| 
 | |
| chan_h323
 | |
| ------------------
 | |
|  * This module was deprecated and has been removed. Users of chan_h323
 | |
|    should use chan_ooh323.
 | |
| 
 | |
| chan_jingle
 | |
| ------------------
 | |
|  * This module was deprecated and has been removed. Users of chan_jingle
 | |
|    should use chan_motif.
 | |
| 
 | |
| chan_pjsip
 | |
| ------------------
 | |
|  * Added the CLI command 'pjsip list ciphers' so a user can know what
 | |
|    OpenSSL names are available on their system for the pjsip.conf cipher
 | |
|    option.
 | |
| 
 | |
| chan_sip
 | |
| ------------------
 | |
|  * The SIPPEER dialplan function no longer supports using a colon as a
 | |
|    delimiter for parameters. The parameters for the function should be
 | |
|    delimited using a comma.
 | |
| 
 | |
|  * The SIPCHANINFO dialplan function was deprecated and has been removed. Users
 | |
|    of the function should use the CHANNEL function instead.
 | |
| 
 | |
| 
 | |
| Core
 | |
| ------------------
 | |
| 
 | |
| Account Codes
 | |
| ------------------
 | |
|  * Added functional peeraccount support.  Except for Queue, the
 | |
|    accountcode propagation is now consistently propagated to outgoing
 | |
|    channels before dialing.  The channel accountcode can change from its
 | |
|    original non-empty value on channel creation for the following specific
 | |
|    reasons.  One, dialplan sets it using CHANNEL(accountcode).  Two, an
 | |
|    originate method that can specify an accountcode value.  Three, the
 | |
|    calling channel propagates its peeraccount or accountcode to the
 | |
|    outgoing channel's accountcode before dialing.  The change has two
 | |
|    visible effects.  One, local channels now cross accountcode and
 | |
|    peeraccount across the special bridge between the ;1 and ;2 channels
 | |
|    just like channels between normal bridges.  Two, the
 | |
|    CHANNEL(peeraccount) value can now be set before Dial and FollowMe to
 | |
|    set the accountcode on the outgoing channel(s).
 | |
| 
 | |
|    For Queue, an outgoing channel's non-empty accountcode will not change
 | |
|    unless explicitly set by CHANNEL(accountcode).  The change has three
 | |
|    visible effects.  One, local channels now cross accountcode and
 | |
|    peeraccount across the special bridge between the ;1 and ;2 channels
 | |
|    just like channels between normal bridges.  Two, the queue member will
 | |
|    get an accountcode if it doesn't have one and one is available from the
 | |
|    calling channel's peeraccount.  Three, accountcode propagation includes
 | |
|    local channel members where the accountcodes are propagated early
 | |
|    enough to be available on the ;2 channel.
 | |
| 
 | |
| AMI
 | |
| ------------------
 | |
|  * New DeviceStateChanged and PresenceStateChanged AMI events have been added.
 | |
|    These events are emitted whenever a device state or presence state change
 | |
|    occurs. The events are controlled by res_manager_device_state.so and
 | |
|    res_manager_presence_state.so. If the high frequency of these events is
 | |
|    problematic for you, do not load these modules.
 | |
| 
 | |
|  * Added DialplanExtensionAdd and DialplanExtensionRemove AMI commands. They
 | |
|    work in basically the same way as the 'dialplan add extension' and
 | |
|    'dialplan remove extension' CLI commands respectively.
 | |
| 
 | |
|  * New AMI action LoggerRotate reloads and rotates logger in the same manner
 | |
|    as CLI command 'logger rotate'
 | |
| 
 | |
|  * New AMI Actions FAXSessions, FAXSession, and FAXStats replicate the
 | |
|    functionality of CLI commands 'fax show sessions', 'fax show session',
 | |
|    and fax show stats' respectively.
 | |
| 
 | |
|  * New AMI actions PRIDebugSet, PRIDebugFileSet, and PRIDebugFileUnset
 | |
|    enable manager control over PRI debugging levels and file output.
 | |
| 
 | |
|  * AMI action PJSIPNotify may now send to a URI instead of only to a PJSIP
 | |
|    endpoint as long as a default outbound endpoint is set. This also applies
 | |
|    to the equivalent CLI command (pjsip send notify)
 | |
|  
 | |
|  * The AMI action PJSIPShowEndpoint now includes ContactStatusDetail sections
 | |
|    that give information on Asterisk's attempts to qualify the endpoint.
 | |
| 
 | |
|  * The DialEnd event will now contain a Forward header if the dial is ending
 | |
|    due to the call being forwarded. The contents of the Forward header is the
 | |
|    extension in the number to which the call is being forwarded.
 | |
| 
 | |
| CEL
 | |
| ------------------
 | |
|  * The "bridge_technology" extra field key has been added to BRIDGE_ENTER
 | |
|    and BRIDGE_EXIT events.
 | |
| 
 | |
| Features
 | |
| ------------------
 | |
|  * Channel variables are now substituted in arguments passed to applications
 | |
|    run by using dynamic features.
 | |
| 
 | |
| TLS
 | |
| ------------------
 | |
|  * The TLS core in Asterisk now supports Perfect Forward Secrecy (PFS).
 | |
|    Enabling PFS is attempted by default, and is dependent on the configuration
 | |
|    of the module using TLS.
 | |
|    - Ephemeral ECDH (ECDHE) is enabled by default. To disable it, do not
 | |
|      specify a ECDHE cipher suite in sip.conf, for example:
 | |
|        tlscipher=AES128-SHA:DES-CBC3-SHA
 | |
|    - Ephemeral DH (DHE) is disabled by default. To enable it, add DH parameters
 | |
|      into the private key file, e.g., sip.conf tlsprivatekey. For example, the
 | |
|      default dh2048.pem - see
 | |
|      http://www.opensource.apple.com/source/OpenSSL098/OpenSSL098-35.1/src/apps/dh2048.pem?txt
 | |
|    - Because clients expect the server to prefer PFS, and because OpenSSL sorts
 | |
|      its cipher suites by bit strength, see "openssl ciphers -v DEFAULT".
 | |
|      Consider re-ordering your cipher suites in the respective configuration
 | |
|      file. For example:
 | |
|        tlscipher=AES128+kEECDH:AES128+kEDH:3DES+kEDH:AES128-SHA:DES-CBC3-SHA:-ADH:-AECDH
 | |
|      will use PFS when offered by the client. Clients which do not offer PFS
 | |
|      fall-back to AES-128 (or even 3DES, as recommended by RFC 3261).
 | |
| 
 | |
| 
 | |
| Functions
 | |
| ------------------
 | |
| 
 | |
| JACK_HOOK
 | |
| ------------------
 | |
|  * The JACK_HOOK function now supports audio with a sample rate higher than
 | |
|    8kHz.
 | |
| 
 | |
| 
 | |
| Resources
 | |
| ------------------
 | |
| 
 | |
| res_config_pgsql
 | |
| ------------------
 | |
|  * Added the ability to support PostgreSQL application_name on connections.
 | |
|    This allows PostgreSQL to display the configured name in the
 | |
|    pg_stat_activity view and CSV log entries. This setting is configurable
 | |
|    for res_config_pgsql via the dbappname configuration setting in
 | |
|    res_pgsql.conf.
 | |
| 
 | |
| res_pjsip_outbound_publish
 | |
| ------------------
 | |
|  * A new module, res_pjsip_outbound_publish provides the mechanisms for sending
 | |
|    PUBLISH requests for specific event packages to another SIP User Agent.
 | |
| 
 | |
| res_pjsip_pubsub
 | |
| ------------------
 | |
|  * The publish/subscribe core module has been updated to support RFC 4662
 | |
|    Resource Lists, allowing Asterisk to act as a Resource List Server (RLS).
 | |
|    Resource lists are configured in pjsip.conf under a new object type,
 | |
|    resource_list. Resource lists can contain either message-summary or presence
 | |
|    events, and can be composed of specific resources that provide the event or
 | |
|    other resource lists.
 | |
| 
 | |
|  * Inbound publication support is provided by a new object, inbound-publication.
 | |
|    This configures res_pjsip_pubsub to accept PUBLISH requests from a particular
 | |
|    resource. Which events are accepted is constructed dynamically; see
 | |
|    res_pjsip_publish_asterisk for more information.
 | |
| 
 | |
| res_pjsip_publish_asterisk
 | |
| ------------------
 | |
|  * A new module, res_pjsip_publish_asterisk adds support for PUBLISH requests of
 | |
|    Asterisk information to other Asterisk servers. This module is intended only
 | |
|    for Asterisk to Asterisk exchanges of information. Currently, this includes
 | |
|    both mailbox state and device state information.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 12.4.0 to Asterisk 12.5.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| ARI
 | |
| ------------------
 | |
|  * Stored recordings now support a new operation, copy. This will take an
 | |
|    existing stored recording and copy it to a new location in the recordings
 | |
|    directory.
 | |
| 
 | |
|  * LiveRecording objects now have three additional fields that can be reported
 | |
|    in a RecordingFinished ARI event:
 | |
|    - total_duration: the duration of the recording
 | |
|    - talking_duration: optional. The duration of talking detected in the
 | |
|      recording. This is only available if max_silence_seconds was specified
 | |
|      when the recording was started.
 | |
|    - silence_duration: optional. The duration of silence detected in the
 | |
|      recording. This is only available if max_silence_seconds was specified
 | |
|      when the recording was started.
 | |
|    Note that all duration values are reported in seconds.
 | |
| 
 | |
|  * Users of ARI can now send and receive out of call text messages. Messages
 | |
|    can be sent directly to a particular endpoint, or can be sent to the
 | |
|    endpoints resource directly and inferred from the URI scheme. Text
 | |
|    messages are passed to ARI clients as TextMessageReceived events. ARI
 | |
|    clients can choose to receive text messages by subscribing to the particular
 | |
|    endpoint technology or endpoints that they are interested in.
 | |
| 
 | |
|  * The applications resource now supports subscriptions to all endpoints of
 | |
|    a particular channel technology. For example, subscribing to an eventSource
 | |
|    of 'endpoint:PJSIP' will subscribe to all PJSIP endpoints.
 | |
| 
 | |
| res_pjsip
 | |
| ------------------
 | |
|  * The endpoint configuration object now supports 'accountcode'. Any channel
 | |
|    created for an endpoint with this setting will have its accountcode set
 | |
|    to the specified value.
 | |
| 
 | |
| res_hep_rtcp
 | |
| ------------------
 | |
|  * A new module, res_hep_rtcp, has been added that will forward RTCP call
 | |
|    statistics to a HEP capture server. See res_hep for more information.
 | |
| 
 | |
| Functions
 | |
| ------------------
 | |
|  * Function AUDIOHOOK_INHERIT has been deprecated. Audiohooks are now
 | |
|    unconditionally inhereted through masquerades. As a side benefit, more
 | |
|    than one audiohook of a given type may persist through a masquerade now.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 12.3.0 to Asterisk 12.4.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| AgentRequest
 | |
| ------------------
 | |
|  * Returns new AGENT_STATUS value "NOT_CONNECTED" if the agent fails to
 | |
|    connect with an incoming caller after being alerted to the presence
 | |
|    of the incoming caller.  The most likely reason this would happen is
 | |
|    the agent did not acknowledge the call in time.
 | |
| 
 | |
| AMI
 | |
| ------------------
 | |
|  * New events have been added for the TALK_DETECT function. When the function
 | |
|    is used on a channel, ChannelTalkingStart/ChannelTalkingStop events will be
 | |
|    emitted to connected AMI clients indicating the start/stop of talking on
 | |
|    the channel.
 | |
| 
 | |
| ARI
 | |
| ------------------
 | |
|  * New event models have been aded for the TALK_DETECT function. When the
 | |
|    function is used on a channel, ChannelTalkingStarted/ChannelTalkingFinished
 | |
|    events will be emitted to connected WebSockets subscribed to the channel,
 | |
|    indicating the start/stop of talking on the channel.
 | |
| 
 | |
| Functions
 | |
| ------------------
 | |
|  * A new function, TALK_DETECT, has been added. When set on a channel, this
 | |
|    fucntion causes events indicating the starting/stoping of talking on said
 | |
|    channel to be emitted to both AMI and ARI clients.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 12.2.0 to Asterisk 12.3.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| ARI
 | |
| ------------------
 | |
|  * A new Playback URI 'tone' has been added. Tones are specified either as
 | |
|    an indication name (e.g. 'tone:busy') from indications.conf or as a tone
 | |
|    pattern (e.g. 'tone:240/250,0/250'). Tones differ from normal playback
 | |
|    URIs in that they must be stopped manually and will continue to occupy
 | |
|    a channel's ARI control queue until they are stopped. They also can not
 | |
|    be rewound or fastforwarded.
 | |
| 
 | |
|  * User events can now be generated from ARI.  Events can be signalled with
 | |
|    arbitrary json variables, and include one or more of channel, bridge, or
 | |
|    endpoint snapshots.  An application must be specified which will receive
 | |
|    the event message (other applications can subscribe to it).  The message
 | |
|    will also be delivered via AMI provided a channel is attached.  Dialplan
 | |
|    generated user event messages are still transmitted via the channel, and
 | |
|    will only be received by a stasis application they are attached to or if
 | |
|    the channel is subscribed to.
 | |
| 
 | |
| chan_sip
 | |
| -----------
 | |
|  * SIP peers can now specify 'trust_id_outbound' which affects RPID/PAI
 | |
|    fields for prohibited callingpres information. Values are legacy, no, and
 | |
|    yes. By default, legacy is used.
 | |
|    trust_id_outbound=legacy - behavior remains the same as 1.8.26.1. When
 | |
|      dealing with prohibited callingpres and sendrpid=pai/rpid, RPID/PAI
 | |
|      headers are appended to outbound SIP messages just as they are with
 | |
|      allowed callingpres values, but data about the remote party's identity is
 | |
|      anonymized.
 | |
|      When sendrpid=rpid, only the remote party's domain is anonymized.
 | |
|    trust_id_outbound=no - when dealing with prohibited callingpres, RPID/PAI
 | |
|      headers are not sent.
 | |
|    trust_id_outbound=yes - RPID/PAI headers are applied with the full remote
 | |
|      party information in tact even for prohibited callingpres information.
 | |
|      In the case of PAI, a Privacy: id header will be appended for prohibited
 | |
|      calling information to communicate that the private information should
 | |
|      not be relayed to untrusted parties.
 | |
| 
 | |
| res_parking
 | |
| ------------------
 | |
|  * Manager action 'Park' now takes an additional argument 'AnnounceChannel'
 | |
|    which can be used to announce the parked call's location to an arbitrary
 | |
|    channel in a bridge. If 'Channel' and 'TimeoutChannel' are now the two
 | |
|    parties in a one to one bridge, 'TimeoutChannel' is treated as having
 | |
|    parked 'Channel' like with the Park Call DTMF feature and will receive
 | |
|    announcements prior to being hung up.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 12.1.0 to Asterisk 12.2.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| Record
 | |
| ------------------
 | |
|  * Record application now has an option 'o' which allows 0 to act as an exit
 | |
|    key setting the RECORD_STATUS variable to 'OPERATOR' instead of 'DTMF'
 | |
| 
 | |
| ChanSpy
 | |
| --------------------------
 | |
|  * ChanSpy now accepts a channel uniqueid or a fully specified channel name
 | |
|    as the chanprefix parameter if the 'u' option is specified.
 | |
| 
 | |
| ConfBridge
 | |
| --------------------------
 | |
|  * CONFBRIDGE dialplan function is now capable of creating/modifying dynamic
 | |
|    conference user menus.
 | |
| 
 | |
|  * CONFBRIDGE dialplan function is now capable of removing dynamic conference
 | |
|    menus, bridge settings, and user settings that have been applied by the
 | |
|    CONFBRIDGE dialplan function.
 | |
| 
 | |
|  * The ConfBridge dialplan application now sets a channel variable,
 | |
|    CONFBRIGE_RESULT, upon exiting. This variable can be used to determine
 | |
|    how a channel exited the conference.
 | |
| 
 | |
|  * Added conference user option 'announce_join_leave_review'. This option
 | |
|    implies 'announce_join_leave' with the added effect that the user will
 | |
|    be asked if they want to confirm or re-record the recording of their
 | |
|    name when entering the conference
 | |
| 
 | |
| Directory
 | |
| --------------------------
 | |
|  * At exit, the Directory application now sets a channel variable
 | |
|    DIRECTORY_RESULT to one of the following based on the reason for exiting:
 | |
|      OPERATOR    user requested operator by pressing '0' for operator
 | |
|      ASSISTANT   user requested assistant by pressing '*' for assistant
 | |
|      TIMEOUT     user pressed nothing and Directory stopped waiting
 | |
|      HANGUP      user's channel hung up
 | |
|      SELECTED    user selected a user from the directory and is routed
 | |
|      USEREXIT    user pressed '#' from the selection prompt to exit
 | |
|      FAILED      directory failed in a way that wasn't accounted for. Dang.
 | |
| 
 | |
| Monitor
 | |
| ------------------
 | |
|  * Monitor() - A new option, B(), has been added that will turn on a periodic
 | |
|    beep while the call is being recorded.
 | |
| 
 | |
| MusicOnHold
 | |
| --------------------------
 | |
|  * MusicOnHold streams (all modes other than "files") now support wide band
 | |
|    audio too.
 | |
| 
 | |
| Page
 | |
| --------------------------
 | |
|  * Added options 'b' and 'B' to apply predial handlers for outgoing calls
 | |
|    and for the channel executing Page respectively.
 | |
| 
 | |
| PickupChan
 | |
| --------------------------
 | |
|  * PickupChan now accepts channel uniqueids of channels to pickup.
 | |
| 
 | |
| Say
 | |
| --------------------------
 | |
|  * If a channel variable SAY_DTMF_INTERRUPT is present on a channel and set
 | |
|    to 'true' (case insensitive), then any Say application (SayNumber,
 | |
|    SayDigits, SayAlpha, SayAlphaCase, SayUnixTime, and SayCounted) will
 | |
|    anticipate DTMF. If DTMF is received, these applications will behave like
 | |
|    the background application and jump to the received extension once a match
 | |
|    is established or after a short period of inactivity.
 | |
| 
 | |
| MixMonitor
 | |
| -------------------------
 | |
|  * A new function, MIXMONITOR, has been added to allow access to individual
 | |
|    instances of MixMonitor on a channel.
 | |
| 
 | |
|  * A new option, B(), has been added that will turn on a periodic beep while the
 | |
|    call is being recorded.
 | |
| 
 | |
| 
 | |
| Channel Drivers
 | |
| -------------------------
 | |
| 
 | |
| chan_sip
 | |
| -------------------------
 | |
|  * TEL URI support for inbound INVITE requests has been added. chan_sip will
 | |
|    now handle TEL schemes in the Request and From URIs. The phone-context in
 | |
|    the Request URI will be stored in the SIPURIPHONECONTEXT channel variable on
 | |
|    the inbound channel.
 | |
| 
 | |
| Core
 | |
| ------------------
 | |
|  * Exposed sorcery-based configuration files like pjsip.conf to dialplans via
 | |
|    the new AST_SORCERY diaplan function.
 | |
| 
 | |
|  * Core Show Locks output now includes Thread/LWP ID if the platform
 | |
|    supports this feature.
 | |
| 
 | |
|  * New "logger add channel" and "logger remove channel" CLI commands have
 | |
|    been added to allow creation and deletion of dynamic logger channels
 | |
|    without configuration changes. These dynamic logger channels will only
 | |
|    exist until the next restart of asterisk.
 | |
| 
 | |
| ARI
 | |
| ------------------
 | |
|  * The live recording object on recording events now contains a target_uri
 | |
|    field which contains the URI of what is being recorded.
 | |
| 
 | |
|  * The bridge type used when creating a bridge is now a comma separated list of
 | |
|    bridge properties. Valid options are: mixing, holding, dtmf_events, and
 | |
|    proxy_media.
 | |
| 
 | |
|  * A channelId can now be provided when creating a channel, either in the
 | |
|    uri (POST channels/my-channel-id) or as query parameter.  A local channel
 | |
|    will suffix the second channel id with ';2' unless provided as query
 | |
|    parameter otherChannelId.
 | |
| 
 | |
|  * A bridgeId can now be provided when creating a bridge, either in the uri
 | |
|    (POST bridges/my-bridge-id) or as a query parameter.
 | |
| 
 | |
|  * A playbackId can be provided when starting a playback, either in the uri
 | |
|    (POST channels/my-channel-id/play/my-playback-id /
 | |
|     POST bridges/my-bridge-id/play/my-playback-id)  or as a query parameter.
 | |
| 
 | |
|  * A snoop channel can be started with a snoopId, in the uri or query.
 | |
| 
 | |
| AMI
 | |
| ------------------
 | |
|  * Originate now takes optional parameters ChannelId and OtherChannelId,
 | |
|    used to set the UniqueId on creation.  The other id is assigned to the
 | |
|    second channel when dialing LOCAL, or defaults to appending ;2 if only
 | |
|    the single Id is given.
 | |
| 
 | |
|  * The Mixmonitor action now has a "Command" header that can be used to
 | |
|    indicate a post-process command to run once recording finishes.
 | |
| 
 | |
| RealTime
 | |
| ------------------
 | |
|  * A new set of Alembic scripts has been added for CDR tables. This will create
 | |
|    a 'cdr' table with the default schema that Asterisk expects.
 | |
| 
 | |
| 
 | |
| Functions
 | |
| ------------------
 | |
|  * A new function was added: PERIODIC_HOOK.  This allows running a periodic
 | |
|    dialplan hook on a channel.  Any audio generated by this hook will be
 | |
|    injected into the call.
 | |
| 
 | |
| 
 | |
| Resources
 | |
| ------------------
 | |
| 
 | |
| res_hep
 | |
| ------------------
 | |
|  * A new module, res_hep, has been added, that acts as a generic packet
 | |
|    capture agent for the Homer Encapsulation Protocol (HEP) version 3.
 | |
|    It can be configured via hep.conf. Other modules can use res_hep to send
 | |
|    message traffic to a HEP capture server.
 | |
| 
 | |
| res_hep_pjsip
 | |
| ------------------
 | |
|  * A new module, res_hep_pjsip, has been added that will forward PJSIP
 | |
|    message traffic to a HEP capture server. See res_hep for more
 | |
|    information.
 | |
| 
 | |
| res_pjsip
 | |
| ------------------
 | |
|  * transport and endpoint ToS options (tos, tos_audio, and tos_video) may now
 | |
|    be set as the named set of ToS values (cs0-cs7, af11-af43, ef).
 | |
| 
 | |
|  * Added the following new CLI commands:
 | |
|    - "pjsip show contacts" - list all current PJSIP contacts.
 | |
|    - "pjsip show contact" - show specific information about a current PJSIP
 | |
|      contact.
 | |
|    - "pjsip show channel" - show detailed information about a PJSIP channel.
 | |
| 
 | |
| res_pjsip_multihomed
 | |
| ------------------
 | |
|  * A new module, res_pjsip_multihomed handles situations where the system
 | |
|    Asterisk is running out has multiple interfaces. res_pjsip_multihomed
 | |
|    determines which interface should be used during message sending.
 | |
| 
 | |
| res_pjsip_pidf_digium_body_supplement
 | |
| ------------------
 | |
|  * A new module, res_pjsip_pidf_digium_body_supplement provides NOTIFY
 | |
|    request body formatting for presence support in Digium phones.
 | |
| 
 | |
| res_pjsip_send_to_voicemail
 | |
| ------------------
 | |
|  * A new module, res_pjsip_send_to_voicemail allows for REFER requests with
 | |
|    particular headers to transfer a PJSIP channel directly to a particular
 | |
|    extension that has VoiceMail. This is intended to be used with Digium
 | |
|    phones that support this feature.
 | |
| 
 | |
| res_pjsip_outbound_registration
 | |
| ------------------
 | |
|  * A new CLI command has been added: "pjsip show registrations", which lists
 | |
|    all configured PJSIP registrations
 | |
| 
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 12.0.0 to Asterisk 12.1.0 ------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| AMI
 | |
| ------------------
 | |
|  * Added a new module that provides AMI control over MWI within Asterisk,
 | |
|    res_mwi_external_ami. Note that this module depends on res_mwi_external;
 | |
|    for more information on enabling this module, see res_mwi_external.
 | |
|    This module provides the MWIGet/MWIUpdate/MWIDelete actions, as well as
 | |
|    the MWIGet/MWIGetComplete events.
 | |
| 
 | |
|  * The DialStatus field in the DialEnd event can now contain additional
 | |
|    statuses that convey how the dial operation terminated. This includes
 | |
|    ABORT, CONTINUE, and GOTO.
 | |
| 
 | |
|  * AMI will now emit security events. A new class authorization has been
 | |
|    added in manager.conf for the security events, 'security'. The new events
 | |
|    are:
 | |
|     - FailedACL - raised when a request violates an ACL check
 | |
|     - InvalidAccountID - raised when a request fails an authentication
 | |
|       check due to an invalid account ID
 | |
|     - SessionLimit - raised when a request fails due to exceeding the
 | |
|       number of allowed concurrent sessions for a service
 | |
|     - MemoryLimit - raised when a request fails due to an internal memory
 | |
|       allocation failure
 | |
|     - LoadAverageLimit - raised when a request fails because a configured
 | |
|       load average limit has been reached
 | |
|     - RequestNotAllowed - raised when a request is not allowed by
 | |
|       the service
 | |
|     - AuthMethodNotAllowed - raised when a request used an authentication
 | |
|       method not allowed by the service
 | |
|     - RequestBadFormat - raised when a request is received with bad formatting
 | |
|     - SuccessfulAuth - raised when a request successfully authenticates
 | |
|     - UnexpectedAddress - raised when a request has a different source address
 | |
|       then what is expected for a session already in progress with a service
 | |
|     - ChallengeResponseFailed - raised when a request's attempt to authenticate
 | |
|       has been challenged, and the request failed the authentication challenge
 | |
|     - InvalidPassword - raised when a request provides an invalid password
 | |
|       during an authentication attempt
 | |
|     - ChallengeSent - raised when an Asterisk service send an authentication
 | |
|       challenge to a request
 | |
|     - InvalidTransport - raised when a request attempts to use a transport not
 | |
|       allowed by the Asterisk service
 | |
| 
 | |
|  * Bridge related events now have two additional fields: BridgeName and
 | |
|    BridgeCreator. BridgeName is a descriptive name for the bridge;
 | |
|    BridgeCreator is the name of the entity that created the bridge. This
 | |
|    affects the following events: ConfbridgeStart, ConfbridgeEnd,
 | |
|    ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
 | |
|    ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
 | |
|    AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
 | |
| 
 | |
| ARI
 | |
| ------------------
 | |
|  * The Bridge data model now contains the additional fields 'name' and
 | |
|    'creator'. The 'name' field conveys a descriptive name for the bridge;
 | |
|    the 'creator' field conveys the name of the entity that created the bridge.
 | |
|    This affects all responses to HTTP requests that return a Bridge data model
 | |
|    as well as all event derived data models that contain a Bridge data model.
 | |
|    The POST /bridges operation may now optionally specify a name to give to
 | |
|    the bridge being created.
 | |
| 
 | |
|  * Added a new ARI resource 'mailboxes' which allows the creation and
 | |
|    modification of mailboxes managed by external MWI. Modules res_mwi_external
 | |
|    and res_stasis_mailbox must be enabled to use this resource. For more
 | |
|    information on external MWI control, see res_mwi_external.
 | |
| 
 | |
|  * Added new events for externally initiated transfers. The event
 | |
|    BridgeBlindTransfer is now raised when a channel initiates a blind transfer
 | |
|    of a bridge in the ARI controlled application to the dialplan; the
 | |
|    BridgeAttendedTransfer event is raised when a channel initiates an
 | |
|    attended transfer of a bridge in the ARI controlled application to the
 | |
|    dialplan.
 | |
| 
 | |
|  * Channel variables may now be specified as a body parameter to the
 | |
|    POST /channels operation. The 'variables' key in the JSON is interpreted
 | |
|    as a sequence of key/value pairs that will be added to the created channel
 | |
|    as channel variables. Other parameters in the JSON body are treated as
 | |
|    query parameters of the same name.
 | |
| 
 | |
| HTTP
 | |
| ------------------
 | |
|  * Asterisk's HTTP server now supports chunked Transfer-Encoding. This will be
 | |
|    automatically handled by the HTTP server if a request is received with a
 | |
|    Transfer-Encoding type of "chunked".
 | |
| 
 | |
| res_pjsip
 | |
| ------------------
 | |
|  * Path support has been added with the 'support_path' option in registration
 | |
|    and aor sections.
 | |
| 
 | |
|  * A 'debug' option has been added to the globals section that will allow
 | |
|    sip messages to be logged.
 | |
| 
 | |
|  * A 'set_var' option has been added to endpoints that will automatically
 | |
|    set the desired variable(s) on a channel created for that endpoint.
 | |
| 
 | |
|  * Several new tables and columns have been added to the realtime schema for
 | |
|    the res_pjsip related modules. See the UPGRADE.txt notes for updating
 | |
|    the database schema.
 | |
| 
 | |
| res_mwi_external
 | |
| ------------------
 | |
|  * A new module, res_mwi_external, has been added to Asterisk. This module
 | |
|    acts as a base framework that other modules can build on top of to allow
 | |
|    an external system to control MWI within Asterisk. For implementations
 | |
|    that make use of res_mwi_external, see res_mwi_external_ami and
 | |
|    res_ari_mailboxes. Note that res_mwi_external canflicts with other modules
 | |
|    that may produce MWI themselves, such as app_voicemail. res_mwi_external
 | |
|    and other modules that depend on it cannot be built or loaded with
 | |
|    app_voicemail present.
 | |
| 
 | |
| res_pjsip
 | |
| ------------------
 | |
|  * DNS functionality will now automatically be enabled if the system configured
 | |
|    nameservers can be retrieved. If the system configured nameservers can not be
 | |
|    retrieved the functionality will resort to using system resolution. Functionalty
 | |
|    such as SRV records and failover will not be available if system resolution
 | |
|    is in use.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 11 to Asterisk 12 --------------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| Overview
 | |
| ------------------
 | |
| 
 | |
| Asterisk 12 is a standard release of the Asterisk project. As such, the
 | |
| focus of development for this release was on core architectural changes and
 | |
| major new features. This includes:
 | |
|  * A more flexible bridging core based on the Bridging API
 | |
|  * A new internal message bus, Stasis
 | |
|  * Major standardization and consistency improvements to AMI
 | |
|  * Addition of the Asterisk RESTful Interface (ARI)
 | |
|  * A new SIP channel driver, chan_pjsip
 | |
| In addition, as the vast majority of bridging in Asterisk was migrated to the
 | |
| Bridging API used by ConfBridge, major changes were made to most of the
 | |
| interfaces in Asterisk. This includes not only AMI, but also CDRs and CEL.
 | |
| 
 | |
| Specifications have been written for the affected interfaces. These
 | |
| specifications are available on the Asterisk wiki:
 | |
|  * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
 | |
|  * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
 | |
|  * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
 | |
| 
 | |
| It is *highly* recommended that anyone migrating to Asterisk 12 read the
 | |
| information regarding its release both in this file and in the accompanying
 | |
| UPGRADE.txt file. More detailed information on the major changes can be found
 | |
| on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/0YCLAQ.
 | |
| 
 | |
| 
 | |
| Build System
 | |
| ------------------
 | |
|  * Added build option DISABLE_INLINE. This option can be used to work around a
 | |
|    bug in gcc. For more information, see
 | |
|    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47816
 | |
| 
 | |
|  * Removed the CHANNEL_TRACE development mode build option. Certain aspects of
 | |
|    the CHANNEL_TRACE build option were incompatible with the new bridging
 | |
|    architecture.
 | |
| 
 | |
|  * Asterisk now optionally uses libxslt to improve XML documentation generation
 | |
|    and maintainability. If libxslt is not available on the system, some XML
 | |
|    documentation will be incomplete.
 | |
| 
 | |
|  * Asterisk now depends on libjansson. If a package of libjansson is not
 | |
|    available on your distro, please see http://www.digip.org/jansson/.
 | |
| 
 | |
|  * Asterisk now depends on libuuid and, optionally, uriparser. It is
 | |
|    recommended that you install uriparser, even if it is optional.
 | |
| 
 | |
|  * The new SIP stack and channel driver uses a particular version of PJSIP.
 | |
|    Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
 | |
|    configuring and installing PJSIP for usage with Asterisk.
 | |
| 
 | |
|  * Optional API was re-implemented to be more portable, and no longer requires
 | |
|    weak reference support from the compiler. The build option OPTIONAL_API may
 | |
|    be disabled to disable Optional API support.
 | |
| 
 | |
| Applications
 | |
| ------------------
 | |
| 
 | |
| AgentLogin
 | |
| ------------------
 | |
|  * Along with AgentRequest, this application has been modified to be a
 | |
|    replacement for chan_agent. The act of a channel calling the AgentLogin
 | |
|    application places the channel into a pool of agents that can be
 | |
|    requested by the AgentRequest application. Note that this application, as
 | |
|    well as all other agent related functionality, is now provided by the
 | |
|    app_agent_pool module. See chan_agent and AgentRequest for more information.
 | |
| 
 | |
|  * This application no longer performs agent authentication. If authentication
 | |
|    is desired, the dialplan needs to perform this function using the
 | |
|    Authenticate or VMAuthenticate application or through an AGI script before
 | |
|    running AgentLogin.
 | |
| 
 | |
|  * If this application is called and the agent is already logged in, the
 | |
|    dialplan will continue exection with the AGENT_STATUS channel variable set
 | |
|    to ALREADY_LOGGED_IN.
 | |
| 
 | |
|  * The agents.conf schema has changed. Rather than specifying agents on a
 | |
|    single line in comma delineated fashion, each agent is defined in a separate
 | |
|    context. This allows agents to use the power of context templates in their
 | |
|    definition.
 | |
| 
 | |
|  * A number of parameters from agents.conf have been removed. This includes
 | |
|    maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
 | |
|    urlprefix, and savecallsin. These options were obsoleted by the move from
 | |
|    a channel driver model to the bridging/application model provided by
 | |
|    app_agent_pool.
 | |
| 
 | |
| AgentRequest
 | |
| ------------------
 | |
|  * A new application, this will request a logged in agent from the pool and
 | |
|    bridge the requested channel with the channel calling this application.
 | |
|    Logged in agents are those channels that called the AgentLogin application.
 | |
|    If an agent cannot be requested from the pool, the AGENT_STATUS dialplan
 | |
|    application will be set with an appropriate error value.
 | |
| 
 | |
| AgentMonitorOutgoing
 | |
| ------------------
 | |
|  * This application has been removed. It was a holdover from when
 | |
|    AgentCallbackLogin was removed.
 | |
| 
 | |
| AlarmReceiver
 | |
| ------------------
 | |
|  * Added support for additional Ademco DTMF signalling formats, including
 | |
|    Express 4+1, Express 4+2, High Speed and Super Fast.
 | |
| 
 | |
|  * Added channel variable ALARMRECEIVER_CALL_LIMIT. This sets the maximum
 | |
|    call time, in milliseconds, to run the application.
 | |
| 
 | |
|  * Added channel variable ALARMRECEIVER_RETRIES_LIMIT. This sets the
 | |
|    maximum number of times to retry the call.
 | |
| 
 | |
|  * Added a new configuration option answait. If set, the AlarmReceiver
 | |
|    application will wait the number of milliseconds specified by answait
 | |
|    after the channel has answered. Valid values range between 500
 | |
|    milliseconds and 10000 milliseconds.
 | |
| 
 | |
|  * Added configuration option no_group_meta. If enabled, grouping of metadata
 | |
|    information in the AlarmReceiver log file will be skipped.
 | |
| 
 | |
| Answer
 | |
| ------------------
 | |
|  * It is now no longer possible to bypass updating the CDR on the channel
 | |
|    when answering. CDRs reflect the state of the channel and will always
 | |
|    reflect the time they were Answered.
 | |
| 
 | |
| BridgeWait
 | |
| ------------------
 | |
|  * A new application in Asterisk, this will place the calling channel
 | |
|    into a holding bridge, optionally entertaining them with some form of
 | |
|    media. Channels participating in a holding bridge do not interact with
 | |
|    other channels in the same holding bridge. Optionally, however, a channel
 | |
|    may join as an announcer. Any media passed from an announcer channel is
 | |
|    played to all channels in the holding bridge. Channels leave a holding
 | |
|    bridge either when an optional timer expires, or via the ChannelRedirect
 | |
|    application or AMI Redirect action.
 | |
| 
 | |
| ConfBridge
 | |
| ------------------
 | |
|  * All participants in a bridge can now be kicked out of a conference room
 | |
|    by specifying the channel parameter as 'all' in the ConfBridge kick CLI
 | |
|    command, i.e., 'confbridge kick <conference> all'
 | |
| 
 | |
|  * CLI output for the 'confbridge list' command has been improved. When
 | |
|    displaying information about a particular bridge, flags will now be shown
 | |
|    for the participating users indicating properties of that user.
 | |
| 
 | |
|  * The ConfbridgeList event now contains the following fields: WaitMarked,
 | |
|    EndMarked, and Waiting. This displays additional properties about the
 | |
|    user's profile, as well as whether or not the user is waiting for a
 | |
|    Marked user to enter the conference.
 | |
| 
 | |
|  * Added a new option for conference recording, record_file_append. If enabled,
 | |
|    when the recording is stopped and then re-started, the existing recording
 | |
|    will be used and appended to.
 | |
| 
 | |
|  * ConfBridge now has the ability to set the language of announcements to the
 | |
|    conference.  The language can be set on a bridge profile in confbridge.conf
 | |
|    or by the dialplan function CONFBRIDGE(bridge,language)=en.
 | |
| 
 | |
| ControlPlayback
 | |
| ------------------
 | |
|  * The channel variable CPLAYBACKSTATUS may now return the value
 | |
|    'REMOTESTOPPED'. This occurs when playback is stopped by a remote interface,
 | |
|    such as AMI. See the AMI action ControlPlayback for more information.
 | |
| 
 | |
| Directory
 | |
| ------------------
 | |
|  * Added the 'a' option, which allows the caller to enter in an additional
 | |
|    alias for the user in the directory. This option must be used in conjunction
 | |
|    with the 'f', 'l', or 'b' options. Note that the alias for a user can be
 | |
|    specified in voicemail.conf.
 | |
| 
 | |
| DumpChan
 | |
| ------------------
 | |
|  * The output of DumpChan no longer includes the DirectBridge or IndirectBridge
 | |
|    fields. Instead, if a channel is in a bridge, it includes a BridgeID field
 | |
|    containing the unique ID of the bridge that the channel happens to be in.
 | |
| 
 | |
| ForkCDR
 | |
| ------------------
 | |
|  * ForkCDR no longer automatically resets the forked CDR. See the 'r' option
 | |
|    for more information.
 | |
| 
 | |
|  * Variables are no longer purged from the original CDR. See the 'v' option for
 | |
|    more information.
 | |
| 
 | |
|  * The 'A' option has been removed. The Answer time on a CDR is never updated
 | |
|    once set.
 | |
| 
 | |
|  * The 'd' option has been removed. The disposition on a CDR is a function of
 | |
|    the state of the channel and cannot be altered.
 | |
| 
 | |
|  * The 'D' option has been removed. Who the Party B is on a CDR is a function
 | |
|    of the state of the respective channels involved in the CDR and cannot be
 | |
|    altered.
 | |
| 
 | |
|  * The 'r' option has been changed. Previously, ForkCDR always reset the CDR
 | |
|    such that the start time and, if applicable, the answer time was updated.
 | |
|    Now, by default, ForkCDR simply forks the CDR, maintaining any times. The
 | |
|    'r' option now triggers the Reset, setting the start time (and answer time
 | |
|    if applicable) to the current time. Note that the 'a' option still sets
 | |
|    the answer time to the current time if the channel was already answered.
 | |
| 
 | |
|  * The 's' option has been removed. A variable can be set on the original CDR
 | |
|    if desired using the CDR function, and removed from a forked CDR using the
 | |
|    same function.
 | |
| 
 | |
|  * The 'T' option has been removed. The concept of DONT_TOUCH and LOCKED no
 | |
|    longer applies in the CDR engine.
 | |
| 
 | |
|  * The 'v' option now prevents the copy of the variables from the original CDR
 | |
|    to the forked CDR. Previously the variables were always copied but were
 | |
|    removed from the original. This was changed as removing variables from a CDR
 | |
|    can have unintended side effects - this option allows the user to prevent
 | |
|    propagation of variables from the original to the forked without modifying
 | |
|    the original.
 | |
| 
 | |
| MeetMe
 | |
| -------------------
 | |
|  * Added the 'n' option to MeetMe to prevent application of the DENOISE
 | |
|    function to a channel joining a conference. Some channel drivers that vary
 | |
|    the number of audio samples in a voice frame will experience significant
 | |
|    quality problems if a denoiser is attached to the channel; this option gives
 | |
|    them the ability to remove the denoiser without having to unload func_speex.
 | |
| 
 | |
| MixMonitor
 | |
| ------------------
 | |
|  * The 'b' option now includes conferences as well as sounds played to the
 | |
|    participants.
 | |
| 
 | |
|  * The AUDIOHOOK_INHERIT function is no longer needed to keep a MixMonitor
 | |
|    running during a transfer. If a MixMonitor is started on a channel,
 | |
|    the MixMonitor will continue to record the audio passing through the
 | |
|    channel even in the presence of transfers.
 | |
| 
 | |
| NoCDR
 | |
| ------------------
 | |
|  * The NoCDR application is deprecated. Please use the CDR_PROP function to
 | |
|    disable CDRs.
 | |
| 
 | |
|  * While the NoCDR application will prevent CDRs for a channel from being
 | |
|    propagated to registered CDR backends, it will not prevent that data from
 | |
|    being collected. Hence, a subsequent call to ResetCDR or the CDR_PROP
 | |
|    function that enables CDRs on a channel will restore those records that have
 | |
|    not yet been finalized.
 | |
| 
 | |
| ParkAndAnnounce
 | |
| -------------------
 | |
|  * The app_parkandannounce module has been removed. The application
 | |
|    ParkAndAnnounce is now provided by the res_parking module. See the
 | |
|    res_parking changes for more information.
 | |
| 
 | |
| Queue
 | |
| -------------------
 | |
|  * Added queue available hint. The hint can be added to the dialplan using the
 | |
|    following syntax: exten,hint,Queue:{queue_name}_avail
 | |
|    For example, if the name of the queue is 'markq':
 | |
|         exten => 8501,hint,Queue:markq_avail
 | |
|    This will report 'InUse' if there are no logged in agents or no free agents.
 | |
|    It will report 'Idle' when an agent is free.
 | |
| 
 | |
|  * Queues now support a hint for member paused state. The hint uses the form
 | |
|    'Queue:{queue_name}_pause_{member_name}', where {queue_name} and {member_name}
 | |
|    are the name of the queue and the name of the member to subscribe to,
 | |
|    respectively. For example: exten => 8501,hint,Queue:sales_pause_mark.
 | |
|    Members will show as In Use when paused.
 | |
| 
 | |
|  * The configuration options eventwhencalled and eventmemberstatus have been
 | |
|    removed.  As a result, the AMI events QueueMemberStatus, AgentCalled,
 | |
|    AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
 | |
|    sent.  The "Variable" fields will also no longer exist on the Agent* events.
 | |
|    These events can be filtered out from a connected AMI client using the
 | |
|    eventfilter setting in manager.conf.
 | |
| 
 | |
|  * The queue log now differentiates between blind and attended transfers. A
 | |
|    blind transfer will result in a BLINDTRANSFER message with the destination
 | |
|    context and extension. An attended transfer will result in an
 | |
|    ATTENDEDTRANSFER message. This message will indicate the method by which
 | |
|    the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
 | |
|    for running an application on a bridge or channel, or "LINK" for linking
 | |
|    two bridges together with local channels. The queue log will also now detect
 | |
|    externally initiated blind and attended transfers and record the transfer
 | |
|    status accordingly.
 | |
| 
 | |
|  * When performing queue pause/unpause on an interface without specifying an
 | |
|    individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
 | |
|    least one member of any queue exists for that interface.
 | |
| 
 | |
|  * Added the 'queue_log_realtime_use_gmt' option to have timestamps in GMT
 | |
|    for realtime queue log entries.
 | |
| 
 | |
| ResetCDR
 | |
| ------------------
 | |
|  * The 'e' option has been deprecated. Use the CDR_PROP function to re-enable
 | |
|    CDRs when they were previously disabled on a channel.
 | |
| 
 | |
|  * The 'w' and 'a' options have been removed. Dispatching CDRs to registered
 | |
|    backends occurs on an as-needed basis in order to preserve linkedid
 | |
|    propagation and other needed behavior.
 | |
| 
 | |
| SayAlphaCase
 | |
| ------------------
 | |
|  * A new application, this is similar to SayAlpha except that it supports
 | |
|    case sensitive playback of the specified characters. For example,
 | |
|    SayAlphaCase(u,aBc) will result in 'a uppercase b c'.
 | |
| 
 | |
| SetAMAFlags
 | |
| ------------------
 | |
|  * This application is deprecated in favor of CHANNEL(amaflags).
 | |
| 
 | |
| SendDTMF
 | |
| ------------------
 | |
|  * The SendDTMF application will now accept 'W' as valid input. This will cause
 | |
|    the application to delay one second while streaming DTMF.
 | |
| 
 | |
| Stasis
 | |
| ------------------
 | |
|  * A new application in Asterisk 12, this hands control of the channel calling
 | |
|    the application over to an external system. Currently, external systems
 | |
|    manipulate channels in Stasis through the Asterisk RESTful Interface (ARI).
 | |
| 
 | |
| UserEvent
 | |
| ------------------
 | |
|  * UserEvent will now handle duplicate keys by overwriting the previous value
 | |
|    assigned to the key.
 | |
| 
 | |
|  * In addition to AMI, UserEvent invocations will now be distributed to any
 | |
|    interested Stasis applications.
 | |
| 
 | |
| VoiceMail
 | |
| ------------------
 | |
|  * Mailboxes defined by app_voicemail MUST be referenced by the rest of the
 | |
|    system as mailbox@context.  The rest of the system cannot add @default
 | |
|    to mailbox identifiers for app_voicemail that do not specify a context
 | |
|    any longer.  It is a mailbox identifier format that should only be
 | |
|    interpreted by app_voicemail.
 | |
| 
 | |
|  * The voicemail.conf configuration file now has an 'alias' configuration
 | |
|    parameter for use with the Directory application. The voicemail realtime
 | |
|    database table schema has also been updated with an 'alias' column.
 | |
| 
 | |
| 
 | |
| Codecs
 | |
| ------------------
 | |
|  * Pass through support has been added for both VP8 and Opus.
 | |
| 
 | |
|  * Added format attribute negotiation for the Opus codec. Format attribute
 | |
|    negotiation is provided by the res_format_attr_opus module.
 | |
| 
 | |
| 
 | |
| Core
 | |
| ------------------
 | |
|  * Masquerades as an operation inside Asterisk have been effectively hidden
 | |
|    by the migration to the Bridging API. As such, many 'quirks' of Asterisk
 | |
|    no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
 | |
|    dropping of frame/audio hooks, and other internal implementation details
 | |
|    that users had to deal with. This fundamental change has large implications
 | |
|    throughout the changes documented for this version. For more information
 | |
|    about the new core architecture of Asterisk, please see the Asterisk wiki.
 | |
| 
 | |
|  * Multiple parties in a bridge may now be transferred. If a participant in a
 | |
|    multi-party bridge initiates a blind transfer, a Local channel will be used
 | |
|    to execute the dialplan location that the transferer sent the parties to. If
 | |
|    a participant in a multi-party bridge initiates an attended transfer,
 | |
|    several options are possible. If the attended transfer results in a transfer
 | |
|    to an application, a Local channel is used. If the attended transfer results
 | |
|    in a transfer to another channel, the resulting channels will be merged into
 | |
|    a single bridge.
 | |
| 
 | |
|  * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is no longer channel
 | |
|    driver specific.  If the channel variable is set on the transferrer channel,
 | |
|    the sound will be played to the target of an attended transfer.
 | |
| 
 | |
|  * The channel variable BRIDGEPEER becomes a comma separated list of peers in
 | |
|    a multi-party bridge.  The BRIDGEPEER value can have a maximum of 10 peers
 | |
|    listed.  Any more peers in the bridge will not be included in the list.
 | |
|    BRIDGEPEER is not valid in holding bridges like parking since those channels
 | |
|    do not talk to each other even though they are in a bridge.
 | |
| 
 | |
|  * The channel variable BRIDGEPVTCALLID is only valid for two party bridges
 | |
|    and will contain a value if the BRIDGEPEER's channel driver supports it.
 | |
| 
 | |
|  * A channel variable ATTENDEDTRANSFER is now set which indicates which channel
 | |
|    was responsible for an attended transfer in a similar fashion to
 | |
|    BLINDTRANSFER.
 | |
| 
 | |
|  * Modules using the Configuration Framework or Sorcery must have XML
 | |
|    configuration documentation. This configuration documentation is included
 | |
|    with the rest of Asterisk's XML documentation, and is accessible via CLI
 | |
|    commands. See the CLI changes for more information.
 | |
| 
 | |
| AMI (Asterisk Manager Interface)
 | |
| ------------------
 | |
|  * Major changes were made to both the syntax as well as the semantics of the
 | |
|    AMI protocol. In particular, AMI events have been substantially improved
 | |
|    in this version of Asterisk. For more information, please see the AMI
 | |
|    specification at https://wiki.asterisk.org/wiki/x/dAFRAQ
 | |
| 
 | |
|  * AMI events that reference a particular channel or bridge will now always
 | |
|    contain a standard set of fields. When multiple channels or bridges are
 | |
|    referenced in an event, fields for at least some subset of the channels
 | |
|    and bridges in the event will be prefixed with a descriptive name to avoid
 | |
|    name collisions. See the AMI event documentation on the Asterisk wiki for
 | |
|    more information.
 | |
| 
 | |
|  * The CLI command 'manager show commands' no longer truncates command names
 | |
|    longer than 15 characters and no longer shows authorization requirement
 | |
|    for commands. 'manager show command' now displays the privileges needed
 | |
|    for using a given manager command instead.
 | |
| 
 | |
|  * The SIPshowpeer action will now include a 'SubscribeContext' field for a
 | |
|    peer in its response if the peer has a subscribe context set.
 | |
| 
 | |
|  * The SIPqualifypeer action now acknowledges the request once it has
 | |
|    established that the request is against a known peer. It also issues a new
 | |
|    event, 'SIPQualifyPeerDone', once the qualify action has been completed.
 | |
| 
 | |
|  * The PlayDTMF action now supports an optional 'Duration' parameter.  This
 | |
|    specifies the duration of the digit to be played, in milliseconds.
 | |
| 
 | |
|  * Added VoicemailRefresh action to allow an external entity to trigger mailbox
 | |
|    updates when changes occur instead of requiring the use of pollmailboxes.
 | |
| 
 | |
|  * Added a new action 'ControlPlayback'. The ControlPlayback action allows an
 | |
|    AMI client to manipulate audio currently being played back on a channel. The
 | |
|    supported operations depend on the application being used to send audio to
 | |
|    the channel. When the audio playback was initiated using the ControlPlayback
 | |
|    application or CONTROL STREAM FILE AGI command, the audio can be paused,
 | |
|    stopped, restarted, reversed, or skipped forward. When initiated by other
 | |
|    mechanisms (such as the Playback application), the audio can be stopped,
 | |
|    reversed, or skipped forward.
 | |
| 
 | |
|  * Channel related events now contain a snapshot of channel state, adding new
 | |
|    fields to many of these events.
 | |
| 
 | |
|  * The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
 | |
|    in a future release. Please use the common 'Exten' field instead.
 | |
| 
 | |
|  * The AMI event 'UserEvent' from app_userevent now contains the channel state
 | |
|    fields. The channel state fields will come before the body fields.
 | |
| 
 | |
|  * The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
 | |
|    'UnParkedCall' have changed significantly in the new res_parking module.
 | |
| 
 | |
|    The 'Channel' and 'From' headers are gone. For the channel that was parked
 | |
|    or is coming out of parking, a 'Parkee' channel snapshot is issued and it
 | |
|    has a number of fields associated with it. The old 'Channel' header relayed
 | |
|    the same data as the new 'ParkeeChannel' header.
 | |
| 
 | |
|    The 'From' field was ambiguous and changed meaning depending on the event.
 | |
|    for most of these, it was the name of the channel that parked the call
 | |
|    (the 'Parker'). There is no longer a header that provides this channel name,
 | |
|    however the 'ParkerDialString' will contain a dialstring to redial the
 | |
|    device that parked the call.
 | |
| 
 | |
|    On UnParkedCall events, the 'From' header would instead represent the
 | |
|    channel responsible for retrieving the parkee. It receives a channel
 | |
|    snapshot labeled 'Retriever'. The 'from' field is is replaced with
 | |
|    'RetrieverChannel'.
 | |
| 
 | |
|    Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
 | |
| 
 | |
|  * The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
 | |
|    fashion has changed the field names 'StartExten' and 'StopExten' to
 | |
|    'StartSpace' and 'StopSpace' respectively.
 | |
| 
 | |
|  * The deprecated use of | (pipe) as a separator in the channelvars setting in
 | |
|    manager.conf has been removed.
 | |
| 
 | |
|  * Channel Variables conveyed with a channel no longer contain the name of the
 | |
|    channel as part of the key field, i.e., ChanVariable(SIP/foo): bar=baz is now
 | |
|    ChanVariable: bar=baz. When multiple channels are present in a single AMI
 | |
|    event, the various ChanVariable fields will contain a suffix that specifies
 | |
|    which channel they correspond to.
 | |
| 
 | |
|  * The NewPeerAccount AMI event is no longer raised. The NewAccountCode AMI
 | |
|    event always conveys the AMI event for a particular channel.
 | |
| 
 | |
|  * All 'Reload' events have been consolidated into a single event type. This
 | |
|    event will always contain a Module field specifying the name of the module
 | |
|    and a Status field denoting the result of the reload. All modules now issue
 | |
|    this event when being reloaded.
 | |
| 
 | |
|  * The 'ModuleLoadReport' event has been removed. Most AMI connections would
 | |
|    fail to receive this event due to being connected after modules have loaded.
 | |
|    AMI connections that want to know when Asterisk is ready should listen for
 | |
|    the 'FullyBooted' event.
 | |
| 
 | |
|  * app_fax now sends the same send fax/receive fax events as res_fax. The
 | |
|    'FaxSent' event is now the 'SendFAX' event, and the 'FaxReceived' event is
 | |
|    now the 'ReceiveFAX' event.
 | |
| 
 | |
|  * The 'MusicOnHold' event is now two events: 'MusicOnHoldStart' and
 | |
|    'MusicOnHoldStop'. The sub type field has been removed.
 | |
| 
 | |
|  * The 'JabberEvent' event has been removed. It is not AMI's purpose to be a
 | |
|    carrier for another protocol.
 | |
| 
 | |
|  * The Bridge Manager action's 'Playtone' header now accepts more fine-grained
 | |
|    options. 'Channel1' and 'Channel2' may be specified in order to play a tone
 | |
|    to the specific channel. 'Both' may be specified to play a tone to both
 | |
|    channels. The old 'yes' option is still accepted as a way of playing the
 | |
|    tone to Channel2 only.
 | |
| 
 | |
|  * The AMI 'Status' response event to the AMI Status action replaces the
 | |
|    'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
 | |
|    indicate what bridge the channel is currently in.
 | |
| 
 | |
|  * The AMI 'Hold' event has been moved out of individual channel drivers, into
 | |
|    core, and is now two events: 'Hold' and 'Unhold'.  The status field has been
 | |
|    removed.
 | |
| 
 | |
|  * The AMI events in app_queue have been made more consistent with each other.
 | |
|    Events that reference channels (QueueCaller* and Agent*) will show
 | |
|    information about each channel.  The (infamous) 'Join' and 'Leave' AMI
 | |
|    events have been changed to 'QueueCallerJoin' and 'QueueCallerLeave'.
 | |
| 
 | |
|  * The 'MCID' AMI event now publishes a channel snapshot when available and
 | |
|    its non-channel-snapshot parameters now use either the "MCallerID" or
 | |
|    'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
 | |
|    of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
 | |
|    parameters in the channel snapshot.
 | |
| 
 | |
|  * The AMI events 'Agentlogin' and 'Agentlogoff' have been renamed
 | |
|    'AgentLogin' and 'AgentLogoff' respectively.
 | |
| 
 | |
|  * The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
 | |
|    renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
 | |
| 
 | |
|  * 'ChannelUpdate' events have been removed.
 | |
| 
 | |
|  * All AMI events now contain a 'SystemName' field, if available.
 | |
| 
 | |
|  * Local channel optimization is now conveyed in two events:
 | |
|    'LocalOptimizationBegin' and 'LocalOptimizationEnd'. The Begin event is sent
 | |
|    when the Local channel driver begins attempting to optimize itself out of
 | |
|    the media path; the End event is sent after the channel halves have
 | |
|    successfully optimized themselves out of the media path.
 | |
| 
 | |
|  * Local channel information in events is now prefixed with 'LocalOne' and
 | |
|    'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
 | |
|    the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
 | |
|    and 'LocalOptimizationEnd' events.
 | |
| 
 | |
|  * The option 'allowmultiplelogin' can now be set or overriden in a particular
 | |
|    account. When set in the general context, it will act as the default
 | |
|    setting for defined accounts.
 | |
| 
 | |
|  * The 'BridgeAction' event was removed. It technically added no value, as the
 | |
|    Bridge Action already receives confirmation of the bridge through a
 | |
|    successful completion Event.
 | |
| 
 | |
|  * The 'BridgeExec' events were removed. These events duplicated the events that
 | |
|    occur in the Briding API, and are conveyed now through BridgeCreate,
 | |
|    BridgeEnter, and BridgeLeave events.
 | |
| 
 | |
|  * The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
 | |
|    previous versions. They now report all SR/RR packets sent/received, and
 | |
|    have been restructured to better reflect the data sent in a SR/RR. In
 | |
|    particular, the event structure now supports multiple report blocks.
 | |
| 
 | |
|  * Added 'BlindTransfer' and 'AttendedTransfer' events. These events are
 | |
|    raised when a blind transfer/attended transfer completes successfully.
 | |
|    They contain information about the transfer that just completed, including
 | |
|    the location of the transfered channel.
 | |
| 
 | |
|  * Added a 'security' class to AMI which outputs the required fields for
 | |
|    security messages similar to the log messages from res_security_log
 | |
| 
 | |
|  * The AMI event 'ExtensionStatus' now contains a 'StatusText' field
 | |
|    that describes the status value in a human readable string.
 | |
| 
 | |
| CDR (Call Detail Records)
 | |
| ------------------
 | |
|  * Significant changes have been made to the behavior of CDRs. The CDR engine
 | |
|    was effectively rewritten and built on the Stasis message bus. For a full
 | |
|    definition of CDR behavior in Asterisk 12, please read the specification
 | |
|    on the Asterisk wiki (wiki.asterisk.org).
 | |
| 
 | |
|  * CDRs will now be created between all participants in a bridge. For each
 | |
|    pair of channels in a bridge, a CDR is created to represent the path of
 | |
|    communication between those two endpoints. This lets an end user choose who
 | |
|    to bill for what during bridge operations with multiple parties.
 | |
| 
 | |
|  * The duration, billsec, start, answer, and end times now reflect the times
 | |
|    associated with the current CDR for the channel, as opposed to a cumulative
 | |
|    measurement of all CDRs for that channel.
 | |
| 
 | |
|  * When a CDR is dispatched, user defined CDR variables from both parties are
 | |
|    included in the resulting CDR. If both parties have the same variable, only
 | |
|    the Party A value is provided.
 | |
| 
 | |
|  * Added a new option to cdr.conf, 'debug'. When enabled, significantly more
 | |
|    information regarding the CDR engine is logged as verbose messages. This
 | |
|    option should only be used if the behavior of the CDR engine needs to be
 | |
|    debugged.
 | |
| 
 | |
|  * Added CLI command 'cdr set debug {on|off}'. This toggles the 'debug' setting
 | |
|    normally configured in cdr.conf.
 | |
| 
 | |
|  * Added CLI command 'cdr show active {channel}'. When {channel} is not
 | |
|    specified, this command provides a summary of the channels with CDR
 | |
|    information and their statistics. When {channel} is specified, it shows
 | |
|    detailed information about all records associated with {channel}.
 | |
| 
 | |
| CEL (Channel Event Logging)
 | |
| ------------------
 | |
|  * CEL has undergone significant rework in Asterisk 12, and is now built on the
 | |
|    Stasis message bus. Please see the specification for CEL on the Asterisk
 | |
|    wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
 | |
|    information.
 | |
| 
 | |
|  * The 'extra' field of all CEL events that use it now consists of a JSON blob
 | |
|    with key/value pairs which are defined in the Asterisk 12 CEL documentation.
 | |
| 
 | |
|  * BLINDTRANSFER events now report the transferee bridge unique
 | |
|    identifier, extension, and context in a JSON blob as the extra string
 | |
|    instead of the transferee channel name as the peer.
 | |
| 
 | |
|  * ATTENDEDTRANSFER events now report the peer as NULL and additional
 | |
|    information in the 'extra' string as a JSON blob. For transfers that occur
 | |
|    between two bridged channels, the 'extra' JSON blob contains the primary
 | |
|    bridge unique identifier, the secondary channel name, and the secondary
 | |
|    bridge unique identifier. For transfers that occur between a bridged channel
 | |
|    and a channel running an app, the 'extra' JSON blob contains the primary
 | |
|    bridge unique identifier, the secondary channel name, and the app name.
 | |
| 
 | |
|  * LOCAL_OPTIMIZE events have been added to convey local channel
 | |
|    optimizations with the record occurring for the semi-one channel and
 | |
|    the semi-two channel name in the peer field.
 | |
| 
 | |
|  * BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
 | |
|    CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
 | |
|    events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT. The BRIDGE_ENTER
 | |
|    and BRIDGE_EXIT events are raised when a channel enters/exits any bridge,
 | |
|    regardless of whether or not that bridge happens to contain multiple
 | |
|    parties.
 | |
| 
 | |
| CLI
 | |
| -------------------
 | |
|  * When compiled with '--enable-dev-mode', the astobj2 library will now add
 | |
|    several CLI commands that allow for inspection of ao2 containers that
 | |
|    register themselves with astobj2. The CLI commands are 'astobj2 container
 | |
|    dump', 'astobj2 container stats', and 'astobj2 container check'.
 | |
| 
 | |
|  * Added specific CLI commands for bridge inspection. This includes 'bridge
 | |
|    show all', which lists all bridges in the system, and 'bridge show {id}',
 | |
|    which provides specific information about a bridge.
 | |
| 
 | |
|  * Added CLI command 'bridge destroy'. This will destroy the specified bridge,
 | |
|    ejecting the channels currently in the bridge. If the channels cannot
 | |
|    continue in the dialplan or application that put them in the bridge, they
 | |
|    will be hung up.
 | |
| 
 | |
|  * Added command 'bridge kick'. This will eject a single channel from a bridge.
 | |
| 
 | |
|  * Added commands to inspect and manipulate the registered bridge technologies.
 | |
|    This include 'bridge technology show', which lists the registered bridge
 | |
|    technologies, as well as 'bridge technology {suspend|unsuspend} {tech}',
 | |
|    which controls whether or not a registered bridge technology can be used
 | |
|    during smart bridge operations. If a technology is suspended, it will not
 | |
|    be used when a bridge technology is picked for channels; when unsuspended,
 | |
|    it can be used again.
 | |
| 
 | |
|  * The command 'config show help {module} {type} {option}' will show
 | |
|    configuration documentation for modules with XML configuration
 | |
|    documentation. When {module}, {type}, and {option} are omitted, a listing
 | |
|    of all modules with registered documentation is displayed. When {module}
 | |
|    is specified, a listing of all configuration types for that module is
 | |
|    displayed, along with their synopsis. When {module} and {type} are
 | |
|    specified, a listing of all configuration options for that type are
 | |
|    displayed along with their synopsis. When {module}, {type}, and {option}
 | |
|    are specified, detailed information for that configuration option is
 | |
|    displayed.
 | |
| 
 | |
|  * Added 'core show sounds' and 'core show sound' CLI commands. These display
 | |
|    a listing of all installed media sounds available on the system and
 | |
|    detailed information about a sound, respectively.
 | |
| 
 | |
|  * 'xmldoc dump' has been added. This CLI command will dump the XML
 | |
|    documentation DOM as a string to the specified file. The Asterisk core
 | |
|    will populate certain XML elements pulled from the source files with
 | |
|    additional run-time information; this command lets a user produce the
 | |
|    XML documentation with all information.
 | |
| 
 | |
| Features
 | |
| -------------------
 | |
|  * Parking has been pulled from core and placed into a separate module called
 | |
|    res_parking. See Parking changes below for more details. Configuration for
 | |
|    parking should now be performed in res_parking.conf. Configuration for
 | |
|    parking in features.conf is now unsupported.
 | |
| 
 | |
|  * Core attended transfers now have several new options. While performing an
 | |
|    attended transfer, the transferer now has the following options:
 | |
|    - *1 - cancel the attended transfer (configurable via atxferabort)
 | |
|    - *2 - complete the attended transfer, dropping out of the call
 | |
|           (configurable via atxfercomplete)
 | |
|    - *3 - complete the attended transfer, but stay in the call. This will turn
 | |
|           the call into a multi-party bridge (configurable via atxferthreeway)
 | |
|    - *4 - swap to the other party. Once an attended transfer has begun, this
 | |
|           options may be used multiple times (configurable via atxferswap)
 | |
| 
 | |
|  * For DTMF blind and attended transfers, the channel variable TRANSFER_CONTEXT
 | |
|    must be on the channel initiating the transfer to have any effect.
 | |
| 
 | |
|  * The BRIDGE_FEATURES channel variable would previously only set features for
 | |
|    the calling party and would set this feature regardless of whether the
 | |
|    feature was in caps or in lowercase. Use of a caps feature for a letter
 | |
|    will now apply the feature to the calling party while use of a lowercase
 | |
|    letter will apply that feature to the called party.
 | |
| 
 | |
|  * Add support for automixmon to the BRIDGE_FEATURES channel variable.
 | |
| 
 | |
|  * The channel variable DYNAMIC_PEERNAME is redundant with BRIDGEPEER and is
 | |
|    removed.  The more useful DYNAMIC_WHO_ACTIVATED gives the channel name that
 | |
|    activated the dynamic feature.
 | |
| 
 | |
|  * The channel variables DYNAMIC_FEATURENAME and DYNAMIC_WHO_ACTIVATED are set
 | |
|    only on the channel executing the dynamic feature.  Executing a dynamic
 | |
|    feature on the bridge peer in a multi-party bridge will execute it on all
 | |
|    peers of the activating channel.
 | |
| 
 | |
|  * You can now have the settings for a channel updated using the FEATURE()
 | |
|    and FEATUREMAP() functions inherited to child channels by setting
 | |
|    FEATURE(inherit)=yes.
 | |
| 
 | |
|  * automixmon now supports additional channel variables from automon including:
 | |
|    TOUCH_MIXMONITOR_PREFIX, TOUCH_MIXMONITOR_MESSAGE_START,
 | |
|    and TOUCH_MIXMONITOR_MESSAGE_STOP
 | |
| 
 | |
|  * A new general features.conf option 'recordingfailsound' has been added which
 | |
|    allowssetting a failure sound for a user tries to invoke a recording feature
 | |
|    such as automon or automixmon and it fails.
 | |
| 
 | |
|  * It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
 | |
|    features.c for atxferdropcall=no to work properly. This option now just
 | |
|    works.
 | |
| 
 | |
| Logging
 | |
| -------------------
 | |
|  * Added log rotation strategy 'none'. If set, no log rotation strategy will
 | |
|    be used. Given that this can cause the Asterisk log files to grow quickly,
 | |
|    this option should only be used if an external mechanism for log management
 | |
|    is preferred.
 | |
| 
 | |
| Realtime
 | |
| ------------------
 | |
|  * Dynamic realtime tables for SIP Users can now include a 'path' field. This
 | |
|    will store the path information for that peer when it registers. Realtime
 | |
|    tables can also use the 'supportpath' field to enable Path header support.
 | |
| 
 | |
|  * LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
 | |
|    objectIdentifier. This maps to the supportpath option in sip.conf.
 | |
| 
 | |
| Sorcery
 | |
| ------------------
 | |
|  * Sorcery is a new data abstraction and object persistence API in Asterisk. It
 | |
|    provides modules a useful abstraction on top of the many storage mechanisms
 | |
|    in Asterisk, including the Asterisk Database, static configuration files,
 | |
|    static Realtime, and dynamic Realtime. It also provides a caching service.
 | |
|    Users can configure a hierarchy of data storage layers for specific modules
 | |
|    in sorcery.conf.
 | |
| 
 | |
|  * All future modules which utilize Sorcery for object persistence must have a
 | |
|    column named "id" within their schema when using the Sorcery realtime module.
 | |
|    This column must be able to contain a string of up to 128 characters in length.
 | |
| 
 | |
| Security Events Framework
 | |
| ------------------
 | |
|  * Security Event timestamps now use ISO 8601 formatted date/time instead of
 | |
|    the "seconds-microseconds" format that it was using previously.
 | |
| 
 | |
| Stasis Message Bus
 | |
| ------------------
 | |
|  * The Stasis message bus is a publish/subscribe message bus internal to
 | |
|    Asterisk. Many services in Asterisk are built on the Stasis message bus,
 | |
|    including AMI, ARI, CDRs, and CEL. Parameters controlling the operation of
 | |
|    Stasis can be configured in stasis.conf. Note that these parameters operate
 | |
|    at a very low level in Asterisk, and generally will not require changes.
 | |
| 
 | |
| Channel Drivers
 | |
| ------------------
 | |
|  * When a channel driver is configured to enable jiterbuffers, they are now
 | |
|    applied unconditionally when a channel joins a bridge. If a jitterbuffer
 | |
|    is already set for that channel when it enters, such as by the JITTERBUFFER
 | |
|    function, then the existing jitterbuffer will be used and the one set by
 | |
|    the channel driver will not be applied.
 | |
| 
 | |
| chan_agent
 | |
| ------------------
 | |
|  * chan_agent has been removed and replaced with AgentLogin and AgentRequest
 | |
|    dialplan applications provided by the app_agent_pool module. Agents are
 | |
|    connected with callers using the new AgentRequest dialplan application.
 | |
|    The Agents:<agent-id> device state is available to monitor the status of an
 | |
|    agent. See agents.conf.sample for valid configuration options.
 | |
| 
 | |
|  * The updatecdr option has been removed. Altering the names of channels on a
 | |
|    CDR is not supported - the name of the channel is the name of the channel,
 | |
|    and pretending otherwise helps no one. The AGENTUPDATECDR channel variable
 | |
|    has also been removed, for the same reason.
 | |
| 
 | |
|  * The endcall and enddtmf configuration options are removed.  Use the
 | |
|    dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
 | |
|    channel before calling AgentLogin.
 | |
| 
 | |
| chan_bridge
 | |
| ------------------
 | |
|  * chan_bridge has been removed. Its functionality has been incorporated
 | |
|    directly into the ConfBridge application itself.
 | |
| 
 | |
| chan_dahdi
 | |
| ------------------
 | |
|  * Added the CLI command 'pri destroy span'. This will destroy the D-channel
 | |
|    of the specified span and its B-channels. Note that this command should
 | |
|    only be used if you understand the risks it entails.
 | |
| 
 | |
|  * The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
 | |
|    A range of channels can be specified to be destroyed. Note that this command
 | |
|    should only be used if you understand the risks it entails.
 | |
| 
 | |
|  * Added the CLI command 'dahdi create channels'. A range of channels can be
 | |
|    specified to be created, or the keyword 'new' can be used to add channels
 | |
|    not yet created.
 | |
| 
 | |
|  * The script specified by the chan_dahdi.conf mwimonitornotify option now gets
 | |
|    the exact configured mailbox name.  For app_voicemail mailboxes this is
 | |
|    mailbox@context.
 | |
| 
 | |
|  * Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
 | |
| 
 | |
| chan_iax2
 | |
| ------------------
 | |
|  * IPv6 support has been added.  We are now able to bind to and
 | |
|    communicate using IPv6 addresses.
 | |
| 
 | |
| chan_local
 | |
| ------------------
 | |
|  * The /b option has been removed.
 | |
| 
 | |
|  * chan_local moved into the system core and is no longer a loadable module.
 | |
| 
 | |
| chan_mobile
 | |
| ------------------
 | |
|  * Added general support for busy detection.
 | |
| 
 | |
|  * Added ECAM command support for Sony Ericsson phones.
 | |
| 
 | |
| chan_pjsip
 | |
| ------------------
 | |
|  * A new SIP channel driver for Asterisk, chan_pjsip is built on the PJSIP
 | |
|    SIP stack. A collection of resource modules provides the bulk of the SIP
 | |
|    functionality. For more information on the new SIP channel driver, see
 | |
|    https://wiki.asterisk.org/wiki/x/JYGLAQ
 | |
| 
 | |
| chan_sip
 | |
| ------------------
 | |
|  * Added support for RFC 3327 "Path" headers. This can be enabled in sip.conf
 | |
|    using the 'supportpath' setting, either on a global basis or on a peer basis.
 | |
|    This setting enables Asterisk to route outgoing out-of-dialog requests via a
 | |
|    set of proxies by using a pre-loaded route-set defined by the Path headers in
 | |
|    the REGISTER request. See Realtime updates for more configuration information.
 | |
| 
 | |
|  * The SIP_CODEC family of variables may now specify more than one codec. Each
 | |
|    codec must be separated by a comma. The first codec specified is the
 | |
|    preferred codec for the offer. This allows a dialplan writer to specify both
 | |
|    audio and video codecs, e.g., Set(SIP_CODEC=ulaw,h264)
 | |
| 
 | |
|  * The 'callevents' parameter has been removed. Hold AMI events are now raised
 | |
|    in the core, and can be filtered out using the 'eventfilter' parameter
 | |
|    in manager.conf.
 | |
| 
 | |
|  * Added 'ignore_requested_pref'. When enabled, this will use the preferred
 | |
|    codecs configured for a peer instead of the requested codec.
 | |
| 
 | |
|  * The option "register_retry_403" has been added to chan_sip to work around
 | |
|    servers that are known to erroneously send 403 in response to valid
 | |
|    REGISTER requests and allows Asterisk to continue attepmting to connect.
 | |
| 
 | |
| chan_skinny
 | |
| ------------------
 | |
|  * Added the 'immeddialkey' parameter. If set, when the user presses the
 | |
|    configured key the already entered number will be immediately dialed. This
 | |
|    is useful when the dialplan allows for variable length pattern matching.
 | |
|    Valid options are '*' and '#'.
 | |
| 
 | |
|  * Added the 'callfwdtimeout' parameter. This configures the amount of time (in
 | |
|    milliseconds) before a call forward is considered to not be answered.
 | |
| 
 | |
|  * The 'serviceurl' parameter allows Service URLs to be attached to line
 | |
|    buttons.
 | |
| 
 | |
| 
 | |
| Functions
 | |
| ------------------
 | |
| 
 | |
| AGENT
 | |
| ------------------
 | |
|  * The password option has been disabled, as the AgentLogin application no
 | |
|    longer provides authentication.
 | |
| 
 | |
| AUDIOHOOK_INHERIT
 | |
| ------------------
 | |
|  * Due to changes in the Asterisk core, this function is no longer needed to
 | |
|    preserve a MixMonitor on a channel during transfer operations and dialplan
 | |
|    execution. It is effectively obsolete.
 | |
| 
 | |
| CDR (function)
 | |
| ------------------
 | |
|  * The 'amaflags' and 'accountcode' attributes for the CDR function are
 | |
|    deprecated. Use the CHANNEL function instead to access these attributes.
 | |
| 
 | |
|  * The 'l' option has been removed. When reading a CDR attribute, the most
 | |
|    recent record is always used. When writing a CDR attribute, all non-finalized
 | |
|    CDRs are updated.
 | |
| 
 | |
|  * The 'r' option has been removed, for the same reason as the 'l' option.
 | |
| 
 | |
|  * The 's' option has been removed, as LOCKED semantics no longer exist in the
 | |
|    CDR engine.
 | |
| 
 | |
| CDR_PROP
 | |
| ------------------
 | |
|  * A new function CDR_PROP has been added. This function lets you set properties
 | |
|    on a channel's active CDRs. This function is write-only. Properties accept
 | |
|    boolean values to set/clear them on the channel's CDRs. Valid properties
 | |
|    include:
 | |
|    - 'party_a' - make this channel the preferred Party A in any CDR between two
 | |
|      channels. If two channels have this property set, the creation time of the
 | |
|      channel is used to determine who is Party A. Note that dialed channels are
 | |
|      never Party A in a CDR.
 | |
|    - 'disable' - disable CDRs on this channel. This is analogous to the NoCDR
 | |
|      application when set to True, and analogous to the 'e' option in ResetCDR
 | |
|      when set to False.
 | |
| 
 | |
| CHANNEL
 | |
| ------------------
 | |
|  * Added the argument 'dtmf_features'. This sets the DTMF features that will be
 | |
|    enabled on a channel when it enters a bridge. Allowed values are 'T', 'K',
 | |
|    'H', 'W', and 'X', and are analogous to the parameters passed to the Dial
 | |
|    application.
 | |
| 
 | |
|  * Added the argument 'after_bridge_goto'. This can be set to a parseable Goto
 | |
|    string, i.e., [[context],extension],priority. If set on a channel, if a
 | |
|    channel leaves a bridge but is not hung up it will resume dialplan execution
 | |
|    at that location.
 | |
| 
 | |
| JITTERBUFFER
 | |
| ------------------
 | |
|  * JITTERBUFFER now accepts an argument of 'disabled' which can be used
 | |
|    to remove jitterbuffers previously set on a channel with JITTERBUFFER.
 | |
|    The value of this setting is ignored when disabled is used for the argument.
 | |
| 
 | |
| PJSIP_DIAL_CONTACTS
 | |
| ------------------
 | |
|  * A new function provided by chan_pjsip, this function can be used in
 | |
|    conjunction with the Dial application to construct a dial string that will
 | |
|    dial all contacts on an Address of Record associated with a chan_pjsip
 | |
|    endpoint.
 | |
| 
 | |
| PJSIP_MEDIA_OFFER
 | |
| ------------------
 | |
|  * Provided by chan_pjsip, this function sets the codecs to be offerred on the
 | |
|    outbound channel prior to dialing.
 | |
| 
 | |
| REDIRECTING
 | |
| ------------------
 | |
|  * Redirecting reasons can now be set to arbitrary strings. This means
 | |
|    that the REDIRECTING dialplan function can be used to set the redirecting
 | |
|    reason to any string. It also allows for custom strings to be read as the
 | |
|    redirecting reason from SIP Diversion headers.
 | |
| 
 | |
| SPEECH_ENGINE
 | |
| ------------------
 | |
|  * The SPEECH_ENGINE function now supports read operations. When read from, it
 | |
|    will return the current value of the requested attribute.
 | |
| 
 | |
| VMCOUNT:
 | |
| ------------------
 | |
|  * Mailboxes defined by app_voicemail MUST be referenced by the rest of the
 | |
|    system as mailbox@context.  The rest of the system cannot add @default
 | |
|    to mailbox identifiers for app_voicemail that do not specify a context
 | |
|    any longer.  It is a mailbox identifier format that should only be
 | |
|    interpreted by app_voicemail.
 | |
| 
 | |
| 
 | |
| Resources
 | |
| ------------------
 | |
| 
 | |
| res_agi (Asterisk Gateway Interface)
 | |
| ------------------
 | |
|  * The manager event AGIExec has been split into AGIExecStart and AGIExecEnd.
 | |
| 
 | |
|  * The manager event AsyncAGI has been split into AsyncAGIStart, AsyncAGIExec,
 | |
|    and AsyncAGIEnd.
 | |
| 
 | |
|  * The CONTROL STREAM FILE command now accepts an offsetms parameter. This
 | |
|    will start the playback of the audio at the position specified. It will
 | |
|    also return the final position of the file in 'endpos'.
 | |
| 
 | |
|  * The CONTROL STREAM FILE command will now populate the CPLAYBACKSTATUS
 | |
|    channel variable if the user stopped the file playback or if a remote
 | |
|    entity stopped the playback. If neither stopped the playback, it will
 | |
|    indicate the overall success/failure of the playback. If stopped early,
 | |
|    the final offset of the file will be set in the CPLAYBACKOFFSET channel
 | |
|    variable.
 | |
| 
 | |
|  * The SAY ALPHA command now accepts an additional parameter to control
 | |
|    whether it specifies the case of uppercase, lowercase, or all letters to
 | |
|    provide functionality similar to SayAlphaCase.
 | |
| 
 | |
| res_ari (Asterisk RESTful Interface) (and others)
 | |
| ------------------
 | |
|  * The Asterisk RESTful Interface (ARI) provides a mechanism to expose and
 | |
|    control telephony primitives in Asterisk by remote client. This includes
 | |
|    channels, bridges, endpoints, media, and other fundamental concepts. Users
 | |
|    of ARI can develop their own communications applications, controlling
 | |
|    multiple channels using an HTTP RESTful interface and receiving JSON events
 | |
|    about the objects via a WebSocket connection. ARI can be configured in
 | |
|    Asterisk via ari.conf. For more information on ARI, see
 | |
|    https://wiki.asterisk.org/wiki/x/0YCLAQ
 | |
| 
 | |
| res_parking
 | |
| -------------------
 | |
|  * Parking has been extracted from the Asterisk core as a loadable module,
 | |
|    res_parking. Configuration for parking is now provided by res_parking.conf.
 | |
|    Configuration through features.conf is no longer supported.
 | |
| 
 | |
|  * res_parking uses the configuration framework. If an invalid configuration is
 | |
|    supplied, res_parking will fail to load or fail to reload. Previously,
 | |
|    invalid configurations would generally be accepted, with certain errors
 | |
|    resulting in individually disabled parking lots.
 | |
| 
 | |
|  * Parked calls are now placed in bridges. While this is largely an
 | |
|    architectural change, it does have implications on how channels in a parking
 | |
|    lot are viewed. For example, commands that display channels in bridges will
 | |
|    now also display the channels in a parking lot.
 | |
| 
 | |
|  * The order of arguments for the new parking applications have been modified.
 | |
|    Timeout and return context/exten/priority are now implemented as options,
 | |
|    while the name of the parking lot is now the first parameter. See the
 | |
|    application documentation for Park, ParkedCall, and ParkAndAnnounce for more
 | |
|    in-depth information as well as syntax.
 | |
| 
 | |
|  * Extensions are by default no longer automatically created in the dialplan to
 | |
|    park calls or pickup parked calls. Generation of dialplan extensions can be
 | |
|    enabled using the 'parkext' configuration option.
 | |
| 
 | |
|  * ADSI functionality for parking is no longer supported. The 'adsipark'
 | |
|    configuration option has been removed as a result.
 | |
| 
 | |
|  * The PARKINGSLOT channel variable has been deprecated in favor of
 | |
|    PARKING_SPACE to match the naming scheme of the new system.
 | |
| 
 | |
|  * PARKING_SPACE and PARKEDLOT channel variables will now be set for a parked
 | |
|    channel even when the configuration option 'comebactoorigin' is enabled.
 | |
| 
 | |
|  * A new CLI command 'parking show' has been added. This allows a user to
 | |
|    inspect the parking lots that are currently in use.
 | |
|    'parking show <parkinglot>' will also show the parked calls in a specific
 | |
|    parking lot.
 | |
| 
 | |
|  * The CLI command 'parkedcalls' is now deprecated in favor of
 | |
|    'parking show <parkinglot>'.
 | |
| 
 | |
|  * The AMI command 'ParkedCalls' will now accept a 'ParkingLot' argument which
 | |
|    can be used to get a list of parked calls for a specific parking lot.
 | |
| 
 | |
|  * The AMI command 'Park' field 'Channel2' has been deprecated and replaced
 | |
|    with 'TimeoutChannel'. If both 'Channel2' and 'TimeoutChannel' are
 | |
|    specified, 'TimeoutChannel' will be used. The field 'TimeoutChannel' is no
 | |
|    longer a required argument.
 | |
| 
 | |
|  * The ParkAndAnnounce application is now provided through res_parking instead
 | |
|    of through the separate app_parkandannounce module.
 | |
| 
 | |
|  * ParkAndAnnounce will no longer go to the next position in dialplan on timeout
 | |
|    by default. Instead, it will follow the timeout rules of the parking lot. The
 | |
|    old behavior can be reproduced by using the 'c' option.
 | |
| 
 | |
|  * Dynamic parking lots will now fail to be created under the following
 | |
|    conditions:
 | |
|    - if the parking lot specified by PARKINGDYNAMIC does not exist
 | |
|    - if they require exclusive park and parkedcall extensions which overlap
 | |
|      with existing parking lots.
 | |
| 
 | |
|  * Dynamic parking lots will be cleared on reload for dynamic parking lots that
 | |
|    currently contain no calls. Dynamic parking lots containing parked calls
 | |
|    will persist through the reloads without alteration.
 | |
| 
 | |
|  * If 'parkext_exclusive' is set for a parking lot and that extension is
 | |
|    already in use when that parking lot tries to register it, this is now
 | |
|    considered a parking system configuration error. Configurations which do
 | |
|    this will be rejected.
 | |
| 
 | |
|  * Added channel variable PARKER_FLAT. This contains the name of the extension
 | |
|    that would be used if 'comebacktoorigin' is enabled. This can be useful when
 | |
|    comebacktoorigin is disabled, but the dialplan or an external control
 | |
|    mechanism wants to use the extension in the park-dial context that was
 | |
|    generated to re-dial the parker on timeout.
 | |
| 
 | |
| res_pjsip (and many others)
 | |
| ------------------
 | |
|  * A large number of resource modules make up the SIP stack based on pjsip.
 | |
|    The chan_pjsip channel driver users these resource modules to provide
 | |
|    various SIP functionality in Asterisk. The majority of configuration for
 | |
|    these modules is performed in pjsip.conf. Other modules may use their
 | |
|    own configuration files.
 | |
| 
 | |
|  * Added 'set_var' option for an endpoint. For each variable specified that
 | |
|    variable gets set upon creation of a channel involving the endpoint.
 | |
| 
 | |
| res_rtp_asterisk
 | |
| ------------------
 | |
|  * ICE/STUN/TURN support in res_rtp_asterisk has been made optional.  To enable
 | |
|    them, an Asterisk-specific version of PJSIP needs to be installed.
 | |
|    Tarballs are available from https://github.com/asterisk/pjproject/tags/.
 | |
| 
 | |
| res_statsd/res_chan_stats
 | |
| ------------------
 | |
|  * A new resource module, res_statsd, has been added, which acts as a statsd
 | |
|    client. This module allows Asterisk to publish statistics to a statsd
 | |
|    server. In conjunction with res_chan_stats, it will publish statistics about
 | |
|    channels to the statsd server. It can be configured via res_statsd.conf.
 | |
| 
 | |
| res_xmpp
 | |
| ------------------
 | |
|  * Device state for XMPP buddies is now available using the following format:
 | |
|    XMPP/<client name>/<buddy address>
 | |
|    If any resource is available the device state is considered to be not in use.
 | |
|    If no resources exist or all are unavailable the device state is considered
 | |
|    to be unavailable.
 | |
| 
 | |
| 
 | |
| Scripts
 | |
| ------------------
 | |
| 
 | |
| Realtime/Database Scripts
 | |
| ------------------
 | |
|  * Asterisk previously included example db schemas in the contrib/realtime/
 | |
|    directory of the source tree.  This has been replaced by a set of database
 | |
|    migrations using the Alembic framework.  This allows you to use alembic to
 | |
|    initialize the database for you.  It will also serve as a database migration
 | |
|    tool when upgrading Asterisk in the future.
 | |
| 
 | |
|    See contrib/ast-db-manage/README.md for more details.
 | |
| 
 | |
| sip_to_res_pjsip.py
 | |
| -------------------
 | |
|  * A new script has been added in the contrib/scripts/sip_to_res_pjsip folder.
 | |
|    This python script will convert an existing sip.conf file to a
 | |
|    pjsip.conf file, for use with the chan_pjsip channel driver. This script
 | |
|    is meant to be an aid in converting an existing chan_sip configuration to
 | |
|    a chan_pjsip configuration, but it is expected that configuration beyond
 | |
|    what the script provides will be needed.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 10 to Asterisk 11 --------------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| Build System
 | |
| -------------------
 | |
|  * The Asterisk build system will now build and install a shared library
 | |
|    (libasteriskssl.so) used to wrap various initialization and shutdown functions
 | |
|    from the libssl and libcrypto libraries provided by OpenSSL. This is done so
 | |
|    that Asterisk can ensure that these functions do *not* get called by any
 | |
|    modules that are loaded into Asterisk, since they should only be called once
 | |
|    in any single process. If desired, this feature can be disabled by supplying
 | |
|    the "--disable-asteriskssl" option to the configure script.
 | |
| 
 | |
|  * A new make target, 'full', has been added to the Makefile.  This performs
 | |
|    the same compilation actions as make all, but will also scan the entirety of
 | |
|    each source file for documentation.  This option is needed to generate AMI
 | |
|    event documentation.  Note that your system must have Python in order for
 | |
|    this make target to succeed.
 | |
| 
 | |
|  * The optimization portion of the build system has been reworked to avoid
 | |
|    broken builds on certain architectures.  All architecture-specific
 | |
|    optimization has been removed in favor of using -march=native to allow gcc
 | |
|    to detect the environment in which it is running when possible.  This can
 | |
|    be toggled as BUILD_NATIVE under "Compiler Flags" in menuselect.
 | |
| 
 | |
|  * BUILD_CFLAGS and BUILD_LDFLAGS can now be passed to menuselect, e.g.,
 | |
|    make BUILD_CFLAGS="whatever" BUILD_LDFLAGS="whatever"
 | |
| 
 | |
|  * Remove "asterisk/version.h" in favor of "asterisk/ast_version.h".  If you
 | |
|    previously parsed the header file to obtain the version of Asterisk, you
 | |
|    will now have to go through Asterisk to get the version information.
 | |
| 
 | |
| 
 | |
| Applications
 | |
| -------------------
 | |
| 
 | |
| Bridge
 | |
| -------------------
 | |
|  * Added 'F()' option. Similar to the dial option, this can be supplied with
 | |
|    arguments indicating where the callee should go after the caller is hung up,
 | |
|    or without options specified, the priority after the Queue will be used.
 | |
| 
 | |
| 
 | |
| ConfBridge
 | |
| -------------------
 | |
|  * Added menu action admin_toggle_mute_participants.  This will mute / unmute
 | |
|    all non-admin participants on a conference.  The confbridge configuration
 | |
|    file also allows for the default sounds played to all conference users when
 | |
|    this occurs to be overriden using sound_participants_unmuted and
 | |
|    sound_participants_muted.
 | |
| 
 | |
|  * Added menu action participant_count.  This will playback the number of
 | |
|    current participants in a conference.
 | |
| 
 | |
|  * Added announcement configuration option to user profile. If set the sound
 | |
|    file will be played to the user, and only the user, upon joining the
 | |
|    conference bridge.
 | |
| 
 | |
|  * Added record_file_append option that defaults to "yes", but if set to no
 | |
|    will create a new file between each start/stop recording.
 | |
| 
 | |
| 
 | |
| Dial
 | |
| -------------------
 | |
|  * Added 'b' and 'B' options to Dial that execute a Gosub on callee and caller
 | |
|    channels respectively before the callee channels are called.
 | |
| 
 | |
| 
 | |
| ExternalIVR
 | |
| -------------------
 | |
|  * Added support for IPv6.
 | |
| 
 | |
|  * Add interrupt ('I') command to ExternalIVR.  Sending this command from an
 | |
|    external process will cause the current playlist to be cleared, including
 | |
|    stopping any audio file that is currently playing.  This is useful when you
 | |
|    want to interrupt audio playback only when specific DTMF is entered by the
 | |
|    caller.
 | |
| 
 | |
| 
 | |
| FollowMe
 | |
| -------------------
 | |
|  * A new option, 'I' has been added to app_followme. By setting this option,
 | |
|    Asterisk will not update the caller with connected line changes when they
 | |
|    occur.  This is similar to app_dial and app_queue.
 | |
| 
 | |
|  * The 'N' option is now ignored if the call is already answered.
 | |
| 
 | |
|  * Added 'b' and 'B' options to FollowMe that execute a Gosub on callee
 | |
|    and caller channels respectively before the callee channels are called.
 | |
| 
 | |
|  * The winning FollowMe outgoing call is now put on hold if the caller put it on
 | |
|    hold.
 | |
| 
 | |
| 
 | |
| MixMonitor
 | |
| ------------------
 | |
|  * MixMonitor hooks now have IDs associated with them which can be used to
 | |
|    assign a target to StopMixMonitor. Use of MixMonitor's i(variable) option
 | |
|    will allow storage of the MixMontior ID in a channel variable. StopMixmonitor
 | |
|    now accepts that ID as an argument.
 | |
| 
 | |
|  * Added 'm' option, which stores a copy of the recording as a voicemail in the
 | |
|    indicated mailboxes.
 | |
| 
 | |
| 
 | |
| MySQL
 | |
| -------------------
 | |
|  * The connect action in app_mysql now allows you to specify a port number to
 | |
|    connect to.  This is useful if you run a MySQL server on a non-standard
 | |
|    port number.
 | |
| 
 | |
| 
 | |
| OSP Applications
 | |
| -------------------
 | |
|  * Increased the default number of allowed destinations from 5 to 12.
 | |
| 
 | |
| 
 | |
| Page
 | |
| -------------------
 | |
|  * The app_page application now no longer depends on DAHDI or app_meetme.  It
 | |
|    has been re-architected to use app_confbridge internally.
 | |
| 
 | |
| 
 | |
| Queue
 | |
| -------------------
 | |
|  * Added queue options autopausebusy and autopauseunavail for automatically
 | |
|    pausing a queue member when their device reports busy or congestion.
 | |
| 
 | |
|  * The 'ignorebusy' option for queue members has been deprecated in favor of
 | |
|    the option 'ringinuse. Also a 'queue set ringinuse' CLI command has been
 | |
|    added as well as an AMI action 'QueueMemberRingInUse' to set this variable on a
 | |
|    per interface basis. Individual ringinuse values can now be set in
 | |
|    queues.conf via an argument to member definitions. Lastly, the queue
 | |
|    'ringinuse' setting now only determines defaults for the per member
 | |
|    'ringinuse' setting and does not override per member settings like it does
 | |
|    in earlier versions.
 | |
| 
 | |
|  * Added 'F()' option. Similar to the dial option, this can be supplied with
 | |
|    arguments indicating where the callee should go after the caller is hung up,
 | |
|    or without options specified, the priority after the Queue will be used.
 | |
| 
 | |
|  * Added new option log_member_name_as_agent, which will cause the membername to
 | |
|    be logged in the agent field for ADDMEMBER and REMOVEMEMBER queue events if a
 | |
|    state_interface has been set.
 | |
| 
 | |
|  * Add queue monitoring hints.  exten => 8501,hint,Queue:markq.
 | |
| 
 | |
|  * App_queue will now play periodic announcements for the caller that
 | |
|    holds the first position in the queue while waiting for answer.
 | |
| 
 | |
| SayUnixTime
 | |
| ------------------
 | |
|  * Added 'j' option to SayUnixTime. SayUnixTime no longer auto jumps to extension
 | |
|    when receiving DTMF.  Use the 'j' option to enable extension jumping. Also
 | |
|    changed arguments to SayUnixTime so that every option is truly optional even
 | |
|    when using multiple options (so that j option could be used without having to
 | |
|    manually specify timezone and format) There are other benefits, e.g., format
 | |
|    can now be used without specifying time zone as well.
 | |
| 
 | |
| 
 | |
| Voicemail
 | |
| ------------------
 | |
|  * Addition of the VM_INFO function - see Function changes.
 | |
| 
 | |
|  * The imapserver, imapport, and imapflags configuration options can now be
 | |
|    overriden on a user by user basis.
 | |
| 
 | |
|  * When voicemail plays a message's envelope with saycid set to yes, when
 | |
|    reaching the caller id field it will play a recording of a file with the same
 | |
|    base name as the sender's callerid if there is a similarly named file in
 | |
|    <astspooldir>/recordings/callerids/
 | |
| 
 | |
|  * Voicemails now contains a unique message identifier "msg_id", which is stored
 | |
|    in the message envelope with the sound files.  IMAP backends will now store
 | |
|    the message identifiers with a header of "X-Asterisk-VM-Message-ID".  ODBC
 | |
|    backends will store the message identifier in a "msg_id" column.  See
 | |
|    UPGRADE.txt for more information.
 | |
| 
 | |
|  * Added VoiceMailPlayMsg application.  This application will play a single
 | |
|    voicemail message from a mailbox.  The result of the application, SUCCESS or
 | |
|    FAILED, is stored in the channel variable VOICEMAIL_PLAYBACKSTATUS.
 | |
| 
 | |
| 
 | |
| Functions
 | |
| ------------------
 | |
|  * Hangup handlers can be attached to channels using the CHANNEL() function.
 | |
|    Hangup handlers will run when the channel is hung up similar to the h
 | |
|    extension. The hangup_handler_push option will push a GoSub compatible
 | |
|    location in the dialplan onto the channel's hangup handler stack.  The
 | |
|    hangup_handler_pop option will remove the last added location, and optionally
 | |
|    replace it with a new GoSub compatible location.  The hangup_handler_wipe
 | |
|    option will remove all locations on the stack, and optionally add a new
 | |
|    location.
 | |
| 
 | |
|  * The expression parser now recognizes the ABS() absolute value function,
 | |
|    which will convert negative floating point values to positive values.
 | |
| 
 | |
|  * FAXOPT(faxdetect) will enable a generic fax detect framehook for dialplan
 | |
|    control of faxdetect.
 | |
| 
 | |
|  * Addition of the VM_INFO function that can be used to retrieve voicemail
 | |
|    user information, such as the email address and full name.
 | |
|    The MAILBOX_EXISTS dialplan function has been deprecated in favour of
 | |
|    VM_INFO.
 | |
| 
 | |
|  * The REDIRECTING function now supports the redirecting original party id
 | |
|    and reason.
 | |
| 
 | |
|  * Two new functions have been added: FEATURE() and FEATUREMAP().  FEATURE()
 | |
|    lets you set some of the configuration options from the [general] section
 | |
|    of features.conf on a per-channel basis.  FEATUREMAP() lets you customize
 | |
|    the key sequence used to activate built-in features, such as blindxfer,
 | |
|    and automon.  See the built-in documentation for details.
 | |
| 
 | |
|  * MESSAGE(from) for incoming SIP messages now returns "display-name" <uri>
 | |
|    instead of simply the uri.  This is the format that MessageSend() can use
 | |
|    in the from parameter for outgoing SIP messages.
 | |
| 
 | |
|  * Added the PRESENCE_STATE function.  This allows retrieving presence state
 | |
|    information from any presence state provider.  It also allows setting
 | |
|    presence state information from a CustomPresence presence state provider.
 | |
|    See AMI/CLI changes for related commands.
 | |
| 
 | |
|  * Added the AMI_CLIENT function to make manager account attributes available
 | |
|    to the dialplan. It currently supports returning the current number of
 | |
|    active sessions for a given account.
 | |
| 
 | |
|  * Added support for private party ID information to CALLERID, CONNECTEDLINE,
 | |
|    and the REDIRECTING functions.
 | |
| 
 | |
| 
 | |
| Channel Drivers
 | |
| ------------------
 | |
| 
 | |
| chan_local
 | |
| ------------------
 | |
|  * Added a manager event "LocalBridge" for local channel call bridges between
 | |
|    the two pseudo-channels created.
 | |
| 
 | |
| 
 | |
| chan_dahdi
 | |
| ------------------
 | |
|  * Added dialtone_detect option for analog ports to disconnect incoming
 | |
|    calls when dialtone is detected.
 | |
| 
 | |
|  * Added option colp_send to send ISDN connected line information.  Allowed
 | |
|    settings are block, to not send any connected line information; connect, to
 | |
|    send connected line information on initial connect; and update, to send
 | |
|    information on any update during a call.  Default is update.
 | |
| 
 | |
|  * Add options namedcallgroup and namedpickupgroup to support installations
 | |
|    where a higher number of groups (>64) is required.
 | |
| 
 | |
|  * Added support to use private party ID information with PRI calls.
 | |
| 
 | |
| 
 | |
| chan_motif
 | |
| ------------------
 | |
|  * A new channel driver named chan_motif has been added which provides support for
 | |
|    Google Talk and Jingle in a single channel driver. This new channel driver includes
 | |
|    support for both audio and video, RFC2833 DTMF, all codecs supported by Asterisk,
 | |
|    hold, unhold, and ringing notification. It is also compliant with the current Jingle
 | |
|    specification, current Google Jingle specification, and the original Google Talk
 | |
|    protocol.
 | |
| 
 | |
| 
 | |
| chan_ooh323
 | |
| ------------------
 | |
|  * Added NAT support for RTP.  Setting in config is 'nat', which can be set
 | |
|    globally and overriden on a peer by peer basis.
 | |
| 
 | |
|  * Direct media functionality has been added. Options in config are:
 | |
|    directmedia (directrtp) and directrtpsetup (earlydirect)
 | |
| 
 | |
|  * ChannelUpdate events now contain a CallRef header.
 | |
| 
 | |
| 
 | |
| chan_sip
 | |
| ------------------
 | |
|  * Asterisk will no longer substitute CID number for CID name in the display
 | |
|    name field if CID number exists without a CID name. This change improves
 | |
|    compatibility with certain device features such as Avaya IP500's directory
 | |
|    lookup service.
 | |
| 
 | |
|  * A new setting for autocreatepeer (autocreatepeer=persistent) allows peers
 | |
|    created using that setting to not be removed during SIP reload.
 | |
| 
 | |
|  * Added settings recordonfeature and recordofffeature.  When receiving an INFO
 | |
|    request with a "Record:" header, this will turn the requested feature on/off.
 | |
|    Allowed values are 'automon', 'automixmon', and blank to disable.  Note that
 | |
|    dynamic features must be enabled and configured properly on the requesting
 | |
|    channel for this to function properly.
 | |
| 
 | |
|  * Add support to realtime for the 'callbackextension' option.
 | |
| 
 | |
|  * When multiple peers exist with the same address, but differing
 | |
|    callbackextension options, incoming requests that are matched by address
 | |
|    will be matched to the peer with the matching callbackextension if it is
 | |
|    available.
 | |
| 
 | |
|  * Two new NAT options, auto_force_rport and auto_comedia, have been added
 | |
|    which set the force_rport and comedia options automatically if Asterisk
 | |
|    detects that an incoming SIP request crossed a NAT after being sent by
 | |
|    the remote endpoint.
 | |
| 
 | |
|  * The default global nat setting in sip.conf has been changed from force_rport
 | |
|    to auto_force_rport.
 | |
| 
 | |
|  * NAT settings are now a combinable list of options. The equivalent of the
 | |
|    deprecated nat=yes is nat=force_rport,comedia. nat=no behaves as before.
 | |
| 
 | |
|  * Adds an option send_diversion which can be disabled to prevent
 | |
|    diversion headers from automatically being added to INVITE requests.
 | |
| 
 | |
|  * Add support for lightweight NAT keepalive. If enabled a blank packet will
 | |
|    be sent to the remote host at a given interval to keep the NAT mapping open.
 | |
|    This can be enabled using the keepalive configuration option.
 | |
| 
 | |
|  * Add option 'tonezone' to specify country code for indications.  This option
 | |
|    can be set both globally and overridden for specific peers.
 | |
| 
 | |
|  * The SIP Security Events Framework now supports IPv6.
 | |
| 
 | |
|  * Add a new setting for directmedia, 'outgoing', to alleviate INVITE glares
 | |
|    between multiple user agents. When set, for directmedia reinvites,
 | |
|    Asterisk will not send an immediate reinvite on an incoming call leg. This
 | |
|    option is useful when peered with another SIP user agent that is known to
 | |
|    send immediate direct media reinvites upon call establishment.
 | |
| 
 | |
|  * Add support for WebSocket transport. This can be configured using 'ws' or 'wss'
 | |
|    as the transport.
 | |
| 
 | |
|  * Add options subminexpiry and submaxexpiry to set limits of subscription
 | |
|    timer independently from registration timer settings. The setting of the
 | |
|    registration timer limits still is done by options minexpiry, maxexpiry
 | |
|    and defaultexpiry. For backwards compatibility the setting of minexpiry
 | |
|    and maxexpiry also is used to configure the subscription timer limits if
 | |
|    subminexpiry and submaxexpiry are not set in sip.conf.
 | |
| 
 | |
|  * Set registration timer limits to default values when reloading sip
 | |
|    configuration and values are not set by configuration.
 | |
| 
 | |
|  * Add options namedcallgroup and namedpickupgroup to support installations
 | |
|    where a higher number of groups (>64) is required.
 | |
| 
 | |
|  * When a MESSAGE request is received, the address the request was received from
 | |
|    is now saved in the SIP_RECVADDR variable.
 | |
| 
 | |
|  * Add ANI2/OLI parsing for SIP.  The "From" header in INVITE requests is now
 | |
|    parsed for the presence of "isup-oli", "ss7-oli", or "oli" tags.  If present,
 | |
|    the ANI2/OLI information is set on the channel, which can be retrieved using
 | |
|    the CALLERID function.
 | |
| 
 | |
|  * Peers can now be configured to support negotiation of ICE candidates using
 | |
|    the setting icesupport.  See res_rtp_asterisk changes for more information.
 | |
| 
 | |
|  * Added support for format attribute negotiation.  See the Codecs changes for
 | |
|    more information.
 | |
| 
 | |
|  * Extra headers specified with SIPAddHeader are sent with the REFER message
 | |
|    when using Transfer application. See refer_addheaders in sip.conf.sample.
 | |
| 
 | |
|  * Added support to use private party ID information with calls.
 | |
| 
 | |
|  * Adds an option discard_remote_hold_retrieval that when set stops telling
 | |
|    the peer to start music on hold.
 | |
| 
 | |
| 
 | |
| chan_skinny
 | |
| ------------------
 | |
|  * Added skinny version 17 protocol support.
 | |
| 
 | |
| 
 | |
| chan_unistim
 | |
| --------------------
 | |
|  * Added option 'dtmf_duration' allowing playback time of DTMF tones to be set
 | |
| 
 | |
|  * Modified option 'date_format' to allow options to display date in 31Jan and Jan31
 | |
|    formats as options 0 and 1. The previous options 0 and 1 now map to options 2 and 3
 | |
|    as per the UNISTIM protocol.
 | |
| 
 | |
|  * Fixed issues with dialtone not matching indications.conf and mute stopping rx
 | |
|    as well as tx. Also fixed issue with call "Timer" displaying as French "Dur\E9e"
 | |
| 
 | |
|  * Added ability to use multiple lines for a single phone.  This allows multiple
 | |
|    calls to occur on a single phone, using callwaiting and switching between calls.
 | |
| 
 | |
|  * Added option 'sharpdial' allowing end dialing by pressing # key
 | |
| 
 | |
|  * Added option 'interdigit_timer' to control phone dial timeout
 | |
| 
 | |
|  * Added options 'cwstyle', 'cwvolume' controlling callwaiting appearance
 | |
| 
 | |
|  * Added global 'debug' option, that enables debug in channel driver
 | |
| 
 | |
|  * Added ability to translate on-screen menu in multiple languages. Tested on
 | |
|    Russian languages.  Supported encodings: ISO 8859-1, ISO 8859-2, ISO 8859-4,
 | |
|    ISO 8859-5, ISO 2022-JP. Language controlled by 'language' and on-screen
 | |
|    menu of phone
 | |
| 
 | |
|  * In addition to English added French and Russian languages for on-screen menus
 | |
| 
 | |
|  * Reworked dialing number input: added dialing by timeout, immediate dial on
 | |
|    on dialplan compare, phone number length now not limited by screen size
 | |
| 
 | |
|  * Added ability to pickup a call using features.conf defined value and
 | |
|    on-screen key
 | |
| 
 | |
| 
 | |
| chan_mISDN:
 | |
| ------------------
 | |
|  * Add options namedcallgroup and namedpickupgroup to support installations
 | |
|    where a higher number of groups (>64) is required.
 | |
| 
 | |
|  * Added support to use private party ID information with calls.
 | |
| 
 | |
| 
 | |
| Core
 | |
| ------------------
 | |
|  * The minimum DTMF duration can now be configured in asterisk.conf
 | |
|    as "mindtmfduration". The default value is (as before) set to 80 ms.
 | |
|    (previously it was only available in source code)
 | |
| 
 | |
|  * Named ACLs can now be specified in acl.conf and used in configurations that
 | |
|    use ACLs. As a general rule, if some derivative of 'permit' or 'deny' is
 | |
|    used to specify an ACL, a similar form of 'acl' will add a named ACL to the
 | |
|    working ACL. In addition, some CLI commands have been added to provide
 | |
|    show information and allow for module reloading - see CLI Changes.
 | |
| 
 | |
|  * Rules in ACLs (specified using 'permit' and 'deny') can now contain multiple
 | |
|    items (separated by commas), and items in the rule can be negated by prefixing
 | |
|    them with '!'. This simplifies Asterisk Realtime configurations, since it is no
 | |
|    longer necessray to control the order that the 'permit' and 'deny' columns are
 | |
|    returned from queries.
 | |
| 
 | |
|  * DUNDi now allows the built in variables ${NUMBER}, ${IPADDR} and ${SECRET} to
 | |
|    be used within the dynamic weight attribute when specifying a mapping.
 | |
| 
 | |
|  * CEL backends can now be configured to show "USER_DEFINED" in the EventName
 | |
|    header, instead of putting the user defined event name there.  When enabled
 | |
|    the UserDefType header is added for user defined events.  This feature is
 | |
|    enabled with the setting show_user_defined.
 | |
| 
 | |
|  * Macro has been deprecated in favor of GoSub.  For redirecting and connected
 | |
|    line purposes use the following variables instead of their macro equivalents:
 | |
|    REDIRECTING_SEND_SUB, REDIRECTING_SEND_SUB_ARGS, CONNECTED_LINE_SEND_SUB,
 | |
|    CONNECTED_LINE_SEND_SUB_ARGS.  For CCSS, use cc_callback_sub instead of
 | |
|    cc_callback_macro in channel configurations.
 | |
| 
 | |
|  * Asterisk can now use a system-provided NetBSD editline library (libedit) if it
 | |
|    is available.
 | |
| 
 | |
|  * Call files now support the "early_media" option to connect with an outgoing
 | |
|    extension when early media is received.
 | |
| 
 | |
|  * Added support to use private party ID information with calls.
 | |
| 
 | |
| 
 | |
| AGI
 | |
| ------------------
 | |
|  * A new channel variable, AGIEXITONHANGUP, has been added which allows
 | |
|    Asterisk to behave like it did in Asterisk 1.4 and earlier where the
 | |
|    AGI application would exit immediately after a channel hangup is detected.
 | |
| 
 | |
|  * IPv6 addresses are now supported when using FastAGI (agi://).  Hostnames
 | |
|    are resolved and each address is attempted in turn until one succeeds or
 | |
|    all fail.
 | |
| 
 | |
| 
 | |
| AMI (Asterisk Manager Interface)
 | |
| ------------------
 | |
|  * The originate action now has an option "EarlyMedia" that enables the
 | |
|    call to bridge when we get early media in the call. Previously,
 | |
|    early media was disregarded always when originating calls using AMI.
 | |
| 
 | |
|  * Added setvar= option to manager accounts (much like sip.conf)
 | |
| 
 | |
|  * Originate now generates an error response if the extension given is not found
 | |
|    in the dialplan
 | |
| 
 | |
|  * MixMonitor will now show IDs associated with the mixmonitor upon creating
 | |
|    them if the i(variable) option is used. StopMixMonitor will accept
 | |
|    MixMonitorID as an option to close specific MixMonitors.
 | |
| 
 | |
|  * The SIPshowpeer manager action response field "SIP-Forcerport" has been
 | |
|    updated to include information about peers configured with
 | |
|    nat=auto_force_rport by returning "A" if auto_force_rport is set and nat is
 | |
|    detected, and "a" if it is set and nat is not detected. "Y" and "N" are still
 | |
|    returned if auto_force_rport is not enabled.
 | |
| 
 | |
|  * Added SIPpeerstatus manager command which will generate PeerStatus events
 | |
|    similar to the existing PeerStatus events found in chan_sip on demand.
 | |
| 
 | |
|  * Hangup now can take a regular expression as the Channel option.  If you want
 | |
|    to hangup multiple channels, use /regex/ as the Channel option.  Existing
 | |
|    behavior to hanging up a single channel is unchanged, but if you pass a regex,
 | |
|    the manager will send you a list of channels back that were hung up.
 | |
| 
 | |
|  * Support for IPv6 addresses has been added.
 | |
| 
 | |
|  * AMI Events can now be documented in the Asterisk source. Note that AMI event
 | |
|    documentation is only generated when Asterisk is compiled using 'make full'.
 | |
|    See the CLI section for commands to display AMI event information.
 | |
| 
 | |
|  * The AMI Hangup event now includes the AccountCode header so you can easily
 | |
|    correlate with AMI Newchannel events.
 | |
| 
 | |
|  * The QueueMemberStatus, QueueMemberAdded, and QueueMember events now include
 | |
|    the StateInterface of the queue member.
 | |
| 
 | |
|  * Added AMI event SessionTimeout in the Call category that is issued when a
 | |
|    call is terminated due to either RTP stream inactivity or SIP session timer
 | |
|    expiration.
 | |
| 
 | |
|  * CEL events can now contain a user defined header UserDefType.  See core
 | |
|    changes for more information.
 | |
| 
 | |
|  * OOH323 ChannelUpdate events now contain a CallRef header.
 | |
| 
 | |
|  * Added PresenceState command.  This command will report the presence state for
 | |
|    the given presence provider.
 | |
| 
 | |
|  * Added Parkinglots command.  This will list all parking lots as a series of
 | |
|    AMI Parkinglot events.
 | |
| 
 | |
|  * Added MessageSend command.  This behaves in the same manner as the
 | |
|    MessageSend application, and is a technolgoy agnostic mechanism to send out
 | |
|    of call text messages.
 | |
| 
 | |
|  * Added "message" class authorization.  This grants an account permission to
 | |
|    send out of call messages.  Write-only.
 | |
| 
 | |
| 
 | |
| CLI
 | |
| -------------------
 | |
|  * The "dialplan add include" command has been modified to create context a context
 | |
|    if one does not already exist. For instance, "dialplan add include foo into bar"
 | |
|    will create context "bar" if it does not already exist.
 | |
| 
 | |
|  * A  "dialplan remove context" command has been added to remove a context from
 | |
|    the dialplan
 | |
| 
 | |
|  * The "mixmonitor list <channel>" command will now show MixMonitor ID, and the
 | |
|    filenames of all running mixmonitors on a channel.
 | |
| 
 | |
|  * The debug level of "pri set debug" is now a bitmask ranging from 0 to 15 if
 | |
|    numeric instead of 0, 1, or 2.
 | |
| 
 | |
|  * "stun show status" will show a table describing how the STUN client is
 | |
|    behaving.
 | |
| 
 | |
|  * "acl show [named acl]" will show information regarding a Named ACL.  The
 | |
|    acl module can be reloaded with "reload acl".
 | |
| 
 | |
|  * Added CLI command to display AMI event information - "manager show events",
 | |
|    which shows a list of all known and documented AMI events, and "manager show
 | |
|    event [event name]", which shows detail information about a specific AMI
 | |
|    event.
 | |
| 
 | |
|  * The result of the CLI command "queue show" now includes the state interface
 | |
|    information of the queue member.
 | |
| 
 | |
|  * The command "core set verbose" will now set a separate level of logging for
 | |
|    each remote console without affecting any other console.
 | |
| 
 | |
|  * Added command "cdr show pgsql status" to check connection status
 | |
| 
 | |
|  * "sip show channel" will now display the complete route set.
 | |
| 
 | |
|  * Added "presencestate list" command.  This command will list all custom
 | |
|    presence states that have been set by using the PRESENCE_STATE dialplan
 | |
|    function.
 | |
| 
 | |
|  * Added "presencestate change <entity> <state>[,<subtype>[,message[,options]]]"
 | |
|    command.  This changes a custom presence to a new state.
 | |
| 
 | |
| 
 | |
| Codecs
 | |
| -------------------
 | |
|  * Codec lists may now be modified by the '!' character, to allow succinct
 | |
|    specification of a list of codecs allowed and disallowed, without the
 | |
|    requirement to use two different keywords.  For example, to specify all
 | |
|    codecs except g729 and g723, one need only specify allow=all,!g729,!g723.
 | |
| 
 | |
|  * Add support for parsing SDP attributes, generating SDP attributes, and
 | |
|    passing it through. This support includes codecs such as H.263, H.264, SILK,
 | |
|    and CELT. You are able to set up a call and have attribute information pass.
 | |
|    This should help considerably with video calls.
 | |
| 
 | |
|  * The iLBC codec can now use a system-provided iLBC library if one is installed,
 | |
|    just like the GSM codec.
 | |
| 
 | |
| DUNDi changes
 | |
| -------------
 | |
|  * Added CLI commands dundi show hints and dundi show cache which will list DUNDi
 | |
|    'DONTASK' hints in the cache and list all DUNDi cache entires respectively.
 | |
| 
 | |
| Logging
 | |
| -------------------
 | |
|  * Asterisk version and build information is now logged at the beginning of a
 | |
|    log file.
 | |
| 
 | |
|  * Threads belonging to a particular call are now linked with callids which get
 | |
|    added to any log messages produced by those threads. Log messages can now be
 | |
|    easily identified as involved with a certain call by looking at their call id.
 | |
|    Call ids may also be attached to log messages for just about any case where
 | |
|    it can be determined to be related to a particular call.
 | |
| 
 | |
|  * Each logging destination and console now have an independent notion of the
 | |
|    current verbosity level.  Logger.conf now allows an optional argument to
 | |
|    the 'verbose' specifier, indicating the level of verbosity sent to that
 | |
|    particular logging destination.  Additionally, remote consoles now each
 | |
|    have their own verbosity level.  The command 'core set verbose' will now set
 | |
|    a separate level for each remote console without affecting any other
 | |
|    console.
 | |
| 
 | |
| 
 | |
| Music On Hold
 | |
| -------------------
 | |
|  * Added 'announcement' option which will play at the start of MOH and between
 | |
|    songs in modes of MOH that can detect transitions between songs (eg.
 | |
|    files, mp3, etc).
 | |
| 
 | |
| 
 | |
| Parking
 | |
| -------------------
 | |
|  * New per parking lot options: comebackcontext and comebackdialtime. See
 | |
|    configs/features.conf.sample for more details.
 | |
| 
 | |
|  * Channel variable PARKER is now set when comebacktoorigin is disabled in
 | |
|    a parking lot.
 | |
| 
 | |
|  * Channel variable PARKEDCALL is now set with the name of the parking lot
 | |
|    when a timeout occurs.
 | |
| 
 | |
| 
 | |
| CDRs
 | |
| -------------------
 | |
| 
 | |
| CDR Postgresql Driver
 | |
| -------------------
 | |
|  * Added command "cdr show pgsql status" to check connection status
 | |
| 
 | |
| 
 | |
| CDR Adaptive ODBC Driver
 | |
| -------------------
 | |
|  * Added schema option for databases that support specifying a schema.
 | |
| 
 | |
| 
 | |
| Resource Modules
 | |
| -------------------
 | |
| 
 | |
| Calendars
 | |
| -------------------
 | |
|  * A CALENDAR_SUCCESS=1/0 channel variable is now set to show whether or not
 | |
|    CALENDAR_WRITE has completed successfully.
 | |
| 
 | |
| 
 | |
| res_rtp_asterisk
 | |
| -------------------
 | |
|  * A new option, 'probation' has been added to rtp.conf
 | |
|    RTP in strictrtp mode can now require more than 1 packet to exit learning
 | |
|    mode with a new source (and by default requires 4). The probation option
 | |
|    allows the user to change the required number of packets in sequence to any
 | |
|    desired value. Use a value of 1 to essentially restore the old behavior.
 | |
|    Also, with strictrtp on, Asterisk will now drop all packets until learning
 | |
|    mode has successfully exited. These changes are based on how pjmedia handles
 | |
|    media sources and source changes.
 | |
| 
 | |
|  * Add support for ICE/STUN/TURN in res_rtp_asterisk.  This option can be
 | |
|    enabled or disabled using the icesupport setting.  A variety of other
 | |
|    settings have been introduced to configure STUN/TURN connections.
 | |
| 
 | |
| 
 | |
| res_corosync
 | |
| -------------------
 | |
|  * A new module, res_corosync, has been introduced.  This module uses the
 | |
|    Corosync cluster enginer (http://www.corosync.org) to allow a local cluster
 | |
|    of Asterisk servers to both Message Waiting Indication (MWI) and/or
 | |
|    Device State (presence) information.  This module is very similar to, and
 | |
|    is a replacement for the res_ais module that was in previous releases of
 | |
|    Asterisk.
 | |
| 
 | |
| 
 | |
| res_xmpp
 | |
| -------------------
 | |
|  * This module adds a cleaned up, drop-in replacement for res_jabber called
 | |
|    res_xmpp. This provides the same externally facing functionality but is
 | |
|    implemented differently internally.  res_jabber has been deprecated in favor
 | |
|    of res_xmpp; please see the UPGRADE.txt file for more information.
 | |
| 
 | |
| 
 | |
| Scripts
 | |
| -------------------
 | |
|  * The safe_asterisk script has been updated to allow several of its parameters
 | |
|    to be set from environment variables.  This also enables a custom run
 | |
|    directory of Asterisk to be specified, instead of defaulting to /tmp.
 | |
| 
 | |
|  * The live_ast script will now look for the LIVE_AST_BASE_DIR variable and use
 | |
|    its value to determine the directory to assume is the top-level directory of
 | |
|    the source tree.  If the variable is not set, it defaults to the current
 | |
|    behavior and uses the current working directory.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 1.8 to Asterisk 10 -------------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| Text Messaging
 | |
| --------------
 | |
|  * Asterisk now has protocol independent support for processing text messages
 | |
|    outside of a call.  Messages are routed through the Asterisk dialplan.
 | |
|    SIP MESSAGE and XMPP are currently supported.  There are options in
 | |
|    jabber.conf and sip.conf to allow enabling these features.
 | |
|      -> jabber.conf: see the "sendtodialplan" and "context" options.
 | |
|      -> sip.conf: see the "accept_outofcall_message", "auth_message_requests"
 | |
|         and "outofcall_message_context" options.
 | |
|    The MESSAGE() dialplan function and MessageSend() application have been
 | |
|    added to go along with this functionality.  More detailed usage information
 | |
|    can be found on the Asterisk wiki (http://wiki.asterisk.org/).
 | |
|  * If real-time text support (T.140) is negotiated, it will be preferred for
 | |
|    sending text via the SendText application. For example, via SIP, messages
 | |
|    that were once sent via the SIP MESSAGE request would be sent via RTP if
 | |
|    T.140 text is negotiated for a call.
 | |
| 
 | |
| Parking
 | |
| -------
 | |
|  * parkedmusicclass can now be set for non-default parking lots.
 | |
| 
 | |
| Asterisk Manager Interface
 | |
| --------------------------
 | |
|  * PeerStatus now includes Address and Port.
 | |
|  * Added Hold events for when the remote party puts the call on and off hold
 | |
|    for chan_dahdi ISDN channels.
 | |
|  * Added new action MeetmeListRooms to list active conferences (shows same
 | |
|    data as "meetme list" at the CLI).
 | |
|  * DAHDIShowChannels, SIPshowpeer, SIPpeers, and IAXpeers now contains a
 | |
|    Description field that is set by 'description' in the channel configuration
 | |
|    file.
 | |
|  * Added Uniqueid header to UserEvent.
 | |
|  * Added new action FilterAdd to control event filters for the current session.
 | |
|    This requires the system permission and uses the same filter syntax as
 | |
|    filters that can be defined in manager.conf
 | |
|  * The Unlink event is now a Bridge event with Bridgestatus: Unlink. Previous
 | |
|    versions had some instances of the event converted, but others were left
 | |
|    as-is. All Unlink events should now be converted to Bridge events. The AMI
 | |
|    protocol version number was incremented to 1.2 as a result of this change.
 | |
| 
 | |
| Asterisk HTTP Server
 | |
| --------------------------
 | |
|  * The HTTP Server can bind to IPv6 addresses.
 | |
| 
 | |
| chan_dahdi
 | |
| --------------------------
 | |
|  * Busy tone patterns featuring 2 silence and 2 tone lengths can now be used
 | |
|    with busydetect.  usage example: busypattern=200,200,200,600
 | |
| 
 | |
| CLI Changes
 | |
| --------------------------
 | |
|  * New 'gtalk show settings' command showing the current settings loaded from
 | |
|    gtalk.conf.
 | |
|  * The 'logger reload' command now supports an optional argument, specifying an
 | |
|    alternate configuration file to use.
 | |
|  * 'dialplan add extension' command will now automatically create a context if
 | |
|    the specified context does not exist with a message indicated it did so.
 | |
|  * 'sip show peers', 'iax show peers', and 'dahdi show peers' now contains a
 | |
|    Description field which can be populated with 'description' in the channel
 | |
|    configuration files (sip.conf, iax2.conf, and chan_dahdi.conf).
 | |
| 
 | |
| CDR
 | |
| --------------------------
 | |
|  * The filter option in cdr_adaptive_odbc now supports negating the argument,
 | |
|    thus allowing records which do NOT match the specified filter.
 | |
|  * Added ability to log CONGESTION calls to CDR
 | |
| 
 | |
| CODECS
 | |
| --------------------------
 | |
|  * Ability to define custom SILK formats in codecs.conf.
 | |
|  * Addition of speex32 audio format with translation.
 | |
|  * CELT codec pass-through support and ability to define
 | |
|    custom CELT formats in codecs.conf.
 | |
|  * Ability to read raw signed linear files with sample rates
 | |
|    ranging from 8khz - 192khz.  The new file extensions introduced
 | |
|    are .sln12, .sln24, .sln32, .sln44, .sln48, .sln96, .sln192.
 | |
|  * Due to protocol limitations, channel drivers other than SIP (eg. IAX2, MGCP,
 | |
|    Skinny, H.323, etc) can still only support the following codecs:
 | |
|    Audio: ulaw, alaw, slin, slin16, g719, g722, g723, g726, g726aal2, g729, gsm,
 | |
|           siren7, siren14, speex, speex16, ilbc, lpc10, adpcm
 | |
|    Video: h261, h263, h263p, h264, mpeg4
 | |
|    Image: jpeg, png
 | |
|    Text:  red, t140
 | |
| 
 | |
| ConfBridge
 | |
| --------------------------
 | |
|  * New highly optimized and customizable ConfBridge application capable of
 | |
|    mixing audio at sample rates ranging from 8khz-96khz.
 | |
|  * CONFBRIDGE dialplan function capable of creating dynamic ConfBridge user
 | |
|    and bridge profiles on a channel.
 | |
|  * CONFBRIDGE_INFO dialplan function capable of retrieving information
 | |
|    about a conference such as locked status and number of parties, admins,
 | |
|    and marked users.
 | |
|  * Addition of video_mode option in confbridge.conf for adding video support
 | |
|    into a bridge profile.
 | |
|  * Addition of the follow_talker video_mode in confbridge.conf.  This video
 | |
|    mode dynamically switches the video feed to always display the loudest talker
 | |
|    supplying video in the conference.
 | |
| 
 | |
| Dialplan Variables
 | |
| ------------------
 | |
|  * Added ASTETCDIR, ASTMODDIR, ASTVARLIBDIR, ASTDBDIR, ASTKEYDIR, ASTDATADIR,
 | |
|    ASTAGIDIR, ASTSPOOLDIR, ASTRUNDIR, ASTLOGDIR which hold the equivalent
 | |
|    variables from asterisk.conf.
 | |
| 
 | |
| Dialplan Functions
 | |
| ------------------
 | |
|  * Addition of the JITTERBUFFER dialplan function. This function allows
 | |
|    for jitterbuffering to occur on the read side of a channel.  By using
 | |
|    this function conference applications such as ConfBridge and MeetMe can
 | |
|    have the rx streams jitterbuffered before conference mixing occurs.
 | |
|  * Added DB_KEYS, which lists the next set of keys in the Asterisk database
 | |
|    hierarchy.
 | |
|  * Added STRREPLACE function.  This function let's the user search a variable
 | |
|    for a given string to replace with another string as many times as the
 | |
|    user specifies or just throughout the whole string.
 | |
|  * Added option to CHANNEL(pickupgroup) allow reading and setting the pickupgroup of channel.
 | |
|  * Mark VALID_EXTEN() deprecated in favor of DIALPLAN_EXISTS()
 | |
|  * Added extensions to chan_ooh323 in function CHANNEL()
 | |
| 
 | |
| libpri channel driver (chan_dahdi) DAHDI changes
 | |
| --------------------------
 | |
|  * Added moh_signaling option to specify what to do when the channel's bridged
 | |
|    peer puts the ISDN channel on hold.
 | |
|  * Added display_send and display_receive options to control how the display ie
 | |
|    is handled.  To send display text from the dialplan use the SendText()
 | |
|    application when the option is enabled.
 | |
|  * Added mcid_send option to allow sending a MCID request on a span.
 | |
| 
 | |
| Calendaring
 | |
| --------------------------
 | |
|  * Added setvar option to calendar.conf to allow setting channel variables on
 | |
|    notification channels.
 | |
|  * Added "calendar show types" CLI command to list registered calendar
 | |
|    connectors.
 | |
| 
 | |
| MixMonitor
 | |
| --------------------------
 | |
|  * Added two new options, r and t with file name arguments to record
 | |
|    single direction (unmixed) audio recording separate from the bidirectional
 | |
|    (mixed) recording.  The mixed file name argument is optional now as long
 | |
|    as at least one recording option is used.
 | |
| 
 | |
| FollowMe
 | |
| --------------------------
 | |
|  * Added a new option, l, which will disable local call optimization for
 | |
|    channels involved with the FollowMe thread.  Use this option to improve
 | |
|    compatability for a FollowMe call with certain dialplan apps, options, and
 | |
|    functions.
 | |
| 
 | |
| Meetme
 | |
| --------------------------
 | |
|  * Added option "k" that will automatically close the conference when there's
 | |
|    only one person left when a user exits the conference.
 | |
| 
 | |
| CEL
 | |
| --------------------------
 | |
|  * cel_pgsql now supports the 'extra' column for data added using the
 | |
|    CELGenUserEvent() application.
 | |
| 
 | |
| pbx_lua
 | |
| --------------------------
 | |
|  * Support for defining hints has been added to pbx_lua.  See the 'hints' table
 | |
|    in the sample extensions.lua file for syntax details.
 | |
|  * Applications that perform jumps in the dialplan such as Goto will now
 | |
|    execute properly.  When pbx_lua detects that the context, extension, or
 | |
|    priority we are executing on has changed it will immediately return control
 | |
|    to the asterisk PBX engine.  Currently the engine cannot detect a Goto to
 | |
|    the priority after the currently executing priority.
 | |
|  * An autoservice is now started by default for pbx_lua channels.  It can be
 | |
|    stopped and restarted using the autoservice_stop() and autoservice_start()
 | |
|    functions.
 | |
| 
 | |
| res_fax
 | |
| --------------------------
 | |
|  * The ReceiveFAXStatus and SendFAXStatus manager events have been consolidated
 | |
|    into a FAXStatus event with an 'Operation' header that will be either
 | |
|    'send', 'receive', and 'gateway'.
 | |
|  * T.38 gateway functionality has been added to res_fax (and res_fax_spandsp).
 | |
|    Set FAXOPT(gateway)=yes to enable this functionality on a channel. This
 | |
|    feature will handle converting a fax call between an audio T.30 fax terminal
 | |
|    and an IFP T.38 fax terminal.
 | |
| 
 | |
| SIP Changes
 | |
| -----------
 | |
|  * Add T38 support for REJECTED state where T.38 Negotiation is explicitly rejected.
 | |
|  * Add option encryption_taglen to set auth taglen only 32 and 80 are supported currently.
 | |
|  * SIP now generates security events using the Security Events Framework for REGISTER and INVITE.
 | |
| 
 | |
| Queue changes
 | |
| -------------
 | |
|  * Added general option negative_penalty_invalid default off. when set
 | |
|    members are seen as invalid/logged out when there penalty is negative.
 | |
|    for realtime members when set remove from queue will set penalty to -1.
 | |
|  * Added queue option autopausedelay when autopause is enabled it will be
 | |
|    delayed for this number of seconds since last successful call if there
 | |
|    was no prior call the agent will be autopaused immediately.
 | |
|  * Added member option ignorebusy this when set and ringinuse is not
 | |
|    will allow per member control of multiple calls as ringinuse does for
 | |
|    the Queue.
 | |
| 
 | |
| Applications
 | |
| ------------
 | |
|  * Added 'v' option to MeetMe to play voicemail greetings when a user joins/leaves
 | |
|    a MeetMe conference
 | |
|  * Added 'k' option to MeetMe to automatically kill the conference when there's only
 | |
|    one participant left (much like a normal call bridge)
 | |
|  * Added extra argument to Originate to set timeout.
 | |
| 
 | |
| Asterisk Database
 | |
| -----------------
 | |
|  * The internal Asterisk database has been switched from Berkeley DB 1.86 to
 | |
|    SQLite 3. An existing Berkeley astdb file can be converted with the astdb2sqlite3
 | |
|    utility in the UTILS section of menuselect. If an existing astdb is found and no
 | |
|    astdb.sqlite3 exists, astdb2sqlite3 will be compiled automatically. Asterisk will
 | |
|    convert an existing astdb to the SQLite3 version automatically at runtime.
 | |
| 
 | |
| Asterisk Modules
 | |
| ----------------
 | |
|  * Modules marked as deprecated are no longer marked as building by default. Enabling
 | |
|    these modules is still available via menuselect.
 | |
| 
 | |
| IAX2 Changes
 | |
| ------------
 | |
|  * authdebug is now disabled by default. To enable this functionaility again
 | |
|    set authdebug = yes in iax.conf.
 | |
| 
 | |
| RTP Changes
 | |
| -----------
 | |
|  * The rtp.conf setting "strictrtp" is now enabled by default. In previous
 | |
|    releases it was disabled.
 | |
| 
 | |
| PBX Core
 | |
| --------
 | |
|  * The PBX core previously made a call with a non-existing extension test for
 | |
|    extension s@default and jump there if the extension existed.
 | |
|    This was a bad default behaviour and violated the principle of least surprise.
 | |
|    It has therefore been changed in this release. It may affect some
 | |
|    applications and configurations that rely on this behaviour. Most channel
 | |
|    drivers have avoided this for many releases by testing whether the extension
 | |
|    called exists before starting the PBX and generating a local error.
 | |
|    This behaviour still exists and works as before.
 | |
| 
 | |
|    Extension "s" is used when no extension is given in a channel driver,
 | |
|    like immediate answer in DAHDI or calling to a domain with no user part
 | |
|    in a SIP uri.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| SIP Changes
 | |
| -----------
 | |
|  * Due to potential username discovery vulnerabilities, the 'nat' setting in sip.conf
 | |
|    now defaults to force_rport. It is very important that phones requiring nat=no be
 | |
|    specifically set as such instead of relying on the default setting. If at all
 | |
|    possible, all devices should have nat settings configured in the general section as
 | |
|    opposed to configuring nat per-device.
 | |
|  * 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.
 | |
|  * 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. This carries a
 | |
|    performance penalty and can be disabled in sip.conf using the
 | |
|    'storesipcause' option.
 | |
|  * 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.
 | |
|  * 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.
 | |
|  * 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.
 | |
|  * When dialing SIP peers, a new component may be added to the end of the dialstring
 | |
|    to indicate that a specific remote IP address or host should be used when dialing
 | |
|    the particular peer. The dialstring format is SIP/peer/exten/host_or_IP.
 | |
|  * SRTP SDES support for encrypting calls to/from Asterisk over SIP. The
 | |
|    ability to selectively force bridged channels to also be encrypted is also
 | |
|    implemented. Branching in the dialplan can be done based on whether or not
 | |
|    a channel has secure media and/or signaling.
 | |
|  * Added directmediapermit/directmediadeny to limit which peers can send direct media
 | |
|    to each other
 | |
|  * Added the 'snom_aoc_enabled' option to turn on support for sending Advice of
 | |
|    Charge messages to snom phones.
 | |
|  * Added support for G.719 media streams.
 | |
|  * Added support for 16khz signed linear media streams.
 | |
|  * SIP is now able to bind to and communicate with IPv6 addresses. In addition,
 | |
|    RTP has been outfitted with the same abilities.
 | |
|  * Added support for setting the Max-Forwards: header in SIP requests. Setting is
 | |
|    available in device configurations as well as in the dial plan.
 | |
|  * Addition of the 'subscribe_network_change' option for turning on and off
 | |
|    res_stun_monitor module support in chan_sip.
 | |
|  * Addition of the 'auth_options_requests' option for turning on and off
 | |
|    authentication for OPTIONS requests in chan_sip.
 | |
| 
 | |
| Configuration files
 | |
| -------------------
 | |
|  * Add #tryinclude statement for config files.  This provides the same
 | |
|    functionality as the #include statement however an asterisk module will
 | |
|    still load if the filename does not exist.  Using the #include statement
 | |
|    Asterisk will not allow the module to load.
 | |
| 
 | |
| IAX2 Changes
 | |
| -----------
 | |
|  * Added rtsavesysname option into iax.conf to allow the systname to be saved
 | |
|    on realtime updates.
 | |
|  * Added the ability for chan_iax2 to inform the dialplan whether or not
 | |
|    encryption is being used. This interoperates with the SIP SRTP implementation
 | |
|    so that a secure SIP call can be bridged to a secure IAX call when the
 | |
|    dialplan requires bridged channels to be "secure".
 | |
|  * Addition of the 'subscribe_network_change' option for turning on and off
 | |
|    res_stun_monitor module support in chan_iax.
 | |
| 
 | |
| 
 | |
| 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.
 | |
| 
 | |
| XMPP Google Talk/Jingle changes
 | |
| -------------------------------
 | |
|   * Added the externip option to gtalk.conf.
 | |
|   * Added the stunaddr option to gtalk.conf which allows for the automatic
 | |
|     retrieval of the external ip from a stun server.
 | |
| 
 | |
| Applications
 | |
| ------------
 | |
|  * Added 'p' option to PickupChan() to allow for picking up channel by the first
 | |
|    match to a partial channel name.
 | |
|  * Added .m3u support for Mp3Player application.
 | |
|  * 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
 | |
|  * 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.
 | |
|  * If you set maxmsg to 0 in voicemail.conf, Voicemail will consider the
 | |
|    associated mailbox(es) to be greetings-only.
 | |
|  * 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.
 | |
|  * 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).
 | |
|  * 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.
 | |
|  * The ChanIsAvail application now exposes the returned cause code using a separate
 | |
|    variable, AVAILCAUSECODE, instead of overwriting the device state in AVAILSTATUS.
 | |
|  * Added 'd' option to app_followme.  This option disables the "Please hold"
 | |
|    announcement.
 | |
|  * Added 'y' option to app_record. This option enables a mode where any DTMF digit
 | |
|    received will terminate recording.
 | |
|  * 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.
 | |
|  * New applications JabberJoin, JabberLeave, and JabberSendGroup have been added
 | |
|    to allow joining, leaving, and sending text to group chats.
 | |
|  * MeetMe has a new option 'G' to play an announcement before joining a conference.
 | |
|  * 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.
 | |
|  * 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.
 | |
|  * The OSP lookup application adds in/outbound network ID, optional security,
 | |
|    number portability, QoS reporting, destination IP port, custom info and service
 | |
|    type features.
 | |
|  * Added new application VMSayName that will play the recorded name of the voicemail
 | |
|    user if it exists, otherwise will play the mailbox number.
 | |
|  * Added custom device states to ConfBridge bridges.  Use 'confbridge:<name>' to
 | |
|    retrieve state for a particular bridge, where <name> is the conference name
 | |
|  * app_directory now allows exiting at any time using the operator or pound key.
 | |
|  * 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.
 | |
|  * ExternalIVR now supports IPv6 addresses.
 | |
|  * Added 'D' command to ExternalIVR. Details are available on the Asterisk wiki
 | |
|    at https://wiki.asterisk.org/wiki/x/oQBB
 | |
|  * ParkedCall and Park can now specify the parking lot to use.
 | |
| 
 | |
| Dialplan Functions
 | |
| ------------------
 | |
|  * 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.
 | |
|  * PITCH_SHIFT dialplan function added. This function can be used to modify the
 | |
|    pitch of a channel's tx and rx audio streams.
 | |
|  * 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.
 | |
|  * 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)
 | |
|  * 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().
 | |
|  * Added JABBER_RECEIVE, which permits receiving XMPP messages from the
 | |
|    dialplan. This function returns the content of the received message.
 | |
|  * Added REPLACE, which searches a given variable name for a set of characters,
 | |
|    then either replaces them with a single character or deletes them.
 | |
|  * 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.
 | |
|  * HASH-associated variables now can be inherited across channel creation, by
 | |
|    prefixing the name of the hash at assignment with the appropriate number of
 | |
|    underscores, just like variables.
 | |
|  * GROUP_MATCH_COUNT has been improved to allow regex matching on category
 | |
|  * 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.
 | |
|  * Added option to dialplan function CDR(), the 'f' option
 | |
|    allows for high resolution times for billsec and duration fields.
 | |
|  * FILE() now supports line-mode and writing.
 | |
|  * Added FIELDNUM(), which returns the 1-based offset of a field in a list.
 | |
|  * FRAME_TRACE(), for tracking internal ast_frames on a channel.
 | |
| 
 | |
| 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.
 | |
|  * 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.
 | |
|  * Added PARKINGDYNAMIC which represents the template parkinglot defined in
 | |
|    features.conf that should be the base for dynamic parkinglots.
 | |
|  * Added PARKINGDYNCONTEXT which tells what context a newly created dynamic
 | |
|    parkinglot should have.
 | |
|  * Added PARKINGDYNEXTEN which tells what parking exten a newly created dynamic
 | |
|    parkinglot should have.
 | |
|  * Added PARKINGDYNPOS which holds what parking positions a dynamic parkinglot
 | |
|    should have.
 | |
| 
 | |
| Queue changes
 | |
| -------------
 | |
|  * 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-periodic-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.
 | |
| 
 | |
| 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.
 | |
|  * 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.
 | |
|  * 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.
 | |
| 
 | |
| 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
 | |
| 
 | |
| 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.
 | |
|  * Added the ability to ignore calls that are not in a Multiple Subscriber
 | |
|    Number (MSN) list for PTMP CPE interfaces.
 | |
|  * Added dynamic range compression support for dahdi channels.  It is
 | |
|    configured via the rxdrc and txdrc parameters in chan_dahdi.conf.
 | |
|  * Added support for ISDN calling and called subaddress with partial support
 | |
|    for connected line subaddress.
 | |
|  * 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)
 | |
|  * 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>))
 | |
|    Access any received keypad digits in SETUP message by: ${CHANNEL(keypad_digits)}
 | |
|    (requires latest LibPRI)
 | |
|  * Added ability to send and receive ETSI Explicit Call Transfer (ECT) messages
 | |
|    to eliminate tromboned calls.  A tromboned call goes out an interface and comes
 | |
|    back into the same interface.  Tromboned calls happen because of call routing,
 | |
|    call deflection, call forwarding, and call transfer.
 | |
|  * Added the ability to send and receive ETSI Advice-Of-Charge messages.
 | |
|  * Added the ability to support call waiting calls.  (The SETUP has no B channel
 | |
|    assigned.)
 | |
|  * Added Malicious Call ID (MCID) event to the AMI call event class.
 | |
|  * Added Message Waiting Indication (MWI) support for ISDN PTMP endpoints (phones).
 | |
| 
 | |
| 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)
 | |
|  * 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.
 | |
|  * Added ConnectedLineNum and ConnectedLineName headers to AMI events/responses
 | |
|    if CallerIDNum and CallerIDName headers are also present.
 | |
| 
 | |
| 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 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.
 | |
| 
 | |
| 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 (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).
 | |
| 
 | |
| Call Completion Supplementary Services for Asterisk
 | |
| ---------------------------------------------------
 | |
|  * Call completion support has been added for SIP, DAHDI/ISDN, and DAHDI/analog.
 | |
|    DAHDI/ISDN supports call completion for the following switch types:
 | |
|    EuroIsdn(ETSI) for PTP and PTMP modes, and Qsig.
 | |
|    See https://wiki.asterisk.org/wiki/x/2ABQ for details.
 | |
| 
 | |
| 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
 | |
|    "Asterisk Security Framework" section of the Asterisk wiki at
 | |
|    https://wiki.asterisk.org/wiki/x/wgBQ
 | |
|  * SIP support was added in Asterisk 10
 | |
|  * This API now supports IPv6 addresses
 | |
| 
 | |
| Fax
 | |
| ---
 | |
|  * 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.
 | |
| 
 | |
| Miscellaneous
 | |
| -------------
 | |
|  * The transmit_silence_during_record option in asterisk.conf.sample has been removed.
 | |
|    Now, in order to enable transmitting silence during record the transmit_silence
 | |
|    option should be used.  transmit_silence_during_record remains a valid option, but
 | |
|    defaults to the behavior of the transmit_silence option.
 | |
|  * Addition of the Unit Test Framework API for managing registration and execution
 | |
|    of unit tests with the purpose of verifying the operation of C functions.
 | |
|  * SendText is now implemented in chan_gtalk and chan_jingle. It will simply send
 | |
|    XMPP text messages to the remote JID.
 | |
|  * Modules.conf has a new option - "require" - that marks a module as critical for
 | |
|    the execution of Asterisk.
 | |
|    If one of the required modules fail to load, Asterisk will exit with a return
 | |
|    code set to 2.
 | |
|  * An 'X' option has been added to the asterisk application which enables #exec support.
 | |
|    This allows #exec to be used in asterisk.conf.
 | |
|  * jabber.conf supports a new option auth_policy that toggles auto user registration.
 | |
|  * A new lockconfdir option has been added to asterisk.conf to protect the
 | |
|    configuration directory (/etc/asterisk by default) during reloads.
 | |
|  * The parkeddynamic option has been added to features.conf to enable the creation
 | |
|    of dynamic parkinglots.
 | |
|  * chan_dahdi now supports reporting alarms over AMI either by channel or span via
 | |
|    the reportalarms config option.
 | |
|  * chan_dahdi supports dialing configuring and dialing by device file name.
 | |
|    DAHDI/span-name!local!1 will use /dev/dahdi/span-name/local/1 . Likewise
 | |
|    it may appear in chan_dahdi.conf as 'channel => span-name!local!1'.
 | |
|  * A new options for chan_dahdi.conf: 'ignore_failed_channels'. Boolean.
 | |
|    False by default. If set, chan_dahdi will ignore failed 'channel' entries.
 | |
|    Handy for the above name-based syntax as it does not depend on
 | |
|    initialization order.
 | |
|  * The Realtime dialplan switch now caches entries for 1 second.  This provides a
 | |
|    significant increase in performance (about 3X) for installations using this switchtype.
 | |
|  * Distributed devicestate now supports the use of the XMPP protocol, in addition to
 | |
|    AIS.  For more information, please see the Distributed Device State section of the
 | |
|    Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
 | |
|  * The addition of G.719 pass-through support.
 | |
|  * Added support for 16khz Speex audio.  This can be enabled by using 'allow=speex16'
 | |
|    during device configuration.
 | |
|  * The UNISTIM channel driver (chan_unistim) has been updated to support devices that
 | |
|    have less than 3 lines on the LCD.
 | |
|  * Realtime now supports database failover.  See the sample extconfig.conf for details.
 | |
|  * The addition of improved translation path building for wideband codecs.  Sample
 | |
|    rate changes during translation are now avoided unless absolutely necessary.
 | |
|  * The addition of the res_stun_monitor module for monitoring and reacting to network
 | |
|    changes while behind a NAT.
 | |
|  * DTMF: Normal and Reverse Twist acceptance values can be set in dsp.conf.
 | |
|    DTMF Valid/Invalid number of hits/misses can be set in dsp.conf.
 | |
|    These allow support for any Administration. Default is AT&T values.
 | |
| 
 | |
| CLI Changes
 | |
| -----------
 | |
|  * The 'core set debug' and 'core set verbose' commands, in previous versions, could
 | |
|    optionally accept a filename, to apply the setting only to the code generated from
 | |
|    that source file when Asterisk was built. However, there are some modules in Asterisk
 | |
|    that are composed of multiple source files, so this did not result in the behavior
 | |
|    that users expected. In this version, 'core set debug' and 'core set verbose'
 | |
|    can optionally accept *module* names instead (with or without the .so extension),
 | |
|    which applies the setting to the entire module specified, regardless of which source
 | |
|    files it was built from.
 | |
|  * New 'manager show settings' command showing the current settings loaded from
 | |
|    manager.conf.
 | |
|  * Added 'all' keyword to the CLI command "channel request hangup" so that you can send
 | |
|    the channel hangup request to all channels.
 | |
|  * Added a "core reload" CLI command that executes a global reload of Asterisk.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- 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 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.
 | |
|  * 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.
 | |
|  * 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
 | |
|    is disabled by default.
 | |
|  * 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
 | |
|  * 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.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| DAHDI Changes
 | |
| -------------
 | |
|  * chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
 | |
|    support for LibOpenR2.  http://www.libopenr2.org/
 | |
|  * 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.
 | |
| 
 | |
| Dialplan Functions
 | |
| ------------------
 | |
|  * 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.
 | |
|  * 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'.
 | |
|  * func_odbc now may specify an insert query to execute, when the write query
 | |
|    affects 0 rows (usually indicating that no such row exists).
 | |
|  * 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 allows access to variables in any stack frame within
 | |
|    a subroutine when using the GoSub() and Return() applications.
 | |
|  * 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
 | |
| ------------
 | |
|  * 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.
 | |
|  * 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.
 | |
|  * 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()
 | |
|  * 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.
 | |
|  * The realtime switch now supports an option flag, 'p', which disables searches for
 | |
|    pattern matches.
 | |
|  * In addition to a time range and date range, timespecs now accept a 5th optional
 | |
|    argument, timezone.  This allows you to perform time checks on alternate
 | |
|    timezones, especially if those daylight savings time ranges vary from your
 | |
|    machine's native timezone.  See GotoIfTime, ExecIfTime, IFTIME(), and timed
 | |
|    includes.
 | |
|  * The contrib/scripts/ directory now has a script called sip_nat_settings that will
 | |
|    give you the correct output for an asterisk box behind nat. It will give you the
 | |
|    externhost and localnet settings.
 | |
|  * The Asterisk core now supports ITU G.722.1 and G.722.1C media streams, and
 | |
|    can connect calls in passthrough mode, as well as record and play back files.
 | |
|  * Successful and unsuccessful call pickup can now be alerted through sounds, by
 | |
|    using pickupsound and pickupfailsound in features.conf.
 | |
|  * ASTVARRUNDIR is now set to $(localstatedir)/run/asterisk by default.
 | |
|    This means the asterisk pid file will now be in /var/run/asterisk/asterisk.pid on LINUX
 | |
|    instead of the /var/run/asterisk.pid where it used to be. This will make
 | |
|    installs as non-root easier to manage.
 | |
| 
 | |
| CDR
 | |
| ---
 | |
| 
 | |
| * The cdr.conf file must exist and be correctly programmed in order for CDR records to
 | |
|   be written; they will no longer be explicitly written.
 | |
| 
 | |
| 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
 | |
| 
 | |
| LDAP Schema File Additions
 | |
| --------------------------
 | |
|  * Added AsteriskDialplan, AsteriskAccount and AsteriskMailbox  objectClasses
 | |
|    to allow standalone dialplan, account and mailbox entries (STRUCTURAL)
 | |
|  * Added new Fields:
 | |
|    - AstAccountLanguage, AstAccountTransport, AstAccountPromiscRedir,
 | |
|    - AstAccountAccountCode, AstAccountSetVar, AstAccountAllowOverlap,
 | |
|    - AstAccountVideoSupport, AstAccountIgnoreSDPVersion
 | |
|  * Removed redundant IPaddr (there's already IPAddress)
 | |
|    - Gives more configuration Flags for SIP-Users available (tested)
 | |
|    - Allows to create Asterisk Attributes in defined Asterisk ObjectClasses
 | |
|      without extensibleObject (which really should be the last resort); gives
 | |
|      also additional possibilities for LDAP-filter
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- 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, refer to the Distributed Device State section
 | |
|    of the Asterisk wiki at https://wiki.asterisk.org/wiki/x/jw4iAQ
 | |
| 
 | |
| Dialplan Functions
 | |
| ------------------
 | |
|  * Added a new dialplan function, AST_CONFIG(), which allows you to access
 | |
|    variables from an Asterisk configuration file.
 | |
|  * 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
 | |
| ----------------------------------------
 | |
|  * Channels can now be configured using named sections in chan_dahdi.conf, just
 | |
|    like other channel drivers, including the use of templates.
 | |
|  * The default for pridialplan has changed from 'national' to 'unknown'.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 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.
 | |
|  * 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.
 | |
|  * 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.
 | |
|  * 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 the External IVR page on the Asterisk
 | |
|    wiki for complete documentation: https://wiki.asterisk.org/wiki/x/oQBB
 | |
|  * 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.
 | |
|  * 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.
 | |
| 
 | |
| 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.
 | |
|  * Added ability to specify registration expiry time on a per registration basis in
 | |
|    the register line.
 | |
|  * 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.
 | |
|  * '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.
 | |
|  * 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.
 | |
| 
 | |
| CLI Changes
 | |
| -----------
 | |
|   * New CLI command, "data get <path> [<search> [<filter>]]" which retrieves the
 | |
|      data tree based on the given <path>.
 | |
|   * New CLI command "data show providers" that will display all the registered
 | |
|      callbacks.
 | |
|   * 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.
 | |
|   * 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.
 | |
|   * 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.
 | |
| 
 | |
| 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
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 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 the
 | |
|     Hoard page on the Asterisk wiki for more information:
 | |
|     https://wiki.asterisk.org/wiki/x/pQBB
 | |
|   * 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.
 | |
| 
 | |
| ------------------------------------------------------------------------------
 | |
| --- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0  -------------
 | |
| ------------------------------------------------------------------------------
 | |
| 
 | |
| AMI - The manager (TCP/TLS/HTTP)
 | |
| --------------------------------
 | |
|   * Manager has undergone a lot of changes, all of them documented
 | |
|     on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/tQBB
 | |
|   * 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 https://wiki.asterisk.org/wiki/x/uABB for more details
 | |
|     or manager show command Atxfer from the CLI
 | |
|   * New command: IAXregistry. See https://wiki.asterisk.org/wiki/x/uABB for more
 | |
|     details or manager show command IAXregistry from the CLI
 | |
| 
 | |
| Dialplan functions
 | |
| ------------------
 | |
|   * 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.
 | |
|   * 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
 | |
|      as "missed" when dial times out and cancels.
 | |
|   * 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.
 | |
|   * 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.
 | |
|   * 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.
 | |
| 
 | |
| 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>)
 | |
|   * 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.
 | |
|   * New CLI commands "dialplan set extenpatternmatching true/false"
 | |
|   * New CLI command: "core set chanvar" to set a channel variable from the CLI.
 | |
|   * Added an easy way to execute Asterisk CLI commands at startup.  Any commands
 | |
|     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)
 | |
| 
 | |
| SIP changes
 | |
| -----------
 | |
|  * Added a new 'faxdetect=yes|no' configuration option to sip.conf.  When this
 | |
|     option is enabled, Asterisk will watch for a CNG tone in the incoming audio
 | |
|     for a received call.  If it is detected, the channel will jump to the
 | |
|     'fax' extension in the dialplan.
 | |
|   * 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.
 | |
|   * 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.
 | |
|   * 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.
 | |
|   * Added rtpdest option to CHANNEL() dialplan function.
 | |
|   * 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
 | |
|      states it is not needed. For phones, however, that do require it the "registertrying" option
 | |
|      has been added so it can be enabled.
 | |
|   * A new option called "callcounter" (global/peer/user level) enables call counters needed
 | |
|      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
 | |
|      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
 | |
|      SIP uri.
 | |
|   * 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 https://wiki.asterisk.org/wiki/x/ygBB
 | |
|      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.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| DAHDI channel driver (chan_dahdi) Changes
 | |
| ----------------------------------------
 | |
|   * SS7 support (via libss7 library)
 | |
|   * In India, some carriers transmit CID via dtmf. Some code has been added
 | |
|      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
 | |
|      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
 | |
|      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
 | |
|      state for a channel; also ensured that the DNDState Manager event is
 | |
|      emitted no matter how the DND state is set or cleared.
 | |
| 
 | |
| New Channel Drivers
 | |
| -------------------
 | |
|   * Added a new channel driver, chan_unistim.  See the Asterisk wiki at
 | |
|      https://wiki.asterisk.org/wiki/x/vgsiAQ and configs/unistim.conf.sample
 | |
|      for details.  This new channel driver allows you to use Nortel i2002,
 | |
|      i2004, and i2050 phones with Asterisk.
 | |
|   * 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.
 | |
| 
 | |
| DUNDi changes
 | |
| -------------
 | |
|   * Added the ability to specify arguments to the Dial application when using
 | |
|      the DUNDi switch in the dialplan.
 | |
|   * Added the ability to set weights for responses dynamically.  This can be
 | |
|      done using a global variable or a dialplan function.  Using the SHELL()
 | |
|      function would allow you to have an external script set the weight for
 | |
|      each response.
 | |
|   * Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT.  These
 | |
|      functions will allow you to initiate a DUNDi query from the dialplan,
 | |
|      find out how many results there are, and access each one.
 | |
|   * Added the ability to specifiy a port for a dundi peer.
 | |
| 
 | |
| ENUM changes
 | |
| ------------
 | |
|   * Added two new dialplan functions, ENUMQUERY and ENUMRESULT.  These
 | |
|      functions will allow you to initiate an ENUM lookup from the dialplan,
 | |
|      and Asterisk will cache the results.  ENUMRESULT can be used to access
 | |
|      the results without doing multiple DNS queries.
 | |
| 
 | |
| Voicemail Changes
 | |
| -----------------
 | |
|   * Added the ability to customize which sound files are used for some of the
 | |
|      prompts within the Voicemail application by changing them in voicemail.conf
 | |
|   * Added the ability for the "voicemail show users" CLI command to show users
 | |
|      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
 | |
| 
 | |
| Queue changes
 | |
| -------------
 | |
|   * 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.
 | |
|   * Added new CLI and Manager commands relating to reloading queues. From the CLI, see
 | |
|     "queue reload", "queue reset stats". Also see "manager show command QueueReload" and
 | |
|     "manager show command QueueReset."
 | |
|   * New configuration option: randomperiodicannounce. If a list of periodic announcements is
 | |
|     specified by the periodic-announce option, then one will be chosen randomly when it is time
 | |
|     to play a periodic announcment
 | |
|   * New configuration options: announce-position now takes two more values in addition to "yes" and
 | |
|     "no." Two new options, "limit" and "more," are allowed. These are tied to another option,
 | |
|     announce-position-limit. By setting announce-position to "limit" callers will only have their
 | |
|     position announced if their position is less than what is specified by announce-position-limit.
 | |
|     If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
 | |
|     will be told that their are more than announce-position-limit callers waiting.
 | |
|   * Two new queue log events have been added. An ADDMEMBER event will be logged
 | |
|     when a realtime queue member is added and a REMOVEMEMBER event will be logged
 | |
|     when a realtime queue member is removed. Since there is no calling channel associated
 | |
|     with these events, the string "REALTIME" is placed where the channel's unique id
 | |
|     is typically placed.
 | |
|   * The configuration method for the "joinempty" and "leavewhenempty" options has
 | |
|     changed to a comma-separated list of methods of determining member availability
 | |
|     instead of vague terms such as "yes," "loose," "no," and "strict." These old four
 | |
|     values are still accepted for backwards-compatibility, though.
 | |
|   * The average talktime is now calculated on queues. This information is reported via the
 | |
|     CLI commands "queue show" and "queues show"; through the AMI events AgentComplete, QueueSummary,
 | |
|     and QueueParams; and through the channelvariable QUEUETALKTIME if setinterfacevar=yes is set for
 | |
|     the queue.
 | |
| 
 | |
| MeetMe Changes
 | |
| --------------
 | |
|   * 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.
 | |
|   * Added new admin features: *81: Roll call, *82: eject all, *83: mute all,
 | |
|      and *84: record in-conf
 | |
| 
 | |
| Other Dialplan Application Changes
 | |
| ----------------------------------
 | |
|   * Argument support for Gosub application
 | |
|   * From the to-do lists: straighten out the app timeout args:
 | |
|      Wait() app now really does 0.3 seconds- was truncating arg to an int.
 | |
|      WaitExten() same as Wait().
 | |
|      Congestion() - Now takes floating pt. argument.
 | |
|      Busy() - now takes floating pt. argument.
 | |
|      Read() - timeout now can be floating pt.
 | |
|      WaitForRing() now takes floating pt timeout arg.
 | |
|      SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
 | |
|   * Added 's' option to Page application.
 | |
|   * Added an optional timeout argument to the Page application.
 | |
|   * Added 'E', 'V', and 'P' commands to ExternalIVR.
 | |
|   * Added 'o' and 'X' options to Chanspy.
 | |
|   * Added a new dialplan application, Bridge, which allows you to bridge the
 | |
|      calling channel to any other active channel on the system.
 | |
|   * Added the ability to specify a music on hold class to play instead of ringing
 | |
|      for the SLATrunk application.
 | |
|   * The Read application no longer exits the dialplan on error.  Instead, it sets
 | |
|      READSTATUS to ERROR, which you can catch and handle separately.
 | |
|   * Added 'm' option to Directory, which lists out names, 8 at a time, instead
 | |
|      of asking for verification of each name, one at a time.
 | |
|   * Privacy() no longer uses privacy.conf, as all options are specifyable as
 | |
|      direct options to the app.
 | |
|   * AMD() has a new "maximum word length" option. "show application AMD" from the CLI
 | |
|      for more details
 | |
|   * GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
 | |
|   * The ChannelRedirect application no longer exits the dialplan if the given channel
 | |
|      does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
 | |
|      or NOCHANNEL if the given channel was not found.
 | |
|   * The silencethreshold setting that was previously configurable in multiple
 | |
|      applications is now settable globally via dsp.conf.
 | |
| 
 | |
| Music On Hold Changes
 | |
| ---------------------
 | |
|   * A new option, "digit", has been added for music on hold classes in
 | |
|      musiconhold.conf.  If this is set for a music on hold class, a caller
 | |
|      listening to music on hold can press this digit to switch to listening
 | |
|      to this music on hold class.
 | |
|   * 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.
 | |
| 
 | |
| AEL Changes
 | |
| -----------
 | |
|   * AEL upgraded to use the Gosub with Arguments instead
 | |
|      of Macro application, to hopefully reduce the problems
 | |
|      seen with the artificially low stack ceiling that
 | |
|      Macro bumps into. Macros can only call other Macros
 | |
|      to a depth of 7. Tests run using gosub, show depths
 | |
|      limited only by virtual memory. A small test demonstrated
 | |
|      recursive call depths of 100,000 without problems.
 | |
|      -- in addition to this, all apps that allowed a macro
 | |
|      to be called, as in Dial, queues, etc, are now allowing
 | |
|      a gosub call in similar fashion.
 | |
|   * AEL now generates LOCAL(argname) declarations when it
 | |
|      Set()'s the each arg name to the value of ${ARG1}, ${ARG2),
 | |
|      etc. That makes the arguments local in scope. The user
 | |
|      can define their own local variables in macros, now,
 | |
|      by saying "local myvar=someval;"  or using Set() in this
 | |
|      fashion:  Set(LOCAL(myvar)=someval);  ("local" is now
 | |
|      an AEL keyword).
 | |
|   * utils/conf2ael introduced. Will convert an extensions.conf
 | |
|      file into extensions.ael. Very crude and unfinished, but
 | |
|      will be improved as time goes by. Should be useful for a
 | |
|      first pass at conversion.
 | |
|   * aelparse will now read extensions.conf to see if a referenced
 | |
|      macro or context is there before issueing a warning.
 | |
|   * AEL parser sets a local channel variable ~~EXTEN~~, to
 | |
|     preserve the value of ${EXTEN} thru switch statements.
 | |
|   * New operator in $[...] expressions: the ~~ operator serves
 | |
|     as a concatenation operator. AT THE MOMENT, it is really only
 | |
|     necessary and useful in AEL, especially in if() expressions.
 | |
|     Operation: ${a} ~~ ${b|  with force both a and b to strings, strip
 | |
|     any enclosing double-quotes, and evaluate to the value of a
 | |
|     concatenated with the value of b.  For example if a is set to
 | |
|     "xyz"  and b has the value "abc", then ${a} ~~ ${b| would
 | |
|     evaluate to xyzabc .
 | |
| 
 | |
| 
 | |
| Call Features (res_features) Changes
 | |
| ------------------------------------
 | |
|   * Added the parkedcalltransfers option to features.conf
 | |
|   * Added parkedcallparking option to control one touch parking w/ parking
 | |
|     pickup
 | |
|   * Added parkedcallhangup option to control disconnect feature w/ parking
 | |
|     pickup
 | |
|   * Added parkedcallrecording option to control one-touch record w/ parking
 | |
|     pickup
 | |
|   * Added parkedcallparking, parkedcallhangup, parkedcallrecording, and
 | |
|     parkedcalltransfers option support for multiple parking lots.
 | |
|   * Added BRIDGE_FEATURES variable to set available features for a channel
 | |
|   * The built-in method for doing attended transfers has been updated to
 | |
|      include some new options that allow you to have the transferee sent
 | |
|      back to the person that did the transfer if the transfer is not successful.
 | |
|      See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries"
 | |
|      in features.conf.sample.
 | |
|   * Added support for configuring named groups of custom call features in
 | |
|      features.conf.  This means that features can be written a single time, and
 | |
|      then mapped into groups of features for different key mappings or easier
 | |
|      access control.
 | |
|   * Updated the ParkedCall application to allow you to not specify a parking
 | |
|      extension.  If you don't specify a parking space to pick up, it will grab
 | |
|      the first one available.
 | |
|   * Added cli command 'features reload' to reload call features from features.conf
 | |
|   * Moved into core asterisk binary.
 | |
|   * Changed the default setting for featuredigittimeout to 2000 ms from 500 ms.
 | |
|   * Added the ability for custom parking lots to be configured with their own
 | |
|     parking extension with the parkext option.
 | |
| 
 | |
| Language Support Changes
 | |
| ------------------------
 | |
|   * Brazilian Portuguese (pt-BR) in VM, and say.c was added
 | |
|   * Added support for the Hungarian language for saying numbers, dates, and times.
 | |
| 
 | |
| AGI Changes
 | |
| -----------
 | |
|   * Added SPEECH commands for speech recognition. A complete listing can be found
 | |
|     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.
 | |
|   * Added the ability to perform SRV lookups on fast AGI calls. To use this
 | |
|     feature, simply use hagi: instead of agi: as the protocol portion
 | |
|     of the URI parameter to the AGI function call in your dial plan. Also note
 | |
|     that specifying a port number in the AGI URI will disable SRV lookups,
 | |
|     even if you use the hagi: protocol.
 | |
|   * No longer support MSG_OOB flag on HANGUP.
 | |
| 
 | |
| Logger changes
 | |
| --------------
 | |
|   * Added rotatestrategy option to logger.conf, along with two new options:
 | |
|      "timestamp" which will use the time to name the logger files instead of
 | |
|      sequence number; and "rotate", which rotates the names of the log files,
 | |
|      similar to the way syslog rotates files.
 | |
|   * Added exec_after_rotate option to logger.conf, which allows a system
 | |
|      command to be run after rotation.  This is primarily useful with
 | |
|      rotatestrategy=rotate, to allow a limit on the number of log files kept
 | |
|      and to ensure that the oldest log file gets deleted.
 | |
|   * Added realtime support for the queue log
 | |
| 
 | |
| Call Detail Records
 | |
| -------------------
 | |
|   * 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.
 | |
| 
 | |
| Miscellaneous New Modules
 | |
| -------------------------
 | |
|   * Added a new CDR module, cdr_sqlite3_custom.
 | |
|   * Added a new realtime configuration module, res_config_sqlite
 | |
|   * Added a new codec translation module, codec_resample, which re-samples
 | |
|      signed linear audio between 8 kHz and 16 kHz to help support wideband
 | |
|      codecs.
 | |
|   * Added a new module, res_phoneprov, which allows auto-provisioning of phones
 | |
|      based on configuration templates that use Asterisk dialplan function and
 | |
|      variable substitution.  It should be possible to create phone profiles and
 | |
|      templates that work for the majority of phones provisioned over http. It
 | |
|      is currently only intended to provision a single user account per phone.
 | |
|      An example profile and set of templates for Polycom phones is provided.
 | |
|      NOTE: Polycom firmware is not included, but should be placed in
 | |
|      AST_DATA_DIR/phoneprov/configs to match up with the included templates.
 | |
|   * Added a new module, app_jack, which provides interfaces to JACK, the Jack
 | |
|      Audio Connection Kit (http://www.jackaudio.org/).  Two interfaces are
 | |
|      provided; there is a JACK() application, and a JACK_HOOK() function.  Both
 | |
|      interfaces create an input and output JACK port.  The application makes
 | |
|      these ports the endpoint of the call.  The audio coming from the channel
 | |
|      goes out the output port and whatever comes back in on the input port is
 | |
|      what gets sent to the channel.  The JACK_HOOK() function turns on a JACK
 | |
|      audiohook on the channel.  This lets you run the audio coming from a
 | |
|      channel through JACK, and whatever comes back in is what gets forwarded
 | |
|      on as the channel's audio.  This is very useful for building custom
 | |
|      vocoders or doing recording or analysis of the channel's audio in another
 | |
|      application.
 | |
|   * Added a new module, res_config_curl, which permits using a HTTP POST url
 | |
|      to retrieve, create, update, and delete realtime information from a remote
 | |
|      web server.  Note that this module requires func_curl.so to be loaded for
 | |
|      backend functionality.
 | |
|   * Added a new module, res_config_ldap, which permits the use of an LDAP
 | |
|      server for realtime data access.
 | |
|   * Added support for writing and running your dialplan in lua using the pbx_lua
 | |
|      module.  See configs/extensions.lua.sample for examples of how to do this.
 | |
| 
 | |
| Miscellaneous
 | |
| -------------
 | |
|   * Ability to use libcap to set high ToS bits when non-root
 | |
|      on Linux. If configure is unable to find libcap then you
 | |
|      can use --with-cap to specify the path.
 | |
|   * Added maxfiles option to options section of asterisk.conf which allows you to specify
 | |
|      what Asterisk should set as the maximum number of open files when it loads.
 | |
|   * Added the jittertargetextra configuration option.
 | |
|   * Added support for setting the CoS for VLAN traffic (802.1p).  See the sample
 | |
|      configuration files for the IP channel drivers.  The new option is "cos".
 | |
|      This information is also documented on the Asterisk wiki at
 | |
|      https://wiki.asterisk.org/wiki/x/EYBG
 | |
|   * When originating a call using AMI or pbx_spool that fails the reason for failure
 | |
|      will now be available in the failed extension using the REASON dialplan variable.
 | |
|   * Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
 | |
|      It allows you to configure a prefix for auto-monitor recordings.
 | |
|   * A new extension pattern matching algorithm, based on a trie, is introduced
 | |
|      here, that could noticeably speed up mid-sized to large dialplans.
 | |
|      It is NOT used by default, as duplicating the behaviour of the old pattern
 | |
|      matcher is still under development. A config file option, in extensions.conf,
 | |
|      in the [general] section, called "extenpatternmatchingnew", is by default
 | |
|      set to false; setting that to true will force the use of the new algorithm.
 | |
|      Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can
 | |
|      be used to switch the algorithms at run time.
 | |
|   * A new option when starting a remote asterisk (rasterisk, asterisk -r) for
 | |
|      specifying which socket to use to connect to the running Asterisk daemon
 | |
|      (-s)
 | |
|   * Performance enhancements to the sched facility, which is used in
 | |
|     the channel drivers, etc. Added hashtabs and doubly-linked lists
 | |
|     to speed up deletion; start at the beginning or end of list to
 | |
|     speed up insertion.
 | |
|   * Added Doubly-linked lists after the fashion of linkedlists.h. They are in
 | |
|     dlinkedlists.h. Doubly-linked lists feature fast deletion times.
 | |
|     Added regression tests to the tests/ dir, also.
 | |
|   * Added a refcount trace feature to astobj2 for those trying to balance
 | |
|     object creation, deletion; work, play; space and time. See the
 | |
|     notes in astobj2.h. Also, see utils/refcounter as well, as a
 | |
|     quick way to find unbalanced refcounts in what could be a sea
 | |
|     of objects that were balanced.
 | |
|   * Added logging to 'make update' command.  See update.log
 | |
|   * Added strictrtp option to rtp.conf. If enabled this will drop RTP packets that
 | |
|      do not come from the remote party.
 | |
|   * Added the 'n' option to the SpeechBackground application to tell it to not
 | |
|      answer the channel if it has not already been answered.
 | |
|   * Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
 | |
|      turned on, via the CHANNEL(trace) dialplan function.  Could be useful for
 | |
|      dialplan debugging.
 | |
|   * iLBC source code no longer included (see UPGRADE.txt for details)
 | |
|   * If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if
 | |
|      deadlock is detected, a backtrace of the stack which led to the lock calls
 | |
|      will be output to the CLI.
 | |
|   * If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
 | |
|      the "core show locks" CLI command will give lock information output as well
 | |
|      as a backtrace of the stack which led to the lock calls.
 | |
|   * users.conf now sports an optional alternateexts property, which permits
 | |
|     allocation of additional extensions which will reach the specified user.
 | |
|   * A new option for the configure script, --enable-internal-poll, has been added
 | |
|     for use with systems which may have a buggy implementation of the poll system
 | |
|     call. If you notice odd behavior such as the CLI being unresponsive on remote
 | |
|     consoles, you may want to try using this option. This option is enabled by default
 | |
|     on Darwin systems since it is known that the Darwin poll() implementation has
 | |
|     odd issues.
 | |
| 
 | |
| Timer Changes
 | |
| --------------------
 | |
| * In addition to timing from DAHDI, there is a new timing module called
 | |
|   res_timing_timerfd. In order to use this, you must be running Linux with
 | |
|   a kernel version 2.6.25 or newer as well as glibc 2.8 or newer. The configure
 | |
|   script will be able to tell if you have the requirements. From menuselect, select
 | |
|   res_timing_timerfd from the Resource Modules menu.
 |