AVS SDK IPC Server Sample App Quick Start Overview
Start with the AVS Device SDK Inter-Process Communication (IPC) Server Sample Application to integrate Alexa into your screen-based devices for multi-process, rich visual Alexa interactions and experiences. The IPC Server App implements the same core SDK features and components of the Console Sample App, and extends them to add support for common Alexa multimodal features, such as Alexa Presentation Language (APL) content,
TemplateRuntime, and smart home cameras. Additionally, the IPC Server Sample App implements a local server for IPC communication with a separate client on your device to control Alexa interactions, and complete rendering of Alexa-provided graphical content. By default, the IPC Server Sample App uses Websocket++ as the local server.
The IPC Server Sample App provides a versioned IPC message API, the AVS Device SDK IPC Client Framework, for all communication between the IPC Server and your IPC Client.
The IPC Server Sample App is most commonly paired with a web client built from the Alexa Smart Screen Web Components framework, but you're free to implement an IPC client of your choice.
Quick start guides
You can build the IPC Server Sample App for most Linux-based platforms. Amazon provides the following quick start guides for you to run the AVS Device SDK on three platforms:
The IPC Server Sample App requires input from a connected client that implements support for the AVS Device SDK IPC Client Framework to complete Alexa interactions. Typically you can start with the Alexa Smart Screen Sample Web App as your IPC Client.
For general dependency information, see Alexa Voice Service Device SDK Dependencies. In addition, the AVS Device SDK IPC Server Sample App requires the following dependencies for you to build.
|PortAudio||Used for handling microphone audio input to the application.||v190600_20161030|
|GStreamer||Used for handling all audio media output from the application, including music playback, Alexa voice responses, and Alerts.||1.8.3|
|WebSocket++||Used for IPC communication.||v0.8.2|
|ASIO||Used for I/O network implementation.||v1.12|
|APLClientLibrary||Used for rendering APL content and media.||v2022.1.1|
You can enable the following optional adapters with CMAKE configurations to further extend the features of the IPC Server Sample App.
|Adapter||Description||Requires permissioned access from Amazon|
|Alexa captions||Support for WebVTT based captioning of common Alexa Speak directives.||No|
|Wake word engine (WWE)||Support for building the application with a supported WWE for hands-free voice experience.||Yes ( for Amazon provided WWEs)|
|Alexa Communications||Support for initiating and receiving voice and video calls from other Alexa-enabled devices and users.||Yes|
|Smart home cameras||Support for interacting with Alexa-connected smart home cameras.||Yes|
|InputController||Used for controlling input of entertainment devices.|
The IPC Server Sample App provides optional features for video device and application control with video device control. For usage details, see AVS Device SDK Video Device Control.
In addition to the build-time configuration options provided that the optional adapters provide, the IPC Server Sample App uses two configuration files for runtime configuration of the application’s features:
AlexaClientSDKConfig–Same configuration file as used by the Console Sample App for configuring basic setup and authorization features of the application.
IPCServerSampleApplicationConfig– Additional configuration file for controlling the application’s WebSocket server implementation, and supported Alexa multimodal features.
The following example shows the general usage of the configuration file.
/<path-to-ipc-server-sample-app-build/.IPCServerSampleApplication -C /<path-to-client-config>/AlexaClientSDKConfig.json -C /<path-to-ipc-server-app-config/IPCServerSampelApplicationConfig.json