Warning: This documentation doesn't refer to the most recent version of the AVS Device SDK.
The following release notes contain details about the Alexa Voice Service (AVS) Device SDK, including feature enhancements, updates, and resolved issues.
2021
Version 1.26.0
Release date
November 15, 2021
Enhancements
Added support for the Public-Key Cryptography Standards #11 (PKCS#11) API. You use this API to integrate a hardware security module (HSM) in the SDK to support encryption at rest. To learn how to simulate a hardware security module in the SDK, see Simulated Hardware Module.
Important: The AVS security requirements now require that you use a hardware security module to implement encryption at rest for production devices. For more details, see AVS Security Requirements.
Added support for the Device Artifact Vending Service (DAVS). This service vends artifacts to AVS devices including machine learning models, images, configuration files, and so on. For more details about using DAVS, see Optional Features: Asset Manager. You use Asset Manager to access the DAVS service.
Added support for Asset Manager. This feature lets you store and manage files from an external location to use with the SDK. For example, you can store an audio file and play it when required. For more details about how to use this feature, see Optional Features: Asset Manager.
Added the following components to the Manufactory subsystem.
Public-Key Cryptography Standards #11 (PKCS#11) API
KeywordDetection (KWD)
Added the InputController capability agent to handle the Alexa.InputController interface. Alexa.InputController allows you to select and switch inputs on devices. For more details about using InputController capability agent, see INPUT_CONTROLLER.
Added support to use shared libraries with the SDK. This feature helps reduce the size of the libraries you use in your build.
Updated the Bluetooth capability agent to use the BluetoothLocalInterface. This capability agent contains functions to support high-level Bluetooth operations.
Updated AlertObserverInterface to include new parameters for the SetAlert directive, including scheduledTime, label and originalTime.
Updated the Alexa Communications Library (ACL) and libCurl logging functionality by adding an instance id to ACL. This helps you identify a specific connection when multiple ACL connections are in use.
Added two new APIs to the NotifierInterface. The addWeakPtrObserver API and the removeWeakPtrObserver API.
Updated SpeechSynthesizer to use the new PowerResourceManagerInterface APIs.
Added a new local operation to LocalPlaybackHandlerInterface and renamed one enum from PAUSE_PLAYBACK to RESUMABLE_STOP. Added one new enum, TRANSIENT_PAUSE to control the current player by processing a transient pause, similar to a BACKGROUND focus change for non-mixable content.
Added the SQLiteMiscStorage::getDatabase() method to access internal database objects for operations.
Added onConnectionStatusChanged to the DialogUXStateAggregator to support multiple engine statuses. If a single engine status is connected, dialogUXState resolves to idle.
Added an automatic database upgrade to support PKCS#11 encryption. After upgrading to version 1.26.0 SDK, the acsdkAuthorization automatically upgrades your database format to the latest version. For example, if you upgrade from SDK version 1.24.0 to 1.26.0, your database format is automatically upgraded from the 1.24.0 version to the 1.26.0 version. This upgrade preserves your present authorization information and enables encryption support with PKCS#11 encryption.
New configurations
The Sensory Wake Word engine is no longer available on GitHub and related code is removed from the AVS Device SDK. By default, the SDK now only supports tap-to-talk. However, you can still integrate a custom wake word engine as needed.
Updated the triggering behavior for Alerts. If left uninterrupted, Alerts now trigger for scheduledTime + an hour, even if the alert starts later than scheduledTime, due to being queued by another active alert.
Added a new alerts v3 table to store alerts. Continue to write to alerts v2 table to avoid rollback concerns.
Removed the ErrorType.h file from acsdkAudioPlayer.
Bug Fixes
Fixed a bug in SQLiteMiscStorage that returned an empty value instead of reporting an error.
Fixed a bug that sent a PostConnect event before a connection is established.
Fixed a bug that could cause requests to stall on some platforms when making requests to local hosts.
Fixed a Bluetooth bug that caused it to stop working after reauthorization.
Fixed a bug that caused problems if you used the new --EXTENSION_PATHS flag instead of previous deprecated --EXTENSION_PATH flag.
Fixed an alerts bug that could cause a deadlock when snoozing an alert while ducking is disabled.
Fixed an AudioPlayer bug that could cause a crash if Playback events were missing certain fields.
Fixed a bug that could cause connection errors because context manager failed to get the indicator state from the NotificationsCapabilityAgent State provider.
Fixed a bug to deallocate all resources safely if initialization fails.
Fixed an updateEndpoint bug that could errors when trying to update capabilities for a device.
Known issues
Static libraries don't always work when building the SampleApp on Windows with the MinGW environment. For more details about resolving this error, see static libraries
On some compilers and platforms, the SampleApp might not run and provides the following manufactory-related error: Recipes are not equivalent. For more details about how to temporarily patch this problem, see issue 1824 on GitHub.
Build errors can occur on the Raspberry Pi due to incorrect linking of the atomic library. A suggested workaround is to add the following set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") to the top most CMake file.
The WebVTT dependency required for captions isn't supported for Windows/Android.
Exiting from the setting option takes you back to the Options Menu directly. It doesn't provide a message to indicate that you're back in the main menu.
Disabled all failing Unit Tests and Audio Input Processor (AIP) Unit tests on Windows.
AudioInputProcessor unit tests don't build on Windows when using the -DCMAKE_BUILD_TYPE=DEBUG CMake parameter.
Music playback history isn't displayed in the Alexa app for certain account and device types.
The Gnu Compiler Collection (GCC) 8+-Wclass-memaccess triggers warnings. You can ignore these, they don't cause the build to fail.
Android error libDefaultClient.so not found might occur. Resolve this problem by upgrading to Android Debug Bridge (ADB) version 1.0.40.
If a device loses a network connection, the lost connection status isn't returned though local Text To Speech (TTS).
ACL encounters issues if it receives audio attachments but doesn't consume them.
Media streamed through Bluetooth might abruptly stop. To restart playback, resume the media in the source app or toggle next/previous.
If a connected Bluetooth device is inactive, the Alexa app might indicates that audio is playing.
The Bluetooth agent assumes that the Bluetooth adapter is always connected to a power source. Disconnecting from a power source during operation isn't yet supported.
Interrupted Bluetooth playback might not resume if other content is locally streamed.
make integration isn't available for Android. To run Android integration tests, manually upload the test binary and input file and run ADB.
Alexa might truncate the beginning of speech when responding to text-to-speech (TTS) user events. This impacts Raspberry Pi devices running Android Things with HDMI output audio.
A reminder TTS message doesn't play if the sample app restarts and loses a network connection. Instead, the default alarm tone plays twice.
Disabled ServerDisconnectIntegratonTest tests until they reflect the new service behavior.
The DirectiveSequencerTest.test_handleBlockingThenImmediatelyThenNonBockingOnSameDialogId test fails intermittently.
The Raspberry Pi sample app might crash after prolonged use due to conflicts with PortAudio dependencies.
The sample app might crash if it's using libCurl 7.69.
Added the AuthorizatonManager component. This allows you to dynamically change your authorization mechanism without restarting the SDK. By default, AuthorizatonManager provides an LWAAuthorizationAdapter that uses Code-Based Linking authorization. To control this feature, use the -DAUTH_MANAGER = ON CMake command.
Added the DtmfObserverInterface interface to support Alexa Communications features.
Added a metric to record the audioEncodingFormat used by AudioInputProcessor.
Added a metric that detects if a device fails to parse notification directives from the cloud.
Added support to add optional dependencies to manufactory through the OptionalImport<> structure and the ComponentAccumulator::makeImportOptional() method.
Updated the AudioInputProcessor to reduce latency in Low Power Mode (LPM).
Reduced user wait time when performing gateway verification by up to 5 minutes. The change triggers gateway verification immediately after authorization succeeds. To enable this optimization, code changes might be required: the AuthDelegate object must be supplied when constructing AVSGatewayManager.
Added support for the following locale pairs:
"en-US", "fr-FR"
"fr-FR", "en-US"
"en-US", "de-DE"
"de-DE", "en-US"
"en-US", "ja-JP"
"ja-JP", "en-US"
"en-US", "it-IT"
"it-IT", "en-US"
"en-US", "es-ES"
"es-ES", "en-US"
Added support for the Arabic language (ar-SA).
New configurations
Runtime checks now display the version of curl used by the SDK.
Kitt.AI is no longer supported by the SDK and all related code is removed.
Added a security.md file that contains security policy updates.
Updated the pkg-config.pc file to use Requires.private instead of Requires, so libraries such as curl or SQlite aren't a direct dependency.
Added a new offlineAlerts_v2 table that stores alerts that are stopped offline. To avoid rollback concerns, you should continue to write to the offlineAlerts_v1 table.
Logger::emit is no longer a pure virtual function. The default implementation is now a no-op.
Removed two unused methods from ComponentAccumulator.
Bug Fixes
Fixed a SpeakerManager Capability Agent bug that caused playback to stop when handling REPLACE_ALL commands.
Fixed a Bluetooth bug that could caused streaming music to overlap with Bluetooth music.
Fixed a bug that could cause an SDK shutdown to stop responding, especially if triggered right after device boot.
Fixed a potential crash that could happen during SDK shutdown.
Fixed a sample rate flag in the FFmpegAttachmentInputController that incorrectly used framerate instead of sample_rate.
Fixed a KeywordObserver bug that would send the incorrect start of a speech timestamp to AudioInputProcessor.
Fixed a SpeakerManager bug that could cause volume setting changes to fail.
Fixed a null pointer exception that can occur during barge-in.
Fixed an AudioPlayer bug that might stop a playing track after sending a PlaybackNearlyFinished event, but before the play directive arrives for the next track.
Fixed a bug that could cause the SDK to crash after calling promise.set_value.
Added missing header include statements in the DefaultEndpointBuilder.h file.
Fixed a DoNotDisturbCapabilityAgent bug that could cause the SDK to stall due to a race condition.
Fixed a bug that could cause some device settings to persist after logging out.
Known issues
On some compilers and platforms, the SampleApp might not run and provides the following manufactory-related error: Recipes are not equivalent. For more details about how to temporarily patch this problem, see issue 1824 on GitHub.
Build errors can occur on the Raspberry Pi due to incorrect linking of the atomic library. A suggested workaround is to add the following set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") to the top most CMake file.
The WebVTT dependency required for captions isn't supported for Windows/Android.
Exiting from the setting option takes you back to the Options Menu directly. It doesn't provide a message to indicate that you're back in the main menu.
Disabled all failing Unit Tests and Audio Input Processor (AIP) Unit tests on Windows.
AudioInputProcessor unit tests don't build on Windows when using the -DCMAKE_BUILD_TYPE=DEBUG CMake parameter.
Music playback history isn't displayed in the Alexa app for certain account and device types.
The Gnu Compiler Collection (GCC) 8+-Wclass-memaccess triggers warnings. You can ignore these, they don't cause the build to fail.
Android error libDefaultClient.so not found might occur. Resolve this problem by upgrading to Android Debug Bridge (ADB) version 1.0.40.
If a device loses a network connection, the lost connection status isn't returned though local Text To Speech (TTS).
ACL encounters issues if it receives audio attachments but doesn't consume them.
Media streamed through Bluetooth might abruptly stop. To restart playback, resume the media in the source app or toggle next/previous.
If a connected Bluetooth device is inactive, the Alexa app might indicates that audio is playing.
The Bluetooth agent assumes that the Bluetooth adapter is always connected to a power source. Disconnecting from a power source during operation isn't yet supported.
Interrupted Bluetooth playback might not resume if other content is locally streamed.
make integration isn't available for Android. To run Android integration tests, manually upload the test binary and input file and run ADB.
Alexa might truncate the beginning of speech when responding to text-to-speech (TTS) user events. This impacts Raspberry Pi devices running Android Things with HDMI output audio.
A reminder TTS message doesn't play if the sample app restarts and loses a network connection. Instead, the default alarm tone plays twice.
Disabled ServerDisconnectIntegratonTest tests until they reflect the new service behavior.
The DirectiveSequencerTest.test_handleBlockingThenImmediatelyThenNonBockingOnSameDialogId test fails intermittently.
The Raspberry Pi sample app might crash after prolonged use due to conflicts with PortAudio dependencies.
The sample app might crash if it's using libCurl 7.69.
Version 1.24.0
Release date
June 4, 2021
Enhancements
Added support for the DeviceSetup Interface. This allows you to configure a custom out-of-box onboarding experience. For more details about how this interface works in the SDK, see out-of-box onboarding experience.
Added support for the SDK to update the default endpoint dynamically.
Added the following components to the Manufactory subsystem.
SpeechEncoder
Alexa Directive Sequencer Library (ADSL)
DialogUXStateAggregator
Notifications
Added the timeSinceLastPartialMS API. This API helps you determine the last time the system used a resource, such as CPU, NETWORK, DDR, and so on.
Reduced the size of SDK libraries by optimizing the Manufactory library templates.
Added a new constructor to MediaPlayerState that takes a PlaylistType field (DASH, HLS).
Added two new fields to the AudioPlayer Metrics. These new fields are trackPlaylistType and trackDomainNameHash.
Added two methods to CurlEasyHandleWrapper to set the network interface dynamically. These methods are setInterfaceName and getInterfaceName.
New configurations
Changed the minimum supported version of libcurl to 7.67.0. This change applies to all build types.
Updated the Android.sh script to support NDK 22. Android builds no longer support NDK 21 and lower.
Updated the Android.sh script to use curl 7.67.0.
Updated the Default Client to handle an instance of acsdkNotificationInterfaces::NotificationsNotifierInterface instead of the Notifications Capability Agent directly.
Added a new constructor to MediaPlayerState that takes a PlaylistType field (DASH, HLS).
Added two new fields to the AudioPlayer Metrics. These new fields are trackPlaylistType and trackDomainNameHash.
Added two methods to CurlEasyHandleWrapper to set the network interface dynamically. These methods are setInterfaceName and getInterfaceName.
Removed the build directory. Use the cmakeBuild directory instead.
Known issues
A device might report incorrect speaker states to AVS if you don't update SpeakerSettings through the SpeakerInterface.
M4A files with the .moov content located at the end of the file might not render.
Build errors can occur on the Raspberry Pi due linking the atomic library incorrectly. A suggested workaround is to add the following line set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") to the top CMake file.
Windows and Android don't support the WebVTT dependency required for captions.
When you're in the settings menu, using the settings option to exit the menu takes you directly back to the options menu. It doesn't provide a message to indicate that you're back in the main menu.
All failing Unit Tests and failing Audio Input Processor (AIP) Unit tests are disabled on Windows.
AudioInputProcessor unit tests don't build on Windows when using the -DCMAKE_BUILD_TYPE=DEBUG CMake parameter.
Music playback history isn't displayed in the Alexa app for certain account and device types.
The Gnu Compiler Collection (GCC) 8+-Wclass-memaccess triggers warnings. You can ignore these and they don't cause the build to fail.
When building with Android, the Android error libDefaultClient.so not found might occur. Resolve this problem by upgrading to Android Debug Bridge (ADB) version 1.0.40.
If a device loses a network connection, the lost connection status isn't returned though the local Text-To-Speech (TTS).
The Alexa Communications Library (ACL) might have issues if it receives audio attachments but doesn't consume them.
Media streamed through Bluetooth might abruptly stop. To restart playback, resume the media in the source app or toggle the next/previous options.
If a connected Bluetooth device is inactive, the Alexa app might indicates that audio is playing.
The Bluetooth agent assumes that the Bluetooth adapter is always connected to a power source. Disconnecting from a power source during operation isn't yet supported.
Interrupted Bluetooth playback might not resume if other content is locally streamed.
make integration command isn't available for Android. To run Android integration tests, manually upload the test binary and input file and run ADB.
Alexa might truncate the beginning of speech when responding to text-to-speech (TTS) user events. This impacts Raspberry Pi devices running Android Things that use HDMI output audio.
A reminder TTS message doesn't play if the sample app restarts and loses a network connection. Instead, the default alarm tone plays twice.
Disabled ServerDisconnectIntegratonTest tests until they reflect the new service behavior.
The Raspberry Pi sample app might crash after prolonged use due to conflicts with PortAudio dependencies.
The sample app might crash if it's using libCurl 7.69.
Version 1.23.0
Release date
March 29, 2021
Bug fixes
Fixed a CertifiedSender bug that could cause unnecessary outgoing messages.
Fixed a race condition in SpeechEncoder that occurred when calling stopEncoding() and startEncoding() in quick succession.
Fixed a Manufactory bug that caused instantiation issues and runtime issues.
Removed the ConstructorAdapter.h file from the acsdkManufactory shared library.
Fixed an endpoint bug that caused problems if the default endpoint uses a friendly name. The friendly name of the default endpoint should always be an empty string.
Fixed failing Media Player Remote Interfacing Specification (MPRIS) tests on certain platforms.
Fixed a timer race condition that occurred in the ConditionVariableWrapper under certain configurations.
Fixed a bug that could cause a segmentation fault at shutdown due to transient messages.
Fixed an AudioInputProcessor bug that could delay the SDK from transitioning between THINKING and IDLE states.
Fixed a reminders bug that caused a reminder to play the wrong tone if a sound asset isn't provided.
Removed validateSpeakerSettingsConsistency from SpeakerManager. You're now responsible to keep SpeakerSettings consistent for speakers of the same type.
Updated the BlockingPolicy in SpeakerManager. The Speaker namespace now handles directives immediately.
Fixed an ExternalCapabilitiesBuilder.cpp bug that could cause the MRMCapabilityAgent to crash.
Split the SystemClockMonitor contained in the AVSCommon/Utils/SystemClockMonitor folder into two separate implementation and interface libraries named acsdkSystemClockMonitorInterfaces and acsdkSystemClockMonitor. Components that must observe system clock changes should register with SystemClockNotifier.
Enhancements
Added Bluetooth functionality to Manufactory. To enable Bluetooth with Manufactory, use the BLUETOOTH_ENABLED=ON CMake flag. If you're using the BlueZ Bluetooth implementation with Manufactory, you must also specify the BLUETOOTH_BLUEZ=ON CMake flag.
Added an AlertsCapabilityAgentInterface to decouple the actions an app might take on the Alerts CA after implementation.
Added the createSubsetManufactory method to Manufactory. This method uses a superset Manufactory and a list of parameters to create a new subset Manufactory.
Added the onCallStateInfoChange to the communication functions. This API takes a structure as its parameter to pass communication information, such as call type, display name, and so on.
Replaced the deprecated CapabilitiesObserverInterface with the DelegateObserverInterface.
Added a new LocaleAssetsObserverInterface to notify observers of any changes to locale assets.
Added a new CapabilityConfigurationChangeObserverInterface to notify observers of any changes to capability configurations.
Known issues
A device might report incorrect speaker states to AVS if you don't update SpeakerSettings through the SpeakerInterface.
M4A files with the .moov content located at the end of the file might not render.
On some compilers and platforms, the SampleApp might not run and provides the following Manufactory related error: Recipes are not equivalent. For more details about how to temporarily patch this problem, see issue 1824 on GitHub.
Build errors can occur on the Raspberry Pi due linking the atomic library incorrectly. A suggested workaround is to add the following line set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") to the top CMake file.
Windows and Android don't support the WebVTT dependency required for captions.
When you're in the settings menu, using the settings option to exit the menu takes you directly back to the options menu. It doesn't provide a message to indicate that you're back in the main menu.
All failing Unit Tests and failing Audio Input Processor (AIP) Unit tests are disabled on Windows.
AudioInputProcessor unit tests don't build on Windows when using the -DCMAKE_BUILD_TYPE=DEBUG CMake parameter.
Music playback history isn't displayed in the Alexa app for certain account and device types.
The Gnu Compiler Collection (GCC) 8+-Wclass-memaccess triggers warnings. You can ignore these and they don't cause the build to fail.
When building with Android, the Android error libDefaultClient.so not found might occur. Resolve this problem by upgrading to Android Debug Bridge (ADB) version 1.0.40.
If a device loses a network connection, the lost connection status isn't returned though the local Text-To-Speech (TTS).
The Alexa Communications Library (ACL) might have issues if it receives audio attachments but doesn't consume them.
Media streamed through Bluetooth might abruptly stop. To restart playback, resume the media in the source app or toggle the next/previous options.
If a connected Bluetooth device is inactive, the Alexa app might indicates that audio is playing.
The Bluetooth agent assumes that the Bluetooth adapter is always connected to a power source. Disconnecting from a power source during operation isn't yet supported.
Interrupted Bluetooth playback might not resume if other content is locally streamed.
make integration command isn't available for Android. To run Android integration tests, manually upload the test binary and input file and run ADB.
Alexa might truncate the beginning of speech when responding to text-to-speech (TTS) user events. This impacts Raspberry Pi devices running Android Things that use HDMI output audio.
A reminder TTS message doesn't play if the sample app restarts and loses a network connection. Instead, the default alarm tone plays twice.
Disabled ServerDisconnectIntegratonTest tests until they reflect the new service behavior.
The Raspberry Pi sample app might crash after prolonged use due to conflicts with PortAudio dependencies.
The sample app might crash if it's using libCurl 7.69.
2020
Version 1.22.0
Release date
December 8, 2020
Enhancements
Added support for the AudioPlayer 1.5 interface.
Added support for the System 2.1 interface. This allows you to report network related information.
Added the LibcurlSetCurlOptionsCallbackInterface API to LibcurlHTTPConnectionFactory. This allows you to accept custom curl options when establishing a connection.
Added two new functions to ChannelVolumeInterface. These two new functions are adjustUnduckedVolume() and getId(). Use ChannelVolumeInterface::getId() to dedupe ChannelVolumeInterfaces.
Improved reconnection behavior. MessageRouter now has grace period before it skips notifying observers of disconnected states.
Bug fixes
Fixed an audio bug that could unexpectedly decrease the volume. This fix added an ID3TagsRemover to remove ID3 tags from Media Streams.
Fixed a race condition in CapabilitiesDelegate that could send unnecessary Discovery events from the device.
Fixed an SQLiteBluetoothStorage bug that prevented it from checking for tables on initialization.
Fixed an SQLiteNotificationsStorage bug that prevented it from recovering when tables are missing.
Fixed a DialogUXStateAggregator bug that caused incorrect states.
New configurations
The Default Client no longer closes DeviceSettingStorageInterface databases. Make sure your implementations of DeviceSettingStorageInterface closes the DeviceSettingStorageInterface database in its own destructor.
Known issues
On some compilers and platforms, the SampleApp might not run and provides the following manufactory-related error: Recipes are not equivalent. For more details about how to temporarily patch this problem, see issue 1824 on GitHub.
Build errors can occur on the Raspberry Pi due to incorrect linking of the atomic library. A suggested workaround is to add the following set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") to the top most CMake file.
The WebVTT dependency required for captions isn't supported for Windows/Android.
Exiting from the setting option takes you back to the Options Menu directly. It doesn't provide a message to indicate that you're back in the main menu.
Disabled all failing Unit Tests and Audio Input Processor (AIP) Unit tests on Windows.
AudioInputProcessor unit tests don't build on Windows when using the -DCMAKE_BUILD_TYPE=DEBUG CMake parameter.
Music playback history isn't displayed in the Alexa app for certain account and device types.
The Gnu Compiler Collection (GCC) 8+-Wclass-memaccess triggers warnings. You can ignore these, they don't cause the build to fail.
Android error libDefaultClient.so not found might occur. Resolve this problem by upgrading to Android Debug Bridge (ADB) version 1.0.40.
If a device loses a network connection, the lost connection status isn't returned though local Text To Speech (TTS).
ACL encounters issues if it receives audio attachments but doesn't consume them.
Media streamed through Bluetooth might abruptly stop. To restart playback, resume the media in the source app or toggle next/previous.
If a connected Bluetooth device is inactive, the Alexa app might indicates that audio is playing.
The Bluetooth agent assumes that the Bluetooth adapter is always connected to a power source. Disconnecting from a power source during operation isn't yet supported.
Interrupted Bluetooth playback might not resume if other content is locally streamed.
make integration isn't available for Android. To run Android integration tests, manually upload the test binary and input file and run ADB.
Alexa might truncate the beginning of speech when responding to text-to-speech (TTS) user events. This impacts Raspberry Pi devices running Android Things with HDMI output audio.
A reminder TTS message doesn't play if the sample app restarts and loses a network connection. Instead, the default alarm tone plays twice.
Disabled ServerDisconnectIntegratonTest tests until they reflect the new service behavior.
The DirectiveSequencerTest.test_handleBlockingThenImmediatelyThenNonBockingOnSameDialogId test fails intermittently.
The Raspberry Pi sample app might crash after prolonged use due to conflicts with PortAudio dependencies.
The sample app might crash if it's using libCurl 7.69.
Version 1.21.0
Release date
October 26, 2020
Enhancements
Added support for Smart Home for AVS Semantics. For more details about SDK implementation, see Smart Home Endpoints.
You can now initialize the AlexaClientSDKInit with the InitializationParameters object. This object supports two additional objects:
TimerDelegateFactoryInterface
PowerResourceManagerInterface.
Introduced TimerDelegate abstraction. You can now inject your own timer logic and call it with existing AVSCommon/Utils/Timing/Timer.h objects.
Updated DevicePropertyAggregator to support the new RegistrationStatus property.
Pulled in upstream RapidJSON patches
Bug fixes
Android builds now support arm64 and x86_64 devices.
Fixed an Android issue that caused false positive error logs when using the microphone.
Fixed an audio injection issue that caused problems with multi-turn interactions when built with a disabled wake word.
Fixed a sample app issue that caused the range controller menu to loop upon receiving invalid input.
Fixed a sample app issue that caused a GuiRenderer crash when using certain directives.
Add an optional onSeekActivity method to the AudioPlayerObserverInterface so the AudioPlayer Capability Agent can notify observers when local seeks start and complete.
Added a new build flag -DTARGET_SUFFIX="SomeString" to suffix output library names, in case of naming conflicts.
Fixed an AudioPlayer issue that prevented the interface from transitioning to an IDLE state when it doesn't have any content to play.
Decreased latency when playing short speak directives. For example "ok" or "hi".
Fixed a music issue that prevented music playback from resuming after disabling ducking.
Fixed a Bluetooth issue that caused incorrect information in the logs.
Fixed a DialogUXStateAggregator bug that caused incorrect behavior when handling device states.
Fixed an CPU consumption issue on certain compilers when the SDK attempted to authorize or connect.
New configurations
Added the TARGET_RPATH CMake parameter to specify a RPATH during build.
Added the LPM CMake parameter to enable or disable Low Power Mode.
Added the DISABLE_DUCKING CMake parameter to enable or disable ducking.
Known issues
Build errors can occur on the Raspberry Pi due to incorrect linking of the atomic library. A suggested workaround is to add the following set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") to the top most CMake file.
The WebVTT dependency required for captions isn't supported for Windows/Android.
Exiting from the setting option takes you back to the Options Menu directly. It doesn't provide a message to indicate that you're back in the main menu.
Disabled all failing Unit Tests and Audio Input Processor (AIP) Unit tests on Windows.
AudioInputProcessor unit tests don't build on Windows when with the -DCMAKE_BUILD_TYPE=DEBUG CMake parameter.
Music playback history isn't displayed in the Alexa app for certain account and device types.
The Gnu Compiler Collection 8+ (GCC 8+) -Wclass-memaccess triggers warnings. You can ignore these, they don't cause the build to fail.
Android error libDefaultClient.so not found might occur. Resolve this problem by upgrading to Android Debug Bridge (ADB) version 1.0.40.
If a device loses a network connection, the lost connection status isn't returned though local Text To Speech (TTS).
ACL encounters issues if it receives audio attachments but doesn't consume them.
Media streamed through Bluetooth might abruptly stop. To restart playback, resume the media in the source app or toggle next/previous.
If a connected Bluetooth device is inactive, the Alexa app might indicates that audio is playing.
The Bluetooth agent assumes that the Bluetooth adapter is always connected to a power source. Disconnecting from a power source during operation isn't yet supported.
Interrupted Bluetooth playback might not resume if other content is locally streamed.
make integration isn't available for Android. To run Android integration tests, manually upload the test binary and input file and run ADB.
Alexa might truncate the beginning of speech when responding to text-to-speech (TTS) user events. This impacts Raspberry Pi devices running Android Things with HDMI output audio.
A reminder TTS message doesn't play if the sample app restarts and loses a network connection. Instead, the default alarm tone plays twice.
Disabled ServerDisconnectIntegratonTest tests until they reflect the new service behavior.
The DirectiveSequencerTest.test_handleBlockingThenImmediatelyThenNonBockingOnSameDialogId test fails intermittently.
The Raspberry Pi sample app might crash after prolonged use due to conflicts with PortAudio dependencies.
The sample app might crash if it's using libCurl 7.69.
Version 1.20.1
Release date
August 6, 2020
Bug fixes
The SDK component name changed from com.amazon.sdk to com.amazon.alexa.deviceSDK. This name gets reported through the Alexa.SoftwareComponentReporter interface.
Reverted a change that caused CertifiedSender to load messages from the database on initialization.
Fixed a compilation error that occurred on Catalina macOS.
Version 1.20.0
Important: Starting with the 1.20 release, the AVS Device SDK has deprecated support for the Raspbian Stretch Operating System (OS) on the Raspberry Pi. The AVS Device SDK 1.22 will completely stop supporting Raspbian Stretch and require the use of Raspbian Buster.
Added support for the SpeechSynthesizer 1.4 interface. This interface supports a feature that's in private beta and available in a future release.
New configurations
Added the -DACSDK_USE_RTTI CMake parameter to toggle the use of Run Time Type Information (RTTI) in the SDK. This parameter defaults to OFF, except for WIN32 builds, where it must be ON.
Added the -DUSE_CCACHE CMake parameter to build the SDK with ccache, which can help speed up compile time. This parameter defaults to OFF.
Note: Added a new default configuration DRAPIDJSON_MEM_OPTIMIZATION = ON. This RapidJSON memory optimization configuration is now enabled on all builds by default. Double check that your code can change the RapidJSON memory allocator from MemoryPoolAllocator to CrtAllocator to avoid compilation errors.
Bug fixes
Fixed a Playlist Parser issue that caused a playlist URL to incorrectly resolve if it contained parameters and a relative path.
Fixed a Gstreamer MediaPlayer implementation issue that resulted in a playback problem due to seekOverwrittenData errors.
Fixed a Windows MSYS2 issue that caused a build to fail due to a Gnu Compiler Collection (GCC) linker timeout. An additional dependency – mingw-w64-x86_64-lld – is now required to use the SDK. Add this new dependency to MSYS2 if you are having trouble building the SDK.
Fixed a timer issue that could cause a lockup or crash.
Fixed an issue that incorrectly preserved the dialogRequestId across multi-turn interactions instead of generating a new one.
Fixed a buffer overflow in the FFMpegInputBuffer.
Added the missing HTTP Success Code 201 to the set of recognized HTTP response codes in the AVSCommon/Utils folder.
Fixed a bug that caused a compile error if you enabled a single endpoint controller when building the SDK.
Fixed an issue that prevents apps from adding or removing ContextManager observers with the DefaultClient.
Known issues
Build errors can occur on the Raspberry Pi due to incorrect linking of the atomic library. A suggested workaround is to add the following set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") to the top most CMake file.
The WebVTT dependency required for captions isn't supported for Windows/Android.
Exiting from the setting option takes you back to the Options Menu directly. It doesn't provide a message to indicate that you're back in the main menu.
Disabled all failing Unit Tests and Audio Input Processor (AIP) Unit tests on Windows.
AudioInputProcessor unit tests don't build on Windows when with the -DCMAKE_BUILD_TYPE=DEBUG CMake parameter.
Music playback history isn't displayed in the Alexa app for certain account and device types.
The Gnu Compiler Collection 8+ (GCC 8+) -Wclass-memaccess triggers warnings. You can ignore these, they don't cause the build to fail.
Android error libDefaultClient.so not found might occur. Resolve this problem by upgrading to Android Debug Bridge (ADB) version 1.0.40.
If a device loses a network connection, the lost connection status isn't returned though local Text To Speech (TTS).
ACL encounters issues if it receives audio attachments but doesn't consume them.
Media streamed through Bluetooth might abruptly stop. To restart playback, resume the media in the source app or toggle next/previous.
If a connected Bluetooth device is inactive, the Alexa app might indicates that audio is playing.
The Bluetooth agent assumes that the Bluetooth adapter is always connected to a power source. Disconnecting from a power source during operation isn't yet supported.
Interrupted Bluetooth playback might not resume if other content is locally streamed.
make integration isn't available for Android. To run Android integration tests, manually upload the test binary and input file and run ADB.
Alexa might truncate the beginning of speech when responding to text-to-speech (TTS) user events. This impacts Raspberry Pi devices running Android Things with HDMI output audio.
A reminder TTS message doesn't play if the sample app restarts and loses a network connection. Instead, the default alarm tone plays twice.
Disabled ServerDisconnectIntegratonTest tests until they reflect the new service behavior.
The DirectiveSequencerTest.test_handleBlockingThenImmediatelyThenNonBockingOnSameDialogId test fails intermittently.
The Raspberry Pi sample app might crash after prolonged use due to conflicts with PortAudio dependencies.
The sample app might crash if it's using libCurl 7.69.
On certain compilers, the SDK exhibits increase CPU consumption while attempting to authorize or connect.
Version 1.19.1
Release date
April 27, 2020
Bug fixes
Fixed a bug that caused Display Cards for certain ExternalMediaPlayer (EMP) adapters to stop rendering.
Updated the ExternalMediaPlayer Interface. ExternalMediaPlayer adapters can now be integrated into the SDK without an overlay. Provide the paths of the adapter directories with EXTERNAL_MEDIA_PLAYER_ADAPTER_PATHS. Any adapters might require updating. For more details, refer to ExternalMediaPlayerAdapters.cmake.
Added three new diagnostic tools, allowing for file audio injection, protocol trace, and device properties aggregation. Audio injection replaces a real microphone and can't be used if another microphone, such as PortAudio, is enabled. Note that these tools are available in DEBUG mode only, and must not be enabled in devices built for release.
Added support for local ducking. This feature allows on-device content to attenuate the volume of other channels when necessary.
Updated the following SpeakerManagerInterface APIs: setVolume, adjustVolume and setMute. These changes help you determine which components get notified when settings change (either AVS or SDK observers).
Added attenuation/ducking support to music.
Updated MediaPlayer::setSource to specify the underlying file type that's passed with the raw data – for example, .mp3 or .wav.
Added new CMake parameters to build with customized versions of curl, SQlite, and Crypto.
Bug fixes
Fixed issue that caused CBLAuthDelegateConfiguration.cpp file to read incorrect settings
Fixed issue that caused a song to skip when rapidly pausing and playing music.
Known issues
Build errors can occur on the Raspberry Pi due to incorrect linking of the atomic library. A suggested workaround is to add the following set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") to the top most CMake file.
The WebVTT dependency required for captions isn't supported for Windows/Android.
Exiting from the setting option takes you back to the Options Menu directly. It doesn't provide a message to indicate that you're back in the main menu.
Failing Unit Tests and AIP Unit tests are disabled on Windows
AudioInputProcessor unit tests don't build on Windows when with the -DCMAKE_BUILD_TYPE=DEBUG CMake parameter.
Music playback history isn't displayed in the Alexa app for certain account and device types.
The Gnu Compiler Collection 8+ (GCC 8+), -Wclass-memaccess triggers warnings. You can ignore these, they don't cause the build to fail.
Android error libDefaultClient.so not found might occur. Resolve this problem by upgrading to ADB version 1.0.40.
If a device loses a network connection, the lost connection status isn't returned though local TTS.
ACL encounters issues if it receives audio attachments but doesn't consume them.
Media streamed through Bluetooth might abruptly stop. To restart playback, resume the media in the source app or toggle next/previous.
If a connected Bluetooth device is inactive, the Alexa app might indicates that audio is playing.
The Bluetooth agent assumes that the Bluetooth adapter is always connected to a power source. Disconnecting from a power source during operation isn't yet supported.
Interrupted Bluetooth playback might not resume if other content is locally streamed.
make integration isn't available for Android. To run Android integration tests, manually upload the test binary and input file and run ADB.
Alexa might truncate the beginning of speech when responding to text-to-speech (TTS) user events. This only impacts Raspberry Pi devices running Android Things with HDMI output audio.
A reminder TTS message doesn't play if the sample app restarts and loses a network connection. Instead, the default alarm tone plays twice.
ServerDisconnectIntegratonTest tests are disabled until they're updated to reflect new service behavior.
The DirectiveSequencerTest.test_handleBlockingThenImmediatelyThenNonBockingOnSameDialogId test fails intermittently.
Raspberry Pi sample app might crash after prolonged use due to conflicts with PortAudio dependencies.
The sample app might crash if it's using libCurl 7.69.
On certain compilers, the SDK exhibits increase CPU consumption while attempting to authorize or connect.
Version 1.18.0
Release date
February 19, 2020
Enhancements
Added support for Bluetooth Interface 2.0. This interface adds support for multiple simultaneous connections to Bluetooth peripherals.
Added SDK extension point. You can integrate CMake projects into the SDK without cloning those projects into a subdirectory.
Bug fixes
Fixed Mac/OSX issue that caused an unresponsive sample app when not connected to the internet.
Fixed issue that prevented sample app from exiting various states.
Fixed UIManager issue that caused an error in the logs when the device with built without the wake word enabled.
Fixed volume issue that caused timers to ascend in volume when setting up ascending alarms.
Fixed alert volume issue that caused any changes to the alert volume to notify observers.
Fixed EQ issue where changes to the EQ band levels didn't notify observers.
Known issues
Build errors can occur on the Raspberry Pi due to incorrect linking of the atomic library. A suggested workaround is to add the following set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") to the top most CMake file.
The WebVTT dependency required for captions isn't supported for Windows/Android.
Exiting from the setting option takes you back to the Options Menu directly. It doesn't provide a message to indicate that you're back in the main menu.
Failing Unit Tests and AIP Unit tests are disabled on Windows.
AudioInputProcessor unit tests don't build on Windows when with the -DCMAKE_BUILD_TYPE=DEBUG CMake parameter.
Music playback history isn't displayed in the Alexa app for certain account and device types.
The Gnu Compiler Collection 8+ (GCC 8+) -Wclass-memaccess triggers warnings. You can ignore these, they don't cause the build to fail.
Android error libDefaultClient.so not found might occur. Resolve this problem by upgrading to ADB version 1.0.40.
If a device loses a network connection, the lost connection status isn't returned though local TTS.
ACL encounters issues if it receives audio attachments but doesn't consume them.
Media streamed through Bluetooth might abruptly stop. To restart playback, resume the media in the source app or toggle next/previous.
If a connected Bluetooth device is inactive, the Alexa app might indicates that audio is playing.
The Bluetooth agent assumes that the Bluetooth adapter is always connected to a power source. Disconnecting from a power source during operation isn't yet supported.
Interrupted Bluetooth playback might not resume if other content is locally streamed.
make integration isn't available for Android. To run Android integration tests, manually upload the test binary and input file and run ADB.
Alexa might truncate the beginning of speech when responding to text-to-speech (TTS) user events. This only impacts Raspberry Pi devices running Android Things with HDMI output audio.
A reminder TTS message doesn't play if the sample app restarts and loses a network connection. Instead, the default alarm tone plays twice.
ServerDisconnectIntegratonTest tests are disabled until they're updated to reflect new service behavior.
The DirectiveSequencerTest.test_handleBlockingThenImmediatelyThenNonBockingOnSameDialogId test fails intermittently.
On certain compilers, the SDK exhibits increase CPU consumption while attempting to authorize or connect.
2019
Version 1.17.0
Release date
December 10th 2019
Enhancements
Added support for captions for TTS. This enhancement allows you to print on-screen captions for Alexa voice responses.
Added support for Alarm Volume Ramp (Ascending Alarms in the Companion App). This feature lets the user enable alarm fade in. You enable this feature in the sample app through the settings menu.
Added support to use certified senders for URI path extensions. This change allows you to specify the URI path extension when sending messages with CertifiedSender::sendJSONMessage
Added new Metrics interfaces and helper classes. These additions help you create and consume Metrics events.
Added PowerResourceManagerInterface. This interface allows the SDK to control power resource levels for components such as the AudioInputProcessor and SpeechSynthesizer.
Added AlexaInterfaceCapabilityAgent. This Capability Agent handles common directives and endpoint controller capabilities support by Alexa.AlexaInterface.
Added AlexaInterfaceMessageSenderInterface. Use this interface to send common events defined by the Alexa.AlexaInterface interface.
Added BufferingComplete to MediaPlayerObserverInterface. This method helps improve performance in poor networking conditions by making sure MediaPlayer pre-buffers correctly.
Added SendDTMF to CallManagerInterface. This method allows you to send DTMF tones during calls.
To use captions, you must install a new dependency – the libwebvtt parsing library. WebVTT is a C/C++ library for interpreting and authoring WebVTT content. WebVTT is a caption and subtitle format designed for use with HTML5 audio and video elements.
Fixed FinallyGuardlinking issue that caused problems compiling the SDK on iOS.
Fixed bug when you spoke the Wake Word "Alexa" twice rapidly.
Known issues
The WebVTT dependency required for captions isn't supported for Windows/Android.
AudioInputProcessor unit tests don't build on Windows when with the -DCMAKE_BUILD_TYPE=DEBUG CMake parameter.
Music playback history isn't displayed in the Alexa app for certain account and device types.
When using Gnu Compiler Collection 8+ (GCC 8+), -Wclass-memaccess triggers warnings. You can ignore these, they don't cause the build to fail.
Android error libDefaultClient.so not found might occur. Resolve this by upgrading to ADB version 1.0.40.
If a device loses a network connection, the lost connection status isn't returned through local TTS.
ACL encounters issues if it receives audio attachments but doesn't consume them.
SpeechSynthesizerState uses GAINING_FOCUS and LOSING_FOCUS as a workaround for handling intermediate states.
Media streamed through Bluetooth might abruptly stop. To restart playback, resume the media in the source app or toggle next/previous.
If a connected Bluetooth device is inactive, the Alexa app might indicates that audio is playing.
The Bluetooth agent assumes that the Bluetooth adapter is always connected to a power source. Disconnecting from a power source during operation isn't yet supported.
When using some products, interrupted Bluetooth playback might not resume if other content is locally streamed.
make integration isn't available for Android. To run Android integration tests, manually upload the test binary and input file and run ADB.
Alexa might truncate the beginning of speech when responding to text-to-speech (TTS) user events. This only impacts Raspberry Pi devices running Android Things with HDMI output audio.
A reminder TTS message doesn't play if the sample app restarts and loses a network connection. Instead, the default alarm tone plays twice.
ServerDisconnectIntegratonTest tests are disabled until they're updated to reflect new service behavior.
The DirectiveSequencerTest.test_handleBlockingThenImmediatelyThenNonBockingOnSameDialogId test fails intermittently.
On some devices, Pressing t and h in the sample app doesn't exit the assigned state.
Exiting the settings menu doesn't provide a message to indicate that you're back in the main menu.
Added support for pre-buffering in the AudioPlayer Capability Agent. You can optionally choose the number of instances MediaPlayer uses in the AlexaClientSDKconfig.json. Important: the contract for MediaPlayerInterface has changed. You must now make sure that the SourceId value returned by setSource() is unique across all instances.
The AudioPlayer Capability Agent is now licensed under the Amazon Software License instead of the Apache Software License.
Bug fixes
Fixed Android issue that caused the build script to ignore PKG_CONFIG_PATH. This sometimes caused the build to use a preinstalled dependency instead of the specific version downloaded by the Android script. For example openssl).
Fixed Android issue that prevented the sample app from running at the same time as other apps using the microphone. Android doesn't inherently allow two apps to use the microphone. Pressing the mute button now temporarily stops Alexa from accessing the microphone.
Added 'quit' (– q) to the settings sub menu.
Fixed outdated dependencies issue in the Windows install script.
Fixed reminders issue that caused Notification LEDs to stay on, even after dismissing the alert.
For more details, check this.
Version 1.15.0
Release date
September 25th 2019
Enhancements
Added SystemSoundPlayer to ApplicationUtilities . SystemSoundPlayer is a new class that plays pre-defined sounds. Supported sounds include the wake word notification and the end of speech tone.
Removed Echo Spatial Perception (ESP) functionality from the Alexa Voice Service (AVS) device SDK. Make sure you download and test your devices using the new AVS SDK sample app. If you're using an older version of the sample app, manually remove any references to ESP or errors occur during compile.
Added onNotificationReceived to NotificationsObserverInterface. onNotificationReceived broadcasts when NotificationsObserverInterface receives a new notification, instead of only sending the indicator state. This is important if you support a feature that requires a distinct signal for each notification received. See NotificationsObserverInterface for more details.
Added support for Multilingual Mode . With this enabled, Alexa automatically detects what language a user speaks by analyzing the spoken wake word and proceeding utterances. After Alexa identifies the language, all corresponding responses are in the same language. The current supported language pairs are:
[ "en-US", "es-US" ]
[ "es-US", "en-US" ]
[ "en-IN", "hi-IN" ]
[ "hi-IN", "en-IN" ]
[ "en-CA", "fr-CA" ]
[ "fr-CA", "en-CA" ]
IMPORTANT: Specify the locales your device supports in the localeCombinations field in AlexaClientSDKConfig.json. This field can't be empty. If you don't set these values, the sample app fails to run.
Timezone: For example, you can set the defaultTimezone to America/Vancouver. If you don't set a value, GMT is set as the default value. If you set a new timezone, make sure that your AVS system settings and default time zone stay in sync. To handle this, use the new class SystemTimeZoneInterface.
Locale: For example, you can set defaultLocale to en-GB, instead of the default en-US.
The SpeechRecognizer interface now supports the following functionalities.
Change wake word (Alexa supported for now).
Toggle start of request tone on/off.
Toggle End of request tone on/off.
Deprecated the CapabilityAgentsSettings{…} library. Settings {…} now maps to an interface that's no longer supported. You might need to update your code to handle these changes. Read Settings Interface for more details.
Added support for three new locals: Spanish - United States (ES_US), Hindi - India (HI_IN), and Brazilian - Portuguese (PT_BR).
Linked the atomic library to the sample app to prevent build errors on Raspberry Pi.
Fixed Windows install script that caused the sample app build to fail. removed pip, flask, requests, and commentjson dependencies from the mingw.sh helper script.
Fixed issue: notifications failed to sync upon device initialization. For example, let's say you had two devices. one turned on and the other turned off. After clearing the notification on the first device, it still showed up on the second device after turning it on.
Fixed issue: barging in on a reminder caused it to stick in an inconsistent state, blocking subsequent reminders. For example, if a reminder was going off and you interrupted it, the reminder would get persist indefinitely. You could schedule future reminders, but they wouldn't play. Saying “Alexa stop” or rebooting the device fixed the “stuck” reminder.
Version 1.14.0
Release date
July 09 2019
Enhancements
AudioPlayer can now pre-buffer audio tracks in the Pre-Handle stage.
Bug fixes
Fixed an issue in the SQLite wrapper code where a SQLiteStatement caused a memory corruption issue.
Fixed a race condition in SpeechSynthesizer that caused crashes.
Fixed a cmake issue that specifies a dependency for Bluetooth incorrectly.
Fixed a bug that caused Bluetooth playback to start automatically.
Changed supportedOperations from a vector to a set in ExternalMediaAdapterInterface.
Corrected an issue where a VolumeChanged event had previously been sent when the volume was unchanged after setVolume or adjustVolume had been called locally.
Fixed issue with IterativePlaylistParser that prevented live stations on TuneIn from playing on Android.
Corrected the spelling of "UNINITIALIZED".
Version 1.13.0
Release date
May 22 2019
Enhancements
When an active Alert moves to the background, the alert now begins after a 10-second delay. Alert loop iteration delays can now no longer last longer than a maximum of 10 seconds, rather than depending on the length of the audio asset.
Changed NotificationsSpeaker to use Alerts Volume instead of using the speaker volume.
Allow customers to pass in an implementation of InternetConnectionMonitorInterface which will force AVSConnectionManager to reconnect on internet connectivity loss.
Added an exponential wait time for retrying transmitting a message via CertifiedSender.
When Volume is set to 0 and device is unmuted, volume is bumped up to a non-zero value. When Volume is set to 0 and Alexa talks back to you, volume is bumped up to a non-zero value.
Deprecated HttpResponseCodes.h, which is now present only to ensure backward compatibility.
The default base URLs for AVS have changed. These new URLs are supported by SDK v1.13 and later versions. Amazon recommends that all new and existing implementations update to v1.13 or later and use the new base URLs accordingly; however, Amazon will continue to support the legacy base URLs.
Bug fixes
Fixed bug where receiving a Connected = true Property change from BlueZ without UUID information resulted in BlueZBluetoothDevice transitioning to CONNECTED state.
Fixed bug where MediaStreamingStateChangedEvent may be sent on non-state related property changes.
Added null check to SQLiteStatement::getColumnText.
Fixed an issue where database values with unescaped single quotes passed to miscStorage database will fail to be stored. Added a note on the interface that only non-escaped values should be passed.
Fixed a loop in audio in live stations based on playlists.
Fixed a race condition in TemplateRuntime that may result in a crash.
Fixed a race condition where a recognize event due to a EXPECT_SPEECH may end prematurely.
Changed the name of Alerts channel to Alert channel within AudioActivityTracker.
Prevented STOP Wakeword detections from generating Recognize events.
The SQLiteDeviceSettingsStorageTest no longer fails for Android.
Version 1.12.1
Release date
April 02 2019
Bug fixes
Fixed a bug where the same URL was being requested twice when streaming iHeartRadio. Now, a single request is sent.
Corrected pause/resume handling in ProgressTimer so that extra ProgressReportDelayElapsed events are not sent to AVS.
Version 1.12.0
Release date
February 25 2019
Enhancements
Support was added for the fr_CA locale.
The Executor has been optimized to run a single thread when there are active job in the queue, and to remain idle when there are not active jobs.
An additional parameter of alertType has been added to the Alerts capability agent. This will allow observers of alerts to know the type of alert being delivered.
Support for programmatic unload and load of PulseAudio Bluetooth modules was added. To enable this feature, there is a new CMake parameter : BLUETOOTH_BLUEZ_PULSEAUDIO_OVERRIDE_ENDPOINTS. Note that libpulse-dev is a required dependency of this feature.
An observer interface was added for when an active Bluetooth device connects and disconnects.
The BluetoothDeviceManagerInterface instantiation was moved from DefaultClient to SampleApp to allow apps to override it.
The MediaPlayerInterface now supports repeating playback of URL sources.
The Kitt.AI wake word engine (WWE) is now compatible with GCC5+.
Stop of ongoing alerts, management of MessageObservers, and management of CallStateObservers have been exposed through DefaultClient.
Bug fixes
Issue 953 - The MediaPlayerInterface requirement that callbacks not be made upon a callers thread has been removed.
Issue 1136 - Added a missing default virtual destructor.
Issue 1140 - Fixed an issue where DND states were not synchronized to the AVS cloud after device reset.
Issue 1143 - Fixed an issue in which the SpeechSynthesizer couldn't enter a sleeping state.
Issue 1183 - Fixed an issue where alarm is not sounding for certain time zones
Changing an alert's volume from the Alexa app now works when an alert is playing.
Added missing shutdown handling for ContentDecrypter to prevent t