Amazon Chime SDK Call Analytics Consumer
This code will deploy a small application that can be used with Amazon Chime SDK call analytics to view the results in real-time.
flowchart LR
User((User))
SIP((SIP))
S3[(S3)]
ChimeSDK[Amazon Chime SDK<br/>Voice Connector]
EventBridge1[EventBridge]
Lambda1[EventBridge<br/>Lambda]
KDS[Kinesis Data<br/>Stream]
Lambda2[KDS Lambda]
WebSocket[WebSocket API]
CloudFront[CloudFront Hosted<br/>React App]
ChimeAnalytics[Amazon Chime<br/>SDK Call Analytics]
Transcribe[Transcribe]
SIP -->|1| ChimeSDK
ChimeSDK -->|2| EventBridge1
EventBridge1 -->|3| Lambda1
Lambda1 -->|4| ChimeAnalytics
ChimeSDK -->|5| ChimeAnalytics
Lambda1 -->|6| KDS
ChimeAnalytics -->|7| Transcribe
ChimeAnalytics -->|8| KDS
KDS -->|9| Lambda2
Lambda2 -->|10| WebSocket
CloudFront -->|11| WebSocket
S3 --> CloudFront
User --> CloudFront
style ChimeSDK fill:#C7131F,color:#fff
style EventBridge1 fill:#FF9900,color:#fff
style Lambda1 fill:#FF9900,color:#fff
style KDS fill:#8C4FFF,color:#fff
style Lambda2 fill:#FF9900,color:#fff
style WebSocket fill:#C7131F,color:#fff
style CloudFront fill:#8C4FFF,color:#fff
style ChimeAnalytics fill:#C7131F,color:#fff
style Transcribe fill:#FF9900,color:#fff
style S3 fill:#569A31,color:#fff
Process
- A SIP or SIPREC INVITE is sent to the Amazon Chime SDK Voice Connector
- This triggers EventBridge
- An EventBridge event is sent to the associated Lambda function
- The Lambda starts the Amazon Chime SDK media insights pipeline
- RTP is delivered from the Amazon Chime SDK Voice Connector to the Amazon Chime SDK call analytics processor
- Amazon Chime SDK events from EventBridge are sent to a Kinesis Data Stream
- RTP from the Amazon Chime SDK Voice Connector is processed with Transcribe
- Results from Transcribe are sent from the Amazon Chime SDK call analytics processor to the Kinesis Data Stream
- Kinesis Data Stream records are consumed on a Lambda function
- These records are delivered to a WebSocket API
- And viewable on an S3/CloudFront hosted React App
Deployed Components
- Amazon Chime SDK call analytics configuration
- S3 bucket for recordings
- EventBridge rule
- EventBridge Lambda function
- Kinesis Data Stream
- Kinesis Data Stream consuming Lambda function
- WebSocket API
- DynamoDB to track connections
- S3 bucket for React app
- CloudFront Distribution associated with S3 bucket
Messages
All of the messages related to Amazon Chime SDK call analytics will be delivered to the client through the WebSocket API from the Kinesis Data Stream. These messages can be filtered within the app to more easily see the various message types.
Using
To use this app, you will need to deploy this app and configure an Amazon Chime SDK Voice Connector. This app will start Amazon Chime SDK call analytics for any Amazon Chime Voice Connector in the Region. Any time a call uses an Amazon Chime SDK Voice Connector, the EventBridge Lambda will start an Amazon Chime SDK call analytics media insights pipeline associated with the deployed Amazon Chime SDK call analytics configuration.
Deploying
To deploy this demo, use:
yarn launch
To remove this demo, use:
yarn cdk destroy
GitHub Repo
All code available here: https://github.com/schuettc/amazon-chime-sdk-call-analytics-reader