SKYLINKConnection Class Reference

Inherits from NSObject
Declared in SKYLINKConnection.h

Overview

You should make sure this objects does not get released as long as you need it, for example by storing it as a strong property.

Delegates

  lifeCycleDelegate

delegate related to life cycle, implementing the SKYLINKConnectionLifeCycleDelegate protocol.

@property (nonatomic, weak) id<SKYLINKConnectionLifeCycleDelegate> lifeCycleDelegate

Declared In

SKYLINKConnection.h

  remotePeerDelegate

delegate related to remote peer activities, implementing the SKYLINKConnectionRemotePeerDelegate protocol.

@property (nonatomic, weak) id<SKYLINKConnectionRemotePeerDelegate> remotePeerDelegate

Declared In

SKYLINKConnection.h

  mediaDelegate

delegate related to audio/video media, implementing the SKYLINKConnectionMediaDelegate protocol.

@property (nonatomic, weak) id<SKYLINKConnectionMediaDelegate> mediaDelegate

Declared In

SKYLINKConnection.h

  messagesDelegate

delegate related to various type of custom messages, implementing the SKYLINKConnectionMessagesDelegate protocol.

@property (nonatomic, weak) id<SKYLINKConnectionMessagesDelegate> messagesDelegate

Declared In

SKYLINKConnection.h

  fileTransferDelegate

delegate related to file transfer, implementing the SKYLINKConnectionFileTransferDelegate protocol.

@property (nonatomic, weak) id<SKYLINKConnectionFileTransferDelegate> fileTransferDelegate

Declared In

SKYLINKConnection.h

  recordingDelegate

delegate related to room recording, implementing the SKYLINKConnectionRecordingDelegate protocol.

@property (nonatomic, weak) id<SKYLINKConnectionRecordingDelegate> recordingDelegate

Declared In

SKYLINKConnection.h

  statsDelegate

delegate related to stats providing, implementing the SkylinkStatsDelegate protocol.

@property (nonatomic, weak) id<SKYLINKConnectionStatsDelegate> statsDelegate

Declared In

SKYLINKConnection.h

Peer Id

  myPeerId

peer id of the current local user

@property (nonatomic, readonly) NSString *myPeerId

Declared In

SKYLINKConnection.h

  maxPeerCount

Maximun number of peers.

@property (nonatomic, assign) NSInteger maxPeerCount

Discussion

The default value depends on the configuration.

Declared In

SKYLINKConnection.h

Lifecycle

– initWithConfig:appKey:

Initialize and return a newly allocated connection object.

- (id)initWithConfig:(SKYLINKConnectionConfig *)config appKey:(NSString *)appKey

Parameters

config

The connection configuration object.

appKey

APP key.

Discussion

Changes in config after creating the object won’t affect the connection.

Declared In

SKYLINKConnection.h

– connectToRoomWithSecret:roomName:userInfo:

Join the room specifiying the shared secret, room name and user info.

- (BOOL)connectToRoomWithSecret:(NSString *)secret roomName:(NSString *)roomName userInfo:(id)userInfo

Parameters

secret

Shared secret.

roomName

Name of the room to join.

userInfo

User defined information (relating to oneself). May be an NSString, NSDictionary or NSArray.

Return Value

NO if a connection is already established.

Discussion

It is recommended to use connectToRoomWithCredentials:roomName:userInfo: after calculating the credentials on a server, but if the client application has no server implementation then this one should be used.

Declared In

SKYLINKConnection.h

– connectToRoomWithCredentials:roomName:userInfo:

Join the room specifiying the calculated credential info, room name and user info.

- (NSString *)connectToRoomWithCredentials:(NSDictionary *)credInfo roomName:(NSString *)roomName userInfo:(id)userInfo

Parameters

credInfo

A dictionary containing a credential, startTime and duration.

roomName

Name of the room to join.

userInfo

User defined information (relating to oneself). May be an NSString, NSDictionary or NSArray.

Return Value

nil if connection can be established otherwise a message specifying reason for connection denial.

Discussion

The dictionary ‘credInfo’ is expected to have 3 non-Null parameters: an NSString type ‘credential’, an NSDate type ‘startTime’ and an NSNumber type ‘duration’ in hours. The ‘startTime’ must be a correct time of the client application’s timezone. Both the ‘startTime’ and ‘duration’ must be the same as the ones that were used to calculate the credential. Failing to provide any of them will result in a connection denial.

Declared In

SKYLINKConnection.h

– connectToRoomWithStringURL:userInfo:

Join the room specifiying the calculated string URL and user info.

- (BOOL)connectToRoomWithStringURL:(NSString *)stringURL userInfo:(id)userInfo

Parameters

stringURL

Generated with room name, appKey, secret, startTime and duration. Typed NSString (not NSURL).

userInfo

User defined information (relating to oneself). May be an NSString, NSDictionary or NSArray.

Return Value

YES (success) if connection can be established. NO if a connection is already established.

Discussion

Use this method when you calculate the URL on your server with your API key, secret and room name. Allows you to avoid having those parameters in the iOS app code.

Declared In

SKYLINKConnection.h

– disconnect:

Leave the room.

- (void)disconnect:(void ( ^ ) ( ))completion

Parameters

completion

The completion block called on the UI thread after leaving the room. This block is a good place to deallocate SKYLINKConnection if desired. Leave as empty block if not required.

Discussion

Leave the room and remove any video renderers and PeerConnections.

Declared In

SKYLINKConnection.h

Room Control.

– refreshConnection:

Refresh peer connection with a specified peer.

- (void)refreshConnection:(NSString *)peerId

Parameters

peerId

The unique id of the peer with whom the connection is being refreshed.

Discussion

This method is provided as a convenience method. So that one can call if a peer streams are not behaving correctly.

Declared In

SKYLINKConnection.h

– lockTheRoom

Lock the room.

- (void)lockTheRoom

Declared In

SKYLINKConnection.h

– unlockTheRoom

Unlock the room.

- (void)unlockTheRoom

Declared In

SKYLINKConnection.h

Media

– muteAudio:

Mute/unmute own audio and trigger mute/unmute audio call back for all other peers.

- (void)muteAudio:(BOOL)isMuted

Parameters

isMuted

Flag to set if audio should be muted. Set to true to mute and false to unmute.

Declared In

SKYLINKConnection.h

– muteVideo:

Mute/unmute own video and trigger mute/unmute video call back for all other peers.

- (void)muteVideo:(BOOL)isMuted

Parameters

isMuted

Flag to set if video should be muted. Set to true to mute and false to unmute.

Declared In

SKYLINKConnection.h

– isAudioMuted

Checks if own audio is currently muted.

- (BOOL)isAudioMuted

Return Value

true if audio is muted and false otherwise.

Declared In

SKYLINKConnection.h

– isVideoMuted

Checks if own video is currently muted.

- (BOOL)isVideoMuted

Return Value

true if video is muted and false otherwise.

Declared In

SKYLINKConnection.h

– switchCamera

Switches between front and back camera. By default the front camera input is captured.

- (void)switchCamera

Declared In

SKYLINKConnection.h

Recording (Beta)

– startRecording

Start the recording of the room.

- (NSString *)startRecording

Return Value

The NSString return value is an error description. A nil value means no error occured.

Discussion

Warning: This feature is in BETA.

This is a Skylink Media Relay only feature, it needs to be enable for the API Key in Temasys developer console.

Declared In

SKYLINKConnection.h

– stopRecording

Stop the recording of the room.

- (NSString *)stopRecording

Return Value

The NSString return value is an error description. A nil value means no error occured.

Discussion

Warning: This feature is in BETA.

This is a Skylink Media Relay only feature, it needs to be enable for the API Key in Temasys developer console.

Declared In

SKYLINKConnection.h

Messaging

– sendCustomMessage:peerId:

Send a custom message (dictionary, array or string) to a peer via signaling server.

- (void)sendCustomMessage:(id)message peerId:(NSString *)peerId

Parameters

message

User defined message to be sent. May be an NSString, NSDictionary or NSArray.

peerId

The unique id of the peer to whom the message is sent.

Discussion

If the ‘peerId’ is not given then the message is broadcasted to all the peers.

Declared In

SKYLINKConnection.h

– sendDCMessage:peerId:

Send a message (dictionary, array or string) to a peer via data channel.

- (BOOL)sendDCMessage:(id)message peerId:(NSString *)peerId

Parameters

message

User defined message to be sent. May be an NSString, NSDictionary, NSArray.

peerId

The unique id of the peer to whom the message is sent.

Return Value

YES if the message has been succesfully sent to all targeted peers, if NO is returned and verbose is enabled then informations will be logged.

Discussion

If the ‘peerId’ is not given then the message is broadcasted to all the peers.

Declared In

SKYLINKConnection.h

– sendBinaryData:peerId:

Send binary data to a peer via data channel.

- (void)sendBinaryData:(NSData *)data peerId:(NSString *)peerId

Parameters

data

Binary data to be sent to the peer. The maximum size the method expects is 65456 bytes.

peerId

The unique id of the peer to whom the data is sent.

Discussion

If the ‘peerId’ is not given then the data is sent to all the peers. If the caller passes data object exceeding the maximum length i.e. 65456, excess bytes are truncated to the limit before sending the data on to the channel.

Declared In

SKYLINKConnection.h

File Transfer

– sendFileTransferRequest:assetType:peerId:

This will trigger a file permission event at a peer.

- (void)sendFileTransferRequest:(NSURL *)fileURL assetType:(SKYLINKAssetType)assetType peerId:(NSString *)peerId

Parameters

fileURL

The url of the file to send.

assetType

The type of the asset to send.

peerId

The unique id of the peer to whom the file would be sent.

Exceptions

exception

An exception will be raised if there is already a file transfer being done with the same peer.

Declared In

SKYLINKConnection.h

– sendFileTransferRequest:assetType:

This will trigger a broadcast file permission event at all peers in the room.

- (void)sendFileTransferRequest:(NSURL *)fileURL assetType:(SKYLINKAssetType)assetType

Parameters

fileURL

The url of the file to send.

assetType

The type of the asset to send.

Discussion

If all the data channel connections are busy in some file transfer then this message will be ignored. If one or more data channel connections are not busy in some file transfer then this will trigger a broadcast file permission event at the available peers.

Declared In

SKYLINKConnection.h

– acceptFileTransfer:filename:peerId:

Accept or reject the file transfer request from a peer.

- (void)acceptFileTransfer:(BOOL)accept filename:(NSString *)filename peerId:(NSString *)peerId

Parameters

accept

Flag to specify whether the request is accepted.

filename

The name of the file in request.

peerId

The unique id of the peer who sent the file transfer request.

Declared In

SKYLINKConnection.h

– cancelFileTransfer:peerId:

Cancel the existing on going transfer at anytime.

- (void)cancelFileTransfer:(NSString *)filename peerId:(NSString *)peerId

Parameters

filename

The name of the file in request (optional).

peerId

The unique id of the peer with whom file is being transmitted.

Declared In

SKYLINKConnection.h

Miscellaneous

– sendUserInfo:

Update user information for every other peer and triggers user info call back at all the other peer’s end.

- (void)sendUserInfo:(id)userInfo

Parameters

userInfo

User defined information. May be an NSString, NSDictionary or NSArray.

Declared In

SKYLINKConnection.h

– getUserInfo:

Get the cached user info for a particular peer.

- (id)getUserInfo:(NSString *)peerId

Parameters

peerId

The unique id of the peer.

Return Value

User defined information. May be an NSString, NSDictionary or NSArray.

Declared In

SKYLINKConnection.h

– getWebRTCStatsForPeerId:mediaDirection:

Get webRTC stats.

- (void)getWebRTCStatsForPeerId:(NSString *)peerId mediaDirection:(int)mediaDirection

Parameters

peerId

the peerId for which connection you want the stats

mediaDirection

used to specify whether you want upload or download stats, or both (Both:0, mediaSent: 1, mediaReceived: 2).

Discussion

Warning: This feature is in BETA.

Stats are returned within the SKYLINKConnectionStatsDelegate

Declared In

SKYLINKConnection.h

– roomId

Get room ID.

- (NSString *)roomId

Return Value

Room ID.

Discussion

This is generally not needed.

Declared In

SKYLINKConnection.h

Utility

+ getSkylinkVersion

Get the version string of this Skylink SDK for iOS.

+ (NSString *)getSkylinkVersion

Return Value

Version string of this Skylink SDK for iOS.

Declared In

SKYLINKConnection.h

+ setVerbose:

Enable/disable verbose logs for all the connections.

+ (void)setVerbose:(BOOL)verbose

Parameters

verbose

enable/disable verbose logs. Default is NO.

Discussion

Warning: You should always disable logs in RELEASE mode.

Declared In

SKYLINKConnection.h

+ calculateCredentials:duration:startTime:secret:

Calculate credentials to be used by the connection.

+ (NSString *)calculateCredentials:(NSString *)roomName duration:(NSNumber *)duration startTime:(NSDate *)startTime secret:(NSString *)secret

Parameters

roomName

Name of the room.

duration

Duration of the call in hours.

startTime

Start time of the call as per client application time zone.

secret

The shared secret.

Return Value

The calculated credential string.

Declared In

SKYLINKConnection.h