- Code: Select all
var videoOn = '@Model.DefaultVideoOn.ToString().ToLower()';
var apiKey = '@Model.OpenTokKey';
var sessionId = '@Model.SessionId';
var token = '@Model.Token';
var userId = @(Model.CustomerId);
var meetingId = @(Model.MeetingId);
var isHost = @(Model.IsHost.ToString().ToLower());
var recordingEnabled = @(Model.RecordingEnabled.ToString().ToLower());
var subscribers = {};
var publisher;
var session;
var archive;
var deviceManager;
session = TB.initSession(sessionId);
session.addEventListener("sessionConnected", sessionConnectedHandler);
session.addEventListener("streamCreated", streamCreatedHandler);
session.addEventListener("archiveCreated", archiveCreateHandler);
session.addEventListener('sessionRecordingStopped', sessionRecordingStoppedHandler);
connect();
function connect() {
session.connect(apiKey, token);
}
function sessionConnectedHandler(event) {
if (isHost && recordingEnabled) {
var archiveTitle = "ArchivedChat_" + meetingId;
session.createArchive(apiKey, "perSession", archiveTitle);
}
// Subscribe to streams that were in the session when we connected
subscribeToStreams(event.streams);
addDeviceManager();
publisher = session.publish('mystream', { "width": 260, "height": 183, publishVideo:videoOn });
}
function subscribeToStreams(streams) {
for (var i = 0; i < streams.length; i++) {
// Make sure we don't subscribe to ourself
if (streams[i].connection.connectionId == session.connection.connectionId) {
break;
}
// Create the div to put the subscriber element in to
var div = $(document.createElement('div')).attr("id", "stream" + streams[i].streamId);
$("#stream-container").append(div);
// Subscribe to the stream
var props = {
"width": 410,
"height": 300
};
session.subscribe(streams[i], "stream" + streams[i].streamId, props);
}
}
function addDeviceManager() {
deviceManager = TB.initDeviceManager(apiKey);
deviceManager.detectDevices();
}
function archiveCreateHandler(event) {
archive = event.archives[0];
session.startRecording(archive);
}
function streamCreatedHandler(event) {
// Subscribe to any new streams that are created
subscribeToStreams(event.streams);
}
function showDeviceManager() {
deviceManager.displayPanel(null, publisher);
}
function sessionRecordingStoppedHandler(event) {
if (isHost && recordingEnabled) {
session.closeArchive(archive);
}
}
can anyone see what the problem is here?
thanks!
pete