@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
|
@@ -8452,8 +8452,9 @@ var constants = require("./constants");
|
|
|
8452
8452
|
|
|
8453
8453
|
var util = require('./util');
|
|
8454
8454
|
|
|
8455
|
-
var
|
|
8455
|
+
var LoggerObject = require('./util').logger;
|
|
8456
8456
|
|
|
8457
|
+
var coreLogger;
|
|
8457
8458
|
var loggerConf = {
|
|
8458
8459
|
push: false,
|
|
8459
8460
|
severity: "INFO"
|
|
@@ -8501,7 +8502,7 @@ var disableConnectionQualityCalculation;
|
|
|
8501
8502
|
* @param {String=} options.decoderLocation Location of video-worker2.js file
|
|
8502
8503
|
* @param {String=} options.screenSharingExtensionId Chrome screen sharing extension id
|
|
8503
8504
|
* @param {Object=} options.constraints Default local media constraints
|
|
8504
|
-
* @param {Object=} options.logger
|
|
8505
|
+
* @param {Object=} options.logger Core logger options
|
|
8505
8506
|
* @throws {Error} Error if none of MediaProviders available
|
|
8506
8507
|
* @memberof Flashphoner
|
|
8507
8508
|
*/
|
|
@@ -8510,16 +8511,10 @@ var init = function init(options) {
|
|
|
8510
8511
|
if (!initialized) {
|
|
8511
8512
|
if (!options) {
|
|
8512
8513
|
options = {};
|
|
8513
|
-
}
|
|
8514
|
-
|
|
8515
|
-
loggerConf = options.logger || loggerConf;
|
|
8514
|
+
} // init global logger
|
|
8516
8515
|
|
|
8517
|
-
if (options.logger !== null) {
|
|
8518
|
-
loggerConf.enableLogs = true;
|
|
8519
|
-
} // init logger
|
|
8520
8516
|
|
|
8521
|
-
|
|
8522
|
-
logger.init(loggerConf.severity || "INFO", loggerConf.push || false, loggerConf.customLogger, loggerConf.enableLogs);
|
|
8517
|
+
coreLogger = createLogger(options.logger);
|
|
8523
8518
|
var waitingTemasys = false;
|
|
8524
8519
|
|
|
8525
8520
|
try {
|
|
@@ -8540,7 +8535,7 @@ var init = function init(options) {
|
|
|
8540
8535
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
8541
8536
|
extensionId: options.screenSharingExtensionId,
|
|
8542
8537
|
audioContext: audioContext,
|
|
8543
|
-
logger:
|
|
8538
|
+
logger: coreLogger,
|
|
8544
8539
|
createMicGainNode: enableGainNode
|
|
8545
8540
|
};
|
|
8546
8541
|
webRtcProvider.configure(webRtcConf);
|
|
@@ -8557,7 +8552,7 @@ var init = function init(options) {
|
|
|
8557
8552
|
var webRtcConf = {
|
|
8558
8553
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
8559
8554
|
extensionId: options.screenSharingExtensionId,
|
|
8560
|
-
logger:
|
|
8555
|
+
logger: coreLogger
|
|
8561
8556
|
};
|
|
8562
8557
|
webRtcProvider.configure(webRtcConf); // Just reorder media provider list
|
|
8563
8558
|
|
|
@@ -8585,7 +8580,7 @@ var init = function init(options) {
|
|
|
8585
8580
|
var flashConf = {
|
|
8586
8581
|
constraints: options.constraints || getDefaultMediaConstraints(),
|
|
8587
8582
|
flashMediaProviderSwfLocation: options.flashMediaProviderSwfLocation,
|
|
8588
|
-
logger:
|
|
8583
|
+
logger: coreLogger
|
|
8589
8584
|
};
|
|
8590
8585
|
flashProvider.configure(flashConf);
|
|
8591
8586
|
}
|
|
@@ -8609,7 +8604,7 @@ var init = function init(options) {
|
|
|
8609
8604
|
receiverLocation: options.receiverLocation,
|
|
8610
8605
|
decoderLocation: options.decoderLocation,
|
|
8611
8606
|
audioContext: audioContext,
|
|
8612
|
-
logger:
|
|
8607
|
+
logger: coreLogger
|
|
8613
8608
|
};
|
|
8614
8609
|
websocketProvider.configure(wsConf);
|
|
8615
8610
|
} //check at least 1 provider available
|
|
@@ -8631,7 +8626,7 @@ var init = function init(options) {
|
|
|
8631
8626
|
MediaProvider = _MediaProvider;
|
|
8632
8627
|
}
|
|
8633
8628
|
} else {
|
|
8634
|
-
|
|
8629
|
+
corelogger.warn(LOG_PREFIX, "Preferred media provider is not available.");
|
|
8635
8630
|
}
|
|
8636
8631
|
}
|
|
8637
8632
|
|
|
@@ -8659,7 +8654,7 @@ var init = function init(options) {
|
|
|
8659
8654
|
options.mediaProvidersReadyCallback(Object.keys(MediaProvider));
|
|
8660
8655
|
}
|
|
8661
8656
|
|
|
8662
|
-
|
|
8657
|
+
coreLogger.info(LOG_PREFIX, "Initialized");
|
|
8663
8658
|
initialized = true;
|
|
8664
8659
|
}
|
|
8665
8660
|
};
|
|
@@ -8698,7 +8693,7 @@ var playFirstVideo = function playFirstVideo(display, isLocal, src) {
|
|
|
8698
8693
|
}
|
|
8699
8694
|
};
|
|
8700
8695
|
/**
|
|
8701
|
-
* Get logger
|
|
8696
|
+
* Get core logger
|
|
8702
8697
|
*
|
|
8703
8698
|
* @returns {Object} Logger
|
|
8704
8699
|
* @memberof Flashphoner
|
|
@@ -8709,7 +8704,7 @@ var getLogger = function getLogger() {
|
|
|
8709
8704
|
if (!initialized) {
|
|
8710
8705
|
console.warn("Initialize API first.");
|
|
8711
8706
|
} else {
|
|
8712
|
-
return
|
|
8707
|
+
return coreLogger;
|
|
8713
8708
|
}
|
|
8714
8709
|
};
|
|
8715
8710
|
/**
|
|
@@ -8882,6 +8877,31 @@ var getSessions = function getSessions() {
|
|
|
8882
8877
|
|
|
8883
8878
|
var getSession = function getSession(id) {
|
|
8884
8879
|
return sessions[id];
|
|
8880
|
+
}; // Get logger configuration from options
|
|
8881
|
+
|
|
8882
|
+
|
|
8883
|
+
var getLoggerConf = function getLoggerConf(loggerOptions) {
|
|
8884
|
+
var conf = loggerOptions || loggerConf;
|
|
8885
|
+
|
|
8886
|
+
if (loggerOptions !== null) {
|
|
8887
|
+
conf.enableLogs = true;
|
|
8888
|
+
}
|
|
8889
|
+
|
|
8890
|
+
return conf;
|
|
8891
|
+
}; // Create a new logger object
|
|
8892
|
+
|
|
8893
|
+
|
|
8894
|
+
var createLogger = function createLogger(loggerOptions) {
|
|
8895
|
+
var parentLogger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : coreLogger;
|
|
8896
|
+
var newLogger = parentLogger;
|
|
8897
|
+
|
|
8898
|
+
if (newLogger === undefined || loggerOptions != undefined) {
|
|
8899
|
+
var loggerConf = getLoggerConf(loggerOptions);
|
|
8900
|
+
newLogger = new LoggerObject();
|
|
8901
|
+
newLogger.init(loggerConf.severity || "INFO", loggerConf.push || false, loggerConf.customLogger, loggerConf.enableLogs);
|
|
8902
|
+
}
|
|
8903
|
+
|
|
8904
|
+
return newLogger;
|
|
8885
8905
|
};
|
|
8886
8906
|
/**
|
|
8887
8907
|
* Create new session and connect to server.
|
|
@@ -8901,6 +8921,7 @@ var getSession = function getSession(id) {
|
|
|
8901
8921
|
* @param {Integer=} options.pingInterval Server ping interval in milliseconds [0]
|
|
8902
8922
|
* @param {Integer=} options.receiveProbes A maximum subsequental pings received missing count [0]
|
|
8903
8923
|
* @param {Integer=} options.probesInterval Interval to check subsequental pings received [0]
|
|
8924
|
+
* @param {Object=} options.logger Session logger options
|
|
8904
8925
|
* @returns {Session} Created session
|
|
8905
8926
|
* @throws {Error} Error if API is not initialized
|
|
8906
8927
|
* @throws {TypeError} Error if options.urlServer is not specified
|
|
@@ -8915,8 +8936,12 @@ var createSession = function createSession(options) {
|
|
|
8915
8936
|
|
|
8916
8937
|
if (!options || !options.urlServer) {
|
|
8917
8938
|
throw new TypeError("options.urlServer must be provided");
|
|
8918
|
-
}
|
|
8939
|
+
} // Set session logger #WCS-2434
|
|
8940
|
+
|
|
8941
|
+
|
|
8942
|
+
var sessionLogger = createLogger(options.logger); // Override logger for all low level operations
|
|
8919
8943
|
|
|
8944
|
+
var logger = sessionLogger;
|
|
8920
8945
|
var id_ = uuid_v1();
|
|
8921
8946
|
var sessionStatus = SESSION_STATUS.PENDING;
|
|
8922
8947
|
var urlServer = options.urlServer;
|
|
@@ -9022,7 +9047,7 @@ var createSession = function createSession(options) {
|
|
|
9022
9047
|
if (timeout != undefined && timeout > 0) {
|
|
9023
9048
|
connectionTimeout = setTimeout(function () {
|
|
9024
9049
|
if (wsConnection.readyState == 0) {
|
|
9025
|
-
|
|
9050
|
+
logger.warn(LOG_PREFIX, "WS connection timeout");
|
|
9026
9051
|
wsConnection.close();
|
|
9027
9052
|
}
|
|
9028
9053
|
}, timeout);
|
|
@@ -9046,7 +9071,7 @@ var createSession = function createSession(options) {
|
|
|
9046
9071
|
mediaProviders: Object.keys(MediaProvider),
|
|
9047
9072
|
keepAlive: keepAlive,
|
|
9048
9073
|
authToken: authToken,
|
|
9049
|
-
clientVersion: "2.0.
|
|
9074
|
+
clientVersion: "2.0.215",
|
|
9050
9075
|
clientOSVersion: window.navigator.appVersion,
|
|
9051
9076
|
clientBrowserVersion: window.navigator.userAgent,
|
|
9052
9077
|
msePacketizationVersion: 2,
|
|
@@ -9352,6 +9377,7 @@ var createSession = function createSession(options) {
|
|
|
9352
9377
|
* @param {Array<string>=} options.sipSDP Array of custom SDP params (ex. bandwidth (b=))
|
|
9353
9378
|
* @param {Array<string>=} options.sipHeaders Array of custom SIP headers
|
|
9354
9379
|
* @param {string=} options.videoContentHint Video content hint for browser ('detail' by default to maintain resolution), {@link Flashphoner.constants.CONTENT_HINT_TYPE}
|
|
9380
|
+
* @param {Object=} options.logger Call logger options
|
|
9355
9381
|
* @param {sdpHook} sdpHook The callback that handles sdp from the server
|
|
9356
9382
|
* @returns {Call} Call
|
|
9357
9383
|
* @throws {TypeError} Error if no options provided
|
|
@@ -9364,15 +9390,18 @@ var createSession = function createSession(options) {
|
|
|
9364
9390
|
var createCall = function createCall(options) {
|
|
9365
9391
|
//check session state
|
|
9366
9392
|
if (sessionStatus !== SESSION_STATUS.REGISTERED && sessionStatus !== SESSION_STATUS.ESTABLISHED) {
|
|
9367
|
-
|
|
9368
|
-
throw new Error('Invalid session state');
|
|
9393
|
+
throw new Error('Invalid session state ' + sessionStatus);
|
|
9369
9394
|
} //check options
|
|
9370
9395
|
|
|
9371
9396
|
|
|
9372
9397
|
if (!options) {
|
|
9373
9398
|
throw new TypeError("options must be provided");
|
|
9374
|
-
}
|
|
9399
|
+
} // Set call logger #WCS-2434
|
|
9400
|
+
|
|
9401
|
+
|
|
9402
|
+
var callLogger = createLogger(options.logger, sessionLogger); // Override logger for all low level operations
|
|
9375
9403
|
|
|
9404
|
+
var logger = callLogger;
|
|
9376
9405
|
var login = appKey == 'clickToCallApp' ? '' : cConfig.sipLogin;
|
|
9377
9406
|
var caller_ = options.incoming ? options.caller : login;
|
|
9378
9407
|
var callee_ = options.callee;
|
|
@@ -9518,7 +9547,8 @@ var createSession = function createSession(options) {
|
|
|
9518
9547
|
constraints: constraints,
|
|
9519
9548
|
connectionConfig: mediaOptions,
|
|
9520
9549
|
audioOutputId: audioOutputId,
|
|
9521
|
-
videoContentHint: videoContentHint
|
|
9550
|
+
videoContentHint: videoContentHint,
|
|
9551
|
+
logger: logger
|
|
9522
9552
|
}).then(function (newConnection) {
|
|
9523
9553
|
mediaConnection = newConnection;
|
|
9524
9554
|
return mediaConnection.createOffer({
|
|
@@ -10104,7 +10134,7 @@ var createSession = function createSession(options) {
|
|
|
10104
10134
|
/**
|
|
10105
10135
|
* Get call info
|
|
10106
10136
|
* @returns {string} Info
|
|
10107
|
-
* @memberof
|
|
10137
|
+
* @memberof Call
|
|
10108
10138
|
* @inner
|
|
10109
10139
|
*/
|
|
10110
10140
|
|
|
@@ -10115,7 +10145,7 @@ var createSession = function createSession(options) {
|
|
|
10115
10145
|
/**
|
|
10116
10146
|
* Get stream error info
|
|
10117
10147
|
* @returns {string} Error info
|
|
10118
|
-
* @memberof
|
|
10148
|
+
* @memberof Call
|
|
10119
10149
|
* @inner
|
|
10120
10150
|
*/
|
|
10121
10151
|
|
|
@@ -10123,6 +10153,17 @@ var createSession = function createSession(options) {
|
|
|
10123
10153
|
var getErrorInfo = function getErrorInfo() {
|
|
10124
10154
|
return errorInfo_;
|
|
10125
10155
|
};
|
|
10156
|
+
/**
|
|
10157
|
+
* Get call logger
|
|
10158
|
+
*
|
|
10159
|
+
* @returns {Object} Logger
|
|
10160
|
+
* @memberof Call
|
|
10161
|
+
*/
|
|
10162
|
+
|
|
10163
|
+
|
|
10164
|
+
var getLogger = function getLogger() {
|
|
10165
|
+
return callLogger;
|
|
10166
|
+
};
|
|
10126
10167
|
|
|
10127
10168
|
call.call = call_;
|
|
10128
10169
|
call.answer = answer;
|
|
@@ -10154,6 +10195,7 @@ var createSession = function createSession(options) {
|
|
|
10154
10195
|
call.switchMic = switchMic;
|
|
10155
10196
|
call.switchToScreen = switchToScreen;
|
|
10156
10197
|
call.switchToCam = switchToCam;
|
|
10198
|
+
call.getLogger = getLogger;
|
|
10157
10199
|
calls[id_] = call;
|
|
10158
10200
|
return call;
|
|
10159
10201
|
};
|
|
@@ -10200,6 +10242,7 @@ var createSession = function createSession(options) {
|
|
|
10200
10242
|
* @param {string=} options.useCanvasMediaStream EXPERIMENTAL: when publish bind browser's media stream to the canvas. It can be useful for image filtering
|
|
10201
10243
|
* @param {string=} options.videoContentHint Video content hint for browser ('detail' by default to maintain resolution), {@link Flashphoner.constants.CONTENT_HINT_TYPE}
|
|
10202
10244
|
* @param {Boolean=} options.unmutePlayOnStart Unmute playback on start. May be used after user gesture only, so set 'unmutePlayOnStart: false' for autoplay
|
|
10245
|
+
* @param {Object=} options.logger Stream logger options
|
|
10203
10246
|
* @param {sdpHook} sdpHook The callback that handles sdp from the server
|
|
10204
10247
|
* @returns {Stream} Stream
|
|
10205
10248
|
* @throws {TypeError} Error if no options provided
|
|
@@ -10215,7 +10258,7 @@ var createSession = function createSession(options) {
|
|
|
10215
10258
|
var availableCallbacks = []; //check session state
|
|
10216
10259
|
|
|
10217
10260
|
if (sessionStatus !== SESSION_STATUS.ESTABLISHED) {
|
|
10218
|
-
throw new Error('Invalid session state');
|
|
10261
|
+
throw new Error('Invalid session state ' + sessionStatus);
|
|
10219
10262
|
} //check options
|
|
10220
10263
|
|
|
10221
10264
|
|
|
@@ -10225,8 +10268,12 @@ var createSession = function createSession(options) {
|
|
|
10225
10268
|
|
|
10226
10269
|
if (!options.name) {
|
|
10227
10270
|
throw new TypeError("options.name must be provided");
|
|
10228
|
-
}
|
|
10271
|
+
} // Set stream logger #WCS-2434
|
|
10272
|
+
|
|
10229
10273
|
|
|
10274
|
+
var streamLogger = createLogger(options.logger, sessionLogger); // Override logger for all low level operations
|
|
10275
|
+
|
|
10276
|
+
var logger = streamLogger;
|
|
10230
10277
|
var clientKf = new KalmanFilter();
|
|
10231
10278
|
var serverKf = new KalmanFilter();
|
|
10232
10279
|
var id_ = uuid_v1();
|
|
@@ -10470,7 +10517,7 @@ var createSession = function createSession(options) {
|
|
|
10470
10517
|
logger.debug(LOG_PREFIX, "Play stream " + name_);
|
|
10471
10518
|
|
|
10472
10519
|
if (status_ !== STREAM_STATUS.NEW) {
|
|
10473
|
-
throw new Error("Invalid stream state");
|
|
10520
|
+
throw new Error("Invalid stream state " + status_);
|
|
10474
10521
|
}
|
|
10475
10522
|
|
|
10476
10523
|
status_ = STREAM_STATUS.PENDING; //create mediaProvider connection
|
|
@@ -10489,7 +10536,8 @@ var createSession = function createSession(options) {
|
|
|
10489
10536
|
audioOutputId: audioOutputId,
|
|
10490
10537
|
remoteVideo: remoteVideo,
|
|
10491
10538
|
playoutDelay: playoutDelay,
|
|
10492
|
-
unmutePlayOnStart: unmutePlayOnStart
|
|
10539
|
+
unmutePlayOnStart: unmutePlayOnStart,
|
|
10540
|
+
logger: logger
|
|
10493
10541
|
}, streamRefreshHandlers[id_]).then(function (newConnection) {
|
|
10494
10542
|
mediaConnection = newConnection;
|
|
10495
10543
|
|
|
@@ -10553,7 +10601,7 @@ var createSession = function createSession(options) {
|
|
|
10553
10601
|
logger.debug(LOG_PREFIX, "Publish stream " + name_);
|
|
10554
10602
|
|
|
10555
10603
|
if (status_ !== STREAM_STATUS.NEW) {
|
|
10556
|
-
throw new Error("Invalid stream state");
|
|
10604
|
+
throw new Error("Invalid stream state " + status_);
|
|
10557
10605
|
}
|
|
10558
10606
|
|
|
10559
10607
|
status_ = STREAM_STATUS.PENDING;
|
|
@@ -10587,7 +10635,8 @@ var createSession = function createSession(options) {
|
|
|
10587
10635
|
connectionConfig: mediaOptions,
|
|
10588
10636
|
connectionConstraints: mediaConnectionConstraints,
|
|
10589
10637
|
customStream: constraints && constraints.customStream ? constraints.customStream : false,
|
|
10590
|
-
videoContentHint: videoContentHint
|
|
10638
|
+
videoContentHint: videoContentHint,
|
|
10639
|
+
logger: logger
|
|
10591
10640
|
}).then(function (newConnection) {
|
|
10592
10641
|
mediaConnection = newConnection;
|
|
10593
10642
|
return mediaConnection.createOffer({
|
|
@@ -11217,6 +11266,17 @@ var createSession = function createSession(options) {
|
|
|
11217
11266
|
availableCallbacks.push(promise);
|
|
11218
11267
|
});
|
|
11219
11268
|
};
|
|
11269
|
+
/**
|
|
11270
|
+
* Get stream logger
|
|
11271
|
+
*
|
|
11272
|
+
* @returns {Object} Logger
|
|
11273
|
+
* @memberof Stream
|
|
11274
|
+
*/
|
|
11275
|
+
|
|
11276
|
+
|
|
11277
|
+
var getLogger = function getLogger() {
|
|
11278
|
+
return streamLogger;
|
|
11279
|
+
};
|
|
11220
11280
|
|
|
11221
11281
|
stream.play = play;
|
|
11222
11282
|
stream.publish = publish;
|
|
@@ -11256,6 +11316,7 @@ var createSession = function createSession(options) {
|
|
|
11256
11316
|
stream.switchToScreen = switchToScreen;
|
|
11257
11317
|
stream.switchToCam = switchToCam;
|
|
11258
11318
|
stream.sendData = sendData;
|
|
11319
|
+
stream.getLogger = getLogger;
|
|
11259
11320
|
streams[id_] = stream;
|
|
11260
11321
|
return stream;
|
|
11261
11322
|
};
|
|
@@ -11464,6 +11525,17 @@ var createSession = function createSession(options) {
|
|
|
11464
11525
|
}
|
|
11465
11526
|
|
|
11466
11527
|
return sdp;
|
|
11528
|
+
};
|
|
11529
|
+
/**
|
|
11530
|
+
* Get session logger
|
|
11531
|
+
*
|
|
11532
|
+
* @returns {Object} Logger
|
|
11533
|
+
* @memberof Session
|
|
11534
|
+
*/
|
|
11535
|
+
|
|
11536
|
+
|
|
11537
|
+
var getLogger = function getLogger() {
|
|
11538
|
+
return sessionLogger;
|
|
11467
11539
|
}; //export Session
|
|
11468
11540
|
|
|
11469
11541
|
|
|
@@ -11479,7 +11551,8 @@ var createSession = function createSession(options) {
|
|
|
11479
11551
|
session.submitBugReport = submitBugReport;
|
|
11480
11552
|
session.startDebug = startDebug;
|
|
11481
11553
|
session.stopDebug = stopDebug;
|
|
11482
|
-
session.on = on;
|
|
11554
|
+
session.on = on;
|
|
11555
|
+
session.getLogger = getLogger; //save interface to global map
|
|
11483
11556
|
|
|
11484
11557
|
sessions[id_] = session;
|
|
11485
11558
|
return session;
|
|
@@ -11515,165 +11588,168 @@ module.exports = {
|
|
|
11515
11588
|
},{"./constants":38,"./flash-media-provider":1,"./media-source-media-provider":1,"./temasys-media-provider":1,"./util":40,"./webrtc-media-provider":41,"./websocket-media-provider":1,"kalmanjs":2,"promise-polyfill":4,"uuid":8,"webrtc-adapter":23}],40:[function(require,module,exports){
|
|
11516
11589
|
'use strict';
|
|
11517
11590
|
|
|
11518
|
-
|
|
11519
|
-
|
|
11520
|
-
|
|
11521
|
-
|
|
11522
|
-
}
|
|
11591
|
+
var isEmptyObject = function isEmptyObject(obj) {
|
|
11592
|
+
for (var name in obj) {
|
|
11593
|
+
return false;
|
|
11594
|
+
}
|
|
11523
11595
|
|
|
11524
|
-
|
|
11525
|
-
|
|
11596
|
+
return true;
|
|
11597
|
+
};
|
|
11598
|
+
/**
|
|
11599
|
+
* Copy values of object own properties to array.
|
|
11600
|
+
*
|
|
11601
|
+
* @param obj
|
|
11602
|
+
* @returns {Array}
|
|
11603
|
+
*/
|
|
11526
11604
|
|
|
11527
|
-
/**
|
|
11528
|
-
* Copy values of object own properties to array.
|
|
11529
|
-
*
|
|
11530
|
-
* @param obj
|
|
11531
|
-
* @returns {Array}
|
|
11532
|
-
*/
|
|
11533
|
-
copyObjectToArray: function copyObjectToArray(obj) {
|
|
11534
|
-
var ret = [];
|
|
11535
11605
|
|
|
11536
|
-
|
|
11537
|
-
|
|
11538
|
-
|
|
11539
|
-
|
|
11606
|
+
var copyObjectToArray = function copyObjectToArray(obj) {
|
|
11607
|
+
var ret = [];
|
|
11608
|
+
|
|
11609
|
+
for (var prop in obj) {
|
|
11610
|
+
if (obj.hasOwnProperty(prop)) {
|
|
11611
|
+
ret.push(obj[prop]);
|
|
11540
11612
|
}
|
|
11613
|
+
}
|
|
11541
11614
|
|
|
11542
|
-
|
|
11543
|
-
|
|
11615
|
+
return ret;
|
|
11616
|
+
};
|
|
11617
|
+
/**
|
|
11618
|
+
* Copy src properties to dst object.
|
|
11619
|
+
* Will overwrite dst prop with src prop in case of dst prop exist.
|
|
11620
|
+
*/
|
|
11544
11621
|
|
|
11545
|
-
|
|
11546
|
-
|
|
11547
|
-
|
|
11548
|
-
|
|
11549
|
-
|
|
11550
|
-
for (var prop in src) {
|
|
11551
|
-
if (src.hasOwnProperty(prop)) {
|
|
11552
|
-
dst[prop] = src[prop];
|
|
11553
|
-
}
|
|
11622
|
+
|
|
11623
|
+
var copyObjectPropsToAnotherObject = function copyObjectPropsToAnotherObject(src, dst) {
|
|
11624
|
+
for (var prop in src) {
|
|
11625
|
+
if (src.hasOwnProperty(prop)) {
|
|
11626
|
+
dst[prop] = src[prop];
|
|
11554
11627
|
}
|
|
11555
|
-
}
|
|
11556
|
-
|
|
11557
|
-
var result = {};
|
|
11628
|
+
}
|
|
11629
|
+
};
|
|
11558
11630
|
|
|
11559
|
-
|
|
11560
|
-
|
|
11561
|
-
* Report types: googComponent, googCandidatePair, googCertificate, googLibjingleSession, googTrack, ssrc
|
|
11562
|
-
*/
|
|
11563
|
-
var gotResult = false;
|
|
11631
|
+
var processRtcStatsReport = function processRtcStatsReport(browser, report) {
|
|
11632
|
+
var result = {};
|
|
11564
11633
|
|
|
11565
|
-
|
|
11566
|
-
|
|
11567
|
-
|
|
11568
|
-
|
|
11569
|
-
|
|
11570
|
-
}
|
|
11634
|
+
if (browser == "chrome") {
|
|
11635
|
+
/**
|
|
11636
|
+
* Report types: googComponent, googCandidatePair, googCertificate, googLibjingleSession, googTrack, ssrc
|
|
11637
|
+
*/
|
|
11638
|
+
var gotResult = false;
|
|
11571
11639
|
|
|
11572
|
-
|
|
11640
|
+
if (report.type && report.type == "googCandidatePair") {
|
|
11641
|
+
//check if this is active pair
|
|
11642
|
+
if (report.googActiveConnection == "true") {
|
|
11573
11643
|
gotResult = true;
|
|
11574
11644
|
}
|
|
11645
|
+
}
|
|
11575
11646
|
|
|
11576
|
-
|
|
11577
|
-
|
|
11578
|
-
|
|
11579
|
-
|
|
11580
|
-
|
|
11647
|
+
if (report.type && report.type == "ssrc") {
|
|
11648
|
+
gotResult = true;
|
|
11649
|
+
}
|
|
11650
|
+
|
|
11651
|
+
if (gotResult) {
|
|
11652
|
+
for (var k in report) {
|
|
11653
|
+
if (report.hasOwnProperty(k)) {
|
|
11654
|
+
result[k] = report[k];
|
|
11581
11655
|
}
|
|
11582
11656
|
}
|
|
11657
|
+
}
|
|
11583
11658
|
|
|
11584
|
-
|
|
11585
|
-
|
|
11586
|
-
|
|
11587
|
-
|
|
11588
|
-
|
|
11589
|
-
|
|
11590
|
-
|
|
11659
|
+
return result;
|
|
11660
|
+
} else if (browser == "firefox") {
|
|
11661
|
+
/**
|
|
11662
|
+
* RTCStatsReport http://mxr.mozilla.org/mozilla-central/source/dom/webidl/RTCStatsReport.webidl
|
|
11663
|
+
*/
|
|
11664
|
+
if (report.type && (report.type == "outboundrtp" || report.type == "inboundrtp") && report.id.indexOf("rtcp") == -1) {
|
|
11665
|
+
result = {};
|
|
11591
11666
|
|
|
11592
|
-
|
|
11593
|
-
|
|
11594
|
-
|
|
11595
|
-
}
|
|
11667
|
+
for (var k in report) {
|
|
11668
|
+
if (report.hasOwnProperty(k)) {
|
|
11669
|
+
result[k] = report[k];
|
|
11596
11670
|
}
|
|
11597
11671
|
}
|
|
11598
|
-
|
|
11599
|
-
return result;
|
|
11600
|
-
} else {
|
|
11601
|
-
return result;
|
|
11602
11672
|
}
|
|
11603
11673
|
|
|
11604
|
-
;
|
|
11674
|
+
return result;
|
|
11675
|
+
} else {
|
|
11676
|
+
return result;
|
|
11677
|
+
}
|
|
11678
|
+
};
|
|
11679
|
+
|
|
11680
|
+
var Browser = {
|
|
11681
|
+
isIE: function isIE() {
|
|
11682
|
+
return (
|
|
11683
|
+
/*@cc_on!@*/
|
|
11684
|
+
false || !!document.documentMode
|
|
11685
|
+
);
|
|
11605
11686
|
},
|
|
11606
|
-
|
|
11607
|
-
|
|
11608
|
-
return (
|
|
11609
|
-
/*@cc_on!@*/
|
|
11610
|
-
false || !!document.documentMode
|
|
11611
|
-
);
|
|
11612
|
-
},
|
|
11613
|
-
isFirefox: function isFirefox() {
|
|
11614
|
-
return typeof InstallTrigger !== 'undefined';
|
|
11615
|
-
},
|
|
11616
|
-
isChrome: function isChrome() {
|
|
11617
|
-
return !!window.chrome && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor) && !/OPR/.test(navigator.userAgent);
|
|
11618
|
-
},
|
|
11619
|
-
isEdge: function isEdge() {
|
|
11620
|
-
return !isIE && !!window.StyleMedia;
|
|
11621
|
-
},
|
|
11622
|
-
isOpera: function isOpera() {
|
|
11623
|
-
return !!window.opr && !!opr.addons || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
|
|
11624
|
-
},
|
|
11625
|
-
isiOS: function isiOS() {
|
|
11626
|
-
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
11627
|
-
},
|
|
11628
|
-
isSafari: function isSafari() {
|
|
11629
|
-
var userAgent = navigator.userAgent.toLowerCase();
|
|
11630
|
-
return /(safari|applewebkit)/i.test(userAgent) && !userAgent.includes("chrome") && !userAgent.includes("android");
|
|
11631
|
-
},
|
|
11632
|
-
isAndroid: function isAndroid() {
|
|
11633
|
-
return navigator.userAgent.toLowerCase().indexOf("android") > -1;
|
|
11634
|
-
},
|
|
11635
|
-
isSafariWebRTC: function isSafariWebRTC() {
|
|
11636
|
-
return navigator.mediaDevices && this.isSafari();
|
|
11637
|
-
},
|
|
11638
|
-
isSamsungBrowser: function isSamsungBrowser() {
|
|
11639
|
-
return /SamsungBrowser/i.test(navigator.userAgent);
|
|
11640
|
-
},
|
|
11641
|
-
isAndroidFirefox: function isAndroidFirefox() {
|
|
11642
|
-
return this.isAndroid() && /Firefox/i.test(navigator.userAgent);
|
|
11643
|
-
}
|
|
11687
|
+
isFirefox: function isFirefox() {
|
|
11688
|
+
return typeof InstallTrigger !== 'undefined';
|
|
11644
11689
|
},
|
|
11645
|
-
|
|
11646
|
-
|
|
11647
|
-
|
|
11648
|
-
|
|
11649
|
-
|
|
11650
|
-
|
|
11651
|
-
|
|
11652
|
-
|
|
11653
|
-
|
|
11654
|
-
|
|
11655
|
-
|
|
11656
|
-
|
|
11690
|
+
isChrome: function isChrome() {
|
|
11691
|
+
return !!window.chrome && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor) && !/OPR/.test(navigator.userAgent);
|
|
11692
|
+
},
|
|
11693
|
+
isEdge: function isEdge() {
|
|
11694
|
+
return !isIE && !!window.StyleMedia;
|
|
11695
|
+
},
|
|
11696
|
+
isOpera: function isOpera() {
|
|
11697
|
+
return !!window.opr && !!opr.addons || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
|
|
11698
|
+
},
|
|
11699
|
+
isiOS: function isiOS() {
|
|
11700
|
+
return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
11701
|
+
},
|
|
11702
|
+
isSafari: function isSafari() {
|
|
11703
|
+
var userAgent = navigator.userAgent.toLowerCase();
|
|
11704
|
+
return /(safari|applewebkit)/i.test(userAgent) && !userAgent.includes("chrome") && !userAgent.includes("android");
|
|
11705
|
+
},
|
|
11706
|
+
isAndroid: function isAndroid() {
|
|
11707
|
+
return navigator.userAgent.toLowerCase().indexOf("android") > -1;
|
|
11708
|
+
},
|
|
11709
|
+
isSafariWebRTC: function isSafariWebRTC() {
|
|
11710
|
+
return navigator.mediaDevices && this.isSafari();
|
|
11711
|
+
},
|
|
11712
|
+
isSamsungBrowser: function isSamsungBrowser() {
|
|
11713
|
+
return /SamsungBrowser/i.test(navigator.userAgent);
|
|
11714
|
+
},
|
|
11715
|
+
isAndroidFirefox: function isAndroidFirefox() {
|
|
11716
|
+
return this.isAndroid() && /Firefox/i.test(navigator.userAgent);
|
|
11717
|
+
}
|
|
11718
|
+
};
|
|
11719
|
+
var SDP = {
|
|
11720
|
+
matchPrefix: function matchPrefix(sdp, prefix) {
|
|
11721
|
+
var parts = sdp.trim().split('\n').map(function (line) {
|
|
11722
|
+
return line.trim();
|
|
11723
|
+
});
|
|
11724
|
+
return parts.filter(function (line) {
|
|
11725
|
+
return line.indexOf(prefix) === 0;
|
|
11726
|
+
});
|
|
11727
|
+
},
|
|
11728
|
+
writeFmtp: function writeFmtp(sdp, param, codec) {
|
|
11729
|
+
var sdpArray = sdp.split("\n");
|
|
11730
|
+
var i;
|
|
11657
11731
|
|
|
11658
|
-
|
|
11659
|
-
|
|
11660
|
-
|
|
11661
|
-
|
|
11662
|
-
|
|
11732
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
11733
|
+
if (sdpArray[i].search(codec) != -1 && sdpArray[i].indexOf("a=rtpmap") == 0) {
|
|
11734
|
+
sdpArray[i] += "\na=fmtp:" + sdpArray[i].match(/[0-9]+/)[0] + " " + param + "\r";
|
|
11735
|
+
}
|
|
11736
|
+
} //normalize sdp after modifications
|
|
11663
11737
|
|
|
11664
11738
|
|
|
11665
|
-
|
|
11739
|
+
var result = "";
|
|
11666
11740
|
|
|
11667
|
-
|
|
11668
|
-
|
|
11669
|
-
|
|
11670
|
-
}
|
|
11741
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
11742
|
+
if (sdpArray[i] != "") {
|
|
11743
|
+
result += sdpArray[i] + "\n";
|
|
11671
11744
|
}
|
|
11672
|
-
|
|
11673
|
-
return result;
|
|
11674
11745
|
}
|
|
11675
|
-
|
|
11676
|
-
|
|
11746
|
+
|
|
11747
|
+
return result;
|
|
11748
|
+
}
|
|
11749
|
+
};
|
|
11750
|
+
|
|
11751
|
+
var logger = function logger() {
|
|
11752
|
+
return {
|
|
11677
11753
|
init: function init(verbosity, enablePushLogs, customLogger, enableLogs) {
|
|
11678
11754
|
switch (verbosity.toUpperCase()) {
|
|
11679
11755
|
case "DEBUG":
|
|
@@ -11854,92 +11930,104 @@ module.exports = {
|
|
|
11854
11930
|
default:
|
|
11855
11931
|
this.verbosity = 2;
|
|
11856
11932
|
}
|
|
11857
|
-
|
|
11858
|
-
;
|
|
11859
11933
|
}
|
|
11860
|
-
}
|
|
11861
|
-
|
|
11862
|
-
if (!codecs.length) return sdp;
|
|
11863
|
-
var sdpArray = sdp.split("\n");
|
|
11864
|
-
var codecsArray = codecs.split(","); //search and delete codecs line
|
|
11934
|
+
};
|
|
11935
|
+
};
|
|
11865
11936
|
|
|
11866
|
-
|
|
11867
|
-
|
|
11937
|
+
var stripCodecs = function stripCodecs(sdp, codecs) {
|
|
11938
|
+
if (!codecs.length) return sdp;
|
|
11939
|
+
var sdpArray = sdp.split("\n");
|
|
11940
|
+
var codecsArray = codecs.split(","); //search and delete codecs line
|
|
11868
11941
|
|
|
11869
|
-
|
|
11870
|
-
|
|
11942
|
+
var pt = [];
|
|
11943
|
+
var i;
|
|
11871
11944
|
|
|
11872
|
-
|
|
11873
|
-
|
|
11874
|
-
|
|
11875
|
-
|
|
11876
|
-
|
|
11877
|
-
|
|
11945
|
+
for (var p = 0; p < codecsArray.length; p++) {
|
|
11946
|
+
console.log("Searching for codec " + codecsArray[p]);
|
|
11947
|
+
|
|
11948
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
11949
|
+
if (sdpArray[i].search(new RegExp(codecsArray[p], 'i')) != -1 && sdpArray[i].indexOf("a=rtpmap") == 0) {
|
|
11950
|
+
console.log(codecsArray[p] + " detected");
|
|
11951
|
+
pt.push(sdpArray[i].match(/[0-9]+/)[0]);
|
|
11952
|
+
sdpArray[i] = "";
|
|
11878
11953
|
}
|
|
11879
11954
|
}
|
|
11955
|
+
}
|
|
11880
11956
|
|
|
11881
|
-
|
|
11882
|
-
|
|
11883
|
-
|
|
11884
|
-
|
|
11885
|
-
|
|
11886
|
-
|
|
11887
|
-
}
|
|
11957
|
+
if (pt.length) {
|
|
11958
|
+
//searching for fmtp
|
|
11959
|
+
for (p = 0; p < pt.length; p++) {
|
|
11960
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
11961
|
+
if (sdpArray[i].search("a=fmtp:" + pt[p]) != -1 || sdpArray[i].search("a=rtcp-fb:" + pt[p]) != -1) {
|
|
11962
|
+
sdpArray[i] = "";
|
|
11888
11963
|
}
|
|
11889
|
-
}
|
|
11964
|
+
}
|
|
11965
|
+
} //delete entries from m= line
|
|
11890
11966
|
|
|
11891
11967
|
|
|
11892
|
-
|
|
11893
|
-
|
|
11894
|
-
|
|
11895
|
-
|
|
11968
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
11969
|
+
if (sdpArray[i].search("m=audio") != -1 || sdpArray[i].search("m=video") != -1) {
|
|
11970
|
+
var mLineSplitted = sdpArray[i].split(" ");
|
|
11971
|
+
var newMLine = "";
|
|
11896
11972
|
|
|
11897
|
-
|
|
11898
|
-
|
|
11899
|
-
|
|
11973
|
+
for (var m = 0; m < mLineSplitted.length; m++) {
|
|
11974
|
+
if (pt.indexOf(mLineSplitted[m].trim()) == -1 || m <= 2) {
|
|
11975
|
+
newMLine += mLineSplitted[m];
|
|
11900
11976
|
|
|
11901
|
-
|
|
11902
|
-
|
|
11903
|
-
}
|
|
11977
|
+
if (m < mLineSplitted.length - 1) {
|
|
11978
|
+
newMLine = newMLine + " ";
|
|
11904
11979
|
}
|
|
11905
11980
|
}
|
|
11906
|
-
|
|
11907
|
-
sdpArray[i] = newMLine;
|
|
11908
11981
|
}
|
|
11982
|
+
|
|
11983
|
+
sdpArray[i] = newMLine;
|
|
11909
11984
|
}
|
|
11910
|
-
}
|
|
11985
|
+
}
|
|
11986
|
+
} //normalize sdp after modifications
|
|
11911
11987
|
|
|
11912
11988
|
|
|
11913
|
-
|
|
11989
|
+
var result = "";
|
|
11914
11990
|
|
|
11915
|
-
|
|
11916
|
-
|
|
11917
|
-
|
|
11918
|
-
}
|
|
11991
|
+
for (i = 0; i < sdpArray.length; i++) {
|
|
11992
|
+
if (sdpArray[i] != "") {
|
|
11993
|
+
result += sdpArray[i] + "\n";
|
|
11919
11994
|
}
|
|
11995
|
+
}
|
|
11920
11996
|
|
|
11921
|
-
|
|
11922
|
-
|
|
11923
|
-
getCurrentCodecAndSampleRate: function getCurrentCodecAndSampleRate(sdp, mediaType) {
|
|
11924
|
-
var rows = sdp.split("\n");
|
|
11925
|
-
var codecPt;
|
|
11997
|
+
return result;
|
|
11998
|
+
};
|
|
11926
11999
|
|
|
11927
|
-
|
|
11928
|
-
|
|
11929
|
-
|
|
11930
|
-
ret.name = rows[i].split(" ")[1].split("/")[0];
|
|
11931
|
-
ret.sampleRate = rows[i].split(" ")[1].split("/")[1];
|
|
11932
|
-
return ret;
|
|
11933
|
-
} //WCS-2136. WebRTC statistics doesn't work for VP8
|
|
12000
|
+
var getCurrentCodecAndSampleRate = function getCurrentCodecAndSampleRate(sdp, mediaType) {
|
|
12001
|
+
var rows = sdp.split("\n");
|
|
12002
|
+
var codecPt;
|
|
11934
12003
|
|
|
12004
|
+
for (var i = 0; i < rows.length; i++) {
|
|
12005
|
+
if (codecPt && rows[i].indexOf("a=rtpmap:" + codecPt) != -1) {
|
|
12006
|
+
var ret = {};
|
|
12007
|
+
ret.name = rows[i].split(" ")[1].split("/")[0];
|
|
12008
|
+
ret.sampleRate = rows[i].split(" ")[1].split("/")[1];
|
|
12009
|
+
return ret;
|
|
12010
|
+
} //WCS-2136. WebRTC statistics doesn't work for VP8
|
|
11935
12011
|
|
|
11936
|
-
|
|
11937
|
-
|
|
11938
|
-
|
|
12012
|
+
|
|
12013
|
+
if (rows[i].indexOf("m=" + mediaType) != -1) {
|
|
12014
|
+
codecPt = rows[i].split(" ")[3].trim();
|
|
11939
12015
|
}
|
|
11940
12016
|
}
|
|
11941
12017
|
};
|
|
11942
12018
|
|
|
12019
|
+
module.exports = {
|
|
12020
|
+
isEmptyObject: isEmptyObject,
|
|
12021
|
+
copyObjectToArray: copyObjectToArray,
|
|
12022
|
+
copyObjectPropsToAnotherObject: copyObjectPropsToAnotherObject,
|
|
12023
|
+
processRtcStatsReport: processRtcStatsReport,
|
|
12024
|
+
Browser: Browser,
|
|
12025
|
+
SDP: SDP,
|
|
12026
|
+
logger: logger,
|
|
12027
|
+
stripCodecs: stripCodecs,
|
|
12028
|
+
getCurrentCodecAndSampleRate: getCurrentCodecAndSampleRate
|
|
12029
|
+
};
|
|
12030
|
+
|
|
11943
12031
|
},{}],41:[function(require,module,exports){
|
|
11944
12032
|
'use strict';
|
|
11945
12033
|
|
|
@@ -11973,6 +12061,11 @@ var mics = [];
|
|
|
11973
12061
|
|
|
11974
12062
|
var createConnection = function createConnection(options) {
|
|
11975
12063
|
return new Promise(function (resolve, reject) {
|
|
12064
|
+
// Set connection logger #WCS-2434
|
|
12065
|
+
if (options.logger) {
|
|
12066
|
+
logger = options.logger;
|
|
12067
|
+
}
|
|
12068
|
+
|
|
11976
12069
|
var id = options.id;
|
|
11977
12070
|
var connectionConfig = options.connectionConfig || {
|
|
11978
12071
|
"iceServers": []
|
|
@@ -12103,9 +12196,9 @@ var createConnection = function createConnection(options) {
|
|
|
12103
12196
|
function setContentHint(stream, hint) {
|
|
12104
12197
|
stream.getVideoTracks().forEach(function (track) {
|
|
12105
12198
|
if (track.contentHint === undefined) {
|
|
12106
|
-
logger.warn("contentHint unsupported");
|
|
12199
|
+
logger.warn(LOG_PREFIX, "Track contentHint unsupported");
|
|
12107
12200
|
} else {
|
|
12108
|
-
logger.info("Set video track contentHint to " + hint);
|
|
12201
|
+
logger.info(LOG_PREFIX, "Set video track contentHint to " + hint);
|
|
12109
12202
|
track.contentHint = hint;
|
|
12110
12203
|
}
|
|
12111
12204
|
});
|
|
@@ -12142,7 +12235,7 @@ var createConnection = function createConnection(options) {
|
|
|
12142
12235
|
//WCS-2771 add playback delay
|
|
12143
12236
|
connection.getReceivers().forEach(function (track) {
|
|
12144
12237
|
if (track.playoutDelayHint === undefined) {
|
|
12145
|
-
logger.warn("
|
|
12238
|
+
logger.warn(LOG_PREFIX, "Playout delay unsupported");
|
|
12146
12239
|
}
|
|
12147
12240
|
|
|
12148
12241
|
track.playoutDelayHint = playoutDelay;
|
|
@@ -12535,7 +12628,7 @@ var createConnection = function createConnection(options) {
|
|
|
12535
12628
|
localVideo.srcObject.addTrack(audioTrack);
|
|
12536
12629
|
}
|
|
12537
12630
|
|
|
12538
|
-
logger.info("Switch camera to " + cam);
|
|
12631
|
+
logger.info(LOG_PREFIX, "Switch camera to " + cam);
|
|
12539
12632
|
resolve(cam);
|
|
12540
12633
|
})["catch"](function (reason) {
|
|
12541
12634
|
logger.error(LOG_PREFIX, reason);
|
|
@@ -12593,7 +12686,7 @@ var createConnection = function createConnection(options) {
|
|
|
12593
12686
|
localVideo.srcObject.addTrack(videoTrack);
|
|
12594
12687
|
}
|
|
12595
12688
|
|
|
12596
|
-
logger.info("Switch mic to " + mic);
|
|
12689
|
+
logger.info(LOG_PREFIX, "Switch mic to " + mic);
|
|
12597
12690
|
resolve(mic);
|
|
12598
12691
|
})["catch"](function (reason) {
|
|
12599
12692
|
logger.error(LOG_PREFIX, reason);
|
|
@@ -12687,7 +12780,7 @@ var createConnection = function createConnection(options) {
|
|
|
12687
12780
|
localVideo.srcObject.addTrack(currentAudioTrack);
|
|
12688
12781
|
}
|
|
12689
12782
|
});
|
|
12690
|
-
logger.info("Switch to screen");
|
|
12783
|
+
logger.info(LOG_PREFIX, "Switch to screen");
|
|
12691
12784
|
screenShare = true;
|
|
12692
12785
|
resolve();
|
|
12693
12786
|
};
|
|
@@ -12719,7 +12812,7 @@ var createConnection = function createConnection(options) {
|
|
|
12719
12812
|
});
|
|
12720
12813
|
}
|
|
12721
12814
|
|
|
12722
|
-
logger.info("Switch to cam");
|
|
12815
|
+
logger.info(LOG_PREFIX, "Switch to cam");
|
|
12723
12816
|
screenShare = false;
|
|
12724
12817
|
};
|
|
12725
12818
|
|