@flashphoner/websdk 2.0.212 → 2.0.215
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docTemplate/README.md +1 -1
- package/examples/demo/streaming/conference/conference.html +4 -0
- package/examples/demo/streaming/conference/conference.js +203 -62
- package/examples/demo/streaming/video-chat/video-chat.html +5 -0
- package/flashphoner-no-flash.js +328 -230
- package/flashphoner-no-flash.min.js +2 -2
- package/flashphoner-no-webrtc.js +322 -224
- package/flashphoner-no-webrtc.min.js +2 -2
- package/flashphoner-no-wsplayer.js +328 -230
- package/flashphoner-no-wsplayer.min.js +2 -2
- package/flashphoner-room-api.js +338 -223
- package/flashphoner-room-api.min.js +2 -2
- package/flashphoner-temasys-flash-websocket-without-adapterjs.js +329 -226
- package/flashphoner-temasys-flash-websocket.js +328 -225
- package/flashphoner-temasys-flash-websocket.min.js +1 -1
- package/flashphoner-webrtc-only.js +322 -229
- package/flashphoner-webrtc-only.min.js +1 -1
- package/flashphoner.js +334 -231
- package/flashphoner.min.js +2 -2
- package/package.json +1 -1
- package/src/flash-media-provider.js +5 -0
- package/src/flashphoner-core.d.ts +7 -4
- package/src/flashphoner-core.js +98 -29
- package/src/room-module.js +9 -2
- package/src/temasys-media-provider.js +5 -0
- package/src/util.js +204 -185
- package/src/webrtc-media-provider.js +12 -7
- package/src/websocket-media-provider.js +5 -0
|
@@ -9317,7 +9317,12 @@ var createConnection = function createConnection(options) {
|
|
|
9317
9317
|
var id = options.id;
|
|
9318
9318
|
var authToken = options.authToken;
|
|
9319
9319
|
var display = options.display || options.localDisplay;
|
|
9320
|
-
var flashBufferTime = options.flashBufferTime || 0;
|
|
9320
|
+
var flashBufferTime = options.flashBufferTime || 0; // Set connection logger #WCS-2434
|
|
9321
|
+
|
|
9322
|
+
if (options.logger) {
|
|
9323
|
+
logger = options.logger;
|
|
9324
|
+
}
|
|
9325
|
+
|
|
9321
9326
|
var url = getConnectionUrl(options.mainUrl, options.flashProto, options.flashPort); //todo state from flash instance
|
|
9322
9327
|
|
|
9323
9328
|
var state = function state() {
|
|
@@ -9938,8 +9943,9 @@ var constants = require("./constants");
|
|
|
9938
9943
|
|
|
9939
9944
|
var util = require('./util');
|
|
9940
9945
|
|
|
9941
|
-
var
|
|
9946
|
+
var LoggerObject = require('./util').logger;
|
|
9942
9947
|
|
|
9948
|
+
var coreLogger;
|
|
9943
9949
|
var loggerConf = {
|
|
9944
9950
|
push: false,
|
|
9945
9951
|
severity: "INFO"
|
|
@@ -9987,7 +9993,7 @@ var disableConnectionQualityCalculation;
|
|
|
9987
9993
|
* @param {String=} options.decoderLocation Location of video-worker2.js file
|
|
9988
9994
|
* @param {String=} options.screenSharingExtensionId Chrome screen sharing extension id
|
|
9989
9995
|
* @param {Object=} options.constraints Default local media constraints
|
|
9990
|
-
* @param {Object=} options.logger
|
|
9996
|
+
* @param {Object=} options.logger Core logger options
|
|
9991
9997
|
* @throws {Error} Error if none of MediaProviders available
|
|
9992
9998
|
* @memberof Flashphoner
|
|
9993
9999
|
*/
|
|
@@ -9996,16 +10002,10 @@ var init = function init(options) {
|
|
|
9996
10002
|
if (!initialized) {
|
|
9997
10003
|
if (!options) {
|
|
9998
10004
|
options = {};
|
|
9999
|
-
}
|
|
10005
|
+
} // init global logger
|
|
10000
10006
|
|
|
10001
|
-
loggerConf = options.logger || loggerConf;
|
|
10002
10007
|
|
|
10003
|
-
|
|
10004
|
-
loggerConf.enableLogs = true;
|
|
10005
|
-
} // init logger
|
|
10006
|
-
|
|
10007
|
-
|
|
10008
|
-
logger.init(loggerConf.severity || "INFO", loggerConf.push || false, loggerConf.customLogger, loggerConf.enableLogs);
|
|
10008
|
+
coreLogger = createLogger(options.logger);
|
|
10009
10009
|
var waitingTemasys = false;
|
|
10010
10010
|
|
|
10011
10011
|
try {
|
|
@@ -10026,7 +10026,7 @@ var init = function init(options) {
|
|
|
10026
10026
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
10027
10027
|
extensionId: options.screenSharingExtensionId,
|
|
10028
10028
|
audioContext: audioContext,
|
|
10029
|
-
logger:
|
|
10029
|
+
logger: coreLogger,
|
|
10030
10030
|
createMicGainNode: enableGainNode
|
|
10031
10031
|
};
|
|
10032
10032
|
webRtcProvider.configure(webRtcConf);
|
|
@@ -10043,7 +10043,7 @@ var init = function init(options) {
|
|
|
10043
10043
|
var webRtcConf = {
|
|
10044
10044
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
10045
10045
|
extensionId: options.screenSharingExtensionId,
|
|
10046
|
-
logger:
|
|
10046
|
+
logger: coreLogger
|
|
10047
10047
|
};
|
|
10048
10048
|
webRtcProvider.configure(webRtcConf); // Just reorder media provider list
|
|
10049
10049
|
|
|
@@ -10071,7 +10071,7 @@ var init = function init(options) {
|
|
|
10071
10071
|
var flashConf = {
|
|
10072
10072
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
10073
10073
|
flashMediaProviderSwfLocation: options.flashMediaProviderSwfLocation,
|
|
10074
|
-
logger:
|
|
10074
|
+
logger: coreLogger
|
|
10075
10075
|
};
|
|
10076
10076
|
flashProvider.configure(flashConf);
|
|
10077
10077
|
}
|
|
@@ -10095,7 +10095,7 @@ var init = function init(options) {
|
|
|
10095
10095
|
receiverLocation: options.receiverLocation,
|
|
10096
10096
|
decoderLocation: options.decoderLocation,
|
|
10097
10097
|
audioContext: audioContext,
|
|
10098
|
-
logger:
|
|
10098
|
+
logger: coreLogger
|
|
10099
10099
|
};
|
|
10100
10100
|
websocketProvider.configure(wsConf);
|
|
10101
10101
|
} //check at least 1 provider available
|
|
@@ -10117,7 +10117,7 @@ var init = function init(options) {
|
|
|
10117
10117
|
MediaProvider = _MediaProvider;
|
|
10118
10118
|
}
|
|
10119
10119
|
} else {
|
|
10120
|
-
|
|
10120
|
+
corelogger.warn(LOG_PREFIX, "Preferred media provider is not available.");
|
|
10121
10121
|
}
|
|
10122
10122
|
}
|
|
10123
10123
|
|
|
@@ -10145,7 +10145,7 @@ var init = function init(options) {
|
|
|
10145
10145
|
options.mediaProvidersReadyCallback(Object.keys(MediaProvider));
|
|
10146
10146
|
}
|
|
10147
10147
|
|
|
10148
|
-
|
|
10148
|
+
coreLogger.info(LOG_PREFIX, "Initialized");
|
|
10149
10149
|
initialized = true;
|
|
10150
10150
|
}
|
|
10151
10151
|
};
|
|
@@ -10184,7 +10184,7 @@ var playFirstVideo = function playFirstVideo(display, isLocal, src) {
|
|
|
10184
10184
|
}
|
|
10185
10185
|
};
|
|
10186
10186
|
/**
|
|
10187
|
-
* Get logger
|
|
10187
|
+
* Get core logger
|
|
10188
10188
|
*
|
|
10189
10189
|
* @returns {Object} Logger
|
|
10190
10190
|
* @memberof Flashphoner
|
|
@@ -10195,7 +10195,7 @@ var getLogger = function getLogger() {
|
|
|
10195
10195
|
if (!initialized) {
|
|
10196
10196
|
console.warn("Initialize API first.");
|
|
10197
10197
|
} else {
|
|
10198
|
-
return
|
|
10198
|
+
return coreLogger;
|
|
10199
10199
|
}
|
|
10200
10200
|
};
|
|
10201
10201
|
/**
|
|
@@ -10368,6 +10368,31 @@ var getSessions = function getSessions() {
|
|
|
10368
10368
|
|
|
10369
10369
|
var getSession = function getSession(id) {
|
|
10370
10370
|
return sessions[id];
|
|
10371
|
+
}; // Get logger configuration from options
|
|
10372
|
+
|
|
10373
|
+
|
|
10374
|
+
var getLoggerConf = function getLoggerConf(loggerOptions) {
|
|
10375
|
+
var conf = loggerOptions || loggerConf;
|
|
10376
|
+
|
|
10377
|
+
if (loggerOptions !== null) {
|
|
10378
|
+
conf.enableLogs = true;
|
|
10379
|
+
}
|
|
10380
|
+
|
|
10381
|
+
return conf;
|
|
10382
|
+
}; // Create a new logger object
|
|
10383
|
+
|
|
10384
|
+
|
|
10385
|
+
var createLogger = function createLogger(loggerOptions) {
|
|
10386
|
+
var parentLogger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : coreLogger;
|
|
10387
|
+
var newLogger = parentLogger;
|
|
10388
|
+
|
|
10389
|
+
if (newLogger === undefined || loggerOptions != undefined) {
|
|
10390
|
+
var loggerConf = getLoggerConf(loggerOptions);
|
|
10391
|
+
newLogger = new LoggerObject();
|
|
10392
|
+
newLogger.init(loggerConf.severity || "INFO", loggerConf.push || false, loggerConf.customLogger, loggerConf.enableLogs);
|
|
10393
|
+
}
|
|
10394
|
+
|
|
10395
|
+
return newLogger;
|
|
10371
10396
|
};
|
|
10372
10397
|
/**
|
|
10373
10398
|
* Create new session and connect to server.
|
|
@@ -10387,6 +10412,7 @@ var getSession = function getSession(id) {
|
|
|
10387
10412
|
* @param {Integer=} options.pingInterval Server ping interval in milliseconds [0]
|
|
10388
10413
|
* @param {Integer=} options.receiveProbes A maximum subsequental pings received missing count [0]
|
|
10389
10414
|
* @param {Integer=} options.probesInterval Interval to check subsequental pings received [0]
|
|
10415
|
+
* @param {Object=} options.logger Session logger options
|
|
10390
10416
|
* @returns {Session} Created session
|
|
10391
10417
|
* @throws {Error} Error if API is not initialized
|
|
10392
10418
|
* @throws {TypeError} Error if options.urlServer is not specified
|
|
@@ -10401,8 +10427,12 @@ var createSession = function createSession(options) {
|
|
|
10401
10427
|
|
|
10402
10428
|
if (!options || !options.urlServer) {
|
|
10403
10429
|
throw new TypeError("options.urlServer must be provided");
|
|
10404
|
-
}
|
|
10430
|
+
} // Set session logger #WCS-2434
|
|
10431
|
+
|
|
10432
|
+
|
|
10433
|
+
var sessionLogger = createLogger(options.logger); // Override logger for all low level operations
|
|
10405
10434
|
|
|
10435
|
+
var logger = sessionLogger;
|
|
10406
10436
|
var id_ = uuid_v1();
|
|
10407
10437
|
var sessionStatus = SESSION_STATUS.PENDING;
|
|
10408
10438
|
var urlServer = options.urlServer;
|
|
@@ -10508,7 +10538,7 @@ var createSession = function createSession(options) {
|
|
|
10508
10538
|
if (timeout != undefined && timeout > 0) {
|
|
10509
10539
|
connectionTimeout = setTimeout(function () {
|
|
10510
10540
|
if (wsConnection.readyState == 0) {
|
|
10511
|
-
|
|
10541
|
+
logger.warn(LOG_PREFIX, "WS connection timeout");
|
|
10512
10542
|
wsConnection.close();
|
|
10513
10543
|
}
|
|
10514
10544
|
}, timeout);
|
|
@@ -10532,7 +10562,7 @@ var createSession = function createSession(options) {
|
|
|
10532
10562
|
mediaProviders: Object.keys(MediaProvider),
|
|
10533
10563
|
keepAlive: keepAlive,
|
|
10534
10564
|
authToken: authToken,
|
|
10535
|
-
clientVersion: "2.0.
|
|
10565
|
+
clientVersion: "2.0.215",
|
|
10536
10566
|
clientOSVersion: window.navigator.appVersion,
|
|
10537
10567
|
clientBrowserVersion: window.navigator.userAgent,
|
|
10538
10568
|
msePacketizationVersion: 2,
|
|
@@ -10838,6 +10868,7 @@ var createSession = function createSession(options) {
|
|
|
10838
10868
|
* @param {Array<string>=} options.sipSDP Array of custom SDP params (ex. bandwidth (b=))
|
|
10839
10869
|
* @param {Array<string>=} options.sipHeaders Array of custom SIP headers
|
|
10840
10870
|
* @param {string=} options.videoContentHint Video content hint for browser ('detail' by default to maintain resolution), {@link Flashphoner.constants.CONTENT_HINT_TYPE}
|
|
10871
|
+
* @param {Object=} options.logger Call logger options
|
|
10841
10872
|
* @param {sdpHook} sdpHook The callback that handles sdp from the server
|
|
10842
10873
|
* @returns {Call} Call
|
|
10843
10874
|
* @throws {TypeError} Error if no options provided
|
|
@@ -10850,15 +10881,18 @@ var createSession = function createSession(options) {
|
|
|
10850
10881
|
var createCall = function createCall(options) {
|
|
10851
10882
|
//check session state
|
|
10852
10883
|
if (sessionStatus !== SESSION_STATUS.REGISTERED && sessionStatus !== SESSION_STATUS.ESTABLISHED) {
|
|
10853
|
-
|
|
10854
|
-
throw new Error('Invalid session state');
|
|
10884
|
+
throw new Error('Invalid session state ' + sessionStatus);
|
|
10855
10885
|
} //check options
|
|
10856
10886
|
|
|
10857
10887
|
|
|
10858
10888
|
if (!options) {
|
|
10859
10889
|
throw new TypeError("options must be provided");
|
|
10860
|
-
}
|
|
10890
|
+
} // Set call logger #WCS-2434
|
|
10891
|
+
|
|
10892
|
+
|
|
10893
|
+
var callLogger = createLogger(options.logger, sessionLogger); // Override logger for all low level operations
|
|
10861
10894
|
|
|
10895
|
+
var logger = callLogger;
|
|
10862
10896
|
var login = appKey == 'clickToCallApp' ? '' : cConfig.sipLogin;
|
|
10863
10897
|
var caller_ = options.incoming ? options.caller : login;
|
|
10864
10898
|
var callee_ = options.callee;
|
|
@@ -11004,7 +11038,8 @@ var createSession = function createSession(options) {
|
|
|
11004
11038
|
constraints: constraints,
|
|
11005
11039
|
connectionConfig: mediaOptions,
|
|
11006
11040
|
audioOutputId: audioOutputId,
|
|
11007
|
-
videoContentHint: videoContentHint
|
|
11041
|
+
videoContentHint: videoContentHint,
|
|
11042
|
+
logger: logger
|
|
11008
11043
|
}).then(function (newConnection) {
|
|
11009
11044
|
mediaConnection = newConnection;
|
|
11010
11045
|
return mediaConnection.createOffer({
|
|
@@ -11590,7 +11625,7 @@ var createSession = function createSession(options) {
|
|
|
11590
11625
|
/**
|
|
11591
11626
|
* Get call info
|
|
11592
11627
|
* @returns {string} Info
|
|
11593
|
-
* @memberof
|
|
11628
|
+
* @memberof Call
|
|
11594
11629
|
* @inner
|
|
11595
11630
|
*/
|
|
11596
11631
|
|
|
@@ -11601,7 +11636,7 @@ var createSession = function createSession(options) {
|
|
|
11601
11636
|
/**
|
|
11602
11637
|
* Get stream error info
|
|
11603
11638
|
* @returns {string} Error info
|
|
11604
|
-
* @memberof
|
|
11639
|
+
* @memberof Call
|
|
11605
11640
|
* @inner
|
|
11606
11641
|
*/
|
|
11607
11642
|
|
|
@@ -11609,6 +11644,17 @@ var createSession = function createSession(options) {
|
|
|
11609
11644
|
var getErrorInfo = function getErrorInfo() {
|
|
11610
11645
|
return errorInfo_;
|
|
11611
11646
|
};
|
|
11647
|
+
/**
|
|
11648
|
+
* Get call logger
|
|
11649
|
+
*
|
|
11650
|
+
* @returns {Object} Logger
|
|
11651
|
+
* @memberof Call
|
|
11652
|
+
*/
|
|
11653
|
+
|
|
11654
|
+
|
|
11655
|
+
var getLogger = function getLogger() {
|
|
11656
|
+
return callLogger;
|
|
11657
|
+
};
|
|
11612
11658
|
|
|
11613
11659
|
call.call = call_;
|
|
11614
11660
|
call.answer = answer;
|
|
@@ -11640,6 +11686,7 @@ var createSession = function createSession(options) {
|
|
|
11640
11686
|
call.switchMic = switchMic;
|
|
11641
11687
|
call.switchToScreen = switchToScreen;
|
|
11642
11688
|
call.switchToCam = switchToCam;
|
|
11689
|
+
call.getLogger = getLogger;
|
|
11643
11690
|
calls[id_] = call;
|
|
11644
11691
|
return call;
|
|
11645
11692
|
};
|
|
@@ -11686,6 +11733,7 @@ var createSession = function createSession(options) {
|
|
|
11686
11733
|
* @param {string=} options.useCanvasMediaStream EXPERIMENTAL: when publish bind browser's media stream to the canvas. It can be useful for image filtering
|
|
11687
11734
|
* @param {string=} options.videoContentHint Video content hint for browser ('detail' by default to maintain resolution), {@link Flashphoner.constants.CONTENT_HINT_TYPE}
|
|
11688
11735
|
* @param {Boolean=} options.unmutePlayOnStart Unmute playback on start. May be used after user gesture only, so set 'unmutePlayOnStart: false' for autoplay
|
|
11736
|
+
* @param {Object=} options.logger Stream logger options
|
|
11689
11737
|
* @param {sdpHook} sdpHook The callback that handles sdp from the server
|
|
11690
11738
|
* @returns {Stream} Stream
|
|
11691
11739
|
* @throws {TypeError} Error if no options provided
|
|
@@ -11701,7 +11749,7 @@ var createSession = function createSession(options) {
|
|
|
11701
11749
|
var availableCallbacks = []; //check session state
|
|
11702
11750
|
|
|
11703
11751
|
if (sessionStatus !== SESSION_STATUS.ESTABLISHED) {
|
|
11704
|
-
throw new Error('Invalid session state');
|
|
11752
|
+
throw new Error('Invalid session state ' + sessionStatus);
|
|
11705
11753
|
} //check options
|
|
11706
11754
|
|
|
11707
11755
|
|
|
@@ -11711,8 +11759,12 @@ var createSession = function createSession(options) {
|
|
|
11711
11759
|
|
|
11712
11760
|
if (!options.name) {
|
|
11713
11761
|
throw new TypeError("options.name must be provided");
|
|
11714
|
-
}
|
|
11762
|
+
} // Set stream logger #WCS-2434
|
|
11763
|
+
|
|
11715
11764
|
|
|
11765
|
+
var streamLogger = createLogger(options.logger, sessionLogger); // Override logger for all low level operations
|
|
11766
|
+
|
|
11767
|
+
var logger = streamLogger;
|
|
11716
11768
|
var clientKf = new KalmanFilter();
|
|
11717
11769
|
var serverKf = new KalmanFilter();
|
|
11718
11770
|
var id_ = uuid_v1();
|
|
@@ -11956,7 +12008,7 @@ var createSession = function createSession(options) {
|
|
|
11956
12008
|
logger.debug(LOG_PREFIX, "Play stream " + name_);
|
|
11957
12009
|
|
|
11958
12010
|
if (status_ !== STREAM_STATUS.NEW) {
|
|
11959
|
-
throw new Error("Invalid stream state");
|
|
12011
|
+
throw new Error("Invalid stream state " + status_);
|
|
11960
12012
|
}
|
|
11961
12013
|
|
|
11962
12014
|
status_ = STREAM_STATUS.PENDING; //create mediaProvider connection
|
|
@@ -11975,7 +12027,8 @@ var createSession = function createSession(options) {
|
|
|
11975
12027
|
audioOutputId: audioOutputId,
|
|
11976
12028
|
remoteVideo: remoteVideo,
|
|
11977
12029
|
playoutDelay: playoutDelay,
|
|
11978
|
-
unmutePlayOnStart: unmutePlayOnStart
|
|
12030
|
+
unmutePlayOnStart: unmutePlayOnStart,
|
|
12031
|
+
logger: logger
|
|
11979
12032
|
}, streamRefreshHandlers[id_]).then(function (newConnection) {
|
|
11980
12033
|
mediaConnection = newConnection;
|
|
11981
12034
|
|
|
@@ -12039,7 +12092,7 @@ var createSession = function createSession(options) {
|
|
|
12039
12092
|
logger.debug(LOG_PREFIX, "Publish stream " + name_);
|
|
12040
12093
|
|
|
12041
12094
|
if (status_ !== STREAM_STATUS.NEW) {
|
|
12042
|
-
throw new Error("Invalid stream state");
|
|
12095
|
+
throw new Error("Invalid stream state " + status_);
|
|
12043
12096
|
}
|
|
12044
12097
|
|
|
12045
12098
|
status_ = STREAM_STATUS.PENDING;
|
|
@@ -12073,7 +12126,8 @@ var createSession = function createSession(options) {
|
|
|
12073
12126
|
connectionConfig: mediaOptions,
|
|
12074
12127
|
connectionConstraints: mediaConnectionConstraints,
|
|
12075
12128
|
customStream: constraints && constraints.customStream ? constraints.customStream : false,
|
|
12076
|
-
videoContentHint: videoContentHint
|
|
12129
|
+
videoContentHint: videoContentHint,
|
|
12130
|
+
logger: logger
|
|
12077
12131
|
}).then(function (newConnection) {
|
|
12078
12132
|
mediaConnection = newConnection;
|
|
12079
12133
|
return mediaConnection.createOffer({
|
|
@@ -12703,6 +12757,17 @@ var createSession = function createSession(options) {
|
|
|
12703
12757
|
availableCallbacks.push(promise);
|
|
12704
12758
|
});
|
|
12705
12759
|
};
|
|
12760
|
+
/**
|
|
12761
|
+
* Get stream logger
|
|
12762
|
+
*
|
|
12763
|
+
* @returns {Object} Logger
|
|
12764
|
+
* @memberof Stream
|
|
12765
|
+
*/
|
|
12766
|
+
|
|
12767
|
+
|
|
12768
|
+
var getLogger = function getLogger() {
|
|
12769
|
+
return streamLogger;
|
|
12770
|
+
};
|
|
12706
12771
|
|
|
12707
12772
|
stream.play = play;
|
|
12708
12773
|
stream.publish = publish;
|
|
@@ -12742,6 +12807,7 @@ var createSession = function createSession(options) {
|
|
|
12742
12807
|
stream.switchToScreen = switchToScreen;
|
|
12743
12808
|
stream.switchToCam = switchToCam;
|
|
12744
12809
|
stream.sendData = sendData;
|
|
12810
|
+
stream.getLogger = getLogger;
|
|
12745
12811
|
streams[id_] = stream;
|
|
12746
12812
|
return stream;
|
|
12747
12813
|
};
|
|
@@ -12950,6 +13016,17 @@ var createSession = function createSession(options) {
|
|
|
12950
13016
|
}
|
|
12951
13017
|
|
|
12952
13018
|
return sdp;
|
|
13019
|
+
};
|
|
13020
|
+
/**
|
|
13021
|
+
* Get session logger
|
|
13022
|
+
*
|
|
13023
|
+
* @returns {Object} Logger
|
|
13024
|
+
* @memberof Session
|
|
13025
|
+
*/
|
|
13026
|
+
|
|
13027
|
+
|
|
13028
|
+
var getLogger = function getLogger() {
|
|
13029
|
+
return sessionLogger;
|
|
12953
13030
|
}; //export Session
|
|
12954
13031
|
|
|
12955
13032
|
|
|
@@ -12965,7 +13042,8 @@ var createSession = function createSession(options) {
|
|
|
12965
13042
|
session.submitBugReport = submitBugReport;
|
|
12966
13043
|
session.startDebug = startDebug;
|
|
12967
13044
|
session.stopDebug = stopDebug;
|
|
12968
|
-
session.on = on;
|
|
13045
|
+
session.on = on;
|
|
13046
|
+
session.getLogger = getLogger; //save interface to global map
|
|
12969
13047
|
|
|
12970
13048
|
sessions[id_] = session;
|
|
12971
13049
|
return session;
|
|
@@ -13011,165 +13089,168 @@ function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeo
|
|
|
13011
13089
|
},{}],43:[function(require,module,exports){
|
|
13012
13090
|
'use strict';
|
|
13013
13091
|
|
|
13014
|
-
|
|
13015
|
-
|
|
13016
|
-
|
|
13017
|
-
|
|
13018
|
-
}
|
|
13092
|
+
var isEmptyObject = function isEmptyObject(obj) {
|
|
13093
|
+
for (var name in obj) {
|
|
13094
|
+
return false;
|
|
13095
|
+
}
|
|
13019
13096
|
|
|
13020
|
-
|
|
13021
|
-
|
|
13097
|
+
return true;
|
|
13098
|
+
};
|
|
13099
|
+
/**
|
|
13100
|
+
* Copy values of object own properties to array.
|
|
13101
|
+
*
|
|
13102
|
+
* @param obj
|
|
13103
|
+
* @returns {Array}
|
|
13104
|
+
*/
|
|
13022
13105
|
|
|
13023
|
-
/**
|
|
13024
|
-
* Copy values of object own properties to array.
|
|
13025
|
-
*
|
|
13026
|
-
* @param obj
|
|
13027
|
-
* @returns {Array}
|
|
13028
|
-
*/
|
|
13029
|
-
copyObjectToArray: function copyObjectToArray(obj) {
|
|
13030
|
-
var ret = [];
|
|
13031
13106
|
|
|
13032
|
-
|
|
13033
|
-
|
|
13034
|
-
|
|
13035
|
-
|
|
13107
|
+
var copyObjectToArray = function copyObjectToArray(obj) {
|
|
13108
|
+
var ret = [];
|
|
13109
|
+
|
|
13110
|
+
for (var prop in obj) {
|
|
13111
|
+
if (obj.hasOwnProperty(prop)) {
|
|
13112
|
+
ret.push(obj[prop]);
|
|
13036
13113
|
}
|
|
13114
|
+
}
|
|
13037
13115
|
|
|
13038
|
-
|
|
13039
|
-
|
|
13116
|
+
return ret;
|
|
13117
|
+
};
|
|
13118
|
+
/**
|
|
13119
|
+
* Copy src properties to dst object.
|
|
13120
|
+
* Will overwrite dst prop with src prop in case of dst prop exist.
|
|
13121
|
+
*/
|
|
13040
13122
|
|
|
13041
|
-
|
|
13042
|
-
|
|
13043
|
-
|
|
13044
|
-
|
|
13045
|
-
|
|
13046
|
-
for (var prop in src) {
|
|
13047
|
-
if (src.hasOwnProperty(prop)) {
|
|
13048
|
-
dst[prop] = src[prop];
|
|
13049
|
-
}
|
|
13123
|
+
|
|
13124
|
+
var copyObjectPropsToAnotherObject = function copyObjectPropsToAnotherObject(src, dst) {
|
|
13125
|
+
for (var prop in src) {
|
|
13126
|
+
if (src.hasOwnProperty(prop)) {
|
|
13127
|
+
dst[prop] = src[prop];
|
|
13050
13128
|
}
|
|
13051
|
-
}
|
|
13052
|
-
|
|
13053
|
-
var result = {};
|
|
13129
|
+
}
|
|
13130
|
+
};
|
|
13054
13131
|
|
|
13055
|
-
|
|
13056
|
-
|
|
13057
|
-
* Report types: googComponent, googCandidatePair, googCertificate, googLibjingleSession, googTrack, ssrc
|
|
13058
|
-
*/
|
|
13059
|
-
var gotResult = false;
|
|
13132
|
+
var processRtcStatsReport = function processRtcStatsReport(browser, report) {
|
|
13133
|
+
var result = {};
|
|
13060
13134
|
|
|
13061
|
-
|
|
13062
|
-
|
|
13063
|
-
|
|
13064
|
-
|
|
13065
|
-
|
|
13066
|
-
}
|
|
13135
|
+
if (browser == "chrome") {
|
|
13136
|
+
/**
|
|
13137
|
+
* Report types: googComponent, googCandidatePair, googCertificate, googLibjingleSession, googTrack, ssrc
|
|
13138
|
+
*/
|
|
13139
|
+
var gotResult = false;
|
|
13067
13140
|
|
|
13068
|
-
|
|
13141
|
+
if (report.type && report.type == "googCandidatePair") {
|
|
13142
|
+
//check if this is active pair
|
|
13143
|
+
if (report.googActiveConnection == "true") {
|
|
13069
13144
|
gotResult = true;
|
|
13070
13145
|
}
|
|
13146
|
+
}
|
|
13071
13147
|
|
|
13072
|
-
|
|
13073
|
-
|
|
13074
|
-
|
|
13075
|
-
|
|
13076
|
-
|
|
13148
|
+
if (report.type && report.type == "ssrc") {
|
|
13149
|
+
gotResult = true;
|
|
13150
|
+
}
|
|
13151
|
+
|
|
13152
|
+
if (gotResult) {
|
|
13153
|
+
for (var k in report) {
|
|
13154
|
+
if (report.hasOwnProperty(k)) {
|
|
13155
|
+
result[k] = report[k];
|
|
13077
13156
|
}
|
|
13078
13157
|
}
|
|
13158
|
+
}
|
|
13079
13159
|
|
|
13080
|
-
|
|
13081
|
-
|
|
13082
|
-
|
|
13083
|
-
|
|
13084
|
-
|
|
13085
|
-
|
|
13086
|
-
|
|
13160
|
+
return result;
|
|
13161
|
+
} else if (browser == "firefox") {
|
|
13162
|
+
/**
|
|
13163
|
+
* RTCStatsReport http://mxr.mozilla.org/mozilla-central/source/dom/webidl/RTCStatsReport.webidl
|
|
13164
|
+
*/
|
|
13165
|
+
if (report.type && (report.type == "outboundrtp" || report.type == "inboundrtp") && report.id.indexOf("rtcp") == -1) {
|
|
13166
|
+
result = {};
|
|
13087
13167
|
|
|
13088
|
-
|
|
13089
|
-
|
|
13090
|
-
|
|
13091
|
-
}
|
|
13168
|
+
for (var k in report) {
|
|
13169
|
+
if (report.hasOwnProperty(k)) {
|
|
13170
|
+
result[k] = report[k];
|
|
13092
13171
|
}
|
|
13093
13172
|
}
|
|
13094
|
-
|
|
13095
|
-
return result;
|
|
13096
|
-
} else {
|
|
13097
|
-
return result;
|
|
13098
13173
|
}
|
|
13099
13174
|
|
|
13100
|
-
;
|
|
13175
|
+
return result;
|
|
13176
|
+
} else {
|
|
13177
|
+
return result;
|
|
13178
|
+
}
|
|
13179
|
+
};
|
|
13180
|
+
|
|
13181
|
+
var Browser = {
|
|
13182
|
+
isIE: function isIE() {
|
|
13183
|
+
return (
|
|
13184
|
+
/*@cc_on!@*/
|
|
13185
|
+
false || !!document.documentMode
|
|
13186
|
+
);
|
|
13101
13187
|
},
|
|
13102
|
-
|
|
13103
|
-
|
|
13104
|
-
return (
|
|
13105
|
-
/*@cc_on!@*/
|
|
13106
|
-
false || !!document.documentMode
|
|
13107
|
-
);
|
|
13108
|
-
},
|
|
13109
|
-
isFirefox: function isFirefox() {
|
|
13110
|
-
return typeof InstallTrigger !== 'undefined';
|
|
13111
|
-
},
|
|
13112
|
-
isChrome: function isChrome() {
|
|
13113
|
-
return !!window.chrome && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor) && !/OPR/.test(navigator.userAgent);
|
|
13114
|
-
},
|
|
13115
|
-
isEdge: function isEdge() {
|
|
13116
|
-
return !isIE && !!window.StyleMedia;
|
|
13117
|
-
},
|
|
13118
|
-
isOpera: function isOpera() {
|
|
13119
|
-
return !!window.opr && !!opr.addons || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
|
|
13120
|
-
},
|
|
13121
|
-
isiOS: function isiOS() {
|
|
13122
|
-
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
13123
|
-
},
|
|
13124
|
-
isSafari: function isSafari() {
|
|
13125
|
-
var userAgent = navigator.userAgent.toLowerCase();
|
|
13126
|
-
return /(safari|applewebkit)/i.test(userAgent) && !userAgent.includes("chrome") && !userAgent.includes("android");
|
|
13127
|
-
},
|
|
13128
|
-
isAndroid: function isAndroid() {
|
|
13129
|
-
return navigator.userAgent.toLowerCase().indexOf("android") > -1;
|
|
13130
|
-
},
|
|
13131
|
-
isSafariWebRTC: function isSafariWebRTC() {
|
|
13132
|
-
return navigator.mediaDevices && this.isSafari();
|
|
13133
|
-
},
|
|
13134
|
-
isSamsungBrowser: function isSamsungBrowser() {
|
|
13135
|
-
return /SamsungBrowser/i.test(navigator.userAgent);
|
|
13136
|
-
},
|
|
13137
|
-
isAndroidFirefox: function isAndroidFirefox() {
|
|
13138
|
-
return this.isAndroid() && /Firefox/i.test(navigator.userAgent);
|
|
13139
|
-
}
|
|
13188
|
+
isFirefox: function isFirefox() {
|
|
13189
|
+
return typeof InstallTrigger !== 'undefined';
|
|
13140
13190
|
},
|
|
13141
|
-
|
|
13142
|
-
|
|
13143
|
-
|
|
13144
|
-
|
|
13145
|
-
|
|
13146
|
-
|
|
13147
|
-
|
|
13148
|
-
|
|
13149
|
-
|
|
13150
|
-
|
|
13151
|
-
|
|
13152
|
-
|
|
13191
|
+
isChrome: function isChrome() {
|
|
13192
|
+
return !!window.chrome && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor) && !/OPR/.test(navigator.userAgent);
|
|
13193
|
+
},
|
|
13194
|
+
isEdge: function isEdge() {
|
|
13195
|
+
return !isIE && !!window.StyleMedia;
|
|
13196
|
+
},
|
|
13197
|
+
isOpera: function isOpera() {
|
|
13198
|
+
return !!window.opr && !!opr.addons || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
|
|
13199
|
+
},
|
|
13200
|
+
isiOS: function isiOS() {
|
|
13201
|
+
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
13202
|
+
},
|
|
13203
|
+
isSafari: function isSafari() {
|
|
13204
|
+
var userAgent = navigator.userAgent.toLowerCase();
|
|
13205
|
+
return /(safari|applewebkit)/i.test(userAgent) && !userAgent.includes("chrome") && !userAgent.includes("android");
|
|
13206
|
+
},
|
|
13207
|
+
isAndroid: function isAndroid() {
|
|
13208
|
+
return navigator.userAgent.toLowerCase().indexOf("android") > -1;
|
|
13209
|
+
},
|
|
13210
|
+
isSafariWebRTC: function isSafariWebRTC() {
|
|
13211
|
+
return navigator.mediaDevices && this.isSafari();
|
|
13212
|
+
},
|
|
13213
|
+
isSamsungBrowser: function isSamsungBrowser() {
|
|
13214
|
+
return /SamsungBrowser/i.test(navigator.userAgent);
|
|
13215
|
+
},
|
|
13216
|
+
isAndroidFirefox: function isAndroidFirefox() {
|
|
13217
|
+
return this.isAndroid() && /Firefox/i.test(navigator.userAgent);
|
|
13218
|
+
}
|
|
13219
|
+
};
|
|
13220
|
+
var SDP = {
|
|
13221
|
+
matchPrefix: function matchPrefix(sdp, prefix) {
|
|
13222
|
+
var parts = sdp.trim().split('\n').map(function (line) {
|
|
13223
|
+
return line.trim();
|
|
13224
|
+
});
|
|
13225
|
+
return parts.filter(function (line) {
|
|
13226
|
+
return line.indexOf(prefix) === 0;
|
|
13227
|
+
});
|
|
13228
|
+
},
|
|
13229
|
+
writeFmtp: function writeFmtp(sdp, param, codec) {
|
|
13230
|
+
var sdpArray = sdp.split("\n");
|
|
13231
|
+
var i;
|
|
13153
13232
|
|
|
13154
|
-
|
|
13155
|
-
|
|
13156
|
-
|
|
13157
|
-
|
|
13158
|
-
|
|
13233
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13234
|
+
if (sdpArray[i].search(codec) != -1 && sdpArray[i].indexOf("a=rtpmap") == 0) {
|
|
13235
|
+
sdpArray[i] += "\na=fmtp:" + sdpArray[i].match(/[0-9]+/)[0] + " " + param + "\r";
|
|
13236
|
+
}
|
|
13237
|
+
} //normalize sdp after modifications
|
|
13159
13238
|
|
|
13160
13239
|
|
|
13161
|
-
|
|
13240
|
+
var result = "";
|
|
13162
13241
|
|
|
13163
|
-
|
|
13164
|
-
|
|
13165
|
-
|
|
13166
|
-
}
|
|
13242
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13243
|
+
if (sdpArray[i] != "") {
|
|
13244
|
+
result += sdpArray[i] + "\n";
|
|
13167
13245
|
}
|
|
13168
|
-
|
|
13169
|
-
return result;
|
|
13170
13246
|
}
|
|
13171
|
-
|
|
13172
|
-
|
|
13247
|
+
|
|
13248
|
+
return result;
|
|
13249
|
+
}
|
|
13250
|
+
};
|
|
13251
|
+
|
|
13252
|
+
var logger = function logger() {
|
|
13253
|
+
return {
|
|
13173
13254
|
init: function init(verbosity, enablePushLogs, customLogger, enableLogs) {
|
|
13174
13255
|
switch (verbosity.toUpperCase()) {
|
|
13175
13256
|
case "DEBUG":
|
|
@@ -13350,92 +13431,104 @@ module.exports = {
|
|
|
13350
13431
|
default:
|
|
13351
13432
|
this.verbosity = 2;
|
|
13352
13433
|
}
|
|
13353
|
-
|
|
13354
|
-
;
|
|
13355
13434
|
}
|
|
13356
|
-
}
|
|
13357
|
-
|
|
13358
|
-
if (!codecs.length) return sdp;
|
|
13359
|
-
var sdpArray = sdp.split("\n");
|
|
13360
|
-
var codecsArray = codecs.split(","); //search and delete codecs line
|
|
13435
|
+
};
|
|
13436
|
+
};
|
|
13361
13437
|
|
|
13362
|
-
|
|
13363
|
-
|
|
13438
|
+
var stripCodecs = function stripCodecs(sdp, codecs) {
|
|
13439
|
+
if (!codecs.length) return sdp;
|
|
13440
|
+
var sdpArray = sdp.split("\n");
|
|
13441
|
+
var codecsArray = codecs.split(","); //search and delete codecs line
|
|
13364
13442
|
|
|
13365
|
-
|
|
13366
|
-
|
|
13443
|
+
var pt = [];
|
|
13444
|
+
var i;
|
|
13367
13445
|
|
|
13368
|
-
|
|
13369
|
-
|
|
13370
|
-
|
|
13371
|
-
|
|
13372
|
-
|
|
13373
|
-
|
|
13446
|
+
for (var p = 0; p < codecsArray.length; p++) {
|
|
13447
|
+
console.log("Searching for codec " + codecsArray[p]);
|
|
13448
|
+
|
|
13449
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13450
|
+
if (sdpArray[i].search(new RegExp(codecsArray[p], 'i')) != -1 && sdpArray[i].indexOf("a=rtpmap") == 0) {
|
|
13451
|
+
console.log(codecsArray[p] + " detected");
|
|
13452
|
+
pt.push(sdpArray[i].match(/[0-9]+/)[0]);
|
|
13453
|
+
sdpArray[i] = "";
|
|
13374
13454
|
}
|
|
13375
13455
|
}
|
|
13456
|
+
}
|
|
13376
13457
|
|
|
13377
|
-
|
|
13378
|
-
|
|
13379
|
-
|
|
13380
|
-
|
|
13381
|
-
|
|
13382
|
-
|
|
13383
|
-
}
|
|
13458
|
+
if (pt.length) {
|
|
13459
|
+
//searching for fmtp
|
|
13460
|
+
for (p = 0; p < pt.length; p++) {
|
|
13461
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13462
|
+
if (sdpArray[i].search("a=fmtp:" + pt[p]) != -1 || sdpArray[i].search("a=rtcp-fb:" + pt[p]) != -1) {
|
|
13463
|
+
sdpArray[i] = "";
|
|
13384
13464
|
}
|
|
13385
|
-
}
|
|
13465
|
+
}
|
|
13466
|
+
} //delete entries from m= line
|
|
13386
13467
|
|
|
13387
13468
|
|
|
13388
|
-
|
|
13389
|
-
|
|
13390
|
-
|
|
13391
|
-
|
|
13469
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13470
|
+
if (sdpArray[i].search("m=audio") != -1 || sdpArray[i].search("m=video") != -1) {
|
|
13471
|
+
var mLineSplitted = sdpArray[i].split(" ");
|
|
13472
|
+
var newMLine = "";
|
|
13392
13473
|
|
|
13393
|
-
|
|
13394
|
-
|
|
13395
|
-
|
|
13474
|
+
for (var m = 0; m < mLineSplitted.length; m++) {
|
|
13475
|
+
if (pt.indexOf(mLineSplitted[m].trim()) == -1 || m <= 2) {
|
|
13476
|
+
newMLine += mLineSplitted[m];
|
|
13396
13477
|
|
|
13397
|
-
|
|
13398
|
-
|
|
13399
|
-
}
|
|
13478
|
+
if (m < mLineSplitted.length - 1) {
|
|
13479
|
+
newMLine = newMLine + " ";
|
|
13400
13480
|
}
|
|
13401
13481
|
}
|
|
13402
|
-
|
|
13403
|
-
sdpArray[i] = newMLine;
|
|
13404
13482
|
}
|
|
13483
|
+
|
|
13484
|
+
sdpArray[i] = newMLine;
|
|
13405
13485
|
}
|
|
13406
|
-
}
|
|
13486
|
+
}
|
|
13487
|
+
} //normalize sdp after modifications
|
|
13407
13488
|
|
|
13408
13489
|
|
|
13409
|
-
|
|
13490
|
+
var result = "";
|
|
13410
13491
|
|
|
13411
|
-
|
|
13412
|
-
|
|
13413
|
-
|
|
13414
|
-
}
|
|
13492
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
13493
|
+
if (sdpArray[i] != "") {
|
|
13494
|
+
result += sdpArray[i] + "\n";
|
|
13415
13495
|
}
|
|
13496
|
+
}
|
|
13416
13497
|
|
|
13417
|
-
|
|
13418
|
-
|
|
13419
|
-
getCurrentCodecAndSampleRate: function getCurrentCodecAndSampleRate(sdp, mediaType) {
|
|
13420
|
-
var rows = sdp.split("\n");
|
|
13421
|
-
var codecPt;
|
|
13498
|
+
return result;
|
|
13499
|
+
};
|
|
13422
13500
|
|
|
13423
|
-
|
|
13424
|
-
|
|
13425
|
-
|
|
13426
|
-
ret.name = rows[i].split(" ")[1].split("/")[0];
|
|
13427
|
-
ret.sampleRate = rows[i].split(" ")[1].split("/")[1];
|
|
13428
|
-
return ret;
|
|
13429
|
-
} //WCS-2136. WebRTC statistics doesn't work for VP8
|
|
13501
|
+
var getCurrentCodecAndSampleRate = function getCurrentCodecAndSampleRate(sdp, mediaType) {
|
|
13502
|
+
var rows = sdp.split("\n");
|
|
13503
|
+
var codecPt;
|
|
13430
13504
|
|
|
13505
|
+
for (var i = 0; i < rows.length; i++) {
|
|
13506
|
+
if (codecPt && rows[i].indexOf("a=rtpmap:" + codecPt) != -1) {
|
|
13507
|
+
var ret = {};
|
|
13508
|
+
ret.name = rows[i].split(" ")[1].split("/")[0];
|
|
13509
|
+
ret.sampleRate = rows[i].split(" ")[1].split("/")[1];
|
|
13510
|
+
return ret;
|
|
13511
|
+
} //WCS-2136. WebRTC statistics doesn't work for VP8
|
|
13431
13512
|
|
|
13432
|
-
|
|
13433
|
-
|
|
13434
|
-
|
|
13513
|
+
|
|
13514
|
+
if (rows[i].indexOf("m=" + mediaType) != -1) {
|
|
13515
|
+
codecPt = rows[i].split(" ")[3].trim();
|
|
13435
13516
|
}
|
|
13436
13517
|
}
|
|
13437
13518
|
};
|
|
13438
13519
|
|
|
13520
|
+
module.exports = {
|
|
13521
|
+
isEmptyObject: isEmptyObject,
|
|
13522
|
+
copyObjectToArray: copyObjectToArray,
|
|
13523
|
+
copyObjectPropsToAnotherObject: copyObjectPropsToAnotherObject,
|
|
13524
|
+
processRtcStatsReport: processRtcStatsReport,
|
|
13525
|
+
Browser: Browser,
|
|
13526
|
+
SDP: SDP,
|
|
13527
|
+
logger: logger,
|
|
13528
|
+
stripCodecs: stripCodecs,
|
|
13529
|
+
getCurrentCodecAndSampleRate: getCurrentCodecAndSampleRate
|
|
13530
|
+
};
|
|
13531
|
+
|
|
13439
13532
|
},{}],44:[function(require,module,exports){
|
|
13440
13533
|
'use strict';
|
|
13441
13534
|
|
|
@@ -13469,6 +13562,11 @@ var mics = [];
|
|
|
13469
13562
|
|
|
13470
13563
|
var createConnection = function createConnection(options) {
|
|
13471
13564
|
return new Promise(function (resolve, reject) {
|
|
13565
|
+
// Set connection logger #WCS-2434
|
|
13566
|
+
if (options.logger) {
|
|
13567
|
+
logger = options.logger;
|
|
13568
|
+
}
|
|
13569
|
+
|
|
13472
13570
|
var id = options.id;
|
|
13473
13571
|
var connectionConfig = options.connectionConfig || {
|
|
13474
13572
|
"iceServers": []
|
|
@@ -13599,9 +13697,9 @@ var createConnection = function createConnection(options) {
|
|
|
13599
13697
|
function setContentHint(stream, hint) {
|
|
13600
13698
|
stream.getVideoTracks().forEach(function (track) {
|
|
13601
13699
|
if (track.contentHint === undefined) {
|
|
13602
|
-
logger.warn("contentHint unsupported");
|
|
13700
|
+
logger.warn(LOG_PREFIX, "Track contentHint unsupported");
|
|
13603
13701
|
} else {
|
|
13604
|
-
logger.info("Set video track contentHint to " + hint);
|
|
13702
|
+
logger.info(LOG_PREFIX, "Set video track contentHint to " + hint);
|
|
13605
13703
|
track.contentHint = hint;
|
|
13606
13704
|
}
|
|
13607
13705
|
});
|
|
@@ -13638,7 +13736,7 @@ var createConnection = function createConnection(options) {
|
|
|
13638
13736
|
//WCS-2771 add playback delay
|
|
13639
13737
|
connection.getReceivers().forEach(function (track) {
|
|
13640
13738
|
if (track.playoutDelayHint === undefined) {
|
|
13641
|
-
logger.warn("
|
|
13739
|
+
logger.warn(LOG_PREFIX, "Playout delay unsupported");
|
|
13642
13740
|
}
|
|
13643
13741
|
|
|
13644
13742
|
track.playoutDelayHint = playoutDelay;
|
|
@@ -14031,7 +14129,7 @@ var createConnection = function createConnection(options) {
|
|
|
14031
14129
|
localVideo.srcObject.addTrack(audioTrack);
|
|
14032
14130
|
}
|
|
14033
14131
|
|
|
14034
|
-
logger.info("Switch camera to " + cam);
|
|
14132
|
+
logger.info(LOG_PREFIX, "Switch camera to " + cam);
|
|
14035
14133
|
resolve(cam);
|
|
14036
14134
|
})["catch"](function (reason) {
|
|
14037
14135
|
logger.error(LOG_PREFIX, reason);
|
|
@@ -14089,7 +14187,7 @@ var createConnection = function createConnection(options) {
|
|
|
14089
14187
|
localVideo.srcObject.addTrack(videoTrack);
|
|
14090
14188
|
}
|
|
14091
14189
|
|
|
14092
|
-
logger.info("Switch mic to " + mic);
|
|
14190
|
+
logger.info(LOG_PREFIX, "Switch mic to " + mic);
|
|
14093
14191
|
resolve(mic);
|
|
14094
14192
|
})["catch"](function (reason) {
|
|
14095
14193
|
logger.error(LOG_PREFIX, reason);
|
|
@@ -14183,7 +14281,7 @@ var createConnection = function createConnection(options) {
|
|
|
14183
14281
|
localVideo.srcObject.addTrack(currentAudioTrack);
|
|
14184
14282
|
}
|
|
14185
14283
|
});
|
|
14186
|
-
logger.info("Switch to screen");
|
|
14284
|
+
logger.info(LOG_PREFIX, "Switch to screen");
|
|
14187
14285
|
screenShare = true;
|
|
14188
14286
|
resolve();
|
|
14189
14287
|
};
|
|
@@ -14215,7 +14313,7 @@ var createConnection = function createConnection(options) {
|
|
|
14215
14313
|
});
|
|
14216
14314
|
}
|
|
14217
14315
|
|
|
14218
|
-
logger.info("Switch to cam");
|
|
14316
|
+
logger.info(LOG_PREFIX, "Switch to cam");
|
|
14219
14317
|
screenShare = false;
|
|
14220
14318
|
};
|
|
14221
14319
|
|