All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- [Demo] Show video WebRTC stats and attendeeId on video tile hover
- Update the clicking sound answer in FAQs
- Add github actions continuous integration workflow and deploy workflow
- Add simulcast uplink policy layer change notification methods and observer
- Add
getRemoteVideoSources
method andremoteVideoSourcesDidChange
observer - [Documentation] Add question to FAQ about android chrome bluetooth audio devices
- [Documentation] Updated HTTP to HTTPS in README URL links
- [Documentation] Improved documentation for running integration tests locally
- [Test] Updated browserstack URL formation to use HTTPS
- Upgraded eslint to understand modern TypeScript syntax, including
import type
- [Demo] change optional feature selection to be list of input box to allow combination
- [Documentation] Update README to replace deprecated
AudioCallEnded
withMeetingEnded
- [Documentation] Update few
VideoTileController
andVideoTile
APIs documentation - [Documentation] Added deprecation message and log for
enableWebAudio
API in DeviceController - Improve
DefaultEventController
to create less garbage
- Make the event controller optional in the AudioVideoController interface
- Handle undefined attendeeId when calling
realtimeSetAttendeeIdPresence
- Fix
DefaultModality
base check - [Test] Fix a typo in integ tests
- [Demo] Fix serverless deploy script to not print out logs
- [Test] Make sure to error out if failed to grab Sauce Lab sessions
- Fixed deploy github action with correct keys
- Remote video may switch transceivers/videoTiles on simulcast change or camera toggle
- Fix github actions deploy workflow
- Fix issue with calling closeCurrentTest twice when timeout waiting for an attendee in integ test
- [Demo] Add default SSE to meeting notifications queue in CF template
- Add meeting events
- Removed check for
iceGatheringState
to be complete for bypassing gathering ice candidate again
- Allow the build to complete in the absence of a Git checkout
- [Documentation] Update README to add information about
tileState.active
- Update PR template to ask demo testing question
- Reduced sessionId resolution to 32 bits and removed Long dependency
- Handle case where meeting or attendee response properties can accept null or undefined
- Add a Travis check to make sure version update
- Add metrics for Selenium initialization metrics for integration tests
- Create log stream before logging begins
- Make AWS SDK for Java camelCased meeting-attendee response compatible with Chime SDK for JavaScript
- Mark InvalidSequenceTokenExceptions as warning
- Add an optional parameter to the serverless demo deployment script to specify Chime endpoint, and deploy to a new devo stage that talks to gamma Chime endpoint for canary
- Add extended debugging for saucelab sessions
- Add data message throttle limits to documentation
- Add
audioSessionId
to join frame to always drop when reconnecting - Add audioSessionId to join frame to always drop when reconnecting
- Update test results to Sauce Labs before emitting CloudWatch metrics for integration tests
- Mark
AudioInternalServerError
andSignalingInternalServerError
as non-terminal errors - Replace
awesome-typescript-loader
withts-loader
- Alter the API signature for
Logger.debug
to accept strings, not just functions - Update meeting readiness checker demo app with new regions CPT, MXP, BOM and ICN
- Update meeting readiness checker demo app to create meeting after the checker starts
- Alter the versioning script to require less ritual
- Correct TypeScript build to generate correct artifacts in
build/
- Fall back to
null
device if there is any error while acquiring the audio device
- Make sure integration test returns FAILED if there is error
- [Test] Make sure to reset ready status between retries
- No video after connection failure
- Fix video track sometimes being removed and added on simulcast receive stream switch
- Enabled termination protection for serverless demo CloudFormation stack
- Simulcast optimizations
- Correct TypeScript build to generate correct artifacts in
build/
- Correct TypeScript configuration for demo app
- Add MeetingReadinessCheckerConfiguration to allow custom configuration for meeting readiness checker
- Update Travis config to improve PR build speed
- Disable configs in saucelab capabilities
- Use credentials sent via signaling connection JOIN_ACK to improve audio-video startup time.
- [Demo] Adjust demo css to prevent unecessary scrollbars on windows and stretching in video grid
- Update dependencies to TypeScript 4,
ts-loader
, and modern linting - [Demo] Update dependencies, too.
- Remove unnecessary startAudioPreview in meeting demo
- Fix video tile with incorrect bound attendee ID and external User ID
- Revert the "Create log stream before logging begins" commit
- Revert "Fix unbinding video tile bug" commit
- Revert "Fix issue with removeLocalVideoTile not removing video tile for remote attendees" commit
- Remove "./guides/docs.ts" and the composite setting from tsconfig.json
- Fix Maven installation script
- Fix SIP integration test
- Fixed v1 meeting bug related to bootstrap row class
- Fix meeting readiness checker integration test
- Add meeting readiness checker integ tests to travis config
- Add optional parameter
sourceId
to checkContentShareConnectivity API - Add getVideoInputQualitySettings to retrieve the current video settings
- Add documentation for DefaultActiveSpeakerPolicy constructor
- Use pip to install aws sam cli for deployment script
- Added meetings tags to serverless demo
- Update PR template to add question about protocol and API change
- Add demos/browser package-lock to git, update webpack and jquery versions
- Update integration-watchlist to include demos/browser with no exception for package.json
- Change error to warn for logging Cloudwatch errors
- Update README with use case to handle
realtimeSubscribeToVolumeIndicator
updates efficiently - Change error messaging for getUserMedia error
- Change demo video grid to CSS
- Update new known issues in FAQs and PTSN sample in README
- Fixed bug related to unbinding a video element
- Fix tone does not stop when calling MeetingReadinessChecker.checkAudioOutput multiple times
- Fixed demo css format issue from updating to bootstrap 4.5.1
- Fix a minor syntax in DefaultSessionStateController
- Change default encode resolution back to 960x540
- Add npm login and logout as part of publish script
- Add Meeting Readiness Checker APIs
- Change WebRTC semantics to Unified Plan by default for Chromium-based browsers
- Update video simulcast guide doc
- Update readme to include link to React components repo
- Fixed removeLocalVideoTile so that the video tile is removed correctly for the user and attendees
- Handle timing issue of receiving index during resubscribe
- Mitigate Brew Sam installation issue
- Remove set command in travis awscli installation script
- Add
--no-fail-on-empty-changeset
flag in deploy script to not fail for empty changeset
- Added auth-token based npm login and logout scripts for npm package publishing
- Update demo app with new regions CPT, MXP, BOM and ICN
- Update the dependency version for the singlejs demo
- Remove
device
demo from demos
- Fix and modify simulcast uplink policy to fix freezing and reduce switches
- Exclude self content share video stream index
- Add comments for VideoTileState class and instructions in FAQ document
- Add reference to CreateMeetingWithAttendees in FAQ
- Bump elliptic from 6.5.2 to 6.5.3 in /demos/device
- Log info when stop pinging due to Websocket closed
- Change the demo app to show content share video back to sharer
- Change bootstrap version for meeting demo to 4.5.0
- Change content share video check to use attendee name instead of video element index
- Ensure all simulcast stream resolution are 16-aligned to avoid pixel3(XL) encoder issue
- Fix race condition in Chromium browsers when consecutive audio bind operations take place
- Fix invalid constraints and disable Unified Plan in safari 12.0
- Fix isSupported API in DefaultBrowserBehavior return true for Firefox on Android
- Add content share video test integration test
- Add function to query outbound WebRTC video stats in browser demo
- Add error message for TaskFailed errors
- Return the screen capture media stream for startContentShareFromScreenCapture
- Fix exception thrown in Safari when multiple startVideoPreviewForVideoInput() are made
- Use POST instead of GET for TURN control endpoint
- Fix demo app responsiveness issue
- Fix content share test video in Firefox
- Marking
TURNMeetingEnded
error as terminal to prevent session from reconnecting
- Add device name for mobile integration tests
- Added new FAQs and updated Readme to include new demos for PSTN calling and live events
- Add test report URL for mobile integration tests
- Add Firefox to Travis integration tests
- Add README for integration tests
- Add log to list the set of constraints supported by the browser
- Add device change observer events when the current audio/video input stream ended
- Fix title for FAQ guide
- Change DefaultDeviceController video MediaTrackConstraint parameters to be "ideal" explicitly
- Use a single instance of AudioContext
- Use the SDK default sample rate 48,000 Hz for an AudioBuffer object if the AudioContext sample rate doesn't work
- Fix typo in VideoStreamDescription when stream is disabled by WebRTC
- Fix issue where audio input is not able to switch in Firefox
- Fix handling WebRTC Track event with no associated streams
- Increase log interval to avoid multiple Cloudwatch requests at once
- Fix incorrect log level for terminal error code
- Catch exceptions taking place when putLogEvents fails
- Fix content share test video in Firefox
- Add meeting demo parameter for broadcasting user
- Add simulcast guide link in README and Quality Bandwidth Connectivity doc
- Add a MediaDevices proxy to support the devicechange event in some Android Chrome browsers
- Remove browser demo optional feature HTMLSelectElement multiple attribute
- Fix CloudWatch metrics for Linux and Android integration tests
- Fix create meeting request for audio and video e2e integration tests
- Fix multiple issues with integration tests
- Fix uuidv4 import
- Fix missing uuidv4 import in integration test
- Disable w3c check for Chrome Android webdriver integration tests
- Fix setSinkId() from throwing DOMException in Chromium browsers
- Fixing the ability to choose default input in browsers when default changes
- Add position in frame to attendee updates
- Add stale-issue bot configuration
- Add simulcast support and provides new uplink downlink policies
- Add MultiLogger to support logging to multiple Logger instances
- Add resize listener on HTMLVideoElement in demo
- Add simulcast integration tests
- Add unit tests for source files previously excluded in test coverage
- Use GET instead of POST to obtain TURN credentials
- Move integration tests to use meeting V2 demo
- Update to add ability to run integration tests in mobile devices
- Update cloudwatch log stream ID to have attendee_id
- Fix Firefox 68 codec preference issues
- Fix uplink max bitrate value calculation
- Bump websocket-extensions from 0.1.3 to 0.1.4
- Update SignalingProtocol.proto and use SDK version in JoinFrame
- Fix duplicate tiles and error logs due to external id race condition
- Suppress presence leave when attendee has already joined from another device (#427)
- Add an integration tests to check remote video when reconnecting
- Add device controller tests
- Add option to run integration tests in Sauce Labs headless
- Switch demo DDB table to on demand
- Restart the session if an attendee is not present during initial connection
- Handle user revoking video input permission
- Fix FinishGatheringICECandidatesTask when there are no turn credentials
- Fix log line to print device constraints
- Fix build line to take out duplicate npm install
- Fix video audio preview for mobile devices
- Fix black remote video tiles on reconnect
- Fix LED light issue
- Fix typo in MeetingNotificaionsEvent present in template.yaml
- Add connectionDidBecomeGood callback in AudioVideoObserver
- Add an integration test for Data Message
- Add the device selection to the "Starting a session" example
- Added Bandwidth and connectivity guide
- Add 'dropped' boolean attribute to realtime interface to indicate attendee drop
- Support styling and Markdown for meeting demo chat
- Update signaling protocol
- Fix Firefox version 76 missing/grey tiles
- Fix data message integration tests
- Fix several integration test name
- Mark 403 (Forbidden) for fetching turn credentials as terminal error and avoid retrying.
- Fix Android Pixel3 Chrome Video artifacts on far sites
- Don't throw the "cannot replace" message if the device controller is not bound to any audio-video controller
- Disable audio capture for Electron Screen Capture
- Allow option to skip device selection page in demo app.
- Add demo hook for debugging media connections
- Add github link to getNearestMediaRegion method in README.md
- Add data message APIs
- Allow audio for screen capture in Chrome and Edge browsers
- Decouple the get call request from the UI
- Use getSettings if possible on MediaStream and move some info logs to debug level
- Use innerText instead of innerHTML
- Fix minor coding styles for data message APIs
- Add bandwidth policy to meeting session configuration to allow overriding default policies
- Add more content sharing integration tests
- Add gifs to read me file to show latest npm version and downloads
- Add method to get the nearest media region
- Display meeting and attendee IDs in the demo
- Simplify meeting demos to leverage externalUserId in roster
- Update PR template to add testing information
- Support a mobile-friendly demo
- Increase the size of content share video tile for the demo app in small screen
- Update reconnection parameters in ConnectionHealthPolicyConfiguration
- Remove unused VideoAdaptiveSubscribePolicy
- Fix serverless deploy script to work on Windows
- Clean up and fix serverless package bundling
- Do not mirror local video for rear-facing camera
- Fix sip url for meeting demo
- Fix local video freeze in Safari after toggling off and on
- Fix meeting demo content share turning off on attendee join
- Disable audio sample constraints when not using WebAudio
- Reset Sauce Lab session to make sure clean state
- Fix integration test emit metrics
- Fix the CloudWatch log handler
- Bump package-lock.json jquery to 3.5.0 and yargs-parser to 18.1.3
- Expose an API for GetStats from RTCPeerConnection
- Add BrowserBehavior test for supported video codecs
- Expose ExternalUserID on videoTileDidUpdate
- Use getByteTimeDomainData to support iOS Safari in meeting demo
- Update README to incorporate documentation feedback
- Fix broken link in GitHub main page README
- Enable the use of send-side bandwidth estimation
- Add guide for content sharing
- Display meeting id in the demo app
- Add additional callback in AudioVideoObserver to indicate video downlink pressure
- Add meeting demo parameter for recording user
- Add a script demo to bundle Chime SDK into a single JS file
- Add device demo
- Add base infrastucture for demo app in react
- Add pricing link in README
- Add an overview of API methods
- Add IoT integration to device demo
- Add option to run integration tests locally
- Add the use case guide
- Upgrade dependency aws-iot-device-sdk version
- Add externalUserId to the tile properties
- Add post publish script
- Add feature flag to enable WebRTC Unified Plan for Chromium-based browsers
- Add link to Amazon Chime SDK Security in README
- Prevent prebuild from increase patch number when publishing to NPM
- Change the cloudwatch log message format
- Only run integration tests if files on watchlist were modified
- Temporarily only run test in Chrome for Travis integration tests
- Allow content share frame rate to be configurable
- Move demo guides to demo folders
- Fix the default video resolution comment in DeviceController
- Remove unimplemented callbacks remoteDidMuteAudio and remoteDidUnmuteAudio on AudioVideoObserver
- Remove the minimal demo app
- Remove incomplete demo and component directories
- Fix retry logic for integration test
- Update typedocs to 0.16 and re-generate doc files
- Fix issue in Travis script that prevents integration tests from running
- Fix markdown formatting with backticks in API overview
- Fix an issue that a dev dependnecy @types/dom-mediacapture-record is not getting installed
- Fix typo in README.md file
- Ensure that attendee presence leave and join are ordered correctly
- Fix video element issue in Iphone
- Fix post publish script to also include meeting v1
- Use build:publish for publish script
- Fix Travis deploy failure
- Add BITRATES in SdkSignalFrame Type and regenerate corresponding JS and TS protocol files.
- Add new ContentShareController APIs
- Add Getting Started guide
- Add doc guide generator
- Add basic component library setup
- Add injectable session URL rewrite function to support proxies
- Add POSTLogger for meeting sessions
- Integrate POSTLogger into the demo app
- Add content share integration test
- Enable POSTLogger for the serverless demo app
- Add max-content-share query parameter to allow 2 content share at the same time
- Add an integration test that checks only 2 content share are allowed
- Add observer event for content sharing
- Stop content share if the media stream end
- Trap video sending SSRC change in two consecutive negotiation
- Do not bypass ice gathering based on sdp connection attributes for Safari on iOS
- Show SDK version in the demo meeting app
- Automatically patch a version for each commit
- Allow to specify manual version in publish script
- Automatically deploy meetingV2 to serverless demo
- Expose external user ID in places where attendee ID is present in RealtimeController
- Improve error output in the deploy script
- Do not reconnect if the session has not received monitoring data for a while
- Skip tests when merging to master
- Bump acorn dependency in package-lock.json to 6.4.1 to address CVE-2020-7598
- Use max-bundle RTCRtpPolicy for Firefox
- Throw error in Travis if integration test failed
- Remove line endings in the keyword when searching for connection attributes in SDP
- Fix pause and resume video functionality
- Fix DefaultTransceiverController async function signature
- Make DefaultBrowserBehavior implement BrowserBehavior interface
- Fix publish script to use npm version
- Add stage to saucelabs session name for integration tests
- Fix audio-video session stop to return Left status code
- Fix crash in demo app when click on screen share view
- Fix integration test completion time writer
- Fix the ping pong reconnection issue
- Fix example code in the getting started guide
- Fix browser versions for integration tests
- Fix present npm audit issues and automatically fix during build when possible
- Add browser support for Safari and Opera
- Add CHANGELOG.md
- Allow for pausing screen sharing
- Add GitHub page with API documentation
- Add an alternative to WebAudio device controller and add a flag to disable the use of WebAudio
- Add option to confirm meeting end
- Implement keyframe request handling
- Add deploy step to deploy latest sdk changes
- Add a ConnectionHealthPolicyConfiguration property in the meeting session configuration
- Add support additional media regions
- Add video help desk tutorial
- Enable integration tests for travis builds
- Add ping/pong to screen sharing start code path to ensure socket is viable
- Enable integration tests for safari 12
- Write timestamp for latest canary completion time
- Enforce SDP to have candidates for FinishGatheringICECandidateTask to resolve
- Add event listeners on peer connection to log state change
- Add client metrics for Safari
- Add SIP integration test
- Block screensharing start if the browser is Safari
- Expose extra bitrate estimation metrics
- Improve reconnect callback fidelity
- Update copyright and fix copyright check
- Improve logging for screen sharing
- Add source node to audio graph for silent devices
- Move screen view data connection open and close
- Improve handling of closed signaling connections
- Update README.md to clarify when to use npm install
- Add app quit and meeting leave integration tests and retry for all other tests
- Limit WebSocket reconnect attempts
- Refactor default screen sharing session start to fix state corruption bug
- Update Travis script to separate unit and integration tests into different jobs.
- Validate session Id and disable extendedDebugging flag for SauceLabs
- Fix infinite loop when retrying in audio and video integ tests
- Make sure both participants in audio and video tests reach finish state before retrying
- Trigger videoSendBandwidthDidChange and videoReceiveBandwidthDidChange for Safari
- Do not disconnect video element with different srcObj when destroying video tile
- Make meeting V2 the default demo meeting app
- Remove SDP class withPlanBSimulcast method
- Remove noSignalStatusReceived from ReconnectionHealthPolicy and remove SignalStrengthBarsConnectionHealthPolicy.
- Add cleanup code for failed open screen sharing
- Handle error in screen viewing send echo response
- Fix several error handling issues
- Fix ReconnectingPromisedWebSocket timeout
- Ensure to null webSocket reference on abnormal close
- Use async scheduler for video tile disconnect
- Set device to null when active device unplugged
- Fix mobile safari detection
- Fix chooseVideoInputDevice with null
- Release chosen video stream on stopVideoPreview
- Fix Safari ICE failure issue by set bundle policy to max-bundle
- Fix to ignore error on screen viewing courtesy stop
- Fix meeting leave integration tests
- Reject an unresolved promise when canceling CreateSDPTask
- Fix Firefox keyframing
- Fix screen share integration test
- Fix null or empty device handling
- Fix demo screen share button states
- Fix bug that caused screenview to stay off when screenshare was toggled
- Only set attendee active only if still in roster
- Fix preview not switching issue and stop track during disconnect
- Reset connectionHealthData before (re)connection
- Fix a bug that prevented device change from triggering observers
- Fix serverless demo deployment scripts
- Fix integration test timeout and test sync between runs browsers
- Fix Safari crashes when remote video tiles are added or toggled
- Fix unhandled Promise rejection in DefaultScreenSharingSession#start
- Fix canary deployment script
- Fix SIP call integration test
- Fix Travis deployment script
- Release first version of library