Ideas2IT rewards key players with 1/3rd of the Company in New Initiative.  Read More >
Back to Blogs

Key Features of Amazon Chime Video Conferencing

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. It is a low-cost cloud solution for adding secure and scalable video conferencing functionalities to your application. Additionally, as it is Health Insurance Portability and Accountability Act (HIPAA) compliant, it can be used in professional healthcare applications as well.The Amazon Chime SDK offers a straightforward solution for setting up real-time communication components within the web or mobile application. The recent COVID-19 pandemic has resulted in a rise in the demand of video conferencing solutions. Video conferencing has now become a preferred method of communication for many businesses as well as customers. Setting up a 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 application and get started.

  • AWS Chime SDK for Javascript
  • AWS Chime SDK for iOS
  • AWS Chime SDK for Android

Architecture of client application

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"

}

]

}

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 audioVideo.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 startedThat’s all!Your application with secure video conferencing capabilities is ready to launch! Contact Ideas2IT – The Best Custom Software Development Company today to get more details!

Ideas2IT Team

Connect with Us

We'd love to brainstorm your priority tech initiatives and contribute to the best outcomes.