Release information for libcct


#23

0.12.2 (Mar 14, 2016)

Documentation

  • Fixed relative links in guide.

#24

0.12.3 (Mar 16, 2016)

Documentation

  • Fix link to examples in introduction.
  • Added missing image asset to introduction.

#25

0.12.4 (Mar 18, 2016)

WebRTC

  • Added basic conferencing support with stream broadcast and switching. Relevant APIs are room.startConferenceCall, cct.MediaSwitcher, and cct.MediaBroadcaster.

Base API

  • Fixed bug in room membership handing that caused users to have invalid memberships.
  • [minor api change] room membership events will now have the old membership set to null when it was previously undefined.
  • Fixed a bug that caused a ReferenceError when accessing event.user, instead of the actual deprecation error that was supposed to be thrown.

Examples

  • Added shared cursor example, which show an example user-case for DataSource.

Documentation

  • Documented cct.log in cct namespace.
  • Fixed some spelling mistakes in room documentation and logging.

#26

0.12.5 (Mar 21, 2016)

Base API

  • Fixed an issue where user information could get incorrectly updated by old membership events.
  • room.kick now users /kick API endpoint instead of stat mutation.

WebRTC

  • The MediaSwitcher is now properly stopped when leaving a conference.

Documentation

  • Fixed return type docs for client.setName and client.setAvatar.
  • Updated usage of MediaBroadcaster.on('remoteSource, ...) in API reference examples.

#27

0.13.0 (Apr 1, 2016)

Base API

  • [API CHANGE] For now, libcct has to be included as a separate script instead of being build into a bundle. This is because of how Temasys’ AdapterJS is written and will be fixed in the future.
  • Room creation timeout has been greatly increased to avoid false-positive errors for large rooms.
  • The sync stream grace period has been increased from 1s to 5s, which avoid a lot of false-positive disconnects.
  • Fix profile information handling which was broken by synapse 0.14.0.

WebRTC

  • Now uses Temasys’ AdapterJS fork as the WebRTC browser compatability layer, which provides support for Safari and Internet explorer.
  • Fix a bug where it was not possible to remove a data source from a call.

Examples

  • Added common Peer2Peer utility that is used for all multi client examples.
  • Added conference call to example index.
  • List input sharing example instead of data sharing in example index.
  • Most multi client examples now use a new Peer2Peer utility that handles session setup.

Build

  • ESLint is now used for linting instead of jshint and jscs. The rules are now stricter, and examples are also linted.

Documentation

  • Fixed link to examples from the introduction.
  • Documentation is now linted, and the language is a lot more consistent.

#28

0.13.1 (Apr 1, 2016)

WebRTC

  • Fix an error when media streams where removed from a call.

Documentation

  • Changed target synapse version to 0.14.0

#29

0.13.2 (Apr 7, 2016)

WebRTC

  • Added room.startPassiveCall(), which created a passive call that doesn’t initiate any connections. Passive calls will automatically accept any incoming calls.
  • Removed options from room.startCall() and room.startconference(), since they didn’t do anything, and it wasn’t possible to set options for incoming calls.

Base API

  • Fix error in roomQuery.stop().

Examples

  • Added ES6 Promise shim to all examples.

Build

  • Fix an error when running tests in Safari.

#30

0.13.3 (Apr 9, 2016)

WebRTC

  • Added AudioMeter, which enables monitoring of the audio level of a media source.
  • MediaSwitcher members are now sorted based on most recent activity.
  • Added Conference.detach.
  • Added ownerId option to DataSource constructor, which allows seamless reconnects to calls with existing data.
  • Made MediaSwitcher detect which users are active in the conference.
  • Fix bug which doubled the amount of data sent with DataSource.
  • Fix MediaSwitcher cleanup.
  • Updated documentation for ConferenceCall and MediaSwitcher.

Base API

  • Added fix for not receiving own profile information if not a member of any room.

Examples

  • Added AudioMeter example.

#31

0.13.4 (Apr 12, 2016)

Base API

  • Fixed a bug where instantly accepting a room invite that was sent on creation would sometimes cause the room creation to time out.

WebRTC

  • Fixed a number of new and old DataSource bugs, channels are now cleaned up correctly, initial messages aren’t missed, and avoid sending duplicate messages.
  • Passive calls are now exclusive, starting a passive call in a room will consume any incoming calls, and an error will be thrown if there’s already an active call in the room.
  • Fixed a bug where incoming calls could be incorrectly rejected.
  • Cleaned up default Call error message.

Examples

  • Fixed footer styling issue in all examples.
  • Fixed an issue with checkbox synchronization in shared input example.

#32

0.13.5 (Apr 14, 2016)

Base API

  • [minor api change] Do not inlude any events in initial sync when authenticating a client. This massively reduces the time it takes to log in a client.
  • Removed internal usage of string.startsWith.

#33

0.13.6 (Apr 14, 2016)

WebRTC

  • FileRefs that are received through the same DataSource and that are referring to the same remote file are now unique, which enables strict equality (===) comparison.
  • All remote FileRef values in a DataSource are now cleared when the peer disconnects.
  • DataShare update events are now always emitted if the value changes, even if the new value is equal to the old one.

#34

0.13.7 (May 03, 2016)

Base API

  • Added room.avatar, along with room.setAvatar, room avatar event, and avatar argument to client.createRoom.

WebRTC

  • Fix error when cleaning up media streams in some Android Chrome variants.

Build

  • Fix bundling, it is once again possible to import libcct as a CommonJS or AMD module.

Examples

  • Added multi client conference example with automatic voice switching.
  • Added support chat example showcasing instant preview of what another user is typing.
  • Fix log box layout as well as other layout fixes.

#35

0.14.0 (May 07, 2016)

WebRTC

  • Calls no longer use multiple peer connections. Multi-stream support is now implemented with SDP munging. This will make calls more robust and fixes a recent call setup issue between Firefox and Chrome.
  • MediaSwitcher is now smarter about switching streams and will show the previous stream to the active speaker.
  • Added example of how cct.webRtcReady can be used.
  • Removed DataShareHolder interface.

Build

  • The internal structure has been changed to use es6 modules instead of concatenation, along with transpilation and polyfills. From the outside there’s not much difference, except that older browser versions are supported.
  • Updated dependencies to work with node 6.
  • Tests have been merged into a single test suite.
  • Production builds are now always and only minified.
  • Added -m, --match <pattern> flag when running tests, if it is set, only test modules matching the pattern will be run.
  • Linting rules changed quite drastically…

Base API

  • [API CHANGE] Widget, WidgetController, WidgetDocumentSource are now private API, pending change.
  • [API CHANGE] cct.AdapterJS was removed and is now private API.
  • Minimum synapse version set to 0.14.0.

Documentation

  • Removed cct. namespace prefix from all classes and interfaces, the members of the cct namespace are now documented as properties.

#36

0.14.1 (May 10, 2016)

WebRTC

  • Fix a bug where unsupported peerConnection.removeStream calls were not handled in firefox.
  • Media streams that have their tracks replaced any now properly rendered to sinks.
  • Fix an issue where replacing tracks on streams attached to a call would not trigger a renegotiation.
  • Attempting calls to incompatible libcct versions will now log an error.
  • Added conference call tests.
  • The media switcher will never display it’s own source, unless alone in the conference.
  • Fixed numerous issues with MediaSwitcher, switching should now work better in general, and especially with few people, and should flicker less.
  • The MediaSwitcher now waits longer before considering nodes to be dead.

Base API

  • Trying to connect to an incompatible homeserver will now log an error.

Examples

  • Styled the warning on the index page.

#37

0.14.2 (May 12, 2016)

WebRTC

  • Removed old hack for Firefox remote streams that caused flickering.
  • MediaSwitcher now emits a 'liveMembers' event whenever they are changed.
  • RtcPeerConnection related errors are now actual errors.
  • Refactored call code to handle signaling bits separately.

#38

0.14.3 (May 17, 2016)

WebRTC

  • Fixed a bug where a caller wouldn’t receive media from a callee if not also sending media.
  • Fixed MediaSwitcher.setSource(source) not updating streams correctly.

Examples

  • Added fileDropShare example that shows how to do file sharing in a call.
  • Removed old fileSharing example.

#39

0.15.0-rc1 (Jun 13, 2016)

This release features a large rework of the WebRTC and media APIs. A new interface for adding functionality to a call has been added, called RtcComponent. It is the new base for data, file, media, and document sharing, and also provides an interface for building new custom components that work seamlessly in both conferences and two-way calls.

The basic media API has moved on from only having sources that can be attached to calls with setLocalSource. It is now possible to set up pipelines of media processing nodes, enabling things like mixing video and audio, recording, relaying, adding filters, splitting, merging, etc. The new media pipeline API is built to be extensible and easy to use, while still allowing low level access. A core part of the design is composability, and allowing nodes to be seamlessly combined into container nodes, which can then be used like any other node.

The new APIs are mostly backwards compatible, only some of the more advanced features like data and dom sharing have had breaking changes. The DeviceSource, and ScreenSource, call.setLocalSource() and call.getRemoteSource() APIs are intact.

Base API

  • [API CHANGE] room.startConferenceCall has been renamed to room.startConference.
  • [API CHANGE] The document sharing has been split out into a separate library that has to be included to access that functionality.
  • Removed for … of … usage as this had a significant impact on the size of the library.
  • Fixed a bug where old events would be treated as new when first joining a room.
  • Use console.debug as the default log handler for debug level messages.
  • No longer warn about room event.user deprecation.

WebRTC

  • Added RtcComponent API. Complete documentation will be added in a later release.
  • Added MediaNode API. Complete documentation will be added in a later release.
  • Added call.attach and call.detach, for adding and removing RtcComponents, and also updated the conference equivalents.
  • [API CHANGE] Removed DataSource, it has been replaced by DataShare and FileShare.
  • [API CHANGE] Removed ProxySource, it has been replaced by ProxySink and a new ProxySource.
  • [API CHANGE] Removed DocumentSource, it has been replaced by DocumentReader, and DocumentRenderer.
  • Conferences are no longer implemented on top of calls, they now have their own connection abstraction and signaling. They still share most of the implementation with calls.
  • Fixed stream rendering in Safari and IE.
  • Updated AudioMeter to use the new media API.
  • Fix for Cordova media streams.
  • Fix harmless error that would sometimes occur when rendering streams.

Build

  • The document sharing imlpementation has been split out from the main library and is now available as the serparate import cct-dom-sharing.
  • Tests are now run in serial if not run in watch mode.

Examples

  • Updated examples to use new APIs.
  • Fix layout on mobile.

#40

0.15.0-rc2 (Jun 14, 2016)

Base API

  • Fix user profile information being incorrectly updated in some cases, causing profile information to be lost event if it was present.

WebRTC

  • DataShare and FileShare has learn how to delete items and clear themselves.
  • Fix ScreenSource when used in Chrome.
  • Fix file sharing and document sharing being broken in some cases.
  • FileShare now properly emits an update event with a value property instead of fileRef.
  • Fix passive calls being broken when they tried to override an existing inactive or active call.

Build

  • Added missing cct-dom-sharing.js to published npm files.

#41

0.15.0-rc3 (Jun 15, 2016)

WebRTC

  • Added Recorder media node, accessible via cct.media.Recorder.

Examples

  • Fixed AudioMeter example.

#42

0.15.0-rc4 (Jun 16, 2016)

WebRTC

  • Changed MediaNodeOutput to be able to connect to multiple inputs at once.
  • Fix default constraints of ScreenSource in Chrome, and always use default video width and height unless explicitly set.

Documentation

  • Updated cct namespace docs to reflect the latest changes.