Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC) Version 2.0 Released 30 December 2014 1. Disclaimer This release note as well as the software described in it is furnished under license and may only be used or copied in accordance with the terms of the license. The information in this manual is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Intel Corporation. Intel Corporation assumes no responsibility or liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with this document. Except as permitted by such license, no part of this document may be reproduced, stored in a retrieval system, or transmitted in any form or by any means without the express written consent of Intel Corporation. 2. Introduction This is version 2.0 release of the Intel CS for WebRTC. It includes the Conference Server, Gateway Server for SIP as well as the Client SDK. Conference Server enables not only P2P style communication, but also the efficient WebRTC-based video conference. Gateway Server for SIP provides the WebRTC connectivity into SIP conferences. Client SDK allows you to develop Web Apps using JavaScript* APIs or Android* native Apps using Java* APIs. 3. New Features a. Added support for Firefox* browser client to the MCU server on both VP8 and H.264 codec. b. Provided both forward and mix streams for participants with different processing capabilities and network bandwidth. c. Added customized video layout configuration for MCU mixed video stream output, which is compliant with RFC5707 Media Server Markup Language (MSML). d. Added conference management service (Nuve’s) client binding on Android SDK. e. Enhanced the following intelligent QoS controls (NACK, FEC, and dynamic bitrate control), to improve conference quality against packet loss and network bandwidth variance. 4. Changes a. The MCU Administration UI is temporarily removed from 2.0 release package. b. The APIs in this version of the Client SDK has been refactored to make it more flexible and easier to use; therefore, there are several API changes that will need to be taking into account to move from version 1.5 to this latest version of the Intel CS for WebRTC. The following sections outline the changes to the APIs. c. For Android SDK: 1. Room has been renamed ConferenceClient. 2. ConferenceClient and PeerClient are tasks that execute in asynchronous mode; therefore, callbacks can be added to the following functions: a) ConferenceClient: join, leave, publish, unpublish, subscribe, unsubscribe. b) PeerClient: connect, disconnect, invite, accept, deny, publish, unpublish, send, stop. 3. Added PublishOptions and SubscribeOptions to publish and subscribe to the ConferenceClient. 4. Removed the following interfaces to ConferenceClientObserver, onRoomConnected, onRoomConnectFailed, onStreamSubscribed, because these events can now be subscribed using callbacks. 5. Use addObserver and removeObserver to add multiple observers to ConferenceClient and PeerClient since the constructors are no longer supported. 6. Before using the SDK APIs, the ClientContext.setApplicationContext must be called to pass application context to the WebRTC runtime. 7. Class Stream has been divided into LocalStream and RemoteStream. A few more inherited stream classes have also been added. 8. Added detailed information for WoogeenException, and exception type has been removed. 9. Adjusted parameter sequence for observer interfaces. d. For JavaScript SDK: 1. P2P room mode has been moved to the conference SDK. 2. Stream has been divided into LocalStream and RemoteStream. 3. Room has been renamed ConferenceClient and the following methods are now provided: join, leave, send, publish, unpublish, subscribe, unsubscribe, shareScreen. 4. Renamed events for PeerClient: a) stream-subscribed -> stream-added 5. Removed events for ConferenceClient: a) room-connected b) access-accepted c) access-denied d) stream-changed 6. Renamed events for ConferenceClient: a) client-joined -> user-joined b) client-left -> user-left c) room-disconnected -> server-disconnected 5. Known Issues For Client SDK: a. Apps developed with the Android SDK for P2P only support Chrome* browser for chatting. b. Firefox* support is limited to specific APIs without dynamic stream change in one P2P call due to its own limitation on renegotiation. c. Android SDK does not support P2P conference room in this version. d. Android SDK does not support secure Socket.IO connection in this version. For MCU Server: a. Android SDK for Conference doesn’t work with H.264 processing engine of non GPU-accelerated MCU server in this version. b. Chrome browser doesn’t support audio only scenario with mix stream on GPU-accelerated MCU Server. The workaround is subscriber also need to explicitly specify mix stream subscribe parameters as audio only “ConferenceClient.subscribe(stream, {video: false, audio: true});”. For Gateway for SIP: a. WebRTC Gateway for SIP only supports SIP devices, which can decode video packets with non-interleaved packetization mode due to the H.264 encoding engine limitation on max slice size setting. b. WebRTC Gateway for SIP doesn’t support SIP device initialized audio-only call which still has a video "m" line in its offer SDP to WebRTC client. 6. Important Notes The Intel CS for WebRTC provides secure video conference experience, including secure WebSocket on signaling, secure Room Token on user authentication, SRTP/DTLS on media transportation, HTTPS/SSL on sample web app, etc. This may not be sufficient for specific end customer’s deployment environments and Intel Corporation assumes no responsibility for potential security risks. The following notes explain some special conditions for using the APIs: a. Browser interoperation has only been tested between Chrome 39 and Firefox 34. b. Peer Server is deployed as reference implementation of signaling server for Peer to Peer Chat, which hasn’t support scaled deployment solution yet. c. The default TURN/STUN server is set to our sample server. You should replace it with your own server since the sample server may not always work. * Other names and brands may be claimed as the property of others.