@@ -275,17 +275,26 @@ module.exports = function (rpcClient, selfRpcId, parentRpcId, clusterWorkerIP) {
275
275
}
276
276
277
277
var conn = null ;
278
- switch ( connectionType ) {
279
- case 'internal' :
280
- conn = internalConnFactory . fetch ( connectionId , 'out' ) ;
281
- if ( conn )
282
- conn . connect ( options ) ; //FIXME: May FAIL here!!!!!
283
- break ;
284
- case 'webrtc' :
285
- conn = createWebRTCConnection ( connectionId , 'out' , options , callback ) ;
286
- break ;
287
- default :
288
- log . error ( 'Connection type invalid:' + connectionType ) ;
278
+ if ( connectionType === 'internal' ) {
279
+ conn = internalConnFactory . fetch ( operationId , 'out' ) ;
280
+ if ( conn ) {
281
+ conn . connect ( options ) ;
282
+ connections . addConnection ( operationId , connectionType , options . controller , conn , 'out' )
283
+ . then ( onSuccess ( callback ) , onError ( callback ) ) ;
284
+ }
285
+ } else if ( connectionType === 'webrtc' ) {
286
+ if ( ! options . transportId ) {
287
+ // Generate a transportId
288
+
289
+ }
290
+ conn = createWebRTCConnection ( options . transportId , options . controller ) ;
291
+ options . tracks . forEach ( function trackOp ( t ) {
292
+ conn . addTrackOperation ( operationId , t . mid , t . type , 'recvonly' , t . formatPreference ) ;
293
+ } ) ;
294
+ mappingTransports . set ( operationId , options . transportId ) ;
295
+ callback ( 'callback' , 'ok' ) ;
296
+ } else {
297
+ log . error ( 'Connection type invalid:' + connectionType ) ;
289
298
}
290
299
291
300
if ( ! conn ) {
@@ -313,7 +322,7 @@ module.exports = function (rpcClient, selfRpcId, parentRpcId, clusterWorkerIP) {
313
322
} ;
314
323
315
324
that . linkup = function ( connectionId , audioFrom , videoFrom , dataFrom , callback ) {
316
- log . debug ( 'linkup, connectionId:' , connectionId , 'audioFrom:' , audioFrom , 'videoFrom:' , videoFrom , 'callback :' , callback ) ;
325
+ log . debug ( 'linkup, connectionId:' , connectionId , 'audioFrom:' , audioFrom , 'videoFrom:' , videoFrom , 'dataFrom :' , dataFrom ) ;
317
326
connections . linkupConnection ( connectionId , audioFrom , videoFrom ) . then ( onSuccess ( callback ) , onError ( callback ) ) ;
318
327
} ;
319
328
@@ -326,13 +335,8 @@ module.exports = function (rpcClient, selfRpcId, parentRpcId, clusterWorkerIP) {
326
335
log . debug ( 'onTransportSignaling, connection id:' , connectionId , 'msg:' , msg ) ;
327
336
var conn = getWebRTCConnection ( connectionId ) ;
328
337
if ( conn ) {
329
- if ( conn . type === 'webrtc' ) { //NOTE: Only webrtc connection supports signaling.
330
- conn . connection . onSignalling ( msg ) ;
331
- callback ( 'callback' , 'ok' ) ;
332
- } else {
333
- log . info ( 'signaling on non-webrtc connection' ) ;
334
- callback ( 'callback' , 'error' , 'signaling on non-webrtc connection' ) ;
335
- }
338
+ conn . onSignalling ( msg , connectionId ) ;
339
+ callback ( 'callback' , 'ok' ) ;
336
340
} else {
337
341
callback ( 'callback' , 'error' , 'Connection does NOT exist:' + connectionId ) ;
338
342
}
0 commit comments