Link to Github: https://github.com/Temasys/SkylinkJS/releases/tag/0.6.12
CDN links (gzipped)
Minified library: //cdn.temasys.com.sg/skylink/skylinkjs/0.6.12/skylink.min.js
Minified with all dependencies: //cdn.temasys.com.sg/skylink/skylinkjs/0.6.12/skylink.complete.min.js
Debug with all dependencies: //cdn.temasys.com.sg/skylink/skylinkjs/0.6.12/skylink.complete.js
Things that Developers should take note of
Android, iOS and C++ SDK interoperability
Forcing TURN connections
Note that when you set forceTURN option to true in init() function, it will filter all the ICE candidates to ensure "relay" candidate TURN connections. If you do not have TURN enabled for the Application Key used, the connections will NOT work.
However, when connecting Firefox and Safari / IE, issues were noted where "peerreflexive" remote candidates were being selected for connection in Firefox's end. This can be monitored in about:webrtc url in Firefox browser. This occurs occasionally with plugin versions 0.8.869 and below and the plugin team is investigating this issue on their end.
Removal of internal logic that disables trickle ICE after 3rd failed trickle ICE reconnection attempt
As of now, iceConnectionState event will always trigger the payload state with ICE_CONNECTION_STATE.TRICKLE_FAILED after each time state ICE_CONNECTION_STATE.FAILED is triggered and enableIceTrickle options is set to true in the init() function, which by default, the option is true when not configured in the init() function.
Previously, disabling of trickle ICE will work due to reconnection logic of destroying and re-creating the peer connection. But as implementations evolves, using re-negotiation as a method of reconnection would be an ideal way of reconnecting a connection.
This internal logic was no longer working since the 0.6.6 release.
Although implementing ICE restarts in the future would allows us to gather new ICE candidates with new ICE credentials, which makes disabling of trickle ICE work, we may not be implementing this logic anytime soon since it might not be a requirement as of this moment.