Skip to end of metadata
Go to start of metadata

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

Compare with Current View Page History

« Previous Version 3 Next »

Overview

Build System

Applications

AgentRequest

  • The application will now return a new AGENT_STATUS value of 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.

DAHDIBarge

  • The module app_dahdibarge was deprecated and has been removed. Users of 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.

Monitor

  • A new option, B(), has been added that will turn on a periodic beep while the call is being recorded.

ReadFile

  • The module app_readfile was deprecated and has been removed. Users of ReadFile should use func_env's FILE function instead.

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'

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

  • The module app_saycountpl 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.

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

WaitMusicOnHold

  • The WaitMusicOnHold dialplan application was deprecated and has been removed. Users of the application should use MusicOnHold with a duration parameter instead.

Core

Account Codes

  • Functional peeraccount support was vastly improved in this version of Asterisk. Except for Queue, an accountcode 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:
    1. The dialplan sets it using CHANNEL(accountcode).
    2. An originate method specifies an accountcode value.
    3. The calling channel propagates its peeraccount or accountcode to the outgoing channel's accountcode before dialing.
    This 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:
    1. As previously mentioned, Local channels now cross accountcode and peeraccount across the special bridge between the ;1 and ;2 channels just like channels between normal bridges.
    2. The queue member will get an accountcode if it doesn't have one and one is available from the calling channel's peeraccount.
    3. 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)

 

 * 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.

 * The AMI action PJSIPShowEndpoint now includes ContactStatusDetail sections

   that give information on Asterisk's attempts to qualify the endpoint.

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.

 * 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.

 * 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.

CEL

 

 * The "bridge_technology" extra field key has been added to BRIDGE_ENTER

   and BRIDGE_EXIT events.

Features

 * The ast_channel_feature_hooks* functions have been added to allow features

   such as DTMF hooks, interval hooks, and bridge event hooks to be made

   available to a channel when the channel is bridged. Previously, these

   features were provided exclusively by the caller of ast_bridge_join()

   outside of "basic" type bridges.

 

 * Channel variables are now substituted in arguments passed to applications

   run by using dynamic features.

 

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".

 

 

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).

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_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.

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.

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.

JACK_HOOK

------------------

 * The JACK_HOOK function now supports audio with a sample rate higher than

   8kHz.

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.

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

------------------

 * 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.

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.
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

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.

Scripts






------------------------------------------------------------------------------
--- Functionality changes from Asterisk 12.2.0 to Asterisk 12.3.0 ------------
------------------------------------------------------------------------------

ARI
------------------





------------------------------------------------------------------------------
--- Functionality changes from Asterisk 12.1.0 to Asterisk 12.2.0 ------------
------------------------------------------------------------------------------

Applications
--------------------------
 

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.

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.

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.

Debugging
-------------------------
 * 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.

Core
------------------
 * Exposed sorcery-based configuration files like pjsip.conf to dialplans via
   the new AST_SORCERY diaplan function.

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.


------------------------------------------------------------------------------
--- 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.


  • No labels