Prev Next

Cloud / Amazon Chime Interview questions

Last updated

1. What is Amazon Chime? 2. What is the Amazon Chime SDK? 3. What are the main components of the Amazon Chime SDK? 4. What client libraries does the Amazon Chime SDK provide? 5. What is an Amazon Chime SDK meeting? 6. What is an attendee in the Amazon Chime SDK? 7. What is the purpose of the JoinToken? 8. What is the MediaPlacement object? 9. What is the purpose of the MediaRegion parameter? 10. What is Amazon Voice Focus? 11. What are the attendee and video limits of a Chime SDK meeting? 12. What is content sharing in Amazon Chime SDK meetings? 13. What are data messages in Chime SDK meetings? 14. What is Amazon Chime SDK Messaging? 15. What is an AppInstance in the Chime SDK? 16. What is an Amazon Chime SDK Voice Connector? 17. What is a SIP media application? 18. What are Amazon Chime SDK media pipelines? 19. What is a media capture pipeline? 20. What is the meeting readiness checker? 21. What is the pricing model of Chime SDK meetings? 22. What is the difference between Amazon Chime and the Chime SDK? 23. Explain the execution flow of joining a Chime SDK meeting? 24. Why should meetings be created on the server side? 25. How do you start audio and video with the JavaScript SDK? 26. How does the Chime SDK pick the best media region? 27. How does the Chime SDK handle network drops? 28. What is the difference between standard and high-definition sessions? 29. When should you use meeting features like Audio.EchoReduction? 30. How do attendee capabilities work? 31. How can you support more than 250 attendees in a Chime SDK meeting? 32. How does live transcription work in Chime SDK meetings? 33. How do you record a Chime SDK meeting? 34. What is the difference between capture, concatenation, and live connector pipelines? 35. How do you track meeting events on the server? 36. What happens when no attendees join a Chime SDK meeting? 37. How do video tiles work in the JavaScript SDK? 38. How do background blur and replacement work? 39. How do you troubleshoot no audio in a Chime SDK meeting? 40. How do you troubleshoot ThrottledClientException errors? 41. How does Chime SDK Messaging deliver messages in real time? 42. How do channel flows moderate messages? 43. What is the difference between public and private channels? 44. How do SIP rules route calls to a SIP media application? 45. How does a SIP media application control a call? 46. When would you choose a Voice Connector over a SIP media application? 47. How do you secure an Amazon Chime SDK application? 48. When would you choose the Chime SDK over an off-the-shelf meeting product? 49. How should existing Amazon Chime customers move off the Amazon Chime app? 50. How would you design a telehealth video visit app on the Chime SDK?

1. What is Amazon Chime?

Amazon Chime was an AWS-managed communications service for online meetings, video conferencing, chat, and business calling. Users reached it through desktop, web, and mobile clients, while admins managed accounts and users from a separate console.

AWS stopped accepting new customers on February 19, 2025, and ended support for the service, including Business Calling, on February 20, 2026. A group of customers who received an extension kept meeting access until September 8, 2026.

The developer product, the Amazon Chime SDK, was not part of that shutdown. When an interviewer says "Chime" today, they usually mean the SDK.

Take quiz
When did AWS end support for the Amazon Chime service for most customers?
February 20, 2026
February 19, 2025
December 31, 2026
Which part of the Chime family was not affected by the end-of-support notice?
The Chime user administration console
The Amazon Chime SDK
Hosting meetings in the Chime desktop app
Business Calling phone numbers

2. What is the Amazon Chime SDK?

The Amazon Chime SDK is a set of APIs and client libraries that lets developers add real-time voice, video, and messaging to their own applications. AWS runs the media infrastructure; you build the user interface and the business logic around it.

It covers five areas: meetings, messaging, identity, media pipelines, and voice (SIP trunking and programmable calls). You can use one area or combine several.

The SDK works independently of any Amazon Chime administrator account. All you need is an AWS account and IAM permissions to call the APIs.

Take quiz
Who is responsible for building the user interface of a Chime SDK application?
The attendee's browser vendor
AWS, through a prebuilt Chime meeting screen
Your development team
The Chime admin console renders it automatically
What kind of account do you need to use the Chime SDK?
A Slack workspace connected to Chime
An Amazon Chime Enterprise account
A Chime Pro license for every end user
An AWS account with IAM permissions for the Chime SDK APIs

3. What are the main components of the Amazon Chime SDK?

The Chime SDK is split into five API areas, each with its own namespace in the AWS SDKs.

Component What it does
Meetings Creates meetings and attendees for audio, video, and screen sharing.
Messaging Persistent chat through channels, memberships, and messages.
Identity Manages AppInstances, AppInstanceUsers, and bots used by messaging.
Media pipelines Records, concatenates, streams, and analyzes media.
Voice Voice Connectors, phone numbers, SIP rules, and SIP media applications.

Most real applications mix two or three areas. A telehealth app may use only Meetings and Media pipelines, while a support portal might combine Messaging and Identity for chat with Voice for phone calls. Because each area has its own API namespace, you can also grant IAM permissions per area.

Take quiz
Which Chime SDK component manages AppInstanceUsers?
Identity
Voice
Media pipelines
Meetings
Which component would you use to connect an existing PBX to the phone network?
Identity
Voice
Messaging
Meetings

4. What client libraries does the Amazon Chime SDK provide?

AWS ships client libraries for JavaScript (browsers), iOS (Swift), Android (Kotlin and Java), and React Native. They handle the WebRTC work: device selection, audio and video transport, reconnection, and metrics.

On top of the JavaScript library sits the Chime SDK React component library, which gives you ready-made pieces such as a video tile grid, roster, and device selectors. It saves time when you do not want to build every control from scratch.

Each client library needs the meeting and attendee details returned by your backend, since the SDK does not hand out join URLs on its own.

Take quiz
Which library provides prebuilt UI pieces like a roster and video tile grid?
The AWS CLI chime commands
The Chime SDK for iOS
The Chime SDK React component library
The Voice Connector client
Where does a client library get the data it needs to join a meeting?
From a public DNS lookup of the meeting ID
From a join URL generated by Chime
From the Chime admin console
From your backend, which called CreateMeeting and CreateAttendee

5. What is an Amazon Chime SDK meeting?

An SDK meeting is a real-time media session that your server creates with the CreateMeeting API. It is pinned to one AWS media region and identified by a MeetingId, plus an optional ExternalMeetingId that maps back to your own data.

The response also carries a MediaPlacement block with the endpoints clients connect to. Attendees then join from client libraries using their own tokens.

Note that the SDK does not create meeting codes or join URLs for end users. Your application decides how people find and enter a meeting. DeleteMeeting ends it for everyone.

Take quiz
What does the Chime SDK not generate for end users?
Meeting codes or join URLs
A MeetingId
MediaPlacement endpoints
A per-attendee JoinToken
Which API ends a meeting immediately for all attendees?
StopMeetingTranscription
DeleteMeeting
DeleteAttendee
UpdateAttendeeCapabilities

6. What is an attendee in the Amazon Chime SDK?

An attendee is a participant record created for one person (or device) in one meeting through CreateAttendee. The response includes an AttendeeId, your ExternalUserId, the Capabilities, and a JoinToken.

ExternalUserId is how you tie the attendee to a user in your own system, for example a patient or an agent ID. AttendeeId is assigned by Chime.

You can create attendees one at a time, or in bulk with BatchCreateAttendee (up to 100 per call) and CreateMeetingWithAttendees (up to 10).

Take quiz
Which field links a Chime attendee to a user in your own system?
MeetingId
MediaRegion
ExternalUserId
AttendeeId
How many attendees can one BatchCreateAttendee call create?
25
10
250
100

7. What is the purpose of the JoinToken?

The JoinToken authorizes one attendee to connect to one meeting's media session. It comes back in the CreateAttendee response and is passed to the client library, which presents it when it opens the connection.

Think of it as a bearer credential for that attendee. Anyone who holds it can join as that person, so deliver it only over your authenticated channel and never log it.

It does not grant AWS API access. Calls such as CreateMeeting still require IAM credentials on your backend.

Take quiz
What does a JoinToken authorize?
One attendee connecting to one meeting's media session
Administrator access to the AWS account
Calling CreateMeeting from the browser
Reading CloudWatch metrics for the meeting
What is the main risk if a JoinToken leaks?
Billing settings could be changed
Someone else could join the meeting as that attendee
All channel history could be exported
Recordings in S3 could be deleted

8. What is the MediaPlacement object?

MediaPlacement is a block in the CreateMeeting response that lists the service endpoints clients use to connect. The main fields are AudioHostUrl, AudioFallbackUrl, SignalingUrl, TurnControlUrl, and screen-related URLs such as ScreenDataUrl.

The client library uses SignalingUrl for session negotiation and TurnControlUrl to fetch TURN credentials when a direct media path is not possible.

You never edit these values. Pass the whole Meeting object to the client unchanged, because the library builds its configuration from it.

Take quiz
Which MediaPlacement field is used to obtain TURN credentials?
AudioFallbackUrl
SignalingUrl
TurnControlUrl
ScreenDataUrl
How should your app treat MediaPlacement values?
Rewrite the hostnames to your own domain
Strip them and let the client guess endpoints
Cache them for a week and reuse across meetings
Pass them to the client unchanged

9. What is the purpose of the MediaRegion parameter?

MediaRegion tells Chime which AWS Region should host the meeting's media services. Every attendee, wherever they are, connects to that one region for the life of the meeting.

Pick a region close to most attendees, since distance drives latency and audio quality. It is set when you call CreateMeeting and cannot be changed afterward.

If you leave it out, Chime chooses a region for you, which may not match where your users actually are.

Region choice also matters for data residency. If a policy says European callers must stay on European infrastructure, set a European media region explicitly instead of relying on the default.

Take quiz
When is the media region of a meeting fixed?
At CreateMeeting time
Each time an attendee joins
When the first video tile starts
When DeleteMeeting is called
What is the practical effect of choosing a media region far from most attendees?
Fewer attendees are allowed
Higher latency and weaker call quality
JoinTokens expire faster
Encryption is turned off

10. What is Amazon Voice Focus?

Amazon Voice Focus is AWS's machine-learning noise suppression for Chime SDK audio. It filters non-speech sounds such as keyboard clicks, fans, or barking dogs so the voice stands out.

It runs on the client side, in the attendee's browser or app, before audio is sent. Your application exposes a toggle if you want users to control it.

Do not confuse it with echo reduction, which is a separate meeting feature requested at meeting creation and billed as an add-on.

Take quiz
What kind of audio problem does Voice Focus target?
UDP packet loss
Poor webcam lighting
Non-speech background noise such as typing
Transcription errors
Which of these is requested as a meeting feature at CreateMeeting time?
Amazon Voice Focus
Background blur
Simulcast
Audio.EchoReduction

11. What are the attendee and video limits of a Chime SDK meeting?

A standard session supports up to 250 attendees, and a high-definition session supports up to 100. Beyond that you need replica meetings for view-only audiences.

On the video side, a meeting allows 25 concurrent video streams, and an attendee can subscribe to 25 at once.

Limit Value
Attendees, standard session 250
Attendees, HD session 100
Video streams published / subscribed 25

Some quotas are adjustable through Service Quotas and others are fixed, so check the endpoints and quotas page before capacity planning.

Take quiz
What is the attendee limit of a high-definition session?
100
1,000
250
25
How many video streams can an attendee subscribe to concurrently?
250
25
8
100

12. What is content sharing in Amazon Chime SDK meetings?

Content sharing is screen, window, or tab sharing during a meeting. The presenter's share travels as its own stream, separate from their camera.

It shows up in the roster as a distinct attendee whose ID is the presenter's AttendeeId followed by #content. This lets the UI render it in a different layout from the camera tiles.

In the JavaScript library you start it with calls such as startContentShareFromScreenCapture. The maximum quality is capped by the Content.MaxResolution meeting feature.

Take quiz
How does a screen share appear in the attendee roster?
As a chat attachment
As a separate meeting with its own MeetingId
As a separate attendee whose ID ends with #content
As a replacement for the presenter's camera tile
Which meeting feature caps the quality of content sharing?
Attendee.MaxCount
Audio.EchoReduction
Video.MaxResolution
Content.MaxResolution

13. What are data messages in Chime SDK meetings?

Data messages let attendees send small payloads to each other through the meeting's existing connection. You send one with realtimeSendDataMessage(topic, data, lifetimeMs) and listen with realtimeSubscribeToReceiveDataMessage(topic, callback).

Payloads are limited to about 2 KB, so they suit lightweight signals: raised hands, emoji reactions, poll votes, or whiteboard pointer positions.

They are not a chat history or file transfer system. For persistent conversations, use the Messaging API instead.

Receivers subscribe by topic, so one meeting can carry several independent streams of signals, such as one topic for reactions and another for whiteboard updates. Most teams send small, compact JSON. Do not rely on data messages to rebuild state for someone who joins late; keep the authoritative state in your own backend.

Take quiz
What is the approximate size limit of a data message payload?
2 KB
1 MB
64 KB
50 MB
Which use case fits data messages best?
Transferring a 50 MB slide deck
Sending a raised-hand or emoji reaction signal
Storing a week of chat history
Recording the meeting

14. What is Amazon Chime SDK Messaging?

Chime SDK Messaging is a managed service for persistent chat. Conversations live in channels; users join through channel memberships and exchange channel messages.

Every call is made on behalf of an identity. You pass the ARN of an AppInstanceUser in the x-amz-chime-bearer header, called the ChimeBearer, so the service knows who is acting.

Messages reach connected clients in real time over a WebSocket session, and you can also stream them to other AWS services.

Moderation is built in too: channel moderators can ban users or redact messages, and channel flows can screen messages before delivery. Persistence is set per message, so the same service can back durable team chat and short-lived control signals.

Take quiz
In Messaging API calls, what identifies who is performing the action?
The meeting JoinToken
The SIP rule ID
The ChimeBearer, an AppInstanceUser ARN
The MediaRegion
Which Messaging construct holds a conversation and its messages?
MediaPlacement
Capture pipeline
Voice Connector Group
Channel

15. What is an AppInstance in the Chime SDK?

An AppInstance is the top-level container for identity and messaging resources. Under it you create AppInstanceUsers, bots, admins, and channels.

Most teams create one AppInstance per application environment, such as dev, staging, and production, so users and channels never mix across them.

An AppInstanceUser is your app's representation of a person. Its ARN is the value used as the ChimeBearer in Messaging calls.

AppInstances are also where admins are defined, since an AppInstanceAdmin can manage every channel inside it. Message retention settings can be applied at the AppInstance level, which gives you one place to enforce a retention policy.

Take quiz
What do you create under an AppInstance to represent each chat user?
An AppInstanceUser
A SIP rule
A media capture pipeline
An Attendee
Which is a sensible reason to use separate AppInstances?
One per phone call
To isolate dev and production chat data
One per video tile
One per chat message

16. What is an Amazon Chime SDK Voice Connector?

A Voice Connector is a managed SIP trunking service. It links your PBX, session border controller, or contact center to AWS and the public telephone network.

It supports origination (calls from the phone network to your system) and termination (calls from your system out to the phone network). You secure it with an allowed IP list and/or SIP credentials, and it supports TLS and SRTP encryption.

Voice Connector Groups chain several connectors in priority order for failover, and media can be streamed to Kinesis Video Streams for analysis.

Take quiz
Which direction does termination refer to on a Voice Connector?
Calls from the phone network into your system
Closing a meeting
Calls going from your system out to the phone network
Deleting phone numbers
What is the purpose of a Voice Connector Group?
Merging recorded audio files
Limiting attendees per meeting
Grouping chat users into channels
Failover across several Voice Connectors in priority order

17. What is a SIP media application?

A SIP media application (SMA) is programmable voice. When a call arrives, Chime invokes your AWS Lambda function with an event describing the call, and your function replies with a list of actions such as Speak, PlayAudio, or CallAndBridge.

This lets you build IVR menus, call routing, voicemail, or bot-driven calls entirely in code, without running telephony servers.

An SMA is attached to a phone number or Voice Connector hostname through a SIP rule.

Because the logic is a Lambda function, you can read from DynamoDB or call internal APIs mid-call, for example to look up a caller's account before deciding where to route. SMAs can also place outbound calls and join a caller into an SDK meeting.

Take quiz
What does a SIP media application invoke when a call event occurs?
An AWS Lambda function
An SQS dead-letter queue
An Amazon EC2 instance
A Kinesis data stream
What connects a phone number to a SIP media application?
A MediaPlacement URL
A SIP rule
A channel flow
An AppInstance

18. What are Amazon Chime SDK media pipelines?

Media pipelines are managed workflows that process audio and video from meetings or calls without you running media servers.

The main types are:

  1. Media capture - records meeting media to Amazon S3.
  2. Media concatenation - stitches captured chunks into continuous files.
  3. Live connector - streams a meeting to an RTMP destination.
  4. Media stream / insights - sends media to Kinesis Video Streams and services such as Amazon Transcribe for analysis.

You create and delete pipelines with the media pipelines API, usually from your backend.

Take quiz
Which pipeline type records meeting media to Amazon S3?
Channel flow
Live connector pipeline
Media capture pipeline
Voice Connector Group
Which pipeline type pushes a meeting to an RTMP endpoint?
Messaging streaming pipeline
Media capture pipeline
Media concatenation pipeline
Live connector pipeline

19. What is a media capture pipeline?

A media capture pipeline records the audio, video, and screen share of a Chime SDK meeting and writes the output to an Amazon S3 bucket. You start it with CreateMediaCapturePipeline, using the meeting as the source (ChimeSdkMeeting) and a bucket as the sink.

The bucket policy must allow the Chime media pipelines service principal to write, otherwise the pipeline fails.

Output arrives as chunked files. If you want one continuous recording per stream, feed them into a concatenation pipeline afterward.

Take quiz
Where does a media capture pipeline write its output?
An Amazon S3 bucket
Amazon SQS
Amazon DynamoDB
Amazon CloudFront
What must the S3 bucket allow for capture to work?
Writes from the attendee's browser
Writes from the Chime media pipelines service principal
Cross-region replication
Public read access

20. What is the meeting readiness checker?

The meeting readiness checker is a utility in the JavaScript client library (DefaultMeetingReadinessChecker) that tests whether a user's setup can handle a meeting before they join.

It can check the selected microphone, speaker, and camera, camera resolutions, content-share ability, and network connectivity over both UDP and TCP.

It is typically used to build a "check your setup" screen so that problems like a blocked network or a missing mic permission show up before the call starts.

Each check returns a result you can map to a friendly message, such as "your camera is blocked" or "your network is blocking UDP". It runs in seconds, so it fits in a pre-join lobby and cuts support tickets caused by predictable local problems.

Take quiz
What is the readiness checker mainly used for?
Creating attendees in bulk
Choosing the media region at creation
Testing devices and network before a user joins
Recording the meeting
Which network paths does the readiness checker verify?
Only BGP routes
Only SMTP
Only FTP
Both UDP and TCP connectivity

21. What is the pricing model of Chime SDK meetings?

The Chime SDK uses pay-as-you-go pricing. Meetings are billed by attendee-minutes, so you only pay while attendees are actually connected. There is no per-user license and no upfront commitment.

Extra features such as echo reduction and high-definition sessions are priced separately, and other components like media pipelines or Voice Connectors have their own meters.

Always confirm current rates on the Chime SDK pricing page, since rates change.

To estimate cost, multiply expected attendees by average minutes per meeting by meetings per month, then add the separate meters for features such as echo reduction or HD. Capping Attendee.MaxCount helps stop a runaway session from inflating the bill.

Take quiz
When do Chime SDK meeting charges accrue?
While attendees are connected to a meeting
From the moment CreateMeeting is called
Only when a recording is saved
As a fixed monthly fee per host
Which licensing model does the Chime SDK use for meetings?
Per-host monthly Pro license
Usage-based attendee-minutes with no per-user license
Flat fee per meeting room
Annual enterprise contract only

22. What is the difference between Amazon Chime and the Chime SDK?

The Amazon Chime service was a finished end-user product for meetings, chat, and calling. The Chime SDK is a developer toolkit for embedding similar capabilities into your own app.

Amazon Chime (app) Amazon Chime SDK
Ready-made client and admin console. APIs and client libraries; you build the UI.
Per-user Basic/Pro licensing. Usage-based, per attendee-minute.
Users managed in the Chime console. Identity is whatever your app uses.
Support ended February 20, 2026. Still available and developed.

The two are independent: an SDK meeting never appeared inside the Chime app.

Take quiz
Which product is still actively available after February 2026?
Amazon Chime Business Calling
The Chime administration console
The Amazon Chime SDK
The Amazon Chime Pro app
How are users managed in an SDK-based application?
Through the Chime admin console
Through Slack workspace invites
Through Chime Pro license assignment
Through whatever identity system your own app uses

23. Explain the execution flow of joining a Chime SDK meeting?

Joining always involves your backend, because only it holds the AWS credentials needed to create meeting resources.

  1. The user opens your app and asks to join a session.
  2. Your backend authenticates the user and calls CreateMeeting (or reuses an existing meeting).
  3. It calls CreateAttendee for that user.
  4. It returns the Meeting and Attendee objects to the client.
  5. The client builds a MeetingSessionConfiguration and starts the session; media then flows directly between the client and the Chime media service.
sequenceDiagram
  participant C as Client app
  participant B as Your backend
  participant S as Chime SDK API
  participant M as Chime media service
  C->>B: Request to join (authenticated)
  B->>S: CreateMeeting
  S-->>B: Meeting (MediaPlacement, MediaRegion)
  B->>S: CreateAttendee
  S-->>B: Attendee (JoinToken)
  B-->>C: Meeting + Attendee
  C->>M: Connect with JoinToken
  M-->>C: Audio, video, content streams

The backend is never in the media path, which is why meeting traffic does not load your servers.

Take quiz
Which component of the join flow holds the AWS credentials?
Your backend
The attendee's browser
The user's microphone driver
The Chime media service
After the client receives Meeting and Attendee objects, what carries the audio and video?
Your backend relaying every packet
A direct connection between the client and the Chime media service
An SMTP relay
A DynamoDB stream

24. Why should meetings be created on the server side?

Because CreateMeeting and CreateAttendee are IAM-authorized AWS API calls, and embedding access keys in a browser or mobile app would expose them to everyone.

A server also gives you control. You can check that the user is allowed in, choose the media region, set an ExternalMeetingId for your own records, make the call idempotent with ClientRequestToken, and attach notification settings or meeting features.

const { ChimeSDKMeetingsClient, CreateMeetingCommand,
        CreateAttendeeCommand } = require('@aws-sdk/client-chime-sdk-meetings');

const client = new ChimeSDKMeetingsClient({ region: 'us-east-1' });
const { Meeting } = await client.send(new CreateMeetingCommand({
  ClientRequestToken: requestId,
  MediaRegion: 'us-east-1',
  ExternalMeetingId: 'room-42'
}));
const { Attendee } = await client.send(new CreateAttendeeCommand({
  MeetingId: Meeting.MeetingId,
  ExternalUserId: 'user-17'
}));

Return only Meeting and Attendee to the client, never the credentials behind them.

Take quiz
Why is calling CreateMeeting directly from a browser a bad idea?
Browsers cannot send HTTPS requests
It disables video
It would require exposing AWS credentials to the user
The call only works from EC2
What does ClientRequestToken provide on CreateMeeting?
Automatic recording
A shorter JoinToken
Encryption of the media stream
Idempotency, so retries do not create duplicate meetings

25. How do you start audio and video with the JavaScript SDK?

After receiving the meeting and attendee from your backend, you build a session, select devices, attach UI elements, and call start().

const logger = new ConsoleLogger('chime', LogLevel.INFO);
const deviceController = new DefaultDeviceController(logger);
const config = new MeetingSessionConfiguration(meeting, attendee);
const session = new DefaultMeetingSession(config, logger, deviceController);
const av = session.audioVideo;

const mics = await av.listAudioInputDevices();
await av.startAudioInput(mics[0].deviceId);
av.bindAudioElement(document.getElementById('meeting-audio'));
av.addObserver({
  videoTileDidUpdate: (tile) => { /* bind tile to a video element */ }
});
av.start();
av.startLocalVideoTile();

Order matters: devices and the audio element should be ready before start(), and browsers expect the call to follow a user gesture because of autoplay rules. In older library versions the device call is named chooseAudioInputDevice.

Take quiz
Which call actually connects the client to the meeting's media session?
audioVideo.start()
audioVideo.bindAudioElement()
new MeetingSessionConfiguration()
audioVideo.listAudioInputDevices()
Why should audio start after a user gesture such as a button click?
JoinTokens only validate after a click
Browser autoplay policies can block audio otherwise
WebRTC cannot run without a click
The Chime SDK requires a mouse event for billing

26. How does the Chime SDK pick the best media region?

The SDK does not choose for you; you decide at CreateMeeting time. The usual approach is to let the first joining client measure which region is nearest and report it to your backend.

AWS publishes a lookup endpoint, https://nearest-media-region.l.chime.aws, that returns the closest media region for the caller. The client calls it, sends the result to your server, and the server passes it as MediaRegion.

For groups spread across continents, you may prefer a region near the majority of attendees, since everyone connects to the same one. Once the meeting exists, the region cannot be changed.

If attendees are known in advance, you can also decide the region from account data, such as the host's office location, which avoids waiting for a client probe. Log the chosen region with your session record so quality complaints can be compared against distance.

Take quiz
What does the nearest-media-region endpoint return?
A list of all meetings in the account
The attendee's JoinToken
The closest Chime media region for the calling client
The cheapest AWS region
Who ultimately sets the media region of a meeting?
The Chime admin console
The Chime SDK, automatically at join time
Each attendee, individually
Your backend, through the MediaRegion parameter of CreateMeeting

27. How does the Chime SDK handle network drops?

The JavaScript library tries to reconnect automatically. By default it keeps trying for about two minutes, which is controlled by the reconnect timeout in MeetingSessionConfiguration.

During that window the client reports progress through observer callbacks, for example audioVideoDidStartConnecting(reconnecting) and connectionDidBecomePoor. If it succeeds, audio and video resume without a new join.

If the attendee never reconnects, the session stops with a status code from MeetingSessionStatusCode, and the service emits an AttendeeDropped event on the server side. Your UI should handle both so users see a clear "reconnecting" or "rejoin" prompt.

You can tune this. The reconnect timeout is configurable, and a connection health policy controls how quickly the library flags poor connectivity or suggests turning off video. Show a clear banner during reconnecting, since silent audio is a common reason users abandon calls.

Take quiz
What is the default reconnect window of the JavaScript client library?
About two minutes
About five seconds
About thirty minutes
It never reconnects automatically
Which server-side event is emitted when an attendee never returns after a drop?
AttendeeAdded
AttendeeDropped
MediaCaptureStarted
MeetingStarted

28. What is the difference between standard and high-definition sessions?

A standard session is the default and supports up to 250 attendees with video up to 720p. A high-definition session is created when you request FHD (1080p) video through Video.MaxResolution, and it supports fewer attendees.

Aspect Standard High-definition
Max attendees 250 100
Video quality Up to HD (720p) Up to FHD (1080p)
Trigger Default Requested via meeting features
Pricing Base rate Higher rate

Choose HD only when picture quality is the product, such as remote inspections or telemedicine. For large calls, standard is cheaper and holds more people.

The HD setting is a ceiling, not a requirement: clients can still send lower resolutions inside an HD session. Request FHD only when your cameras and your users' bandwidth can actually benefit.

Take quiz
What triggers the creation of a high-definition session?
Enabling Voice Focus on the client
Having more than 10 attendees
Requesting FHD in Video.MaxResolution
Starting a screen share
Which is the trade-off of an HD session compared with a standard one?
Required use of Voice Connector
A shorter JoinToken lifetime
No audio support
A lower attendee cap and higher price

29. When should you use meeting features like Audio.EchoReduction?

Meeting features are options you pass in MeetingFeatures when calling CreateMeeting. They change what the session allows and sometimes what it costs.

  • Audio.EchoReduction - set to AVAILABLE when attendees often use speakerphones or shared rooms. It is supported in the JavaScript and React libraries and carries an extra charge.
  • Video.MaxResolution - cap or disable webcam video, for example None for audio-only apps.
  • Content.MaxResolution - control screen-share quality.
  • Attendee.MaxCount - cap the meeting size below the service limit.

Lowering limits is also a cost and abuse guardrail: a webinar that only needs 30 people should not allow 250.

Features are fixed when the meeting is created, so decide them in your backend based on the type of session, for example a webinar versus a one-to-one consult, rather than leaving the choice to clients.

Take quiz
Which situation best justifies enabling echo reduction?
Attendees frequently join over speakerphones in shared rooms
The meeting needs 1080p video
The meeting will be recorded to S3
Attendees need persistent chat history
Which meeting feature lets you disable webcam video entirely for an audio-only app?
Audio.EchoReduction set to UNAVAILABLE
Video.MaxResolution set to None
Content.MaxResolution set to None
Attendee.MaxCount set to 0

30. How do attendee capabilities work?

Capabilities control what each attendee can do with audio, video, and content. Each is set to one of SendReceive, Send, Receive, or None.

You set them in CreateAttendee and change them later with UpdateAttendeeCapabilities (or the batch variants, including a call that updates everyone except named attendees).

This enables roles. A viewer in a webinar gets Receive for audio and video, a presenter gets SendReceive, and a moderator can be muted or have video removed mid-call by changing capabilities. Because the change is enforced by the service, a modified client cannot bypass it.

Take quiz
Which capability value suits a webinar viewer who should only watch?
None for audio but SendReceive for video
SendReceive
Receive
Send
Which API changes an attendee's permissions during a live meeting?
CreateAttendee again with the same ID
UpdateMediaPlacement
DeleteMeeting
UpdateAttendeeCapabilities

31. How can you support more than 250 attendees in a Chime SDK meeting?

A single meeting stops at 250 attendees (100 in HD), so large events use replica meetings. You create a primary meeting for presenters, then create replica meetings that mirror its audio and video for the audience.

You do this by calling CreateMeeting with the PrimaryMeetingId of the main meeting. Each replica has its own attendee cap, so the audience is spread across replicas while the presenters stay in one place. By default a primary meeting can have 4 replicas, and that quota is adjustable.

Replica attendees are typically receive-only, which fits webinars, town halls, and live classes. If every participant needs to talk, replicas are the wrong tool, and you should redesign around smaller rooms.

Plan the audience experience as well. Create audience attendees against the replica meeting, and keep send capabilities off for them so that viewers cannot publish audio or video into the event.

Take quiz
Which parameter links a replica meeting to its main meeting?
PrimaryMeetingId
ExternalMeetingId
ClientRequestToken
MediaRegion
What kind of use case fits replica meetings best?
A 300-person brainstorm where everyone speaks
A webinar with few presenters and a large receive-only audience
A two-person support call
A recorded voicemail system

32. How does live transcription work in Chime SDK meetings?

You enable it from your backend with StartMeetingTranscription, passing a TranscriptionConfiguration. The configuration selects the engine, either Amazon Transcribe or Amazon Transcribe Medical, plus a language code and optional settings.

Chime streams meeting audio to the engine. Results come back to clients as transcript events, which the JavaScript library exposes through the transcription controller, including partial and final results for live captions.

The service uses a service-linked role to call Transcribe on your behalf. You stop it with StopMeetingTranscription. If you also need a stored transcript, save the final events yourself or use a media insights pipeline.

Language and engine settings matter. Pick the language code your speakers actually use, and consider custom vocabulary or content redaction in the engine settings if your domain has unusual terms or sensitive data. Treat captions as best-effort and let users switch them off.

Take quiz
Which API starts live transcription for a meeting?
CreateMediaCapturePipeline
StartSpeakerSearchTask
StartMeetingTranscription
UpdateAttendeeCapabilities
Which engines can the transcription configuration target?
Amazon Comprehend only
Amazon Polly or Amazon Lex
Amazon Rekognition or Amazon Textract
Amazon Transcribe or Amazon Transcribe Medical

33. How do you record a Chime SDK meeting?

You record with a media capture pipeline. Your backend calls CreateMediaCapturePipeline with the meeting ARN as the source and an S3 bucket as the sink, then stops it with DeleteMediaCapturePipeline when the meeting ends.

The artifacts configuration decides what you get: audio, video, content share, and optionally a composited video that blends participants into one grid. Output lands in S3 as chunked files.

To turn chunks into continuous files, start a media concatenation pipeline afterward.

flowchart LR
  A["Meeting running"] --> B["Backend: CreateMediaCapturePipeline"]
  B --> C["Chunked artifacts in S3"]
  C --> D["Backend: CreateMediaConcatenationPipeline"]
  D --> E["Continuous recording files in S3"]
  A --> F["Backend: DeleteMediaCapturePipeline at meeting end"]

Tell attendees they are being recorded in your UI; the SDK does not do this for you.

Take quiz
Which API starts recording a Chime SDK meeting to S3?
CreateMediaCapturePipeline
CreateMediaLiveConnectorPipeline
CreateAttendee
StartMeetingTranscription
What do you run after capture to get continuous files instead of chunks?
A second capture pipeline
A media concatenation pipeline
A channel flow
A SIP rule

34. What is the difference between capture, concatenation, and live connector pipelines?

All three work on meeting media, but they solve different jobs.

Pipeline Purpose Output
Capture Records meeting audio, video, and content. Chunked files in S3.
Concatenation Merges captured chunks after the fact. Continuous files in S3.
Live connector Streams the meeting while it happens. RTMP stream to a destination.

Capture and concatenation are about storage, usually run in sequence. The live connector is about broadcast, for example sending a webinar to a streaming platform that accepts RTMP.

They are independent, so you can run capture and live connector on the same meeting at once.

Pick by timing. If you need a playback file tomorrow, use capture, then concatenation. If you need viewers right now on another platform, use the live connector. Start either one once attendees are present so you do not record or broadcast an empty room.

Take quiz
Which pipeline sends a meeting to an RTMP destination as it happens?
Concatenation
Capture
Live connector
Media insights
What input does a concatenation pipeline work on?
SIP call audio from a Voice Connector
Channel messages
A live RTMP feed
Chunks already written by a capture pipeline

35. How do you track meeting events on the server?

The Chime SDK publishes meeting lifecycle events so your backend can react without polling. Two delivery routes exist.

  1. Amazon EventBridge - events arrive with source aws.chime and detail type "Chime Meeting State Change". Add a rule to route them to Lambda, SQS, or other targets.
  2. SNS or SQS - pass a notification configuration when calling CreateMeeting.

Typical event types include chime:MeetingStarted, chime:MeetingEnded, chime:AttendeeJoined, chime:AttendeeLeft, and chime:AttendeeDropped.

Common uses are stopping a recording when the meeting ends, writing attendance records, and alerting on drops.

Prefer EventBridge for new designs because one rule can filter by event type and fan out to several targets. Make handlers idempotent, since events can be delivered more than once and may arrive out of order.

Take quiz
Which EventBridge source value carries Chime meeting events?
aws.chime
aws.mediaconnect
aws.sdk
aws.meetings
What would a backend commonly do on chime:MeetingEnded?
Update the MediaRegion
Stop the recording pipeline and finalize attendance records
Create a new attendee
Rotate the IAM role

36. What happens when no attendees join a Chime SDK meeting?

An empty meeting does not live forever. For a non-replica meeting, if no attendees connect for 5 continuous minutes, the service ends it automatically and emits a chime:MeetingEnded event.

After that, calls that reference the meeting, including GetMeeting and CreateAttendee, return a not-found error. Any attendee object or JoinToken you handed out earlier becomes useless.

The practical rule: create meetings close to when people need them, and handle the not-found case by creating a fresh meeting. Using the same ExternalMeetingId in your own database makes it easy to map the old and new meeting to one logical session.

Take quiz
After how long without connected attendees does a non-replica meeting end?
30 seconds
It never ends automatically
5 continuous minutes
1 hour
What should your backend do when CreateAttendee returns not found for an old meeting?
Reuse the old JoinToken
Retry the same call forever
Increase Attendee.MaxCount
Create a new meeting and attendees for the session

37. How do video tiles work in the JavaScript SDK?

A video tile is the SDK's handle for one incoming or outgoing video stream. You do not attach streams directly; you listen for tile changes and bind each tile to a <video> element.

  1. Add an observer with videoTileDidUpdate(tileState).
  2. Read tileState.tileId, boundAttendeeId, localTile, and isContent.
  3. Call audioVideo.bindVideoElement(tileId, element).
  4. Free the element in videoTileWasRemoved.

Your own camera is a local tile, started with startLocalVideoTile(). Because attendees can receive at most 25 streams, large calls use a priority-based downlink policy (VideoPriorityBasedPolicy) to choose which remote videos to show and at what quality.

A common bug is leaving a tile bound after an attendee leaves, which freezes the last frame. Unbind or hide the element inside videoTileWasRemoved, and rebuild your layout whenever the tile count changes.

Take quiz
Which call attaches a video tile to an HTML video element?
audioVideo.bindVideoElement(tileId, element)
audioVideo.bindAudioElement(tileId)
audioVideo.start(tileId)
audioVideo.listVideoInputDevices(tileId)
Which tile property tells you whether a tile is a screen share?
active
isContent
tileId
localTile

38. How do background blur and replacement work?

Both are video frame processors that run on the client, so no extra server work is needed. A machine-learning segmentation model separates the person from the background in each frame, then the processor either blurs the rest or swaps it for an image.

In the JavaScript library you create a BackgroundBlurVideoFrameProcessor or BackgroundReplacementVideoFrameProcessor, wrap it in a DefaultVideoTransformDevice with the camera's device ID, and start that device as your video input.

Check support first, for example with the processor's isSupported() method, because older or low-powered devices may struggle. Expect higher CPU use while the effect is on.

Replacement needs an image supplied as a blob, which you can load from your own storage. Reuse one processor across toggles where possible, since loading the model is the costly part, and call destroy() when the user leaves.

Take quiz
Where does background blur processing run?
Inside the Voice Connector
In the Chime media service for every attendee
On the client, as a video frame processor
On your backend Lambda
Which class wraps a frame processor around a camera device?
DefaultDeviceController only
DefaultMeetingSession
MeetingSessionConfiguration
DefaultVideoTransformDevice

39. How do you troubleshoot no audio in a Chime SDK meeting?

Work from the browser outward, since most no-audio cases are client-side.

Check What to look for
Audio element bindAudioElement was called; the element is not muted.
Autoplay Join started after a user gesture.
Devices A mic was selected and OS permission granted.
Capabilities Attendee audio capability is not Receive or None.
Network UDP 3478 and TCP 443 are reachable; run the readiness checker.
Status code Inspect audioVideoDidStop and MeetingSessionStatusCode.

On the server side, CloudWatch metrics such as AttendeeAudioDrops and AttendeeAuthorizationErrors point to drops or token problems. Also confirm the same attendee is not joined from a second device, which can disconnect the first.

Take quiz
Which attendee capability setting would prevent a user from speaking?
Audio set to Receive
Video set to None
Content set to Receive
Audio set to SendReceive
Which tool checks network paths and devices before a user joins?
A SIP rule
The meeting readiness checker
The media capture pipeline
The channel flow processor

40. How do you troubleshoot ThrottledClientException errors?

A ThrottledClientException (HTTP 429) means your backend exceeded the API rate for a Chime SDK endpoint. Before asking for higher limits, look for bugs that burn through calls, such as creating meetings in a loop or never cleaning them up.

  1. Replace separate CreateMeeting and CreateAttendee calls with CreateMeetingWithAttendees (up to 10 attendees) or BatchCreateAttendee (up to 100).
  2. Pre-create attendees and hand them out as invitees arrive.
  3. Retry with exponential backoff and jitter.
  4. Delete meetings you no longer need.
  5. Only then request a quota increase, for those quotas marked adjustable.

Note that some rates are fixed, so batching and design changes are often the only fix.

Take quiz
Which API creates a meeting and up to 10 attendees in a single call?
BatchCreateAttendee
CreateMediaCapturePipeline
CreateMeetingWithAttendees
UpdateAttendeeCapabilities
What is the right retry strategy for a 429 response?
Switch regions on every call
Delete the JoinToken and recreate it
Immediate retry in a tight loop
Exponential backoff with jitter

41. How does Chime SDK Messaging deliver messages in real time?

Clients open a WebSocket connection to the messaging endpoint and receive messages as they arrive. The connection is represented by a DefaultMessagingSession in the JavaScript library.

  1. Call GetMessagingSessionEndpoint to get the WebSocket endpoint.
  2. Build a MessagingSessionConfiguration with the user's AppInstanceUser ARN, a session ID, and the endpoint.
  3. Add an observer such as messagingSessionDidReceiveMessage.
  4. Call start().

Sending still uses the REST API (SendChannelMessage) with the ChimeBearer header. Messages are stored per channel according to their persistence setting, and you can also stream messaging data out to Kinesis or EventBridge for analytics and archiving.

The WebSocket only delivers what arrives while the client is connected. After a reconnect, or when a user opens a channel, fetch missed messages with ListChannelMessages. Pair live delivery with a history load so the screen is never missing anything.

Take quiz
Which transport do clients use to receive messages in real time?
A WebSocket connection
An FTP drop folder
A UDP broadcast
Polling over SMTP
Which API returns the endpoint for the messaging WebSocket?
SendChannelMessage
GetMessagingSessionEndpoint
GetMeeting
CreateChannelFlow

42. How do channel flows moderate messages?

A channel flow runs your AWS Lambda processors on messages before they are delivered to a channel. It is the hook for filtering, redaction, or enrichment.

You create a flow with CreateChannelFlow, listing up to three processors in execution order, each with a FallbackAction of CONTINUE or ABORT if the Lambda fails. Then you attach it to a channel with AssociateChannelFlow.

When a user sends a message, it is held pending. Each processor receives it, and when it finishes it calls ChannelFlowCallback to return the (possibly changed) message or to deny it. Only then is it delivered.

Typical uses are profanity filtering, redacting card numbers or personal data, and translating text.

Keep processors fast. The message stays pending while the Lambda functions run, so a slow processor delays delivery for everyone in the channel. Choose fallback actions deliberately: ABORT for compliance filters that must never be skipped, CONTINUE for optional enrichment.

Take quiz
Which API call returns a processed message from a channel flow Lambda?
SendChannelMessage
RedactChannelMessage
ChannelFlowCallback
CreateChannelBan
What does FallbackAction ABORT mean for a failing processor?
The message skips the flow and is delivered
The channel is deleted
The user is banned
The message is not delivered

43. What is the difference between public and private channels?

Channel privacy decides who can find and join a channel.

Public channel Private channel
Discoverable by users in the AppInstance. Visible only to members.
Users can add themselves. Membership is added by an admin or moderator.
Good for company-wide or topic rooms. Good for direct messages and restricted groups.

Separately, the mode setting (UNRESTRICTED or RESTRICTED) controls whether regular members can list other members. Channel moderators can also ban users or delete messages regardless of privacy.

Pick privacy first, then set the mode. For a support product, a customer's chat with an agent should be private and restricted, while an internal announcements room can be public and unrestricted. Admins and moderators can remove members from either type.

Take quiz
Who adds members to a private channel?
An admin or moderator
Any AppInstanceUser on their own
The Chime media service
The AWS account root user only
What does the channel mode setting control?
The media region
Whether regular members can list other channel members
Whether messages are encrypted
The maximum video resolution

44. How do SIP rules route calls to a SIP media application?

A SIP rule maps an incoming call trigger to a SIP media application. When a call matches, Chime invokes the target application's Lambda function.

A rule has a trigger type, a trigger value, and one or more targets:

  • ToPhoneNumber - the dialed E.164 number, for example a number you provisioned.
  • RequestUriHostname - the hostname on a Voice Connector, for calls arriving over SIP trunking.

Each rule lists target applications with a priority, so you can add a second region as failover.

flowchart TD
  A["Incoming call"] --> B{SIP rule match?}
  B -- ToPhoneNumber --> C["Dialed number matches rule"]
  B -- RequestUriHostname --> D["Voice Connector hostname matches rule"]
  C --> E["Target SIP media application"]
  D --> E
  E --> F["Chime invokes Lambda with call event"]
  B -- No match --> G["Call rejected"]

A trigger value can belong to only one rule, which keeps routing unambiguous.

Take quiz
Which trigger type matches a Voice Connector's hostname?
ToPhoneNumber
ExternalUserId
RequestUriHostname
MediaRegion
What does a SIP rule point to?
A meeting's MediaPlacement
A Kinesis Video Stream
A channel flow
One or more SIP media applications, each with a priority

45. How does a SIP media application control a call?

Control follows a request-response loop. Chime sends your Lambda an invocation event describing what just happened, and your Lambda answers with actions to perform next.

Events include NEW_INBOUND_CALL, RINGING, CALL_ANSWERED, ACTION_SUCCESSFUL, ACTION_FAILED, and HANGUP. Actions include Speak, PlayAudio, SpeakAndGetDigits, CallAndBridge, RecordAudio, and Hangup.

{
  "SchemaVersion": "1.0",
  "Actions": [
    {
      "Type": "Speak",
      "Parameters": {
        "Text": "Welcome. Please hold while we connect you.",
        "Engine": "neural",
        "LanguageCode": "en-US",
        "VoiceId": "Joanna"
      }
    }
  ]
}

After each action finishes, Chime invokes the Lambda again with ACTION_SUCCESSFUL or ACTION_FAILED, so your code works as a simple state machine. Always handle failures and HANGUP so calls end cleanly.

Chime also passes TransactionAttributes back to you on each invocation, so a multi-step menu can keep simple state, such as the digits entered so far, without an external store.

Take quiz
Which event signals that a previously requested action completed?
ACTION_SUCCESSFUL
RINGING
HANGUP
NEW_INBOUND_CALL
What does your Lambda return to a SIP media application invocation?
A signed S3 URL
A list of actions for Chime to perform
A new JoinToken
A channel membership ARN

46. When would you choose a Voice Connector over a SIP media application?

Choose a Voice Connector when you simply need to connect existing telephony to the phone network, and a SIP media application when you need code to decide what a call does.

Need Choose
Move an existing PBX or contact center to SIP trunking. Voice Connector
Stream call audio to Kinesis Video Streams. Voice Connector
Build an IVR, voicemail, or routing logic in code. SIP media application
Bridge a caller to an agent based on custom rules. SIP media application

They also combine well. A Voice Connector can carry calls from your PBX, and a SIP rule on its hostname can send some of them to an SMA for automated handling before they reach an agent.

Take quiz
Which service fits an existing PBX that only needs SIP trunking to the phone network?
Channel flow
Media insights pipeline
Voice Connector
SIP media application
Which option lets you build an IVR menu in code?
Voice Connector Group
Live connector pipeline
AppInstanceBot
SIP media application

47. How do you secure an Amazon Chime SDK application?

Security sits in three layers: who can call the APIs, who can join, and who can read the output.

  1. API access - give your backend role least-privilege IAM permissions for just the calls it needs, such as chime:CreateMeeting and chime:CreateAttendee. Never ship AWS credentials to clients.
  2. Joining - authenticate the user in your app before creating an attendee, treat JoinTokens as secrets, and use attendee capabilities to limit what each person can send.
  3. Data in motion - meeting signaling and media are encrypted in transit.
  4. Stored output - lock down S3 buckets used for recordings with a restrictive policy and KMS encryption.
  5. Network and audit - use interface VPC endpoints (AWS PrivateLink) where available and review API activity in CloudTrail.

For regulated data, confirm HIPAA eligibility and sign the AWS BAA before handling protected health information.

Take quiz
Where should AWS credentials for Chime SDK calls live?
On your backend with a least-privilege IAM role
In the JoinToken
Embedded in the mobile app bundle
In the MediaPlacement URLs
Which mechanism limits what an individual attendee can send in a meeting?
The MediaRegion
Attendee capabilities
The ExternalMeetingId
The AppInstance ARN

48. When would you choose the Chime SDK over an off-the-shelf meeting product?

Choose the Chime SDK when the call is part of your product and you need control over experience, data, and integration. Choose an off-the-shelf tool when people only need to meet and you do not want to maintain a UI.

Chime SDK fits when Off-the-shelf fits when
Video must be embedded in your own app and branding. A generic meeting link is enough.
You want per-attendee-minute cost that tracks usage. Per-seat licensing is acceptable and predictable.
You need AWS-native hooks: S3, EventBridge, Lambda, Transcribe. Built-in chat, whiteboards, and calendars matter more.
You have engineers to build and maintain the client. You do not.

The trade-off is effort: with the SDK you build roster, permissions, layout, and error handling yourself. If your use case is a standard internal meeting, that work rarely pays off.

Take quiz
Which scenario most clearly favors the Chime SDK?
Sharing slides over a generic meeting link
Replacing an internal weekly team call
Embedding branded video visits inside your own customer app
Running a quick one-off call with a vendor
What is the main cost of choosing the SDK over a packaged product?
You lose access to AWS services
You cannot record meetings
You must run your own media servers
Your team must build and maintain the user interface

49. How should existing Amazon Chime customers move off the Amazon Chime app?

The Amazon Chime service reached end of support on February 20, 2026, and customers with extensions ran until September 8, 2026. At this point, any remaining use means migrating, not planning to migrate.

  1. Inventory - list users, meeting rooms, chat rooms, bots, integrations, and any Business Calling numbers.
  2. Export or delete data - AWS asked customers to delete data they could not keep, and support can help.
  3. Pick a destination - an off-the-shelf meeting product, or build with the Chime SDK if you need a custom experience.
  4. Replace phone service - Business Calling stopped supporting SMS and calling after the cutoff. Voice Connector and SIP media applications in the SDK are a path for telephony.
  5. Update links and automation - calendar invites, chatbots, and anything pointing at Chime meetings.

Per AWS's help notice, Team account users were converted to free Basic users on September 8, and Enterprise LWA domains and users were removed, so check each account type's status.

Take quiz
Which AWS offering is a path for replacing Chime Business Calling telephony?
Chime SDK Voice Connector and SIP media applications
Amazon Chime Pro
Chime SDK Messaging channels
Media capture pipelines
What happened to Team account users on September 8, 2026, per the AWS notice?
Their data was copied to S3 automatically
They were converted to free Basic users
They were upgraded to Chime Pro
They were moved to the Chime SDK

50. How would you design a telehealth video visit app on the Chime SDK?

Start with the flow. Patients and clinicians sign in to your app. Your backend authorizes them, creates a meeting with attendees, and returns the join data. Media then flows directly between clients and Chime, while your backend handles side effects such as recording and audit.

flowchart LR
  P["Patient app"] --> API["API Gateway + Lambda"]
  D["Clinician app"] --> API
  API --> M["Chime SDK: CreateMeeting / CreateAttendee"]
  M --> V["Video visit"]
  V --> EB["EventBridge meeting events"]
  EB --> AU["Audit log + visit status"]
  V --> CP["Capture pipeline, if enabled"]
  CP --> S3["Encrypted S3 bucket"]
  V --> TR["Live captions via Transcribe Medical"]

Key design choices:

  1. Authorization - verify the appointment before creating an attendee, and expire the meeting after the visit.
  2. Roles - give the clinician SendReceive; restrict observers with Receive.
  3. Region - pick a media region near the patient.
  4. PHI handling - keep names and medical details out of ExternalUserId and ExternalMeetingId; use opaque IDs mapped in your database.
  5. Recording and captions - record only with consent, store in KMS-encrypted S3, and use Transcribe Medical for captions if needed.
  6. Compliance - the SDK is HIPAA eligible, but you need an AWS BAA and a compliant surrounding architecture.
  7. Readiness - add the meeting readiness checker to a waiting room so connectivity issues surface before the visit starts.
Take quiz
Which is the safest way to identify a patient in ExternalUserId?
The patient's date of birth
The patient's full name
An opaque ID that maps to the patient in your own database
The diagnosis code
Which service would provide medical-vocabulary live captions during a visit?
Amazon Polly
A SIP media application
Amazon Rekognition
Amazon Transcribe Medical through meeting transcription
«
»

Comments & Discussions