1 ==============================================================================
3 === THIS FILE IS AUTOMATICALLY GENERATED DURING THE RELEASE
4 === PROCESS. DO NOT MAKE CHANGES HERE. INSTEAD, REFER TO
5 === doc/CHANGES-staging/README.md FOR MORE DETAILS.
7 === This file documents the new and/or enhanced functionality added in
8 === the Asterisk versions listed below. This file does NOT include
9 === changes in behavior that would not be backwards compatible with
10 === previous versions; for that information see the UPGRADE.txt file
11 === and the other UPGRADE files for older releases.
13 ==============================================================================
15 ------------------------------------------------------------------------------
16 --- Functionality changes from Asterisk 19.0.0 to Asterisk 20.0.0 ------------
17 ------------------------------------------------------------------------------
21 * added support for Danish syntax, playing the correct plural sound file
22 dependen on where you have 1 or multipe messages
23 based on the existing SE/NO code
25 * added that we set DIALEDPEERNUMBER on the outgoing channels
26 so it is avalible in b(content^extension^line)
27 this add the same behaviour as Dial
29 Channel-agnostic MF support
31 * A SendMF application and PlayMF manager
32 application are now included to send
33 arbitrary standard R1 MF tones on the
34 current channel or another specified channel.
38 * Bundled PJProject Build
40 The build process has been updated to make pjproject troubleshooting
41 and development easier. See third-party/pjproject/README-hacking.md or
42 https://wiki.asterisk.org/wiki/display/AST/Bundled+PJProject
45 Handle non-standard Meter metric type safely
47 * A meter_support flag has been introduced that defaults to true to maintain current behaviour.
48 If disabled, a counter metric type will be used instead wherever a meter metric type was used,
49 the counter will have a "_meter" suffix appended to the metric name.
53 * The MessageSend AMI action has been updated to allow the Destination
54 and the To addresses to be provided separately. This brings the
55 MessageSend manager command in line with the capabilities of the
56 MessageSend dialplan application.
60 * A new application, ToneScan, allows for
61 synchronous detection of call progress
62 signals such as dial tone, busy tone,
63 Special Information Tones, and modems.
67 * An AMI event now exists for "Wink".
69 * AMI events can now be globally disabled using
70 the disabledevents [general] setting.
74 * Added the hear_own_join_sound option to the confbridge user profile to
75 control who hears the sound_join audio file. When set to 'yes' the user
76 entering the conference and the participants already in the conference
77 will hear the sound_join audio file. When set to 'no' the user entering
78 the conference will not hear the sound_join audio file, but the
79 participants already in the conference will hear the sound_join audio file.
81 * Adds the CONFBRIDGE_CHANNELS function which can
82 be used to retrieve a list of channels in a ConfBridge,
83 optionally filtered by a particular category. This
84 list can then be used with functions like SHIFT, POP,
89 * New application which collects digits
90 dialed and stores them into
95 * Adds MF receiver and sender applications to support
96 the R1 MF signaling protocol, including integration
97 with the Dial application.
99 * Adds an option to ReceiveMF to cap the
100 number of digits read at a user-specified
105 * The Milliwatt application's existing behavior is
106 incorrect in that it plays a constant tone, which
107 is not how digital milliwatt test lines actually
110 An option is added so that a proper milliwatt test
111 tone can be provided, including a 1 second silent
112 interval every 10 seconds. However, for compatability
113 reasons, the default behavior remains unchanged.
117 * Extends the Morsecode application by adding support for
118 American Morse code and adds a configurable option
119 for the frequency used in off intervals.
123 * Codecs can now be specified for dialplan-originated
124 calls, as with call files and the manager action.
125 By default, only the slin codec is now used, instead
126 of all the slin* codecs.
130 * A new option 'mix' is added to the Playback application that
131 will play by filename and say.conf. It will look on the format of the
132 name, if it is like say format it will play with say.conf if not it
133 will play the file name.
137 * Reload behavior in app_queue has been changed so
138 queue and agent stats are not reset during full
139 app_queue module reloads. The queue reset stats
140 CLI command may still be used to reset stats while
143 * Add field to save the time value when a member enter a queue.
144 Shows this time in seconds using 'queue show' command and the
145 field LoginTime for responses for AMI the events.
147 The output for the CLI command `queue show` is changed by added a
148 extra data field for the information of the time login time for each
151 * added that we set DIALEDPEERNUMBER on the outgoing channels
152 so it is avalible in b(content^extension^line)
153 this add the same behaviour as Dial
155 * Load queues and members from Realtime for
156 AMI actions: QueuePause, QueueStatus and QueueSummary,
157 Applications: PauseQueueMember and UnpauseQueueMember.
159 * Added a new AMI action: QueueWithdrawCaller
160 This AMI action makes it possible to withdraw a caller from a queue
161 back to the dialplan. The call will be signaled to leave the queue
162 whenever it can, hence, it not guaranteed that the call will leave
165 Optional custom data can be passed in the request, in the WithdrawInfo
166 parameter. If the call successfully withdrawn the queue,
167 it can be retrieved using the QUEUE_WITHDRAW_INFO variable.
169 This can be useful for certain uses, such as dispatching the call
170 to a specific extension.
172 * The m option now allows an override music on hold
173 class to be specified for the Queue application
178 * Allow multiple files to be streamed for agent announcement.
182 * adding support for playing the correct en/et for nordic languages
184 * Don't play sound_thanks if there is no leading hold_time message
185 When the only announcement is hold time, and there is no hold time (0 min, 0 sec), asterisk will say "thank you for your patience"
189 * A new option allows the digit '#' to be read literally,
190 rather than used exclusively as the input terminator
195 * A ReceiveText application has been added that can be
196 used in conjunction with the SendText application.
200 * Add a new 'S' option to VoiceMail which prevents the instructions
201 (vm-intro) from being played if a busy/unavailable/temporary greeting
202 from the voicemail user is played. This is similar to the existing 's'
203 option except that instructions will still be played if no user
204 greeting is available.
206 * added support for Danish syntax, playing the correct plural sound file
207 dependen on where you have 1 or multipe messages
208 based on the existing SE/NO code
210 * The r option has been added, which prevents deletion
211 of messages from VoiceMailMain, which can be
212 useful for shared mailboxes.
216 * A new option 'mix' is added to the Playback application that
217 will play by filename and say.conf. It will look on the format of the
218 name, if it is like say format it will play with say.conf if not it
219 will play the file name.
223 * Expose channel driver's unique id (which is the Call-ID for SIP/PJSIP)
224 to ARI channel resources as 'protocol_id'.
232 Allows specification of an Asterisk instance when trying to
233 and the script can't determine it itself.
234 --libdir=<system library directory>
235 Allows specification of a non-standard installation directory
236 containing the Asterisk modules.
238 Renames the coredump and the output files with readable
239 timestamps. This is the default.
240 Removed unneeded or confusing options:
246 COREDUMPS is now just "/tmp/core!(*.txt)"
247 DATEFORMAT is renamed to DATEOPTS and defaults to '-u +%FT%H-%M-%SZ'
249 If you use 'running' or 'RUNNING' you no longer need to specify
250 '--no-default-search' to ignore existing coredumps.
254 * A new CDR option, channeldefaultenabled, allows controlling
255 whether CDR is enabled or disabled by default on
256 newly created channels. The default behavior remains
257 unchanged from previous versions of Asterisk (new
258 channels will have CDR enabled, as long as CDR is
263 * Previously, cadences were appended on dahdi restart,
264 rather than reloaded. This prevented cadences from
265 being updated and maxed out the available cadences
266 if reloaded multiple times. This behavior is fixed
267 so that reloading cadences is idempotent and cadences
268 can actually be reloaded.
270 * A POLARITY function is now available that allows
271 getting or setting the polarity on a channel
276 * ANI2 (OLI) is now transmitted over IAX2 calls
277 as an information element.
279 * Both a secret and an outkey may be specified at dial time,
280 since encryption is possible with RSA authentication.
284 * Add function PJSIP_HEADERS() to get list of headers by pattern in the same way as SIP_HEADERS() do.
286 Add ability to read header by pattern using PJSIP_HEADER().
288 * added global config option "allow_sending_180_after_183"
290 Allow Asterisk to send 180 Ringing to an endpoint
291 after 183 Session Progress has been send.
292 If disabled Asterisk will instead send only a
293 183 Session Progress to the endpoint.
295 * Hook flash events can now be sent on a PJSIP channel
296 if requested to do so.
300 * Session timers get removed on UPDATE
301 Fix if Asterisk receives a SIP REFER with Session-Timers UAC
302 that Asterisk maintains Session-Timers when sending UPDATE request
306 * resolve issue with pickup on device that uses "183" and not "180"
310 * CHANNEL(lastcontext) and CHANNEL(lastexten)
311 are now available for use in the dialplan.
315 * The "module refresh" command has been added,
316 which allows unloading and then loading a
317 module with a single command.
319 * A new CLI command 'dialplan eval function' has been
320 added which allows users to test the behavior of
321 dialplan function calls directly from the CLI.
325 * Adds the CHANNEL_EXISTS function to check for the existence
326 of a channel by name or unique ID.
330 * The function DB_KEYCOUNT has been added, which
331 returns the cardinality of the keys at a specified
332 prefix in AstDB, i.e. the number of keys at a
337 * Two new functions, DIRNAME and BASENAME, are now
338 included which allow users to obtain the directory
339 or the base filename of any file.
343 * This adds the EVAL_EXTEN function which may be
344 used to evaluate data at dialplan extensions.
348 * New function to selectively drop specified frames
349 in either direction on a channel.
353 * The JSON_DECODE dialplan function can now be used
354 to parse JSON strings, such as in conjunction with
355 CURL for using API responses.
359 * A SQL_ESC_BACKSLASHES dialplan function has been added which
360 escapes backslashes. Usage of this is dependent on whether the
361 database in use can use backslashes to escape ticks or not. If
362 it can, then usage of this prevents a broken SQL query depending
363 on how the SQL query is constructed.
367 * Adds an audio scrambler function that may be used to
368 distort voice audio on a channel as a privacy
373 * A new STRBETWEEN function is now included which
374 allows a substring to be inserted between characters
375 in a string. This is particularly useful for transforming
376 dial strings, such as adding pauses between digits
377 for a string of digits that are sent to another channel.
381 * Multiple mailboxes may now be specified instead of just one.
385 * Added the ability to define custom log levels in logger.conf
386 and use them in the Log dialplan application. Also adds a
387 logger show levels CLI command.
391 * Agi command 'exec' can now be enabled
\r
392 to evaluate dialplan functions and variables
\r
393 by setting the variable AGIEXECFULL to yes.
397 * A new CLI command, dialplan exec application, has
398 been added which allows dialplan applications to be
399 executed at the CLI, useful for some quick testing
400 without needing to write dialplan.
404 * Adds support for spandsp 3.0.0.
408 * Added res_geolocation which creates the core capabilities
409 to manipulate Geolocation information on SIP INVITEs.
413 * An m option to Park and ParkAndAnnounce now allows
414 specifying a music on hold class override.
418 * In pjproject.conf you can now map pjproject log levels
419 to the Asterisk TRACE log level. The default mappings
420 have therefore changed so that only pjproject levels
421 3 and 4 are mapped to DEBUG and 5 and 6 are now mapped
422 to TRACE. Previously 3, 4, 5, and 6 were all mapped to
427 * A new transport option 'allow_wildcard_certs' has been added that when it
428 and 'verify_server' are both set to 'yes', enables verification against
429 wildcards, i.e. '*.' in certs for common, and subject alt names of type DNS
430 for TLS transport types. Names must start with the wildcard. Partial wildcards,
431 e.g. 'f*.example.com' and 'foo.*.com' are not allowed. As well, names only
432 match against a single level meaning '*.example.com' matches 'foo.example.com',
433 but not 'foo.bar.example.com'.
435 res_pjsip_geolocation
437 * Added res_pjsip_geolocation which gives chan_pjsip
438 the ability to use the core geolocation capabilities.
440 res_pjsip_header_funcs
442 * Add function PJSIP_RESPONSE_HEADERS() to get list of header names from 200 response, in the same way as PJSIP_HEADERS() from the request.
444 Add function PJSIP_RESPONSE_HEADER() to read header from 200 response, in the same way as PJSIP_HEADER() from the request.
448 * A new resource_list option, resource_display_name, indicates
449 whether display name of resource or the resource name being
450 provided for RLS entries.
451 If this option is enabled, the Display Name will be provided.
452 This option is disabled by default to remain the previous behavior.
453 If the 'event' set to 'presence' or 'dialog' the non-empty HINT name
454 will be set as the Display Name.
455 The 'message-summary' is not supported yet.
457 * The Resource List Subscriptions (RLS) is dynamic now.
458 The asterisk now updates current subscriptions to reflect the changes
459 to the list on subscription refresh. If list items are added,
460 removed, updated or do not exist anymore, the asterisk regenerates
465 * Adds new PJSIP AOR option remove_unavailable to either
466 remove unavailable contacts when a REGISTER exceeds
467 max_contacts when remove_existing is disabled, or
468 prioritize unavailable contacts over other existing
469 contacts when remove_existing is enabled.
473 * In res_pjsip_sdp_rtp, the bind_rtp_to_media_address option and the
474 fallback use of the transport's bind address solve problems sending
475 media on systems that cannot send ipv4 packets on ipv6 sockets, and
476 certain other situations. This change extends both of these behaviors
477 to UDPTL sessions as well in res_pjsip_t38, to fix fax-specific
478 problems on these systems, introducing a new option
479 endpoint/t38_bind_udptl_to_media_address.
483 * When the address of the STUN server (stunaddr) is a name resolved via DNS, the
484 stunaddr will be recurringly resolved when the DNS answer Time-To-Live (TTL)
485 expires. This allows the STUN server to change its IP address without having to
486 reload the res_rtp_asterisk module.
490 * Arbitrary tone detection is now available through a
491 WaitForTone application (blocking) and a TONE_DETECT
492 function (non-blocking).
496 * Adds SAYFILES function to retrieve the file names that would
497 be played by corresponding Say applications, such as
498 SayDigits, SayAlpha, etc.
500 Additionally adds SayMoney and SayOrdinal applications.
504 * Expose channel driver's unique id (which is the Call-ID for SIP/PJSIP)
505 to ARI channel resources as 'protocol_id'.
509 ------------------------------------------------------------------------------
510 --- Functionality changes from Asterisk 18.0.0 to Asterisk 19.0.0 ------------
511 ------------------------------------------------------------------------------
515 * Hook flash events are now exposed as AMI events.
517 Add variable support to Originate
519 * The Originate application now allows
520 variables to be set on the new channel
521 through a new option.
525 * Added debug logging categories that allow a user to output debug information
526 based on a specified category. This lets the user limit, and filter debug
527 output to data relevant to a particular context, or topic. For instance the
528 following categories are now available for debug logging purposes:
530 dtls, dtls_packet, ice, rtcp, rtcp_packet, rtp, rtp_packet, stun, stun_packet
532 These debug categories can be enable/disable via an Asterisk CLI command:
534 core set debug category <category>[:<sublevel>] [category[:<sublevel] ...]
535 core set debug category off [<category> [<category>] ...]
537 If no sub-level is associated all debug statements for a given category are
538 output. If a sub-level is given then only those statements assigned a value
539 at or below the associated sub-level are output.
541 * The location where the media cache stores its temporary files
542 is no longer hardcoded to /tmp but can now be configured separately
543 via the astcachedir config variable in asterisk.conf.
545 The default location for astcachedir is now /var/cache/asterisk
546 instead of /tmp, please make sure to manually cleanup and/or
547 migrate the temporary files in /tmp after upgrading.
551 * The MessageSend dialplan application now takes an
552 optional third argument that can set the message's
553 "To" field on outgoing messages. It's an alternative
554 to using the MESSAGE(to) dialplan function.
556 To prevent confusion with the first argument, currently
557 named "to", it's been renamed to "destination".
558 Its function, creating the request URI, hasn't changed.
560 The online documentation has also been enhanced to
561 explain the behavior.
563 Despite the changes in this commit, there should be
564 no impact to current users of MessageSend.
566 New ConfKick application
568 * Adds a ConfKick() application, which allows
569 a specific channel, all users, or all non-admin
570 users to be kicked from a conference bridge.
572 New Reload application
574 * Adds an application to reload modules
576 PlaybackFinished has a new error state
578 * The PlaybackFinished event now has a new state "failed"
579 that is used when the sound file was not played due to an error.
580 Before the state on PlaybackFinished was always "done".
582 In case of multiple sound files to be played,
583 the PlaybackFinished is sent only once in the end of the list,
584 even in case of error.
586 WaitForCondition application
588 * This application provides a way to halt
589 dialplan execution until a provided
590 condition evaluates to true.
594 * app_confbridge now has the ability to force the estimated bitrate on an SFU
595 bridge. To use it, set a bridge profile's remb_behavior to "force" and
596 set remb_estimated_bitrate to a rate in bits per second. The
597 remb_estimated_bitrate parameter is ignored if remb_behavior is something
600 app_confbridge answer supervision control
602 * app_confbridge now provides a user option to prevent
603 answer supervision if the channel hasn't been
604 answered yet. To use it, set a user profile's
605 answer_channel option to no.
607 app_dial announcement option
609 * The A option for Dial now supports
610 playing audio to the caller as well
615 * app_mixmonitor now sends manager events MixMonitorStart, MixMonitorStop and
616 MixMonitorMute when the channel monitoring is started, stopped and muted (or
617 unmuted) respectively.
621 * The VoiceMail application can now be configured to send greetings and
622 instructions via early media and only answering the channel when it is
623 time for the caller to record their message. This behavior can be
624 activated by passing the new 'e' option to VoiceMail.
626 * You can now customize the "beep" tone or omit it entirely.
630 * You can now specify a default "auth" method in the
631 [general] section of iax.conf
635 * The PJSIP_SEND_SESSION_REFRESH dialplan function now issues a warning, and
636 returns unsuccessful if it's used on a channel prior to answering.
638 chan_pjsip, app_transfer
640 * Added TRANSFERSTATUSPROTOCOL variable. When transfer is performed,
641 transfers can pass a protocol specific error code.
642 Example, in SIP 3xx-6xx represent any SIP specific error received when
645 func_math: Three new dialplan functions
647 * Introduce three new functions, MIN, MAX, and ABS, which can be used to
648 obtain the minimum or maximum of up to two integers or absolute value.
652 * Introduce an ARGC variable for func_odbc functions, along with a minargs
653 per-function configuration option.
655 minargs enables enforcing of minimum count of arguments to pass to
656 func_odbc, so if you're unconditionally using ARG1 through ARG4 then
657 this should be set to 4. func_odbc will generate an error in this case,
663 and ODBC_FOO(a,b,c) in dialplan will now error out instead of using a
664 potentially leaked ARG4 from Gosub().
666 ARGC is needed if you're using optional argument, to verify whether or
667 not an argument has been passed, else it's possible to use a leaked ARGn
668 from Gosub (app_stack). So now you can safely do
669 ${IF($[${ARGC}>3]?${ARGV}:default value)} kind of thing.
671 func_volume now can be read
673 * The VOLUME function can now also be used
674 to read existing values previously set.
678 * Added a new log formatter called "plain" that always prints
679 file, function and line number if available (even for verbose
680 messages) and never prints color control characters. Most
681 suitable for file output but can be used for other channels
684 You use it in logger.conf like so:
685 debug => [plain]debug
686 console => [plain]error,warning,debug,notice,pjsip_history
687 messages => [plain]warning,error,verbose
689 * The dateformat option in logger.conf will now control the remote
690 console (asterisk -r -T) timestamp format. Previously, dateformat only
691 controlled the formatting of the timestamp going to log files and the
692 main console (asterisk -c) but only for non-verbose messages.
694 Internally, Asterisk does not send the logging timestamp with verbose
695 messages to console clients. It's up to the Asterisk remote consoles
696 to format verbose messages. Asterisk remote consoles previously did
697 not load dateformat from logger.conf.
699 Previously there was a non-configurable and hard-coded "%b %e %T"
700 dateformat that would be used no matter what on all verbose console
701 messages printed on remote consoles.
708 [2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
709 [Mar 19 09:55:43] -- Goto (dialExten,s,1)
711 Given the following example configuration in logger.conf, Asterisk log
712 files and the console, will log verbose messages using the given
713 timestamp. Now ensuring that all remote console messages are logged
714 with the same dateformat as other log streams.
721 console => notice,warning,error,verbose
722 full => notice,warning,error,debug,verbose
725 Now we have a globally-defined dateformat that will be used
726 consistently across the Asterisk main console, remote consoles, and
729 Now we have consistent logging:
732 [2021-03-19 09:54:19.760-0400] Loading res_stasis_answer.so.
733 [2021-03-19 09:55:43.920-0400] -- Goto (dialExten,s,1)
737 * PJSIP transports can now be partially reloaded safely. This allows the
738 local_net and external_* options to be updated without restarting Asterisk.
740 * PJSIP endpoints can now be configured to skip authentication when
741 handling OPTIONS requests by setting the allow_unauthenticated_options
742 configuration property to 'yes.'
744 * PJSIP support of registrations of endpoints in multidomain
745 scenarios, where the endpoint contains the domain info
748 res_pjsip_dialog_info_body_generator
750 * PJSIP now supports RFC 4235 Section 4.1.6 dialog-info+xml local and
751 remote elements by iterating through ringing channels and inserting
752 that info into NOTIFY packet sent to the endpoint.
756 * Implemented the new "to" parameter of the MessageSend()
757 dialplan application. This allows a user to specify
758 a complete SIP "To" header separate from the Request URI.
759 We now also accept a destination in the same format
760 as Dial()... PJSIP/number@endpoint
764 * By default Asterisk reports the PJSIP version in all
765 STUN packets it sends.
767 This behaviour may not be desired in a production
768 environment and can now be disabled by setting the
769 stun_software_attribute option to 'no' in rtp.conf.
773 * SRTP replay protection has been added to res_srtp and
774 a new configuration option "srtpreplayprotection" has
775 been added to the rtp.conf config file. For security
776 reasons, the default setting is "yes". Buggy clients
777 may not handle this correctly which could result in
778 no, or one way, audio and Asterisk error messages like
779 "replay check failed".
781 ------------------------------------------------------------------------------
782 --- New functionality introduced in Asterisk 18.0.0 --------------------------
783 ------------------------------------------------------------------------------
787 * The Streams API becomes the home for the core ACN capabilities.
790 * Parsing and formatting of codec negotiation preferences.
791 * Resolving pending streams and topologies with those configured
792 using configured preferences.
793 * Utility functions for creating string representations of
794 streams, topologies, and negotiation preferences.
796 For codec negotiation preferences:
797 * Added ast_stream_codec_prefs_parse() which takes a string
798 representation of codec negotiation preferences, which
799 may come from a pjsip endpoint for example, and populates
800 a ast_stream_codec_negotiation_prefs structure.
801 * Added ast_stream_codec_prefs_to_str() which does the reverse.
802 * Added many functions to parse individual parameter name
803 and value strings to their respective enum values, and the
807 * Added ast_stream_create_resolved() which takes a "live" stream
808 and resolves it with a configured stream and the negotiation
809 preferences to create a new stream.
810 * Added ast_stream_to_str() which create a string representation
811 of a stream suitable for debug or display purposes.
814 * Added ast_stream_topology_create_resolved() which takes a "live"
815 topology and resolves it, stream by stream, with a configured
816 topology stream and the negotiation preferences to create a new
818 * Added ast_stream_topology_to_str() which create a string
819 representation of a topology suitable for debug or display
821 * Renamed ast_format_caps_from_topology() to
822 ast_stream_topology_get_formats() to be more consistent with
823 the existing ast_stream_get_formats().
826 * A new function ast_format_cap_append_names() appends the results
827 to the ast_str buffer instead of replacing buffer contents.
831 * The BridgeAdd application now behaves more like the Bridge application.
832 The application now sets the BRIDGERESULT channel variable to indicate
833 what happened when the channel resumes in dialplan. This is instead of
834 hanging up the channel on failure conditions.
838 * Two new options, incoming_call_offer_pref and outgoing_call_offer_pref
839 have been added to res_pjsip endpoints that specify the preferred order
840 of codecs to use between those received/sent in an SDP offer and those
841 set in the endpoint configuration.
843 ------------------------------------------------------------------------------
844 --- Functionality changes from Asterisk 17.0.0 to Asterisk 18.0.0 ------------
845 ------------------------------------------------------------------------------
849 * You can now specify an optional 'Content-Type' as an argument for the Asterisk
850 SendText manager action.
854 * A new parameter 'inhibitConnectedLineUpdates' is now available in the
855 'bridges.addChannel' call. This prevents the identity of the newly connected
856 channel from being presented to other bridge members.
860 * The Channel resource has a new sub-resource "externalMedia".
861 This allows an application to create a channel for the sole purpose
862 of exchanging media with an external server. Once created, this
863 channel could be placed into a bridge with existing channels to
864 allow the external server to inject audio into the bridge or
865 receive audio from the bridge.
866 See https://wiki.asterisk.org/wiki/display/AST/External+Media+and+ARI
867 for more information.
871 * H.265/HEVC is now a supported video codec and it can be used by
872 specifying "h265" in the allow line.
873 Please note however, that handling of the additional SDP parameters
874 described in RFC 7798 section 7.2 is not yet supported.
878 * Adds support for AudioSocket, a very simple bidirectional audio streaming
879 protocol. There are both channel and application interfaces.
881 A description of the protocol can be found on the referenced wiki page. A
882 short talk about the reasons and implementation can be found on YouTube at
885 ARI support has also been added via the existing "externalMedia" ARI
886 functionality. The UUID is specified using the arbitrary "data" field.
888 Wiki: https://wiki.asterisk.org/wiki/display/AST/AudioSocket
889 YouTube: https://www.youtube.com/watch?v=tjduXbZZEgI
893 * In order to reduce the amount of AMI and ARI events generated,
894 the global "Message/ast_msg_queue" channel can be set to suppress
895 it's normal channel housekeeping events such as "Newexten",
896 "VarSet", etc. This can greatly reduce load on the manager
897 and ARI applications when the Digium Phone Module for Asterisk
898 is in use. To enable, set "hide_messaging_ami_events" in
899 asterisk.conf to "yes" In Asterisk versions <18, the default
900 is "no" preserving existing behavior. Beginning with
901 Asterisk 18, the option will default to "yes".
905 * STIR/SHAKEN support has been added to Asterisk. Configuration is done in
906 stir_shaken.conf. There is a sample configuration file to help you get
907 started (asterisk/configs/samples/stir_shaken.conf.sample). Once that's
908 set up, you can enable STIR/SHAKEN on any endpoint by setting stir_shaken
909 to yes on the endpoint configuration object. This will add an Identity
910 header on outgoing INVITEs, and check for an Identity header on incoming
911 INVITEs. This option has been added to Alembic as well.
913 The information received on an incoming INVITE can be checked using the
914 STIR_SHAKEN dialplan function. There are two variations:
917 STIR_SHAKEN(0, verify_result)
919 The first variation will tell you how many STIR/SHAKEN results are on the
920 channel. The second fetches information for a specific result. The first
921 parameter is the index, followed by what information you want to retrieve.
922 The available options are 'verify_result', 'identity', and 'attestation'.
926 * The ChanIsAvail application now tolerates empty positions in the supplied
927 device list. Dialplan can now be simplified by not having to check for
928 empty positions in the device list.
932 * A new bridge profile option, maximum_sample_rate, has been added which sets
933 a maximum sample rate that the bridge will be mixed at. This allows the bridge
934 to move below the maximum sample rate as needed but caps it at the maximum.
936 * A new option, "text_messaging", has been added to the user profile
937 which allows control over whether text messaging is enabled or
938 disabled for a user. If enabled (the default) text messages
939 will be sent to the user. If disabled no text messages will be
944 * The Dial application now tolerates empty positions in the supplied
945 destination list. Dialplan can now be simplified by not having to check
946 for empty positions in the destination list. If there are no endpoints to
947 dial then DIALSTATUS is set to CHANUNAVAIL.
951 * An option 'S' has been added to MixMonitor. If used in combination with
952 the r() and/or t() options, if a frame is available to write to one of
953 those files but not the other, a frame of silence if written to the file
954 that does not have an audio frame. This should prevent the two files
955 from "drifting" when mixed after the fact.
957 * If the 'filename' argument to MixMonitor() ended with '.wav49,'
958 Asterisk would silently convert the extension to '.WAV' when opening
959 the file for writing. This caused the MIXMONITOR_FILENAME variable to
960 reference the wrong file. The MIXMONITOR_FILENAME variable will now
961 reflect the name of the file that Asterisk actually used instead of
962 the filename that was passed to the application.
966 * The Page application now tolerates empty positions in the supplied
967 destination list. Dialplan can now be simplified by not having to check
968 for empty positions in the destination list.
972 * A feature was added in Asterisk 13.27.0 and 16.4.0 that removed lock files from
973 the Asterisk voicemail directory on startup. Some users that store their
974 voicemails on network storage devices experienced slow startup times due to the
975 relative expense of traversing the voicemail directory structure looking for
976 orphaned lock files. This feature has now been removed.
978 Users who require the lock files to be removed at startup should modify their
979 startup scripts to do so before starting the asterisk process.
983 * A new dialplan function, PJSIP_MOH_PASSTHROUGH, has been added to chan_pjsip. This
984 allows the behaviour of the moh_passthrough endpoint option to be read or changed
985 in the dialplan. This allows control on a per-call basis.
989 * The UnicastRTP channel driver provided by chan_rtp now accepts
990 "<hostname>:<port>" as an alternative to "<ip_address>:<port>" in the destination.
991 The first AAAA (preferred) or A record resolved will be used as the destination.
992 The lookup is synchronous so beware of possible dialplan delays if you specify a
997 * A new parameter, httpheader, has been added to CURLOPT function. This parameter
998 allows to set custom http headers for subsequent calls off CURL function.
999 Any setting of headers will replace the default curl headers
1000 (e.g. "Content-type: application/x-www-form-urlencoded")
1002 * A new option, followlocation, can now be enabled with the CURLOPT()
1003 dialplan function. Setting this will instruct cURL to follow 3xx
1004 redirects, which it does not by default.
1008 * The JITTERBUFFER dialplan function now has an option to enable video synchronization
1009 support. When enabled and used with a compatible channel driver (chan_sip, chan_pjsip)
1010 the video is buffered according to the size of the audio jitterbuffer and is
1011 synchronized to the audio.
1015 * Accept decimal number as argument.
1019 * You can now disable the /httpstatus page served by Asterisk's built-in
1020 HTTP server by setting 'enable_status' to 'no' in http.conf.
1024 * The 'minmemfree' configuration option now counts memory allocated to
1025 the filesystem cache as "free" because it is memory that is available
1030 * When creating a channel in ARI using the create call
1031 you can now specify dialplan variables to be set as part
1032 of the same operation.
1036 * This fix allows a realtime moh class to be unregistered from the command
1037 line. This is useful when the contents of a directory referenced by a
1038 realtime moh class have changed.
1039 The realtime moh class is then reloaded on the next request and uses the
1040 new directory contents.
1042 * A new mode - playlist - has been added to res_musiconhold. This mode allows the
1043 user to specify the files (or URLs) to play explicitly by putting them directly
1044 in musiconhold.conf.
1048 * Added a new PJSIP system setting called disable_rport.
1049 Default is no to keep support working as before.
1051 If it is false (default) it adds the 'rport' parameter in the outgoing request message.
1052 If it is true it does not add the 'rport' parameter in the outgoing request message.
1054 This is a system option, but working as a global option.
1056 res_pjsip_endpoint_identifier_ip
1058 * In 'type = identify' sections, the addresses specified for the 'match'
1059 clause can now include a port number. For IP addresses, the port is
1060 provided by including a colon after the address, followed by the
1061 desired port number. If supplied, the netmask should follow the port
1062 number. To specify a port for IPv6 addresses, the address itself must
1063 be enclosed in brackets to be parsed correctly.
1067 * The PJSIP packet logger now has the following CLI commands:
1069 pjsip set logger pcap <filename>
1071 When used this will create a pcap file containing the incoming
1072 and outgoing SIP packets, in unencrypted form.
1074 pjsip set logger console <on / off>
1076 This allows you to toggle logging to console on and off.
1078 pjsip set logger host <IP/subnet mask> add
1080 This allows you to add an additional IP address or subnet
1081 mask to logging, allowing you to log multiple instead of
1082 just a single IP address or all traffic.
1084 The normal "pjsip set logger host" CLI command has also been
1085 expanded to allow subnet masks as well.
1089 * When placing an outgoing call to a PJSIP endpoint the intent
1090 of any requested formats will now be respected. If only an audio
1091 format is requested (such as ulaw) but the underlying endpoint
1092 does not support the format the resulting SDP will still only
1093 contain an audio stream, and not any additional streams such as
1096 * Two new options, incoming_call_offer_pref and outgoing_call_offer_pref
1097 have been added to res_pjsip endpoints that specify the preferred order
1098 of codecs to use between those received/sent in an SDP offer and those
1099 set in the endpoint configuration.
1103 * This change include a new cli command 'rtp show settings'
1105 The command display by general settings of rtp configuration. For this
1106 point is added the fields: rtpstart, rtpend, dtmftimeout, rtpchecksum,
1107 strictrtp, learning_min_sequential and icesupport.
1109 * The blacklist mechanism in res_rtp_asterisk for ICE and STUN was converted to
1112 As such six now options are now available:
1121 These options have their obvious meanings as used elsewhere.
1123 Backwards compatibility was maintained by adding {stun,ice}_blacklist as
1124 aliases for {stun,ice}_deny.
1126 res_sorcery_memory_cache
1128 * The SorceryMemoryCacheExpireObject AMI action and CLI
1129 command allow expiring of a specific object within the
1130 sorcery memory cache. This is done by removing the
1131 object from the cache with the expectation that the
1132 cache will then re-populate the object when it is next
1135 For full backend caching this does not occur. The cache
1136 won't repopulate until an entire refresh is done resulting
1137 in the possibility that objects are missing until that
1140 The AMI action and CLI command will now not allow
1141 expiring of an object if the cache is configured as a
1142 full backend cache. Instead you must use either the
1143 SorceryMemoryCacheExpire or SorceryMemoryCachePopulate
1144 AMI actions or their associated CLI commands.
1148 * Added two new CLI commands to reset stats for taskprocessors. You can
1149 reset stats for a single, specific taskprocessor ('core reset
1150 taskprocessor <taskprocessor>'), or you can reset all taskprocessors
1151 ('core reset taskprocessors'). These commands will reset the counter for
1152 the number of tasks processed as well as the max queue size.
1154 * Added "like" support for 'core show taskprocessors'. Now you
1155 can specify a specific set of taskprocessors (or just one) by
1156 adding the keyword "like" to the above command, followed by
1157 your search criteria.
1159 ------------------------------------------------------------------------------
1160 --- New functionality introduced in Asterisk 17.0.0 --------------------------
1161 ------------------------------------------------------------------------------
1165 * The bridging core no longer uses the stasis cache for bridge
1166 snapshots. The latest bridge snapshot is now stored on the
1167 ast_bridge structure itself.
1169 The following APIs are no longer available since the stasis cache
1171 ast_bridge_topic_cached()
1172 ast_bridge_topic_all_cached()
1174 A topic pool is now used for individual bridge topics.
1176 The ast_bridge_cache() function was removed since there's no
1177 longer a separate container of snapshots.
1179 A new function "ast_bridges()" was created to retrieve the
1180 container of all bridges. Users formerly calling
1181 ast_bridge_cache() can use the new function to iterate over
1182 bridges and retrieve the latest snapshot directly from the
1185 The ast_bridge_snapshot_get_latest() function was renamed to
1186 ast_bridge_get_snapshot_by_uniqueid().
1188 A new function "ast_bridge_get_snapshot()" was created to retrieve
1189 the bridge snapshot directly from the bridge structure.
1191 The ast_bridge_topic_all() function now returns a normal topic
1192 not a cached one so you can't use stasis cache functions on it
1195 The ast_bridge_snapshot_type() stasis message now has the
1196 ast_bridge_snapshot_update structure as it's data. It contains
1197 the last snapshot and the new one.
1201 * The core no longer uses the stasis cache for channels snapshots.
1202 The following APIs are no longer available:
1203 ast_channel_topic_cached()
1204 ast_channel_topic_all_cached()
1205 The ast_channel_cache_all() and ast_channel_cache_by_name() functions
1206 now returns an ao2_container of ast_channel_snapshots rather than a
1207 container of stasis_messages therefore you can't call stasis_cache
1209 The ast_channel_topic_all() function now returns a normal topic,
1210 not a cached one so you can't use stasis cache functions on it either.
1211 The ast_channel_snapshot_type() stasis message now has the
1212 ast_channel_snapshot_update structure as it's data.
1213 ast_channel_snapshot_get_latest() still returns the latest snapshot.
1217 * The chan_sip module is now deprecated, users should migrate to the
1218 replacement module chan_pjsip. See guides at the Asterisk Wiki:
1219 https://wiki.asterisk.org/wiki/x/tAHOAQ
1220 https://wiki.asterisk.org/wiki/x/hYCLAQ
1222 ------------------------------------------------------------------------------
1223 --- Functionality changes from Asterisk 16.0.0 to Asterisk 17.0.0 ------------
1224 ------------------------------------------------------------------------------
1228 * A new application, this will queue up attended transfer to the given extension.
1232 * A new application, this will redirect all channels currently
1233 bridged to the caller channel to the specified destination.
1237 * Add "average_all", "highest_all", and "lowest_all" values for
1238 the remb_behavior option. These values operate on a bridge
1239 level instead of a per-source level. This means that a single
1240 REMB value is calculated and sent to every sender, instead of
1241 a REMB value that is unique for the specific sender..
1245 * Add RINGTIME and RINGTIME_MS variables containing respectively seconds and
1246 milliseconds between creation of the dialing channel and receiving the first
1249 Add PROGRESSTIME and PROGRESSTIME_MS variables analogous to the above with respect to
1250 the PROGRESS signal. Shorter of these two times should be equivalent to
1251 the PDD (Post Dial Delay) value
1253 Add DIALEDTIME_MS and ANSWEREDTIME_MS variables to get millisecond resolution
1254 versions of DIALEDTIME and ANSWEREDTIME
1258 * You can now indicate that you'd like an ice_host_candidate's local address
1259 to be published as well as the mapped address. See the sample rtp.conf
1260 for more information.
1264 * Add 'p' option to stop reading extension if user presses '#' key.
1268 * The DUNDi PBX module now supports IPv4/IPv6 dual binding.
1272 * Added a new PJSIP global setting called norefersub.
1273 Default is true to keep support working as before.
1275 res_pjsip_refer configures PJSIP norefersub capability accordingly.
1277 Checks the PJSIP global setting value.
1278 If it is true (default) it adds the norefersub capability to PJSIP.
1279 If it is false (disabled) it does not add the norefersub capability
1282 This is useful for Cisco switches that do not follow RFC4488.
1286 * DTLS packets will now be fragmented according to the MTU as set in rtp.conf. This
1287 allows larger certificates to be used for the DTLS negotiation. By default this value
1290 ------------------------------------------------------------------------------
1291 --- Functionality changes from Asterisk 16.2.0 to Asterisk 16.3.0 ----------
1292 ------------------------------------------------------------------------------
1296 * Application event filtering is now supported. An application can now specify
1297 an "allowed" and/or "disallowed" list(s) of event types. Only those types
1298 indicated in the "allowed" list are sent to the application. Conversely, any
1299 types defined in the "disallowed" list are not sent to the application. Note
1300 that if a type is specified in both lists "disallowed" takes precedence.
1302 * A new REST API call has been added: 'move'. It follows the format
1303 'channels/{channelId}/move' and can be used to move channels from one application
1304 to another without needing to exit back into the dialplan. An application must be
1305 specified, but the passing a list of arguments to the new application is optional.
1306 An example call would look like this:
1308 client.channels.move(channelId=chan.id, app='ari-example', appArgs='a,b,c')
1310 If the channel was inside of a bridge when switching applications, it will
1311 remain there. If the application specified cannot be moved to, then the channel
1312 will remain in the current application and an event will be triggered named
1313 "ApplicationMoveFailed", which will provide the destination application's name
1314 and the channel information.
1318 * A new configuration parameter "taskprocessor_overload_trigger" has been
1319 added to the pjsip.conf "globals" section. The distributor currently stops
1320 accepting new requests when any taskprocessor overload is triggered. The
1321 new option allows you to completely disable overload detection (NOT
1322 RECOMMENDED), keep the current behavior, or trigger only on pjsip
1323 taskprocessor overloads.
1327 * A new configuration parameter 'ignore_183_without_sdp' has been added
1328 to the pjsip.conf "endpoints" section. If enabled, will make chan_pjsip
1329 discard 183s that do not contain an SDP body, which can resolve no
1330 ringback tone issues as well as making the behavior match chan_sip.
1334 * A new module "res_mwi_devstate" has been added that allows subscriptions
1335 to voicemail boxes using "presence" events. This allows common BLF keys
1336 to act as voicemail waiting indicators.
1340 * Added the ability to set the wrapuptime per-member using the AddQueueMember
1343 ------------------------------------------------------------------------------
1344 --- Functionality changes from Asterisk 16.1.0 to Asterisk 16.2.0 ------------
1345 ------------------------------------------------------------------------------
1349 * Whenever an ARI application is started, a context will be created for it
1350 automatically as long as one does not already exist, following the format
1351 'stasis-<app_name>'. Two extensions are also added to this context: a match-all
1352 extension, and the 'h' extension. Any phone that registers under this context
1353 will place all calls to the corresponding Stasis application.
1357 * Added "send_contact_status_on_update_registration" global configuration option
1358 to enable sending AMI ContactStatus event when a device refreshes its registration.
1362 * Reworked the media indexer so it doesn't cache the index. Testing revealed
1363 that the cache added no benefit but that it could consume excessive memory.
1364 Two new index related functions were created: ast_sounds_get_index_for_file()
1365 and ast_media_index_update_for_file() which restrict index updating to
1366 specific sound files. The original ast_sounds_get_index() and
1367 ast_media_index_update() calls are still available but since they no longer
1368 cache the results internally, developers should re-use an index they may
1369 already have instead of calling ast_sounds_get_index() repeatedly. If
1370 information for only a single file is needed, ast_sounds_get_index_for_file()
1371 should be called instead of ast_sounds_get_index().
1375 * Before Asterisk 12, when using the automon or automixmon features defined
1376 in features.conf, a channel variable (TOUCH_MIXMONITOR_OUTPUT) was set on
1377 both channels, indicating the filename of the recording.
1379 When bridging was overhauled in Asterisk 12, the behavior was changed such
1380 that the variable was only set on the peer channel and not on the channel
1381 that initiated the automon or automixmon.
1383 The previous behavior has been restored so both channels receive the
1384 channel variable when one of these features is invoked.
1388 * You can now specify a special context with the "aliasescontext" parameter
1389 in voicemail.conf which will allow you to create aliases for physical
1392 ------------------------------------------------------------------------------
1393 --- Functionality changes from Asterisk 16.0.0 to Asterisk 16.1.0 ------------
1394 ------------------------------------------------------------------------------
1398 * pbx_config will now find and process multiple 'globals' sections from
1399 extensions.conf. Variables are processed in the order they are found
1400 and duplicate variables overwrite the previous value.
1404 * New dialplan function PJSIP_PARSE_URI added to parse an URI and return
1405 a specified part of the URI.
1409 * ast_bt_get_symbols() now returns a vector of strings instead of an
1410 array of strings. This must be freed with ast_bt_free_symbols.
1414 * New options 'trust_connected_line' and 'send_connected_line' have been
1415 added to the endpoint. The option 'trust_connected_line' is to control
1416 if connected line updates are accepted from this endpoint.
1417 The option 'send_connected_line' is to control if connected line updates
1418 can be sent to this endpoint.
1419 The default value is 'yes' for both options.
1423 * The existing strictrtp option in rtp.conf has a new choice availabe, called
1424 'seqno', which behaves the same way as setting strictrtp to 'yes', but will
1425 ignore the time interval during learning so that bursts of packets can still
1426 trigger learning our source.
1428 ------------------------------------------------------------------------------
1429 --- Functionality changes from Asterisk 15 to Asterisk 16 --------------------
1430 ------------------------------------------------------------------------------
1434 * The app_fax module is now deprecated, users should migrate to the
1435 replacement module res_fax.
1439 * An 'a' option has been added to the Originate dialplan application which
1440 will execute the originate in an asynchronous fashion. If set then the
1441 application will return immediately without waiting for the originated
1446 * MALLOC_DEBUG no longer has an effect on Asterisk's ABI. Asterisk built
1447 with MALLOC_DEBUG can now successfully load binary modules built without
1448 MALLOC_DEBUG and vice versa. Third-party pre-compiled modules no longer
1449 need to have a special build with it enabled.
1451 * Asterisk now depends on libjansson >= 2.11. If this version is not
1452 available on your distro you can use `./configure --with-jansson-bundled`.
1456 * The app_macro module is now deprecated and by default it is no longer
1457 built. Users should migrate to app_stack (Gosub). A warning is logged
1458 the first time any Macro is used.
1462 * The app_setcallerid module has been removed. The CALLERID dialplan function
1463 should be used instead.
1467 * New function SIP_HEADERS() enumerates all headers in the incoming INVITE.
1469 * The variable GET_TRANSFERRER_DATA set in the peer channel causes matching
1470 headers be retrieved from the REFER message and made accessible to the
1471 dialplan in the hash TRANSFER_DATA.
1475 * Timeouts for reading digits from analog phones are now configurable in
1476 chan_dahdi.conf: firstdigit_timeout, interdigit_timeout, matchdigit_timeout.
1480 * The ContactStatus and Status fields for the manager events ContactStatus
1481 and ContactStatusDetail are now set to "NonQualified" when a contact exists
1482 but has not been qualified.
1484 * The "Newexten" event is now part of the "dialplan" class. The documentation
1485 for Asterisk 15 already specified this, but the implementation was actually
1486 using the "call" class instead.
1490 * The ContactInfo event's contact_status field is now set to "NonQualified"
1491 when a contact exists but has not been qualified.
1495 * Added the ability to set the wrapuptime in the configuration of member.
1496 When set the wrapuptime on the member is used instead of the wrapuptime
1497 defined for the queue itself.
1499 * Added predial handler support for caller and callee channels with the
1500 B and b options respectively. This is similar to the predial support
1505 * The res_config_sqlite module is now deprecated, users should migrate to the
1506 replacement module res_config_sqlite3.
1510 * The res_monitor module is now deprecated, users should migrate to the
1511 replacement module app_mixmonitor.
1515 * A new AMI action, PJSIPShowAors, has been added which displays information
1516 about all configured PJSIP AORs.
1518 * A new AMI action, PJSIPShowAuths, has been added which displays information
1519 about all configured PJSIP Auths.
1521 * A new AMI action, PJSIPShowContacts, has been added which displays information
1522 about all configured PJSIP Contacts.
1524 res_pjsip_registrar_expire
1526 * The res_pjsip_registrar_expire module has been removed. The functionality has
1527 been moved into res_pjsip_registrar.
1529 func_audiohookinherit
1531 * The func_audiohookinherit module has been removed. Due to architectural changes
1532 in Asterisk 12, audiohook inheritance is performed automatically and this
1533 function now lacks function.
1537 * The cdr_syslog module is now deprecated and by default it is no longer
1542 * The cdr_sqlite module has been removed. Users should move to using the
1543 cdr_sqlite3_custom module instead.
1547 * The format_jpeg module has been removed.
1551 * DUNDi now supports IPv6
1555 * libedit is no longer available as an embedded library and must be provided
1557 * The STATIC_BUILD functionality has been removed as it has not been maintained
1558 and has not worked in quite some time.
1559 * The module loader now enforces inter-module dependencies. This ensures that
1560 a module is not started before another it depends on, even if preload is used.
1561 If a dependency is not available or fails to startup this will block any
1562 dependants from startup.
1563 * Parts of the Asterisk core which can load configuration from realtime are now
1564 built-in modules. It is no longer necessary to preload realtime drivers as
1565 they are always initialized before the built-in modules.
1567 ------------------------------------------------------------------------------
1568 --- Functionality changes from Asterisk 15.5.0 to Asterisk 15.6.0 ------------
1569 ------------------------------------------------------------------------------
1573 * A new option 'suppress_q850_reason_headers' has been added to the endpoint
1574 object. Some devices can't accept multiple Reason headers and get confused
1575 when both 'SIP' and 'Q.850' Reason headers are received. This option allows
1576 the 'Q.850' Reason header to be suppressed. The default value is 'no'.
1578 res_pjsip_endpoint_identifier_ip
1580 * Added regex support to the identify section match_header option. You
1581 specify a regex instead of an explicit string by surrounding the header
1583 match_header = SIPHeader: /regex/
1585 ------------------------------------------------------------------------------
1586 --- Functionality changes from Asterisk 15.4.0 to Asterisk 15.5.0 ------------
1587 ------------------------------------------------------------------------------
1591 * Core bridging and, more specifically, bridge_softmix have been enhanced to
1592 relay received frames of type TEXT or TEXT_DATA to all participants in a
1593 softmix bridge. res_pjsip_messaging and chan_pjsip have been enhanced to
1594 take advantage of this so when res_pjsip_messaging receives an in-dialog
1595 MESSAGE message from a user in a conference call, it's relayed to all
1596 other participants in the call.
1600 * Support Enhanced Messaging. SendText now accepts new channel variables
1601 that can be used to override the To and From display names and set the
1602 Content-Type of a message. Since you can now set Content-Type, other
1603 text/* content types are now valid.
1607 * ConfbridgeList now shows talking status. This utilizes the same voice
1608 detection as the ConfbridgeTalking event, so bridges must be configured
1609 with "talk_detection_events=yes" for this flag to have meaning.
1611 * ConfBridge can now send events to participants via in-dialog MESSAGEs.
1612 All current Confbridge events are supported, such as ConfbridgeJoin,
1613 ConfbridgeLeave, etc. In addition to those events, a new event
1614 ConfbridgeWelcome has been added that will send a list of all
1615 current participants to a new participant.
1619 * Two new options have been added to the system and endpoint objects to
1620 control whether, on outbound calls, Asterisk will accept updated SDP answers
1621 during the initial INVITE transaction when 100rel is not in effect.
1622 This usually happens when the INVITE is forked to multiple UASs and more
1623 than one sends an SDP answer or when a single UAS needs to change a media
1624 port to switch from custom ringback to the actual media destination.
1626 The 'follow_early_media_forked' option sets whether Asterisk will accept
1627 the updated SDP when the To tag on the subsequent response is different than
1628 that on the the previous response. This usually occurs in the forked INVITE
1629 scenario. The default value is "yes" which is the current behavior.
1631 The 'accept_multiple_sdp_answers' flag sets whether Asterisk will accept the
1632 updated SDP when the To tag on the subsequent response is the same as that
1633 on the previous response. This can occur when a UAS needs to switch media
1634 ports from custom ringback to the final media path. The default value is
1635 "no" which is the current behavior.
1637 These options have to be enabled system-wide in the system config section
1638 of pjsip.conf as well as on individual endpoints that require the
1641 ------------------------------------------------------------------------------
1642 --- Functionality changes from Asterisk 15.3.0 to Asterisk 15.4.0 ------------
1643 ------------------------------------------------------------------------------
1647 * A new configuration option "genericplc_on_equal_codecs" was added to the
1648 "plc" section of codecs.conf to allow generic packet loss concealment even
1649 if no transcoding was originally needed. Transcoding via SLIN is forced
1654 * Added the "cache_pools" option to pjproject.conf. Disabling the option
1655 helps track down pool content mismanagement when using valgrind or
1656 MALLOC_DEBUG. The cache gets in the way of determining if the pool contents
1657 are used after free and who freed it.
1661 * Extend the PJSIPNotify AMI command to send an in-dialog notify on a
1664 ------------------------------------------------------------------------------
1665 --- Functionality changes from Asterisk 15.2.0 to Asterisk 15.3.0 ------------
1666 ------------------------------------------------------------------------------
1670 * During dialplan reload log messages are produced for each context,
1671 extension and include. These messages are no longer printed by the
1672 verbose loggers, they are now only logged as debug messages.
1676 * Added the Muted header to the ConfbridgeJoin AMI event to indicate the
1677 participant's starting mute status.
1679 * Made the AMI ConfbridgeList action's ConfbridgeList events output all
1680 the standard channel snapshot headers instead of a few hand-coded channel
1681 snapshot headers. The benefit is that the CallerIDName gets disruptive
1682 characters like CR, LF, Tab, and a few others escaped. However, an empty
1683 CallerIDName is now output as "<unknown>" instead of "<no name>".
1687 * Added a new prompt, connecting-prompt, which will be played
1688 (if configured) to the "winner" callee before connecting the call.
1692 * Users who are matching endpoints by SIP header need to reevaluate their
1693 global "endpoint_identifier_order" option in light of the "ip" endpoint
1694 identifier method split into the "ip" and "header" endpoint identifier
1697 * The pjsip_transport_event feature introduced in 15.1.0 has been refactored.
1698 Any external modules that may have used that feature (highly unlikely) will
1699 need to be changed as the API has been altered slightly.
1701 res_pjsip_endpoint_identifier_ip
1703 * The endpoint identifier "ip" method previously recognized endpoints either
1704 by IP address or a matching SIP header. The "ip" endpoint identifier method
1705 is now split into the "ip" and "header" endpoint identifier methods. The
1706 "ip" endpoint identifier method only matches by IP address and the "header"
1707 endpoint identifier method only matches by SIP header. The split allows the
1708 user to control the relative priority of the IP address and the SIP header
1709 identification methods in the global "endpoint_identifier_order" option.
1710 e.g., If you have two type=identify sections where one matches by IP address
1711 for endpoint alice and the other matches by SIP header for endpoint bob then
1712 you can now predict which endpoint is matched when a request comes in that
1717 * In an earlier release, inbound registrations on a reliable transport
1718 were pruned on Asterisk restart since the TCP connection would have
1719 been torn down and become unusable when Asterisk stopped. This same
1720 process is now also applied to inbound subscriptions. Since this
1721 required the addition of a new column to the ps_subscription_persistence
1722 realtime table, users who store their subscriptions in a database will
1723 need to run the "alembic upgrade head" process to add the column to
1726 res_pjsip_transport_management
1728 * Since res_pjsip_transport_management provides several attack
1729 mitigation features, its functionality moved to res_pjsip and
1730 this module has been removed. This way the features will always
1731 be available if res_pjsip is loaded.
1733 ------------------------------------------------------------------------------
1734 --- Functionality changes from Asterisk 15.1.0 to Asterisk 15.2.0 ------------
1735 ------------------------------------------------------------------------------
1739 * Added the "cache_media_frames" option to asterisk.conf. Disabling the option
1740 helps track down media frame mismanagement when using valgrind or
1741 MALLOC_DEBUG. The cache gets in the way of determining if the frame is
1742 used after free and who freed it. NOTE: This option has no effect when
1743 Asterisk is compiled with the LOW_MEMORY compile time option enabled because
1744 the cache code does not exist.
1748 * Calls to invalid extensions are now reported as an ACL failure security event
1749 "no_extension_match".
1753 * The X.509 certificate used for DTLS negotiation can now be automatically
1754 generated. This is supported by res_pjsip by specifying
1755 "dtls_auto_generate_cert = yes" on a PJSIP endpoint. For chan_sip, you
1756 would set "dtlsautogeneratecert = yes" either in the [general] section of
1757 sip.conf or on a specific peer.
1761 * The "identify_by" on endpoints can now be set to "ip" to restrict an endpoint
1762 being matched based only on IP address. To ensure no behavior change the
1763 default has been changed to "username,ip".
1765 ------------------------------------------------------------------------------
1766 --- Functionality changes from Asterisk 15.0.0 to Asterisk 15.1.0 ------------
1767 ------------------------------------------------------------------------------
1771 * The "remove_existing" option now allows a registration to succeed by
1772 displacing any existing contacts that now exceed the "max_contacts" count.
1773 Any removed contacts are the next to expire. The behaviour change is
1774 beneficial when "rewrite_contact" is enabled and "max_contacts" is greater
1775 than one. The removed contact is likely the old contact created by
1776 "rewrite_contact" that the device is refreshing.
1780 * Added a new CancelAtxfer action that cancels an attended transfer.
1782 ------------------------------------------------------------------------------
1783 --- Functionality changes from Asterisk 14 to Asterisk 15 --------------------
1784 ------------------------------------------------------------------------------
1788 * PAUSEALL/UNPAUSEALL now sets the pause reason in the queue_log if it has
1791 * A new option, "announce-position-only-up," has been added that, when set to
1792 yes, causes position announcements to only be played when the caller's
1793 queue position has improved since the last time that we announced their
1794 position. This default is no.
1798 * '--with-pjproject-bundled' is now the default when running ./configure
1799 It can be disabled with '--without-pjproject-bundled'.
1801 * A '--with-download-cache' option is now available which is equivalent to
1802 setting '--with-sounds-cache' and '--with-externals-cache' to the same
1803 value. The download cache can also be set via the AST_DOWNLOAD_CACHE
1804 environment variable.
1806 ------------------------------------------------------------------------------
1807 --- Functionality changes from Asterisk 14.6.0 to Asterisk 14.7.0 ------------
1808 ------------------------------------------------------------------------------
1812 * The "external_media_address" on transports is now resolved using dnsmgr and
1813 when dnsmgr refreshes are enabled will be automatically updated with the new
1814 IP address of a given hostname.
1816 * A new endpoint parameter "incoming_mwi_mailbox" allows Asterisk to receive
1817 unsolicited MWI NOTIFY requests and make them available to other modules via
1818 the stasis message bus.
1822 * By default, when res_musiconhold reloads or unloads, it sends a HUP signal
1823 to custom applications (and all descendants), waits 100ms, then sends a
1824 TERM signal, waits 100ms, then finally sends a KILL signal. An application
1825 which is interacting with an external device and/or spawns children of its
1826 own may not be able to exit cleanly in the default times, expecially if sent
1827 a KILL signal, or if it's children are getting signals directly from
1828 res_musiconhoild. To allow extra time, the 'kill_escalation_delay'
1829 class option can be used to set the number of milliseconds res_musiconhold
1830 waits before escalating kill signals, with the default being the current
1831 100ms. To control to whom the signals are sent, the "kill_method"
1832 class option can be set to "process_group" (the default, existing behavior),
1833 which sends signals to the application and its descendants directly, or
1834 "process" which sends signals only to the application itself.
1836 * New dialplan function PJSIP_DTMF_MODE added to get or change the DTMF mode
1837 of a channel on a per-call basis.
1841 * OAuth 2.0 authentication is now supported when contacting Google. Follow the
1842 instructions in xmpp.conf.sample to retrieve and configure the necessary
1845 ------------------------------------------------------------------------------
1846 --- Functionality changes from Asterisk 14.5.0 to Asterisk 14.6.0 ------------
1847 ------------------------------------------------------------------------------
1851 * A new global option "imap_poll_logout" was added to specify whether need to
1852 disconnect from the IMAP server after polling of mailboxes.
1857 * A new endpoint option "refer_blind_progress" was added to turn off notifying
1858 the progress details on Blind Transfer. If this option is not set then
1859 the chan_pjsip will send NOTIFY "200 OK" immediately after "202 Accepted".
1860 On default is enabled.
1861 Some SIP phones like Mitel/Aastra or Snom keep the line busy until
1864 * A new endpoint option "notify_early_inuse_ringing" was added to control
1865 whether to notify dialog-info state 'early' or 'confirmed' on Ringing
1868 * The endpoint option 'dtmf_mode' has a new option 'auto_dtmf' added. This
1869 mode works similar to 'auto' except uses DTMF INFO as fallback instead of
1874 * The EAGI() application will now look for a dialplan variable named
1875 EAGI_AUDIO_FORMAT and use that format with the 'enhanced' audio pipe that
1876 EAGI provides. If not specified, it will continue to use the default signed
1881 * When dialing an endpoint directly or using the PJSIP_DIAL_CONTACTS dialplan
1882 function any contact which is considered unreachable due to qualify being
1883 enabled will no longer be called.
1885 * The asymmetric_rtp_codec option now also controls whether chan_pjsip will
1886 send media as-is without transcoding if the codec has been negotiated in the
1887 SDP. If set to "no" then Asterisk will only ever send the preferred codec
1888 from the SDP, unless the remote side sends a different codec and we will
1893 * Added a new PJPROJECT_CONFIGURE_OPTS environment variable which can be used
1894 to pass arbitrary options to the bundled pjproject configure.
1896 * Automatically set the bundled pjproject configure --host and --build
1897 options to match those supplied for the asterisk configure.
1899 ------------------------------------------------------------------------------
1900 --- Functionality changes from Asterisk 14.4.0 to Asterisk 14.5.0 ------------
1901 ------------------------------------------------------------------------------
1905 * Added the stun_blacklist option to rtp.conf. Some multihomed servers have
1906 IP interfaces that cannot reach the STUN server specified by stunaddr.
1907 Blacklist those interface subnets from trying to send a STUN packet to find
1908 the external IP address. Attempting to send the STUN packet needlessly
1909 delays processing incoming and outgoing SIP INVITEs because we will wait
1910 for a response that can never come until we give up on the response.
1911 Multiple subnets may be listed.
1915 * Added logger_queue_limit to the configuration options.
1916 All log messages go to a queue serviced by a single thread
1917 which does all the IO. This setting controls how big that
1918 queue can get (and therefore how much memory is allocated)
1919 before new messages are discarded.
1920 The default is 1000.
1922 res_pjsip_config_wizard
1924 * Two new parameters have been added to the pjsip config wizard.
1925 Setting 'sends_line_with_registrations' to true will cause the wizard
1926 to skip the creation of an identify object to match incoming requests
1927 to the endpoint and instead add the line and endpoint parameters to
1928 the outbound registration object.
1929 Setting 'outbound_proxy' is a shortcut for adding individual
1930 endpoint/outbound_proxy, aor/outbound_proxy and registration/outbound_proxy
1935 * If the 'call-id' value is specified for the uuid_type option and a
1936 chan_sip channel is used the resulting HEP traffic will now contain the
1937 SIP Call-ID instead of the Asterisk channel name.
1939 ------------------------------------------------------------------------------
1940 --- Functionality changes from Asterisk 14.3.0 to Asterisk 14.4.0 ------------
1941 ------------------------------------------------------------------------------
1945 * LOW_MEMORY no longer has an effect on Asterisk ABI. Symbols that were
1946 previously suppressed by LOW_MEMORY are now replaced by stub functions.
1947 Asterisk built with LOW_MEMORY can now successfully load binary modules
1948 built without LOW_MEMORY and vice versa.
1950 * RADIUS backends for CEL and CDR can now also be built using the radcli
1951 client library, in addition to the existing support for building them
1952 using either freeradius or radiusclient-ng.
1956 * ASTERISK_REGISTER_FILE was no longer useful and has been removed. Sources
1957 which use mtx_prof must now manually declare and initialize the variable.
1961 * If an offer is received with optional SRTP (a media stream with RTP/AVP but
1962 which contains a crypto line) chan_sip will now accept it and enable SRTP.
1963 If you would like to do optional SRTP on outbound you will need to create
1964 a dialplan that dials with it enabled initially and if it fails fall back to
1969 * Added endpoint configuration parameter "preferred_codec_only".
1970 This allow asterisk response to a SIP invite with the single most
1971 preferred codec rather than advertising all joint codec capabilities.
1972 This limits the other side's codec choice to exactly what we prefer.
1976 * To fix a memory leak the syslog channel is now empty if it has not been set
1977 and used by a syslog channel in the logger.
1981 * To fix a memory leak the syslog channel is now empty if it has not been set
1982 and used by a syslog channel in the logger.
1986 * New setting "rtp_pt_dynamic = 35" in asterisk.conf:
1987 Normally the Dynamic RTP Payload Type numbers are 96-127, which allow just 32
1988 formats. To avoid the message "No Dynamic RTP mapping available", the range
1989 was changed to 35-63,96-127. This is allowed by RFC 3551 section 3. However,
1990 when you use more than 32 formats and calls are not accepted by a remote
1991 implementation, please report this and go back to rtp_pt_dynamic = 96.
1993 * A new setting, "rtp_use_dynamic", has been added in asterisk.conf". When set
1994 to "yes" RTP dynamic payload types are assigned dynamically per RTP instance.
1995 When set to "no" RTP dynamic payload types are globally initialized to pre-
1996 designated numbers and function similar to static payload types.
2000 * Added support to gosub predial routines on both original channel and on the
2001 created channel using options parameter (like app_dial) B() and b(). This
2002 allows for adding variables to newly created channel or, e.g. setting callerid.
2006 * 'dialplan show' output will now show [config_file:line_number] instead of
2007 [registrar] when that information is available. Currently only extensions
2008 registered by pbx_config when loading/reloading will use this format.
2012 * Add 'QueueUpdate' application which can be used to track outbound calls
2017 * Asterisk will now set the AST_OUTGOING_ATTEMPT channel variable so that
2018 attempt-specific behavior is possible. This is a 1-based number that
2019 simply increases by 1 for each attempt.
2021 ------------------------------------------------------------------------------
2022 --- Functionality changes from Asterisk 14.3.0 to Asterisk 14.4.0 ------------
2023 ------------------------------------------------------------------------------
2027 * The 'PJSIPShowEndpoint' command's respone event of 'IdentifyDetail' now
2028 contains a new optional parameter, 'MatchHeader', mapping to the new
2029 configuration option 'match_header' for the corresponding 'identify' object.
2030 It should be noted that since 'match_header' takes in a key: value pair, the
2031 event parameter will contain a ':' as well.
2035 * Added new 'u' option to Record() application which prevents Asterisk from
2036 truncating silence from the end of recorded files.
2038 res_pjsip_outbound_registration
2040 * Outbound registrations are now refreshed when res_stun_monitor detects
2041 a network change event has happened.
2042 The 'pjsip send (un)register' CLI commands were updated to accept '*all'
2043 as an argument to operate on all registrations.
2044 The 'PJSIP(Un)Register' AMI commands were updated to also accept '*all'.
2048 * The 'Comedian Mail' prompts can now be overriden using the 'vm-login' and
2049 'vm-newuser' configuration options in voicemail.conf.
2051 * Added 'fromstring' field to the voicemail boxes. If set, it will override
2052 the global 'fromstring' field on a per-mailbox basis.
2056 * Added CHANNEL(callid) to retrieve the call log tag associated with the
2057 channel. e.g., [C-00000000] Dialplan now has access to the call log
2058 search key associated with the channel so it can be saved in case there
2059 is a problem with the call.
2063 * A new transport parameter 'symmetric_transport' has been added.
2064 When a request from a dynamic contact comes in on a transport with this
2065 option set to 'yes', the transport name will be saved and used for
2066 subsequent outgoing requests like OPTIONS, NOTIFY and INVITE. It's
2067 saved as a contact uri parameter named 'x-ast-txp' and will display with
2068 the contact uri in CLI, AMI, and ARI output. On the outgoing request,
2069 if a transport wasn't explicitly set on the endpoint AND the request URI
2070 is not a hostname, the saved transport will be used and the 'x-ast-txp'
2071 parameter stripped from the outgoing packet. To facilitate recreation of
2072 subscriptions on asterisk restart, a new column 'contact_uri' needed to be
2073 added to the ps_subcsription_persistence table. Since new columns were
2074 added to both transport and subscription_persistence, an alembic upgrade
2075 should be run to bring the database tables up to date.
2077 * A new option, allow_overlap, has been added to endpoints which allows
2078 overlap dialing functionality to be enabled or disabled. The option defaults
2081 res_pjsip_transport_websocket
2083 * Removed non-secure websocket support. Firefox and Chrome have not allowed
2084 non-secure websockets for quite some time so this shouldn't be an issue
2085 for people. Attempting to use a non-secure websocket may or may not work
2086 when Asterisk attempts to send SIP requests to do something like initiate
2089 res_pjsip_endpoint_identifier_ip
2091 * A new option has been added to the 'identify' configuration object,
2092 'match_header'. The 'match_header' attribute should contain a SIP
2093 header: value pair that, When set, will cause inbound requests that contain
2094 the matching SIP header/value pair to be associated with the corresponding
2095 endpoint. This option is cumulative with the 'match' option, so that if
2096 either option matches the request, the request is associated with the
2099 In a future release, this module will be renamed to something more
2100 appropriate, as it now matches inbound requests on more than just IP
2105 * The RTP layer of Asterisk now has support for RFC 5761: "Multiplexing RTP
2106 Data and Control Packets on a Single Port." So far, the only channel driver
2107 that supports this feature is chan_pjsip. You can set "rtcp_mux = yes" on
2108 a PJSIP endpoint in pjsip.conf to enable the feature.
2110 ------------------------------------------------------------------------------
2111 --- Functionality changes from Asterisk 14.2.0 to Asterisk 14.3.0 ------------
2112 ------------------------------------------------------------------------------
2116 * Added new CLI command "pjproject set log level". The new command allows
2117 the maximum PJPROJECT log levels to be adjusted dynamically and
2118 independently from the set debug logging level like many other similar
2119 module debug logging commands.
2121 * Added new companion CLI command "pjproject show log level" to allow the
2122 user to see the current maximum pjproject logging level.
2124 * Added new pjproject.conf startup section "log_level' option to set the
2125 initial maximum PJPROJECT logging level.
2127 res_pjsip_outbound_registration
2129 * Statsd no longer logs redundant status PJSIP.registrations.state changes
2130 for internal state transitions that don't change the reported public status
2135 * The PJSIPShowRegistrationInboundContactStatuses AMI command has been added
2136 to return ContactStatusDetail events as opposed to
2137 PJSIPShowRegistrationsInbound which just a dumps every defined AOR.
2141 * Six existing contact fields have been added to the end of the
2142 ContactStatusDetail AMI event:
2143 ID, AuthenticateQualify, OutboundProxy, Path, QualifyFrequency and
2144 QualifyTimeout. Existing fields have not been disturbed.
2146 res_pjsip_endpoint_identifier_ip
2148 * SRV lookups can now be done on provided hostnames to determine additional
2149 source IP addresses for requests. This is configurable using the
2150 "srv_lookups" option on the identify and defaults to "yes".
2154 * The 'ari set debug' command has been enhanced to accept 'all' as an
2155 application name. This allows dumping of all apps even if an app
2156 hasn't registered yet.
2158 * 'ari set debug' now displays requests and responses as well as events.
2160 ------------------------------------------------------------------------------
2161 --- Functionality changes from Asterisk 14.1.0 to Asterisk 14.2.0 ------------
2162 ------------------------------------------------------------------------------
2166 * Events that reference a bridge may now contain two new optional fields:
2167 - 'BridgeVideoSourceMode': the video source mode for the bridge.
2168 Can be one of 'none', 'talker', or 'single'.
2169 - 'BridgeVideoSource': the unique ID of the channel that is the video
2170 source in this bridge, if one exists.
2172 * A new event, BridgeVideoSourceUpdate, has been added with a class
2173 authorization of CALL. The event is raised when the video source changes
2174 in a multi-party mixing bridge.
2178 * The bridges resource now exposes two new operations:
2179 - POST /bridges/{bridgeId}/videoSource/{channelId}: Set a video source in a
2180 multi-party mixing bridge
2181 - DELETE /bridges/{bridgeId}/videoSource: Remove the set video source,
2182 reverting to talk detection for the video source
2184 * The bridge model in any returned response or event now contains the following
2186 - video_mode: the video source mode for the bridge. Can be one of 'none',
2187 'talker', or 'single'.
2188 - video_source_id: the unique ID of the channel that is the video source
2189 in this bridge, if one exists.
2191 * A new event, BridgeVideoSourceChanged, has been added for bridges.
2192 Applications subscribed to a bridge will receive this event when the source
2193 of video changes in a mixing bridge.
2195 * The ARI major version has been bumped. There are not any known breaking changes
2196 in ARI. The major version has been bumped because otherwise we can end up with
2197 overlapping version numbers between different Asterisk versions. Now each major
2198 version of Asterisk will bring with it a change in the major version of ARI.
2199 The ARI version in Asterisk 14 is now 2.0.0.
2203 * Automatic dual stack support is now implemented. Depending on DNS resolution
2204 and the transport used for sending a message the SIP signaling and SDP will
2205 be updated with the correct IP address and protocol version. This means that
2206 the rtp_ipv6 and t38_udptl_ipv6 options no longer have any effect. The
2207 res_pjsip_multihomed module has also been moved into core res_pjsip to ensure
2208 that messages are updated with the correct address information in all cases.
2212 * The default behavior for RTP codecs has been changed. The sending codec will
2213 now match the receiving codec. This can be turned off and behavior reverted
2214 to asymmetric using the "asymmetric_rtp_codec" endpoint option. If this
2215 option is set then the sending and received codec are allowed to differ.
2219 * Three new CLI commands have been added for ARI:
2221 Displays a listing of all registered ARI applications.
2222 - ari show app <name>:
2223 Display detailed information about a registered ARI application.
2224 - ari set debug <name> <on|off>:
2225 Enable/disable debugging of an ARI application. When debugged, verbose
2226 information will be sent to the Asterisk CLI.
2231 * A new dialplan variable, ABANDONED, is set when the call is not answered
2236 * The configuration file ari.conf now supports a channelvars option, which
2237 specifies a list of channel variables to include in each channel-oriented
2240 ------------------------------------------------------------------------------
2241 --- Functionality changes from Asterisk 14.0.0 to Asterisk 14.1.0 ------------
2242 ------------------------------------------------------------------------------
2246 * The res_digium_phone, codec_g729a, codec_silk, codec_siren7 and
2247 codec_siren14 binary modules hosted at downloads.digium.com can now be
2248 automatically downloaded and installed during the Asterisk install
2249 process. If selected in menuselect, when 'make install' is run, the
2250 script will check the downloads site for a new version and download
2251 and install it if needed. The '--with-externals-cache' option to
2252 ./configure can be used to specify a location to cache the latest
2253 tarballs so they don't have to be re-downloaded for every install.
2257 * Added "tps_queue_high" and "tps_queue_low" options.
2258 The options can modify the taskprocessor alert levels for this module.
2259 Additional information can be found in the sample configuration file at
2260 config/samples/voicemail.conf.sample.
2264 * Added "mwi_tps_queue_high" and "mwi_tps_queue_low" global configuration
2265 options to tune taskprocessor alert levels.
2267 * Added "mwi_disable_initial_unsolicited" global configuration option
2268 to disable sending unsolicited MWI to all endpoints on startup.
2269 Additional information can be found in the sample configuration file at
2270 config/samples/pjsip.conf.sample.
2274 * A new dialplan function, PJSIP_SEND_SESSION_REFRESH, has been added. When
2275 invoked, a re-INVITE or UPDATE request will be sent immediately to the
2276 endpoint underlying the channel. When used in combination with the existing
2277 dialplan function PJSIP_MEDIA_OFFER, this allows the formats on a PJSIP
2278 channel to be re-negotiated and updated after session set up.
2282 * A new endpoint configuration parameter 'contact_user' has been added which
2283 when set will override the default user set on Contact headers in outgoing
2286 * If you are using a sorcery realtime backend to store global res_pjsip
2287 options (ps_globals table) then you now have to do a res_pjsip reload for
2288 changes to these options to take effect. If you are using pjsip.conf to
2289 configure these options then you already had to do a reload after making
2292 * Added "ignore_uri_user_options" global configuration option for
2293 compatibility with an ITSP that sends URI user field options. When enabled
2294 the user field is truncated at the first semicolon.
2296 URI: "sip:1235557890;phone-context=national@x.x.x.x;user=phone"
2297 The user field is "1235557890;phone-context=national"
2298 Which is truncated to this: "1235557890"
2300 Note: The caller-id and redirecting number strings obtained from incoming
2301 SIP URI user fields are now always truncated at the first semicolon.
2305 * An option, ice_blacklist, has been added which allows certain subnets to be
2306 excluded from local ICE candidates.
2310 * Some sounds played into the bridge are played asynchronously. This, for
2311 instance, allows a channel to immediately exit the ConfBridge without having
2312 to wait for a leave announcement to play.
2316 * Added the "Q" option which sets the Q.850/Q.931 cause on unanswered channels
2317 when another channel answers the call. The default of ANSWERED_ELSEWHERE
2322 * ARI events will all now include a new field in the root of the JSON message,
2323 'asterisk_id'. This will be the unique ID for the Asterisk system
2324 transmitting the event. The value can be overridden using the 'entityid'
2325 setting in asterisk.conf.
2327 ------------------------------------------------------------------------------
2328 --- Functionality changes from Asterisk 13 to Asterisk 14 --------------------
2329 ------------------------------------------------------------------------------
2333 * A new event, "DialState" has been added. This is similar to "DialBegin" and
2334 "DialEnd" in that it tracks the state of a dialed call. The difference is that
2335 this indicates some intermediate state change in the dial attempt, such as
2336 "RINGING", "PROGRESS", or "PROCEEDING".
2340 * A new ARI method has been added to the channels resource. "create" allows for
2341 you to create a new channel and place that channel into a Stasis application.
2342 This is similar to origination except that the specified channel is not
2343 dialed. This allows for an application writer to create a channel, perform
2344 manipulations on it, and then delay dialing the channel until later.
2346 * To complement the "create" method, a "dial" method has been added to the
2347 channels resource in order to place a call to a created channel.
2349 * All operations that initiate playback of media on a resource now support
2350 a list of media URIs. The list of URIs are played in the order they are
2351 presented to the resource. A new event, "PlaybackContinuing", is raised when
2352 a media URI finishes but before the next media URI starts. When a list is
2353 played, the "Playback" model will contain the optional attribute
2354 "next_media_uri", which specifies the next media URI in the list to be played
2355 back to the resource. The "PlaybackFinished" event is raised when all media
2358 * Stored recordings now allow for the media associated with a stored recording
2359 to be retrieved. The new route, GET /recordings/stored/{name}/file, will
2360 transmit the raw media file to the requester as binary.
2363 * "Dial" events have been modified to not only be sent when dialing begins and ends.
2364 They now are also sent for intermediate states, such as "RINGING", "PROGRESS", and
2372 * A new application in Asterisk, this will join the calling channel
2373 to an existing bridge containing the named channel prefix.
2377 * Added the 'l' option, which forces ChanSpy's audiohook to use a long queue
2378 to store the audio frames. This option is useful if audio loss is
2379 experienced when using ChanSpy, but may introduce some delay in the audio
2380 feed on the listening channel.
2384 * Added format attribute negotiation for the iLBC audio codec. Format attribute
2385 negotiation is provided by the res_format_attr_ilbc module. iLBC 20 is the
2386 default now. Falls back to iLBC 30, when the remote party requests this.
2390 * Added the ability to pass options to MixMonitor when recording is used with
2391 ConfBridge. This includes the addition of the following configuration
2392 parameters for the 'bridge' object:
2393 - record_file_timestamp: whether or not to append the start time to the
2395 - record_options: the options to pass to the MixMonitor application
2396 - record_command: a command to execute when recording is finished
2397 Note that these options may also be with the CONFBRIDGE function.
2401 * Remote files can now be retrieved and played back. See the Playback
2402 dialplan application for more details.
2406 * It is now possible to disable the prompt from a callee by setting
2407 'enable_callee_prompt = no' in followme.conf.
2411 * Remote files can now be retrieved and played back via the Playback and other
2412 media playback dialplan applications. This is done by directly providing
2413 the URL to play to the dialplan application:
2414 same => n,Playback(http://1.1.1.1/howler-monkeys-fl.wav)
2415 Note that unlike 'normal' media files, the entire URI to the file must be
2416 provided, including the file extension. Currently, on HTTP and HTTPS URI
2417 schemes are supported.
2421 * Added field ReasonPause on QueueMemberStatus if set when paused, the reason
2422 the queue member was paused.
2424 * Added field LastPause on QueueMemberStatus for time when started the last
2425 pause for a queue member.
2427 * Show the time when started the last pause for queue member on CLI for command
2432 * Added the 'n' option, which prevents the SMS from being written to the log
2433 file. This is needed for those countries with privacy laws that require
2434 providers to not log SMS content.
2442 * The CALLERID(ani2) value for incoming calls is now populated in featdmf
2443 signaling mode. The information was previously discarded.
2445 * Added the force_restart_unavailable_chans compatibility option. When
2446 enabled it causes Asterisk to restart the ISDN B channel if an outgoing
2447 call receives cause 44 (Requested channel not available).
2451 * The iax.conf forcejitterbuffer option has been removed. It is now always
2452 forced if you set iax.conf jitterbuffer=yes. If you put a jitter buffer
2453 on a channel it will be on the channel.
2455 * A new configuration parameters, 'calltokenexpiration', has been added that
2456 controls the duration before a call token expires. Default duration is 10
2457 seconds. Setting this to a higher value may help in lagged networks or those
2458 experiencing high packet loss.
2460 * Plaintext auth mode is deprecated and removed from possible default modes.
2462 chan_rtp (was chan_multicast_rtp)
2464 * Added unicast RTP support and renamed chan_multicast_rtp to chan_rtp.
2466 * The format for dialing a unicast RTP channel is:
2467 UnicastRTP/<destination-addr>[/[<options>]]
2468 Where <destination-addr> is something like '127.0.0.1:5060'.
2469 Where <options> are in standard Asterisk flag options format:
2470 c(<codec>) - Specify which codec/format to use such as 'ulaw'.
2471 e(<engine>) - Specify which RTP engine to use such as 'asterisk'.
2473 * New options were added for a multicast RTP channel. The format for
2474 dialing a multicast RTP channel is:
2475 MulticastRTP/<type>/<destination-addr>[/[<control-addr>][/[<options>]]]
2476 Where <type> can be either 'basic' or 'linksys'.
2477 Where <destination-addr> is something like '224.0.0.3:5060'.
2478 Where <control-addr> is something like '127.0.0.1:5060'.
2479 Where <options> are in standard Asterisk flag options format:
2480 c(<codec>) - Specify which codec/format to use such as 'ulaw'.
2481 i(<address>) - Specify the interface address from which multicast RTP
2483 l(<enable>) - Set whether packets are looped back to the sender. The
2484 enable value can be 0 to set looping to off and non-zero to set
2486 t(<ttl>) - Set the time-to-live (TTL) value for multicast packets.
2490 * New 'rtpbindaddr' global setting. This allows a user to define which
2491 ipaddress to bind the rtpengine to. For example, chan_sip might bind
2492 to eth0 (10.0.0.2) but rtpengine to eth1 (192.168.1.10).
2494 * DTLS related configuration options can now be set at a general level.
2495 Enabling DTLS support, though, requires enabling it at the user
2498 * Added the possibility to set the From: header through the the SIP dial
2499 string (populating the fromuser/fromdomain fields), complementing the
2500 [!dnid] option for the To: header that has existed since 1.6.0 (1d6b192).
2501 NOTE: This is again separated by an exclamation mark, so the To: header may
2502 not contain one of those.
2504 * Session-Timers (RFC 4028) work for TCP (and TLS) transports as well now.
2505 Previously Asterisk dropped calls only with UDP transports. However with
2506 longer international calls via TCP, the SIP channel might break, because
2507 all hops on the Internet route must stay online (have not a single power
2508 outage, for example). Therefore with Session-Timers enabled (which are
2509 enabled at default), you might see additional dropped calls. Consequently
2510 please, consider to go for session-timers=refuse in your sip.conf.
2514 * New 'user_eq_phone' endpoint setting. This adds a 'user=phone' parameter
2515 to the request URI and From URI if the user is determined to be a phone
2518 * New 'moh_passthrough' endpoint setting. This will pass hold and unhold
2519 requests through using SIP re-invites with sendonly and sendrecv accordingly.
2521 * Added the pjsip.conf system type disable_tcp_switch option. The option
2522 allows the user to disable switching from UDP to TCP transports described
2523 by RFC 3261 section 18.1.1.
2525 * New 'line' and 'endpoint' options added on outbound registrations. This
2526 allows some identifying information to be added to the Contact of the
2527 outbound registration. If this information is present on messages received
2528 from the remote server the message will automatically be associated with the
2529 configured endpoint on the outbound registration.
2534 * The core of Asterisk uses a message bus called "Stasis" to distribute
2535 information to internal components. For performance reasons, the message
2536 distribution was modified to make use of a thread pool instead of a
2537 dedicated thread per consumer in certain cases. The initial settings for
2538 the thread pool can now be configured in 'stasis.conf'.
2540 * A new core DNS API has been implemented which provides a common interface
2541 for DNS functionality. Modules that use this functionality will require that
2542 a DNS resolver module is loaded and available.
2544 * Modified processing of command-line options to first parse only what
2545 is necessary to read asterisk.conf. Once asterisk.conf is fully loaded,
2546 the remaining options are processed. The -X option now applies to
2547 asterisk.conf only. To enable #exec for other config files you must
2548 set execincludes=yes in asterisk.conf. Any other option set on the
2549 command-line will now override the equivalent setting from asterisk.conf.
2551 * The TLS core in Asterisk now supports X.509 certificate subject alternative
2552 names. This way one X.509 certificate can be used for hosts that can be
2553 reached under multiple DNS names or for multiple hosts.
2555 * The Asterisk logging system now supports JSON structured logging. Log
2556 channels specified in logger.conf or added dynamically via CLI commands now
2557 support an optional specifier prior to their levels that determines their
2558 formatting. To set a log channel to format its entries as JSON, a formatter
2559 of '[json]' can be set, e.g.,
2560 full => [json]debug,verbose,notice,warning,error
2562 * The core now supports a 'media cache', which stores temporary media files
2563 retrieved from external sources. CLI commands have been added to manipulate
2564 and display the cached files, including:
2565 - 'media cache show <all>' - show all cached media files, or details about
2566 one particular cached media file
2567 - 'media cache refresh <item>' - force a refresh of a particular media file
2569 - 'media cache delete <item>' - remove an item from the cache
2570 - 'media cache create <uri>' - retrieve a URI and store it in the cache
2572 * The ability for device state hints to be automatically created as a result of
2573 device state changes now exists in the PBX. This functionality is referred to
2574 as "autohints" and is configurable in extensions.conf by placing "autohints=yes"
2575 in the context. If enabled a device state hint will be automatically created
2576 with the name of the device.
2578 * If Asterisk is built with systemd support, and run under systemd, it will
2579 notify systemd of its state using sd_notify. Use 'Type=notify' in
2584 * The func_odbc global option "single_db_connection" default value has been
2590 * New module format_ogg_speex added which supports Speex codec inside
2591 Ogg containers (filename extension .spx).
2596 * Added CHANNEL(onhold) item that returns 1 (onhold) and 0 (not-onhold) for
2597 the hold status of a channel.
2601 * The CURL function now supports a write option, which will save the retrieved
2602 file to a location on disk. As an example:
2603 same => n,Set(CURL(https://1.1.1.1/foo.wav)=/tmp/foo.wav)
2604 will save 'foo.wav' to /tmp.
2608 * The transferdialattempts default value has been changed from 1 to 3. The
2609 transferinvalidsound has been changed from "pbx-invalid" to
2610 "privacy-incorrect". These were changed to make DTMF transfers be more
2611 user-friendly by default.
2617 res_http_media_cache
2619 * A backend for the core media cache, this module retrieves media files from
2620 a remote HTTP(S) server and stores them in the core media cache for later
2625 * Added sort=randstart to the sort options. It sorts the files by name and
2626 then chooses the first file to play at random.
2627 * Added preferchannelclass=no option to prefer the application-passed class
2628 over the channel-set musicclass. This allows separate hold-music from
2629 application (e.g. Queue or Dial) specified music.
2631 res_resolver_unbound
2633 * Added a res_resolver_unbound module which uses the libunbound resolver library
2634 to perform DNS resolution. This module requires the libunbound library to be
2635 installed in order to be used.
2639 * A new SIP resolver using the core DNS API has been implemented. This relies on
2640 external SIP resolver support in PJSIP which is only available as of PJSIP
2641 2.4. If this support is unavailable the existing built-in PJSIP SIP resolver
2642 will be used instead. The new SIP resolver provides NAPTR support, improved
2643 SRV support, and AAAA record support.
2645 res_pjsip_info_empty
2646 --------------------
2647 * A new module that can respond to empty Content-Type INFO packets during call.
2648 Some SBCs will terminate a call if their empty INFO packets are not responded
2649 to within a predefined time.
2651 res_pjsip_outbound_registration
2652 -------------------------------
2653 * A new 'fatal_retry_interval' option has been added to outbound registration.
2654 When set (default is zero), and upon receiving a failure response to an
2655 outbound registration, registration is retried at the given interval up to
2658 res_pjsip_outbound_publish
2660 * Added a new multi_user option that when set to 'yes' allows a given configuration
2661 to be used for multiple users.
2669 * Added a new option, 'usegmtime', which causes timestamps in CEL events
2670 to be logged in GMT.
2672 * Added support to set schema where located the table cel. This settings is
2673 configurable for cel_pgsql via the 'schema' in configuration file
2682 * Added the ability to set the character to quote identifiers. This
2683 allows adding the character at the start and end of table and column
2684 names. This setting is configurable for cdr_adaptive_odbc via the
2685 quoted_identifiers in configuration file cdr_adaptive_odbc.conf.
2689 * Added a new configuration option, "newcdrcolumns", which enables use of the
2690 post-1.8 CDR columns 'peeraccount', 'linkedid', and 'sequence'.
2694 * Added a new configuration option, "newcdrcolumns", which enables use of the
2695 post-1.8 CDR columns 'peeraccount', 'linkedid', and 'sequence'.
2697 ------------------------------------------------------------------------------
2698 --- Functionality changes from Asterisk 13.10.0 to Asterisk 13.11.0 ----------
2699 ------------------------------------------------------------------------------
2703 * Added "faxdetect_timeout" option.
2704 The option determines how many seconds into a call before faxdetect
2705 is disabled for the call. Setting the value to zero disables the timeout.
2709 * Added "fax_detect_timeout" to endpoint.
2710 The option determines how many seconds into a call before fax_detect
2711 is disabled for the call. Setting the value to zero disables the timeout.
2713 * Added "subscribe_context" to endpoint.
2714 If specified, incoming SUBSCRIBE requests will be searched for the matching
2715 extension in the indicated context. If no "subscribe_context" is specified,
2716 then the "context" setting is used.
2720 * The DTLS part in Asterisk now supports Perfect Forward Secrecy (PFS).
2721 Enabling PFS is attempted by default, and is dependent on the configuration
2722 of the module using TLS.
2723 - Ephemeral ECDH (ECDHE) is enabled by default. To disable it, do not
2724 specify a ECDHE cipher suite in sip.conf, for example:
2725 dtlscipher=AES128-SHA
2726 - Ephemeral DH (DHE) is disabled by default. To enable it, add DH parameters
2727 into the private key file, e.g., sip.conf dtlsprivatekey. For example:
2728 openssl dhparam -out ./dh.pem 2048
2729 - Because clients expect the server to prefer PFS, and because OpenSSL sorts
2730 its cipher suites by bit strength, see "openssl ciphers -v DEFAULT".
2731 Consider re-ordering your cipher suites in the respective configuration
2733 dtlscipher=ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
2734 which forces PFS and requires at least DTLS 1.2.
2736 ------------------------------------------------------------------------------
2737 --- Functionality changes from Asterisk 13.9.0 to Asterisk 13.10.0 -----------
2738 ------------------------------------------------------------------------------
2742 * A channel variable FORWARDERNAME is now set which indicates which channel
2743 was responsible for a forwarding requests received on dial attempt.
2747 * Added new global option "single_db_connection".
2748 Enabling this option func_odbc will use a single database connection per DSN.
2749 This option is enabled by default.
2753 * Added FAXMODE variable to let dialplan know what fax transport was used.
2754 FAXMODE variable is set to either "audio" or "T38".
2758 * Added "via_addr", "via_port", "call_id" to contacts.
2759 As res_pjsip_nat rewrites contact's address, only the last Via header
2760 can contain the source address of registered endpoint.
2761 Also Call-Id header may contain the source address of registered endpoint.
2762 Added new fields ViaAddress,CallID to AMI event ContactStatus
2764 * Endpoint IP Access Controls
2765 Added new configuration Endpoint options:
2766 "acl" - list of IP ACL section names in acl.conf
2767 "deny" - List of IP addresses to deny access from
2768 "permit" - List of IP addresses to permit access from
2769 "contact_acl" - List of Contact ACL section names in acl.conf
2770 "contact_deny" - List of Contact header addresses to deny
2771 "contact_permit" - List of Contact header addresses to permit
2773 * Added "reg_server" to contacts.
2774 If the Asterisk system name is set in asterisk.conf, it will be stored
2775 into the "reg_server" field in the ps_contacts table to facilitate
2776 multi-server setups.
2778 * When starting Asterisk, received traffic will now be ignored until Asterisk
2779 has loaded all modules and is fully booted.
2783 * Added a new option, 'uuid_type', that sets the preferred source of the Homer
2784 correlation UUID. The valid options are:
2785 - call-id: Use the PJSIP SIP Call-ID header value
2786 - channel: Use the Asterisk channel name
2787 The default value is 'call-id'. In the event that a HEP module cannot find a
2788 valid value using the specified 'uuid_type', the module may fallback to a
2789 more readily available source for the correlation UUID.
2793 * A new option has been added, 'max_connections', which sets the maximum number
2794 of concurrent connections to the database. This option defaults to 1 which
2795 returns the behavior to that of Asterisk 13.7 and prior.
2799 * Added a bridge profile option called regcontext that allows you to
2800 dynamically register the conference bridge name as an extension into
2801 the specified context. This allows tracking down conferences on multi-
2802 server installations via alternate means (DUNDI for example). By default
2803 this feature is not used.
2807 * Added the associated format name to 'core show codecs'.
2811 * Added 'formats' to channel create/originate to allow setting the allowed
2812 formats for a channel when no originator channel is available. Especially
2813 useful for Local channel creation where no other format information is
2814 available. 'core show codecs' can now be used to look up suitable format
2817 ------------------------------------------------------------------------------
2818 --- Functionality changes from Asterisk 13.8.0 to Asterisk 13.9.0 ------------
2819 ------------------------------------------------------------------------------
2822 - The dynamic parking lot creation channel variables PARKINGDYNAMIC,
2823 PARKINGDYNCONTEXT, PARKINGDYNEXTEN, and PARKINGDYNPOS are now looked
2824 for in the parker's channel instead of the parked channel. This is only
2825 of significance if the parker uses blind transfer or the DTMF one-step
2826 parking feature. You need to use the double underscore '__' inheritance
2827 for these variables. The indefinite inheritance is also recommended
2828 for the PARKINGEXTEN variable.
2832 * Added new global option (disable_multi_domain) to pjsip.
2833 Disabling Multi Domain can improve realtime performace by reducing
2834 number of database requsts.
2838 * Added 'pjsip show channelstats' CLI command.
2840 res_pjsip_outbound_publish
2842 * Added support for setting the transport used on outbound publish
2843 using the transport configuration option.
2845 ------------------------------------------------------------------------------
2846 --- Functionality changes from Asterisk 13.7.0 to Asterisk 13.8.0 ------------
2847 ------------------------------------------------------------------------------
2851 * Per RFC3325, the 'From' header is now anonymized on outgoing calls when
2852 caller id presentation is prohibited.
2854 res_pjsip_config_wizard
2856 * A new command (pjsip export config_wizard primitives) has been added that
2857 will export all the pjsip objects it created to the console or a file
2858 suitable for reuse in a pjsip.conf file.
2862 * To help insure that Asterisk is compiled and run with the same known
2863 version of pjproject, a new option (--with-pjproject-bundled) has been
2864 added to ./configure. When specified, the version of pjproject specified
2865 in third-party/versions.mak will be downloaded and configured. When you
2866 make Asterisk, the build process will also automatically build pjproject
2867 and Asterisk will be statically linked to it. Once a particular version
2868 of pjproject is configured and built, it won't be configured or built
2869 again unless you run a 'make distclean'.
2871 To facilitate testing, when 'make install' is run, the pjsua and pjsystest
2872 utilities and the pjproject python bindings will be installed in
2873 ASTDATADIR/third-party/pjproject.
2875 The default behavior remains building with the shared pjproject
2876 installation, if any.
2880 * Added CONFBRIDGE_INFO(muted,) for querying the muted conference state.
2882 * Added Muted header to AMI ConfbridgeListRooms action response list events
2883 to indicate the muted conference state.
2885 * Added Muted column to CLI "confbridge list" output to indicate the muted
2886 conference state and made the locked column a yes/no value instead of a
2887 locked/unlocked value.
2891 * The REDIRECTING(reason) value is now treated consistently between
2892 chan_sip and chan_pjsip.
2894 Both channel drivers match incoming reason values with values documented
2895 by REDIRECTING(reason) and values documented by RFC5806 regardless of
2896 whether they are quoted or not. RFC5806 values are mapped to the
2897 equivalent REDIRECTING(reason) documented value and is set in
2898 REDIRECTING(reason). e.g., an incoming RFC5806 'unconditional' value or a
2899 quoted string version ('"unconditional"') is converted to
2900 REDIRECTING(reason)'s 'cfu' value. The user's dialplan only needs to deal
2901 with 'cfu' instead of any of the aliases.
2903 The incoming 480 response reason text supported by chan_sip checks for
2904 known reason values and if not matched then puts quotes around the reason
2905 string and assigns that to REDIRECTING(reason).
2907 Both channel drivers send outgoing known REDIRECTING(reason) values as the
2908 unquoted RFC5806 equivalent. User custom values are either sent as is or
2909 with added quotes if SIP doesn't allow a character within the value as
2910 part of a RFC3261 Section 25.1 token. Note that there are still
2911 limitations on what characters can be put in a custom user value. e.g.,
2912 embedding quotes in the middle of the reason string is just going to cause
2915 * Setting a REDIRECTING(reason) value now recognizes RFC5806 aliases.
2916 e.g., Setting REDIRECTING(reason) to 'unconditional' is converted to the
2921 * This module is the successor of res_pjsip_log_forwarder. As well as
2922 handling the log forwarding (which now displays as 'pjproject:0' instead
2923 of 'pjsip:0'), it also adds a 'pjproject show buildopts' command to the CLI.
2924 This displays the compiled-in options of the pjproject installation
2925 Asterisk is currently running against.
2927 * Another feature of this module is the ability to map pjproject log levels
2928 to Asterisk log levels, or to suppress the pjproject log messages
2929 altogether. Many of the messages emitted by pjproject itself are the result
2930 of errors which Asterisk will ultimately handle so the messages can be
2931 misleading or just noise. A new config file (pjproject.conf) has been added
2932 to configure the mapping and a new CLI command (pjproject show log mappings)
2933 has been added to display the mappings currently in use.
2937 * Transports are now reloadable. In testing, no in-progress calls were
2938 disrupted if the ip address or port weren't changed, but the possibility
2939 still exists. To make sure there are no unintentional drops, a new option
2940 'allow_reload', which defaults to 'no' has been added to transport. If
2941 left at the default, changes to the particular transport will be ignored.
2942 If set to 'yes', changes (if any) will be applied.
2944 * Added new global option (regcontext) to pjsip. When set, Asterisk will
2945 dynamically create and destroy a NoOp priority 1 extension
2946 for a given endpoint who registers or unregisters with us.
2948 * Endpoints and aors can now be identified by the username and realm in an
2949 incoming Authorization header. To use this feature, add "auth_username"
2950 to your endpoint's "identify_by" list. You can combine "auth_username"
2951 and the original "username" to test both the From/To and Authorization
2952 headers. For endpoints, the order is controlled by the global
2953 "endpoint_identifier_order" setting. For matching aors to an endpoint
2954 for inbound registration, the order is controlled by this option.
2956 * In conjunction with the "auth_username" change, 3 new options have been
2957 added to the global configuration object that control how many unidentified
2958 requests over a certain period from the same IP address can be received
2959 before a security alert is generated. A new CLI command
2960 "pjsip show unidentified_requests" will list the current candidates.
2964 * A new module, res_pjsip_history, has been added that provides SIP history
2965 viewing/filtering from the CLI. The module is intended to be used on systems
2966 with busy SIP traffic, where existing forms of viewing SIP messages - such
2967 as the res_pjsip_logger - may be inadequate. The module provides two new
2969 - 'pjsip set history {on|off|clear}' - this enables/disables SIP history
2970 capturing, as well as clears an existing history capture. Note that SIP
2971 packets captured are stored in memory until cleared. As a result, the
2972 history capture should only be used for debugging/viewing purposes, and
2973 should *NOT* be left permanently enabled on a system.
2974 - 'pjsip show history' - displays the captured SIP history. When invoked
2975 with no options, the entire captured history is displayed. Two options
2977 -- 'entry <num>' - display a detailed view of a single SIP message in
2979 -- 'where ...' - filter the history based on some expression. For more
2980 information on filtering, view the current CLI help for the
2981 'pjsip show history' command.
2985 * app_voicemail and res_mwi_external can now be built together. The default
2986 remains to build app_voicemail and not res_mwi_external but if they are
2987 both built, the load order will cause res_mwi_external to load first and
2988 app_voicemail will be skipped. Use 'preload=app_voicemail.so' in
2989 modules.conf to force app_voicemail to be the voicemail provider.
2993 * A new option (bind_rtp_to_media_address) has been added to endpoint which
2994 will cause res_pjsip_sdp_rtp to actually bind the RTP instance to the
2995 media_address as well as using it in the SDP. If set, RTP packets will now
2996 originate from the media address instead of the operating system's "primary"
3001 * A new configuration section - ice_host_candidates - has been added to
3002 rtp.conf, allowing automatically discovered ICE host candidates to be
3003 overriden. This allows an Asterisk server behind a 1:1 NAT to send its
3004 external IP as a host candidate rather than relying on STUN to discover it.
3006 ------------------------------------------------------------------------------
3007 --- Functionality changes from Asterisk 13.6.0 to Asterisk 13.7.0 ------------
3008 ------------------------------------------------------------------------------
3012 * Added format attribute negotiation for the VP8 video codec. Format attribute
3013 negotiation is provided by the res_format_attr_vp8 module.
3017 * A new "timeout" user profile option has been added. This configures the number
3018 of seconds that a participant may stay in the ConfBridge after joining. When
3019 the time expires, the user is ejected from the conference and CONFBRIDGE_RESULT
3020 is set to "TIMEOUT" on the channel.
3024 * The websockets_enabled option has been added to the general section of
3025 sip.conf. The option is enabled by default to match the previous behavior.
3026 The option should be disabled when using res_pjsip_transport_websockets to
3027 ensure chan_sip will not conflict with PJSIP websockets.
3031 * The HOLD_INTERCEPT dialplan function now actually exists in the source tree.
3032 While support for the events was added in Asterisk 13.4.0, the function
3033 accidentally never made it in. That function is now present, and will cause
3034 the 'hold' raised by a channel to be intercepted and converted into an
3037 res_pjsip_outbound_registration
3038 -------------------------------
3039 * If res_statsd is loaded and a StatsD server is configured, basic statistics
3040 regarding the state of outbound registrations will now be emitted. This
3042 - A GAUGE statistic for the overall number of outbound registrations, i.e.:
3043 PJSIP.registrations.count
3044 - A GAUGE statistic for the overall number of outbound registrations in a
3045 particular state, e.g.:
3046 PJSIP.registrations.state.Registered
3050 * The ability to use "like" has been added to the pjsip list and show
3051 CLI commands. For instance: CLI> pjsip list endpoints like abc
3053 * If res_statsd is loaded and a StatsD server is configured, basic statistics
3054 regarding the state of PJSIP contacts will now be emitted. This includes:
3055 - A GAUGE statistic for the overall number of contacts in a particular
3057 PJSIP.contacts.states.Reachable
3058 - A TIMER statistic for the RTT time for each qualified contact, e.g.:
3059 PJSIP.contacts.alice@@127.0.0.1:5061.rtt
3061 res_sorcery_memory_cache
3062 ------------------------
3063 * A new caching strategy, full_backend_cache, has been added which caches
3064 all stored objects in the backend. When enabled all objects will be
3065 expired or go stale according to the configuration. As well when enabled
3066 all retrieval operations will be performed against the cache instead of
3071 * CALLERID(pres) is now documented as a valid alternative to setting both
3072 CALLERID(name-pres) and CALLERID(num-pres) at once. Some channel drivers,
3073 like chan_sip, don't make a distinction between the two: they take the
3074 least public value from name-pres and num-pres. By using CALLERID(pres)
3075 for reading and writing, you touch the same combined value in the dialplan.
3076 The same applies to CONNECTEDLINE(pres), REDIRECTING(orig-pres),
3077 REDIRECTING(to-pres) and REDIRECTING(from-pres).
3081 * A new module that emits StatsD statistics regarding Asterisk endpoints.
3082 This includes a total count of the number of endpoints, the count of the
3083 number of endpoints in the technology agnostic state of the endpoint -
3084 online or offline - as well as the number of channels associated with each
3085 endpoint. These are recorded as three different GAUGE statistics:
3087 - endpoints.state.{unknown|offline|online}
3088 - endpoints.{tech}.{resource}.channels
3091 ------------------------------------------------------------------------------
3092 --- Functionality changes from Asterisk 13.5.0 to Asterisk 13.6.0 ------------
3093 ------------------------------------------------------------------------------
3097 * The CHANNEL function, when used on a PJSIP channel, now exposes a 'call-id'
3098 extraction option when using with the 'pjsip' signalling option. It will
3099 return the SIP Call-ID associated with the INVITE request that established
3104 * Two new endpoint related events are now available: PeerStatusChange and
3105 ContactStatusChange. In particular, these events are useful when subscribing
3106 to all event sources, as they provide additional endpoint related
3107 information beyond the addition/removal of channels from an endpoint.
3109 * Added the ability to subscribe to all ARI events in Asterisk, regardless
3110 of whether the application 'controls' the resource. This is useful for
3111 scenarios where an ARI application merely wants to observe the system,
3112 as opposed to control it. There are two ways to accomplish this:
3113 (1) Via the WebSocket connection URI. A new query paramter, 'subscribeAll',
3114 has been added that, when present and True, will subscribe all
3115 specified applications to all ARI event sources in Asterisk.
3116 (2) Via the applications resource. An ARI client can, at any time, subscribe
3117 to all resources in an event source merely by not providing an explicit
3118 resource. For example, subscribing to an event source of 'channels:'
3119 as opposed to 'channels:12345' will subscribe the application to all
3122 ------------------------------------------------------------------------------
3123 --- Functionality changes from Asterisk 13.4.0 to Asterisk 13.5.0 ------------
3124 ------------------------------------------------------------------------------
3128 * A new ContactStatus event has been added that reflects res_pjsip contact
3129 lifecycle changes: Created, Removed, Reachable, Unreachable, Unknown.
3131 * Added the Linkedid header to the common channel headers listed for each
3132 channel in AMI events.
3136 * A new feature has been added that enables the retrieval of modules and
3137 module information through an HTTP request. Information on a single module
3138 can be also be retrieved. Individual modules can be loaded to Asterisk, as
3139 well as unloaded and reloaded.
3141 * A new resource has been added to the 'asterisk' resource, 'config/dynamic'.
3142 This resource allows for push configuration of sorcery derived objects
3143 within Asterisk. The resource supports creation, retrieval, updating, and
3144 deletion. Sorcery derived objects that are manipulated by this resource
3145 must have a sorcery wizard that supports the desired operations.
3147 * A new feature has been added that allows for the rotation of log channels
3148 through HTTP requests.
3153 * A new 'g726_non_standard' endpoint option has been added that, when set to
3154 'yes' and g.726 audio is negotiated, forces the codec to be treated as if it
3155 is AAL2 packed on the channel.
3157 * A new 'rtp_keepalive' endpoint option has been added. This option specifies
3158 an interval, in seconds, at which we will send RTP comfort noise packets to
3159 the endpoint. This functions identically to chan_sip's "rtpkeepalive" option.
3161 * New 'rtp_timeout' and 'rtp_timeout_hold' endpoint options have been added.
3162 These options specify the amount of time, in seconds, that Asterisk will wait
3163 before terminating the call due to lack of received RTP. These are identical
3164 to chan_sip's rtptimeout and rtpholdtimeout options.
3166 ------------------------------------------------------------------------------
3167 --- Functionality changes from Asterisk 13.3.0 to Asterisk 13.4.0 ------------
3168 ------------------------------------------------------------------------------
3172 * New 'rpid_immediate' option to control if connected line update information
3173 goes to the caller immediately or waits for another reason to send the
3174 connected line information update. See the online option documentation for
3175 more information. Defaults to 'no' as setting it to 'yes' can result in
3176 many unnecessary messages being sent to the caller.
3178 * The configuration setting 'progressinband' now defaults to 'no', which
3179 matches the actual behavior of previous versions.
3183 * A new CLI command has been added: "pjsip show settings", which shows
3184 both the global and system configuration settings.
3186 * A new aor option has been added: "qualify_timeout", which sets the timeout
3187 in seconds for a qualify. The default is 3 seconds. This overrides the
3188 hard coded 32 seconds in pjproject.
3190 * Endpoint status will now change to "Unreachable" when all contacts are
3191 unavailable. When any contact becomes available, the endpoint will status
3192 will change back to "Reachable".
3194 * A new global option has been added: "max_initial_qualify_time", which
3195 sets the maximum amount of time from startup that qualifies should be
3196 attempted on all contacts.
3200 * Two new events, 'ChannelHold' and 'ChannelUnhold', have been added to the
3201 events data model. These events are raised when a channel indicates a hold
3202 or unhold, respectively.
3206 * A new dialplan function, HOLD_INTERCEPT, has been added. This function, when
3207 placed on a channel, intercepts hold/unhold indications signalled by the
3208 channel and prevents them from moving on to other channels in a bridge with
3209 the hold initiator. Instead, AMI or ARI events are raised indicating that
3210 the channel wanted to place someone on hold. This allows external
3211 applications to implement their own custom hold/unhold logic.
3213 ------------------------------------------------------------------------------
3214 --- Functionality changes from Asterisk 13.2.0 to Asterisk 13.3.0 ------------
3215 ------------------------------------------------------------------------------
3217 chan_pjsip/app_transfer
3219 * The Transfer application, when used with chan_pjsip, now supports using
3220 a PJSIP endpoint as the transfer destination. This is in addition to
3221 explicitly specifying a SIP URI to transfer to.
3225 * The ARI /channels resource now supports a new operation, 'redirect'. The
3226 redirect operation will perform a technology and state specific redirection
3227 on the channel to a specified endpoint or destination. In the case of SIP
3228 technologies, this is either a 302 Redirect response to an on-going INVITE
3229 dialog or a SIP REFER request.
3233 * A new 'endpoint_identifier_order' option has been added that allows one to
3234 set the order by which endpoint identifiers are processed and checked. This
3235 option is specified under the 'global' type configuration section.
3237 ------------------------------------------------------------------------------
3238 --- Functionality changes from Asterisk 13.1.0 to Asterisk 13.2.0 ------------
3239 ------------------------------------------------------------------------------
3241 * New 'PJSIP_AOR' and 'PJSIP_CONTACT' dialplan functions have been added which
3242 allow examining PJSIP AORs or contacts from the dialplan.
3244 res_pjsip_outbound_registration
3246 * The 'pjsip send unregister' command now stops further registrations.
3248 * A new command 'pjsip send register' has been added which allows you to
3249 start or restart periodic registration. It can be used after a
3250 'send unregister' or after a 401 permanent error.
3252 res_pjsip_config_wizard
3254 * This is a new module that adds streamlined configuration capability for
3255 chan_pjsip. It's targeted at users who have lots of basic configuration
3256 scenarios like 'phone' or 'agent' or 'trunk'. Additional information
3257 can be found in the sample configuration file at
3258 config/samples/pjsip_wizard.conf.sample.
3262 * The T.38 negotiation timeout was previously hard coded at 5000 milliseconds
3263 and is now configurable via the 't38timeout' configuration option in
3264 res_fax.conf and via the fax options dialplan function 'FAXOPT(t38timeout)'.
3265 The default remains at 5000 milliseconds.
3269 * The ca_list_path transport parameter has been added for TLS transports. This
3270 option behaves similarly to the old sip.conf option "tlscapath". In order to
3271 use this, you must be using PJProject version 2.4 or higher.
3275 * The Originate operation now takes in an originator channel. The linked ID of
3276 this originator channel is applied to the newly originated outgoing channel.
3277 If using CEL this allows an association to be established between the two so
3278 it can be recognized that the originator is dialing the originated channel.
3280 * "language" (the default spoken language for the channel) is now included in
3281 the standard channel state output for suitable events.
3283 * The POST channels/{id} operation and the POST channels/{id}/continue operation
3284 now have a new "label" parameter. This allows for origination or continuation
3285 to a labeled priority in the dialplan instead of requiring a specific priority
3286 number. The ARI version has been bumped to 1.7.0 as a result.
3290 * "Language" (the default spoken language for the channel) is now included in
3291 the standard channel state output for suitable events.
3293 * AMI actions that return a list of events have been made to return consistent
3294 headers for the action response event starting the list and the list complete
3295 event. The AMI version has been bumped to 2.7.0 as a result.
3297 ------------------------------------------------------------------------------
3298 --- Functionality changes from Asterisk 13.0.0 to Asterisk 13.1.0 ------------
3299 ------------------------------------------------------------------------------
3303 * Event NewConnectedLine is emitted when the connected line information on
3308 * Event ChannelConnectedLine is emitted when the connected line information
3309 on a channel changes.
3314 The features.conf general section has three new configurable options:
3315 * transferdialattempts
3316 * transferretrysound
3317 * transferinvalidsound
3318 For more information on what these options do, see the Asterisk wiki:
3319 https://wiki.asterisk.org/wiki/x/W4fAAQ
3326 * New 'media_encryption_optimistic' endpoint setting. This will use SRTP
3327 when possible but does not consider lack of it a failure.
3329 res_pjsip_endpoint_identifer_ip
3331 * New CLI commands have been added: "pjsip show identif(y|ies)", which lists
3332 all configured PJSIP identify objects
3334 ------------------------------------------------------------------------------
3335 --- Functionality changes from Asterisk 12 to Asterisk 13 --------------------
3336 ------------------------------------------------------------------------------
3341 Asterisk 13 is the next Long Term Support (LTS) release of Asterisk. As such,
3342 the focus of development for this release of Asterisk was on improving the
3343 usability and features developed in the previous Standard release, Asterisk 12.
3344 Beyond a general refinement of end user features, development focussed heavily
3345 on the Asterisk APIs - the Asterisk Manager Interface (AMI) and the Asterisk
3346 REST Interface (ARI) - and the PJSIP stack in Asterisk. Some highlights of the
3347 new features include:
3349 * Asterisk security events are now provided via AMI, allowing end users to
3350 monitor their Asterisk system in real time for security related issues.
3351 * External control of Message Waiting Indicators (MWI) through both AMI and ARI.
3352 * Reception/transmission of out of call text messages using any supported
3353 channel driver/protocol stack through ARI.
3354 * Resource List Server support in the PJSIP stack, providing subscriptions to
3355 lists of resources and batched delivery of NOTIFY requests.
3356 * Inter-Asterisk distributed device state and mailbox state using the PJSIP
3359 It is important to note that Asterisk 13 is built on the architecture developed
3360 during the previous Standard release, Asterisk 12. Users upgrading to
3361 Asterisk 13 should read about the new features in Asterisk 12 later in this file
3362 (see Functionality changes from Asterisk 11 to Asterisk 12), as well as the
3363 UPGRADE-12.txt delivered with this release. In particular, users upgrading to
3364 Asterisk 13 from a release prior to Asterisk 12 should read the specifications
3365 on AMI, CDRs, and CEL on the Asterisk wiki:
3366 * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
3367 * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
3368 * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
3370 Many new featuers in Asterisk 13 were introduced in point releases of
3371 Asterisk 12. Following this section - which documents the changes from all
3372 versions of Asterisk 12 to Asterisk 13 - users should examine the new features
3373 that were introduced in the point releases of Asterisk 12, as they are also
3374 included in Asterisk 13.
3376 Finally, all users upgrading to Asterisk 13 should read the UPGRADE.txt file
3377 delivered with this release.
3382 * Sample config files have been moved from configs/ to a sub-folder of that
3385 * The menuselect utility has been pulled into the Asterisk repository. As a
3386 result, the libxml2 development library is now a required dependency for
3389 * A new Compiler Flag, REF_DEBUG, has been added. When enabled, reference
3390 counted objects will emit additional debug information to the refs log file
3391 located in the standard Asterisk log file directory. This log file is useful
3392 in tracking down object leaks and other reference counting issues. Prior to
3393 this version, this option was only available by modifying the source code
3394 directly. This change also includes a new script, refcounter.py, in the
3395 contrib folder that will process the refs log file. Note that this replaces
3396 the refcounter utility that could be built from the utils directory.
3404 * This module was deprecated and has been removed. Users of app_dahdibarge
3405 should use ChanSpy instead.
3409 * New options to play a beep when starting a recording and stopping a recording
3410 have been added. The option "p" will play a beep to the channel that starts
3411 the recording. The option "P" will play a beep to the channel that stops the
3416 * Queue rules can now be stored in a database table, queue_rules. Unlike other
3417 RealTime tables, the queue_rules table is only examined on module load or
3418 module reload. A new general setting has been added to queuerules.conf,
3419 'realtime_rules', which, when set to 'yes', will cause app_queue to look in
3420 RealTime for additional queue rules to parse. Note that both the file and
3421 the database can be used as a provide of queue rules when 'realtime_rules'
3424 When app_queue is reloaded, all rules are re-parsed and loaded into memory.
3425 There is no caching of RealTime queue rules.
3429 * This module was deprecated and has been removed. Users of app_readfile
3430 should use func_env's FILE function instead.
3434 * The 'say' family of dialplan applications now support the Japanese
3435 language. The 'language' parameter in say.conf now recognizes a setting of
3436 'ja', which will enable Japanese language specific mechanisms for playing
3437 back numbers, dates, and other items.
3438 * Counting, enumeration and dates now supports Icelandic grammar with the
3439 'language' parameter set to 'is'.
3443 * This module was deprecated and has been removed. Users of app_saycountpl
3444 should use the Say family of applications.
3448 * The SetMusicOnHold dialplan application was deprecated and has been removed.
3449 Users of the application should use the CHANNEL function's musicclass
3454 * The WaitMusicOnHold dialplan application was deprecated and has been
3455 removed. Users of the application should use MusicOnHold with a duration
3460 * VoiceMail and VoiceMailMain now support the Japanese language. The
3461 'language' parameter in voicemail.conf now recognizes a setting of 'ja',
3462 which will enable prompts to be played back using a Japanese grammatical
3463 structure. Additional prompts are necessary for this functionality,
3465 - jb-arimasu: there is
3466 - jb-arimasen: there is not
3467 - jb-oshitekudasai: please press
3473 * Add the ability to specify multiple email addresses in configuration,
3482 * This module was deprecated and has been removed. Users of cdr_sqlite
3483 should use cdr_sqlite3_custom.
3487 * Added the ability to support PostgreSQL application_name on connections.
3488 This allows PostgreSQL to display the configured name in the
3489 pg_stat_activity view and CSV log entries. This setting is configurable
3490 for cdr_pgsql via the appname configuration setting in cdr_pgsql.conf.
3498 * Added the ability to support PostgreSQL application_name on connections.
3499 This allows PostgreSQL to display the configured name in the
3500 pg_stat_activity view and CSV log entries. This setting is configurable
3501 for cel_pgsql via the appname configuration setting in cel_pgsql.conf.
3509 * SS7 support now requires libss7 v2.0 or later.
3511 * Added SS7 support for connected line and redirecting.
3513 * Most SS7 CLI commands are reworked as well as new SS7 commands added.
3514 See online CLI help.
3516 * Added several SS7 config option parameters described in
3517 chan_dahdi.conf.sample.
3521 * This module was deprecated and has been removed. Users of chan_gtalk
3522 should use chan_motif.
3526 * This module was deprecated and has been removed. Users of chan_h323
3527 should use chan_ooh323.
3531 * This module was deprecated and has been removed. Users of chan_jingle
3532 should use chan_motif.
3536 * Added the CLI command 'pjsip list ciphers' so a user can know what
3537 OpenSSL names are available on their system for the pjsip.conf cipher
3542 * The SIPPEER dialplan function no longer supports using a colon as a
3543 delimiter for parameters. The parameters for the function should be
3544 delimited using a comma.
3546 * The SIPCHANINFO dialplan function was deprecated and has been removed. Users
3547 of the function should use the CHANNEL function instead.
3555 * Added functional peeraccount support. Except for Queue, the
3556 accountcode propagation is now consistently propagated to outgoing
3557 channels before dialing. The channel accountcode can change from its
3558 original non-empty value on channel creation for the following specific
3559 reasons. One, dialplan sets it using CHANNEL(accountcode). Two, an
3560 originate method that can specify an accountcode value. Three, the
3561 calling channel propagates its peeraccount or accountcode to the
3562 outgoing channel's accountcode before dialing. The change has two
3563 visible effects. One, local channels now cross accountcode and
3564 peeraccount across the special bridge between the ;1 and ;2 channels
3565 just like channels between normal bridges. Two, the
3566 CHANNEL(peeraccount) value can now be set before Dial and FollowMe to
3567 set the accountcode on the outgoing channel(s).
3569 For Queue, an outgoing channel's non-empty accountcode will not change
3570 unless explicitly set by CHANNEL(accountcode). The change has three
3571 visible effects. One, local channels now cross accountcode and
3572 peeraccount across the special bridge between the ;1 and ;2 channels
3573 just like channels between normal bridges. Two, the queue member will
3574 get an accountcode if it doesn't have one and one is available from the
3575 calling channel's peeraccount. Three, accountcode propagation includes
3576 local channel members where the accountcodes are propagated early
3577 enough to be available on the ;2 channel.
3581 * New DeviceStateChanged and PresenceStateChanged AMI events have been added.
3582 These events are emitted whenever a device state or presence state change
3583 occurs. The events are controlled by res_manager_device_state.so and
3584 res_manager_presence_state.so. If the high frequency of these events is
3585 problematic for you, do not load these modules.
3587 * Added DialplanExtensionAdd and DialplanExtensionRemove AMI commands. They
3588 work in basically the same way as the 'dialplan add extension' and
3589 'dialplan remove extension' CLI commands respectively.
3591 * New AMI action LoggerRotate reloads and rotates logger in the same manner
3592 as CLI command 'logger rotate'
3594 * New AMI Actions FAXSessions, FAXSession, and FAXStats replicate the
3595 functionality of CLI commands 'fax show sessions', 'fax show session',
3596 and fax show stats' respectively.
3598 * New AMI actions PRIDebugSet, PRIDebugFileSet, and PRIDebugFileUnset
3599 enable manager control over PRI debugging levels and file output.
3601 * AMI action PJSIPNotify may now send to a URI instead of only to a PJSIP
3602 endpoint as long as a default outbound endpoint is set. This also applies
3603 to the equivalent CLI command (pjsip send notify)
3605 * The AMI action PJSIPShowEndpoint now includes ContactStatusDetail sections
3606 that give information on Asterisk's attempts to qualify the endpoint.
3608 * The DialEnd event will now contain a Forward header if the dial is ending
3609 due to the call being forwarded. The contents of the Forward header is the
3610 extension in the number to which the call is being forwarded.
3614 * The "bridge_technology" extra field key has been added to BRIDGE_ENTER
3615 and BRIDGE_EXIT events.
3619 * Channel variables are now substituted in arguments passed to applications
3620 run by using dynamic features.
3624 * The TLS core in Asterisk now supports Perfect Forward Secrecy (PFS).
3625 Enabling PFS is attempted by default, and is dependent on the configuration
3626 of the module using TLS.
3627 - Ephemeral ECDH (ECDHE) is enabled by default. To disable it, do not
3628 specify a ECDHE cipher suite in sip.conf, for example:
3629 tlscipher=AES128-SHA:DES-CBC3-SHA
3630 - Ephemeral DH (DHE) is disabled by default. To enable it, add DH parameters
3631 into the private key file, e.g., sip.conf tlsprivatekey. For example, the
3632 default dh2048.pem - see
3633 http://www.opensource.apple.com/source/OpenSSL098/OpenSSL098-35.1/src/apps/dh2048.pem?txt
3634 - Because clients expect the server to prefer PFS, and because OpenSSL sorts
3635 its cipher suites by bit strength, see "openssl ciphers -v DEFAULT".
3636 Consider re-ordering your cipher suites in the respective configuration
3638 tlscipher=AES128+kEECDH:AES128+kEDH:3DES+kEDH:AES128-SHA:DES-CBC3-SHA:-ADH:-AECDH
3639 will use PFS when offered by the client. Clients which do not offer PFS
3640 fall-back to AES-128 (or even 3DES, as recommended by RFC 3261).
3648 * The JACK_HOOK function now supports audio with a sample rate higher than
3657 * Added the ability to support PostgreSQL application_name on connections.
3658 This allows PostgreSQL to display the configured name in the
3659 pg_stat_activity view and CSV log entries. This setting is configurable
3660 for res_config_pgsql via the dbappname configuration setting in
3663 res_pjsip_outbound_publish
3665 * A new module, res_pjsip_outbound_publish provides the mechanisms for sending
3666 PUBLISH requests for specific event packages to another SIP User Agent.
3670 * The publish/subscribe core module has been updated to support RFC 4662
3671 Resource Lists, allowing Asterisk to act as a Resource List Server (RLS).
3672 Resource lists are configured in pjsip.conf under a new object type,
3673 resource_list. Resource lists can contain either message-summary or presence
3674 events, and can be composed of specific resources that provide the event or
3675 other resource lists.
3677 * Inbound publication support is provided by a new object, inbound-publication.
3678 This configures res_pjsip_pubsub to accept PUBLISH requests from a particular
3679 resource. Which events are accepted is constructed dynamically; see
3680 res_pjsip_publish_asterisk for more information.
3682 res_pjsip_publish_asterisk
3684 * A new module, res_pjsip_publish_asterisk adds support for PUBLISH requests of
3685 Asterisk information to other Asterisk servers. This module is intended only
3686 for Asterisk to Asterisk exchanges of information. Currently, this includes
3687 both mailbox state and device state information.
3689 ------------------------------------------------------------------------------
3690 --- Functionality changes from Asterisk 12.4.0 to Asterisk 12.5.0 ------------
3691 ------------------------------------------------------------------------------
3695 * Stored recordings now support a new operation, copy. This will take an
3696 existing stored recording and copy it to a new location in the recordings
3699 * LiveRecording objects now have three additional fields that can be reported
3700 in a RecordingFinished ARI event:
3701 - total_duration: the duration of the recording
3702 - talking_duration: optional. The duration of talking detected in the
3703 recording. This is only available if max_silence_seconds was specified
3704 when the recording was started.
3705 - silence_duration: optional. The duration of silence detected in the
3706 recording. This is only available if max_silence_seconds was specified
3707 when the recording was started.
3708 Note that all duration values are reported in seconds.
3710 * Users of ARI can now send and receive out of call text messages. Messages
3711 can be sent directly to a particular endpoint, or can be sent to the
3712 endpoints resource directly and inferred from the URI scheme. Text
3713 messages are passed to ARI clients as TextMessageReceived events. ARI
3714 clients can choose to receive text messages by subscribing to the particular
3715 endpoint technology or endpoints that they are interested in.
3717 * The applications resource now supports subscriptions to all endpoints of
3718 a particular channel technology. For example, subscribing to an eventSource
3719 of 'endpoint:PJSIP' will subscribe to all PJSIP endpoints.
3723 * The endpoint configuration object now supports 'accountcode'. Any channel
3724 created for an endpoint with this setting will have its accountcode set
3725 to the specified value.
3729 * A new module, res_hep_rtcp, has been added that will forward RTCP call
3730 statistics to a HEP capture server. See res_hep for more information.
3734 * Function AUDIOHOOK_INHERIT has been deprecated. Audiohooks are now
3735 unconditionally inherited through masquerades. As a side benefit, more
3736 than one audiohook of a given type may persist through a masquerade now.
3738 ------------------------------------------------------------------------------
3739 --- Functionality changes from Asterisk 12.3.0 to Asterisk 12.4.0 ------------
3740 ------------------------------------------------------------------------------
3744 * Returns new AGENT_STATUS value "NOT_CONNECTED" if the agent fails to
3745 connect with an incoming caller after being alerted to the presence
3746 of the incoming caller. The most likely reason this would happen is
3747 the agent did not acknowledge the call in time.
3751 * New events have been added for the TALK_DETECT function. When the function
3752 is used on a channel, ChannelTalkingStart/ChannelTalkingStop events will be
3753 emitted to connected AMI clients indicating the start/stop of talking on
3758 * New event models have been aded for the TALK_DETECT function. When the
3759 function is used on a channel, ChannelTalkingStarted/ChannelTalkingFinished
3760 events will be emitted to connected WebSockets subscribed to the channel,
3761 indicating the start/stop of talking on the channel.
3765 * A new function, TALK_DETECT, has been added. When set on a channel, this
3766 fucntion causes events indicating the starting/stoping of talking on said
3767 channel to be emitted to both AMI and ARI clients.
3769 ------------------------------------------------------------------------------
3770 --- Functionality changes from Asterisk 12.2.0 to Asterisk 12.3.0 ------------
3771 ------------------------------------------------------------------------------
3775 * A new Playback URI 'tone' has been added. Tones are specified either as
3776 an indication name (e.g. 'tone:busy') from indications.conf or as a tone
3777 pattern (e.g. 'tone:240/250,0/250'). Tones differ from normal playback
3778 URIs in that they must be stopped manually and will continue to occupy
3779 a channel's ARI control queue until they are stopped. They also can not
3780 be rewound or fastforwarded.
3782 * User events can now be generated from ARI. Events can be signalled with
3783 arbitrary json variables, and include one or more of channel, bridge, or
3784 endpoint snapshots. An application must be specified which will receive
3785 the event message (other applications can subscribe to it). The message
3786 will also be delivered via AMI provided a channel is attached. Dialplan
3787 generated user event messages are still transmitted via the channel, and
3788 will only be received by a stasis application they are attached to or if
3789 the channel is subscribed to.
3793 * SIP peers can now specify 'trust_id_outbound' which affects RPID/PAI
3794 fields for prohibited callingpres information. Values are legacy, no, and
3795 yes. By default, legacy is used.
3796 trust_id_outbound=legacy - behavior remains the same as 1.8.26.1. When
3797 dealing with prohibited callingpres and sendrpid=pai/rpid, RPID/PAI
3798 headers are appended to outbound SIP messages just as they are with
3799 allowed callingpres values, but data about the remote party's identity is
3801 When sendrpid=rpid, only the remote party's domain is anonymized.
3802 trust_id_outbound=no - when dealing with prohibited callingpres, RPID/PAI
3803 headers are not sent.
3804 trust_id_outbound=yes - RPID/PAI headers are applied with the full remote
3805 party information in tact even for prohibited callingpres information.
3806 In the case of PAI, a Privacy: id header will be appended for prohibited
3807 calling information to communicate that the private information should
3808 not be relayed to untrusted parties.
3812 * Manager action 'Park' now takes an additional argument 'AnnounceChannel'
3813 which can be used to announce the parked call's location to an arbitrary
3814 channel in a bridge. If 'Channel' and 'TimeoutChannel' are now the two
3815 parties in a one to one bridge, 'TimeoutChannel' is treated as having
3816 parked 'Channel' like with the Park Call DTMF feature and will receive
3817 announcements prior to being hung up.
3819 ------------------------------------------------------------------------------
3820 --- Functionality changes from Asterisk 12.1.0 to Asterisk 12.2.0 ------------
3821 ------------------------------------------------------------------------------
3825 * Record application now has an option 'o' which allows 0 to act as an exit
3826 key setting the RECORD_STATUS variable to 'OPERATOR' instead of 'DTMF'
3829 --------------------------
3830 * ChanSpy now accepts a channel uniqueid or a fully specified channel name
3831 as the chanprefix parameter if the 'u' option is specified.
3834 --------------------------
3835 * CONFBRIDGE dialplan function is now capable of creating/modifying dynamic
3836 conference user menus.
3838 * CONFBRIDGE dialplan function is now capable of removing dynamic conference
3839 menus, bridge settings, and user settings that have been applied by the
3840 CONFBRIDGE dialplan function.
3842 * The ConfBridge dialplan application now sets a channel variable,
3843 CONFBRIDGE_RESULT, upon exiting. This variable can be used to determine
3844 how a channel exited the conference.
3846 * Added conference user option 'announce_join_leave_review'. This option
3847 implies 'announce_join_leave' with the added effect that the user will
3848 be asked if they want to confirm or re-record the recording of their
3849 name when entering the conference
3852 --------------------------
3853 * At exit, the Directory application now sets a channel variable
3854 DIRECTORY_RESULT to one of the following based on the reason for exiting:
3855 OPERATOR user requested operator by pressing '0' for operator
3856 ASSISTANT user requested assistant by pressing '*' for assistant
3857 TIMEOUT user pressed nothing and Directory stopped waiting
3858 HANGUP user's channel hung up
3859 SELECTED user selected a user from the directory and is routed
3860 USEREXIT user pressed '#' from the selection prompt to exit
3861 FAILED directory failed in a way that wasn't accounted for. Dang.
3865 * Monitor() - A new option, B(), has been added that will turn on a periodic
3866 beep while the call is being recorded.
3869 --------------------------
3870 * MusicOnHold streams (all modes other than "files") now support wide band
3874 --------------------------
3875 * Added options 'b' and 'B' to apply predial handlers for outgoing calls
3876 and for the channel executing Page respectively.
3879 --------------------------
3880 * PickupChan now accepts channel uniqueids of channels to pickup.
3883 --------------------------
3884 * If a channel variable SAY_DTMF_INTERRUPT is present on a channel and set
3885 to 'true' (case insensitive), then any Say application (SayNumber,
3886 SayDigits, SayAlpha, SayAlphaCase, SayUnixTime, and SayCounted) will
3887 anticipate DTMF. If DTMF is received, these applications will behave like
3888 the background application and jump to the received extension once a match
3889 is established or after a short period of inactivity.
3892 -------------------------
3893 * A new function, MIXMONITOR, has been added to allow access to individual
3894 instances of MixMonitor on a channel.
3896 * A new option, B(), has been added that will turn on a periodic beep while the
3897 call is being recorded.
3901 -------------------------
3904 -------------------------
3905 * TEL URI support for inbound INVITE requests has been added. chan_sip will
3906 now handle TEL schemes in the Request and From URIs. The phone-context in
3907 the Request URI will be stored in the SIPURIPHONECONTEXT channel variable on
3908 the inbound channel.
3912 * Exposed sorcery-based configuration files like pjsip.conf to dialplans via
3913 the new AST_SORCERY diaplan function.
3915 * Core Show Locks output now includes Thread/LWP ID if the platform
3916 supports this feature.
3918 * New "logger add channel" and "logger remove channel" CLI commands have
3919 been added to allow creation and deletion of dynamic logger channels
3920 without configuration changes. These dynamic logger channels will only
3921 exist until the next restart of asterisk.
3925 * The live recording object on recording events now contains a target_uri
3926 field which contains the URI of what is being recorded.
3928 * The bridge type used when creating a bridge is now a comma separated list of
3929 bridge properties. Valid options are: mixing, holding, dtmf_events, and
3932 * A channelId can now be provided when creating a channel, either in the
3933 uri (POST channels/my-channel-id) or as query parameter. A local channel
3934 will suffix the second channel id with ';2' unless provided as query
3935 parameter otherChannelId.
3937 * A bridgeId can now be provided when creating a bridge, either in the uri
3938 (POST bridges/my-bridge-id) or as a query parameter.
3940 * A playbackId can be provided when starting a playback, either in the uri
3941 (POST channels/my-channel-id/play/my-playback-id /
3942 POST bridges/my-bridge-id/play/my-playback-id) or as a query parameter.
3944 * A snoop channel can be started with a snoopId, in the uri or query.
3948 * Originate now takes optional parameters ChannelId and OtherChannelId,
3949 used to set the UniqueId on creation. The other id is assigned to the
3950 second channel when dialing LOCAL, or defaults to appending ;2 if only
3951 the single Id is given.
3953 * The Mixmonitor action now has a "Command" header that can be used to
3954 indicate a post-process command to run once recording finishes.
3958 * A new set of Alembic scripts has been added for CDR tables. This will create
3959 a 'cdr' table with the default schema that Asterisk expects.
3964 * A new function was added: PERIODIC_HOOK. This allows running a periodic
3965 dialplan hook on a channel. Any audio generated by this hook will be
3966 injected into the call.
3974 * A new module, res_hep, has been added, that acts as a generic packet
3975 capture agent for the Homer Encapsulation Protocol (HEP) version 3.
3976 It can be configured via hep.conf. Other modules can use res_hep to send
3977 message traffic to a HEP capture server.
3981 * A new module, res_hep_pjsip, has been added that will forward PJSIP
3982 message traffic to a HEP capture server. See res_hep for more
3987 * transport and endpoint ToS options (tos, tos_audio, and tos_video) may now
3988 be set as the named set of ToS values (cs0-cs7, af11-af43, ef).
3990 * Added the following new CLI commands:
3991 - "pjsip show contacts" - list all current PJSIP contacts.
3992 - "pjsip show contact" - show specific information about a current PJSIP
3994 - "pjsip show channel" - show detailed information about a PJSIP channel.
3996 res_pjsip_multihomed
3998 * A new module, res_pjsip_multihomed handles situations where the system
3999 Asterisk is running out has multiple interfaces. res_pjsip_multihomed
4000 determines which interface should be used during message sending.
4002 res_pjsip_pidf_digium_body_supplement
4004 * A new module, res_pjsip_pidf_digium_body_supplement provides NOTIFY
4005 request body formatting for presence support in Digium phones.
4007 res_pjsip_send_to_voicemail
4009 * A new module, res_pjsip_send_to_voicemail allows for REFER requests with
4010 particular headers to transfer a PJSIP channel directly to a particular
4011 extension that has VoiceMail. This is intended to be used with Digium
4012 phones that support this feature.
4014 res_pjsip_outbound_registration
4016 * A new CLI command has been added: "pjsip show registrations", which lists
4017 all configured PJSIP registrations
4020 ------------------------------------------------------------------------------
4021 --- Functionality changes from Asterisk 12.0.0 to Asterisk 12.1.0 ------------
4022 ------------------------------------------------------------------------------
4026 * Added a new module that provides AMI control over MWI within Asterisk,
4027 res_mwi_external_ami. Note that this module depends on res_mwi_external;
4028 for more information on enabling this module, see res_mwi_external.
4029 This module provides the MWIGet/MWIUpdate/MWIDelete actions, as well as
4030 the MWIGet/MWIGetComplete events.
4032 * The DialStatus field in the DialEnd event can now contain additional
4033 statuses that convey how the dial operation terminated. This includes
4034 ABORT, CONTINUE, and GOTO.
4036 * AMI will now emit security events. A new class authorization has been
4037 added in manager.conf for the security events, 'security'. The new events
4039 - FailedACL - raised when a request violates an ACL check
4040 - InvalidAccountID - raised when a request fails an authentication
4041 check due to an invalid account ID
4042 - SessionLimit - raised when a request fails due to exceeding the
4043 number of allowed concurrent sessions for a service
4044 - MemoryLimit - raised when a request fails due to an internal memory
4046 - LoadAverageLimit - raised when a request fails because a configured
4047 load average limit has been reached
4048 - RequestNotAllowed - raised when a request is not allowed by
4050 - AuthMethodNotAllowed - raised when a request used an authentication
4051 method not allowed by the service
4052 - RequestBadFormat - raised when a request is received with bad formatting
4053 - SuccessfulAuth - raised when a request successfully authenticates
4054 - UnexpectedAddress - raised when a request has a different source address
4055 then what is expected for a session already in progress with a service
4056 - ChallengeResponseFailed - raised when a request's attempt to authenticate
4057 has been challenged, and the request failed the authentication challenge
4058 - InvalidPassword - raised when a request provides an invalid password
4059 during an authentication attempt
4060 - ChallengeSent - raised when an Asterisk service send an authentication
4061 challenge to a request
4062 - InvalidTransport - raised when a request attempts to use a transport not
4063 allowed by the Asterisk service
4065 * Bridge related events now have two additional fields: BridgeName and
4066 BridgeCreator. BridgeName is a descriptive name for the bridge;
4067 BridgeCreator is the name of the entity that created the bridge. This
4068 affects the following events: ConfbridgeStart, ConfbridgeEnd,
4069 ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
4070 ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
4071 AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
4075 * The Bridge data model now contains the additional fields 'name' and
4076 'creator'. The 'name' field conveys a descriptive name for the bridge;
4077 the 'creator' field conveys the name of the entity that created the bridge.
4078 This affects all responses to HTTP requests that return a Bridge data model
4079 as well as all event derived data models that contain a Bridge data model.
4080 The POST /bridges operation may now optionally specify a name to give to
4081 the bridge being created.
4083 * Added a new ARI resource 'mailboxes' which allows the creation and
4084 modification of mailboxes managed by external MWI. Modules res_mwi_external
4085 and res_stasis_mailbox must be enabled to use this resource. For more
4086 information on external MWI control, see res_mwi_external.
4088 * Added new events for externally initiated transfers. The event
4089 BridgeBlindTransfer is now raised when a channel initiates a blind transfer
4090 of a bridge in the ARI controlled application to the dialplan; the
4091 BridgeAttendedTransfer event is raised when a channel initiates an
4092 attended transfer of a bridge in the ARI controlled application to the
4095 * Channel variables may now be specified as a body parameter to the
4096 POST /channels operation. The 'variables' key in the JSON is interpreted
4097 as a sequence of key/value pairs that will be added to the created channel
4098 as channel variables. Other parameters in the JSON body are treated as
4099 query parameters of the same name.
4103 * Asterisk's HTTP server now supports chunked Transfer-Encoding. This will be
4104 automatically handled by the HTTP server if a request is received with a
4105 Transfer-Encoding type of "chunked".
4109 * Path support has been added with the 'support_path' option in registration
4112 * A 'debug' option has been added to the globals section that will allow
4113 sip messages to be logged.
4115 * A 'set_var' option has been added to endpoints that will automatically
4116 set the desired variable(s) on a channel created for that endpoint.
4118 * Several new tables and columns have been added to the realtime schema for
4119 the res_pjsip related modules. See the UPGRADE.txt notes for updating
4120 the database schema.
4124 * A new module, res_mwi_external, has been added to Asterisk. This module
4125 acts as a base framework that other modules can build on top of to allow
4126 an external system to control MWI within Asterisk. For implementations
4127 that make use of res_mwi_external, see res_mwi_external_ami and
4128 res_ari_mailboxes. Note that res_mwi_external conflicts with other modules
4129 that may produce MWI themselves, such as app_voicemail. res_mwi_external
4130 and other modules that depend on it cannot be built or loaded with
4131 app_voicemail present.
4135 * DNS functionality will now automatically be enabled if the system configured
4136 nameservers can be retrieved. If the system configured nameservers can not be
4137 retrieved the functionality will resort to using system resolution. Functionality
4138 such as SRV records and failover will not be available if system resolution
4141 ------------------------------------------------------------------------------
4142 --- Functionality changes from Asterisk 11 to Asterisk 12 --------------------
4143 ------------------------------------------------------------------------------
4148 Asterisk 12 is a standard release of the Asterisk project. As such, the
4149 focus of development for this release was on core architectural changes and
4150 major new features. This includes:
4151 * A more flexible bridging core based on the Bridging API
4152 * A new internal message bus, Stasis
4153 * Major standardization and consistency improvements to AMI
4154 * Addition of the Asterisk RESTful Interface (ARI)
4155 * A new SIP channel driver, chan_pjsip
4156 In addition, as the vast majority of bridging in Asterisk was migrated to the
4157 Bridging API used by ConfBridge, major changes were made to most of the
4158 interfaces in Asterisk. This includes not only AMI, but also CDRs and CEL.
4160 Specifications have been written for the affected interfaces. These
4161 specifications are available on the Asterisk wiki:
4162 * AMI - https://wiki.asterisk.org/wiki/x/dAFRAQ
4163 * CEL - https://wiki.asterisk.org/wiki/x/4ICLAQ
4164 * CDRs - https://wiki.asterisk.org/wiki/x/pwpRAQ
4166 It is *highly* recommended that anyone migrating to Asterisk 12 read the
4167 information regarding its release both in this file and in the accompanying
4168 UPGRADE.txt file. More detailed information on the major changes can be found
4169 on the Asterisk wiki at https://wiki.asterisk.org/wiki/x/0YCLAQ.
4174 * Added build option DISABLE_INLINE. This option can be used to work around a
4175 bug in gcc. For more information, see
4176 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47816
4178 * Removed the CHANNEL_TRACE development mode build option. Certain aspects of
4179 the CHANNEL_TRACE build option were incompatible with the new bridging
4182 * Asterisk now optionally uses libxslt to improve XML documentation generation
4183 and maintainability. If libxslt is not available on the system, some XML
4184 documentation will be incomplete.
4186 * Asterisk now depends on libjansson. If a package of libjansson is not
4187 available on your distro, please see http://www.digip.org/jansson/.
4189 * Asterisk now depends on libuuid and, optionally, uriparser. It is
4190 recommended that you install uriparser, even if it is optional.
4192 * The new SIP stack and channel driver uses a particular version of PJSIP.
4193 Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
4194 configuring and installing PJSIP for usage with Asterisk.
4196 * Optional API was re-implemented to be more portable, and no longer requires
4197 weak reference support from the compiler. The build option OPTIONAL_API may
4198 be disabled to disable Optional API support.
4205 * Along with AgentRequest, this application has been modified to be a
4206 replacement for chan_agent. The act of a channel calling the AgentLogin
4207 application places the channel into a pool of agents that can be
4208 requested by the AgentRequest application. Note that this application, as
4209 well as all other agent related functionality, is now provided by the
4210 app_agent_pool module. See chan_agent and AgentRequest for more information.
4212 * This application no longer performs agent authentication. If authentication
4213 is desired, the dialplan needs to perform this function using the
4214 Authenticate or VMAuthenticate application or through an AGI script before
4217 * If this application is called and the agent is already logged in, the
4218 dialplan will continue execution with the AGENT_STATUS channel variable set
4219 to ALREADY_LOGGED_IN.
4221 * The agents.conf schema has changed. Rather than specifying agents on a
4222 single line in comma delineated fashion, each agent is defined in a separate
4223 context. This allows agents to use the power of context templates in their
4226 * A number of parameters from agents.conf have been removed. This includes
4227 maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
4228 urlprefix, and savecallsin. These options were obsoleted by the move from
4229 a channel driver model to the bridging/application model provided by
4234 * A new application, this will request a logged in agent from the pool and
4235 bridge the requested channel with the channel calling this application.
4236 Logged in agents are those channels that called the AgentLogin application.
4237 If an agent cannot be requested from the pool, the AGENT_STATUS dialplan
4238 application will be set with an appropriate error value.
4240 AgentMonitorOutgoing
4242 * This application has been removed. It was a holdover from when
4243 AgentCallbackLogin was removed.
4247 * Added support for additional Ademco DTMF signalling formats, including
4248 Express 4+1, Express 4+2, High Speed and Super Fast.
4250 * Added channel variable ALARMRECEIVER_CALL_LIMIT. This sets the maximum
4251 call time, in milliseconds, to run the application.
4253 * Added channel variable ALARMRECEIVER_RETRIES_LIMIT. This sets the
4254 maximum number of times to retry the call.
4256 * Added a new configuration option answait. If set, the AlarmReceiver
4257 application will wait the number of milliseconds specified by answait
4258 after the channel has answered. Valid values range between 500
4259 milliseconds and 10000 milliseconds.
4261 * Added configuration option no_group_meta. If enabled, grouping of metadata
4262 information in the AlarmReceiver log file will be skipped.
4266 * It is now no longer possible to bypass updating the CDR on the channel
4267 when answering. CDRs reflect the state of the channel and will always
4268 reflect the time they were Answered.
4272 * A new application in Asterisk, this will place the calling channel
4273 into a holding bridge, optionally entertaining them with some form of
4274 media. Channels participating in a holding bridge do not interact with
4275 other channels in the same holding bridge. Optionally, however, a channel
4276 may join as an announcer. Any media passed from an announcer channel is
4277 played to all channels in the holding bridge. Channels leave a holding
4278 bridge either when an optional timer expires, or via the ChannelRedirect
4279 application or AMI Redirect action.
4283 * All participants in a bridge can now be kicked out of a conference room
4284 by specifying the channel parameter as 'all' in the ConfBridge kick CLI
4285 command, i.e., 'confbridge kick <conference> all'
4287 * CLI output for the 'confbridge list' command has been improved. When
4288 displaying information about a particular bridge, flags will now be shown
4289 for the participating users indicating properties of that user.
4291 * The ConfbridgeList event now contains the following fields: WaitMarked,
4292 EndMarked, and Waiting. This displays additional properties about the
4293 user's profile, as well as whether or not the user is waiting for a
4294 Marked user to enter the conference.
4296 * Added a new option for conference recording, record_file_append. If enabled,
4297 when the recording is stopped and then re-started, the existing recording
4298 will be used and appended to.
4300 * ConfBridge now has the ability to set the language of announcements to the
4301 conference. The language can be set on a bridge profile in confbridge.conf
4302 or by the dialplan function CONFBRIDGE(bridge,language)=en.
4306 * The channel variable CPLAYBACKSTATUS may now return the value
4307 'REMOTESTOPPED'. This occurs when playback is stopped by a remote interface,
4308 such as AMI. See the AMI action ControlPlayback for more information.
4312 * Added the 'a' option, which allows the caller to enter in an additional
4313 alias for the user in the directory. This option must be used in conjunction
4314 with the 'f', 'l', or 'b' options. Note that the alias for a user can be
4315 specified in voicemail.conf.
4319 * The output of DumpChan no longer includes the DirectBridge or IndirectBridge
4320 fields. Instead, if a channel is in a bridge, it includes a BridgeID field
4321 containing the unique ID of the bridge that the channel happens to be in.
4325 * ForkCDR no longer automatically resets the forked CDR. See the 'r' option
4326 for more information.
4328 * Variables are no longer purged from the original CDR. See the 'v' option for
4331 * The 'A' option has been removed. The Answer time on a CDR is never updated
4334 * The 'd' option has been removed. The disposition on a CDR is a function of
4335 the state of the channel and cannot be altered.
4337 * The 'D' option has been removed. Who the Party B is on a CDR is a function
4338 of the state of the respective channels involved in the CDR and cannot be
4341 * The 'r' option has been changed. Previously, ForkCDR always reset the CDR
4342 such that the start time and, if applicable, the answer time was updated.
4343 Now, by default, ForkCDR simply forks the CDR, maintaining any times. The
4344 'r' option now triggers the Reset, setting the start time (and answer time
4345 if applicable) to the current time. Note that the 'a' option still sets
4346 the answer time to the current time if the channel was already answered.
4348 * The 's' option has been removed. A variable can be set on the original CDR
4349 if desired using the CDR function, and removed from a forked CDR using the
4352 * The 'T' option has been removed. The concept of DONT_TOUCH and LOCKED no
4353 longer applies in the CDR engine.
4355 * The 'v' option now prevents the copy of the variables from the original CDR
4356 to the forked CDR. Previously the variables were always copied but were
4357 removed from the original. This was changed as removing variables from a CDR
4358 can have unintended side effects - this option allows the user to prevent
4359 propagation of variables from the original to the forked without modifying
4364 * Added the 'n' option to MeetMe to prevent application of the DENOISE
4365 function to a channel joining a conference. Some channel drivers that vary
4366 the number of audio samples in a voice frame will experience significant
4367 quality problems if a denoiser is attached to the channel; this option gives
4368 them the ability to remove the denoiser without having to unload func_speex.
4372 * The 'b' option now includes conferences as well as sounds played to the
4375 * The AUDIOHOOK_INHERIT function is no longer needed to keep a MixMonitor
4376 running during a transfer. If a MixMonitor is started on a channel,
4377 the MixMonitor will continue to record the audio passing through the
4378 channel even in the presence of transfers.
4382 * The NoCDR application is deprecated. Please use the CDR_PROP function to
4385 * While the NoCDR application will prevent CDRs for a channel from being
4386 propagated to registered CDR backends, it will not prevent that data from
4387 being collected. Hence, a subsequent call to ResetCDR or the CDR_PROP
4388 function that enables CDRs on a channel will restore those records that have
4389 not yet been finalized.
4393 * The app_parkandannounce module has been removed. The application
4394 ParkAndAnnounce is now provided by the res_parking module. See the
4395 res_parking changes for more information.
4399 * Added queue available hint. The hint can be added to the dialplan using the
4400 following syntax: exten,hint,Queue:{queue_name}_avail
4401 For example, if the name of the queue is 'markq':
4402 exten => 8501,hint,Queue:markq_avail
4403 This will report 'InUse' if there are no logged in agents or no free agents.
4404 It will report 'Idle' when an agent is free.
4406 * Queues now support a hint for member paused state. The hint uses the form
4407 'Queue:{queue_name}_pause_{member_name}', where {queue_name} and {member_name}
4408 are the name of the queue and the name of the member to subscribe to,
4409 respectively. For example: exten => 8501,hint,Queue:sales_pause_mark.
4410 Members will show as In Use when paused.
4412 * The configuration options eventwhencalled and eventmemberstatus have been
4413 removed. As a result, the AMI events QueueMemberStatus, AgentCalled,
4414 AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
4415 sent. The "Variable" fields will also no longer exist on the Agent* events.
4416 These events can be filtered out from a connected AMI client using the
4417 eventfilter setting in manager.conf.
4419 * The queue log now differentiates between blind and attended transfers. A
4420 blind transfer will result in a BLINDTRANSFER message with the destination
4421 context and extension. An attended transfer will result in an
4422 ATTENDEDTRANSFER message. This message will indicate the method by which
4423 the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
4424 for running an application on a bridge or channel, or "LINK" for linking
4425 two bridges together with local channels. The queue log will also now detect
4426 externally initiated blind and attended transfers and record the transfer
4429 * When performing queue pause/unpause on an interface without specifying an
4430 individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
4431 least one member of any queue exists for that interface.
4433 * Added the 'queue_log_realtime_use_gmt' option to have timestamps in GMT
4434 for realtime queue log entries.
4438 * The 'e' option has been deprecated. Use the CDR_PROP function to re-enable
4439 CDRs when they were previously disabled on a channel.
4441 * The 'w' and 'a' options have been removed. Dispatching CDRs to registered
4442 backends occurs on an as-needed basis in order to preserve linkedid
4443 propagation and other needed behavior.
4447 * A new application, this is similar to SayAlpha except that it supports
4448 case sensitive playback of the specified characters. For example,
4449 SayAlphaCase(u,aBc) will result in 'a uppercase b c'.
4453 * This application is deprecated in favor of CHANNEL(amaflags).
4457 * The SendDTMF application will now accept 'W' as valid input. This will cause
4458 the application to delay one second while streaming DTMF.
4462 * A new application in Asterisk 12, this hands control of the channel calling
4463 the application over to an external system. Currently, external systems
4464 manipulate channels in Stasis through the Asterisk RESTful Interface (ARI).
4468 * UserEvent will now handle duplicate keys by overwriting the previous value
4469 assigned to the key.
4471 * In addition to AMI, UserEvent invocations will now be distributed to any
4472 interested Stasis applications.
4476 * Mailboxes defined by app_voicemail MUST be referenced by the rest of the
4477 system as mailbox@context. The rest of the system cannot add @default
4478 to mailbox identifiers for app_voicemail that do not specify a context
4479 any longer. It is a mailbox identifier format that should only be
4480 interpreted by app_voicemail.
4482 * The voicemail.conf configuration file now has an 'alias' configuration
4483 parameter for use with the Directory application. The voicemail realtime
4484 database table schema has also been updated with an 'alias' column.
4489 * Pass through support has been added for both VP8 and Opus.
4491 * Added format attribute negotiation for the Opus codec. Format attribute
4492 negotiation is provided by the res_format_attr_opus module.
4497 * Masquerades as an operation inside Asterisk have been effectively hidden
4498 by the migration to the Bridging API. As such, many 'quirks' of Asterisk
4499 no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
4500 dropping of frame/audio hooks, and other internal implementation details
4501 that users had to deal with. This fundamental change has large implications
4502 throughout the changes documented for this version. For more information
4503 about the new core architecture of Asterisk, please see the Asterisk wiki.
4505 * Multiple parties in a bridge may now be transferred. If a participant in a
4506 multi-party bridge initiates a blind transfer, a Local channel will be used
4507 to execute the dialplan location that the transferer sent the parties to. If
4508 a participant in a multi-party bridge initiates an attended transfer,
4509 several options are possible. If the attended transfer results in a transfer
4510 to an application, a Local channel is used. If the attended transfer results
4511 in a transfer to another channel, the resulting channels will be merged into
4514 * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is no longer channel
4515 driver specific. If the channel variable is set on the transferrer channel,
4516 the sound will be played to the target of an attended transfer.
4518 * The channel variable BRIDGEPEER becomes a comma separated list of peers in
4519 a multi-party bridge. The BRIDGEPEER value can have a maximum of 10 peers
4520 listed. Any more peers in the bridge will not be included in the list.
4521 BRIDGEPEER is not valid in holding bridges like parking since those channels
4522 do not talk to each other even though they are in a bridge.
4524 * The channel variable BRIDGEPVTCALLID is only valid for two party bridges
4525 and will contain a value if the BRIDGEPEER's channel driver supports it.
4527 * A channel variable ATTENDEDTRANSFER is now set which indicates which channel
4528 was responsible for an attended transfer in a similar fashion to
4531 * Modules using the Configuration Framework or Sorcery must have XML
4532 configuration documentation. This configuration documentation is included
4533 with the rest of Asterisk's XML documentation, and is accessible via CLI
4534 commands. See the CLI changes for more information.
4536 AMI (Asterisk Manager Interface)
4538 * Major changes were made to both the syntax as well as the semantics of the
4539 AMI protocol. In particular, AMI events have been substantially improved
4540 in this version of Asterisk. For more information, please see the AMI
4541 specification at https://wiki.asterisk.org/wiki/x/dAFRAQ
4543 * AMI events that reference a particular channel or bridge will now always
4544 contain a standard set of fields. When multiple channels or bridges are
4545 referenced in an event, fields for at least some subset of the channels
4546 and bridges in the event will be prefixed with a descriptive name to avoid
4547 name collisions. See the AMI event documentation on the Asterisk wiki for
4550 * The CLI command 'manager show commands' no longer truncates command names
4551 longer than 15 characters and no longer shows authorization requirement
4552 for commands. 'manager show command' now displays the privileges needed
4553 for using a given manager command instead.
4555 * The SIPshowpeer action will now include a 'SubscribeContext' field for a
4556 peer in its response if the peer has a subscribe context set.
4558 * The SIPqualifypeer action now acknowledges the request once it has
4559 established that the request is against a known peer. It also issues a new
4560 event, 'SIPQualifyPeerDone', once the qualify action has been completed.
4562 * The PlayDTMF action now supports an optional 'Duration' parameter. This
4563 specifies the duration of the digit to be played, in milliseconds.
4565 * Added VoicemailRefresh action to allow an external entity to trigger mailbox
4566 updates when changes occur instead of requiring the use of pollmailboxes.
4568 * Added a new action 'ControlPlayback'. The ControlPlayback action allows an
4569 AMI client to manipulate audio currently being played back on a channel. The
4570 supported operations depend on the application being used to send audio to
4571 the channel. When the audio playback was initiated using the ControlPlayback
4572 application or CONTROL STREAM FILE AGI command, the audio can be paused,
4573 stopped, restarted, reversed, or skipped forward. When initiated by other
4574 mechanisms (such as the Playback application), the audio can be stopped,
4575 reversed, or skipped forward.
4577 * Channel related events now contain a snapshot of channel state, adding new
4578 fields to many of these events.
4580 * The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
4581 in a future release. Please use the common 'Exten' field instead.
4583 * The AMI event 'UserEvent' from app_userevent now contains the channel state
4584 fields. The channel state fields will come before the body fields.
4586 * The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
4587 'UnParkedCall' have changed significantly in the new res_parking module.
4589 The 'Channel' and 'From' headers are gone. For the channel that was parked
4590 or is coming out of parking, a 'Parkee' channel snapshot is issued and it
4591 has a number of fields associated with it. The old 'Channel' header relayed
4592 the same data as the new 'ParkeeChannel' header.
4594 The 'From' field was ambiguous and changed meaning depending on the event.
4595 for most of these, it was the name of the channel that parked the call
4596 (the 'Parker'). There is no longer a header that provides this channel name,
4597 however the 'ParkerDialString' will contain a dialstring to redial the
4598 device that parked the call.
4600 On UnParkedCall events, the 'From' header would instead represent the
4601 channel responsible for retrieving the parkee. It receives a channel
4602 snapshot labeled 'Retriever'. The 'from' field is is replaced with
4605 Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
4607 * The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
4608 fashion has changed the field names 'StartExten' and 'StopExten' to
4609 'StartSpace' and 'StopSpace' respectively.
4611 * The deprecated use of | (pipe) as a separator in the channelvars setting in
4612 manager.conf has been removed.
4614 * Channel Variables conveyed with a channel no longer contain the name of the
4615 channel as part of the key field, i.e., ChanVariable(SIP/foo): bar=baz is now
4616 ChanVariable: bar=baz. When multiple channels are present in a single AMI
4617 event, the various ChanVariable fields will contain a suffix that specifies
4618 which channel they correspond to.
4620 * The NewPeerAccount AMI event is no longer raised. The NewAccountCode AMI
4621 event always conveys the AMI event for a particular channel.
4623 * All 'Reload' events have been consolidated into a single event type. This
4624 event will always contain a Module field specifying the name of the module
4625 and a Status field denoting the result of the reload. All modules now issue
4626 this event when being reloaded.
4628 * The 'ModuleLoadReport' event has been removed. Most AMI connections would
4629 fail to receive this event due to being connected after modules have loaded.
4630 AMI connections that want to know when Asterisk is ready should listen for
4631 the 'FullyBooted' event.
4633 * app_fax now sends the same send fax/receive fax events as res_fax. The
4634 'FaxSent' event is now the 'SendFAX' event, and the 'FaxReceived' event is
4635 now the 'ReceiveFAX' event.
4637 * The 'MusicOnHold' event is now two events: 'MusicOnHoldStart' and
4638 'MusicOnHoldStop'. The sub type field has been removed.
4640 * The 'JabberEvent' event has been removed. It is not AMI's purpose to be a
4641 carrier for another protocol.
4643 * The Bridge Manager action's 'Playtone' header now accepts more fine-grained
4644 options. 'Channel1' and 'Channel2' may be specified in order to play a tone
4645 to the specific channel. 'Both' may be specified to play a tone to both
4646 channels. The old 'yes' option is still accepted as a way of playing the
4647 tone to Channel2 only.
4649 * The AMI 'Status' response event to the AMI Status action replaces the
4650 'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
4651 indicate what bridge the channel is currently in.
4653 * The AMI 'Hold' event has been moved out of individual channel drivers, into
4654 core, and is now two events: 'Hold' and 'Unhold'. The status field has been
4657 * The AMI events in app_queue have been made more consistent with each other.
4658 Events that reference channels (QueueCaller* and Agent*) will show
4659 information about each channel. The (infamous) 'Join' and 'Leave' AMI
4660 events have been changed to 'QueueCallerJoin' and 'QueueCallerLeave'.
4662 * The 'MCID' AMI event now publishes a channel snapshot when available and
4663 its non-channel-snapshot parameters now use either the "MCallerID" or
4664 'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
4665 of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
4666 parameters in the channel snapshot.
4668 * The AMI events 'Agentlogin' and 'Agentlogoff' have been renamed
4669 'AgentLogin' and 'AgentLogoff' respectively.
4671 * The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
4672 renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
4674 * 'ChannelUpdate' events have been removed.
4676 * All AMI events now contain a 'SystemName' field, if available.
4678 * Local channel optimization is now conveyed in two events:
4679 'LocalOptimizationBegin' and 'LocalOptimizationEnd'. The Begin event is sent
4680 when the Local channel driver begins attempting to optimize itself out of
4681 the media path; the End event is sent after the channel halves have
4682 successfully optimized themselves out of the media path.
4684 * Local channel information in events is now prefixed with 'LocalOne' and
4685 'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
4686 the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
4687 and 'LocalOptimizationEnd' events.
4689 * The option 'allowmultiplelogin' can now be set or overriden in a particular
4690 account. When set in the general context, it will act as the default
4691 setting for defined accounts.
4693 * The 'BridgeAction' event was removed. It technically added no value, as the
4694 Bridge Action already receives confirmation of the bridge through a
4695 successful completion Event.
4697 * The 'BridgeExec' events were removed. These events duplicated the events that
4698 occur in the Bridging API, and are conveyed now through BridgeCreate,
4699 BridgeEnter, and BridgeLeave events.
4701 * The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
4702 previous versions. They now report all SR/RR packets sent/received, and
4703 have been restructured to better reflect the data sent in a SR/RR. In
4704 particular, the event structure now supports multiple report blocks.
4706 * Added 'BlindTransfer' and 'AttendedTransfer' events. These events are
4707 raised when a blind transfer/attended transfer completes successfully.
4708 They contain information about the transfer that just completed, including
4709 the location of the transfered channel.
4711 * Added a 'security' class to AMI which outputs the required fields for
4712 security messages similar to the log messages from res_security_log
4714 * The AMI event 'ExtensionStatus' now contains a 'StatusText' field
4715 that describes the status value in a human readable string.
4717 CDR (Call Detail Records)
4719 * Significant changes have been made to the behavior of CDRs. The CDR engine
4720 was effectively rewritten and built on the Stasis message bus. For a full
4721 definition of CDR behavior in Asterisk 12, please read the specification
4722 on the Asterisk wiki (wiki.asterisk.org).
4724 * CDRs will now be created between all participants in a bridge. For each
4725 pair of channels in a bridge, a CDR is created to represent the path of
4726 communication between those two endpoints. This lets an end user choose who
4727 to bill for what during bridge operations with multiple parties.
4729 * The duration, billsec, start, answer, and end times now reflect the times
4730 associated with the current CDR for the channel, as opposed to a cumulative
4731 measurement of all CDRs for that channel.
4733 * When a CDR is dispatched, user defined CDR variables from both parties are
4734 included in the resulting CDR. If both parties have the same variable, only
4735 the Party A value is provided.
4737 * Added a new option to cdr.conf, 'debug'. When enabled, significantly more
4738 information regarding the CDR engine is logged as verbose messages. This
4739 option should only be used if the behavior of the CDR engine needs to be
4742 * Added CLI command 'cdr set debug {on|off}'. This toggles the 'debug' setting
4743 normally configured in cdr.conf.
4745 * Added CLI command 'cdr show active {channel}'. When {channel} is not
4746 specified, this command provides a summary of the channels with CDR
4747 information and their statistics. When {channel} is specified, it shows
4748 detailed information about all records associated with {channel}.
4750 CEL (Channel Event Logging)
4752 * CEL has undergone significant rework in Asterisk 12, and is now built on the
4753 Stasis message bus. Please see the specification for CEL on the Asterisk
4754 wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
4757 * The 'extra' field of all CEL events that use it now consists of a JSON blob
4758 with key/value pairs which are defined in the Asterisk 12 CEL documentation.
4760 * BLINDTRANSFER events now report the transferee bridge unique
4761 identifier, extension, and context in a JSON blob as the extra string
4762 instead of the transferee channel name as the peer.
4764 * ATTENDEDTRANSFER events now report the peer as NULL and additional
4765 information in the 'extra' string as a JSON blob. For transfers that occur
4766 between two bridged channels, the 'extra' JSON blob contains the primary
4767 bridge unique identifier, the secondary channel name, and the secondary
4768 bridge unique identifier. For transfers that occur between a bridged channel
4769 and a channel running an app, the 'extra' JSON blob contains the primary
4770 bridge unique identifier, the secondary channel name, and the app name.
4772 * LOCAL_OPTIMIZE events have been added to convey local channel
4773 optimizations with the record occurring for the semi-one channel and
4774 the semi-two channel name in the peer field.
4776 * BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
4777 CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
4778 events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT. The BRIDGE_ENTER
4779 and BRIDGE_EXIT events are raised when a channel enters/exits any bridge,
4780 regardless of whether or not that bridge happens to contain multiple
4785 * When compiled with '--enable-dev-mode', the astobj2 library will now add
4786 several CLI commands that allow for inspection of ao2 containers that
4787 register themselves with astobj2. The CLI commands are 'astobj2 container
4788 dump', 'astobj2 container stats', and 'astobj2 container check'.
4790 * Added specific CLI commands for bridge inspection. This includes 'bridge
4791 show all', which lists all bridges in the system, and 'bridge show {id}',
4792 which provides specific information about a bridge.
4794 * Added CLI command 'bridge destroy'. This will destroy the specified bridge,
4795 ejecting the channels currently in the bridge. If the channels cannot
4796 continue in the dialplan or application that put them in the bridge, they
4799 * Added command 'bridge kick'. This will eject a single channel from a bridge.
4801 * Added commands to inspect and manipulate the registered bridge technologies.
4802 This include 'bridge technology show', which lists the registered bridge
4803 technologies, as well as 'bridge technology {suspend|unsuspend} {tech}',
4804 which controls whether or not a registered bridge technology can be used
4805 during smart bridge operations. If a technology is suspended, it will not
4806 be used when a bridge technology is picked for channels; when unsuspended,
4807 it can be used again.
4809 * The command 'config show help {module} {type} {option}' will show
4810 configuration documentation for modules with XML configuration
4811 documentation. When {module}, {type}, and {option} are omitted, a listing
4812 of all modules with registered documentation is displayed. When {module}
4813 is specified, a listing of all configuration types for that module is
4814 displayed, along with their synopsis. When {module} and {type} are
4815 specified, a listing of all configuration options for that type are
4816 displayed along with their synopsis. When {module}, {type}, and {option}
4817 are specified, detailed information for that configuration option is
4820 * Added 'core show sounds' and 'core show sound' CLI commands. These display
4821 a listing of all installed media sounds available on the system and
4822 detailed information about a sound, respectively.
4824 * 'xmldoc dump' has been added. This CLI command will dump the XML
4825 documentation DOM as a string to the specified file. The Asterisk core
4826 will populate certain XML elements pulled from the source files with
4827 additional run-time information; this command lets a user produce the
4828 XML documentation with all information.
4832 * Parking has been pulled from core and placed into a separate module called
4833 res_parking. See Parking changes below for more details. Configuration for
4834 parking should now be performed in res_parking.conf. Configuration for
4835 parking in features.conf is now unsupported.
4837 * Core attended transfers now have several new options. While performing an
4838 attended transfer, the transferer now has the following options:
4839 - *1 - cancel the attended transfer (configurable via atxferabort)
4840 - *2 - complete the attended transfer, dropping out of the call
4841 (configurable via atxfercomplete)
4842 - *3 - complete the attended transfer, but stay in the call. This will turn
4843 the call into a multi-party bridge (configurable via atxferthreeway)
4844 - *4 - swap to the other party. Once an attended transfer has begun, this
4845 options may be used multiple times (configurable via atxferswap)
4847 * For DTMF blind and attended transfers, the channel variable TRANSFER_CONTEXT
4848 must be on the channel initiating the transfer to have any effect.
4850 * The BRIDGE_FEATURES channel variable would previously only set features for
4851 the calling party and would set this feature regardless of whether the
4852 feature was in caps or in lowercase. Use of a caps feature for a letter
4853 will now apply the feature to the calling party while use of a lowercase
4854 letter will apply that feature to the called party.
4856 * Add support for automixmon to the BRIDGE_FEATURES channel variable.
4858 * The channel variable DYNAMIC_PEERNAME is redundant with BRIDGEPEER and is
4859 removed. The more useful DYNAMIC_WHO_ACTIVATED gives the channel name that
4860 activated the dynamic feature.
4862 * The channel variables DYNAMIC_FEATURENAME and DYNAMIC_WHO_ACTIVATED are set
4863 only on the channel executing the dynamic feature. Executing a dynamic
4864 feature on the bridge peer in a multi-party bridge will execute it on all
4865 peers of the activating channel.
4867 * You can now have the settings for a channel updated using the FEATURE()
4868 and FEATUREMAP() functions inherited to child channels by setting
4869 FEATURE(inherit)=yes.
4871 * automixmon now supports additional channel variables from automon including:
4872 TOUCH_MIXMONITOR_PREFIX, TOUCH_MIXMONITOR_MESSAGE_START,
4873 and TOUCH_MIXMONITOR_MESSAGE_STOP
4875 * A new general features.conf option 'recordingfailsound' has been added which
4876 allowssetting a failure sound for a user tries to invoke a recording feature
4877 such as automon or automixmon and it fails.
4879 * It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
4880 features.c for atxferdropcall=no to work properly. This option now just
4885 * Added log rotation strategy 'none'. If set, no log rotation strategy will
4886 be used. Given that this can cause the Asterisk log files to grow quickly,
4887 this option should only be used if an external mechanism for log management
4892 * Dynamic realtime tables for SIP Users can now include a 'path' field. This
4893 will store the path information for that peer when it registers. Realtime
4894 tables can also use the 'supportpath' field to enable Path header support.
4896 * LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
4897 objectIdentifier. This maps to the supportpath option in sip.conf.
4901 * Sorcery is a new data abstraction and object persistence API in Asterisk. It
4902 provides modules a useful abstraction on top of the many storage mechanisms
4903 in Asterisk, including the Asterisk Database, static configuration files,
4904 static Realtime, and dynamic Realtime. It also provides a caching service.
4905 Users can configure a hierarchy of data storage layers for specific modules
4908 * All future modules which utilize Sorcery for object persistence must have a
4909 column named "id" within their schema when using the Sorcery realtime module.
4910 This column must be able to contain a string of up to 128 characters in length.
4912 Security Events Framework
4914 * Security Event timestamps now use ISO 8601 formatted date/time instead of
4915 the "seconds-microseconds" format that it was using previously.
4919 * The Stasis message bus is a publish/subscribe message bus internal to
4920 Asterisk. Many services in Asterisk are built on the Stasis message bus,
4921 including AMI, ARI, CDRs, and CEL. Parameters controlling the operation of
4922 Stasis can be configured in stasis.conf. Note that these parameters operate
4923 at a very low level in Asterisk, and generally will not require changes.
4927 * When a channel driver is configured to enable jiterbuffers, they are now
4928 applied unconditionally when a channel joins a bridge. If a jitterbuffer
4929 is already set for that channel when it enters, such as by the JITTERBUFFER
4930 function, then the existing jitterbuffer will be used and the one set by
4931 the channel driver will not be applied.
4935 * chan_agent has been removed and replaced with AgentLogin and AgentRequest
4936 dialplan applications provided by the app_agent_pool module. Agents are
4937 connected with callers using the new AgentRequest dialplan application.
4938 The Agents:<agent-id> device state is available to monitor the status of an
4939 agent. See agents.conf.sample for valid configuration options.
4941 * The updatecdr option has been removed. Altering the names of channels on a
4942 CDR is not supported - the name of the channel is the name of the channel,
4943 and pretending otherwise helps no one. The AGENTUPDATECDR channel variable
4944 has also been removed, for the same reason.
4946 * The endcall and enddtmf configuration options are removed. Use the
4947 dialplan function CHANNEL(dtmf_features) to set DTMF features on the agent
4948 channel before calling AgentLogin.
4952 * chan_bridge has been removed. Its functionality has been incorporated
4953 directly into the ConfBridge application itself.
4957 * Added the CLI command 'pri destroy span'. This will destroy the D-channel
4958 of the specified span and its B-channels. Note that this command should
4959 only be used if you understand the risks it entails.
4961 * The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
4962 A range of channels can be specified to be destroyed. Note that this command
4963 should only be used if you understand the risks it entails.
4965 * Added the CLI command 'dahdi create channels'. A range of channels can be
4966 specified to be created, or the keyword 'new' can be used to add channels
4969 * The script specified by the chan_dahdi.conf mwimonitornotify option now gets
4970 the exact configured mailbox name. For app_voicemail mailboxes this is
4973 * Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
4977 * IPv6 support has been added. We are now able to bind to and
4978 communicate using IPv6 addresses.
4982 * The /b option has been removed.
4984 * chan_local moved into the system core and is no longer a loadable module.
4988 * Added general support for busy detection.
4990 * Added ECAM command support for Sony Ericsson phones.