Asterisk 13.5.0 Now Available
Wed, 12 Aug 2015 07:55:53 +1200
Hi all, sorry I missed this one the other day. So, a little late but here nonetheless.

The Asterisk Development Team has announced the release of Asterisk 13.5.0.

This release is available for immediate download at http://downloads.asterisk.org/pub/telephony/asterisk

The release of Asterisk 13.5.0 resolves several issues reported by the community and would have not been possible without your participation.

Thank you!

The following are the issues resolved in this release:

Improvements made in this release:

  • ASTERISK-25256 - [patch]Post AMI VarSet to empty string events when Asterisk deletes a dialplan variable. (Reported by Richard Mudgett)
  • ASTERISK-25067 - Sorcery Caching: Implement a new caching module (Reported by Matt Jordan)
  • ASTERISK-25040 - pbx: Improve performance of reloads by making hint destruction more performant (Reported by Matt Jordan)
  • ASTERISK-25114 - res_pjsip: Add AMI events for chan_pjsip contact lifecycle changes (Reported by George Joseph)
  • ASTERISK-25072 - res_pjsip_outbound_registration: line functionality. Additional check for using the request URI (Reported by Dmitriy Serov)

Bugs fixed in this release:

  • ASTERISK-25250 - chan_sip - Despite the channel being answered, caller on a call established via Local channel continues to hear ringback (Reported by Etienne Lessard)
  • ASTERISK-25253 - confbridge volume options and other volume controls such as func_volume don\'t work (Reported by Dmitriy Serov)
  • ASTERISK-25247 - choppy audio when spying on a g722 channel, chan_sip or chan_pjsip (Reported by hristo)
  • ASTERISK-24867 - Docs for \'e\' option in ResetCDR say to use CDR_PROP instead, CDR_PROP docs are unclear (Reported by Rusty Newton)
  • ASTERISK-24853 - Documentation claims chan_sip outbound registrations support WS or WSS as valid transports (not true) (Reported by PSDK)
  • ASTERISK-25242 - PJSIP: No audio when Asterisk inside NAT and endpoints outside NAT - implement functionality similar to chan_sip \'rtpkeepalive\'? (Reported by Mark Michelson)
  • ASTERISK-25258 - chan_pjsip: Incorrect format switch on received RTP packet (Reported by Joshua Colp)
  • ASTERISK-25257 - [patch]channels/sig_pri.h -> sig_pri_span -> force_restart_unavailable_chans in wrong scope (Reported by Patric Marschall)
  • ASTERISK-24934 - [patch]Asterisk manager output does not escape control characters (Reported by warren smith)
  • ASTERISK-25255 - Missing AMI VarSet events when setting to an empty string. (Reported by Richard Mudgett)
  • ASTERISK-25254 - Crash if dialplan sets ATTENDEDTRANSFER to an empty string before Park. (Reported by Richard Mudgett)
  • ASTERISK-25183 - PJSIP: Crash on NULL channel in chan_pjsip_incoming_response despite previous checks for NULL channel (Reported by Matt Jordan)
  • ASTERISK-25201 - Crash in PJSIP distributor on already free\'d threadpool (Reported by Matt Jordan)
  • ASTERISK-24782 - StasisEnd event not present for channel that was swapped out for another after completing attended transfer (Reported by John Bigelow)
  • ASTERISK-25240 - bridge_native_rtp: Direct media wrongfully started when completing attended transfer (Reported by Joshua Colp)
  • ASTERISK-25103 - Roundup - investigate Asterisk DTLS crashes (Reported by Rusty Newton)
  • ASTERISK-22805 - res_rtp_asterisk: Crash when calling BIO_ctrl_pending in dtls_srtp_check_pending when dialed by JSSIP (Reported by Dmitry Burilov)
  • ASTERISK-24550 - res_rtp_asterisk: Crash in ast_rtp_on_ice_complete during DTLS handshake (Reported by Osaulenko Alexander)
  • ASTERISK-24651 - [patch] Fix race condition in DTLS (Reported by Badalian Vyacheslav)
  • ASTERISK-24832 - [patch]DTLS-crashes within openssl (Reported by Stefan Engstrom)
  • ASTERISK-25127 - DTLS crashes following \"Unable to cancel schedule ID\" in dtls_srtp_check_pending (Reported by Dade Brandon)
  • ASTERISK-25168 - Random Core Dumps on Asterisk 13.4 PJSIP, in ast_channel_name at channel_internal_api.c (Reported by Carl Fortin)
  • ASTERISK-25115 - Crash related to func sip_resolve_invoke_user_callback of res_pjsip/pjsip_resolver.c (Reported by John Bigelow)
  • ASTERISK-25226 - chan_sip: Channel leak in branch 13 on early replaces call pickup (Reported by Walter Doekes)
  • ASTERISK-25220 - [patch]Closing of fd -1 in chan_mgcp.c (Reported by Walter Doekes)
  • ASTERISK-25219 - [patch]Source and destination overlap in memcpy in rtp_engine.c (Reported by Walter Doekes)
  • ASTERISK-25212 - [patch]Segfault when using DEBUG_FD_LEAKS (Reported by Walter Doekes)
  • ASTERISK-19277 - [patch]endlessly repeating error: \"poll failed: Bad file descriptor\" (Reported by Barry Chern)
  • ASTERISK-25165 - Testsuite - Sorcery memory cache leaks (Reported by Corey Farrell)
  • ASTERISK-25202 - Hints extension state broken between 13.3.2 and 13.4 (Reported by cervajs)
  • ASTERISK-25196 - res_pjsip_nat: rewrite_contact should not be applied to Contact header when Record-Route headers are present (Reported by Mark Michelson)
  • ASTERISK-24907 - res_pjsip_outbound_registration: crash during unload if registration attempts are still occuring (Reported by Kevin Harwell)
  • ASTERISK-25204 - res_pjsip_refer: Duplicated Referred-By or Replaces headers on outbound INVITEs. (Reported by Mark Michelson)
  • ASTERISK-25171 - Early completion of feature code attended transfer results in intermittent one-way audio, \"ghost ringing\" and robotic sound. (Reported by Rusty Newton)
  • ASTERISK-25189 - AMI: Add Linkedid header to standard channel snapshot information. (Reported by Richard Mudgett)
  • ASTERISK-25172 - Crash in channels/sip/sip blind transfer/caller_refer_only test in ast_format_cap_append_from_cap during ast_request (Reported by Matt Jordan)
  • ASTERISK-25180 - res_pjsip_mwi: Unsolicited MWI requires reload (Reported by Joshua Colp)
  • ASTERISK-25182 - [patch] on CLI sip reload, new codecs get appended only (Reported by Alexander Traud)
  • ASTERISK-25163 - Deadlock in chan_sip between reload of sip peer container and MWI Stasis callback (Reported by Dmitriy Serov)
  • ASTERISK-25091 - Asterisk REST API - bridge.addChannel crash asterisk when calling channel hangup while adding to bridge (Reported by Ilya Trikoz)
  • ASTERISK-24900 - Manager event ParkedCallSwap is not documented (Reported by Rusty Newton)
  • ASTERISK-25162 - func_pjsip_aor: Leak of contact in iterator (Reported by Corey Farrell)
  • ASTERISK-25158 - res_pjsip: Add option to use AAL2 packing when negotiating g.726 (Reported by Kevin Harwell)
  • ASTERISK-24344 - CDR_PROP(disable) disables CDR only for first dialed party (Reported by Janusz Karolak)
  • ASTERISK-24443 - CDR fields (dst, dcontext) empty in transfer call started from Macro (Reported by Arveno Santoro)
  • ASTERISK-25154 - [patch]fromtag may need to be updated after successful call dialog match (Reported by Damian Ivereigh)
  • ASTERISK-25156 - chan_pjsip's CHAN_START cel event lacks the correct context and exten (Reported by cloos)
  • ASTERISK-25157 - bridging: Performing a blonde transfer does not result in connected line updates (Reported by Joshua Colp)
  • ASTERISK-25087 - Asterisk segfault when using Directory application with alias option and specific mailbox configuration (Reported by Chet Stevens)
  • ASTERISK-24983 - IAX deadlock between hangup and scheduled actions (ex. largrq) (Reported by Y Ateya)
  • ASTERISK-25096 - [patch]Segfault when registering over websockets with PJSIP (in ast_sockaddr_isnull at /include/asterisk/netsock2.h) (Reported by Josh Kitchens)
  • ASTERISK-24963 - ASAN: heap-use-after-free with PJSIP and WSS (Reported by Badalian Vyacheslav)
  • ASTERISK-22559 - gcc 4.6 and higher supports weakref attribute but asterisk doesn\'t detect it. (Reported by ibercom)
  • ASTERISK-25094 - PBX core: Investigate thread safety issues (Reported by Corey Farrell)
  • ASTERISK-25148 - res_pjsip NULL channel audit (Reported by Mark Michelson)
  • ASTERISK-24717 - ASAN: global-buffer-overflow codec_{ilbc | gsm | adpcm | ipc10} (Reported by Badalian Vyacheslav)
  • ASTERISK-25137 - endpoint stasis messages are delivered twice (Reported by Vitezslav Novy)
  • ASTERISK-25116 - res_pjsip: Two PeerStatus AMI messages are sent for every status change (Reported by George Joseph)
  • ASTERISK-25131 - chan_pjsip: In-dialog authentication not handled. (Reported by Richard Mudgett)
  • ASTERISK-25100 - asterisk coredump if host has an IPv6 address that end with ::80 (Reported by Mark Petersen)
  • ASTERISK-25122 - Large SIP packet received via pjsip over websocket crashes Asterisk (Reported by Ivan Poddubny)
  • ASTERISK-25121 - Stasis: Fix unsafe use of stasis_unsubscribe in modules. (Reported by Corey Farrell)
  • ASTERISK-24988 - func_talkdetect: Test is bouncing sporadically (Reported by Joshua Colp)
  • ASTERISK-25105 - res_pjsip: Possible incompatibility between qualify_timeout and pjproject-2.4 (Reported by George Joseph)
  • ASTERISK-25117 - res_mwi_external_ami: Fix manager action registrations. (Reported by Corey Farrell)


New Features made in this release:

  • ASTERISK-25259 - chan_pjsip: Add rtptimeout support (Reported by Joshua Colp)
  • ASTERISK-25238 - ARI: Support push configuration (Reported by Matt Jordan)
  • ASTERISK-25173 - ARI: Add the ability to load/reload/unload an Asterisk module (Reported by Matt Jordan)

For a full list of changes in this release, please see the ChangeLog:

http://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-13.5.0

Thank you for your continued support of Asterisk!
Asterisk News now on Apple News
Tue, 11 Aug 2015 08:18:48 +1200
So, the Asterisk News is now available via the Apple News app on iPhones etc. The app won\'t actually be available until IOS 9 but if you have a developer account you can use it now.

Just search for Asterisk News or Asterisk in the channels section.

If you have any ideas about how I should change it, just let me know.
Asterisk 11.19.0 Now Available
Tue, 11 Aug 2015 08:09:12 +1200
The Asterisk Development Team has announced the release of Asterisk 11.19.0:

This release is available for immediate download at http://downloads.asterisk.org/pub/telephony/asterisk

The release of Asterisk 11.19.0 resolves several issues reported by the community and would have not been possible without your participation.

Thank you!

The following are the issues resolved in this release:

Bugs fixed in this release:

* ASTERISK-25250 - chan_sip - Despite the channel being answered, caller on a call established via Local channel continues to hear ringback (Reported by Etienne Lessard)
* ASTERISK-25247 - choppy audio when spying on a g722 channel, chan_sip or chan_pjsip (Reported by hristo)
* ASTERISK-24853 - Documentation claims chan_sip outbound registrations support WS or WSS as valid transports (not true) (Reported by PSDK)
* ASTERISK-25257 - [patch]channels/sig_pri.h -> sig_pi_span -> force_restart_unavailable_chans in wrong scope (Reported by Patric Marschall)
* ASTERISK-25103 - Roundup - investigate Asterisk DTLS crashes
(Reported by Rusty Newton)
* ASTERISK-22805 - res_rtp_asterisk: Crash when calling BIO_ctrl_pending in dtls_srtp_check_pending when dialed by JSSIP (Reported by Dmitry Burilov)
* ASTERISK-24550 - res_rtp_asterisk: Crash in ast_rtp_on_ice_complete during DTLS handshake (Reported by Osaulenko Alexander)
* ASTERISK-24651 - [patch] Fix race condition in DTLS (Reported by Badalian Vyacheslav)
* ASTERISK-24832 - [patch]DTLS-crashes within openssl (Reported by Stefan Engström)
* ASTERISK-25127 - DTLS crashes following \"Unable to cancel schedule ID\" in dtls_srtp_check_pending (Reported by Dade Brandon)
* ASTERISK-25213 - [patch]Possibility of deadlock in chan_sip INVITE early Replace code (Reported by Walter Doekes)
* ASTERISK-25220 - [patch]Closing of fd -1 in chan_mgcp.c (Reported by Walter Doekes)
* ASTERISK-25219 - [patch]Source and destination overlap in memcpy in rtp_engine.c (Reported by Walter Doekes)
* ASTERISK-25212 - [patch]Segfault when using DEBUG_FD_LEAKS (Reported by Walter Doekes)
* ASTERISK-19277 - [patch]endlessly repeating error: \"poll failed: Bad file descriptor\" (Reported by Barry Chern)
* ASTERISK-25202 - Hints extension state broken between 13.3.2 and 13.4 (Reported by cervajs)
* ASTERISK-25154 - [patch]fromtag may need to be updated after successful call dialog match (Reported by Damian Ivereigh)
* ASTERISK-25139 - Malicious transfer sequence locks up Asterisk (Reported by Gregory Massel)
* ASTERISK-25094 - PBX core: Investigate thread safety issues (Reported by Corey Farrell)
* ASTERISK-22559 - gcc 4.6 and higher supports weakref attribute but asterisk doesn\'t detect it. (Reported by ibercom)
* ASTERISK-24717 - ASAN: global-buffer-overflow codec_{ilbc | gsm| adpcm | ipc10} (Reported by Badalian Vyacheslav)
* ASTERISK-25100 - asterisk coredump if host has an IPv6 address that end with ::80 (Reported by Mark Petersen)

Improvements made in this release:

* ASTERISK-25040 - pbx: Improve performance of reloads by making hint destruction more performant (Reported by Matt Jordan)

For a full list of changes in this release, please see the ChangeLog:

http://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-11.19.0

Thank you for your continued support of Asterisk!
New Features Coming in 13.5.0
Wed, 29 Jul 2015 03:09:03 +1200
Matt Jordan has posted an update on what\'s coming in Asterisk 13.5.0:

Hey everyone:

As you may have noticed, yesterday the announcement for 13.5.0-rc1 was sent out to the list. This release contains a lot of new and interesting features that I thought would be nice if we highlighted.

Sorcery Caching



For those who aren\'t familiar the Sorcery framework in Asterisk 13: Sorcery acts as a Data Abstraction Layer, sitting between its consumers and all the various types of configuration providers in Asterisk. Sorcery provides its consumers:
  • A pseudo ORM (pseudo because in C we don\'t really have objects, and the configuration provider may not be relational). For a consumer\'s in memory objects, Sorcery does provide a level of type safety, input validation, and other helpful operations that typically require a lot of boilerplate code.

  • Atomicity of configuration information for module operations.

  • Integration with other subsystems, such as the XML documentation engine.


A consumer\'s in-memory objects are mapped to a configuration provider in sorcery.conf. For example, the snippet below maps res_pjsip\'s endpoint objects to a realtime backend, with optional data passed to the realtime backend of \'ps_endpoints\' - in this case, the table name:

[res_pjsip]
endpoint=realtime,ps_endpoints


Since its inception, Sorcery has had a notion of caching. For example, we could tell Sorcery to put an in-memory cache for our previous endpoint object using the following:

[res_pjsip]
endpoint/cache=memory
endpoint=realtime,ps_endpoints


However, this cache was pretty simplistic: once something got defined in it, it would stick around. This, unfortunately, made it not so useful for most scenarios.

The new Sorcery Cache that is in 13.5.0 provides full, configurable caching support. That includes:

  • Object expiration via an object lifetime

  • Maximum number of objects allowed in the cache

  • Object staleness, which can force an auto-refresh of an object

  • Options to control when the cache is purged

  • AMI/CLI commands to manipulate the cache


Note that this is configured the same way as shown previously, with a small adjustment for which subsystem provides the cache:

[res_pjsip]
endpoint/cache=memory_cache
endpoint=realtime,ps_endpoints


Note that you aren\'t limited to using a cache in front of a realtime backend; you can theoretically use a cache in front of any object managed by Sorcery to improve performance.

More information on this feature can be found on the wiki:

https://wiki.asterisk.org/wiki/display/AST/Sorcery+Caching

Push Configuration



ARI has received a new feature that allows for Sorcery managed configuration to be pushed into Asterisk, as opposed to pulled. What does that mean?

Typically, configuration in Asterisk works something along the following lines:

  • Some consumer realizes they need configuration information for some operation

  • The consumer asks their provider, Sorcery - in this case - for that information

  • Sorcery tries to find which backend provides that information

  • Sorcery asks that backend

  • Backend provides the information

  • The information is translated into the right format/validated

  • The consumer gets the information


The issue, of course, comes when that information isn\'t asked for often and an external system updates the information in the backend. Traditionally, Asterisk is notified of such a configuration change via a \"module reload\" of the affected system.

While this works, a \"module reload\" is a bit of a heavy weight operation. We have to reload everything in the module, when only a small piece of information may have been updated. What\'s more, external systems now have to perform two steps:
(1) Update the configuration
(2) Reload the module(s) in Asterisk

Push configuration flips this around. External systems now have the ability to update the configuration directly in Asterisk via ARI, and let Asterisk - via Sorcery - update the persistent storage itself. In this scenario, there are no module reloads.

For example, take a PJSIP endpoint for \"Alice\". We can push Alice\'s endpoint directly into Asterisk using the following:

curl -X PUT -H \"Content-Type: application/json\" -u asterisk:secret -d \'{\"fields\": [ { \"attribute\": \"allow\", \"value\": \"!all,g722,ulaw,alaw\"}, {\"attribute\": \"context\", \"value\": \"default\" }, {\"attribute\": \"auth\", \"value\": \"alice\" }, {\"attribute\": \"aors\", \"value\": \"alice\"} ] }\' https://localhost:8088/ari/asterisk/config/dynamic/res_pjsip/endpoint/alice

While that\'s a lot to digest, we can take the endpoint we want to create, represent its fields as JSON, and push it directly into Asterisk. Asterisk - with Sorcery configured correctly - will then write that back into the backing data storage for PJSIP endpoints - which could be anything from the AstDB to a relational database. The next operation inside Asterisk that asks for Alice\'s endpoint will get the newly pushed information.

No reloads necessary!

More information on Push Configuration can be found on the wiki:

https://wiki.asterisk.org/wiki/display/AST/ARI+Push+Configuration


ARI Module Operations



While Push Configuration is nice, it is only applicable to Sorcery managed configuration. Manipulating modules - load, reload, unload - is a very common operation. Those operations are now supported natively in ARI as well. As an example, to reload chan_sip you would do the following:

curl -X PUT -u asterisk:secret https://localhost:8088/ari/asterisk/modules/chan_sip

Note that the new module operations were implemented by Benjamin Ford and Scott Emidy, two co-op students here at Digium, as part of their final project as co-op students. They planned the project, wrote the Swagger specification for the new operations, survived withering code reviews, wrote a bevy of tests to cover the new functionality, tweaked the module API in Asterisk, and wrote the ARI commands - and did a great job.


A Few Final New Features



In addition to the previously mentioned features, a few other very nice improvements have been made. These include:

  • Addition of the \'rtptimeout\' option to the PJSIP stack

  • New AMI events for the PJSIP stack that help to inform of lifecycle changes in Contacts

  • Support for \';line\' functionality for PJSIP outbound registrations


A huge thank-you to all the contributors for new features in this release, including George Joseph and Dmitriy Serov.

Note that as with all new features in Asterisk, these features have automated tests in the Asterisk Test Suite. However, if something did get missed, please make sure you file an issue and let the developer community know.

Thanks!

Matt

--
Matthew Jordan
Digium, Inc. | Director of Technology
AstLinux 1.2.3 Released
Tue, 14 Jul 2015 01:19:33 +1200
The AstLinux Team has released 1.2.3. All current users are encouraged to upgrade as this release addresses several security issues.

Updates include:
  • Security fixes, including 35 significant \"CVE\" exploits have been resolved for various packages.
  • Asterisk version bumps and pjsip 2.4 for Asterisk 13
  • Web Interface enhancements and package upgrades providing important security and bug fixes.
  • The default HTTPS self-signed certificate is now uniquely auto-generated
  • Kernel runtime parameters may now be specified via a file or the KERNEL_SYSCTL variable.

A full changelog can be viewed in the release pages:

http://www.astlinux.org/release/123-asterisk-1340
http://www.astlinux.org/release/123-asterisk-11180
http://www.astlinux.org/release/123-asterisk-18323

The AstLinux Team
Original Content (C) 2005 Matt Riddell