Maven Dependency
<code>compile(group: 'sg.com.temasys.skylink.sdk', name: 'skylink_sdk', version: '0.9.8-RELEASE', ext: 'aar'){ transitive = true }</code>
CDN links
- Skylink for Android SDK AAR:
https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.8/skylink_sdk-0.9.8-RELEASE.aar
- libWebRTC files (not required to download if using Android Studio set up as documented):
https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.8/arm64v8a/libjingle_peerconnection_so.so
https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.8/armeabiv7a/libjingle_peerconnection_so.so
https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.8/x86/libjingle_peerconnection_so.so
https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.8/x86_64/libjingle_peerconnection_so.so
- Readme and other docs:
https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.8/Android_SDK_Version_Required.md
https://cdn.temasys.com.sg/skylink/skylinksdk/android/0.9.8/SkylinkSDK_Android_Studio_Setup.md
- API Documentation
Notable changes
General
- Allow restarts between Web and Mobile.
- Screensharing from Web to Android now proceeds smoothly without need for any workarounds.
- Able to be introduced into Room by Privileged App Key user.
- Allows maximum data bandwidth to be set.
- Connects securely to Skylink servers using HTTPS.
Fixes
- Corrected previous errors in audio/video bandwidth setting.
- Corrected previous problems with Skylink Media Relay (SMR) where Android is unable to connect with IOS if IOS is in the room first.
- Corrected previous problems without SMR where file transfer did not work fully between Android and Web.
Known Issues
With Skylink Media Relay:
- Mobile is unable to initiate Restart
- Receiving screensharing from Web is not affected.
Users with no Audio and no Video for both send and receive configs are not supported:
- If a Peer joins a room with NO_AUDIO_NO_VIDEO for both send and receive configs, the Peer will not be able to connect to other Peers.
- This issue does not exist in a normal room (without Skylink Media Relay).
- Possible workaround is for user to join room with AUDIO_ONLY or VIDEO_ONLY for setAudioVideoReceiveConfig, but mute and not display these streams when they are received.
SkylinkConnection API changes:
connectToRoom
- Local media (if any exists) will be disposed and then obtained according to the SkylinkConfig provided in init.
getPeerId [NEW]
- Gets our PeerId, or return null if not available.
isRoomLocked [NEW]
- Checks if the room is locked.
refreshConnection [NEW]
- Tries to refresh the Connection with the specified Peer or all Peers.
- Able to indicate preference for ICE restart.
-- Whether ICE actually restarts depends on whether remote Peer(s) allows ICE restart.
restartConnection [DEPRECATED]
- Use refreshConnection instead.
Skylink Listener changes:
RemotePeerListener
.onRemotePeerConnectionRefreshed [NEW]
- Triggered when the connection with a remote peer is refreshed.
- PeerConnection refresh will no longer trigger onRemotePeerJoin.
.onRemotePeerJoin
- Will always be triggered before onRemotePeerMediaReceive.
SkylinkConfig API changes:
[get|set]AdvancedOptions
- Get/set a Map of advanced options that are not commonly used.
- One possible usage is to modify experimental features.
[is|set]AllowIceRestart [NEW]
- Get/set whether ICE restart is allowed, for e.g., in restarting connections with Peer.
- Note that while ICE restart is explicitly stated in SkylinkConnection API restartConnection, both Peers concerned in the restart need to allow ICE restart in their SkylinkConfig in order for ICE restart to occur.
[get|set]MaxDataBitrate [NEW]
- Get/set the maximum bandwidth in kbps allowed for data.
- If not set, no bandwidth restriction will be made for data.
isStunDisabled [REMOVED]
- Was deprecated.
- Use isAllowStun instead.
isTurnDisabled [REMOVED]
- Was deprecated.
- Use isAllowTurn instead.
Sample App
- Upgraded to the newly released Skylink SDK for Android 0.9.8.
- Used new SkylinkConnection APIs
-- refreshConnection [NEW]
- Used new/changed Listener methods
-- onRemotePeerConnectionRefreshed [NEW]
-- onRemotePeerLeave
- Added Popup menu for each remote Peer frame for actions in MultiPartyVideoCallFragment.
- Added Configuration page that allows setting various values without recompiling the Sample App.
-- Values that can be set:
--- Room names.
--- User names.
--- App Keys - including key ids, secrets and descriptions, and whether each is Skylink Media Relay (SMR) enabled.
-- Can be accessed by:
--- Click on action overflow icon (at top right).
--- Select "Configuration".
--- Select the rooms or App key tab for accessing room/user names or App key values respectively.
-- Configuration page values are stored and loaded from Preferences.
-- Selected App Key
--- An App key becomes the selected App key by tapping on the radio button on its left at the App keys Config page.
--- If Selected App key is deleted, Default key of the same SMR status becomes Selected App key.
-- Manipulation of App key lists.
--- Can Add, Edit, Delete.
--- No duplication of key id allowed.
---- If new key id entered (via adding or editing) already exists
----- Existing key is removed.
----- Except where existing key is Default key, in which case operation is abandoned.
-- Room and user name values:
--- Writen and loaded from Preferences.
--- Able to revert to Default room and user names by either:
---- Deleting current value.
---- Clicking button to reset to Default.
----- Will reset all values on the page!
- config.xml now provides Default values for:
-- App key and App key's secret.
--- 2 sets of this - one with Skylink Media Relay (SMR) Enabled and the other with it disabled.
--- If not provided and that App key was selected to connect to room, an error would occur in the attempt to connect.
-- SMR enabled or not (is_app_key_smr).
--- If Default key is used, this value will be used to choose (out of the two) the Default key with this value of SMR status.
-- Note that this file can be created by making a copy of the Config_example.xml at src/main/res/values.
--- Further instructions are given in Config_example.xml.