The topics in the following sections provide answers to frequently asked questions about the Amazon Chime SDK. Expand the topics to learn more.
Meeting FAQs
Topics
Attendees
Only attendees with a required join token. When you use the CreateAttendee, BatchCreateAttendee, or CreateMeetingWithAttendees APIs, you create join tokens that you pass to clients and enable them to join meetings. The tokens generated by those APIs are authenticated by the service, and that grants permission to join the meeting.
Note
The Amazon Chime SDK doesn’t create meeting IDs or join URLs for meeting attendees.
Attendee quotas are per meeting. The Amazon Chime SDK supports 250 attendees in a standard session,
and 100 attendees in a high-definition session. If you need more attendees, consider using
media replication. That allows up to 10,000 attendees after requesting a limit increase
through the AWS Support Center
console
No. The Amazon Chime SDK only charges you when attendees join a meeting. Also, meetings automatically end 5 minutes after the last active attendee drops or leaves the meeting.
AttendeeLeft
is triggered when an attendee decides to leave a meeting.
AttendeeDropped
is triggered when an attendee is disconnected from a meeting,
usually because of network issues. AttendeeDeleted
is triggered when the DeleteAttendee API is called.
AttendeeLeft
is also triggered when:
-
When the
DeleteAttendee
API is called from the server-side meeting handler, along withAttendeeDeleted
. -
Your client calls the
meetingSession.audioVideo.Stop
API from the client library for JavaScript, the corresponding APIs in the iOS and Android SDKs, or when a meeting ends.
For more information about meeting events, refer to Understanding Amazon Chime SDK meeting lifecycle events, earlier in this guide.
Meetings end automatically when:
-
The meeting time exceeds 24 hours.
-
The meeting is a replica meeting and the primary meeting ends.
-
In a non-replica meeting, no attendees connect for 5 continuous minutes.
By default, the Amazon Chime SDK
client library for JavaScriptMeetingSessionConfiguration
meeting event. Also, the Amazon Chime SDK sends an
AttendeeDropped
event if the attendee is dropped from the meeting and never
reconnects to the session.
For more information about meeting events, see Monitoring, later in this FAQ.
Security and encryption
Yes. All media is encrypted in-transit and flows through the service. Media is encrypted between the clients and the specific media instance hosting the meeting. The media instance decrypts audio for mixing, then encrypts the mixed audio for transmission to the client. If media is being recorded via media capture, media is encrypted between the media instance and the capture instance.
Audio/video
General
No. However, video streams may be paused when bandwidth is constrained.
You can programmatically control the video streams that each client subscribes to. This
allows you to implement logic such as “presenter always visible” or “meeting host always
visible” in a paginated display. If a client is resource constrained, you can turn off the
lowest priority streams. For more information, refer to User Guide for Priority-based Downlink Policy
Codecs and simulcast
- Video codecs
-
H.264, VP8, VP9, and AV1.
- Audio codecs
-
Opus, 16 kHz, 48 kHz, and 48 kHz stereo.
We support video simulcast with VP8 and H.264, and scalable video encoding with VP9.
The Amazon Chime SDK client library
for JavaScript
Echo reduction
No. Echo Reduction is enabled at the meeting level for all attendees when you call the
CreateMeeting or CreateMeetingWithAttendees APIs. For more information about using
echo reduction, refer to Adding Echo Reduction to your application
Noise suppression
We use Amazon Voice Focus, a noise suppression technology built by AWS. To learn more about Amazon Voice Focus, refer to Understanding VoiceFocus for the Amazon Chime SDK PTSN audio service, and Configuring for Amazon Voice Focus, earlier in this guide.
Depending on how you code your solution, meeting attendees usually turn noise
suppression on or off. The Amazon Chime SDK client libraries expose programmatic controls for noise
suppression, and you choose how to implement them. For example, you can provide a toggle
button, or a setting at the app level for controlling noise suppression. For more
information, refer to Amazon Voice Focus
Background blur
We have v1 and v2 algorithms. The v1 algorithm has four options based on CPU
utilizations (10% to 40%). The v2 algorithm effectively takes an amount of blur to be high,
medium or low. The JavaScript browser based demo
Screen sharing
For a JavaScript client, the browser provides the screen frames for the client library. The resolution is the native resolution of the shared screen, capped by the maximum resolution supported by the meeting. You can set frame rates, but remember that higher frame rates increase CPU loads.
You can also choose a codec for sharing. In standard definition meeting, resolution is 1080p and encoded at 1.5 Mbps. In high definition meetings, resolution is 4K encoded at 2.5 Mbps.
Mobile device browsers don’t support screen capture or screen share. You need to use the
iOS
Live transcription
You use Amazon Transcribe to redact PII. When you use the StartMeetingTranscription API to transcribe a meeting, you can specify the content redaction type and the different PII entities to redact.
Note
Due to the predictive nature of machine learning, Amazon Transcribe may not identify and remove all instances of sensitive data, and it may not comply with medical privacy laws, such as the U.S. Health Insurance Portability and Accountability Act of 1996 (HIPAA). For more information, refer to Redacting or identifying personally identifiable information, in the Amazon Transcribe Developer Guide.
Yes. If you subscribe to transcribeEvent
, every client receives that event,
and you can display it in your client to end users. For more information, refer to Understanding Amazon Chime SDK live transcription
events, earlier in this
guide.
The following example shows one way to subscribe to transcribeEvent
.
useEffect(() => {
if (audioVideo) {
audioVideo.transcriptionController?.subscribeToTranscriptEvent((transcriptEvent) => {
setTranscripts(transcriptEvent);
});
}
}, [audioVideo]);
For more information about using transcribeEvent
, refer to Understanding Amazon Chime SDK live transcription
events, earlier in this
guide.
You use Amazon Transcribe to create custom vocabularies and vocabulary filters, and when
you call the StartMeetingTranscription API, you provide
VocabularyFilterName
and VocabularyFilterMethod
values to mask
unwanted words. For more information, refer to Custom vocabularies and Creating a
vocabulary filter in the Amazon Transcribe Developer
Guide.
For real-time live transcription, Amazon Transcribe supports:
-
Chinese Simplified (zh-CN)
-
English (Australian (en-AU)
-
British (en-GB)
-
US (en-US))
-
French (France(fr-FR) and Canadian (fr-CA))
-
German (de-DE)
-
Hindi (hi-IN)
-
Italian (it-IT)
-
Japanese (jp-JP)
-
Korean (ko-KR)
-
Portuguese (Brazilian (pt-BR)
-
Spanish (US (es-US))
-
Thai (th-TH)
For more information about the languages available for transcription in real time or batch, refer to Supported languages and language-specific features, in the Amazon Transcribe Developer Guide.
Service quotas
Yes. Service quotas are applied per API endpoint. Switching to a different API endpoint applies the default limits.
Namespace migration
Refer to the following topics in this guide:
Yes. To use the events, you must migrate from the chime
namespace to the
chimesdk
namespace. For more information, refer to the following topics in this
guide:
Monitoring
We send meeting and attendee events via Amazon EventBridge, Amazon SNS, or Amazon SQS. The events contain information such as meeting start and stop times, and attendee join, drop, and leave actions. For more information about meeting events and how to use them, refer to the following topics:
-
Understanding Amazon Chime SDK event notifications, earlier in this guide.
-
The Server-side logging and monitoring of Amazon Chime SDK events
blog post. -
The Monitoring and troubleshooting with Amazon Chime SDK meeting events
blog post. -
Meeting Events
on GitHub.
The metrics include AttendeeAuthorizationSuccess
,
AttendeeAuthorizationErrors
, and AttendeeAudioDrops
. To learn more
about the metrics, refer to Understanding Amazon CloudWatch metrics for Amazon Chime SDK meetings, earlier in this guide.
The Amazon Chime SDK generates meeting events based on different states of the components in your client application, such as audio, video, screen sharing, or attendee activities. You can write those events to CloudWatch logs, then build a dashboard on those logs. You can include different events, error messages, and status codes to help gain insights from the data.
The Amazon Chime SDK also integrates with Amazon EventBridge, Amazon SQS, and Amazon SNS for tracking server-side events such as requests to create or delete meetings, attendees, or media pipelines. You can configure rules to filter for events you are interested in and write the events to CloudWatch logs.
To learn more about meeting events and using them to create dashboards, refer to:
-
Meeting Events
on GitHub. -
Understanding Amazon Chime SDK meeting lifecycle events, earlier in this guide.
-
Understanding Amazon CloudWatch metrics for Amazon Chime SDK meetings, earlier in this guide.
-
Understanding Amazon Chime SDK event notifications, earlier in this guide.
To try it, follow the instructions in these blog posts:
Both ways of ending a meeting trigger the MeetingFailed
event. If you don’t
have a Cloud Trail or EventBridge entry for the DeleteMeeting API, you can assume that the meeting ended
automatically.
Logging
Run the following command and flags: chrome —enable-logging
—vmodule=*/webrtc/*=1
. This turns on IFO
and VERBOSE
logging
for WebRTC. The resulting log is named chrome_debug.log
and saved in the Chrome
user data directory.
Follow these steps:
-
In Safari, select Settings.
-
Choose Advanced options, then choose Show features for web developers.
The Develop menu appears in the browser.
-
On the Develop menu, choose Show JavaScript Console.
-
In the JavaScript console, choose Settings, then enable WebRTC logging. You can choose basic or verbose logging as needed.
Error messages
Do the following:
-
Ensure that egress for UDP port 3478 on IP range 99.77.128.0/18 is enabled. For more information, refer to Configuring your network for Amazon Chime SDK meetings, earlier in this guide.
-
Ensure that an anti-virus browser extension isn't preventing resources from loading. UDP 3478 is for TURN and needs to be unblocked on the end user side, either on local computer firewalls or on the corporate network firewall.
-
Connection retry falls back to TLS over port 443, so ensure that the domain or subnet are not blocked.
This error typically occurs when the service can’t resolve a media pipeline ARN. Ensure
the ARN belongs to a media pipeline and not to a meeting. MediaPipelineArn
is
part of the CreateMediaCapturePipeline API response.
This error is raised when the same attendee joins from two devices. The error is returned
in the meetingErrorMessage
attribute of a meetingFailed
event. To
avoid this, ensure that each attendee has a unique ExternalUserId
, and make sure
that you do not use the same attendee response from the CreateAttendee, BatchCreateAttendee, or CreateMeetingWithAttendees APIs in two or more meetings
simultaneously.
You're calling a deprecated Amazon Chime API. To solve the problem, migrate to the Amazon Chime SDK namespace. For more information, refer to the following topics earlier in this guide:
You're calling a deprecated Amazon Chime API. To solve the problem, migrate to the Amazon Chime SDK namespace. For more information, refer to the following topics earlier in this guide:
The client request token is a unique identifier that makes API requests idempotent. This error occurs when the token is associated with an inactive media pipeline. To fix the issue, generate a new unique token and send it with the API request.
Media pipeline FAQs
Media capture uses the MP4 format. This includes 5 second segments and combined recording and composited files.
To delete media capture attendees, you can end the pipeline or call the DeleteMediaCapturePipeline API.
Media capture pipelines record directly into your Amazon S3 bucket. Media capture doesn’t put any bandwidth or connectivity requirements on clients.
To choose a Region for creating media captures, first choose an API endpoint from the available meeting control plane Regions. Next, create the meeting and media capture pipeline in that Region. Media capture can write to an Amazon S3 bucket in your account in any Amazon Chime SDK media Region. For more information about the available Regions and endpoints, the media pipeline control plane, and media Regions, refer to Available AWS Regions for the Amazon Chime SDK earlier in this guide, and Amazon Chime SDK endpoints and quotas in the AWS Reference guide.
No. A pipeline only captures the first 25 video streams.
You can create a mechanism to call the DeleteMediaCapturePipeline API after a given number of minutes. For example, you can create a step function that starts when media capture begins and has a predetermined wait time.
You can call the DeleteMediaCapturePipeline API to end the recordings, or you can call the DeleteMeeting API when the meeting is scheduled to end. During a meeting, if the media capture attendee is the only attendee left, the meeting automatically ends after 5 minutes.
PSTN audio FAQs
No. You cannot route a non-US number to a Voice Connector by using PSTN audio.
Yes. First call the Hangup action for the leg connected to the meeting. That disconnects the attendee from the meeting without terminating the inbound call. Then call the JoinChimeMeeting action to join the attendees to the new meeting.