July Product Release (x.4.11)

by anton.venema 20. July 2014 07:53

New builds are up! This is a feature/patch release for IceLink, and a minor patch release for WebSync and TheRest. The main features added to IceLink in this build are...

  • Opus all around! High-definition audio is finally here. Opus support has been added for iOS, Android, .NET, Mac, Java, Xamarin.iOS, and Xamarin.Android. Opus for Windows 8 and Windows Phone 8 is coming soon.
  • Audio/video support for Xamarin.iOS. Check out the new Xamarin.iOS.Conference.WebRTC example.
  • Experimental audio/video support for Windows Phone. This is definitely alpha-level stuff. The next release should firm this up.
  • Support for pausing/resuming local audio and video. Android needed this for its activity lifecycle, but other platforms can benefit when under load by selectively turning off local media streams.
  • Big improvements in layout management. The options and algorithms have been drastically improved. There's very little you can't do using the built-in layout manager now.
  • Audio resampling is fully integrated. Audio is now always be captured at 48000Hz and down-sampled if needed.
  • Video previews are automatically mirrored on desktop platforms. This can, of course, be disabled if desired.
  • OpenGL video rendering on iOS has been improved so late frames are discarded instead of queued. The render queue should never get backed up now.
  • Overhauled examples. The new example structure better illustrates the separation of signalling vs. local media vs. conferences. This should help new users better understand how to integrate custom components.
  • The WebSync extension for IceLink has been updated to support continuous P2P connections even with signalling interruptions. To do this, it now includes a dependency on the WebSync Chat extension. If you are using the WebSync extension for IceLink, we recommend updating to this version.

As always, please send us your feedback! Check out support.frozenmountain.com to submit and vote on feature requests/ideas as well as ask questions from our technical staff and receive prompt answers. For any other issues, feel free to send us a message.


Zendesk Support

by anton.venema 16. July 2014 20:47

We are experiencing issues with authentication for our Zendesk support system. We are working with Zendesk to resolve the issue as quickly as possible.

Update (9:06am PST): The issue has been resolved. If you are still experiencing issues, please contact support@frozenmountain.com.


IceLink and ActiveX

by anton.venema 22. June 2014 19:25

We have issued a re-release of IceLink 2.4.10 (2.4.10-3) to address a problem installing the ActiveX control on certain Windows installations. This issue should be resolved and has been tested successfully on a variety of systems with various levels of access control. Thanks to everyone who reported the issue. As always, if you experience any issues installing or using any of our components, please let us know!


IceLink in Action!

by jerod.venema 13. June 2014 17:46

We recently had the pleasure of working with the MIND Research Institute to integrate IceLink into a cool new application to assist students with their learning: ST Math!

"To transform math education, a radically different approach is required.

The ST Math® instructional software program is that approach. But ST Math isn't just unique because of its research-based, visual approach to teaching and learning math. It sets the industry standard for an effective, interactive and 1:1 blended learning solution. ST Math enables teachers to reach all students at their level, and provides students with the opportunity to be successful learners."

In order to help out our friends over at the MIND Research Institute, we threw together an IceLink server at the last moment on AWS for the students to use in one of their first demos, and it went off without a hitch.

IceLink allowed the MIND Research Institute to quickly establish communication between the various students to provide a truly interactive learning experience. 

Learn more about the MIND Research Institute or watch Matthew Peterson's TED talk, and check out the pictures below!


May Product Release (x.4.10)

by anton.venema 22. May 2014 03:31

Another big release is out the door! Let's cut to the chase and have a look at some of the highlights:

  • IceLink gets a brand new ActiveX control for Internet Explorer! The Java applet is still available in case ActiveX isn't supported.
  • Both the WebRTC ActiveX control and Java applet get context menus for muting/unmuting and switching audio/video sources.
  • The layout algorithms in IceLink have been vastly improved - more configurable, smarter bounding boxes, and even presets for Skype/GoogleHangouts/Facetime-style configurations!
  • IceLink gets a Distributor class to help with routing media from a narrow-bandwidth channel to a large audience.
  • Muting video streams in IceLink now sends a black image so the remote peer doesn't appear frozen.
  • IceLink's Conference class gets multi-server support for high-availability.
  • The WebRTC LocalMediaStream class now has tons of options for switching devices and muting/unmuting.
  • WebSync and TheRest both get a JSON provider framework and come bundled with a Json.NET provider.
  • WebSync, TheRest, and IceLink for iOS/Mac now have shortened method names where possible in addition to the old ones to improve readability.
  • Lots of bug fixes and improvements.

Check out the full change log on the Downloads page!

As always, please send us your feedback! Check out support.frozenmountain.com to submit and vote on feature requests/ideas as well as ask questions from our technical staff and receive prompt answers. For any other issues, feel free to send us a message.


WebRTC Conference & Expo IV

by anton.venema 13. May 2014 20:25

Come join us at the WebRTC Conference and Expo this June in Atlanta! We will be stationed at booth 223 and would love to meet you all in person. Use coupon code FROZEN and get 25% off your conference pass! We also have a limited number of free passes available on a first-come, first-serve basis. Please contact us if you are interested in going!

Click here to view the press release.


March Product Release (x.4.7)

by anton.venema 16. March 2014 04:58

The March product release is here! There have been a few minor releases in between, and we opted to go past February to make sure we could get some "bigger" changes implemented. Performance improvements have been a major focus for us in this release, especially on mobile platforms. This build brings mobile performance up to the max, and should free us up to add reliable data-channels and support for Windows Phone (which we know many of you are waiting for). Aside from bug fixes, here are some of the highlights for this release:

  • IceLink gets full WebRTC support (audio/video) for Xamarin.Android. Xamarin.iOS is in the works, coming soon.
  • The pipeline for the IceLink, WebSync, and TheRest Java SDKs have received major performance improvements.
  • For IceLink, the WebRTC extension for Android now uses an OpenGL video render provider that is radically faster than the previous iteration.
  • The Android video capture provider also discards late frames so there is never a backlog of video for remote clients to process.
  • The WebRTC Java applet for IceLink is confirmed working 100% across Windows/Mac/Linux 32-bit/64-bit in a plethora of web browsers that don't natively support WebRTC.
  • IceLink now limits PLI packet delivery to avoid over-congesting the network with keyframes. It also now includes improved packet-loss detection at the video codec level to avoid messy artifacts in lossy network conditions.
  • All issues related to DTLS on Android are resolved.
  • In IceLink, all issues related to WebRTC audio playback quality in Chrome/Firefox are resolved.
  • The WebSync SDK now includes a WCF extension for .NET so you can consume or host a WCF service using WebSync for duplex communication. You can even host a WCF service using a WebSync client.
  • TheRest now supports "local only" methods so you can trigger various internal operations (like migrations) using a thin web request instead of a separate thick application.

As always, please send us your feedback! Check out support.frozenmountain.com to submit and vote on feature requests/ideas as well as ask questions from our technical staff and receive prompt answers. For any other issues, feel free to send us a message.


January Product Release (x.4.3)

by anton.venema 3. January 2014 05:21

We just narrowly missed the end of December due to holidays, so we're going to call this one the January release (x.4.3). We are actively working on new features like SCTP and support for Windows Phone, but this release includes too many good things to hold it off any longer. Besides miscellaneous bug fixes, notable improvements are:

  • Windows 8 gets some love with an IceLink WebRTC audio/video chat example.
  • Windows Phone libraries get awaitable "Async" method overloads for asynchronous methods.
  • Support for clients without DTLS-SRTP support (like Chrome on Android) has been improved.
  • LocalMediaStream in IceLink gets new API methods to help make muting/unmuting easier (MuteAudio/MuteVideo/UnmuteAudio/UnmuteVideo/IsAudioMuted/IsVideoMuted).
  • IceLink now supports retrieving a list of audio/video device names (GetAudioDeviceNames and GetVideoDeviceNames in UserMedia).
  • IceLink now has support for sending different frames to different peers (via RaiseFrame overloads in AudioCaptureProvider/VideoCaptureProvider).
  • Visual Studio 2013 solution files for all Microsoft platform examples.
  • libvpx has been updated, and now includes an x86_64 slice in the iOS WebRTC example to support the new 64-bit simulator.
  • The JavaScript API has been improved across the board. Date-time serialization should be 100% consistent with other platforms. The error messages thrown when an invalid object literal is passed into a method have been vastly improved.
  • In WebSync, extension values can now be set as object literal key/values in JavaScript. Calling "client.connect({ foo: 'bar' });" will automatically set the Bayeux extension named "foo" to value "bar" and send it to the server.
  • WebSyncProxy has been added to the WebSync 4 On-Demand SDK (in FM.WebSync.Server.dll).

As always, please send us your feedback! Check out support.frozenmountain.com to submit and vote on feature requests/ideas as well as ask questions from our technical staff and receive prompt answers. For any other issues, feel free to send us a message.


November Product Release (x.4.1)

by anton.venema 25. November 2013 20:28

The November release is out as version x.4.1! We were Gold sponsors at the WebRTC World conference last week in Santa Clara, California, where we had the privilege of presenting IceLink (and WebSync) as premium SDKs for developing cross-platform WebRTC applications. This release includes some of the features announced at that conference, including DTLS key exchange (now integrating with Firefox nightly) across all platforms and improved video call quality. Video calls on the local network have always been good, but we are working tirelessly to make remote video calls crystal clear. We received some great feedback from people at the conference, and we look forward to bringing you reliable data channels and even better call quality before the end of the year.

But wait, there's more! We are proud to introduce WebSync 4 On-Demand to you today. The new SDK is available for you to download, so please check it out! WebSync 4 On-Demand bring all the features of WebSync 4 to our hosted solution, including WebSocket protocol support, binary data streams, client-to-client notifications, and support for new client platforms like Windows Phone, Windows 8, Mac, Unity, and Xamarin.iOS/Android!

Here are some highlights from this release.

  • WebSync 4 On-Demand SDK is available!
  • IceLink now supports DTLS-SRTP key exchange across all platforms. Tested working against Firefox nightly (public release December 10).
  • IceLink now includes network-level jitter buffers to improve audio and video call quality on WAN links.
  • TheRest now automatically parses incoming file streams for multipart form submissions.
  • Fixed several bugs in FM core libraries, including date serialization inconsistencies in Java/iOS/Mac/JavaScript and UTF-8 decoding quirks in JavaScript.
  • IceLink's JavaScript SDK now properly handles broadcast/receive application scenarios where one of the peers receives, but does not send, media.
  • IceLink's JavaScript SDK now better handles audio-only conferences.

As always, we love your feedback! Check out support.frozenmountain.com to submit and vote on feature requests/ideas as well as ask questions from our technical staff and receive prompt answers. For any other issues, feel free to send us a message.


October Product Release (x.3.12)

by anton.venema 11. October 2013 20:31

The October product release is here! This is primarily a bug fix release, and quite a big one at that. A big thank you to everyone who reported issues and helped us diagnose problems. Support for DTLS handshaking almost made it into this release (it's about 95% complete), but we felt stability needed to take priority over new features. Some bug fix highlights:

  • Updated Android video capture in IceLink to use NV21 instead of YV12 since several Samsung devices implement YV12 incorrectly.
  • Added query-string parameter value encoding for JavaScript across the board.
  • Added exception handling for bad references in WebSync/TheRest when initializing. (Bad references should still be fixed, but at least the software loads.)
  • Updated socket receive code to iterative instead of recursive implementation in WebSync Cache. (Should avoid StackOverflowException on very large requests/responses.)
  • Updated NET.Server's HttpListener implementation so HEAD requests are ignored. (Should avoid ProtocolViolationException.)
  • Added proper handling of wildcards in domains when using HTML5 postMessage for transport in JavaScript (WebSync and TheRest).
  • Updated CORS transport in JavaScript to re-use pre-flight OPTIONS requests whenever possible (WebSync and TheRest).
  • Resolved glitch in iOS/Mac base64 implementation.
  • Updated IceLink WPF image render provider to avoid race condition with initial Image control creation.
  • Updated IceLink JavaScript to allow audio/video=false for receive-only implementations.
  • Updated STUN client implementations to accept either XOR-MAPPED-ADDRESS or MAPPED-ADDRESS in response.
  • Fixed several bugs related to Android audio capture and playback in IceLink.
  • Fixed bug where video could not be received without video being offered in IceLink.
  • Fixed race condition in IceLink where candidates might arrive before a link had completely initialized.
  • Fixed UDP socket implementation in Java so it returns the proper dot-notation of an IP address.
  • Updated TURN server implementation to interface with Chrome's TURN client implementation.
  • Added SecuritySafeCritical attribute to Windows 8 DNS resolution methods in IceLink to avoid security exception.
  • Fixed locking issue in IceLink Conference when connecting to multiple peers.
  • Fixed bug where some TURN connections might not be established if the controlled client was behind a symmetric firewall.
  • Updated IceLink WebSync extension so all events are properly detached when leaving a conference.
  • Updated .NET LayoutManager to catch exceptions thrown when manipulating controls in IceLink.
  • Fixed data-channel SSRC generation in IceLink so it never overflows to a negative number.
  • Fixed error thrown when sending an empty string to a data-channel in IceLink.

It's not all bug fixes, though. A few new features:

  • Added DomainName to WebSyncEventArgs. This represents the client-side referrer (or DomainName specified by thick clients).
  • Added ConnectArgs to StreamFailureArgs. This represents the connect arguments about to be used to re-handshake with the server and allows simple modification of the arguments before this happens.
  • Added TextViewLogProvider for Android, FMTextViewLogProvider for iOS/Mac, and TextBlockLogProvider for Windows 8/Phone.
  • Added LocalCandidates and RemoteCandidates properties to Link in IceLink for access to selected local/remote candidates.

As always, we welcome your feedback! Check out support.frozenmountain.com to submit and vote on feature requests/ideas as well as ask questions from our technical staff and receive prompt answers. For any other issues, feel free to send us a message.