Moving creating TURN configration to the host machine instead of the bots - rtcBot

R=andresp@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/24939004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7468 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
houssainy@google.com 2014-10-17 16:43:50 +00:00
parent f7030d4ed7
commit 0371a37f85
3 changed files with 25 additions and 31 deletions

View File

@ -113,38 +113,9 @@ function getStreamFromIdentifier_(id) {
return null; return null;
}; };
// Ask computeengineondemand to give us TURN server credentials and URIs.
function asyncCreateTurnConfig(onSuccess, onError) {
var CEOD_URL = ('https://computeengineondemand.appspot.com/turn?' +
'username=1234&key=5678');
var xhr = new XMLHttpRequest();
function onResult() {
if (xhr.readyState != 4)
return;
if (xhr.status != 200) {
onError('TURN request failed');
return;
}
var response = JSON.parse(xhr.responseText);
var iceServer = {
'username': response.username,
'credential': response.password,
'urls': response.uris
};
onSuccess({ 'iceServers': [ iceServer ] });
}
xhr.onreadystatechange = onResult;
xhr.open('GET', CEOD_URL, true);
xhr.send();
};
connectToServer({ connectToServer({
ping: ping, ping: ping,
getUserMedia: getUserMedia, getUserMedia: getUserMedia,
createPeerConnection: createPeerConnection, createPeerConnection: createPeerConnection,
showStream: showStream, showStream: showStream,
asyncCreateTurnConfig: asyncCreateTurnConfig,
}); });

View File

@ -9,6 +9,7 @@
// Provides a Test class that exposes api to the tests. // Provides a Test class that exposes api to the tests.
// Read test.prototype to see what methods are exposed. // Read test.prototype to see what methods are exposed.
var fs = require('fs'); var fs = require('fs');
var request = require('request');
var BotManager = require('./botmanager.js'); var BotManager = require('./botmanager.js');
function Test() { function Test() {
@ -71,6 +72,26 @@ Test.prototype = {
createStatisticsReport: function (outputFileName) { createStatisticsReport: function (outputFileName) {
return new StatisticsReport(outputFileName); return new StatisticsReport(outputFileName);
}, },
// Ask computeengineondemand to give us TURN server credentials and URIs.
createTurnConfig: function (onSuccess, onError) {
request('https://computeengineondemand.appspot.com/turn?username=1234&key=5678',
function (error, response, body) {
if (error || response.statusCode != 200) {
onError('TURN request failed');
return;
}
var response = JSON.parse(body);
var iceServer = {
'username': response.username,
'credential': response.password,
'urls': response.uris
};
onSuccess({ 'iceServers': [ iceServer ] });
}
);
},
} }
StatisticsReport = function (outputFileName) { StatisticsReport = function (outputFileName) {

View File

@ -20,9 +20,11 @@ function testOneWayVideo(test, bot1, bot2) {
onPeerConnectionCreated); onPeerConnectionCreated);
function createPeerConnection(done) { function createPeerConnection(done) {
this.asyncCreateTurnConfig(function(config) { test.createTurnConfig(onTrunConfig.bind(this), test.fail);
function onTurnConfig(config) {
this.createPeerConnection(config, done, test.fail); this.createPeerConnection(config, done, test.fail);
}.bind(this), test.fail); };
} }
function onPeerConnectionCreated(pc1, pc2) { function onPeerConnectionCreated(pc1, pc2) {