UNPKG

44.1 kBMarkdownView Raw
1# Changelog
2
3All notable changes to this project will be documented in this file.
4
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
8## [2.15.0] - 2021-08-04
9
10### Added
11
12- Supports integration with Amazon Transcribe and Amazon Transcribe Medical for live transcription. The Amazon Chime Service uses its active talker algorithm to select the top two active talkers, and sends their audio to Amazon Transcribe (or Amazon Transcribe Medical) in your AWS account. User-attributed transcriptions are then sent directly to every meeting attendee via data messages. Use transcriptions to overlay subtitles, build a transcript, or perform real-time content analysis. For more information, visit [the live transcription guide](https://docs.aws.amazon.com/chime/latest/dg/meeting-transcription.html).
13- [Demo] Add live transcription functionality. You will need to have a serverless deployment to create new AWS Lambda endpoints for live transcription. Follow [the live transcription guide](https://docs.aws.amazon.com/chime/latest/dg/meeting-transcription.html) to create necessary service-linked role so that the demo app can call Amazon Transcribe and Amazon Transcribe Medical on your behalf.
14- Exposed Amazon Voice Focus model complexity as a type in order to support
15 showcasing complexity limitation in the meeting demo.
16- Packet-per-second (PPS) logging is now enabled in the meeting demo by
17 default. If the browser sends an incorrect packet rate, this will be logged
18 as an error in the console.
19- Add a warning log in `InMemoryJSONEventBuffer`'s `send` function when retrying starts.
20
21### Changed
22- Update `InMemoryJSONEventBuffer` to retry with backoff.
23
24### Removed
25
26### Fixed
27- Stop `activeDevice` video track before selecting a new device to prevent `NotReadableError` when calling `getUserMedia` for a new video input device.
28- Fix priority-based downlink policy default behavior.
29- Fix client event ingestion guide rendering in typedoc.
30
31## [2.14.0] - 2021-07-23
32
33### Added
34- Added `VideoPriorityBasedPolicyConfig` to control video downlink policy with network event response and recovery delays. Check [User Guide for Priority-based Downlink Policy](https://aws.github.io/amazon-chime-sdk-js/modules/prioritybased_downlink_policy.html#user-guide-for-priority-based-downlink-policy) for more information.
35- Amazon Chime SDK Project Board Overview and Guide.
36- Added 25 video tile support for demo app.
37
38### Changed
39
40- [Documentation] Update priority based downlink policy guide.
41- Lookup `groupId` from device cache instead of directly from media stream when selecting input device.
42- [Documentation] Update documentation for 25 video tiles.
43
44### Removed
45
46### Fixed
47
48- Improve the meeting event guide.
49- Fixed Project Board guide with correct community template link.
50- Updated Amazon Voice Focus integration guide to reflect recent Safari versions.
51- Import current Amazon Voice Focus code, which ensures that stereo inputs are downmixed to mono.
52
53## [2.13.0] - 2021-06-29
54
55### Added
56
57### Changed
58
59### Removed
60
61### Fixed
62- Improve the meeting event guide
63
64## [2.13.0] - 2021-06-29
65
66### Added
67
68- Add events ingestion to report meeting events to Amazon Chime backend.
69 Check [Client Event Ingestion guide](https://aws.github.io/amazon-chime-sdk-js/modules/clientevent_ingestion.html) for more information.
70- Add `videoUpstreamPacketLossPercent` and `videoDownstreamPacketsReceived` metrics for video streams
71- [Documentation] Add documentation for view-only mode.
72- Use SESSION_ESTABLISH event to indicate success of Chime SDK for Messaging successful websocket connection
73
74### Changed
75
76### Removed
77
78### Fixed
79
80## [2.12.0] - 2021-06-23
81
82### Added
83
84- [Documentation] Add documentation for `getObservableVideoMetrics`.
85- [Documentation] Update FAQ and public documentation to add more information on SignalingBadRequest related error codes.
86- [Documentation] Rephrase the terms in the status code documentations.
87
88### Changed
89
90- Bump maxVideos limit to 25
91
92### Removed
93
94### Fixed
95
96- Pre-started signaling connections no longer cause a delay in joining if the
97 user takes more than a minute to join the meeting.
98- Fix choosing input device API when passing in a media stream.
99
100## [2.11.0] - 2021-06-04
101
102### Added
103
104- Bind tileController during the initialization of DefaultAudioVideoController for VideoPriorityBasedPolicy.
105- Add more debug logging for choose input device.
106- Add the meeting and device error sections in the meeting-event guide.
107- Add a `forceUpdate` parameter to use when listing devices. In some cases, builders
108 need to delay the triggering of permission dialogs, _e.g._, when joining a
109 meeting in view-only mode, and then later be able to trigger a permission
110 prompt in order to show device labels. This parameter allows cached device
111 labels to be forcibly discarded and recomputed after the device label trigger
112 is run.
113
114### Changed
115
116- Log error instead of throwing error if the signaling client is not ready to send data message.
117- Now when `setDeviceLabelTrigger` is called, if the `deviceInfoCache` contains a device with no label, `deviceInfoCache` will be cleared.
118
119### Removed
120
121- Remove deprecated unwired webrtc constraints from device controller and peer connection construction.
122- Removed unnecessary restriction on VideoPriorityBasedPolicy to always subscribe to at least one stream.
123
124### Fixed
125
126- Fixed missing upstream video metrics for Firefox browsers.
127- Fix build script to run on Windows by specifying ruby when running ruby scripts and rimraf to remove folder.
128
129## [2.10.0] - 2021-05-19
130
131### Added
132
133- Add new message `MeetingSessionStatusCode` `AudioAttendeeRemoved` to handle the new audio server status code 411.
134- Add support for `WKWebView` on iOS.
135- Output a warning message when the volume adapter cleans up the self-attendee after reconnection.
136- Add FAQ for more information on `AudioJoinFromAnotherDevice` meeting session status code.
137- Add downstream audio webrtc metrics in `observableMetricSpec`.
138- Add `getObservableVideoMetrics` and in `ClientMetricReport` to expose video stream metrics in webrtc.
139- Update `SignalingProtocol` with optional video metric fields.
140
141### Changed
142
143- Update guide for priority based downlink policy.
144- Bump version for lodash, y18n, and ssri dependencies.
145- Mark `getObservableVideoMetrics` optional in ClientMetricReprt and `videoStreamIndex` and `selfAttendeeId` optional in `DefaultClientMetricReport`.
146
147### Removed
148
149### Fixed
150
151- Do not start local video tile if there is no stream for content share.
152
153- Media streams are no longer discarded during reconnects. This fixes an issue
154 where initial signaling connection failures could cause a client to be unable
155 to join a meeting with audio if Web Audio were enabled.
156
157## [2.9.0] - 2021-05-10
158
159### Added
160
161- Add the Messaging section in FAQs to describe how to receive messages
162 without using the Chime SDK for JavaScript.
163- `DefaultAudioVideoFacade.start` now takes an options argument. You can use
164 this to trigger a signaling socket connection prior to device selection: call
165 `audioVideo.start({ signalingOnly: true })`, and then later call
166 `audioVideo.start()` as usual.
167- Added a 'abort-on-reconnect' query parameter to demo URL to trigger fatal
168 on reconnection for use in integration tests (default false).
169
170### Changed
171
172- `startVideoPreviewForVideoInput` uses the active video input stream instead
173 of calling `getUserMedia` again.
174- Meeting connections now do more work in parallel, which will improve
175 meeting join times.
176
177### Removed
178
179### Fixed
180
181- Fix `npm run start:hot` in the browser demo.
182
183## [2.8.0] - 2021-04-23
184
185### Added
186
187- Added new downlink policy `VideoPriorityBasedPolicy`, providing the ability
188 to explicitly request remote video sources to receive and set their respective priorities. See
189 [this guide](https://aws.github.io/amazon-chime-sdk-js/modules/prioritybased_downlink_policy.html)
190 for more details and a code walkthrough of using the new policy.
191 *(Note that the exact internal behavior of this policy may slightly change in future releases.)*
192- Add optional header parameter to the `MeetingSessionPOSTLogger`.
193- Add extra logging for synthesizing an audio stream.
194- Add logging for `attendeePresenceReceived`.
195- Add reconnection configuration in `MeetingSessionConfiguration`.
196- Add NodeJS 16 to supported engines.
197
198### Changed
199
200- Disable audio properties on the peer connection if the join information
201 does not include an audio host URL.
202- `package-lock.json` files now use the v2 lockfile format.
203- Configuration files now live in `/config`.
204
205### Removed
206
207### Fixed
208
209- `DefaultDeviceController` recreates the `AudioContext` as needed when
210 selecting non-transform devices, and does not do so when the `AudioContext`
211 is suspended.
212- Generated documentation no longer includes private members.
213- Include the default error message in "meetingStartFailed" and "meetingFailed" events.
214- Fix truncation in bps to kbps conversion that causes stream to stop under low bitrate.
215
216## [2.7.0] - 2021-04-05
217
218### Added
219
220- [Demo] Add Tensorflow BodyPix segmentation demo for `VideoProcessor`.
221- Added a workaround for a Chrome issue where Bluetooth audio would sound
222 choppy for other participants when Web Audio was enabled. This workaround
223 recreates the Web Audio context each time an input device is selected.
224
225### Changed
226
227- Update `SignalingProtocol` with optional video metric fields and optional join flags.
228- `DefaultDeviceController` and `DefaultActiveSpeakerDetector` now conform to a
229 new `Destroyable` interface, allowing resources to be explicitly discarded
230 when a meeting is over.
231- `MeetingSessionPOSTLogger` conforms to `Destroyable`. You should call
232 `destroy` when you are done logging unless you plan to close the window.
233
234### Removed
235
236### Fixed
237
238- Improve some unit tests.
239- Fewer observers are now retained after meetings end. This should reduce
240 leaks.
241- Correctly close input streams when ending a call while using a video
242 transform device.
243
244## [2.6.2] - 2021-03-24
245
246### Fixed
247- Calling `realtimeSetLocalAudioInput` as part of `AudioVideoController.restartLocalAudio()` to
248 fix local mute/unmute issue while switching audio devices.
249
250## [2.6.1] - 2021-03-17
251
252### Fixed
253- Fix infinite loop when calling `chooseAudioInputDevice` with a
254 `MediaDeviceInfo` instance.
255
256## [2.6.0] - 2021-03-09
257
258### Added
259
260- Add `SingleNodeAudioTransformDevice` to make simple audio transforms easier to write.
261- Reuse `VoiceFocusAudioNode` instances across transform device operations.
262- Allow a complete configuration to be retrieved from and passed to a
263 `VoiceFocusDeviceTransformer`, making it easier to instantiate a new
264 transformer in a different scope with the same measured settings.
265- Add End-to-end Integration test for Video Test App
266- `MeetingSessionPOSTLogger` now matches the regular `Logger` API signature.
267
268### Changed
269
270- Allow device checker APIs to take devices as input, rather than only MediaDeviceInfo objects.
271- Enable SIMD autodetection for Amazon Voice Focus in Chrome 90+.
272- Clean up task cancel hooks after they cease to be relevant.
273- Enable sender-side bandwidth estimation in Safari.
274- Clean up usage of audioDeviceInformation in ReceiveAudioInputTask.
275
276### Removed
277
278- Removed audioDeviceInformation from AudioVideoControllerState.
279
280### Fixed
281
282- Upgrade ua-parser-js package version to latest.
283- Don't automatically upgrade dev-dependencies to avoid a breaking typedoc upgrade.
284- Safely handle calling logger `debug` methods with `undefined`.
285
286
287## [2.5.0] - 2021-02-16
288
289### Added
290- Add GatheringICECandidate Finish Duration to Meeting Event and to demo app.
291- Add `attendeePresenceReceived`, `audioInputSelected`, `videoInputSelected`,
292 `audioInputUnselected`, and `videoInputUnselected` meeting events.
293- Compute and add `meetingStartDurationMs` as part of the attributes of the
294 `attendeePresenceReceived` meeting event.
295- Add the file sharing workaround for Chrome 88 in FAQs.
296- Add support for Chrome for iOS and Firefox for iOS.
297
298### Changed
299- [Demo] Set `attendeePresenceTimeoutMs` to use value passed as parameter in the URL.
300
301### Removed
302
303### Fixed
304- `DefaultDeviceController` now attempts to resume a suspended `AudioContext`
305 when choosing a transform device (#1062).
306- `DefaultVideoStreamIndex` now ignores old group IDs from a given attendee ID (#1029).
307
308## [2.4.1] - 2021-01-28
309
310### Added
311
312### Changed
313
314### Removed
315
316### Fixed
317- Disable reconnecting in AudioVideoControllerFacade's `stop` method.
318 Add documentation for the `stop` method.
319- Fix dropped attendee presence during network reconnects.
320- Add back `.play()` call explicitly for Safari browser to prevent video pause issue for local video.
321
322## [2.4.0] - 2021-01-08
323
324### Added
325- Add support for Amazon Voice Focus support in Safari Technology Preview for macOS.
326 Builders using an explicit revision or asset group must make sure to use a
327 revision no earlier than this; an error will be thrown in Safari if older
328 revisions are used.
329
330### Changed
331
332- Corrected `null` type on `DefaultVideoFrameProcessorPipeline` and `DefaultVideoTransformDevice`.
333- Amazon Voice Focus now makes better use of available CPU resources,
334 extending support to lower-end devices and improving quality on higher-end
335 devices.
336
337### Removed
338
339### Fixed
340
341- [Documentation] Corrected name for `voiceFocusInsufficientResources` in documentation.
342- Allow for `realtimeUnsubscribeFromVolumeIndicator` to unsubscribe from specific callbacks.
343- Correctly mute video elements when bound, preventing local echo when sharing tabs via content
344 share.
345- [Demo] Local content share (e.g., video files) now plays audio through the selected audio
346 output device, rather than the default device, in browsers that support `setSinkId`.
347
348## [2.3.0] - 2020-12-21
349
350### Added
351
352- Add Samsung Internet browser for Android as a supported browser.
353- [Documentation] Add documentation for video processing APIs.
354- Add `DefaultVideoTransformDevice` to implement `VideoTransformDevice`.
355 `VideoFrameProcessor`, `VideoFrameProcessorPipeline` and `VideoFrameBuffer` interfaces
356 are added to support `DefaultVideoTransformDevice` and allow processing steps to be applied to device.
357 The method `chooseVideoInputDevice` in `DefaultDeviceController` can handle `VideoTransformDevice` now.
358
359### Changed
360
361### Removed
362
363### Fixed
364
365## [2.2.1] - 2020-12-11
366
367### Added
368
369### Changed
370
371### Removed
372
373### Fixed
374
375- Binding audio elements will no longer throw an error unless calling code is
376 trying to choose an output device in a browser that does not support
377 `setSinkId`, and the demo will not log an error in these cases.
378- [Demo] The meeting readiness checker no longer re-initializes the device output list
379 after the user picks a device.
380- [Test] Fix Amazon Voice Focus integration/canary test.
381- [Demo] Additional best practices around choosing audio output devices.
382
383## [2.2.0] - 2020-12-04
384
385### Added
386
387- [Documentation] What happens when participants try to `startLocalVideoTile` when local video tile limit reached
388
389### Changed
390
391- Log error if pass undefined device when calling choose input device
392- Doing typecheck for MediaDeviceInfo
393- Set automated integ test coverage on recent version of browsers
394
395### Removed
396
397### Fixed
398
399- Allow Amazon Voice Focus code to load (but not function) in unsupported
400 browsers that do not define `globalThis`.
401- Fix uncaught promise exception for bindAudioOutput API
402- [Demo] Fix meeting readiness checker speaker test failing in Safari
403- [Demo] Validate metrics data while showing video WebRTC stats
404
405## [2.1.0] - 2020-11-23
406
407### Added
408
409- [Documentation] Add demo video stats widget information to the quality and bandwidth guide
410- [Documentation] Updated migration document to add more information about `bindAudioDevice()` API behavior
411- Add APIs to create a messaging session with Amazon Chime SDK for Messaging
412
413### Changed
414
415### Removed
416
417- [Test] Remove check for `/v2` in canary URL
418
419### Fixed
420
421- [Script] Update postpublish script to enable termination protection for prod canary stack.
422- [Documentation] Update the Amazon Chime SDK Media Regions documentation link in the README
423- Reimplement error handling in `DefaultRealtimeController` to generate less garbage.
424- Add github actions fix to conditionally run integ tests
425- [Documentation] Correct docstring for `VoiceFocusTransformDevice`.
426- [Script] Add prepublish script to verify CDN configuration.
427
428## [2.0.0] - 2020-11-18
429
430### Added
431
432- Add a constructor argument to `DefaultDeviceController` to specify whether Web Audio should be
433 supported. Use this instead of `enableWebAudio`.
434- Add an `AudioTransformDevice` type that can be supplied to `chooseAudioInputDevice`, allowing the
435 injection of custom device constraints and Web Audio nodes as pseudo-devices.
436- Add `VideoTransformDevice` interface placeholder. This interface mirrors `AudioTransformDevice`.
437 Choosing `VideoTransformDevice`s in `DefaultDeviceController` will be implemented in a future release.
438- Add Amazon Voice Focus, which allows you to create an audio input device that suppresses
439 background noise.
440- Add `AudioProfile` for configuring audio quality.
441- Add `setAudioProfile` and `setContentAudioProfile` audio-video facade methods for setting audio quality.
442- Added `GetUserMediaError` errors which are thrown for `chooseAudioInputDevice` and
443 `chooseVideoInputDevice` API failures.
444- [Demo] Show video WebRTC stats and attendeeId on video tile hover.
445- [Demo] Add audio quality settings to meeting demo.
446
447### Changed
448
449- The project now produces ES2015 output, rather than ES5 output that refers to ES2015
450 features. The SDK supports only modern browsers, and is increasingly dependent on ES2015
451 features. This change leads to more compact bundles and aligns the supported JavaScript
452 language variant with the supported runtime features.
453
454 If you need your built application bundle to target browsers that do not
455 support ES2015 syntax, including Internet Explorer, you will need to transpile the SDK code
456 using a transpiler like Babel, or split your application bundle into multiple files that can
457 be conditionally loaded. Note that transpiling some parts of the SDK might result in ES5 code
458 that does not work when run.
459
460- `DeviceController.createAnalyserNodeForAudioInput` now returns a `RemovableAnalyserNode` that
461 knows how to unhook its own inputs. This allows you to correctly clean up, which avoids issues
462 with Safari when used with Web Audio. The demo has been adjusted to do so.
463- Modify `WebSocketAdapter.send` to accept string parameters.
464- Changed `chooseAudioInputDevice` and `chooseVideoInputDevice` to return void and reject with a
465 hierarchy of errors instead of either rejecting with an error and otherwise returning
466 `DevicePermission`.
467
468### Removed
469
470- Remove `enableWebAudio` from `DeviceController` and related types. Use the constructor argument
471 instead.
472- Remove V1 meeting app. The V2 meeting app is now the only meeting app deployed. Do not supply /V2/
473 paths when loading the app, if you deployed both.
474- Remove legacy screen share.
475- Remove `DevicePermission`.
476
477### Fixed
478
479- Fix Github Actions CI workflow to include all integ tests.
480- Update the clicking sound answer in FAQs.
481- [Test] Make sure to remove v2 from URL when trying to create meeting
482- Correct import in `NoOpAudioVideoController`.
483
484## [1.22.0] - 2020-11-10
485
486### Added
487
488- Add github actions continuous integration workflow and deploy workflow
489- Add simulcast uplink policy layer change notification methods and observer
490- Add `getRemoteVideoSources` method and `remoteVideoSourcesDidChange` observer
491- [Documentation] Add question to FAQ about android chrome bluetooth audio devices
492
493### Changed
494
495- [Documentation] Updated HTTP to HTTPS in README URL links
496- [Documentation] Improved documentation for running integration tests locally
497- [Test] Updated browserstack URL formation to use HTTPS
498- Upgraded eslint to understand modern TypeScript syntax, including `import type`
499- [Demo] change optional feature selection to be list of input box to allow combination
500- [Documentation] Update README to replace deprecated `AudioCallEnded` with `MeetingEnded`
501- [Documentation] Update few `VideoTileController` and `VideoTile` APIs documentation
502- [Documentation] Added deprecation message and log for `enableWebAudio` API in DeviceController
503- Improve `DefaultEventController` to create less garbage
504
505### Removed
506
507### Fixed
508
509- Make the event controller optional in the AudioVideoController interface
510- Handle undefined attendeeId when calling `realtimeSetAttendeeIdPresence`
511- Fix `DefaultModality` base check
512- [Test] Fix a typo in integ tests
513- [Demo] Fix serverless deploy script to not print out logs
514- [Test] Make sure to error out if failed to grab Sauce Lab sessions
515- Fixed deploy github action with correct keys
516- Remote video may switch transceivers/videoTiles on simulcast change or camera toggle
517- Fix github actions deploy workflow
518- Fix issue with calling closeCurrentTest twice when timeout waiting for an attendee in integ test
519
520## [1.21.0] - 2020-10-29
521
522### Added
523
524- [Demo] Add default SSE to meeting notifications queue in CF template
525- Add meeting events
526
527### Changed
528
529### Removed
530
531- Removed check for `iceGatheringState` to be complete for bypassing gathering ice candidate again
532
533### Fixed
534
535- Allow the build to complete in the absence of a Git checkout
536
537## [1.20.2] - 2020-10-20
538
539### Added
540
541### Changed
542
543- [Documentation] Update README to add information about `tileState.active`
544- Update PR template to ask demo testing question
545
546### Removed
547
548### Fixed
549
550- Reduced sessionId resolution to 32 bits and removed Long dependency
551- Handle case where meeting or attendee response properties can accept null or undefined
552
553## [1.20.0] - 2020-10-15
554
555### Added
556
557- Add a Travis check to make sure version update
558- Add metrics for Selenium initialization metrics for integration tests
559- Create log stream before logging begins
560- Make AWS SDK for Java camelCased meeting-attendee response compatible with Chime SDK for JavaScript
561- Mark InvalidSequenceTokenExceptions as warning
562- 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
563- Add extended debugging for saucelab sessions
564- Add data message throttle limits to documentation
565- Add `audioSessionId` to join frame to always drop when reconnecting
566- Add audioSessionId to join frame to always drop when reconnecting
567
568### Changed
569
570- Update test results to Sauce Labs before emitting CloudWatch metrics for integration tests
571- Mark `AudioInternalServerError` and `SignalingInternalServerError` as non-terminal errors
572- Replace `awesome-typescript-loader` with `ts-loader`
573- Alter the API signature for `Logger.debug` to accept strings, not just functions
574- Update meeting readiness checker demo app with new regions CPT, MXP, BOM and ICN
575- Update meeting readiness checker demo app to create meeting after the checker starts
576- Alter the versioning script to require less ritual
577- Correct TypeScript build to generate correct artifacts in `build/`
578- Fall back to `null` device if there is any error while acquiring the audio device
579
580### Removed
581
582### Fixed
583
584- Make sure integration test returns FAILED if there is error
585- [Test] Make sure to reset ready status between retries
586- No video after connection failure
587- Fix video track sometimes being removed and added on simulcast receive stream switch
588- Enabled termination protection for serverless demo CloudFormation stack
589- Simulcast optimizations
590- Correct TypeScript build to generate correct artifacts in `build/`
591- Correct TypeScript configuration for demo app
592
593## [1.19.0] - 2020-09-29
594
595### Added
596
597- Add MeetingReadinessCheckerConfiguration to allow custom configuration for meeting readiness checker
598
599### Changed
600
601- Update Travis config to improve PR build speed
602- Disable configs in saucelab capabilities
603- Use credentials sent via signaling connection JOIN_ACK to improve audio-video startup time.
604- [Demo] Adjust demo css to prevent unecessary scrollbars on windows and stretching in video grid
605- Update dependencies to TypeScript 4, `ts-loader`, and modern linting
606- [Demo] Update dependencies, too.
607- Remove unnecessary startAudioPreview in meeting demo
608- Fix video tile with incorrect bound attendee ID and external User ID
609
610### Removed
611
612- Revert the "Create log stream before logging begins" commit
613- Revert "Fix unbinding video tile bug" commit
614- Revert "Fix issue with removeLocalVideoTile not removing video tile for remote attendees" commit
615- Remove "./guides/docs.ts" and the composite setting from tsconfig.json
616- Reverted " Add continuous integration workflow support for contributions from forked repos"
617
618### Fixed
619
620- Fix Maven installation script
621- Fix SIP integration test
622- Fixed v1 meeting bug related to bootstrap row class
623- Fix meeting readiness checker integration test
624
625## [1.18.0] - 2020-09-22
626
627### Added
628
629- Add meeting readiness checker integ tests to travis config
630- Add optional parameter `sourceId` to checkContentShareConnectivity API
631- Add getVideoInputQualitySettings to retrieve the current video settings
632- Add documentation for DefaultActiveSpeakerPolicy constructor
633
634### Changed
635
636- Use pip to install aws sam cli for deployment script
637- Added meetings tags to serverless demo
638- Update PR template to add question about protocol and API change
639- Add demos/browser package-lock to git, update webpack and jquery versions
640- Update integration-watchlist to include demos/browser with no exception for package.json
641- Change error to warn for logging Cloudwatch errors
642- Update README with use case to handle `realtimeSubscribeToVolumeIndicator` updates efficiently
643- Change error messaging for getUserMedia error
644- Change demo video grid to CSS
645- Update new known issues in FAQs and PTSN sample in README
646
647### Removed
648
649### Fixed
650
651- Fixed bug related to unbinding a video element
652- Fix tone does not stop when calling MeetingReadinessChecker.checkAudioOutput multiple times
653- Fixed demo css format issue from updating to bootstrap 4.5.1
654- Fix a minor syntax in DefaultSessionStateController
655
656## [1.17.2] - 2020-09-08
657
658### Added
659
660### Changed
661
662### Removed
663
664### Fixed
665
666- Change default encode resolution back to 960x540
667
668## [1.17.0] - 2020-09-04
669
670### Added
671
672- Add npm login and logout as part of publish script
673- Add Meeting Readiness Checker APIs
674
675### Changed
676
677- Change WebRTC semantics to Unified Plan by default for Chromium-based browsers
678- Update video simulcast guide doc
679- Update readme to include link to React components repo
680
681### Removed
682
683### Fixed
684
685- Fixed removeLocalVideoTile so that the video tile is removed correctly for the user and attendees
686- Handle timing issue of receiving index during resubscribe
687- Mitigate Brew Sam installation issue
688- Remove set command in travis awscli installation script
689- Add `--no-fail-on-empty-changeset` flag in deploy script to not fail for empty changeset
690
691## [1.16.0] - 2020-08-20
692
693### Added
694
695- Added auth-token based npm login and logout scripts for npm package publishing
696- Update demo app with new regions CPT, MXP, BOM and ICN
697
698### Changed
699
700- Update the dependency version for the singlejs demo
701
702### Removed
703
704- Remove `device` demo from demos
705
706### Fixed
707
708- Fix and modify simulcast uplink policy to fix freezing and reduce switches
709- Exclude self content share video stream index
710
711## [1.15.0] - 2020-08-10
712
713### Added
714
715- Add comments for VideoTileState class and instructions in FAQ document
716- Add reference to CreateMeetingWithAttendees in FAQ
717
718### Changed
719
720- Bump elliptic from 6.5.2 to 6.5.3 in /demos/device
721- Log info when stop pinging due to Websocket closed
722- Change the demo app to show content share video back to sharer
723- Change bootstrap version for meeting demo to 4.5.0
724- Change content share video check to use attendee name instead of video element index
725
726### Removed
727
728### Fixed
729
730- Ensure all simulcast stream resolution are 16-aligned to avoid pixel3(XL) encoder issue
731- Fix race condition in Chromium browsers when consecutive audio bind operations take place
732- Fix invalid constraints and disable Unified Plan in safari 12.0
733- Fix isSupported API in DefaultBrowserBehavior return true for Firefox on Android
734
735## [1.14.0] - 2020-07-28
736
737### Added
738
739- Add content share video test integration test
740- Add function to query outbound WebRTC video stats in browser demo
741- Add error message for TaskFailed errors
742
743### Changed
744
745- Return the screen capture media stream for startContentShareFromScreenCapture
746
747### Removed
748
749### Fixed
750
751- Fix exception thrown in Safari when multiple startVideoPreviewForVideoInput() are made
752
753## [1.13.0] - 2020-07-21
754
755### Added
756
757### Changed
758
759- Use POST instead of GET for TURN control endpoint
760
761### Removed
762
763### Fixed
764
765- Fix demo app responsiveness issue
766- Fix content share test video in Firefox
767- Marking `TURNMeetingEnded` error as terminal to prevent session from reconnecting
768
769## [1.12.0] - 2020-07-17
770
771### Added
772
773- Add device name for mobile integration tests
774- Added new FAQs and updated Readme to include new demos for PSTN calling and live events
775- Add test report URL for mobile integration tests
776- Add Firefox to Travis integration tests
777- Add README for integration tests
778- Add log to list the set of constraints supported by the browser
779- Add device change observer events when the current audio/video input stream ended
780
781### Changed
782
783- Fix title for FAQ guide
784- Change DefaultDeviceController video MediaTrackConstraint parameters to be "ideal" explicitly
785- Use a single instance of AudioContext
786- Use the SDK default sample rate 48,000 Hz for an AudioBuffer object if the AudioContext sample rate doesn't work
787
788### Removed
789
790### Fixed
791
792- Fix typo in VideoStreamDescription when stream is disabled by WebRTC
793- Fix issue where audio input is not able to switch in Firefox
794- Fix handling WebRTC Track event with no associated streams
795- Increase log interval to avoid multiple Cloudwatch requests at once
796- Fix incorrect log level for terminal error code
797- Catch exceptions taking place when putLogEvents fails
798- Fix content share test video in Firefox
799
800## [1.11.0] - 2020-06-30
801
802### Added
803
804- Add meeting demo parameter for broadcasting user
805- Add simulcast guide link in README and Quality Bandwidth Connectivity doc
806- Add a MediaDevices proxy to support the devicechange event in some Android Chrome browsers
807
808### Changed
809
810### Removed
811
812- Remove browser demo optional feature HTMLSelectElement multiple attribute
813
814### Fixed
815
816- Fix CloudWatch metrics for Linux and Android integration tests
817- Fix create meeting request for audio and video e2e integration tests
818- Fix multiple issues with integration tests
819- Fix uuidv4 import
820- Fix missing uuidv4 import in integration test
821- Disable w3c check for Chrome Android webdriver integration tests
822- Fix setSinkId() from throwing DOMException in Chromium browsers
823- Fixing the ability to choose default input in browsers when default changes
824
825## [1.10.0] - 2020-06-23
826
827### Added
828
829- Add position in frame to attendee updates
830- Add stale-issue bot configuration
831- Add simulcast support and provides new uplink downlink policies
832- Add MultiLogger to support logging to multiple Logger instances
833- Add resize listener on HTMLVideoElement in demo
834- Add simulcast integration tests
835- Add unit tests for source files previously excluded in test coverage
836
837### Changed
838
839- Use GET instead of POST to obtain TURN credentials
840- Move integration tests to use meeting V2 demo
841- Update to add ability to run integration tests in mobile devices
842
843### Removed
844
845### Fixed
846
847- Update cloudwatch log stream ID to have attendee_id
848- Fix Firefox 68 codec preference issues
849- Fix uplink max bitrate value calculation
850
851## [1.9.0] - 2020-06-12
852
853### Added
854
855### Changed
856
857- Bump websocket-extensions from 0.1.3 to 0.1.4
858- Update SignalingProtocol.proto and use SDK version in JoinFrame
859
860### Removed
861
862### Fixed
863
864- Fix duplicate tiles and error logs due to external id race condition
865- Suppress presence leave when attendee has already joined from another device (#427)
866
867## [1.8.0] - 2020-06-05
868
869### Added
870
871- Add an integration tests to check remote video when reconnecting
872- Add device controller tests
873- Add option to run integration tests in Sauce Labs headless
874
875### Changed
876
877- Switch demo DDB table to on demand
878- Restart the session if an attendee is not present during initial connection
879
880### Removed
881
882### Fixed
883
884- Handle user revoking video input permission
885- Fix FinishGatheringICECandidatesTask when there are no turn credentials
886- Fix log line to print device constraints
887- Fix build line to take out duplicate npm install
888- Fix video audio preview for mobile devices
889- Fix black remote video tiles on reconnect
890- Fix LED light issue
891- Fix typo in MeetingNotificaionsEvent present in template.yaml
892
893## [1.7.0] - 2020-05-23
894
895### Added
896
897- Add connectionDidBecomeGood callback in AudioVideoObserver
898- Add an integration test for Data Message
899- Add the device selection to the "Starting a session" example
900- Added Bandwidth and connectivity guide
901- Add 'dropped' boolean attribute to realtime interface to indicate attendee drop
902
903### Changed
904
905- Support styling and Markdown for meeting demo chat
906- Update signaling protocol
907
908### Removed
909
910### Fixed
911
912- Fix Firefox version 76 missing/grey tiles
913- Fix data message integration tests
914- Fix several integration test name
915- Mark 403 (Forbidden) for fetching turn credentials as terminal error and avoid retrying.
916- Fix Android Pixel3 Chrome Video artifacts on far sites
917- Don't throw the "cannot replace" message if the device controller is not bound to any audio-video controller
918
919## [1.6.2] - 2020-05-18
920
921### Fixed
922
923- Disable audio capture for Electron Screen Capture
924
925## [1.6.0] - 2020-05-15
926
927### Added
928
929- Allow option to skip device selection page in demo app.
930- Add demo hook for debugging media connections
931- Add github link to getNearestMediaRegion method in README.md
932- Add data message APIs
933
934### Changed
935
936- Allow audio for screen capture in Chrome and Edge browsers
937- Decouple the get call request from the UI
938- Use getSettings if possible on MediaStream and move some info logs to debug level
939- Use innerText instead of innerHTML
940
941### Removed
942
943### Fixed
944
945- Fix minor coding styles for data message APIs
946
947## [1.5.0] - 2020-05-07
948
949### Added
950
951- Add bandwidth policy to meeting session configuration to allow overriding default policies
952- Add more content sharing integration tests
953- Add gifs to read me file to show latest npm version and downloads
954- Add method to get the nearest media region
955- Display meeting and attendee IDs in the demo
956
957### Changed
958
959- Simplify meeting demos to leverage externalUserId in roster
960- Update PR template to add testing information
961- Support a mobile-friendly demo
962- Increase the size of content share video tile for the demo app in small screen
963- Update reconnection parameters in ConnectionHealthPolicyConfiguration
964
965### Removed
966
967- Remove unused VideoAdaptiveSubscribePolicy
968
969### Fixed
970
971- Fix serverless deploy script to work on Windows
972- Clean up and fix serverless package bundling
973- Do not mirror local video for rear-facing camera
974- Fix sip url for meeting demo
975- Fix local video freeze in Safari after toggling off and on
976- Fix meeting demo content share turning off on attendee join
977- Disable audio sample constraints when not using WebAudio
978- Reset Sauce Lab session to make sure clean state
979- Fix integration test emit metrics
980- Fix the CloudWatch log handler
981
982### Security
983
984- Bump package-lock.json jquery to 3.5.0 and yargs-parser to 18.1.3
985
986## [1.4.0] - 2020-04-24
987
988### Added
989
990- Expose an API for GetStats from RTCPeerConnection
991- Add BrowserBehavior test for supported video codecs
992- Expose ExternalUserID on videoTileDidUpdate
993
994### Changed
995
996- Use getByteTimeDomainData to support iOS Safari in meeting demo
997- Update README to incorporate documentation feedback
998
999### Removed
1000
1001### Fixed
1002
1003- Fix broken link in GitHub main page README
1004
1005## [1.3.0] - 2020-04-17
1006
1007### Added
1008
1009- Enable the use of send-side bandwidth estimation
1010- Add guide for content sharing
1011- Display meeting id in the demo app
1012- Add additional callback in AudioVideoObserver to indicate video downlink pressure
1013- Add meeting demo parameter for recording user
1014- Add a script demo to bundle Chime SDK into a single JS file
1015- Add device demo
1016- Add base infrastucture for demo app in react
1017- Add pricing link in README
1018- Add an overview of API methods
1019- Add IoT integration to device demo
1020- Add option to run integration tests locally
1021- Add the use case guide
1022- Upgrade dependency aws-iot-device-sdk version
1023- Add externalUserId to the tile properties
1024- Add post publish script
1025- Add feature flag to enable WebRTC Unified Plan for Chromium-based browsers
1026- Add link to Amazon Chime SDK Security in README
1027
1028### Changed
1029
1030- Prevent prebuild from increase patch number when publishing to NPM
1031- Change the cloudwatch log message format
1032- Only run integration tests if files on watchlist were modified
1033- Temporarily only run test in Chrome for Travis integration tests
1034- Allow content share frame rate to be configurable
1035- Move demo guides to demo folders
1036- Fix the default video resolution comment in DeviceController
1037
1038### Removed
1039
1040- Remove unimplemented callbacks remoteDidMuteAudio and remoteDidUnmuteAudio on AudioVideoObserver
1041- Remove the minimal demo app
1042- Remove incomplete demo and component directories
1043
1044### Fixed
1045
1046- Fix retry logic for integration test
1047- Update typedocs to 0.16 and re-generate doc files
1048- Fix issue in Travis script that prevents integration tests from running
1049- Fix markdown formatting with backticks in API overview
1050- Fix an issue that a dev dependnecy @types/dom-mediacapture-record is not getting installed
1051- Fix typo in README.md file
1052- Ensure that attendee presence leave and join are ordered correctly
1053- Fix video element issue in Iphone
1054- Fix post publish script to also include meeting v1
1055- Use build:publish for publish script
1056- Fix Travis deploy failure
1057
1058## [1.2.1] - 2020-03-20
1059
1060### Added
1061
1062- Add BITRATES in SdkSignalFrame Type and regenerate corresponding JS and TS protocol files.
1063- Add new ContentShareController APIs
1064- Add Getting Started guide
1065- Add doc guide generator
1066- Add basic component library setup
1067- Add injectable session URL rewrite function to support proxies
1068- Add POSTLogger for meeting sessions
1069- Integrate POSTLogger into the demo app
1070- Add content share integration test
1071- Enable POSTLogger for the serverless demo app
1072- Add max-content-share query parameter to allow 2 content share at the same time
1073- Add an integration test that checks only 2 content share are allowed
1074
1075### Changed
1076
1077- Add observer event for content sharing
1078- Stop content share if the media stream end
1079- Trap video sending SSRC change in two consecutive negotiation
1080- Do not bypass ice gathering based on sdp connection attributes for Safari on iOS
1081- Show SDK version in the demo meeting app
1082- Automatically patch a version for each commit
1083- Allow to specify manual version in publish script
1084- Automatically deploy meetingV2 to serverless demo
1085- Expose external user ID in places where attendee ID is present in RealtimeController
1086- Improve error output in the deploy script
1087- Do not reconnect if the session has not received monitoring data for a while
1088- Skip tests when merging to master
1089- Bump acorn dependency in package-lock.json to 6.4.1 to address CVE-2020-7598
1090- Use max-bundle RTCRtpPolicy for Firefox
1091- Throw error in Travis if integration test failed
1092
1093### Fixed
1094
1095- Remove line endings in the keyword when searching for connection attributes in SDP
1096- Fix pause and resume video functionality
1097- Fix DefaultTransceiverController async function signature
1098- Make DefaultBrowserBehavior implement BrowserBehavior interface
1099- Fix publish script to use npm version
1100- Add stage to saucelabs session name for integration tests
1101- Fix audio-video session stop to return Left status code
1102- Fix crash in demo app when click on screen share view
1103- Fix integration test completion time writer
1104- Fix the ping pong reconnection issue
1105- Fix example code in the getting started guide
1106- Fix browser versions for integration tests
1107- Fix present npm audit issues and automatically fix during build when possible
1108
1109## [1.1.0] - 2020-02-04
1110
1111### Added
1112
1113- Add browser support for Safari and Opera
1114- Add CHANGELOG.md
1115- Allow for pausing screen sharing
1116- Add GitHub page with API documentation
1117- Add an alternative to WebAudio device controller and add a flag to disable the use of WebAudio
1118- Add option to confirm meeting end
1119- Implement keyframe request handling
1120- Add deploy step to deploy latest sdk changes
1121- Add a ConnectionHealthPolicyConfiguration property in the meeting session configuration
1122- Add support additional media regions
1123- Add video help desk tutorial
1124- Enable integration tests for travis builds
1125- Add ping/pong to screen sharing start code path to ensure socket is viable
1126- Enable integration tests for safari 12
1127- Write timestamp for latest canary completion time
1128
1129### Changed
1130
1131- Enforce SDP to have candidates for FinishGatheringICECandidateTask to resolve
1132- Add event listeners on peer connection to log state change
1133- Add client metrics for Safari
1134- Add SIP integration test
1135- Block screensharing start if the browser is Safari
1136- Expose extra bitrate estimation metrics
1137- Improve reconnect callback fidelity
1138- Update copyright and fix copyright check
1139- Improve logging for screen sharing
1140- Add source node to audio graph for silent devices
1141- Move screen view data connection open and close
1142- Improve handling of closed signaling connections
1143- Update README.md to clarify when to use npm install
1144- Add app quit and meeting leave integration tests and retry for all other tests
1145- Limit WebSocket reconnect attempts
1146- Refactor default screen sharing session start to fix state corruption bug
1147- Update Travis script to separate unit and integration tests into different jobs.
1148- Validate session Id and disable extendedDebugging flag for SauceLabs
1149- Fix infinite loop when retrying in audio and video integ tests
1150- Make sure both participants in audio and video tests reach finish state before retrying
1151- Trigger videoSendBandwidthDidChange and videoReceiveBandwidthDidChange for Safari
1152- Do not disconnect video element with different srcObj when destroying video tile
1153- Make meeting V2 the default demo meeting app
1154
1155### Removed
1156
1157- Remove SDP class withPlanBSimulcast method
1158- Remove noSignalStatusReceived from ReconnectionHealthPolicy and remove SignalStrengthBarsConnectionHealthPolicy.
1159
1160### Fixed
1161
1162- Add cleanup code for failed open screen sharing
1163- Handle error in screen viewing send echo response
1164- Fix several error handling issues
1165- Fix ReconnectingPromisedWebSocket timeout
1166- Ensure to null webSocket reference on abnormal close
1167- Use async scheduler for video tile disconnect
1168- Set device to null when active device unplugged
1169- Fix mobile safari detection
1170- Fix chooseVideoInputDevice with null
1171- Release chosen video stream on stopVideoPreview
1172- Fix Safari ICE failure issue by set bundle policy to max-bundle
1173- Fix to ignore error on screen viewing courtesy stop
1174- Fix meeting leave integration tests
1175- Reject an unresolved promise when canceling CreateSDPTask
1176- Fix Firefox keyframing
1177- Fix screen share integration test
1178- Fix null or empty device handling
1179- Fix demo screen share button states
1180- Fix bug that caused screenview to stay off when screenshare was toggled
1181- Only set attendee active only if still in roster
1182- Fix preview not switching issue and stop track during disconnect
1183- Reset connectionHealthData before (re)connection
1184- Fix a bug that prevented device change from triggering observers
1185- Fix serverless demo deployment scripts
1186- Fix integration test timeout and test sync between runs browsers
1187- Fix Safari crashes when remote video tiles are added or toggled
1188- Fix unhandled Promise rejection in DefaultScreenSharingSession#start
1189- Fix canary deployment script
1190- Fix SIP call integration test
1191- Fix Travis deployment script
1192
1193## [1.0.0] - 2019-11-20
1194
1195### Added
1196
1197- Release first version of library