Subject: CVS commit: pkgsrc/comms/asterisk19
From: John Nemeth
Date: 2024-07-08 07:03:02
Message id: 20240708050302.91839FC74@cvs.NetBSD.org

Log Message:
Update to Asterisk 19.8.1.

Note that the Asterisk 19.* series is EOL and this package will be
scheduled for deletion in one to two quarters.

pkgsrc changes:
- MKPIE_SUPPORTED=NO -- eol, so not worth effort to fix
- various new/obsoleted config files / docs
- new/obsoleted features
  + app_sf
  + func_evalexten
  + func_export
  + func_json
  + res_ari_mailboxes
  + res_geolocation
  + res_mwi_external
  + res_mwi_external_ami
  + res_pjsip_geolocation
  + res_pjsip_rfc3329
  + res_speech_aeap
  + res_stasis_playback

Change Log for Release 19.8.1
========================================

Summary:
----------------------------------------

- apply_patches: Use globbing instead of file/sort.
- bundled_pjproject: Backport 2 SSL patches from upstream
- bundled_pjproject: Backport security fixes from pjproject 2.13.1
- apply_patches: Sort patch list before applying

Closed Issues:
----------------------------------------

  - #188: [improvement]:  pjsip: Upgrade bundled version to pjproject 2.13.1 #187
  - #193: [bug]: third-party/apply-patches doesn't sort the patch file list \ 
before applying
  - #194: [bug]: Segfault/double-free in bundled pjproject using TLS transport

Commits By Author:
----------------------------------------

- ### George Joseph (3):
  - apply_patches: Sort patch list before applying
  - bundled_pjproject: Backport security fixes from pjproject 2.13.1
  - bundled_pjproject: Backport 2 SSL patches from upstream

- ### Sean Bright (1):
  - apply_patches: Use globbing instead of file/sort.

-----

------------------------------------------------------------------------------
--- Functionality changes from Asterisk 19.7.0 to Asterisk 19.8.0 ------------
------------------------------------------------------------------------------

cdr
------------------
 * Two new options have been added which allow
   bridging and dial state changes to be ignored
   in CDRs, which can be useful if a single CDR
   is desired for a channel.

res_pjsip
------------------
 * Added options "security_negotiation" and \ 
"security_mechanisms" to pjsip
   endpoints and registrations. "security_negotiation" can be set to \ 
"no" (default)
   or "mediasec", and "security_mechanisms" can be a list of \ 
comma-separated
   security_mechanisms in the form defined by RFC 3329 section 2.2.

 * A new option named "all_codecs_on_empty_reinvite" has been added to the
   global section. When this option is enabled, on reception of a re-INVITE
   without SDP, Asterisk will send an SDP offer in the 200 OK response containing
   all configured codecs on the endpoint, instead of simply those that have
   already been negotiated. RFC 3261 specifies this as a SHOULD requirement.
   The default value is "off".

res_pjsip_logger
------------------
 * SIP messages can now be filtered by SIP request method
   (INVITE, CANCEL, ACK, BYE, REGISTER, OPTION,
   SUBSCRIBE, NOTIFY, PUBLISH, INFO, and MESSAGE),
   allowing for more granular debugging to be done
   in the CLI. This applies to requests but not responses.

res_pjsip_notify
------------------
 * Allows using the config options in pjsip_notify.conf
   from AMI actions as with the existing CLI commands.

res_tonedetect
------------------
 * The TONE_DETECT function now supports
   detection of audible ringback tone
   using the p option.

------------------------------------------------------------------------------
--- Functionality changes from Asterisk 19.6.0 to Asterisk 19.7.0 ------------
------------------------------------------------------------------------------

New EXPORT function
------------------
 * A new function, EXPORT, allows writing variables
   and functions on other channels, the complement
   of the IMPORT function.

app_amd
------------------
 * An audio file to play during AMD processing can
   now be specified to the AMD application or configured
   in the amd.conf configuration file.

app_bridgewait
------------------
 * Adds the n option to not answer the channel when
   the BridgeWait application is called.

features
------------------
 * The Bridge application now has the n "no answer" option
   that can be used to prevent the channel from being
   automatically answered prior to bridging.

func_strings
------------------
 * Three new functions, TRIM, LTRIM, and RTRIM, are
   now available for trimming leading and trailing
   whitespace.

res_pjsip
------------------
 * A new option named "peer_supported" has been added to the endpoint \ 
option
   100rel. When set to this option, Asterisk sends provisional responses
   reliably if the peer supports it. If the peer does not support reliable
   provisional responses, Asterisk sends them normally.

------------------------------------------------------------------------------
--- Functionality changes from Asterisk 19.6.0 to Asterisk 19.7.0 ------------
------------------------------------------------------------------------------

Transfer feature
------------------
 * The following capabilities have been added to the
   transfer feature:

   - The transfer initiation announcement prompt can
   now be customized in features.conf.

   - The TRANSFER_EXTEN variable now can be set on the
   transferer's channel in order to allow the transfer
   function to automatically attempt to go to the extension
   contained in this variable, if it exists. The transfer
   context behavior is not changed (TRANSFER_CONTEXT is used
   if it exists; otherwise the default context is used).

app_confbridge
------------------
 * Adds the end_marked_any option which can be used
   to kick users from a conference after any
   marked user leaves (including marked users).

locks
------------------
 * A new AMI event, DeadlockStart, is now available
   when Asterisk is compiled with DETECT_DEADLOCKS,
   and can indicate that a deadlock has occured.

res_geolocation
------------------
 * Added 4 built-in profiles:
     "<prefer_config>"
     "<discard_config>"
     "<prefer_incoming>"
     "<discard_incoming>"
   The profiles are empty except for having their precedence
   set.

   Added profile parameter "suppress_empty_ca_elements" that
   will cause Civic Address elements that are empty to be
   suppressed from the outgoing PIDF-LO document.

   You can now specify the location object's format, location_info,
   method, location_source and confidence parameters directly on
   a profile object for simple scenarios where the location
   information isn't common with any other profiles.  This is
   mutually exclusive with setting location_reference on the
   profile.

   Added an 'a' option to the GEOLOC_PROFILE function to allow
   variable lists like location_info_refinement to be appended
   to instead of replacing the entire list.

   Added an 'r' option to the GEOLOC_PROFILE function to resolve all
   variables before a read operation and after a Set operation.

res_musiconhold_answeredonly
------------------
 * This change adds an option, answeredonly, that will prevent music
   on hold on channels that are not answered.

res_pjsip
------------------
 * TLS transports in res_pjsip can now reload their TLS certificate
   and private key files, provided the filename of them has not
   changed.

------------------------------------------------------------------------------
--- Functionality changes from Asterisk 19.5.0 to Asterisk 19.6.0 ------------
------------------------------------------------------------------------------

res_geolocation
------------------
 * * Added processing for the 'confidence' element.
   * Added documentation to some APIs.
   * removed a lot of complex code related to the very-off-nominal
     case of needing to process multiple location info sources.
   * Create a new 'ast_geoloc_eprofile_to_pidf' API that just takes
     one eprofile instead of a datastore of multiples.
   * Plugged a huge leak in XML processing that arose from
     insufficient documentation by the libxml/libxslt authors.
   * Refactored stylesheets to be more efficient.
   * Renamed 'profile_action' to 'profile_precedence' to better
     reflect it's purpose.
   * Added the config option for 'allow_routing_use' which
     sets the value of the 'Geolocation-Routing' header.
   * Removed the GeolocProfileCreate and GeolocProfileDelete
     dialplan apps.
   * Changed the GEOLOC_PROFILE dialplan function as follows:
     * Removed the 'profile' argument.
     * Automatically create a profile if it doesn't exist.
     * Delete a profile if 'inheritable' is set to no.
   * Fixed various bugs and leaks
   * Updated Asterisk WiKi documentation.

------------------------------------------------------------------------------
--- Functionality changes from Asterisk 19.5.0 to Asterisk 19.6.0 ------------
------------------------------------------------------------------------------

chan_dahdi
------------------
 * A POLARITY function is now available that allows
   getting or setting the polarity on a channel
   from the dialplan.

db
------------------
 * The DBPrefixGet AMI action now allows retrieving
   all of the DB keys beginning with a particular
   prefix.

res_cliexec
------------------
 * A new CLI command, dialplan exec application, has
   been added which allows dialplan applications to be
   executed at the CLI, useful for some quick testing
   without needing to write dialplan.

res_geolocation
------------------
 * Added res_geolocation which creates the core capabilities
   to manipulate Geolocation information on SIP INVITEs.

res_pjsip
------------------
 * A new transport option 'allow_wildcard_certs' has been added that when it
   and 'verify_server' are both set to 'yes', enables verification against
   wildcards, i.e. '*.' in certs for common, and subject alt names of type DNS
   for TLS transport types. Names must start with the wildcard. Partial wildcards,
   e.g. 'f*.example.com' and 'foo.*.com' are not allowed. As well, names only
   match against a single level meaning '*.example.com' matches 'foo.example.com',
   but not 'foo.bar.example.com'.

res_pjsip_geolocation
------------------
 * Added res_pjsip_geolocation which gives chan_pjsip
   the ability to use the core geolocation capabilities.

res_pjsip_header_funcs
------------------
 * Add function PJSIP_RESPONSE_HEADERS() to get list of header names from 200 \ 
response, in the same way as PJSIP_HEADERS() from the request.

   Add function PJSIP_RESPONSE_HEADER() to read header from 200 response, in the \ 
same way as PJSIP_HEADER() from the request.

------------------------------------------------------------------------------
--- Functionality changes from Asterisk 19.4.0 to Asterisk 19.5.0 ------------
------------------------------------------------------------------------------

app_confbridge
------------------
 * Added the hear_own_join_sound option to the confbridge user profile to
   control who hears the sound_join audio file. When set to 'yes' the user
   entering the conference and the participants already in the conference
   will hear the sound_join audio file. When set to 'no' the user entering
   the conference will not hear the sound_join audio file, but the
   participants already in the conference will hear the sound_join audio file.

 * Adds the CONFBRIDGE_CHANNELS function which can
   be used to retrieve a list of channels in a ConfBridge,
   optionally filtered by a particular category. This
   list can then be used with functions like SHIFT, POP,
   UNSHIFT, etc.

app_queue
------------------
 * The m option now allows an override music on hold
   class to be specified for the Queue application
   within the dialplan.

app_voicemail
------------------
 * The r option has been added, which prevents deletion
   of messages from VoiceMailMain, which can be
   useful for shared mailboxes.

ari
------------------
 * Expose channel driver's unique id (which is the Call-ID for SIP/PJSIP)
   to ARI channel resources as 'protocol_id'.

   ASTERISK-30027

chan_dahdi
------------------
 * Previously, cadences were appended on dahdi restart,
   rather than reloaded. This prevented cadences from
   being updated and maxed out the available cadences
   if reloaded multiple times. This behavior is fixed
   so that reloading cadences is idempotent and cadences
   can actually be reloaded.

chan_pjsip
------------------
 * added global config option "allow_sending_180_after_183"

   Allow Asterisk to send 180 Ringing to an endpoint
   after 183 Session Progress has been send.
   If disabled Asterisk will instead send only a
   183 Session Progress to the endpoint.

 * Hook flash events can now be sent on a PJSIP channel
   if requested to do so.

chan_sip
------------------
 * Session timers get removed on UPDATE
   Fix if Asterisk receives a SIP REFER with Session-Timers UAC
   that Asterisk maintains Session-Timers when sending UPDATE request

cli
------------------
 * A new CLI command 'dialplan eval function' has been
   added which allows users to test the behavior of
   dialplan function calls directly from the CLI.

func_db
------------------
 * The function DB_KEYCOUNT has been added, which
   returns the cardinality of the keys at a specified
   prefix in AstDB, i.e. the number of keys at a
   given prefix.

func_evalexten
------------------
 * This adds the EVAL_EXTEN function which may be
   used to evaluate data at dialplan extensions.

res_agi
------------------
 * Agi command 'exec' can now be enabled
   to evaluate dialplan functions and variables
   by setting the variable AGIEXECFULL to yes.

res_parking
------------------
 * An m option to Park and ParkAndAnnounce now allows
   specifying a music on hold class override.

stasis_channels
------------------
 * Expose channel driver's unique id (which is the Call-ID for SIP/PJSIP)
   to ARI channel resources as 'protocol_id'.

   ASTERISK-30027

------------------------------------------------------------------------------
--- Functionality changes from Asterisk 19.3.1 to Asterisk 19.3.2 ------------
------------------------------------------------------------------------------

func_odbc
------------------
 * A SQL_ESC_BACKSLASHES dialplan function has been added which
   escapes backslashes. Usage of this is dependent on whether the
   database in use can use backslashes to escape ticks or not. If
   it can, then usage of this prevents a broken SQL query depending
   on how the SQL query is constructed.

------------------------------------------------------------------------------
--- Functionality changes from Asterisk 19.2.0 to Asterisk 19.3.0 ------------
------------------------------------------------------------------------------

ami
------------------
 * AMI events can now be globally disabled using
   the disabledevents [general] setting.

app_mf
------------------
 * Adds an option to ReceiveMF to cap the
   number of digits read at a user-specified
   maximum.

app_queue
------------------
 * Load queues and members from Realtime for
   AMI actions: QueuePause, QueueStatus and QueueSummary,
   Applications: PauseQueueMember and UnpauseQueueMember.

 * Added a new AMI action: QueueWithdrawCaller
   This AMI action makes it possible to withdraw a caller from a queue
   back to the dialplan. The call will be signaled to leave the queue
   whenever it can, hence, it not guaranteed that the call will leave
   the queue.

   Optional custom data can be passed in the request, in the WithdrawInfo
   parameter. If the call successfully withdrawn the queue,
   it can be retrieved using the QUEUE_WITHDRAW_INFO variable.

   This can be useful for certain uses, such as dispatching the call
   to a specific extension.

channel_internal_api
------------------
 * CHANNEL(lastcontext) and CHANNEL(lastexten)
   are now available for use in the dialplan.

res_pjsip_pubsub
------------------
 * A new resource_list option, resource_display_name, indicates
   whether display name of resource or the resource name being
   provided for RLS entries.
   If this option is enabled, the Display Name will be provided.
   This option is disabled by default to remain the previous behavior.
   If the 'event' set to 'presence' or 'dialog' the non-empty HINT name
   will be set as the Display Name.
   The 'message-summary' is not supported yet.

 * The Resource List Subscriptions (RLS) is dynamic now.
   The asterisk now updates current subscriptions to reflect the changes
   to the list on subscription refresh. If list items are added,
   removed, updated or do not exist anymore, the asterisk regenerates
   the resource list.

------------------------------------------------------------------------------
--- Functionality changes from Asterisk 19.1.0 to Asterisk 19.2.0 ------------
------------------------------------------------------------------------------

Applications
------------------
 * added support for Danish syntax, playing the correct plural sound file
   dependen on where you have 1 or multipe messages
   based on the existing SE/NO code

 * added that we set DIALEDPEERNUMBER on the outgoing channels
   so it is avalible in b(content^extension^line)
   this add the same behaviour as Dial

Core
------------------
 * Bundled PJProject Build

   The build process has been updated to make pjproject troubleshooting
   and development easier. See third-party/pjproject/README-hacking.md or
   https://wiki.asterisk.org/wiki/display/AST/Bundled+PJProject
   for more info.

ami
------------------
 * An AMI event now exists for "Wink".

app_mf
------------------
 * Adds MF receiver and sender applications to support
   the R1 MF signaling protocol, including integration
   with the Dial application.

app_queue
------------------
 * added that we set DIALEDPEERNUMBER on the outgoing channels
   so it is avalible in b(content^extension^line)
   this add the same behaviour as Dial

app_queues
------------------
 * adding support for playing the correct en/et for nordic languages

 * Don't play sound_thanks if there is no leading hold_time message
   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"

app_sendtext
------------------
 * A ReceiveText application has been added that can be
   used in conjunction with the SendText application.

app_voicemail
------------------
 * added support for Danish syntax, playing the correct plural sound file
   dependen on where you have 1 or multipe messages
   based on the existing SE/NO code

cdr
------------------
 * A new CDR option, channeldefaultenabled, allows controlling
   whether CDR is enabled or disabled by default on
   newly created channels. The default behavior remains
   unchanged from previous versions of Asterisk (new
   channels will have CDR enabled, as long as CDR is
   enabled globally).

chan_sip.c
------------------
 * resolve issue with pickup on device that uses "183" and not \ 
"180"

cli
------------------
 * The "module refresh" command has been added,
   which allows unloading and then loading a
   module with a single command.

func_json
------------------
 * The JSON_DECODE dialplan function can now be used
   to parse JSON strings, such as in conjunction with
   CURL for using API responses.

res_fax_spandsp
------------------
 * Adds support for spandsp 3.0.0.

Files:
RevisionActionfile
1.28modifypkgsrc/comms/asterisk19/Makefile
1.4modifypkgsrc/comms/asterisk19/PLIST
1.3modifypkgsrc/comms/asterisk19/distinfo
1.2modifypkgsrc/comms/asterisk19/options.mk
1.2modifypkgsrc/comms/asterisk19/patches/patch-channels_chan__sip.c
1.2modifypkgsrc/comms/asterisk19/patches/patch-main_manager.c
1.1addpkgsrc/comms/asterisk19/patches/patch-apps_app__macro.c
1.1addpkgsrc/comms/asterisk19/patches/patch-build__tools_make__xml__documentation
1.1addpkgsrc/comms/asterisk19/patches/patch-channels_chan__mgcp.c
1.1addpkgsrc/comms/asterisk19/patches/patch-channels_chan__skinny.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__format__attr__celt.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__format__attr__h263.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__format__attr__ilbc.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__format__attr__opus.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__format__attr__silk.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__format__attr__siren14.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__format__attr__siren7.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__format__attr__vp8.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__monitor.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__mwi__external.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__pjsip__diversion.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__pjsip_pjsip__configuration.c
1.1addpkgsrc/comms/asterisk19/patches/patch-res_res__pktccops.c
1.1addpkgsrc/comms/asterisk19/patches/patch-third-party_pjproject_patches_0000-configure-ssl-library-path.patch
1.1removepkgsrc/comms/asterisk19/patches/patch-include_asterisk_sha1.h
1.1removepkgsrc/comms/asterisk19/patches/patch-res_res__calendar__caldav.c
1.1removepkgsrc/comms/asterisk19/patches/patch-res_res__calendar__icalendar.c