Newer
Older
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.
------------------
* 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.
* Counting, enumeration and dates now supports Icelandic grammar with the
'language' parameter set to 'is'.
------------------
* This module was deprecated and has been removed. Users of app_saycountpl
should use the Say family of applications.
------------------
* 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 |.
Jonathan Rose
committed
cdr_sqlite
-----------------
* This module was deprecated and has been removed. Users of cdr_sqlite
should use cdr_sqlite3_custom.
Matthew Jordan
committed
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.
Matthew Jordan
committed
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.
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.
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
------------------
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).
JACK_HOOK
------------------
* The JACK_HOOK function now supports audio with a sample rate higher than
8kHz.
------------------
Matthew Jordan
committed
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.
------------------
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
* 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.
Matthew Jordan
committed
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 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'
Richard Mudgett
committed
ChanSpy
--------------------------
* ChanSpy now accepts a channel uniqueid or a fully specified channel name
as the chanprefix parameter if the 'u' option is specified.
Jonathan Rose
committed
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.
Mark Michelson
committed
* 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.
Jonathan Rose
committed
* 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.
Richard Mudgett
committed
PickupChan
--------------------------
* PickupChan now accepts channel uniqueids of channels to pickup.
Richard Mudgett
committed
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.
Joshua Colp
committed
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
------------------
Matthew Jordan
committed
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).
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
* 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.
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
* 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
Jonathan Rose
committed
* 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
Jonathan Rose
committed
* 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 --------------------
------------------------------------------------------------------------------
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
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.
David M. Lee
committed
* 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
------------------
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
* 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
------------------
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
* 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.
Matthew Jordan
committed
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.
Richard Mudgett
committed
* 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