new splitClient(onEvents, domElements, options)
SplitClient usecase
Parameters:
| Name | Type | Description |
|---|---|---|
onEvents |
object | Event handlers: onEvents |
domElements |
object | DOM elements: domElements |
options |
object | Available options: options |
Returns:
SplitClient actions
- Type
- Promise
Example
var onEvents = {
onCalling: () => {
// Calling a peer
},
onRegisteredFailed: cause => {
// Failed registered
console.log(cause);
},
onHangup: (code, cause) => {
// Hang up call
},
onAcceptedAudio: (data, stream) => {
// Accepted Audio by the remote peer
console.log(data.userName);
console.log(data.sessionId);
},
onReadyLocalAudio: () => {
// The local audio is ready
},
onReadyLocalStream: isVideo => {
// The local video is ready
console.log("Video is ready: " + isVideo);
},
onAcceptedVideo: stream => {
// Accepted Video by remote peer
},
onAcceptedData: () => {
// Accepted Data by remote peer
},
onDataReceived: (type, data, filename) => {
// Data received by the datachannel
if(type === 'application/x-chat') { }
else if(type === 'text/plain') { }
else if(type === 'application/pdf') { }
else if(type === 'application/zip') { }
else if(type === 'application/x-rar') { }
else if(type === 'image/jpeg') {}
else if(type === 'image/png') {}
else if(type === 'application/x-docx') {}
else if(type === 'application/x-pptx') {}
else if(type === 'application/x-xlsx') {}
else if(type === 'application/vnd.oasis.opendocument.text') {}
},
onStartRecording: () => {
// Start recording
},
onStopRecording: () => {
// Stop recording
},
onScreensharingAccepted: () => {
// ScreenSharing Accepted
},
onScreensharingClosed: () => {
// ScreenSharing Closed
},
onJoined: () => {
// You've joined the SPLIT session
},
onFileTransferOk: fileId => {
// File Transfer OK
},
onFileTransferKo: fileId => {
// File Transfer KO
},
onNotified: (action, data) => {
// Notification received from the remote peer
},
onVideoClosed: () => {
// Remote video is closed
}
};
var domElements = {
local: document.getElementById('localvideo'),
remote: document.getElementById('remotevideo'),
screenRemote: document.getElementById('remotescreen'),
screenLocal: document.getElementById('localscreen')
};
var options = {
dataChannel: {
dataEnabled: true,
allowedTypes: ['application/x-chat', 'image/jpeg', 'image/png', 'application/pdf'],
maxSize: 5, // In MB
fileTransmission: {
timeout: 5, // Minutes
retransmissionDelay: 15 // Seconds
}
},
stream: {
audioEnabled: true,
videoEnabled: true,
aDeviceId: null,
vDeviceId: null,
audioStream: null,
videoStream: null
},
account: "******" // Multiple mode
};
usecases.splitClient(onEvents, domElements, options)
.then(action => {
// Use Case has been atacched succesfully
...
})
.catch(cause => {
// Error attaching the Use Case
console.log("Error Attach " + cause );
})
Methods
-
<inner> call(callerId, videoRate, screenRate, headers, uri)
-
Client sends a request to start a call to an Agent
Parameters:
Name Type Description callerIdstring Caller ID
videoRateinteger Video Bitrate (bps) (Optional)
screenRateinteger Screen Bitrate (bps) (Optional)
headersobject Custom SIP Headers (Optional)
uriobject SIP URI to call (Optional. default: sip:videortc@localhost:5099)
Returns:
- Type
- nothing
Example
action.call('IVRPowers', 128000, 256000, {"My-Header": "Value"}, "sip:videortc@localhost:5099"); -
<inner> closeUsecase()
-
Close the current UseCase. It's recommended combine with disconnect method
Returns:
- Type
- nothing
Example
action.closeUsecase(); myVideoApp.disconnect(); // Recommended
-
<inner> getLicense()
-
The VideoGateway is requested about the features of the contracted license
Returns:
License Information (ScreenSharing, LiveChat and VideoRecording )
- Type
- Object
Example
var myLicense = action.getLicense(); console.log(myLicense);
-
<inner> hangup()
-
Client sends a request to hangup the call
Returns:
- Type
- nothing
Example
action.hangup();
-
<inner> notify(action, data)
-
Send a notification to the other peer via the VideoGateway
Parameters:
Name Type Description actionstring Identifies the notification type
datastring Useful for sending extra data (Optional)
Example
action.notify('open-map', 'data'); -
<inner> sendData(type, data, cOk, cKo, filename)
-
Sends a message (Chat or File) through the DataChannel
Parameters:
Name Type Description typestring MIME Type (e.g: 'application/x-chat', 'text/plain', 'application/pdf', 'application/zip', 'application/x-rar', 'image/jpeg', 'image/png', 'application/x-docx', 'application/x-pptx', 'application/x-xlsx', 'application/vnd.oasis.opendocument.text')
datastring Data Content
cOkfunction Callback success function
cKofunction Callback failed function
filenamestring File Name (e.g: file.zip) (Optional)
Returns:
- Type
- nothing
Example
action.sendData('application/x-chat', 'Hello Mike!', function(cOk) { // Success }, function(error) { // Error console.log(error); } ) -
<inner> sendDtmf(dtmf)
-
Send a DTMF tone
Parameters:
Name Type Description dtmfstring Digit
Returns:
- Type
- nothing
Example
action.sendDtmf("5"); // Also "*" and "#" -
<inner> setMode(video, data)
-
Modifies the audio/video mode of the local peer while the call is established.
Parameters:
Name Type Description videoboolean Enable Video?
databoolean Enable Data?
Example
action.setMode(true, true);
-
<inner> startScreensharing(id, cOk, cKo)
-
The Client sends a request to start Screensharing
Parameters:
Name Type Description idinteger Screen Id (Deprecated - Any value sent in this parameter will be ignored)
cOkfunction Callback Ok
cKofunction Callback Error
Returns:
- Type
- nothing
Example
action.startScreensharing(1234, function() { // Success }, function(cause) { // Error }) -
<inner> stopScreensharing(cOk, cKo)
-
The Client sends a request to stop Screensharing
Parameters:
Name Type Description cOkfunction Callback Ok
cKofunction Callback Error
Returns:
- Type
- nothing
Example
action.stopScreensharing(function() { // Success }, function(cause) { // Error }) -
<inner> toggleAudio()
-
Toggle local Audio stream (Mute/Unmute)
Returns:
Is audio muted?
- Type
- boolean
Example
action.toggleAudio(); // true or false
-
<inner> toggleAudioRemote()
-
Toggle remote Audio stream (Mute/Unmute)
Returns:
Is audio muted?
- Type
- boolean
Example
action.toggleAudioRemote(); // true or false
-
<inner> toggleVideo()
-
Toggle local Video stream (Mute/Unmute)
Returns:
Is video muted?
- Type
- boolean
Example
action.toggleVideo(); // true or false