Amazon Chime is a communications service that lets users meet, chat, and place business calls inside and outside the organization using a single application. Developers can use the communications infrastructure and services that power Amazon Chime to add audio calling, video calling, and screen sharing capabilities directly to their applications using the Amazon Chime SDK.
Amazon Chime SDK offers several key benefits:
- It is a low-cost cloud solution for adding secure and scalable videoconferencing functionalities adding secure and scalable video conferencing functionalities to your application.
- Additionally, it is Health Insurance Portability and Accountability Act (HIPAA) compliant, making it suitable for professional healthcare applications requiring secure communications and compliance with regulatory standards.
What are the key benefits of using Amazon Chime SDK for video conferencing?
The Importance of Real-Time Communication
The Amazon Chime SDK offers a straightforward solution for setting up real-time communication components within a web or mobile application. The recent COVID-19 pandemic has resulted in a rise in the demand for video conferencing solutions. Video conferencing has now become a preferred method of communication for many businesses as well as customers. Setting up video conferencing functionality from scratch in a short time span is nearly impossible. That is why, solutions like Amazon Chime SDK, which offer plug-and-play solutions for adding real-time communication components, have been gaining more and more prominence.
Key Features of Amazon Chime SDK
- A HIPAA-compliant service
- Clubbed with low-cost cloud services
- Default capability of a maximum of 250 Concurrent meetings (this number can be increased if required)
- The capacity of up to 250 audio participants and 16 video participants in each meeting
- Screen-sharing and file-sharing capabilities
- Desktop / Mobile version available
- AES 256-bit encryption
- More secure compared to other services
- Admin control over Chime user accounts through AWS identity & IAM
- Extensive third-party interoperability
- Easy integration with Slack.
Components of AWS Chime SDK
- AWS SDK Chime API - Used for building the server side of the application
- Amazon Chime Media Services - Available in a large number of AWS regions to provide audio, video and signaling services to establish peer-to-peer connections
- Amazon Chime SDK - Used to build the Client-side of the application
Adding real-time video conferencing functionalities using Amazon Chime SDK
The process of adding video and audio calling capabilities is extremely simple with Amazon Chime. Integrate the below-mentioned 3 libraries in your web and mobile applications and get started
- AWS Chime SDK for Javascript
- AWS Chime SDK for iOS
- AWS Chime SDK for Android
Architecture of client application
AWS SDK - Chime API (Server side) : CreateMeeting
Sample Request
{
"clientRequestToken": "crt",
"externalMeetingId": "em1",
"meetingHostId": "mh1",
"mediaRegion": "us-east-2",
"tags": [
{
"key": "K1",
"value": "V1"
}
]
}
Sample Response
{
"externalMeetingId": "em1",
"mediaRegion": "us-east-2",
"meetingId": "c5536c4f-6215-4ca7-84dd-bf3ee9f5b04f",
"mediaPlacement": {
"audioFallbackUrl": "wss://haxrp.m2.ue2.app.chime.aws:443/calls/c5536c4f-6215-4ca7-84dd-bf3ee9f5b04f",
"audioHostUrl": "22cd202955abdc76474d2f113755c6aa.k.m2.ue2.app.chime.aws:3478",
"screenDataUrl": "wss://bitpw.m2.ue2.app.chime.aws:443/v2/screen/c5536c4f-6215-4ca7-84dd-bf3ee9f5b04f",
"screenSharingUrl": "wss://bitpw.m2.ue2.app.chime.aws:443/v2/screen/c5536c4f-6215-4ca7-84dd-bf3ee9f5b04f",
"screenViewingUrl": "wss://bitpw.m2.ue2.app.chime.aws:443/ws/connect?passcode=null&viewer_uuid=null&X-BitHub-Call-Id=c5536c4f-6215-4ca7-84dd-bf3ee9f5b04f",
"signalingUrl": "wss://signal.m2.ue2.app.chime.aws/control/c5536c4f-6215-4ca7-84dd-bf3ee9f5b04f",
"turnControlUrl": "https://ccp.cp.ue1.app.chime.aws/v2/turn_sessions"
}
}
AWS SDK - Chime API(s) (Server side): CreateAttendee / BatchCreateAttendee
CreateAttendee API and BatchCreateAttendee API are used to create and add attendees to a specific meeting. CreateAttendee API can create 1 attendee per request, while BatchCreateAttendee API can create up to 100 attendees per request for an Amazon chime SDK meeting.
Sample Request
{
"Attendees": [
{
"ExternalUserId": "ExUser1",
"Tags": [
{
"Key": "K1",
"Value": "V1"
}
]
}
]
}
Sample Response
{
"Attendees": [
{
"AttendeeId": "attendeeId1",
"ExternalUserId": "externalUserId1",
"JoinToken": "joinToken1"
}
],
"Errors": [
{
"ErrorCode": "ERRCD1",
"ErrorMessage": "ErrorMessage1",
"ExternalUserId": "ExternalUserId1"
}
]
}
Code Documentation reference
Creating Meeting & Messaging Session
const logger = new ConsoleLogger('MyLogger', LogLevel.INFO);
const deviceController = new DefaultDeviceController(logger);
// You need responses from server-side Chime API. See below for details.
const meetingInfo = /* The response from the CreateMeeting API action */;
const attendeeinfo = /* The response from the CreateAttendee or BatchCreateAttendee API action */;
const configuration = new MeetingSessionConfiguration(meetingInfo, attendeeinfo);
// you will use this meetingSession object for media accesses.
const meetingSession = new DefaultMeetingSession(
configuration,
logger,
deviceController
);
const messagingSession = new DefaultMessagingSession(configuration, logger);
Select I/O Device
Audio Input Device
const audioVideo = this.meetingSession.audioVideo; // audioVideo : AudioVideoFacade
const audioInputDeviceInfo = /* An array item from audioVideo.listAudioInputDevices */;
await audioVideo.chooseAudioInputDevice(audioInputDeviceInfo.deviceId);
const audioOutputDeviceInfo = /* An array item from audioVideo.listAudioOutputDevices */;
await audioVideo.chooseAudioOutputDevice(audioOutputDeviceInfo.deviceId);
Video Input Device
const videoInputDeviceInfo = /* An array item from audioVideo.listVideoInputDevices */;
await audio Video.chooseVideoInputDevice(videoInputDeviceInfo.deviceId);
// You can pass null to choose none. Video capture will be stopped.
await audioVideo.chooseVideoInputDevice(null);
Start a meeting session
const audioElement = /* HTMLAudioElement object, e.g. document.getElementById('audio-element-id') */;
audioVideo.bindAudioElement(audioElement);
const observer = {
audioVideoDidStart: () => {
console.log('Started');
},
audioVideoDidStop: sessionStatus => {
// See the "Stopping a session" section for details.
console.log('Stopped with a session status code: ', sessionStatus.statusCode());
}
};
audioVideo.addObserver(observer);
audioVideo.start(); // Audio streaming started That’s all! Your application with secure video conferencing capabilities is ready to launch!
Achieve Scalable Communication with Amazon Chime SDK - Consult Ideas2IT Experts!
Throughout this blog, we've explored the strengths of the Amazon Chime SDK and how it empowers developers to build seamless, integrated video conferencing experiences. From setting up the SDK and integrating its features to ensuring a smooth user experience, we've covered the essential steps to harness its full potential. By leveraging Amazon Chime SDK, you can create a versatile and reliable video conferencing solution that meets your organization’s requirements and adapts to future growth.
Ready to transform your video communication capabilities? Check out our Application development services capabilities to learn how our expertise in building customized video conferencing solutions with Amazon Chime SDK can help you achieve your goals and elevate your collaboration efforts.
According to a study published by gigaom, Eighty-seven percent of remote workers experience a stronger sense of connection to their team and workflow through the use of video conferencing.