@ -26,7 +26,7 @@ define(["jquery"], function($) {
@@ -26,7 +26,7 @@ define(["jquery"], function($) {
var refreshPercentile = 90 ; // Percent of the TTL when TURN credentials should be refreshed.
// turnData
return [ "$timeout" , "$http" , "api" , "randomGen" , "appData" , function ( $timeout , $http , api , randomGen , appData ) {
return [ "$timeout" , "$http" , "api" , "randomGen" , "appData" , "translationLanguage" , function ( $timeout , $http , api , randomGen , appData , translationLanguage ) {
var ttlTimeout = null ;
var geoRefresh = null ;
var geoPreferred = null ;
@ -44,24 +44,52 @@ define(["jquery"], function($) {
@@ -44,24 +44,52 @@ define(["jquery"], function($) {
} ;
if ( turn && turn . servers ) {
// Multiple options, need to sort and use settings.
var i ;
if ( ! turn . serverMap ) {
var servers = { } ;
var serversSelectable = [ ] ;
// Sort for prio.
turn . servers . sort ( function ( a , b ) {
servers [ a . id ] = a ;
servers [ b . id ] = b ;
return ( a . prio > b . prio ) ? 1 : ( ( a . prio < b . prio ) ? - 1 : 0 ) ;
} ) ;
turn . first = turn . servers [ 0 ] ;
if ( turn . geo _uri ) {
turn . servers . unshift ( {
"id" : "auto"
// Create selectable servers.
var lang = translationLanguage . lang ;
for ( i = 0 ; i < turn . servers . length ; i ++ ) {
var label = turn . servers [ i ] . label ;
if ( turn . servers [ i ] . i18n && turn . servers [ i ] . i18n [ lang ] ) {
label = turn . servers [ i ] . label = turn . servers [ i ] . i18n [ lang ] ;
}
if ( label === "hidden" ) {
continue ;
}
if ( ! label ) {
// Use id as label.
label = turn . servers [ i ] . label = turn . servers [ i ] . id ;
}
if ( ! label ) {
// Use index as label.
label = turn . servers [ i ] . label = '' + i ;
}
serversSelectable . push ( turn . servers [ i ] ) ;
}
// Add auto zone if geo URI and available zones.
if ( turn . geo _uri && turn . servers . length > 0 ) {
serversSelectable . unshift ( {
"id" : "auto" ,
"label" : "auto"
} )
}
// Make created data available.
turn . serverMap = servers ;
turn . serversSelectable = serversSelectable ;
}
var urls ;
if ( turn . preferred ) {
for ( var i = 0 ; i < turn . preferred . length ; i ++ ) {
for ( i = 0 ; i < turn . preferred . length ; i ++ ) {
if ( turn . serverMap . hasOwnProperty ( turn . preferred [ i ] ) ) {
urls = turn . serverMap [ turn . preferred [ i ] ] . urns ;
break ;
@ -79,7 +107,7 @@ define(["jquery"], function($) {
@@ -79,7 +107,7 @@ define(["jquery"], function($) {
// Unknown data.
turnData . urls = [ ] ;
}
console . log ( "TURN servers selected: " , turnData . urls , turn . preferred || null ) ;
console . log ( "TURN servers selected: " , turnData . urls , turnData . ttl , turn . preferred || null ) ;
service . e . triggerHandler ( "apply" , [ turnData ] ) ;
return turnData ;