From c3f5143c2c857d1ae71f9331d4d999799abc30bd Mon Sep 17 00:00:00 2001 From: origin <> Date: Fri, 4 Sep 2015 22:56:00 +0300 Subject: [PATCH 1/3] 24.08.15 --- kurento-one2one-composite-record/package.json | 17 + kurento-one2one-composite-record/server.js | 677 ++++++++++++++++++ .../static/bower.json | 29 + .../static/css/kurento.css | 77 ++ .../static/img/kurento.png | Bin 0 -> 6499 bytes .../static/img/naevatec.png | Bin 0 -> 52049 bytes .../static/img/pipeline.png | Bin 0 -> 41363 bytes .../static/img/spinner.gif | Bin 0 -> 8534 bytes .../static/img/transparent-1px.png | Bin 0 -> 68 bytes .../static/img/urjc.gif | Bin 0 -> 16756 bytes .../static/img/webrtc.png | Bin 0 -> 12375 bytes .../static/index.html | 146 ++++ .../static/js/index.js | 411 +++++++++++ kurento-one2one-composite/package.json | 17 + kurento-one2one-composite/server.js | 482 +++++++++++++ kurento-one2one-composite/static/bower.json | 29 + .../static/css/kurento.css | 77 ++ .../static/img/kurento.png | Bin 0 -> 6499 bytes .../static/img/naevatec.png | Bin 0 -> 52049 bytes .../static/img/pipeline.png | Bin 0 -> 41363 bytes .../static/img/spinner.gif | Bin 0 -> 8534 bytes .../static/img/transparent-1px.png | Bin 0 -> 68 bytes kurento-one2one-composite/static/img/urjc.gif | Bin 0 -> 16756 bytes .../static/img/webrtc.png | Bin 0 -> 12375 bytes kurento-one2one-composite/static/index.html | 143 ++++ kurento-one2one-composite/static/js/index.js | 326 +++++++++ 26 files changed, 2431 insertions(+) create mode 100644 kurento-one2one-composite-record/package.json create mode 100644 kurento-one2one-composite-record/server.js create mode 100644 kurento-one2one-composite-record/static/bower.json create mode 100644 kurento-one2one-composite-record/static/css/kurento.css create mode 100644 kurento-one2one-composite-record/static/img/kurento.png create mode 100644 kurento-one2one-composite-record/static/img/naevatec.png create mode 100644 kurento-one2one-composite-record/static/img/pipeline.png create mode 100644 kurento-one2one-composite-record/static/img/spinner.gif create mode 100644 kurento-one2one-composite-record/static/img/transparent-1px.png create mode 100644 kurento-one2one-composite-record/static/img/urjc.gif create mode 100644 kurento-one2one-composite-record/static/img/webrtc.png create mode 100644 kurento-one2one-composite-record/static/index.html create mode 100644 kurento-one2one-composite-record/static/js/index.js create mode 100644 kurento-one2one-composite/package.json create mode 100644 kurento-one2one-composite/server.js create mode 100644 kurento-one2one-composite/static/bower.json create mode 100644 kurento-one2one-composite/static/css/kurento.css create mode 100644 kurento-one2one-composite/static/img/kurento.png create mode 100644 kurento-one2one-composite/static/img/naevatec.png create mode 100644 kurento-one2one-composite/static/img/pipeline.png create mode 100644 kurento-one2one-composite/static/img/spinner.gif create mode 100644 kurento-one2one-composite/static/img/transparent-1px.png create mode 100644 kurento-one2one-composite/static/img/urjc.gif create mode 100644 kurento-one2one-composite/static/img/webrtc.png create mode 100644 kurento-one2one-composite/static/index.html create mode 100644 kurento-one2one-composite/static/js/index.js diff --git a/kurento-one2one-composite-record/package.json b/kurento-one2one-composite-record/package.json new file mode 100644 index 00000000..58055cb5 --- /dev/null +++ b/kurento-one2one-composite-record/package.json @@ -0,0 +1,17 @@ +{ + "name": "kurento-one2one-call", + "version": "6.1.0", + "private": true, + "scripts": { + "postinstall": "cd static && bower install" + }, + "dependencies": { + "express": "~4.12.4", + "minimist": "^1.1.1", + "ws": "~0.7.2", + "kurento-client": "6.1.0" + }, + "devDependencies": { + "bower": "^1.4.1" + } +} diff --git a/kurento-one2one-composite-record/server.js b/kurento-one2one-composite-record/server.js new file mode 100644 index 00000000..9dfa9809 --- /dev/null +++ b/kurento-one2one-composite-record/server.js @@ -0,0 +1,677 @@ +/* + * (C) Copyright 2014 Kurento (http://kurento.org/) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser General Public License + * (LGPL) version 2.1 which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + +var path = require('path'); +var express = require('express'); +var ws = require('ws'); +var minimist = require('minimist'); +var url = require('url'); +var kurento = require('kurento-client'); + +var argv = minimist(process.argv.slice(2), { + default: { + as_uri: "http://localhost:8080/", + ws_uri: "ws://localhost:8888/kurento" + } +}); + +var app = express(); + +/* + * Definition of global variables. + */ + +var kurentoClient = null; +var userRegistry = new UserRegistry(); +var pipelines = {}; +var candidatesQueue = {}; +var idCounter = 0; +var candidates_ready = {}; +var recordsCounter = 0; + +function nextUniqueId() { + idCounter++; + return idCounter.toString(); +} + +/* + * Definition of helper classes + */ + +// Represents caller and callee sessions +function UserSession(id, name, ws) { + this.id = id; + this.name = name; + this.ws = ws; + this.peer = null; + this.sdpOffer = null; +} + +UserSession.prototype.sendMessage = function(message) { + this.ws.send(JSON.stringify(message)); +} + +// Represents registrar of users +function UserRegistry() { + this.usersById = {}; + this.usersByName = {}; +} + +UserRegistry.prototype.register = function(user) { + this.usersById[user.id] = user; + this.usersByName[user.name] = user; +} + +UserRegistry.prototype.unregister = function(id) { + var user = this.getById(id); + if (user) delete this.usersById[id] + if (user && this.getByName(user.name)) delete this.usersByName[user.name]; +} + +UserRegistry.prototype.getById = function(id) { + return this.usersById[id]; +} + +UserRegistry.prototype.getByName = function(name) { + return this.usersByName[name]; +} + +UserRegistry.prototype.removeById = function(id) { + var userSession = this.usersById[id]; + if (!userSession) return; + delete this.usersById[id]; + delete this.usersByName[userSession.name]; +} + +// Represents a B2B active call +function CallMediaPipeline() { + this.pipeline = null; + this.webRtcEndpoint = {}; + this.recorderEndpoint = null; +} + +CallMediaPipeline.prototype.createPipeline = function(callerId, calleeId, ws, callback) { + var self = this; + getKurentoClient(function(error, kurentoClient) { + if (error) { + return callback(error); + } + + kurentoClient.create('MediaPipeline', function(error, pipeline) { + if (error) { + return callback(error); + } + + pipeline.create('WebRtcEndpoint', function(error, callerWebRtcEndpoint) { + if (error) { + pipeline.release(); + return callback(error); + } + + if (candidatesQueue[callerId]) { + while(candidatesQueue[callerId].length) { + var candidate = candidatesQueue[callerId].shift(); + callerWebRtcEndpoint.addIceCandidate(candidate); + } + } + + callerWebRtcEndpoint.on('OnIceCandidate', function(event) { + var candidate = kurento.register.complexTypes.IceCandidate(event.candidate); + userRegistry.getById(callerId).ws.send(JSON.stringify({ + id : 'iceCandidate', + candidate : candidate + })); + }); + + pipeline.create('WebRtcEndpoint', function(error, calleeWebRtcEndpoint) { + if (error) { + pipeline.release(); + return callback(error); + } + + if (candidatesQueue[calleeId]) { + while(candidatesQueue[calleeId].length) { + var candidate = candidatesQueue[calleeId].shift(); + calleeWebRtcEndpoint.addIceCandidate(candidate); + } + } + + calleeWebRtcEndpoint.on('OnIceCandidate', function(event) { + var candidate = kurento.register.complexTypes.IceCandidate(event.candidate); + userRegistry.getById(calleeId).ws.send(JSON.stringify({ + id : 'iceCandidate', + candidate : candidate + })); + }); + + pipeline.create('Composite', function(error, _composite) { + if (error) { + pipeline.release(); + return callback(error); + } + + _composite.createHubPort(function(error, _callerHubport) { + if (error) { + pipeline.release(); + return callback(error); + } + + _composite.createHubPort(function(error, _calleeHubport) { + if (error) { + pipeline.release(); + return callback(error); + } + + _composite.createHubPort(function(error, _recorderHubport) { + if (error) { + pipeline.release(); + return callback(error); + } + + recordsCounter++; + + var recorderParams = { + mediaProfile: 'MP4', + uri : "file:///tmp/kurento-one2one-composite-" + recordsCounter + ".mp4" + }; + + pipeline.create('RecorderEndpoint', recorderParams, function(error, recorderEndpoint) { + if (error) { + pipeline.release(); + return callback(error); + } + + self.recorderEndpoint = recorderEndpoint; + + _recorderHubport.connect(recorderEndpoint, function(error) { + if (error) { + pipeline.release(); + return callback(error); + } + + callerWebRtcEndpoint.connect(_callerHubport, function(error) { + if (error) { + pipeline.release(); + return callback(error); + } + calleeWebRtcEndpoint.connect(_calleeHubport, function(error) { + if (error) { + pipeline.release(); + return callback(error); + } + + console.log('Hubports are created'); + + _callerHubport.connect(callerWebRtcEndpoint, function(error) { + if (error) { + pipeline.release(); + return callback(error); + } + _calleeHubport.connect(calleeWebRtcEndpoint, function(error) { + if (error) { + pipeline.release(); + return callback(error); + } + + callerWebRtcEndpoint.on('OnIceGatheringDone', function(error) { + candidates_ready[callerId] = true; + if (candidates_ready[calleeId]) { + recorderEndpoint.record(); + } + }); + calleeWebRtcEndpoint.on('OnIceGatheringDone', function(error) { + candidates_ready[calleeId] = true; + if (candidates_ready[callerId]) { + recorderEndpoint.record(); + } + }); + + self.pipeline = pipeline; + self.webRtcEndpoint[callerId] = callerWebRtcEndpoint; + self.webRtcEndpoint[calleeId] = calleeWebRtcEndpoint; + callback(null); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); +}; + +CallMediaPipeline.prototype.generateSdpAnswer = function(id, sdpOffer, callback) { + this.webRtcEndpoint[id].processOffer(sdpOffer, callback); + this.webRtcEndpoint[id].gatherCandidates(function(error) { + if (error) { + return callback(error); + } + }); +}; + +CallMediaPipeline.prototype.release = function() { + if (this.pipeline) this.pipeline.release(); + this.pipeline = null; +}; + + +// Represents player pipeline +function PlayMediaPipeline() { + this.pipeline = null; + this.webRtcEndpoint = {}; + this.playerEndpoint = null; +} + +PlayMediaPipeline.prototype.createPipeline = function(callerId, ws, callback) { + var self = this; + getKurentoClient(function(error, kurentoClient) { + if (error) { + return callback(error); + } + + kurentoClient.create('MediaPipeline', function(error, pipeline) { + if (error) { + return callback(error); + } + + pipeline.create('WebRtcEndpoint', function(error, callerWebRtcEndpoint) { + if (error) { + pipeline.release(); + return callback(error); + } + + if (candidatesQueue[callerId]) { + while(candidatesQueue[callerId].length) { + var candidate = candidatesQueue[callerId].shift(); + callerWebRtcEndpoint.addIceCandidate(candidate); + } + } + + callerWebRtcEndpoint.on('OnIceCandidate', function(event) { + var candidate = kurento.register.complexTypes.IceCandidate(event.candidate); + userRegistry.getById(callerId).ws.send(JSON.stringify({ + id : 'iceCandidate', + candidate : candidate + })); + }); + + var options = { + uri : "file:///tmp/kurento-one2one-composite-" + recordsCounter + ".mp4" + }; + + pipeline.create("PlayerEndpoint", options, function(error, player) { + if (error) return onError(error); + + callerWebRtcEndpoint.on('OnIceGatheringDone', function(error) { + player.play(); + }); + + player.on('EndOfStream', function(event){ + userRegistry.getById(callerId).sendMessage({id : 'stopPlay'}); + stop(callerId); + }); + + player.connect(callerWebRtcEndpoint, function(error) { + if (error) return onError(error); + + self.playerEndpoint = player; + self.pipeline = pipeline; + self.webRtcEndpoint[callerId] = callerWebRtcEndpoint; + callback(null); + }); + }); + }); + }); + }); +}; + +PlayMediaPipeline.prototype.generateSdpAnswer = function(id, sdpOffer, callback) { + this.webRtcEndpoint[id].processOffer(sdpOffer, callback); + this.webRtcEndpoint[id].gatherCandidates(function(error) { + if (error) { + return callback(error); + } + }); +}; + +PlayMediaPipeline.prototype.release = function() { + if (this.pipeline) this.pipeline.release(); + this.pipeline = null; +}; + + + +/* + * Server startup + */ + +var asUrl = url.parse(argv.as_uri); +var port = asUrl.port; +var server = app.listen(port, function() { + console.log('Kurento Tutorial started'); + console.log('Open ' + url.format(asUrl) + ' with a WebRTC capable browser'); +}); + +var wss = new ws.Server({ + server : server, + path : '/one2onecomposrec' +}); + +wss.on('connection', function(ws) { + var sessionId = nextUniqueId(); + console.log('Connection received with sessionId ' + sessionId); + + ws.on('error', function(error) { + console.log('Connection ' + sessionId + ' error'); + stop(sessionId); + }); + + ws.on('close', function() { + console.log('Connection ' + sessionId + ' closed'); + stop(sessionId); + userRegistry.unregister(sessionId); + }); + + ws.on('message', function(_message) { + var message = JSON.parse(_message); + if (message.id !== 'onIceCandidate') + console.log('Connection ' + sessionId + ' received message ', message); + + switch (message.id) { + case 'register': + register(sessionId, message.name, ws); + break; + + case 'call': + call(sessionId, message.to, message.from, message.sdpOffer); + break; + + case 'incomingCallResponse': + incomingCallResponse(sessionId, message.from, message.callResponse, message.sdpOffer, ws); + break; + + case 'play': + play(sessionId, message.sdpOffer); + break; + + case 'stop': + stop(sessionId); + break; + + case 'onIceCandidate': + onIceCandidate(sessionId, message.candidate); + break; + + default: + ws.send(JSON.stringify({ + id : 'error', + message : 'Invalid message ' + message + })); + break; + } + + }); +}); + +// Recover kurentoClient for the first time. +function getKurentoClient(callback) { + if (kurentoClient !== null) { + return callback(null, kurentoClient); + } + + kurento(argv.ws_uri, function(error, _kurentoClient) { + if (error) { + var message = 'Coult not find media server at address ' + argv.ws_uri; + return callback(message + ". Exiting with error " + error); + } + + kurentoClient = _kurentoClient; + callback(null, kurentoClient); + }); +} + +function stop(sessionId) { + if (!pipelines[sessionId]) { + return; + } + + var pipeline = pipelines[sessionId]; + delete pipelines[sessionId]; + + if (pipeline.recorderEndpoint) + pipeline.recorderEndpoint.stop(); + + if (pipeline.playerEndpoint) + pipeline.playerEndpoint.stop(); + + pipeline.release(); + var stopperUser = userRegistry.getById(sessionId); + var stoppedUser = userRegistry.getByName(stopperUser.peer); + stopperUser.peer = null; + + if (stoppedUser) { + stoppedUser.peer = null; + delete pipelines[stoppedUser.id]; + var message = { + id: 'stopCommunication', + message: 'remote user hanged out' + } + stoppedUser.sendMessage(message) + } + + clearCandidatesQueue(sessionId); +} + +function incomingCallResponse(calleeId, from, callResponse, calleeSdp, ws) { + + clearCandidatesQueue(calleeId); + + function onError(callerReason, calleeReason) { + if (pipeline) pipeline.release(); + if (caller) { + var callerMessage = { + id: 'callResponse', + response: 'rejected' + } + if (callerReason) callerMessage.message = callerReason; + caller.sendMessage(callerMessage); + } + + var calleeMessage = { + id: 'stopCommunication' + }; + if (calleeReason) calleeMessage.message = calleeReason; + callee.sendMessage(calleeMessage); + } + + var callee = userRegistry.getById(calleeId); + if (!from || !userRegistry.getByName(from)) { + return onError(null, 'unknown from = ' + from); + } + var caller = userRegistry.getByName(from); + + if (callResponse === 'accept') { + var pipeline = new CallMediaPipeline(); + pipelines[caller.id] = pipeline; + pipelines[callee.id] = pipeline; + + pipeline.createPipeline(caller.id, callee.id, ws, function(error) { + if (error) { + return onError(error, error); + } + + pipeline.generateSdpAnswer(caller.id, caller.sdpOffer, function(error, callerSdpAnswer) { + if (error) { + return onError(error, error); + } + + pipeline.generateSdpAnswer(callee.id, calleeSdp, function(error, calleeSdpAnswer) { + if (error) { + return onError(error, error); + } + + var message = { + id: 'startCommunication', + sdpAnswer: calleeSdpAnswer + }; + callee.sendMessage(message); + + message = { + id: 'callResponse', + response : 'accepted', + sdpAnswer: callerSdpAnswer + }; + caller.sendMessage(message); + }); + }); + }); + } else { + var decline = { + id: 'callResponse', + response: 'rejected', + message: 'user declined' + }; + caller.sendMessage(decline); + } +} + +function call(callerId, to, from, sdpOffer) { + clearCandidatesQueue(callerId); + + var caller = userRegistry.getById(callerId); + var rejectCause = 'User ' + to + ' is not registered'; + if (userRegistry.getByName(to)) { + var callee = userRegistry.getByName(to); + caller.sdpOffer = sdpOffer + callee.peer = from; + caller.peer = to; + var message = { + id: 'incomingCall', + from: from + }; + try{ + return callee.sendMessage(message); + } catch(exception) { + rejectCause = "Error " + exception; + } + } + var message = { + id: 'callResponse', + response: 'rejected: ', + message: rejectCause + }; + caller.sendMessage(message); +} + +function play(callerId, sdpOffer) { + clearCandidatesQueue(callerId); + + var caller = userRegistry.getById(callerId); + + caller.sdpOffer = sdpOffer; + + clearCandidatesQueue(callerId); + + function onError(callerReason) { + if (caller) { + var callerMessage = { + id: 'playResponse', + response: 'rejected' + }; + if (callerReason) callerMessage.message = callerReason; + caller.sendMessage(callerMessage); + } + } + + if (!recordsCounter) { + return onError('There are no record.'); + } + + var pipeline = new PlayMediaPipeline(); + + pipelines[caller.id] = pipeline; + + pipeline.createPipeline(caller.id, ws, function(error) { + if (error) { + return onError(error); + } + console.log('Pipeline is created.'); + + pipeline.generateSdpAnswer(caller.id, sdpOffer, function(error, callerSdpAnswer) { + if (error) { + return onError(error); + } + + var message = { + id: 'playResponse', + response : 'accepted', + sdpAnswer: callerSdpAnswer + }; + caller.sendMessage(message); + }); + }); +} + + +function register(id, name, ws, callback) { + function onError(error) { + ws.send(JSON.stringify({id:'registerResponse', response : 'rejected ', message: error})); + } + + if (!name) { + return onError("empty user name"); + } + + if (userRegistry.getByName(name)) { + return onError("User " + name + " is already registered"); + } + + userRegistry.register(new UserSession(id, name, ws)); + try { + ws.send(JSON.stringify({id: 'registerResponse', response: 'accepted'})); + } catch(exception) { + onError(exception); + } +} + +function clearCandidatesQueue(sessionId) { + if (candidatesQueue[sessionId]) { + delete candidatesQueue[sessionId]; + } +} + +function onIceCandidate(sessionId, _candidate) { + var candidate = kurento.register.complexTypes.IceCandidate(_candidate); + var user = userRegistry.getById(sessionId); + + if (pipelines[user.id] && pipelines[user.id].webRtcEndpoint && pipelines[user.id].webRtcEndpoint[user.id]) { + var webRtcEndpoint = pipelines[user.id].webRtcEndpoint[user.id]; + webRtcEndpoint.addIceCandidate(candidate); + } + else { + if (!candidatesQueue[user.id]) { + candidatesQueue[user.id] = []; + } + candidatesQueue[sessionId].push(candidate); + } +} + +app.use(express.static(path.join(__dirname, 'static'))); diff --git a/kurento-one2one-composite-record/static/bower.json b/kurento-one2one-composite-record/static/bower.json new file mode 100644 index 00000000..d35e5c21 --- /dev/null +++ b/kurento-one2one-composite-record/static/bower.json @@ -0,0 +1,29 @@ +{ + "name": "kurento-one2one-call", + "description": "Kurento Browser JavaScript Tutorial", + "authors": [ + "Kurento " + ], + "main": "index.html", + "moduleType": [ + "globals" + ], + "license": "LGPL", + "homepage": "http://www.kurento.org/", + "private": true, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "dependencies": { + "adapter.js": "*", + "bootstrap": "~3.3.0", + "draggabilly": "~1.2.4", + "demo-console": "1.5.1", + "ekko-lightbox": "~3.3.0", + "kurento-utils": "6.1.0" + } +} diff --git a/kurento-one2one-composite-record/static/css/kurento.css b/kurento-one2one-composite-record/static/css/kurento.css new file mode 100644 index 00000000..1aaf3422 --- /dev/null +++ b/kurento-one2one-composite-record/static/css/kurento.css @@ -0,0 +1,77 @@ +/* + * (C) Copyright 2014-2015 Kurento (http://kurento.org/) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser General Public License + * (LGPL) version 2.1 which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ +@CHARSET "UTF-8"; + +html { + position: relative; + min-height: 100%; +} + +body { + padding-top: 40px; + body +} + +video,#console { + display: block; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, box-shadow + ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} + +#console { + min-height: 120px; + max-height: 360px; +} + +#videoContainer { + position: absolute; + float: left; +} + +#videoBig { + width: 640px; + height: 480px; + top: 0; + left: 0; + z-index: 1; +} + +div#videoSmall { + width: 240px; + height: 180px; + padding: 0px; + position: absolute; + top: 15px; + left: 400px; + cursor: pointer; + z-index: 10; + padding: 0px; +} + +div.dragged { + cursor: all-scroll !important; + border-color: blue !important; + z-index: 10 !important; +} diff --git a/kurento-one2one-composite-record/static/img/kurento.png b/kurento-one2one-composite-record/static/img/kurento.png new file mode 100644 index 0000000000000000000000000000000000000000..6f1a4ad3b243c7a31ddff38a00835b7e5eea30ca GIT binary patch literal 6499 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 JPDHLkV1gbuNT~n- literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite-record/static/img/naevatec.png b/kurento-one2one-composite-record/static/img/naevatec.png new file mode 100644 index 0000000000000000000000000000000000000000..05ee7041db5f47d4953c24f67cd2d645ca114ea8 GIT binary patch literal 52049 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 z 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 CRtV?- literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite-record/static/img/spinner.gif b/kurento-one2one-composite-record/static/img/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..8be8ba338d5b5aec80593295f88bcaf6608bdf18 GIT binary patch literal 8534 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 z z23q;-*;SFu4jB_v(74jA(SHL{koGE`Z@-;!Q$<_1Tf6ZFqo^mL>Sk=0Q6%KkAt z2;Ab0Z#SY?(CF4jwGpNkSy&(}Wnc__?&0A*?yQH3@2zUoo)L;0Ct? z4h8ynHz%JG0`qRkRjL`}SVyZw?`T|aW@a%i#GLKy9P`qXZ_(S2axj-6t$sfnCff|2 zdDW9*@>cdJ|H9ZNuc}i*wt4P{W>TIX!Sc)18KM2=qm@sezL=v0j0m@tTtA5EN$gA? z_Mxto(OwD**Pm(V+o|O{6ecXeBmOlX4f z2w%#$o#5{bEWPY6DT!1*8T(!|!DzPSr~UZz3p{>1=hTVg-+^;#&+VOX4|i*vhizat z?0Q^p7@f9=7$8KeRRZ_F#0rNFQ$kC$_S-5MvjDNJ-fSXA9oUOp)dp$i9TjTR!7i^K zA*-q0Hd7Sh~`+}o)c)Y$( z+?CJi1D=>WrX_D>Uztet5Pvr+-rhB32tLuiQdyqqBSjF`{s?rXr$tEP!K33A!it#Q zsT9z5{bNJRI6FV|@xEb|e?|s)?EhZj{(EEqia!0zv3^OSix67dq)8JfvZp?7m*VoI zx-UP6%c+2r)Pe4$PzWhKyLKBI{*6V2M@F$hJds2qc*iqg#g(lWE{+wkKbeIgtEo{b z`0Sj#e8sF1F&k1=Q*WclcPSs!-NHl>dwSLQ1B{E8 z6rko(7GCwfI{6V3Tc3|DMy{SlVA9O_mrVSSVj|-$10+yq-n|3~(tSL9z-A(5jqr?Y zO&ZzSWpT=nCr7M_XH9W;!>b+a^uR`AnimrgLB@ERr3KHy^!P9_UWI*+C&H*%g?25? z)Do9}5-d^Fi8C)nL4@_DAW25DJgr8dXtWD^F{^xR`AcaZ-FVf^41eeFoHQhBR)XUq z4h-xn-ED%!aM7V1Z2?M6ou2336@X+DE#Lq^Pq`fNGInrOJ_K9~P$U|k-XA`Oq1wn@ z--#H>VLZ2a_)iZPVaraH+x2(lA5;o*lOy{f&^$y*S)p*`lTDk|7RV}m+6?UZ)eMY% ztDQ_c7ZNw%rsJMeZ7}3}lcPPlvF&QHwX$ydDVv{$zy0Qt3*es7NMys2BU*Z))|;v7~DFQRpSu@8%q24%xljgx(wIb6_qM) zk6*6VGsu21OH|QRnN>CXy3)w4S(b{^lDV)Q<3UY25Mn~{oI3|%<&_4tVf`$#uCj8pM`A6Fvq G(|-Y9t#!u$ literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite-record/static/img/transparent-1px.png b/kurento-one2one-composite-record/static/img/transparent-1px.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite-record/static/img/urjc.gif b/kurento-one2one-composite-record/static/img/urjc.gif new file mode 100644 index 0000000000000000000000000000000000000000..cd8a7703ae9ab79619a008faf54268597c122648 GIT binary patch literal 16756 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 H!e9*m8KQaw literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite-record/static/img/webrtc.png b/kurento-one2one-composite-record/static/img/webrtc.png new file mode 100644 index 0000000000000000000000000000000000000000..d47e2e4cb3aa08c20d1c0ae0a2997633df1b79aa GIT binary patch literal 12375 zcmdsdXH-+swr(g2f{I8J0qI3rM4EI20g>Jey;mur_o^aIKtOsEP^y4*sR3ysy>~+I zEffPJA#dm0`|G`X&%Ni3JKm4S7<+7zwdPuD&iQ@cntNwOX{syTA$dpw0)g%*zkHz$ z0^x^(KzPf~DFyDr17&1A0D(v}9OUISHSM9EP!D^kE0eOk zJd>+C)Yiet1_bh*%hs{e)!CtzLN1-jsYHf;R)K0$5i@Da#e`BOaBwr!RxX_POTD-TTNoI)Fne*e`6+}k=L9GN7I8L=7HwUllrlq&OpJvw# z6SWiHPI)P)B^-LYMD7v!^1I%yo|Sce*)S3|SI|A;8f#_`3@aY!B3M$AhozmU4TR@A zPD%`FSIcaFLLY%8+m%Z<#tVIq*Y26{Oocd<5+v&%CszoPRm2O;PUFx4eIW#y_gh)6 zfi(F*=A0p$LiQuWYx5W)aD!p2= zkxfh?%!ruJjR*qaf5bJUOv6JdVu5dwAQ1yC4ma?_7vkgbhlz? zNF=WQt{LAh>?W4Q(sJ#3W4O#!76e-H3?9Aa1=lA5WitV~LVWeB8}G zhP7UW^P&i(;liLFZ=~@868MTutO)+9aNg7RY+pr!Kqt-6jtMSef>8T+E5kn6BN>d+ z7j{snt#YCp2xR(#jbHaqjZ7~w2=wAh8269obY~q8c-wE%cidR$AVr&tyq9C^`XzTy zj>I~Y-rfB1_qTFf9|nIgaGQfCWEq6owd_A6x!&dfrT6o$lq=bl1#wOXS4-F}!sow< zDJ+=hBJnJv^;zSHY0|?lm^)q)-j88p>Wie*Vo^yDekq_Gt;?kMlHo+k9bYWMSg|QV z;y38&Tl9w(C4tXj)ml;$x9j8^i$x#4SIj3JvGx?mh^PLNIpSXXQ0k*d-quK&J=t8m zw0!TA_U#8mf?ZBe_X7oQSwhY8$aPISAEqTyFaEl=AzBI!&{Om^ztEVQs11lV>OZ3XI>_r-{I@o z>z(U@>vZePCq^XMma=YNFLYM9wEw($MZ0ltLulisP1@7vdIcHUi^X}mRoT79T#op1EL3Zv_20i(^Ly-$75)Fb)Sd|?4@m`lchuT^ttP~1E~`JkR-oK=18XF z2J4oT7M3oRlIor6_3Or$nCb*oDC!C7td-oFNGa1R&DPx0q0_M|ktmKRwJV0|%6ttr zz(n0N=v3|0kpHUnrOIrrrH6^sinhj=m)Y@7*$1yM;VzD?&dTMLvxH&X-S@# zyx=QANR9UCXImMfwKTVjEKl`YTURgE^Jk3Hb8~lect_<03?spB`gyyh1^ zFqfjkw4656&>U50(UM>5))jpa7^91EzA8Fbx~+e+<~G~S`P)MeB)f&(ppp#W-g$(U zyh*35{5Okai`13(35}zY1(S-giew)hdW_fD)|`8sdkQ#iaxinKsO_p9W@xK57CtVN zP?b>a9UK_UADl`T&Xf|Ee!7*pl{uXWZ!kCXHRP=?uK#JHT)l2sXmD8H;u3BsX7Ej4 z&(Nesu{^t+eX6;d`giP zM>NuZrQLJaq}L=xm!2*em<@=wH~ens*XV@in1#dTLs+raSbyv&s3?>j&yFA}?0J|G zKI+0hkQo*yBR+5Qw|e&A`NuDf irzb${e(NWH9|9k&aIWuxAZ75;L;cmEQ@b=UQ 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%0DqyY_U`jn{LN96(U?gPXk>r5}z`&GRfO-^z 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 literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite-record/static/index.html b/kurento-one2one-composite-record/static/index.html new file mode 100644 index 00000000..01503b34 --- /dev/null +++ b/kurento-one2one-composite-record/static/index.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Kurento Tutorial 4: Video Call 1 to 1 with WebRTC + + + +

+ +
+ +
+ +
+
+ +
+
+ +
+ +
+
+
+ +
+
+ +
+ +
+
+

+
+
    +
    +
    +
    +
    + +
    +
    + +
    +
    + + Play +
    +
    +
    + + + + + diff --git a/kurento-one2one-composite-record/static/js/index.js b/kurento-one2one-composite-record/static/js/index.js new file mode 100644 index 00000000..a70d6999 --- /dev/null +++ b/kurento-one2one-composite-record/static/js/index.js @@ -0,0 +1,411 @@ +/* + * (C) Copyright 2014-2015 Kurento (http://kurento.org/) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser General Public License + * (LGPL) version 2.1 which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + +var ws = new WebSocket('ws://' + location.host + '/one2onecomposrec'); +var videoInput; +var videoOutput; +var webRtcPeer; + +var registerName = null; +const NOT_REGISTERED = 0; +const REGISTERING = 1; +const REGISTERED = 2; +var registerState = null; + +function setRegisterState(nextState) { + switch (nextState) { + case NOT_REGISTERED: + $('#register').attr('disabled', false); + $('#call').attr('disabled', true); + $('#terminate').attr('disabled', true); + $('#play').attr('disabled', true); + break; + + case REGISTERING: + $('#register').attr('disabled', true); + $('#play').attr('disabled', false); + break; + + case REGISTERED: + $('#play').attr('disabled', false); + $('#register').attr('disabled', true); + setCallState(NO_CALL); + break; + + default: + return; + } + registerState = nextState; +} + +const NO_CALL = 0; +const PROCESSING_CALL = 1; +const IN_CALL = 2; +const PLAYING = 4; +var callState = null + +function setCallState(nextState) { + switch (nextState) { + case NO_CALL: + $('#call').attr('disabled', false); + $('#terminate').attr('disabled', true); + $('#play').attr('disabled', false); + $('#videoInput').show(); + break; + + case PROCESSING_CALL: + $('#call').attr('disabled', true); + $('#terminate').attr('disabled', true); + $('#play').attr('disabled', true); + $('#videoInput').show(); + break; + + case IN_CALL: + $('#call').attr('disabled', true); + $('#terminate').attr('disabled', false); + $('#play').attr('disabled', true); + $('#videoInput').show(); + break; + + case PLAYING: + $('#call').attr('disabled', true); + $('#terminate').attr('disabled', false); + $('#play').attr('disabled', true); + $('#play').attr('disabled', true); + $('#videoInput').hide(); + + break; + default: + return; + } + callState = nextState; +} + +window.onload = function() { + console = new Console(); + setRegisterState(NOT_REGISTERED); + var drag = new Draggabilly(document.getElementById('videoSmall')); + videoInput = document.getElementById('videoInput'); + videoOutput = document.getElementById('videoOutput'); + document.getElementById('name').focus(); + + document.getElementById('register').addEventListener('click', function() { + register(); + }); + document.getElementById('call').addEventListener('click', function() { + call(); + }); + document.getElementById('terminate').addEventListener('click', function() { + stop(); + }); + document.getElementById('play').addEventListener('click', function() { + play(); + }); +} + +window.onbeforeunload = function() { + ws.close(); +} + +ws.onmessage = function(message) { + var parsedMessage = JSON.parse(message.data); + console.info('Received message: ' + message.data); + + switch (parsedMessage.id) { + case 'registerResponse': + resgisterResponse(parsedMessage); + break; + case 'callResponse': + callResponse(parsedMessage); + break; + case 'incomingCall': + incomingCall(parsedMessage); + break; + case 'playResponse': + playResponse(parsedMessage); + break; + case 'startPlay': + startPlay(parsedMessage); + break; + case 'stopPlay': + stop(true); + break; + case 'startCommunication': + startCommunication(parsedMessage); + break; + case 'stopCommunication': + console.info("Communication ended by remote peer"); + stop(true); + break; + case 'iceCandidate': + webRtcPeer.addIceCandidate(parsedMessage.candidate) + break; + default: + console.error('Unrecognized message', parsedMessage); + } +} + +function resgisterResponse(message) { + if (message.response == 'accepted') { + setRegisterState(REGISTERED); + } else { + setRegisterState(NOT_REGISTERED); + var errorMessage = message.message ? message.message + : 'Unknown reason for register rejection.'; + console.log(errorMessage); + alert('Error registering user. See console for further information.'); + } +} + +function callResponse(message) { + if (message.response != 'accepted') { + console.info('Call not accepted by peer. Closing call'); + var errorMessage = message.message ? message.message + : 'Unknown reason for call rejection.'; + console.log(errorMessage); + stop(true); + } else { + setCallState(IN_CALL); + webRtcPeer.processAnswer(message.sdpAnswer); + } +} + +function playResponse(message) { + if (message.response != 'accepted') { + console.info('Playing not accepted by peer. Closing player'); + var errorMessage = message.message ? message.message + : 'Unknown reason for play rejection.'; + console.log(errorMessage); + stop(true); + } else { + setCallState(PLAYING); + webRtcPeer.processAnswer(message.sdpAnswer); + } +} + +function startCommunication(message) { + setCallState(IN_CALL); + webRtcPeer.processAnswer(message.sdpAnswer); +} + +function startPlay(message) { + setCallState(IN_CALL); + webRtcPeer.processAnswer(message.sdpAnswer); +} + +function incomingCall(message) { + // If bussy just reject without disturbing user + if (callState != NO_CALL) { + var response = { + id : 'incomingCallResponse', + from : message.from, + callResponse : 'reject', + message : 'bussy' + + }; + return sendMessage(response); + } + + setCallState(PROCESSING_CALL); + if (confirm('User ' + message.from + + ' is calling you. Do you accept the call?')) { + showSpinner(videoInput, videoOutput); + + var options = { + localVideo : videoInput, + remoteVideo : videoOutput, + onicecandidate : onIceCandidate + } + + webRtcPeer = kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, + function(error) { + if (error) { + console.error(error); + setCallState(NO_CALL); + } + + this.generateOffer(function(error, offerSdp) { + if (error) { + console.error(error); + setCallState(NO_CALL); + } + var response = { + id : 'incomingCallResponse', + from : message.from, + callResponse : 'accept', + sdpOffer : offerSdp + }; + sendMessage(response); + }); + }); + + } else { + var response = { + id : 'incomingCallResponse', + from : message.from, + callResponse : 'reject', + message : 'user declined' + }; + sendMessage(response); + stop(true); + } +} + +function register() { + var name = document.getElementById('name').value; + if (name == '') { + window.alert("You must insert your user name"); + return; + } + + setRegisterState(REGISTERING); + + var message = { + id : 'register', + name : name + }; + sendMessage(message); + document.getElementById('peer').focus(); +} + +function call() { + if (document.getElementById('peer').value == '') { + window.alert("You must specify the peer name"); + return; + } + + setCallState(PROCESSING_CALL); + + showSpinner(videoInput, videoOutput); + + var options = { + localVideo : videoInput, + remoteVideo : videoOutput, + onicecandidate : onIceCandidate + } + + webRtcPeer = kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, function( + error) { + if (error) { + console.error(error); + setCallState(NO_CALL); + } + + this.generateOffer(function(error, offerSdp) { + if (error) { + console.error(error); + setCallState(NO_CALL); + } + var message = { + id : 'call', + from : document.getElementById('name').value, + to : document.getElementById('peer').value, + sdpOffer : offerSdp + }; + sendMessage(message); + }); + }); + +} + +function play() { + + setCallState(PLAYING); + + showSpinner(videoInput, videoOutput); + + var options = { + localVideo : videoInput, + remoteVideo : videoOutput, + onicecandidate : onIceCandidate + } + + webRtcPeer = kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly(options, function( + error) { + if (error) { + console.error(error); + setCallState(NO_CALL); + } + + this.generateOffer(function(error, offerSdp) { + if (error) { + console.error(error); + setCallState(NO_CALL); + } + var message = { + id : 'play', + sdpOffer : offerSdp + }; + sendMessage(message); + }); + }); + +} + + +function stop(message) { + setCallState(NO_CALL); + if (webRtcPeer) { + webRtcPeer.dispose(); + webRtcPeer = null; + + if (!message) { + var message = { + id : 'stop' + } + sendMessage(message); + } + } + hideSpinner(videoInput, videoOutput); +} + +function sendMessage(message) { + var jsonMessage = JSON.stringify(message); + console.log('Senging message: ' + jsonMessage); + ws.send(jsonMessage); +} + +function onIceCandidate(candidate) { + console.log('Local candidate' + JSON.stringify(candidate)); + + var message = { + id : 'onIceCandidate', + candidate : candidate + } + sendMessage(message); +} + +function showSpinner() { + for (var i = 0; i < arguments.length; i++) { + arguments[i].poster = './img/transparent-1px.png'; + arguments[i].style.background = 'center transparent url("./img/spinner.gif") no-repeat'; + } +} + +function hideSpinner() { + for (var i = 0; i < arguments.length; i++) { + arguments[i].src = ''; + arguments[i].poster = './img/webrtc.png'; + arguments[i].style.background = ''; + } +} + +/** + * Lightbox utility (to display media pipeline image in a modal dialog) + */ +$(document).delegate('*[data-toggle="lightbox"]', 'click', function(event) { + event.preventDefault(); + $(this).ekkoLightbox(); +}); diff --git a/kurento-one2one-composite/package.json b/kurento-one2one-composite/package.json new file mode 100644 index 00000000..58055cb5 --- /dev/null +++ b/kurento-one2one-composite/package.json @@ -0,0 +1,17 @@ +{ + "name": "kurento-one2one-call", + "version": "6.1.0", + "private": true, + "scripts": { + "postinstall": "cd static && bower install" + }, + "dependencies": { + "express": "~4.12.4", + "minimist": "^1.1.1", + "ws": "~0.7.2", + "kurento-client": "6.1.0" + }, + "devDependencies": { + "bower": "^1.4.1" + } +} diff --git a/kurento-one2one-composite/server.js b/kurento-one2one-composite/server.js new file mode 100644 index 00000000..9a0737b0 --- /dev/null +++ b/kurento-one2one-composite/server.js @@ -0,0 +1,482 @@ +/* + * (C) Copyright 2014 Kurento (http://kurento.org/) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser General Public License + * (LGPL) version 2.1 which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + +var path = require('path'); +var express = require('express'); +var ws = require('ws'); +var minimist = require('minimist'); +var url = require('url'); +var kurento = require('kurento-client'); + +var argv = minimist(process.argv.slice(2), { + default: { + as_uri: "http://localhost:8080/", + ws_uri: "ws://localhost:8888/kurento" + } +}); + +var app = express(); + +/* + * Definition of global variables. + */ + +var kurentoClient = null; +var userRegistry = new UserRegistry(); +var pipelines = {}; +var candidatesQueue = {}; +var idCounter = 0; + +function nextUniqueId() { + idCounter++; + return idCounter.toString(); +} + +/* + * Definition of helper classes + */ + +// Represents caller and callee sessions +function UserSession(id, name, ws) { + this.id = id; + this.name = name; + this.ws = ws; + this.peer = null; + this.sdpOffer = null; +} + +UserSession.prototype.sendMessage = function(message) { + this.ws.send(JSON.stringify(message)); +} + +// Represents registrar of users +function UserRegistry() { + this.usersById = {}; + this.usersByName = {}; +} + +UserRegistry.prototype.register = function(user) { + this.usersById[user.id] = user; + this.usersByName[user.name] = user; +} + +UserRegistry.prototype.unregister = function(id) { + var user = this.getById(id); + if (user) delete this.usersById[id] + if (user && this.getByName(user.name)) delete this.usersByName[user.name]; +} + +UserRegistry.prototype.getById = function(id) { + return this.usersById[id]; +} + +UserRegistry.prototype.getByName = function(name) { + return this.usersByName[name]; +} + +UserRegistry.prototype.removeById = function(id) { + var userSession = this.usersById[id]; + if (!userSession) return; + delete this.usersById[id]; + delete this.usersByName[userSession.name]; +} + +// Represents a B2B active call +function CallMediaPipeline() { + this.pipeline = null; + this.webRtcEndpoint = {}; +} + +CallMediaPipeline.prototype.createPipeline = function(callerId, calleeId, ws, callback) { + var self = this; + getKurentoClient(function(error, kurentoClient) { + if (error) { + return callback(error); + } + + kurentoClient.create('MediaPipeline', function(error, pipeline) { + if (error) { + return callback(error); + } + + pipeline.create('WebRtcEndpoint', function(error, callerWebRtcEndpoint) { + if (error) { + pipeline.release(); + return callback(error); + } + + if (candidatesQueue[callerId]) { + while(candidatesQueue[callerId].length) { + var candidate = candidatesQueue[callerId].shift(); + callerWebRtcEndpoint.addIceCandidate(candidate); + } + } + + callerWebRtcEndpoint.on('OnIceCandidate', function(event) { + var candidate = kurento.register.complexTypes.IceCandidate(event.candidate); + userRegistry.getById(callerId).ws.send(JSON.stringify({ + id : 'iceCandidate', + candidate : candidate + })); + }); + + pipeline.create('WebRtcEndpoint', function(error, calleeWebRtcEndpoint) { + if (error) { + pipeline.release(); + return callback(error); + } + + if (candidatesQueue[calleeId]) { + while(candidatesQueue[calleeId].length) { + var candidate = candidatesQueue[calleeId].shift(); + calleeWebRtcEndpoint.addIceCandidate(candidate); + } + } + + calleeWebRtcEndpoint.on('OnIceCandidate', function(event) { + var candidate = kurento.register.complexTypes.IceCandidate(event.candidate); + userRegistry.getById(calleeId).ws.send(JSON.stringify({ + id : 'iceCandidate', + candidate : candidate + })); + }); + + pipeline.create('Composite', function(error, _composite) { + if (error) { + pipeline.release(); + return callback(error); + } + + _composite.createHubPort(function(error, _callerHubport) { + if (error) { + pipeline.release(); + return callback(error); + } + + _composite.createHubPort(function(error, _calleeHubport) { + if (error) { + pipeline.release(); + return callback(error); + } + + callerWebRtcEndpoint.connect(_callerHubport, function(error) { + if (error) { + pipeline.release(); + return callback(error); + } + calleeWebRtcEndpoint.connect(_calleeHubport, function(error) { + if (error) { + pipeline.release(); + return callback(error); + } + + console.log('Hubports are created'); + + _callerHubport.connect(callerWebRtcEndpoint, function(error) { + if (error) { + pipeline.release(); + return callback(error); + } + _calleeHubport.connect(calleeWebRtcEndpoint, function(error) { + if (error) { + pipeline.release(); + return callback(error); + } + self.pipeline = pipeline; + self.webRtcEndpoint[callerId] = callerWebRtcEndpoint; + self.webRtcEndpoint[calleeId] = calleeWebRtcEndpoint; + callback(null); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); +}; + +CallMediaPipeline.prototype.generateSdpAnswer = function(id, sdpOffer, callback) { + this.webRtcEndpoint[id].processOffer(sdpOffer, callback); + this.webRtcEndpoint[id].gatherCandidates(function(error) { + if (error) { + return callback(error); + } + }); +} + +CallMediaPipeline.prototype.release = function() { + if (this.pipeline) this.pipeline.release(); + this.pipeline = null; +} + +/* + * Server startup + */ + +var asUrl = url.parse(argv.as_uri); +var port = asUrl.port; +var server = app.listen(port, function() { + console.log('Kurento Tutorial started'); + console.log('Open ' + url.format(asUrl) + ' with a WebRTC capable browser'); +}); + +var wss = new ws.Server({ + server : server, + path : '/one2onecomposite' +}); + +wss.on('connection', function(ws) { + var sessionId = nextUniqueId(); + console.log('Connection received with sessionId ' + sessionId); + + ws.on('error', function(error) { + console.log('Connection ' + sessionId + ' error'); + stop(sessionId); + }); + + ws.on('close', function() { + console.log('Connection ' + sessionId + ' closed'); + stop(sessionId); + userRegistry.unregister(sessionId); + }); + + ws.on('message', function(_message) { + var message = JSON.parse(_message); + if (message.id !== 'onIceCandidate') + console.log('Connection ' + sessionId + ' received message ', message); + + switch (message.id) { + case 'register': + register(sessionId, message.name, ws); + break; + + case 'call': + call(sessionId, message.to, message.from, message.sdpOffer); + break; + + case 'incomingCallResponse': + incomingCallResponse(sessionId, message.from, message.callResponse, message.sdpOffer, ws); + break; + + case 'stop': + stop(sessionId); + break; + + case 'onIceCandidate': + onIceCandidate(sessionId, message.candidate); + break; + + default: + ws.send(JSON.stringify({ + id : 'error', + message : 'Invalid message ' + message + })); + break; + } + + }); +}); + +// Recover kurentoClient for the first time. +function getKurentoClient(callback) { + if (kurentoClient !== null) { + return callback(null, kurentoClient); + } + + kurento(argv.ws_uri, function(error, _kurentoClient) { + if (error) { + var message = 'Coult not find media server at address ' + argv.ws_uri; + return callback(message + ". Exiting with error " + error); + } + + kurentoClient = _kurentoClient; + callback(null, kurentoClient); + }); +} + +function stop(sessionId) { + if (!pipelines[sessionId]) { + return; + } + + var pipeline = pipelines[sessionId]; + delete pipelines[sessionId]; + pipeline.release(); + var stopperUser = userRegistry.getById(sessionId); + var stoppedUser = userRegistry.getByName(stopperUser.peer); + stopperUser.peer = null; + + if (stoppedUser) { + stoppedUser.peer = null; + delete pipelines[stoppedUser.id]; + var message = { + id: 'stopCommunication', + message: 'remote user hanged out' + } + stoppedUser.sendMessage(message) + } + + clearCandidatesQueue(sessionId); +} + +function incomingCallResponse(calleeId, from, callResponse, calleeSdp, ws) { + + clearCandidatesQueue(calleeId); + + function onError(callerReason, calleeReason) { + if (pipeline) pipeline.release(); + if (caller) { + var callerMessage = { + id: 'callResponse', + response: 'rejected' + } + if (callerReason) callerMessage.message = callerReason; + caller.sendMessage(callerMessage); + } + + var calleeMessage = { + id: 'stopCommunication' + }; + if (calleeReason) calleeMessage.message = calleeReason; + callee.sendMessage(calleeMessage); + } + + var callee = userRegistry.getById(calleeId); + if (!from || !userRegistry.getByName(from)) { + return onError(null, 'unknown from = ' + from); + } + var caller = userRegistry.getByName(from); + + if (callResponse === 'accept') { + var pipeline = new CallMediaPipeline(); + pipelines[caller.id] = pipeline; + pipelines[callee.id] = pipeline; + + pipeline.createPipeline(caller.id, callee.id, ws, function(error) { + if (error) { + return onError(error, error); + } + + pipeline.generateSdpAnswer(caller.id, caller.sdpOffer, function(error, callerSdpAnswer) { + if (error) { + return onError(error, error); + } + + pipeline.generateSdpAnswer(callee.id, calleeSdp, function(error, calleeSdpAnswer) { + if (error) { + return onError(error, error); + } + + var message = { + id: 'startCommunication', + sdpAnswer: calleeSdpAnswer + }; + callee.sendMessage(message); + + message = { + id: 'callResponse', + response : 'accepted', + sdpAnswer: callerSdpAnswer + }; + caller.sendMessage(message); + }); + }); + }); + } else { + var decline = { + id: 'callResponse', + response: 'rejected', + message: 'user declined' + }; + caller.sendMessage(decline); + } +} + +function call(callerId, to, from, sdpOffer) { + clearCandidatesQueue(callerId); + + var caller = userRegistry.getById(callerId); + var rejectCause = 'User ' + to + ' is not registered'; + if (userRegistry.getByName(to)) { + var callee = userRegistry.getByName(to); + caller.sdpOffer = sdpOffer + callee.peer = from; + caller.peer = to; + var message = { + id: 'incomingCall', + from: from + }; + try{ + return callee.sendMessage(message); + } catch(exception) { + rejectCause = "Error " + exception; + } + } + var message = { + id: 'callResponse', + response: 'rejected: ', + message: rejectCause + }; + caller.sendMessage(message); +} + +function register(id, name, ws, callback) { + function onError(error) { + ws.send(JSON.stringify({id:'registerResponse', response : 'rejected ', message: error})); + } + + if (!name) { + return onError("empty user name"); + } + + if (userRegistry.getByName(name)) { + return onError("User " + name + " is already registered"); + } + + userRegistry.register(new UserSession(id, name, ws)); + try { + ws.send(JSON.stringify({id: 'registerResponse', response: 'accepted'})); + } catch(exception) { + onError(exception); + } +} + +function clearCandidatesQueue(sessionId) { + if (candidatesQueue[sessionId]) { + delete candidatesQueue[sessionId]; + } +} + +function onIceCandidate(sessionId, _candidate) { + var candidate = kurento.register.complexTypes.IceCandidate(_candidate); + var user = userRegistry.getById(sessionId); + + if (pipelines[user.id] && pipelines[user.id].webRtcEndpoint && pipelines[user.id].webRtcEndpoint[user.id]) { + var webRtcEndpoint = pipelines[user.id].webRtcEndpoint[user.id]; + webRtcEndpoint.addIceCandidate(candidate); + } + else { + if (!candidatesQueue[user.id]) { + candidatesQueue[user.id] = []; + } + candidatesQueue[sessionId].push(candidate); + } +} + +app.use(express.static(path.join(__dirname, 'static'))); diff --git a/kurento-one2one-composite/static/bower.json b/kurento-one2one-composite/static/bower.json new file mode 100644 index 00000000..d35e5c21 --- /dev/null +++ b/kurento-one2one-composite/static/bower.json @@ -0,0 +1,29 @@ +{ + "name": "kurento-one2one-call", + "description": "Kurento Browser JavaScript Tutorial", + "authors": [ + "Kurento " + ], + "main": "index.html", + "moduleType": [ + "globals" + ], + "license": "LGPL", + "homepage": "http://www.kurento.org/", + "private": true, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "dependencies": { + "adapter.js": "*", + "bootstrap": "~3.3.0", + "draggabilly": "~1.2.4", + "demo-console": "1.5.1", + "ekko-lightbox": "~3.3.0", + "kurento-utils": "6.1.0" + } +} diff --git a/kurento-one2one-composite/static/css/kurento.css b/kurento-one2one-composite/static/css/kurento.css new file mode 100644 index 00000000..1aaf3422 --- /dev/null +++ b/kurento-one2one-composite/static/css/kurento.css @@ -0,0 +1,77 @@ +/* + * (C) Copyright 2014-2015 Kurento (http://kurento.org/) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser General Public License + * (LGPL) version 2.1 which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ +@CHARSET "UTF-8"; + +html { + position: relative; + min-height: 100%; +} + +body { + padding-top: 40px; + body +} + +video,#console { + display: block; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, box-shadow + ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} + +#console { + min-height: 120px; + max-height: 360px; +} + +#videoContainer { + position: absolute; + float: left; +} + +#videoBig { + width: 640px; + height: 480px; + top: 0; + left: 0; + z-index: 1; +} + +div#videoSmall { + width: 240px; + height: 180px; + padding: 0px; + position: absolute; + top: 15px; + left: 400px; + cursor: pointer; + z-index: 10; + padding: 0px; +} + +div.dragged { + cursor: all-scroll !important; + border-color: blue !important; + z-index: 10 !important; +} diff --git a/kurento-one2one-composite/static/img/kurento.png b/kurento-one2one-composite/static/img/kurento.png new file mode 100644 index 0000000000000000000000000000000000000000..6f1a4ad3b243c7a31ddff38a00835b7e5eea30ca GIT binary patch literal 6499 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 JPDHLkV1gbuNT~n- literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite/static/img/naevatec.png b/kurento-one2one-composite/static/img/naevatec.png new file mode 100644 index 0000000000000000000000000000000000000000..05ee7041db5f47d4953c24f67cd2d645ca114ea8 GIT binary patch literal 52049 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 z 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 CRtV?- literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite/static/img/spinner.gif b/kurento-one2one-composite/static/img/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..8be8ba338d5b5aec80593295f88bcaf6608bdf18 GIT binary patch literal 8534 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 z z23q;-*;SFu4jB_v(74jA(SHL{koGE`Z@-;!Q$<_1Tf6ZFqo^mL>Sk=0Q6%KkAt z2;Ab0Z#SY?(CF4jwGpNkSy&(}Wnc__?&0A*?yQH3@2zUoo)L;0Ct? z4h8ynHz%JG0`qRkRjL`}SVyZw?`T|aW@a%i#GLKy9P`qXZ_(S2axj-6t$sfnCff|2 zdDW9*@>cdJ|H9ZNuc}i*wt4P{W>TIX!Sc)18KM2=qm@sezL=v0j0m@tTtA5EN$gA? z_Mxto(OwD**Pm(V+o|O{6ecXeBmOlX4f z2w%#$o#5{bEWPY6DT!1*8T(!|!DzPSr~UZz3p{>1=hTVg-+^;#&+VOX4|i*vhizat z?0Q^p7@f9=7$8KeRRZ_F#0rNFQ$kC$_S-5MvjDNJ-fSXA9oUOp)dp$i9TjTR!7i^K zA*-q0Hd7Sh~`+}o)c)Y$( z+?CJi1D=>WrX_D>Uztet5Pvr+-rhB32tLuiQdyqqBSjF`{s?rXr$tEP!K33A!it#Q zsT9z5{bNJRI6FV|@xEb|e?|s)?EhZj{(EEqia!0zv3^OSix67dq)8JfvZp?7m*VoI zx-UP6%c+2r)Pe4$PzWhKyLKBI{*6V2M@F$hJds2qc*iqg#g(lWE{+wkKbeIgtEo{b z`0Sj#e8sF1F&k1=Q*WclcPSs!-NHl>dwSLQ1B{E8 z6rko(7GCwfI{6V3Tc3|DMy{SlVA9O_mrVSSVj|-$10+yq-n|3~(tSL9z-A(5jqr?Y zO&ZzSWpT=nCr7M_XH9W;!>b+a^uR`AnimrgLB@ERr3KHy^!P9_UWI*+C&H*%g?25? z)Do9}5-d^Fi8C)nL4@_DAW25DJgr8dXtWD^F{^xR`AcaZ-FVf^41eeFoHQhBR)XUq z4h-xn-ED%!aM7V1Z2?M6ou2336@X+DE#Lq^Pq`fNGInrOJ_K9~P$U|k-XA`Oq1wn@ z--#H>VLZ2a_)iZPVaraH+x2(lA5;o*lOy{f&^$y*S)p*`lTDk|7RV}m+6?UZ)eMY% ztDQ_c7ZNw%rsJMeZ7}3}lcPPlvF&QHwX$ydDVv{$zy0Qt3*es7NMys2BU*Z))|;v7~DFQRpSu@8%q24%xljgx(wIb6_qM) zk6*6VGsu21OH|QRnN>CXy3)w4S(b{^lDV)Q<3UY25Mn~{oI3|%<&_4tVf`$#uCj8pM`A6Fvq G(|-Y9t#!u$ literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite/static/img/transparent-1px.png b/kurento-one2one-composite/static/img/transparent-1px.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite/static/img/urjc.gif b/kurento-one2one-composite/static/img/urjc.gif new file mode 100644 index 0000000000000000000000000000000000000000..cd8a7703ae9ab79619a008faf54268597c122648 GIT binary patch literal 16756 zcmeF1^-~nw7w|XfSbAB)1(xm(0qO4UP(Zp-K!jykknS$&Zjgr(0qO1%5EPUSr9_n1 z@B8!nC%k7qbLP(6bLY;vGw05|=Nwga6$wfEdTRMP>I5;?Xd3gl~2V=3=q@<+W+}tu!L>U5AhT<>YtVxX?)*Zaoy@J=1lGbyR*2{9& z|H;|<`rYm>gmf2z+9gHolA?AIh+PC~7sbEJFSRSByQ}mMi(TD+IP6+j>{>YNdO7R{ z2k&D4f!)O>?ItDdHkR%Fle4qkySp<8=^29m3?+4@t9xeQb>`r8<`sN~#hxW4o$aol z{j>UK_fPKb?jWRh5X2oR=^ZKJ4uQHu@ZTY%?od*9x(;_17Izj7cMe{6Ucq->*gLPJ zyWrrvVC)?>_zs(Nht0i9!rmn%-R0)qmHngauJIp@ca4L0U5$5LU3XoBcY|GbgM)W7 zGk5>|Ti?Cg{hyb2|94x!|Cj&Q2|PSJF#Uo60e}Yp&;REC7ZY-L4}b@JdbOsa{s=q@ zF00YxqDpO;q>rmwbIDK~T-bGEw7GO738@%MuijENmd0UNV>Q-NK9MExY}}ngb%Ihx zV(q+tthG`%|CL=?wt8FDT&Y?bm-TpC^+KgysYXH9IV_V?Y7MaYv$a-NRzORSL9@MX zt<`y<#(JW?{!@yE$mP!1n}p@JFHXL-wd~A)`hW%#GHP`+?R<=;;I^6UX#P5q%%WMS z)!DK)kuB`D<$kG8UH9^R?6k{Ef)r*7d4pJeR{#CEz)HKAe%7lIO&=$`>Xz@K?mg}m z&Kc63q2@cbwnW{)iMkI5cR)J({O&b>MO)oi_s-Kq8Zhx%38BAPy8In#=pe32fWEENxYXg0`jfePF^)*rY+BpT^V>H^> zTI%XQTb;-6Ob6gJLx2KCzvh%Jw;*+K=%dH-_?v;TR_W2iMwir%SQ+IJTj$q(df`d# z?FZlTBz4HcaReD9Eizx>HTRPjBrnFWQM)6RybiDWRjCBM&p)!U`hb+6f|JHhFN62W zGptPp1?0*0`VS5&i=wy=tI9H6538#lDrydE>e>$vo#@NdzSgxZTa;2+_tqRW^jvcp z*0tksAJ@6VQfeDV*=mnlCdH19TW3|cPudnu+)m!DI@O-EZ@f4<`ET2G6ad)GbUW?b zuc+ngdc)gv+I>FUjkd=ZY3h4_yOr0k$;>ee022xT1i-``NQI6roMLnz5WFD=O4;MS zAY4qOI~#(heexWp|M=L;{w#DOb?8tic^SBilkD5c#^SCI{9dEwIU$%b$>(qsOJ6_5 zaAS2kEQ_n%FpY`4C!hH~Uza&R(s8W+L7Oh}az>(7^Rm^DFhOwE;wD7YPNh5jYLXl3 z!#}hhJBwE5zqMRlP1&>ZS&^;w(|$Q@`#^O)dd5{hyShKF#Rmk`@&r!qa@nPHABsVK zcG2>BcXR?pP?*^?UC+5L-Zbf;9(?s)A;8~h{jcZt&d06p_LGGN1BV+7dwl^_ z&qUDMjV}wtThX5j8a4+e+{`|!vV2ZHOc~+p{z+NR{qqb=+vItQFT*IIx}H@lbOq|S z1gN*tg`W1K1RM2W=Oqa#cld&^zFxYqDZQKhuB4Pd5A!&-J)MKUA3flJ8?!{Vt>ugG z?)e5fqb5(C&R%87qntZG;ppvEiEMH{Ob$@ z>_K+*tz?252(euH=wDjTyDp3ev2)xx;Nr@Zt)Me2w@;7AEEN<=S79%NSmX{f1Cvj4 zX1vJU^Y>l^^8H~di^P@BoiuZP*EyDqi45ANeLf1mf6ooTF@q~2wp9X)`Qtv;zJjYGjfw_DejE6Lw@^NsRCWZoG>iu0G&Ml}CdA^80Z7Sk(F!`vNd#-V zom`+{tW|?QP%np7-F(>Py&hW7>gz1eSIMr2od%SgyV~~X@W@OC)>q_G4X5t;pmk;~ zpq7Z4#drXqbUm3yIOeEqcJm>ws406_2ynL;-EW70IId2bv4pd0>XAg{?LpAu1;f)X zx(tzxbrtrr=FqBr4ngeT% zWgsPf^WG#Ty$sK%LMKV$Ns@$ImHLF1CNImpXhS-$cKve|&FV@2Dr-4*7&1;8Lw6ZY`>0 zKpO2&8p(5~-m7(PYVkSRizE>5c4b-((dCuCUjl3)^{(1i9h3Rfur}zL>$ho*wEzZ^ zPN-x%$`%gB7?=^Gm22Xp<`O8x7;z}+WmZ|*`ebfQ#XpFpqwLhmpd?i&3@xz40!VeO_2M>--kQPbx1BBQ%j!M=9gd6q|+I0)*V=D>7twrBPW ze#&#jO&mQ9V!_|HuAvIluX(-eW7OMP^y&pb+O=&_Uw_N}GoBj;kT`6CBf<{UTdg$9 zWj;!v;i7vyxS3kJibKY;|JP^qjA^&1+XfY#Qu0+aQP>8_u;QwE)4VpMyG&o*>KN%U zk-lbv#%X8+_B?hT0ABG+9g7xL8_2dZ-tWMYI+S&)`EZMB@fdm{e?&9!Ob0V^3nHb6RmehR%D$;8jzaf8BOT0o|W{ zHB~&)IzXYuMVW};jk=f0c2=3?pF_3hl=K{O5k+Uk1a>o;vp_)*g&ye0S@)rPeP#N( zUEGZ#7B)z%0swRA_3tS(VW`%NZs0{ovaF^l4aVXKTC@H=quFk%8YBb`W5Pj=hBI-@ zRc7i9z{Jt=Tco5BaG3mA{F{EF*rMn!9e*yXo@=r`g;mJF#^ji4bRIq3h9+2Hz$X80 znUICIU~_wjCagz!peg*xF_2sS`AqDc0F*nsh`c(f_cBG{4O7TIpUr<6FE8~XVR)aB zNoZg(x|CV-*B}A%wpU&bR%#zmuJ#J9FjuMja93IeQ-XE<4if?c-i1AsHscBw!SZLB z0A_5BOlWPpFrrm7vpvupz?j++CR74UnuR@@Md0502LQndv#=TeKA=KVxPLRQk{$5y zJDRHlL(`A1iVS@%$3eltY>c5;?gu^}AyX{^hR#x$J*62NVf^-;LjNfP+bk!YJiZc| z>NU(y@O!}B_g5%yi1-M`Brp<528H(H=fLnCN(m9^7 zGi4qU-=hQ1RSh>Y8Dp0HCb;8G$m$yq6ex&@bA8I;c>sDhMZeyF^aV-*Y z_4A(AKlPqt-B%r*Sa(eJOHA9cDci2$J=r|%RiYgnie3AZv61sq3V zvgiC%9@D<@3Tg2)ZSmT3@f;WN{T-C6YI5tVJR5M4Ee^TuQOYlY@K{djlmhJpp@+1K$+2Mm|<~n$rE7g0Jyz^8K(P2noF0_of!qDsA;( z@FUw#*C1fm&>kj>kMIFFsfa8kKKx9aGmB>tOnSR0OW7~`GSl_rzC$B8g`k>`rP|Xf zfb2`8!N67W_ZBmVytY)37nL{ga}`&vqf1 z&a|U%3QpyzLmyK$E_}FwX>(XF!hZYKZ<#p7>PHx>UJeO$bC^|zkVCraQ*%B&Y5*Y) z`7+p%rd$Xl2e1z!V{KRX#g>(rp7@q6N70JhyS3i%fJr6FQwJw&7u+Kh7%|bM1Grq}XYEG(mO7*BN zz>#;NC40UdlTyj)DtM6Pl59WLnJ|%~lK%^?xR@@~4E5kn%R4&AQgABt87oADn>WXJ zFepn6DJib5k-;paQ(h!qXX{vAs^G{uJp8awML9*IiiW>x{C3g%W1h(MfY8fX6L#X1 zF6b-~isj*5PnlFV6qG8Js^JzL7vv8Xm+UH4=;D&e6@1e5Ofk1?%b?6M!bGB`%!M5U zF12;Nd5eH1IQEypDaw?Y68Mz%mf+F?dL?P^uHhHe`Y!9#PKS>Tm2)a~ z1sj zKzsIydGKD>MnEWPor+?jYNoFw&7|V%D13#2-geQ}5T%A-ZKxhD!kKVyy%F0J_lVCoWpP@uMnLvaK^fw*$nu6(q~Zn_o?AD3WV?>s<#WH#f1%}_u_P1cdG4YP6~UwGxuoVOWcn#@e)eX&K~ zsjCm~iOBZT3^asZ))iXY}}1b5l%RVo;8lNYDkVtV~6bq~h=dREI8Bz}s8YbBSa z>!7H06m1?}6QAgWnN?m=tW5gN$dj)fOqqi$v| zsr89(GN3rA+mB)TK@D4qjbPR9E2SW}a755Y6E%GMWN6Y#kdhq4xG0dV53fKkNbY`6FCLbT1`Ez(gU^E- ziYW|daYF^5hH{{OnxUseg9!qlgNxuYAfm*cK^*<&+5Pa|D4swvYan^#qCDggU?jM% zG@}VvUrhCw411(z4}IJ;64g^ukPJ3T9y%oR=k*;;?kV|CoWmrZ!t4u$r8HDv76(-X z@uVLsqK_*q!cRfsaQ6XGeL%)0u%BK)@%?xc{Y1-y^hBH0M0?0Yhcs8b9f+mR|22~H zW&bO^fe?WvplWgisvrMN6Od&V$L4+_IGoko7iqhKBXSN^QzK9JhD42E1H!3ve^7*M z4~dKbqmn1~H`wCQAQWJ_%>askff(oT=(Z;_=$R)?p@GMPh<<#e0N89B_v?*6R0t|~ z4qQu_Ca`9*K|+L`xs_LOI0W!%=4Ny5XQk~&YJnmi=t>Aar(6_|&6U$$^}J*N^(~?O@<% z#7rYAxF%>2{vWagJ%|8V(NZ%I5yUhlibrXF4n1Mm=}*z8&o9Cg@eWMCpV%hzw{eHE z!+^4Kb3B4LjD4Ri=_7E-ne0?StO9uHcI#|A_-Wf9Zf~dpdV3*%F1!dxwY^0C_p2P^ zu7d2YlFhD4=x(GvPJAEUnE|NUm}!Q(FbJ#puocj)&G-tYds-(&2*2mby3vL_})b|16z z9UZ#wSn?g)yC1)`pZIq_neia?LG~cs<{&flAiMA&xA!1_>!46}t>EzoPbQ1g!1mp7 z@fUFua0I+sr<6Tdhch>!tGmZFsLI3A5|i7FPG$cCemZQIK6~qS(kOIH)dW<_R3-p8 zAed|xuB1M^BKLRbZ(1n6((dJkH1-@Z9_@3S8)>$k{ObEt>rqOPZEjvL%AGHlWGAjf zMn{*5yJl=@(hKr&{k7_X=W`_Z>PlDrIJiqC99kqY=>=aog4*{*C|^Fj3p@++Irq&y zm+e0PD=T_C`k`XCOW(h{w;gtqpp1V(>_*WASPAAl_$=0O2KkR}^+tGCl-sSFN41aB|Q0it<0BzDR7rz}q% zz4Ma4VRyOVjyqJbg+2S}ihFoWgP%`a>{d+(SU&P7izFN9ZZlW0#4WldvQHt{`EgM4 z=bg!U?Tcqzt<_X-i$Wgddp_=B;xv>AJ9!#V7QlZ5iof}2n+pwtanNh+HNqYwB>_9z zpXD%63V<9OU_StXGLRF2u$)wcYp9|e#HOWorm_w_5Z3uGe^R|m6Y#`S;GbB&KaLQUU? z)^`}YFV}#E3F^nUS&d_L)5N^jsE+hIpV&%IBK^Kh)QZ;MQPCph5NYb*{D5rJGIS&t zI66D`vJ6wEnb%?+9cTvzp+8b*61{72nlIOO8zwRd__Re5`-7{u#0ru*ldcKqng?IMvB$TVIBtnZTIAXSKk%Qbbqz2|lY;L@bW43oUvy{P(q z`?X$mDjGb`%@7%1BOPM`+GZQH>8N3+$kCWXF+YzTuT3O!j%|6{u@T#pR&(t0KE|p} zpp;V>lR9=_L_by@ok@8xn(X8sGd78yAX9(xAbl{xYzi@|<;G2D)N5AKi)qd!8U@rK zdmw$vDcKgS>_Wm)BHTlvQWP~}oCZ3@B6%1CrpMw-1WZ7@=(+N%{jyPYQ7@4ggOZLk z@|C!6L_}z?x5nalO`mj)nR1r0fu54O!*aFa!&`>2Y3H0nqK`|`!bD7?`Qz#ACj5s+ z+>~jtSJnClyX`fJTh!N$<5$l?QR*7 zfa_%DkVduT&)(yyl~ailQ_=kNvZdWn+g&lG99!}oz>Bv9x6f)@yRz47Uw!F#R^I+X z8-jz-D|((vkt_#<&O;xs$3$hEMPeQ-&?mLFW_CavY7XPGnoprz5ja%{0I$`@5%I!#BC>^ww)a{Ckhz49yc<8UMM1iMzEq!4b2cbEePV2dvn>k$HIW zL{s(Bf4tVf`o-qU@9$rJ4)ZFwmiPF;pu3%}Cl1wn>zY^D8+_C_BKte8 z5LYPp;Q4}V$i)czhmh&c?=!#8!i7G(zWMy-N$9WH5#2vmepye#{@i>I3%M(8{d{x2 z@&rUZi^j!nJ~&Xw9T3C9NwIbi)+#~hu#^8$Ug7>Z3mQT+?MV?bUQ7ZWSeERQ)6mSF z0u=!U&AosRxjCnLs=UOnPYvM?Z*k&o!CQ{PjrhptBZ{Qw-ur?xYtAu} zM4Qd`!|3<&L_8-hOt7&lMP3UJ>l#7y7JOELj7SG)P@AJff7^-rdm3Z*!wM?v*gEXC zbIL&@WJA+Ape!TgW+LlGP6=ZHNrw^#d0cK1#ZlHwQ=PozW$+g&mM`H}dsgg*ErkF{_EWKnWlWsI@lId?LxIJFc8e@s}u)y#HXAnyWUs>!?~x z@`0c!8eS(c7F|kSoUQ-CRU?VSHSKl~KOMuFA|TWUB-8_}{beR|w}B+EXqrgV%#Z!S zBSy7h4}$Q-OdBea9jt!ld;rY$$H5nkH3;Plw7)haSueHN6jzdd7n;*ZAyPaU!?z>! z{a8Eh?iK0p`izp?IKD{ju}1am6PnqD_f~_M^UpkzT7*sJEOf*!4MtTV>X}14>h=;l z#|pl`le@`l1oG}@G=GXL8I7Y_p+UvcWJiYOHqd&KolG5d;rb(x2J2_uQEt+8Ydzj- z6rcQDz>{CF;ia+$mxOs`|LV5P^Fbi*`%!G~9mlU|blJ%sFU6DRRC^K{qWc*cHV+Kf36+W{K+yj<(CN1+uKefoA)~jJ15QZc!KB`Lut)DJxa#tg;44e z0^$`3rEAWT;;&_08<|h^Ow!XoEUckVR;Rs;eip=krvsYh%0BfJHlN^GtrF>r8G5Ht zf$LjEWtb)6;!Lx#PK|ZUbj{-TGcWk5HDL!raOnvg#}hu?4?~Zn(29=HP)$APhmA?7 z_(BNF2w7dK_WtW)xws0UueW*00<#>>8|WPZGz@8n^I2@%65=>I0jdXoC=Hr@~p6cMb1`4 zi9*W{Ooc}Xl1f~nB$t>W@G)fF*8cV_eQ5f$Rza`lQ@7p(o8(%po=`W7?(RZT+0zXaEEL-L?{*x9@&MFOP*MSXGGUzd=RxjbUNK7_Zv8C`w z;}NX~HrggmeRk>$jXE}euT=)PmJ)ixAalJel>uN2#RFq#0bL8Pr*1RX~#ya9-gy(SaPm;po3VzbO{K;)7tY zp&vBK;EeUsj$fa+oh^hYU6WXXNZ!MdGip_CK|pF0Ghup+pWg?JHxFL(J1XC3l3f%- zd`G@zf0$1Z4u_(r4<$G~mPUY`Y%XmSB*{pY2Y~@R1W7H)lfm#x6NREUP_}+awk4f} z+`r}xqe113{En|;32WVv*$OIUgBopvn)eiTngk5TDI@9;M0wHB!9ji0kb%fhcy?~$ z4~npbk9Lwnrr05~^dX2+--8@lyQD4gyv=-f$mUX6ZdV`{ErVj>%n(5H-VZq#4VRv` zLbRhHf@VMxB#`7B&5#|TX*TS>IP9^jQoV`|LxTy5!ex*nTmq_Ma;m-%ESUgMV}JN1 zb|i3jSaTb|v>G962bP&tmE8uvz8vA)kKjayiy?um+mIloQLNFZz7dFc9~`y|_P-p7 zQBsXr1dBCci2H^kcSjR1)yNOA^hKDEMb)_c(KKmw-*}+P?P#X|Sk~kt#wLsm$5;qz zEY2Zf4jSog7zX5cRr+{!dVyjes32bL zwbgjVu7)fcNKrK2L^;vCL9c=i4_ySeZD=$&Xow*(q{xYm^oh>+Or4H!uD&tZ|+mTYyRO+?*)aV$@1OcsWrlNjw!pByXGYEB08W`n{Uz-_ylVH;q$ zTKG8S)EsK6un0om1QP309c)vd+R#E@MsQ|>$jvaLJX4J4xsX_%BIou9=)~(UIY&k14oC$ks#(O5O<#rg&kIBAM)*T`V2C2PC0Xdn)x9z z^HXW&(rD(&Vdfg>|1fidow-e)`BgS^*QUFff{ELPXy{>C^ner{|C|O8>H#I3AsS6n zzs@0Q5?FpcAVDCSpb3qK7tZR8)l}2_wT;z8V*QNMMMw$37lw?bKo5eLzV#p*jq5Oli36FyY^ZA?pLG z*cnvqLsUA#nfBFl>F32A!E^;6o>h?c_Pj#IjOsS1fPO*Q5zHfi2^%%2%7&2Kf`=U@ zl?xu`;)vAv)O4y=Aqukqcoir&L`}rGUQzfnba^k2`?1D)I!WujJ27H!WlMK5~#E_;3IMQOR;+z z{skEMKzxlRVBWD|isJ+q0Gy8p=CL!^ni`WCHA@^aAKS&kS2fpAV`7fx+lv{haA(uB zRR{$P6KuWa2%XMDVM;{tC6Pcss`VV`S|}xm0=b;OXHnx2p5wn7f*N_(X0b%SvKDWW zyc(Y4K3*`nT)qTmLIM+pqBU0mOn7Rwd*g0YmRzft2IxlfE|wgL(Pa1(REF*_>Jt;p=Bqvn%7U~-`G zx%QUI6fjM0>SNny_q~z5a-fLaXQ0mLI`77t4XxXPQ7$Azi3&k~wxCB^~7#lctW zu*6qUo!(f!XWb@^Qq^6B5Xf!)g_`*vgPEhvN?C#X8QVkk7%H(C>RU77>k+PPfEHkf zAyoD3k2Z8`o3koh2O6VvyG64MUaJEkR@X7BSkebMjg6&Gd39>=Y%t^SQ%?~r55QvS z^%Tnxh*=C@(c2zMvPkCq<;^Pk3CFXgsqwgckT?gHr{b&oF;-(1&9xozDM5|mTB~UD ztIT->u^Ohd2*TWlLFccu`+uqk`5J1ZO&kqY*u&Ssiy*@@t>2j7t1u3|H;mW*Bt^aF zuz?joVmM(o7RHmG-m5=BV#tfI#(Vg>w?L9njEd8m3=%|_4XKpS?%`1%l>Yog*{YXF zjaLmL!no%sJEVz@pxJYXTXG;42v>neOL@m?Y-0>nCZ-1WdfXkJMupP_LaGI@V$nJaP=&91B|%`bY&2z_W|{d zt)?#5Vs}+_ai%@qVfglSf`<1UjUeQsAf{RMzt%SO?#uf`;4oQ2HUS{dzi9mHiYOBv?>3 zftVMIfCJ$$&~Y7z84YC44kw=tS4}=#n1v_@M$k5aK1AI#Zg!L zQTOms&+^gxZ%4h?M;~yG`>2om*^URqjz6ln7xtkki^3miyZT{|M>CJdDvrn7k0*wY zCzp?>D%`pE0d6|SvnopDI8G=rkDshMv(zU`r_A6e8&27i)dsWIe>IoePZ+ z`7D|Bu%B=|VdEZKY^ON^6Q4;=cVC4T?eLv`3$^@ga=I^u{PyDXu)=&l^YnP@(P8`P zX{h1x^67chqtolt9~GwO)MuA`kA8@qUCVl2MS1;*0Z>E(X_J8!!)N!)XMet({k=YW zz&QudoC9yp$hXnliDwYgbLjJPoR{agZ_e?u&habH3I01L962XiIVVp0eok_8PKtX0 zqq!hszaSUCpisS_G`*mDenI{6g67QyoPDVBHvtY8qyBD6&3Px2zRbY4&iIr9;yR^& zU8QsSD5d@jhMi2*%dWPjlSQP`YV{CP7zp>C$%L2|y zCFcLcW+i{f+y8j*mgM`~FdiqKgOtzm=NZxfeE%wOI?urL@Z=|#_z!Vczd!pvbbdeT zFY3tf(KiI+8T)uDZ%JR3_V9=+i!|oTnLgoB{jjk5qdo}8MxjyiRX&dCr~2nh!?sKP zqz&1dB#oyRHK?j#EoID1PUc;p& z=He59`lA;dm?7KG0TcECNS`a>g8<_6fDcjE9I1YqW!FR-`EFrt&RH*Xo?I^deKEWC zLYe-h@Fl(98L7W`nc&%VujdVv@FiCmGk0aa`&&}8u7Z=rVGPac`v(@bySRkt&yN~DQ@o*h;eGZpmPYc8SCTS?BWo5dD#z2b+C& znfu!>OL^ohq%kSvrPuG@c|W)%i58jb0%QGxp1(?;qZ8FI{cnCn&?iN3iapvgJz+HM zgM4#9cF`X;TU1_nBX2kJ3_%r>oBZKhAGtU8T3PoSED6o3gg@yXA7;zrr{Up&qoDvC za@6e^asZ2GOGKoXY=;v`&Q2X@=H0IpL&6JMb(WI{;}F6{)R28&h7$lp4*8=#$cPA1 zV_E560!}J<)Vfmcvw-m@P!{eI_gNvPh%7*&&LqsPbUIN4io)YeEmJRt<}gy4{oGr? zh|rNx_63xLryIJE1IFZl;1rj4B!hw1d|N%iH$P5}9!$Lqx-hs;?%i$$Y#OmN3-97? z1s$*!463q-TUMQhtOJ~#TzkF|KupG#W0jGTO$oiZ5S2ux`(T8eu#*Hb(+;rwueuKl zr|S#P#2LkrE6^8Q3&(l-ADd?9-nW53e3kcqKwhAEs}yl7?*dL>6M$fMuQ0#pv{mD+ zspr{WnUIP(+J(=EhriZ8uZ~(r&YtWzJTQsa%IA!!ng&1TgdzSdsN6J%ApBP_{HzlC z{vxz*vhc(b_Rzr?=sANSKm1?XS5>fM(Z;7da9cBQPJ{&jX~Wymw<%Dvv0?5}fyHQX zZqK@rtaYpegSa|TX|pFcyI5_4sz>SAEB1%IS3oXKCast1{~o$Qf0oH|NQWg5iM+pt zk*12hgI{g<iMVb-=#+hx^pGtC; zpZS=xT4#JwWvxhXLA=cb*&r&?p8wd}*NkS&Vl!LFYJ1V%`OXzurs^4+GTlyB@Qdwa^M_akZ*X`k0{8zjtt1k8z zdFhnPs}*lyVpNsNDam3^@(++)V;g-=2DjI_F~rz;>~Da(CN01f-d_|-SZHu?Ey~+L zrWs%V-@JOf*?&||29Jlnmvo~#$#Ne*Y-$c6x=yWU8q!l-sV{Q$8#!Iv-^Q}2syLWq zUkv(ma%lQ<4u~mc;?&Sz+$Wio9YTFZv`sZGCX=N$O^5Zt-j|EKj$MxPGJcmd3$=Gv z-%H3l*K6nb3QPqPte4%}!rY|F(k6+mqfG~#BW3ni@hJ3e26&;xOZKmxzwQXrn~9gO zHC9a!{fht2eJ+)1J?6jJR^Rk?h5T=tY})B$`^g_O*E-vWrEj>A`dpEb!a283xBhde zgla#wA#T&$u#@(~Z*1{amA!u*>!u~0YeJXUqmY#w|8~42Nc-1!YM;X7@2~3*YBgTu zTqDlCW|aEWd~(8M?+z+I0DiNa5Ii8Av^+o0CXpyVem}%ZrTwQbC-1bYQR*q6n}?Js z;FH<`<~iA@U}N~Lq0L`<39^x?`0$UP-YSzLkwl*EFKlc7wVbBD?}ck|^6RB554@!8 zqjFWRbxXy2al=9NcQOpmdG$m#ng-vSKk^S}k=A`>Csd;;`cDM%lwPfWkyempM{p;s z{ko5uk2mxa*_SbDMfUgmF-Yq8NkVqf4}dQ!cA{F$^L6`KJ=N-tXSD_AEu&9hHf1p{ zdZ@|gMtfLIj^jSIX8E4}1d$dKCk1135PR_cVHZaog9*(58}@PmlX3AGg1$J7@{jZ~ z+;9A>cJgd0+9e1`q7{#~84U3?OQred6GJXDAF3yGo9D}NV9ll%;tA68AEiS+CuS&>lZ73ywbumB_mde2f@K{7qN?s zwb;G$_41bAOisRK`CsJvhBccH=K1@K2%_(wN+#0ViA9l(USYDeZt4c(1A?`MEn`L% z3!4i|i3oFCt6_$WN{+xGCx(yJbHD_{Vil3+m9vsPuT%9|aRR^UOH^e%%S|jMFGk6X zRm;V?3ZvN^tG6v)zBBxiS_G8@XgtPU_+~E{ooJOKA`_cT{x{m;Y|z~)n*gmQwhK5l93@0Fp)(Wq zoE7($G$Cj-PE{-r8d&SJewVZZYeBM;;oEnnqIG;DBhRGb9=~^f7#(ZU1#QyriPs{g zYlFFK8K$b7$$s!J$_t1W8gc33`_6^kk~h^>Pr9D?FAm)X6ea;DSPz)zBAWDNm7ns` z;LA-Ff12E6CJ7YA)Gj8?*7V-}R4|e8W$1?mb8Eq-RaW z-EKCgD)154rvQ*0dm&WiS_U;VWxF3mS0}oy3Oaw@G@AN!FfSc~RxGRq5sjxmXFZo; z_NIs*5w?sp^3zGd9{}OWnGUP*>wCP4Hlp}aBPppg@ZjB-a`Wu@Bd?=DV@%VFo5}C; znl55*Sw%`H>i3n|+q==S^+mM22kM4h^O?PuPP)JM6IBokg?~k=6nPKnA4}z1)EiW) z)*l+Tb}cn{roJt1JMgKvTWaqWZSboK85*Bm-uXO4gTRJeO> zI~*!a>-LYlr#@-Fqt~y*ApO>-0j=Gedzmj@&(=!^ zba!uE_ue$^Xg>y1_*Fm> zXTwE;pVb`oqsfmss~0J0J-chXq7u5qtYLXQdwgM?uVneMlW)kriG7fqu4VP(tTEWr zeHt_!!S`@kbe8YEW90JgO~Ylm@E-x?5rMBld6yN2?+;B@&N@F{nnY`YoX8DFVUm5`?Bsgbl1%zaS6&stoIG|)2YicCEavr zJ{q4RE8OQR2wrA1-NP+@B!56nNfr%UtT*8$;u4?X+fX@qe?Cd*_G(6}&B@W$=8dd! z6n&R)6n9bc)s=*{$Ko>C=bb>CqJG;$d1K$6!nvK#N@{Z6L-5d$D0dlKfa@Yq%Vz3g z_0ZVnes3r~66Y%A(;vz0Cq~!@R$QQL6lgcC*?N1<#nfz7AK(1*FTt1&2McFM8*pxs zTmi}B_jE)R`8X!=IJEi%3JB0?k&RjUpQ|FU)X7dXpNfrRH9Du?n=^gQ-}#85;a+<5Ghds=bDJg8D$kPwkR4>NZC8cq+{&N6Z1%x zA~@!$*Z~xUfga?1vIx-m6hHJ+P5nPL=8j2n`b2f$`|LiVyXMH54`qxn~`|?i%FMT`c(@VOV50<&lEzwK9olVil7|wS)9wi z1ifcARr`8=0Bww<)M} zsTOIpm=q-QOtl`F=^z)Nw+lD;sz@of8N{%GpVK`We{>a@0Mu%SP|A#>Y<9~`7^5_M zDH&^?L0zL1Wbws(Q$EQI0$@sNyQtJoJzAYFLgTr%xf)OTO6Pg@6zG$elC#{9k`HoyWaY22s0_jrG;)1HE8j6-17OK}4cfzv1k5XrZ_=lD!0}{2H92^%N zqpX=drZa=e_7tdM{A39L8=Ernk?0}^52*y@jYs`n7~VROy4O*&pyzFu{H zp=W?{V(M!pn~*3)hrzP|Q#%}3@ZU;{5H|Q}!LS5G(L^O=3rD&|ixfJqpT93>x36Tk zM@+rvp3Cf?>QWiqR|J2!lD@H`Up zJkLef`)Y)rZ+lAZk(+#Zx)zPOd8R2Nr%z&8z~(SOO|D~f+@=fNkT2%Z2k1@ZvebRd)xeQWiZ1ueAG zJvHGwH7^|p39+i?y!-b4sgA1BIrg`1RpiEYIVt1YoYy>uni_6eY+OS9j=?EzZMiNX z-pLxMXOi!zDvJ&gCsS~s)~k&&g`Q}&LLJ|~k&%T*yeHJg%;ohhIeis*?^T>t1WYj1 zkYLY(oU-wnirGp4$NfE5>6VjY51NtOL)xIOblyFrXQ@kw6dYd~tPPVL+SodFa+W@M zn#k<2Usmv-#r3+TZerT@iPMC-9pq5d)fuPgaRM~5W~_A4KE&SL^s;E&yDk;LORs*6 zzEZS&5qBlAxH8}6{~y=hQSjr zQOZhAWw->V@~bL62*SYepPaY)~L@})0w85ost?G>SO_7vqf)jg{v3sp7hn72|( zeq8gMq{2_xjGl$#H|>_RZn56|@OZWF*3X>y1;?<9jYrWZJLZHq3(hf)vvA8h{2!w5 zGMKgJp^W$A7TNXqqoQ~(1w0%QrZ)T{KYcy9 zbgnaXYJ~eMnoB|Z;Np6S`LE6^fj*zH8XHJBQ20zqi2}>$t?GgGF*yS!Hr#)y4cvT0O4GS2Pw{Do7G!+(-JrmjvrX#R(4Y2fTQ_xyFVDZs7)-DbT>v?7e)C%xgn7qUgr zMUA_2_c!1H4Y*-%sZ-14Ksu^-3$T;-0c3?dA zA-bjGZb(@ybpgsqJ1ZVGC9RnrcKt{&T6e!_l(*$RSD&0N$g zo-wRgM@~P0Q%x45Pe_Lb>enOb83(-=q-Ec}r1PrzHFy%0Hn4p5WcoFvpGpx7vty@# z@S3(tyo%FMdn);}fvod~jnmPG2U?JVlc04~nMM_xb3stFs*na4XZLbD!z z!LOGfO?A(yj9-5StsMY`DfISn^BqOD}iQYQ8t%C~8(`K;!3V~9badUZR`GD=g@G@!hV7@?;3gzV6~Ek|Pu6 z=grX9F3b43>B^_XkD2}3s}^AcaCS}X7c+l9q@wk4q6Yx_y^-1V83Vv78q%|@DsEGm z>f2O-Y**zcwY41t^+7Yvv7gkh6+i82vnb7(l?SJ;)QV-gzHEAo&u_*(f_lQo{rW#_ z%L})KNG8j6%nw8N;FAm~Z7od_f+MkHS4PYA*$<0 zy$H=ew(Xe?Lb|hog>9;;VktDTkK1g#OU@N2rzrvNB@zLX?Dn77xR0zPR_uXx)#$0u zMip^x+;1{3&e&FxZl3Ph4lE(&nkOEne}+Y)vljM&=z7vaW$>}LDq0DKmP}=rlzH6H z;rl$C2Vj*It!9>_)`rbn)HZ##zEMyxmpucL_+`Jpw0m3v>LD%gP0A0=!gKy*9kgbQ z98p`9>?i|*&tEKBkpr`Db0Xr#?>j#;3CF#Ws)?{D%i9D6W}M?I*SIZm&3n8<(o~N~ zHGG$<`465bM8Ycet^v2Z=}3w}h3YF{s)@b3rS#79C6PAeGy zo!8_4_!%mt1v}C=Ez9`wUv_uC{XOXNBH-(`&wJyb(#Jg`-F*imD(PR#jM}2JJA2L^ ze@LSlB+^YO|3|Jkb4FK#9^)707-9L$e8@7c-D H!e9*m8KQaw literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite/static/img/webrtc.png b/kurento-one2one-composite/static/img/webrtc.png new file mode 100644 index 0000000000000000000000000000000000000000..d47e2e4cb3aa08c20d1c0ae0a2997633df1b79aa GIT binary patch literal 12375 zcmdsdXH-+swr(g2f{I8J0qI3rM4EI20g>Jey;mur_o^aIKtOsEP^y4*sR3ysy>~+I zEffPJA#dm0`|G`X&%Ni3JKm4S7<+7zwdPuD&iQ@cntNwOX{syTA$dpw0)g%*zkHz$ z0^x^(KzPf~DFyDr17&1A0D(v}9OUISHSM9EP!D^kE0eOk zJd>+C)Yiet1_bh*%hs{e)!CtzLN1-jsYHf;R)K0$5i@Da#e`BOaBwr!RxX_POTD-TTNoI)Fne*e`6+}k=L9GN7I8L=7HwUllrlq&OpJvw# z6SWiHPI)P)B^-LYMD7v!^1I%yo|Sce*)S3|SI|A;8f#_`3@aY!B3M$AhozmU4TR@A zPD%`FSIcaFLLY%8+m%Z<#tVIq*Y26{Oocd<5+v&%CszoPRm2O;PUFx4eIW#y_gh)6 zfi(F*=A0p$LiQuWYx5W)aD!p2= zkxfh?%!ruJjR*qaf5bJUOv6JdVu5dwAQ1yC4ma?_7vkgbhlz? zNF=WQt{LAh>?W4Q(sJ#3W4O#!76e-H3?9Aa1=lA5WitV~LVWeB8}G zhP7UW^P&i(;liLFZ=~@868MTutO)+9aNg7RY+pr!Kqt-6jtMSef>8T+E5kn6BN>d+ z7j{snt#YCp2xR(#jbHaqjZ7~w2=wAh8269obY~q8c-wE%cidR$AVr&tyq9C^`XzTy zj>I~Y-rfB1_qTFf9|nIgaGQfCWEq6owd_A6x!&dfrT6o$lq=bl1#wOXS4-F}!sow< zDJ+=hBJnJv^;zSHY0|?lm^)q)-j88p>Wie*Vo^yDekq_Gt;?kMlHo+k9bYWMSg|QV z;y38&Tl9w(C4tXj)ml;$x9j8^i$x#4SIj3JvGx?mh^PLNIpSXXQ0k*d-quK&J=t8m zw0!TA_U#8mf?ZBe_X7oQSwhY8$aPISAEqTyFaEl=AzBI!&{Om^ztEVQs11lV>OZ3XI>_r-{I@o z>z(U@>vZePCq^XMma=YNFLYM9wEw($MZ0ltLulisP1@7vdIcHUi^X}mRoT79T#op1EL3Zv_20i(^Ly-$75)Fb)Sd|?4@m`lchuT^ttP~1E~`JkR-oK=18XF z2J4oT7M3oRlIor6_3Or$nCb*oDC!C7td-oFNGa1R&DPx0q0_M|ktmKRwJV0|%6ttr zz(n0N=v3|0kpHUnrOIrrrH6^sinhj=m)Y@7*$1yM;VzD?&dTMLvxH&X-S@# zyx=QANR9UCXImMfwKTVjEKl`YTURgE^Jk3Hb8~lect_<03?spB`gyyh1^ zFqfjkw4656&>U50(UM>5))jpa7^91EzA8Fbx~+e+<~G~S`P)MeB)f&(ppp#W-g$(U zyh*35{5Okai`13(35}zY1(S-giew)hdW_fD)|`8sdkQ#iaxinKsO_p9W@xK57CtVN zP?b>a9UK_UADl`T&Xf|Ee!7*pl{uXWZ!kCXHRP=?uK#JHT)l2sXmD8H;u3BsX7Ej4 z&(Nesu{^t+eX6;d`giP zM>NuZrQLJaq}L=xm!2*em<@=wH~ens*XV@in1#dTLs+raSbyv&s3?>j&yFA}?0J|G zKI+0hkQo*yBR+5Qw|e&A`NuDf irzb${e(NWH9|9k&aIWuxAZ75;L;cmEQ@b=UQ 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%0DqyY_U`jn{LN96(U?gPXk>r5}z`&GRfO-^z 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 literal 0 HcmV?d00001 diff --git a/kurento-one2one-composite/static/index.html b/kurento-one2one-composite/static/index.html new file mode 100644 index 00000000..6552f2e8 --- /dev/null +++ b/kurento-one2one-composite/static/index.html @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Kurento Tutorial 4: Video Call 1 to 1 with WebRTC and composing of media streams + + + +

    + +
    + +
    + +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    +
    + +
    + +
    +
    +

    +
    +
      +
      +
      +
      +
      + +
      +
      + +
      +
      +
      +
      + + + + + diff --git a/kurento-one2one-composite/static/js/index.js b/kurento-one2one-composite/static/js/index.js new file mode 100644 index 00000000..124fddbf --- /dev/null +++ b/kurento-one2one-composite/static/js/index.js @@ -0,0 +1,326 @@ +/* + * (C) Copyright 2014-2015 Kurento (http://kurento.org/) + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Lesser General Public License + * (LGPL) version 2.1 which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/lgpl-2.1.html + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + +var ws = new WebSocket('ws://' + location.host + '/one2onecomposite'); +var videoInput; +var videoOutput; +var webRtcPeer; + +var registerName = null; +const NOT_REGISTERED = 0; +const REGISTERING = 1; +const REGISTERED = 2; +var registerState = null + +function setRegisterState(nextState) { + switch (nextState) { + case NOT_REGISTERED: + $('#register').attr('disabled', false); + $('#call').attr('disabled', true); + $('#terminate').attr('disabled', true); + break; + + case REGISTERING: + $('#register').attr('disabled', true); + break; + + case REGISTERED: + $('#register').attr('disabled', true); + setCallState(NO_CALL); + break; + + default: + return; + } + registerState = nextState; +} + +const NO_CALL = 0; +const PROCESSING_CALL = 1; +const IN_CALL = 2; +var callState = null + +function setCallState(nextState) { + switch (nextState) { + case NO_CALL: + $('#call').attr('disabled', false); + $('#terminate').attr('disabled', true); + break; + + case PROCESSING_CALL: + $('#call').attr('disabled', true); + $('#terminate').attr('disabled', true); + break; + case IN_CALL: + $('#call').attr('disabled', true); + $('#terminate').attr('disabled', false); + break; + default: + return; + } + callState = nextState; +} + +window.onload = function() { + console = new Console(); + setRegisterState(NOT_REGISTERED); + var drag = new Draggabilly(document.getElementById('videoSmall')); + videoInput = document.getElementById('videoInput'); + videoOutput = document.getElementById('videoOutput'); + document.getElementById('name').focus(); + + document.getElementById('register').addEventListener('click', function() { + register(); + }); + document.getElementById('call').addEventListener('click', function() { + call(); + }); + document.getElementById('terminate').addEventListener('click', function() { + stop(); + }); +} + +window.onbeforeunload = function() { + ws.close(); +} + +ws.onmessage = function(message) { + var parsedMessage = JSON.parse(message.data); + console.info('Received message: ' + message.data); + + switch (parsedMessage.id) { + case 'registerResponse': + resgisterResponse(parsedMessage); + break; + case 'callResponse': + callResponse(parsedMessage); + break; + case 'incomingCall': + incomingCall(parsedMessage); + break; + case 'startCommunication': + startCommunication(parsedMessage); + break; + case 'stopCommunication': + console.info("Communication ended by remote peer"); + stop(true); + break; + case 'iceCandidate': + webRtcPeer.addIceCandidate(parsedMessage.candidate) + break; + default: + console.error('Unrecognized message', parsedMessage); + } +} + +function resgisterResponse(message) { + if (message.response == 'accepted') { + setRegisterState(REGISTERED); + } else { + setRegisterState(NOT_REGISTERED); + var errorMessage = message.message ? message.message + : 'Unknown reason for register rejection.'; + console.log(errorMessage); + alert('Error registering user. See console for further information.'); + } +} + +function callResponse(message) { + if (message.response != 'accepted') { + console.info('Call not accepted by peer. Closing call'); + var errorMessage = message.message ? message.message + : 'Unknown reason for call rejection.'; + console.log(errorMessage); + stop(true); + } else { + setCallState(IN_CALL); + webRtcPeer.processAnswer(message.sdpAnswer); + } +} + +function startCommunication(message) { + setCallState(IN_CALL); + webRtcPeer.processAnswer(message.sdpAnswer); +} + +function incomingCall(message) { + // If bussy just reject without disturbing user + if (callState != NO_CALL) { + var response = { + id : 'incomingCallResponse', + from : message.from, + callResponse : 'reject', + message : 'bussy' + + }; + return sendMessage(response); + } + + setCallState(PROCESSING_CALL); + if (confirm('User ' + message.from + + ' is calling you. Do you accept the call?')) { + showSpinner(videoInput, videoOutput); + + var options = { + localVideo : videoInput, + remoteVideo : videoOutput, + onicecandidate : onIceCandidate + } + + webRtcPeer = kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, + function(error) { + if (error) { + console.error(error); + setCallState(NO_CALL); + } + + this.generateOffer(function(error, offerSdp) { + if (error) { + console.error(error); + setCallState(NO_CALL); + } + var response = { + id : 'incomingCallResponse', + from : message.from, + callResponse : 'accept', + sdpOffer : offerSdp + }; + sendMessage(response); + }); + }); + + } else { + var response = { + id : 'incomingCallResponse', + from : message.from, + callResponse : 'reject', + message : 'user declined' + }; + sendMessage(response); + stop(true); + } +} + +function register() { + var name = document.getElementById('name').value; + if (name == '') { + window.alert("You must insert your user name"); + return; + } + + setRegisterState(REGISTERING); + + var message = { + id : 'register', + name : name + }; + sendMessage(message); + document.getElementById('peer').focus(); +} + +function call() { + if (document.getElementById('peer').value == '') { + window.alert("You must specify the peer name"); + return; + } + + setCallState(PROCESSING_CALL); + + showSpinner(videoInput, videoOutput); + + var options = { + localVideo : videoInput, + remoteVideo : videoOutput, + onicecandidate : onIceCandidate + } + + webRtcPeer = kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, function( + error) { + if (error) { + console.error(error); + setCallState(NO_CALL); + } + + this.generateOffer(function(error, offerSdp) { + if (error) { + console.error(error); + setCallState(NO_CALL); + } + var message = { + id : 'call', + from : document.getElementById('name').value, + to : document.getElementById('peer').value, + sdpOffer : offerSdp + }; + sendMessage(message); + }); + }); + +} + +function stop(message) { + setCallState(NO_CALL); + if (webRtcPeer) { + webRtcPeer.dispose(); + webRtcPeer = null; + + if (!message) { + var message = { + id : 'stop' + } + sendMessage(message); + } + } + hideSpinner(videoInput, videoOutput); +} + +function sendMessage(message) { + var jsonMessage = JSON.stringify(message); + console.log('Senging message: ' + jsonMessage); + ws.send(jsonMessage); +} + +function onIceCandidate(candidate) { + console.log('Local candidate' + JSON.stringify(candidate)); + + var message = { + id : 'onIceCandidate', + candidate : candidate + } + sendMessage(message); +} + +function showSpinner() { + for (var i = 0; i < arguments.length; i++) { + arguments[i].poster = './img/transparent-1px.png'; + arguments[i].style.background = 'center transparent url("./img/spinner.gif") no-repeat'; + } +} + +function hideSpinner() { + for (var i = 0; i < arguments.length; i++) { + arguments[i].src = ''; + arguments[i].poster = './img/webrtc.png'; + arguments[i].style.background = ''; + } +} + +/** + * Lightbox utility (to display media pipeline image in a modal dialog) + */ +$(document).delegate('*[data-toggle="lightbox"]', 'click', function(event) { + event.preventDefault(); + $(this).ekkoLightbox(); +}); From 8f265cdfa7d353ffc6238dd17bbb07d014c636dd Mon Sep 17 00:00:00 2001 From: Vadim Date: Sat, 5 Sep 2015 00:13:00 +0300 Subject: [PATCH 2/3] Update package.json --- kurento-one2one-composite-record/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kurento-one2one-composite-record/package.json b/kurento-one2one-composite-record/package.json index 58055cb5..89e47e4b 100644 --- a/kurento-one2one-composite-record/package.json +++ b/kurento-one2one-composite-record/package.json @@ -1,5 +1,5 @@ { - "name": "kurento-one2one-call", + "name": "kurento-one2one-composite-record", "version": "6.1.0", "private": true, "scripts": { From 478484babe9d0072597f3eb1ca7f131ac85b53df Mon Sep 17 00:00:00 2001 From: Vadim Date: Sat, 5 Sep 2015 00:13:33 +0300 Subject: [PATCH 3/3] Update package.json --- kurento-one2one-composite/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kurento-one2one-composite/package.json b/kurento-one2one-composite/package.json index 58055cb5..4a8f7b4b 100644 --- a/kurento-one2one-composite/package.json +++ b/kurento-one2one-composite/package.json @@ -1,5 +1,5 @@ { - "name": "kurento-one2one-call", + "name": "kurento-one2one-composite", "version": "6.1.0", "private": true, "scripts": {