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: (isReady, stream) => { // The local video stream is or not ready }, onAcceptedVideo: stream => { // Accepted Video by remote peer }, onRemoteVideoReady: (isReady, stream) => { // The remote video stream is or not ready }, 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 }, onSipMessage: (sender, content) => { // SIP Message received } }; 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, resolution: 'vga' // 'qvga', 'vga', 'hd', 'full-hd', '4k', '8k' frameRate: 30, 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
-
call(callerId, videoRate, screenRate, headers, uri)
-
Client sends a request to start a call to an Agent
Parameters:
Name Type Description callerId
string Caller ID
videoRate
integer Video Bitrate (bps) (Optional)
screenRate
integer Screen Bitrate (bps) (Optional)
headers
object Custom SIP Headers (Optional)
uri
object SIP URI to call (Optional. default: sip:videortc@127.0.0.1:5099)
Returns:
- Type
- nothing
Example
action.call('IVRPowers', 128000, 256000, {"My-Header": "Value"}, "sip:videortc@127.0.0.1:5099");
-
closeUsecase()
-
Close the current UseCase. It's recommended combine with disconnect method
Returns:
- Type
- nothing
Example
action.closeUsecase(); myVideoApp.disconnect(); // Recommended
-
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);
-
hangup()
-
Client sends a request to hangup the call
Returns:
- Type
- nothing
Example
action.hangup();
-
listDevices()
-
List available and selected devices
Example
action.listDevices();
-
notify(action, data)
-
Send a notification to the other peer via the VideoGateway
Parameters:
Name Type Description action
string Identifies the notification type
data
string Useful for sending extra data (Optional)
Example
action.notify('open-map', 'data');
-
replaceAudio(type, id)
-
Replace the local Audio track
Parameters:
Name Type Description type
string ('next', or 'id')
id
string Device Id (optional)
Example
action.replaceAudio('next');
-
replaceAudioOutput(element, type, id)
-
Replace the audio output device
Parameters:
Name Type Description element
HTMLAudioElement HTML
type
string ('next', or 'id')
id
string Device Id (optional)
Example
action.replaceAudioOutput(document.querySelector('#remote-audio'), 'next');
-
replaceVideo(type)
-
Replace the local Video track
Parameters:
Name Type Description type
string ('user', 'environment', 'left', 'right' or 'next', or 'id')
Example
action.replaceVideo('environment');
-
sendData(type, data, cOk, cKo, filename)
-
Sends a message (Chat or File) through the DataChannel
Parameters:
Name Type Description type
string 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')
data
string Data Content
cOk
function Callback success function
cKo
function Callback failed function
filename
string 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); } )
-
sendDtmf(dtmf)
-
Send a DTMF tone
Parameters:
Name Type Description dtmf
string Digit
Returns:
- Type
- nothing
Example
action.sendDtmf("5"); // Also "*" and "#"
-
setMode(video, data)
-
Modifies the audio/video mode of the local peer while the call is established.
Parameters:
Name Type Description video
boolean Enable Video?
data
boolean Enable Data?
Example
action.setMode(true, true);
-
startScreensharing(id, cOk, cKo)
-
The Client sends a request to start Screensharing
Parameters:
Name Type Description id
integer Screen Id (Deprecated - Any value sent in this parameter will be ignored)
cOk
function Callback Ok
cKo
function Callback Error
Returns:
- Type
- nothing
Example
action.startScreensharing(1234, function() { // Success }, function(cause) { // Error })
-
stopScreensharing(cOk, cKo)
-
The Client sends a request to stop Screensharing
Parameters:
Name Type Description cOk
function Callback Ok
cKo
function Callback Error
Returns:
- Type
- nothing
Example
action.stopScreensharing(function() { // Success }, function(cause) { // Error })
-
toggleAudio()
-
Toggle local Audio stream (Mute/Unmute)
Returns:
Is audio muted?
- Type
- boolean
Example
action.toggleAudio(); // true or false
-
toggleAudioRemote()
-
Toggle remote Audio stream (Mute/Unmute)
Returns:
Is audio muted?
- Type
- boolean
Example
action.toggleAudioRemote(); // true or false
-
toggleVideo()
-
Toggle local Video stream (Mute/Unmute)
Returns:
Is video muted?
- Type
- boolean
Example
action.toggleVideo(); // true or false