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 10 Next »

Overview

Lucky 13!

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.

ChanSpy

  • ChanSpy now accepts a channel uniqueid or a fully specified channel name as the chanprefix parameter if the 'u' option is specified.

ConfBridge

  • 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. Valid values upon exiting are:

    ValueReason
    FAILED
    The channel encountered an error and could not enter the conference.
    HANGUP
    The channel exited the conference by hanging up.
    KICKED
    The channel was kicked from the conference.
    ENDMARKED
    The channel left the conference as a result of the last marked user leaving.
    DTMF
    The channel pressed a DTMF sequence to exit 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.

DAHDIBarge

  • The module app_dahdibarge was deprecated and has been removed. Users of DAHDIBarge should use ChanSpy instead.

Directory

  • At exit, the Directory application now sets a channel variable DIRECTORY_RESULT to one of the following based on the reason for exiting:

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

MixMonitor

  • A new option, B(), has been added that will turn on a periodic beep while the call is being recorded.
  • 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.

Page

  • Added options 'b' and 'B' to apply pre-dial handlers for outgoing calls and for the channel executing Page respectively.

PickupChan

  • PickupChan now accepts channel uniqueids of channels to pickup.

ReadFile

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

Record

  • The Record application now has an option 'o' which allows 0 to act as an exit key. This will set the the RECORD_STATUS variable to 'OPERATOR' instead of 'DTMF'.

Say

  • If the channel variable SAY_DTMF_INTERRUPT is present on a channel and set to 'true' (case insensitive), then any Say application (SayNumberSayDigits, 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.
  • 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
  • VoiceMail mailboxes configured in voicemail.conf can now have multiple e-mail address specified for a single mailbox. Each e-mail address is separated by the | character.

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

  • Support for peeraccount was vastly improved in this version of Asterisk. Except for Queue, an accountcode is now consistently propagated to outgoing channels before dialing. A channel's 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 codes 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

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

Actions

  • Added DialplanExtensionAdd and DialplanExtensionRemove AMI actions. These actions are analogous to the dialplan add extension and dialplan remove extension CLI commands, respectively.
  • Added AMI action LoggerRotate, which reloads and rotates logger in the same manner as the CLI command logger rotate.
  • Added AMI actions FAXSessions, FAXSession, and FAXStats, which replicate the functionality of the CLI commands fax show sessions, fax show session, and fax show stats respectively.
  • Added AMI actions PRIDebugSet, PRIDebugFileSet, and PRIDebugFileUnset, which enable manager control over PRI debugging levels and file output.
  • The 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 MixMonitor action now has a Command header that can be used to indicate a post-process command to run once recording finishes.
  • Added AMI actions DeviceStateList, PresenceStateList, and ExtensionStateList. Each of these can be used to list the current device states, presence states, and extension states respectively. The DeviceStateList and PresenceStateList actions are provided by the res_manager_device_state.so and res_manager_presence_state.so modules, respectively.
  • Originate now takes optional parameters: ChannelId and OtherChannelId, which can be used to set the channel uniqueid on creation.  The other id (specified by OtherChannelId) is only used when originating a Local channel, and is assigned to the second channel half of a Local channel.  If a Local channel is originated and OtherChannelId is not specified, Asterisk will default to appending a ;2 to the identifier provided by ChannelId.

Events

  • 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.
  • 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 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:
EventDescription
FailedACLRaised when a request violates an ACL check.
InvalidAccountIDRaised when a request fails an authentication check due to an invalid account ID.
SessionLimitRaised 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.

Icon

This event is a bit optimistic. While you may receive this event when Asterisk runs out of memory, it is highly likely that Asterisk is... out of memory. Making events is sometimes out of the question at that point.

LoadAverageLimitRaised when a request fails because a configured load average limit has been reached.
RequestNotAllowedRaised when a request is not allowed by the service..
AuthMethodNotAllowedRaised when a request used an authentication method not allowed by the service.
RequestBadFormatRaised when a request is received with bad formatting.
SuccessfulAuthRaised when a request successfully authenticates.
UnexpectedAddressRaised when a request has a different source address then what is expected for a session already in progress with a service.
ChallengeResponseFailedRaised when a request's attempt to authenticate has been challenged, and the request failed the authentication challenge.
InvalidPasswordRaised when a request provides an invalid password during an authentication attempt.
ChallengeSentRaised when an Asterisk service send an authentication challenge to a request.
InvalidTransportRaised when a request attempts to use a transport not allowed by the Asterisk service.

ARI

  • Operations that create a resource can now provide the unique identifier as a parameter to the creation request. This includes:
  • Bridges: 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.
  • The LiveRecording object in recording events now contains a target_uri field which contains the URI of what is being recorded.
  • 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 using a sendMessage operation either directly to a particular endpoint or to the endpoints resource directly. In the latter case, the destination is derived 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 added 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 fast-forwarded.
  • 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). If a channel is specified, the message will also be delivered to connected AMI clients. 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 something is subscribed to the channel.
  • 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.

CEL

  • The bridge_technology extra field key has been added to BRIDGE_ENTER and BRIDGE_EXIT events.

CLI

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

Features

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

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.

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:

    • 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:

      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 have been reworked as well; additionally, new SS7 commands added. See the online CLI help for more information.
  • Several SS7 config option parameters have been added; see the description 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.
  • 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 in previous versions of Asterisk. 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.
  • 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.

Functions

AST_SORCERY

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

AUDIOHOOK_INHERIT

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

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.

JACK_HOOK

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

MIXMONITOR

A new function, MIXMONITOR, has been added to allow access to individual instances of MixMonitor on a channel.

PERIODIC_HOOK

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

TALK_DETECT

A new function, TALK_DETECT, has been added. When set on a channel, this function causes events indicating the starting/stopping 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.
  • 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.

 

  • 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.
  • 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 basic system resolution. Functionality such as SRV records and fail-over will not be available if the basic system resolution is in use.

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





  • No labels