@techsee/techsee-media-service 999.20.0-nodejs20 → 999.20.2-alpha

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.
Files changed (209) hide show
  1. package/README.md +28 -27
  2. package/lib/LocalStreamManager.d.ts +0 -1
  3. package/lib/LocalStreamManager.d.ts.map +1 -1
  4. package/lib/LocalStreamManager.js +84 -82
  5. package/lib/LocalStreamManager.js.map +1 -1
  6. package/lib/MediaConstants.d.ts +3 -21
  7. package/lib/MediaConstants.d.ts.map +1 -1
  8. package/lib/MediaConstants.js +13 -32
  9. package/lib/MediaConstants.js.map +1 -1
  10. package/lib/MediaContracts.d.ts +1 -7
  11. package/lib/MediaContracts.d.ts.map +1 -1
  12. package/lib/MediaContracts.js +4 -1
  13. package/lib/MediaContracts.js.map +1 -1
  14. package/lib/MediaPublisher.d.ts +0 -1
  15. package/lib/MediaPublisher.d.ts.map +1 -1
  16. package/lib/MediaPublisher.js +10 -7
  17. package/lib/MediaPublisher.js.map +1 -1
  18. package/lib/MediaServiceBase.d.ts +0 -1
  19. package/lib/MediaServiceBase.d.ts.map +1 -1
  20. package/lib/MediaServiceBase.js +199 -170
  21. package/lib/MediaServiceBase.js.map +1 -1
  22. package/lib/MediaSession/MediaServer.d.ts +0 -1
  23. package/lib/MediaSession/MediaServer.d.ts.map +1 -1
  24. package/lib/MediaSession/MediaServer.js +74 -62
  25. package/lib/MediaSession/MediaServer.js.map +1 -1
  26. package/lib/MediaSession/MediaSessionBase.d.ts +0 -1
  27. package/lib/MediaSession/MediaSessionBase.d.ts.map +1 -1
  28. package/lib/MediaSession/MediaSessionBase.js +23 -19
  29. package/lib/MediaSession/MediaSessionBase.js.map +1 -1
  30. package/lib/MediaSession/SessionOpentok.d.ts +0 -1
  31. package/lib/MediaSession/SessionOpentok.d.ts.map +1 -1
  32. package/lib/MediaSession/SessionOpentok.js +80 -51
  33. package/lib/MediaSession/SessionOpentok.js.map +1 -1
  34. package/lib/MediaSession/SessionTurn.d.ts +0 -1
  35. package/lib/MediaSession/SessionTurn.d.ts.map +1 -1
  36. package/lib/MediaSession/SessionTurn.js +151 -109
  37. package/lib/MediaSession/SessionTurn.js.map +1 -1
  38. package/lib/MediaSession/TurnConstants.d.ts +0 -1
  39. package/lib/MediaSession/TurnConstants.d.ts.map +1 -1
  40. package/lib/MediaSession/TurnConstants.js +16 -1
  41. package/lib/MediaSession/TurnConstants.js.map +1 -1
  42. package/lib/MediaSubscriber.d.ts +0 -1
  43. package/lib/MediaSubscriber.d.ts.map +1 -1
  44. package/lib/MediaSubscriber.js +43 -37
  45. package/lib/MediaSubscriber.js.map +1 -1
  46. package/lib/MediaUtils/Compatibility.d.ts +0 -3
  47. package/lib/MediaUtils/Compatibility.d.ts.map +1 -1
  48. package/lib/MediaUtils/Compatibility.js +34 -76
  49. package/lib/MediaUtils/Compatibility.js.map +1 -1
  50. package/lib/MediaUtils/MediaDomUtils.d.ts +3 -6
  51. package/lib/MediaUtils/MediaDomUtils.d.ts.map +1 -1
  52. package/lib/MediaUtils/MediaDomUtils.js +65 -70
  53. package/lib/MediaUtils/MediaDomUtils.js.map +1 -1
  54. package/lib/MediaUtils/MediaTracer.d.ts +0 -1
  55. package/lib/MediaUtils/MediaTracer.d.ts.map +1 -1
  56. package/lib/MediaUtils/MediaTracer.js +5 -2
  57. package/lib/MediaUtils/MediaTracer.js.map +1 -1
  58. package/lib/MultiParty/Contracts.d.ts +10 -0
  59. package/lib/MultiParty/Contracts.d.ts.map +1 -0
  60. package/lib/MultiParty/Contracts.js +6 -0
  61. package/lib/MultiParty/Contracts.js.map +1 -0
  62. package/lib/MultiParty/DetectWebRtcService.d.ts +14 -17
  63. package/lib/MultiParty/DetectWebRtcService.d.ts.map +1 -1
  64. package/lib/MultiParty/DetectWebRtcService.js +54 -98
  65. package/lib/MultiParty/DetectWebRtcService.js.map +1 -1
  66. package/lib/MultiParty/MediaCapabilitiesHelper.d.ts +10 -0
  67. package/lib/MultiParty/MediaCapabilitiesHelper.d.ts.map +1 -0
  68. package/lib/MultiParty/MediaCapabilitiesHelper.js +140 -0
  69. package/lib/MultiParty/MediaCapabilitiesHelper.js.map +1 -0
  70. package/lib/MultiParty/MultiParty.d.ts +19 -0
  71. package/lib/MultiParty/MultiParty.d.ts.map +1 -0
  72. package/lib/MultiParty/MultiParty.js +160 -0
  73. package/lib/MultiParty/MultiParty.js.map +1 -0
  74. package/lib/MultiParty/OpentokMultiparty.d.ts +25 -0
  75. package/lib/MultiParty/OpentokMultiparty.d.ts.map +1 -0
  76. package/lib/MultiParty/OpentokMultiparty.js +184 -0
  77. package/lib/MultiParty/OpentokMultiparty.js.map +1 -0
  78. package/lib/TechseeMediaStream.d.ts +0 -1
  79. package/lib/TechseeMediaStream.d.ts.map +1 -1
  80. package/lib/TechseeMediaStream.js +12 -9
  81. package/lib/TechseeMediaStream.js.map +1 -1
  82. package/lib/oldCode/constants.js +20 -0
  83. package/lib/oldCode/constants.js.map +1 -0
  84. package/lib/oldCode/event-emitter.js +39 -0
  85. package/lib/oldCode/event-emitter.js.map +1 -0
  86. package/lib/oldCode/index.js +64 -0
  87. package/lib/oldCode/index.js.map +1 -0
  88. package/lib/oldCode/opentok/session.js +310 -0
  89. package/lib/oldCode/opentok/session.js.map +1 -0
  90. package/lib/oldCode/opentok/stream.js +310 -0
  91. package/lib/oldCode/opentok/stream.js.map +1 -0
  92. package/lib/oldCode/publisher.js +143 -0
  93. package/lib/oldCode/publisher.js.map +1 -0
  94. package/lib/oldCode/service.js +395 -0
  95. package/lib/oldCode/service.js.map +1 -0
  96. package/lib/oldCode/session.js +110 -0
  97. package/lib/oldCode/session.js.map +1 -0
  98. package/lib/oldCode/stream.js +195 -0
  99. package/lib/oldCode/stream.js.map +1 -0
  100. package/lib/oldCode/subscriber.js +90 -0
  101. package/lib/oldCode/subscriber.js.map +1 -0
  102. package/lib/oldCode/tracer.d.ts +36 -0
  103. package/lib/oldCode/tracer.d.ts.map +1 -0
  104. package/lib/oldCode/tracer.js +161 -0
  105. package/lib/oldCode/tracer.js.map +1 -0
  106. package/lib/oldCode/utils/ImageFixer.d.ts +1 -0
  107. package/lib/oldCode/utils/ImageFixer.d.ts.map +1 -0
  108. package/lib/oldCode/utils/ImageFixer.js +59 -0
  109. package/lib/oldCode/utils/ImageFixer.js.map +1 -0
  110. package/lib/oldCode/webrtc/constants.js +114 -0
  111. package/lib/oldCode/webrtc/constants.js.map +1 -0
  112. package/lib/oldCode/webrtc/helper.js +173 -0
  113. package/lib/oldCode/webrtc/helper.js.map +1 -0
  114. package/lib/oldCode/webrtc/session-kms.js +558 -0
  115. package/lib/oldCode/webrtc/session-kms.js.map +1 -0
  116. package/lib/oldCode/webrtc/session-loopback.js +336 -0
  117. package/lib/oldCode/webrtc/session-loopback.js.map +1 -0
  118. package/lib/oldCode/webrtc/session-turn.js +880 -0
  119. package/lib/oldCode/webrtc/session-turn.js.map +1 -0
  120. package/lib/oldCode/webrtc/session-turn.v2.js +583 -0
  121. package/lib/oldCode/webrtc/session-turn.v2.js.map +1 -0
  122. package/lib/oldCode/webrtc/session.js +52 -0
  123. package/lib/oldCode/webrtc/session.js.map +1 -0
  124. package/lib/oldCode/webrtc/stream.js +674 -0
  125. package/lib/oldCode/webrtc/stream.js.map +1 -0
  126. package/lib/oldCode/webrtc/temasys/adapter-loader.js +12 -0
  127. package/lib/oldCode/webrtc/temasys/adapter-loader.js.map +1 -0
  128. package/lib/oldCode/webrtc/temasys/adapter.js +5861 -0
  129. package/lib/oldCode/webrtc/temasys/adapter.js.map +1 -0
  130. package/lib/oldCode/webrtc/webrtc-ie-shim.js +3007 -0
  131. package/lib/oldCode/webrtc/webrtc-ie-shim.js.map +1 -0
  132. package/lib/qos/raw-qos.js +145 -84
  133. package/lib/qos/raw-qos.js.map +1 -1
  134. package/lib/webrtc-ie-shim.js +2950 -1896
  135. package/lib/webrtc-ie-shim.js.map +1 -1
  136. package/package.json +61 -66
  137. package/lib/MediaUtils/index.d.ts +0 -2
  138. package/lib/MediaUtils/index.d.ts.map +0 -1
  139. package/lib/MediaUtils/index.js +0 -6
  140. package/lib/MediaUtils/index.js.map +0 -1
  141. package/lib/MultiParty/MediaCapabilitiesService.d.ts +0 -18
  142. package/lib/MultiParty/MediaCapabilitiesService.d.ts.map +0 -1
  143. package/lib/MultiParty/MediaCapabilitiesService.js +0 -158
  144. package/lib/MultiParty/MediaCapabilitiesService.js.map +0 -1
  145. package/lib/MultiParty/MediaCapabilitiesUtils.d.ts +0 -6
  146. package/lib/MultiParty/MediaCapabilitiesUtils.d.ts.map +0 -1
  147. package/lib/MultiParty/MediaCapabilitiesUtils.js +0 -123
  148. package/lib/MultiParty/MediaCapabilitiesUtils.js.map +0 -1
  149. package/lib/MultiParty/MediaTracer.d.ts +0 -4
  150. package/lib/MultiParty/MediaTracer.d.ts.map +0 -1
  151. package/lib/MultiParty/MediaTracer.js +0 -10
  152. package/lib/MultiParty/MediaTracer.js.map +0 -1
  153. package/lib/MultiParty/MultiPartyService.d.ts +0 -49
  154. package/lib/MultiParty/MultiPartyService.d.ts.map +0 -1
  155. package/lib/MultiParty/MultiPartyService.js +0 -30
  156. package/lib/MultiParty/MultiPartyService.js.map +0 -1
  157. package/lib/MultiParty/MultiPartyServiceFactory.d.ts +0 -4
  158. package/lib/MultiParty/MultiPartyServiceFactory.d.ts.map +0 -1
  159. package/lib/MultiParty/MultiPartyServiceFactory.js +0 -13
  160. package/lib/MultiParty/MultiPartyServiceFactory.js.map +0 -1
  161. package/lib/MultiParty/MultipartyServiceEventTypes.d.ts +0 -89
  162. package/lib/MultiParty/MultipartyServiceEventTypes.d.ts.map +0 -1
  163. package/lib/MultiParty/MultipartyServiceEventTypes.js +0 -16
  164. package/lib/MultiParty/MultipartyServiceEventTypes.js.map +0 -1
  165. package/lib/MultiParty/index.d.ts +0 -7
  166. package/lib/MultiParty/index.d.ts.map +0 -1
  167. package/lib/MultiParty/index.js +0 -25
  168. package/lib/MultiParty/index.js.map +0 -1
  169. package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts +0 -38
  170. package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts.map +0 -1
  171. package/lib/MultiParty/opentok/OpentokMultiPartyService.js +0 -492
  172. package/lib/MultiParty/opentok/OpentokMultiPartyService.js.map +0 -1
  173. package/lib/MultiParty/opentok/OpentokPublisher.d.ts +0 -34
  174. package/lib/MultiParty/opentok/OpentokPublisher.d.ts.map +0 -1
  175. package/lib/MultiParty/opentok/OpentokPublisher.js +0 -121
  176. package/lib/MultiParty/opentok/OpentokPublisher.js.map +0 -1
  177. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts +0 -20
  178. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.d.ts.map +0 -1
  179. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js +0 -49
  180. package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js.map +0 -1
  181. package/lib/MultiParty/opentok/OpentokScreenPublisher.d.ts +0 -6
  182. package/lib/MultiParty/opentok/OpentokScreenPublisher.d.ts.map +0 -1
  183. package/lib/MultiParty/opentok/OpentokScreenPublisher.js +0 -48
  184. package/lib/MultiParty/opentok/OpentokScreenPublisher.js.map +0 -1
  185. package/lib/MultiParty/opentok/OpentokSubscriber.d.ts +0 -2
  186. package/lib/MultiParty/opentok/OpentokSubscriber.d.ts.map +0 -1
  187. package/lib/MultiParty/opentok/OpentokSubscriber.js +0 -26
  188. package/lib/MultiParty/opentok/OpentokSubscriber.js.map +0 -1
  189. package/lib/MultiParty/opentok/OpentokVideoPublisher.d.ts +0 -19
  190. package/lib/MultiParty/opentok/OpentokVideoPublisher.d.ts.map +0 -1
  191. package/lib/MultiParty/opentok/OpentokVideoPublisher.js +0 -182
  192. package/lib/MultiParty/opentok/OpentokVideoPublisher.js.map +0 -1
  193. package/lib/MultiParty/opentok/trace.d.ts +0 -3
  194. package/lib/MultiParty/opentok/trace.d.ts.map +0 -1
  195. package/lib/MultiParty/opentok/trace.js +0 -18
  196. package/lib/MultiParty/opentok/trace.js.map +0 -1
  197. package/lib/MultiParty/opentok.d.ts +0 -463
  198. package/lib/MultiParty/types.d.ts +0 -33
  199. package/lib/MultiParty/types.d.ts.map +0 -1
  200. package/lib/MultiParty/types.js +0 -3
  201. package/lib/MultiParty/types.js.map +0 -1
  202. package/lib/MultiParty/utils.d.ts +0 -10
  203. package/lib/MultiParty/utils.d.ts.map +0 -1
  204. package/lib/MultiParty/utils.js +0 -17
  205. package/lib/MultiParty/utils.js.map +0 -1
  206. package/lib/qos/raw-qos.d.ts +0 -29
  207. package/lib/qos/raw-qos.d.ts.map +0 -1
  208. package/lib/webrtc-ie-shim.d.ts +0 -4
  209. package/lib/webrtc-ie-shim.d.ts.map +0 -1
@@ -1,21 +1,26 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
2
+
3
+ var __extends = undefined && undefined.__extends || function () {
4
+ var _extendStatics = function extendStatics(d, b) {
5
+ _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
6
+ d.__proto__ = b;
7
+ } || function (d, b) {
8
+ for (var p in b) {
9
+ if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
10
+ }
11
+ };
12
+ return _extendStatics(d, b);
8
13
  };
9
14
  return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
15
+ _extendStatics(d, b);
16
+ function __() {
17
+ this.constructor = d;
18
+ }
14
19
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
20
  };
16
- })();
17
- var __importDefault = (this && this.__importDefault) || function (mod) {
18
- return (mod && mod.__esModule) ? mod : { "default": mod };
21
+ }();
22
+ var __importDefault = undefined && undefined.__importDefault || function (mod) {
23
+ return mod && mod.__esModule ? mod : { "default": mod };
19
24
  };
20
25
  Object.defineProperty(exports, "__esModule", { value: true });
21
26
  exports.MediaServerSession = void 0;
@@ -26,8 +31,8 @@ var MediaTracer_1 = require("../MediaUtils/MediaTracer");
26
31
  var guards_1 = require("@techsee/techsee-common/lib/core/guards");
27
32
  var bluebird_1 = require("bluebird");
28
33
  var get_1 = __importDefault(require("lodash/get"));
29
- var trace = (0, MediaTracer_1.getMediaTracer)('MediaServerSession');
30
- var MediaServerSession = (function (_super) {
34
+ var trace = MediaTracer_1.getMediaTracer('MediaServerSession');
35
+ var MediaServerSession = /** @class */function (_super) {
31
36
  __extends(MediaServerSession, _super);
32
37
  function MediaServerSession(sessionParams, streamFactory) {
33
38
  var _this = _super.call(this, sessionParams, streamFactory) || this;
@@ -49,7 +54,7 @@ var MediaServerSession = (function (_super) {
49
54
  return _this;
50
55
  }
51
56
  Object.defineProperty(MediaServerSession.prototype, "ownPeerId", {
52
- get: function () {
57
+ get: function get() {
53
58
  return this._session && this._session.connection ? this._session.connection.connectionId : '';
54
59
  },
55
60
  enumerable: false,
@@ -61,12 +66,16 @@ var MediaServerSession = (function (_super) {
61
66
  trace.error('Session already exists');
62
67
  return bluebird_1.Promise.reject('Cannot connect to session while another session is active');
63
68
  }
69
+ // const iceServers = this._credentials.ice.map((item: any) => ({
70
+ // urls: item.url,
71
+ // username: item.login,
72
+ // credential: item.password
73
+ // }));
64
74
  this.OV = new openvidu_browser_1.OpenVidu();
75
+ // this.OV.setAdvancedConfiguration({ iceServers });
65
76
  this._session = this.OV.initSession();
66
77
  this.initSessionEvents();
67
- return this._session
68
- .connect(this._credentials.token, { clientRole: this._sessionParams.clientRole })
69
- .catch(function (err) {
78
+ return this._session.connect(this._credentials.token, { clientRole: this._sessionParams.clientRole }).catch(function (err) {
70
79
  trace.error('Error to connect to session Media Server: ', err);
71
80
  throw err;
72
81
  });
@@ -93,7 +102,11 @@ var MediaServerSession = (function (_super) {
93
102
  _this.removeSessionEvent();
94
103
  _this._session.disconnect();
95
104
  _this._lastStreamEvents = [];
105
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
106
+ // @ts-ignore
96
107
  delete _this._session;
108
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
109
+ // @ts-ignore
97
110
  delete _this.OV;
98
111
  resolve();
99
112
  });
@@ -114,6 +127,8 @@ var MediaServerSession = (function (_super) {
114
127
  trace.info('Remove Events Listener');
115
128
  };
116
129
  MediaServerSession.prototype.getRemoteTrackStats = function (mediaTrack) {
130
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
131
+ // @ts-ignore// @ts-ignore
117
132
  return bluebird_1.Promise.resolve(undefined);
118
133
  };
119
134
  MediaServerSession.prototype.onMediaStreamDestroyed = function (clientRole) {
@@ -125,7 +140,9 @@ var MediaServerSession = (function (_super) {
125
140
  promises.push(_this.destroyPublisherOnPeerConnection(peerConnection));
126
141
  }
127
142
  });
128
- return bluebird_1.Promise.all(promises).then(function () { return trace.info('onMediaStreamDestroyed: Success'); });
143
+ return bluebird_1.Promise.all(promises).then(function () {
144
+ return trace.info('onMediaStreamDestroyed: Success');
145
+ });
129
146
  };
130
147
  MediaServerSession.prototype.onPublisherDestroyed = function (connectionId) {
131
148
  trace.info('onPublisherDestroyed');
@@ -177,7 +194,9 @@ var MediaServerSession = (function (_super) {
177
194
  trace.warn('Peer connection for remote stream not found');
178
195
  return;
179
196
  }
180
- this.destroySubscriberOnPeerConnection(peerConnection).catch(function () { return undefined; });
197
+ this.destroySubscriberOnPeerConnection(peerConnection).catch(function () {
198
+ return undefined;
199
+ });
181
200
  };
182
201
  MediaServerSession.prototype.connectionDestroyedHandler = function (event) {
183
202
  trace.info('connectionDestroyedHandler', event);
@@ -187,18 +206,17 @@ var MediaServerSession = (function (_super) {
187
206
  }
188
207
  if (this._peerConnections.has(connection.connectionId)) {
189
208
  var peerConnection = this._peerConnections.get(connection.connectionId);
190
- this.destroySubscriberOnPeerConnection(peerConnection).catch(function () { return undefined; });
209
+ this.destroySubscriberOnPeerConnection(peerConnection).catch(function () {
210
+ return undefined;
211
+ });
191
212
  }
192
213
  };
193
214
  MediaServerSession.prototype.destroyPeerConnection = function (peerConnection) {
194
215
  trace.info('destroyPeerConnection');
195
216
  this._peerConnections.delete(peerConnection.peerId);
196
- return bluebird_1.Promise.all([
197
- this.destroyPublisherOnPeerConnection(peerConnection),
198
- this.destroySubscriberOnPeerConnection(peerConnection)
199
- ])
200
- .then(function () { return undefined; })
201
- .catch(function () {
217
+ return bluebird_1.Promise.all([this.destroyPublisherOnPeerConnection(peerConnection), this.destroySubscriberOnPeerConnection(peerConnection)]).then(function () {
218
+ return undefined;
219
+ }).catch(function () {
202
220
  trace.warn('destroyPeerConnection - something wrong with destroy');
203
221
  });
204
222
  };
@@ -208,9 +226,9 @@ var MediaServerSession = (function (_super) {
208
226
  this._session.unsubscribe(peerConnection.subscriber);
209
227
  }
210
228
  trace.info('destroySubscriberOnPeerConnection- before unregisterPeersRemoteMediaTracks');
211
- return this.unregisterPeersRemoteMediaTracks(peerConnection)
212
- .catch(function () { return trace.warn('Error removing remote streams from peerConnection'); })
213
- .then(function () {
229
+ return this.unregisterPeersRemoteMediaTracks(peerConnection).catch(function () {
230
+ return trace.warn('Error removing remote streams from peerConnection');
231
+ }).then(function () {
214
232
  trace.info('destroySubscriberOnPeerConnection- unregisterPeersRemoteMediaTracks successfully');
215
233
  peerConnection.subscriber = null;
216
234
  });
@@ -264,10 +282,7 @@ var MediaServerSession = (function (_super) {
264
282
  return this.createMediaSubscriber(stream).then(function (subscriber) {
265
283
  peerConnection.subscriber = subscriber;
266
284
  trace.info('Registering remote media tracks', peerConnection.subscriber);
267
- subscriber.stream
268
- .getMediaStream()
269
- .getTracks()
270
- .forEach(function (mediaTrack) {
285
+ subscriber.stream.getMediaStream().getTracks().forEach(function (mediaTrack) {
271
286
  _this.addRemoteTrackToPeer(peerConnection, mediaTrack);
272
287
  });
273
288
  return _this.registerPeersRemoteTracks(peerConnection);
@@ -276,22 +291,18 @@ var MediaServerSession = (function (_super) {
276
291
  MediaServerSession.prototype.createStreamForPublishing = function (destinationRole) {
277
292
  var _this = this;
278
293
  trace.info('createStreamForPublishing');
279
- return this._sessionStreamsManager
280
- .getMediaStreamForRole(destinationRole)
281
- .then(function (mediaStream) {
294
+ return this._sessionStreamsManager.getMediaStreamForRole(destinationRole).then(function (mediaStream) {
282
295
  var stream = { videoSource: null, audioSource: null };
283
296
  if (mediaStream) {
284
297
  trace.info('Media stream found for publishing', mediaStream);
285
298
  mediaStream.getTracks().forEach(function (track) {
286
299
  if (track.kind === 'video') {
287
300
  stream.videoSource = track;
288
- }
289
- else if (track.kind === 'audio') {
301
+ } else if (track.kind === 'audio') {
290
302
  stream.audioSource = track;
291
303
  }
292
304
  });
293
- }
294
- else if (_this._sessionParams.clientRole === MediaConstants_1.SessionClientRole.USER) {
305
+ } else if (_this._sessionParams.clientRole === MediaConstants_1.SessionClientRole.USER) {
295
306
  trace.warn('No local media was found for publishing to destinationRole:', destinationRole);
296
307
  }
297
308
  return stream;
@@ -313,8 +324,10 @@ var MediaServerSession = (function (_super) {
313
324
  }
314
325
  ovPublisher.on('streamDestroyed', function (event) {
315
326
  trace.info('Publisher stream destroyed', event);
316
- var connectionId = (0, get_1.default)(event, 'stream.connection.connectionId');
327
+ var connectionId = get_1.default(event, 'stream.connection.connectionId');
317
328
  _this.onPublisherDestroyed(connectionId);
329
+ //We preventing the default, in order to prevent stop the stream by OV.
330
+ //We managing streams by ourselves and if we allow OV to close the stream, it cannot be reused.
318
331
  event.preventDefault();
319
332
  });
320
333
  resolve(ovPublisher);
@@ -329,14 +342,11 @@ var MediaServerSession = (function (_super) {
329
342
  return;
330
343
  }
331
344
  var destinationRole = JSON.parse(connection.data).clientRole;
332
- this.createStreamForPublishing(destinationRole)
333
- .then(function (streams) {
345
+ this.createStreamForPublishing(destinationRole).then(function (streams) {
334
346
  var peerConnection = {
335
347
  peerId: connection.connectionId,
336
348
  peerRole: destinationRole,
337
- peerType: _this._sessionParams.clientType === MediaConstants_1.SessionClientType.INITIATOR
338
- ? MediaConstants_1.SessionClientType.GUEST
339
- : MediaConstants_1.SessionClientType.INITIATOR,
349
+ peerType: _this._sessionParams.clientType === MediaConstants_1.SessionClientType.INITIATOR ? MediaConstants_1.SessionClientType.GUEST : MediaConstants_1.SessionClientType.INITIATOR,
340
350
  connection: connection,
341
351
  publisher: null,
342
352
  subscriber: null,
@@ -344,7 +354,7 @@ var MediaServerSession = (function (_super) {
344
354
  localStream: streams,
345
355
  connectionTimoutPrt: null
346
356
  };
347
- if (connection.connectionId !== _this.ownPeerId || (!streams.videoSource && !streams.audioSource)) {
357
+ if (connection.connectionId !== _this.ownPeerId || !streams.videoSource && !streams.audioSource) {
348
358
  trace.info('Peer connection without publisher was created', peerConnection);
349
359
  return peerConnection;
350
360
  }
@@ -353,16 +363,15 @@ var MediaServerSession = (function (_super) {
353
363
  trace.info('Peer connection with publisher was created', peerConnection);
354
364
  return peerConnection;
355
365
  });
356
- })
357
- .then(function (peerConnection) {
366
+ }).then(function (peerConnection) {
358
367
  _this._peerConnections.set(peerConnection.peerId, peerConnection);
359
368
  if (connection.connectionId === _this.ownPeerId) {
360
369
  trace.info('Before subscribe the event streams');
361
- return _this._lastStreamEvents
362
- .reduce(function (promiseChain, streamEvent) {
363
- return promiseChain.then(function () { return _this.streamCreatedHandler(streamEvent); });
364
- }, bluebird_1.Promise.resolve())
365
- .then(function () {
370
+ return _this._lastStreamEvents.reduce(function (promiseChain, streamEvent) {
371
+ return promiseChain.then(function () {
372
+ return _this.streamCreatedHandler(streamEvent);
373
+ });
374
+ }, bluebird_1.Promise.resolve()).then(function () {
366
375
  if (peerConnection.publisher) {
367
376
  trace.info('Starting publish to peerConnection.publisher');
368
377
  return _this._session.publish(peerConnection.publisher).catch(function (err) {
@@ -377,17 +386,20 @@ var MediaServerSession = (function (_super) {
377
386
  return bluebird_1.Promise.resolve();
378
387
  });
379
388
  }
380
- })
381
- .catch(function (error) {
389
+ }).catch(function (error) {
382
390
  trace.error('Error handling new peer connection', error);
383
391
  });
384
392
  };
385
393
  MediaServerSession.prototype.sessionExistsGuard = function (shouldThrow) {
386
- if (shouldThrow === void 0) { shouldThrow = true; }
394
+ if (shouldThrow === void 0) {
395
+ shouldThrow = true;
396
+ }
387
397
  var connected = !!(this._session && this._session.connection && this._session.connection.connectionId);
388
- return (0, guards_1.throwableGuard)(connected, 'There no MediaServer session exists', shouldThrow);
398
+ return guards_1.throwableGuard(connected, 'There no MediaServer session exists', shouldThrow);
389
399
  };
390
400
  return MediaServerSession;
391
- }(MediaSessionBase_1.MediaSessionBase));
401
+ }(MediaSessionBase_1.MediaSessionBase);
392
402
  exports.MediaServerSession = MediaServerSession;
393
- //# sourceMappingURL=MediaServer.js.map
403
+
404
+ //# sourceMappingURL=MediaServer.js.map
405
+ //# sourceMappingURL=MediaServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaServer.js","sourceRoot":"","sources":["../../src/MediaSession/MediaServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["MediaSession/MediaServer.js"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__importDefault","mod","__esModule","defineProperty","exports","value","MediaServerSession","MediaSessionBase_1","require","MediaConstants_1","openvidu_browser_1","MediaTracer_1","guards_1","bluebird_1","get_1","trace","getMediaTracer","_super","sessionParams","streamFactory","_this","OV","_session","_lastStreamEvents","_credentials","credentials","connect","bind","disconnect","onMediaStreamDestroyed","onPublisherDestroyed","onMediaStreamRenewed","createStreamForPublishing","createMediaPublisher","connectionCreatedHandler","connectionDestroyedHandler","streamCreatedHandler","streamDestroyedHandler","get","connection","connectionId","enumerable","configurable","connectOnly","info","error","Promise","reject","OpenVidu","initSession","initSessionEvents","token","clientRole","_sessionParams","catch","err","sessionDisconnect","resolve","promiseDisconnect","_peerConnections","forEach","peerConnection","push","destroyPeerConnection","all","then","removeSessionEvent","off","removeHandlers","getRemoteTrackStats","mediaTrack","undefined","promises","peerRole","destroyPublisherOnPeerConnection","mediaStream","replaceStreamTracks","Error","initHandlers","on","event","emitEvent","recordingEvents","RECORD_STARTED","RECORD_STOPPED","RECONNECTING","stream","sessionExistsGuard","warn","destroySubscriberOnPeerConnection","has","delete","peerId","subscriber","unsubscribe","unregisterPeersRemoteMediaTracks","publisher","unpublish","localStream","createMediaSubscriber","remoteStream","subscribe","ownPeerId","getMediaStream","getTracks","addRemoteTrackToPeer","registerPeersRemoteTracks","destinationRole","_sessionStreamsManager","getMediaStreamForRole","videoSource","audioSource","track","kind","SessionClientRole","USER","ovParams","publishAudio","publishVideo","ovPublisher","initPublisher","default","preventDefault","JSON","parse","data","streams","peerType","clientType","SessionClientType","INITIATOR","GUEST","remoteMediaTracks","connectionTimoutPrt","set","reduce","promiseChain","streamEvent","publish","shouldThrow","connected","throwableGuard","MediaSessionBase"],"mappings":"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","file":"MediaServer.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediaServerSession = void 0;\nvar MediaSessionBase_1 = require(\"./MediaSessionBase\");\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar openvidu_browser_1 = require(\"@techsee/openvidu-browser\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar guards_1 = require(\"@techsee/techsee-common/lib/core/guards\");\nvar bluebird_1 = require(\"bluebird\");\nvar get_1 = __importDefault(require(\"lodash/get\"));\nvar trace = MediaTracer_1.getMediaTracer('MediaServerSession');\nvar MediaServerSession = /** @class */ (function (_super) {\n __extends(MediaServerSession, _super);\n function MediaServerSession(sessionParams, streamFactory) {\n var _this = _super.call(this, sessionParams, streamFactory) || this;\n _this.OV = null;\n _this._session = null;\n _this._lastStreamEvents = [];\n _this._credentials = sessionParams.credentials;\n _this.connect = _this.connect.bind(_this);\n _this.disconnect = _this.disconnect.bind(_this);\n _this.onMediaStreamDestroyed = _this.onMediaStreamDestroyed.bind(_this);\n _this.onPublisherDestroyed = _this.onPublisherDestroyed.bind(_this);\n _this.onMediaStreamRenewed = _this.onMediaStreamRenewed.bind(_this);\n _this.createStreamForPublishing = _this.createStreamForPublishing.bind(_this);\n _this.createMediaPublisher = _this.createMediaPublisher.bind(_this);\n _this.connectionCreatedHandler = _this.connectionCreatedHandler.bind(_this);\n _this.connectionDestroyedHandler = _this.connectionDestroyedHandler.bind(_this);\n _this.streamCreatedHandler = _this.streamCreatedHandler.bind(_this);\n _this.streamDestroyedHandler = _this.streamDestroyedHandler.bind(_this);\n return _this;\n }\n Object.defineProperty(MediaServerSession.prototype, \"ownPeerId\", {\n get: function () {\n return this._session && this._session.connection ? this._session.connection.connectionId : '';\n },\n enumerable: false,\n configurable: true\n });\n MediaServerSession.prototype.connect = function (connectOnly) {\n trace.info('Connect to session', this._credentials);\n if (this._session) {\n trace.error('Session already exists');\n return bluebird_1.Promise.reject('Cannot connect to session while another session is active');\n }\n // const iceServers = this._credentials.ice.map((item: any) => ({\n // urls: item.url,\n // username: item.login,\n // credential: item.password\n // }));\n this.OV = new openvidu_browser_1.OpenVidu();\n // this.OV.setAdvancedConfiguration({ iceServers });\n this._session = this.OV.initSession();\n this.initSessionEvents();\n return this._session.connect(this._credentials.token, { clientRole: this._sessionParams.clientRole })\n .catch(function (err) {\n trace.error('Error to connect to session Media Server: ', err);\n throw err;\n });\n };\n MediaServerSession.prototype.sessionDisconnect = function () {\n if (this._session) {\n return this._session.disconnect(true);\n }\n };\n MediaServerSession.prototype.disconnect = function () {\n var _this = this;\n return new bluebird_1.Promise(function (resolve) {\n trace.info('Disconnecting from session');\n var promiseDisconnect = [];\n _this._peerConnections.forEach(function (peerConnection) {\n promiseDisconnect.push(_this.destroyPeerConnection(peerConnection));\n });\n return bluebird_1.Promise.all(promiseDisconnect).then(function () {\n if (!_this._session) {\n trace.info('No active session - resolving');\n resolve();\n return;\n }\n _this.removeSessionEvent();\n _this._session.disconnect();\n _this._lastStreamEvents = [];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete _this._session;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete _this.OV;\n resolve();\n });\n });\n };\n MediaServerSession.prototype.removeSessionEvent = function () {\n if (!this._session) {\n return;\n }\n this._session.off('connectionCreated');\n this._session.off('streamCreated');\n this._session.off('streamDestroyed');\n this._session.off('connectionDestroyed');\n this._session.off('sessionDisconnected');\n this._session.off('recordingStarted');\n this._session.off('recordingStopped');\n this._sessionParams.removeHandlers && this._sessionParams.removeHandlers();\n trace.info('Remove Events Listener');\n };\n MediaServerSession.prototype.getRemoteTrackStats = function (mediaTrack) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore// @ts-ignore\n return bluebird_1.Promise.resolve(undefined);\n };\n MediaServerSession.prototype.onMediaStreamDestroyed = function (clientRole) {\n var _this = this;\n trace.info('onMediaStreamDestroyed');\n var promises = [];\n this._peerConnections.forEach(function (peerConnection) {\n if (peerConnection.peerRole === clientRole) {\n promises.push(_this.destroyPublisherOnPeerConnection(peerConnection));\n }\n });\n return bluebird_1.Promise.all(promises).then(function () { return trace.info('onMediaStreamDestroyed: Success'); });\n };\n MediaServerSession.prototype.onPublisherDestroyed = function (connectionId) {\n trace.info('onPublisherDestroyed');\n var peerConnection = this._peerConnections.get(connectionId);\n if (!peerConnection) {\n return bluebird_1.Promise.resolve();\n }\n return this.destroyPublisherOnPeerConnection(peerConnection);\n };\n MediaServerSession.prototype.onMediaStreamRenewed = function (clientRole, mediaStream) {\n return bluebird_1.Promise.resolve(undefined);\n };\n MediaServerSession.prototype.replaceStreamTracks = function (mediaStream) {\n return bluebird_1.Promise.reject(new Error('Not implemented'));\n };\n MediaServerSession.prototype.initSessionEvents = function () {\n var _this = this;\n if (!this._session) {\n return;\n }\n this._sessionParams.initHandlers && this._sessionParams.initHandlers();\n this._lastStreamEvents = [];\n this._session.on('connectionCreated', this.connectionCreatedHandler);\n this._session.on('streamCreated', this.streamCreatedHandler);\n this._session.on('streamDestroyed', this.streamDestroyedHandler);\n this._session.on('connectionDestroyed', this.connectionDestroyedHandler);\n this._session.on('recordingStarted', function (event) {\n trace.info('recordingStarted event', event);\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECORD_STARTED, event);\n });\n this._session.on('recordingStopped', function (event) {\n trace.info('recordingStopped event', event);\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECORD_STOPPED, event);\n });\n this._session.on('reconnecting', function () {\n trace.info('reconnecting event');\n _this.emitEvent(MediaSessionBase_1.recordingEvents.RECONNECTING);\n });\n this._session.on('sessionDisconnected', this.disconnect);\n };\n MediaServerSession.prototype.streamDestroyedHandler = function (event) {\n trace.info('streamDestroyedHandler', event);\n var stream = event.stream;\n if (!this.sessionExistsGuard(false) || !stream) {\n return;\n }\n var peerConnection = this._peerConnections.get(stream.connection.connectionId);\n if (!peerConnection) {\n trace.warn('Peer connection for remote stream not found');\n return;\n }\n this.destroySubscriberOnPeerConnection(peerConnection).catch(function () { return undefined; });\n };\n MediaServerSession.prototype.connectionDestroyedHandler = function (event) {\n trace.info('connectionDestroyedHandler', event);\n var connection = event.connection;\n if (!this.sessionExistsGuard(false) || !connection) {\n return;\n }\n if (this._peerConnections.has(connection.connectionId)) {\n var peerConnection = this._peerConnections.get(connection.connectionId);\n this.destroySubscriberOnPeerConnection(peerConnection).catch(function () { return undefined; });\n }\n };\n MediaServerSession.prototype.destroyPeerConnection = function (peerConnection) {\n trace.info('destroyPeerConnection');\n this._peerConnections.delete(peerConnection.peerId);\n return bluebird_1.Promise.all([this.destroyPublisherOnPeerConnection(peerConnection),\n this.destroySubscriberOnPeerConnection(peerConnection)]).then(function () { return undefined; })\n .catch(function () {\n trace.warn('destroyPeerConnection - something wrong with destroy');\n });\n };\n MediaServerSession.prototype.destroySubscriberOnPeerConnection = function (peerConnection) {\n trace.info('destroySubscriberOnPeerConnection', peerConnection);\n if (this.sessionExistsGuard(false) && peerConnection.subscriber) {\n this._session.unsubscribe(peerConnection.subscriber);\n }\n trace.info('destroySubscriberOnPeerConnection- before unregisterPeersRemoteMediaTracks');\n return this.unregisterPeersRemoteMediaTracks(peerConnection)\n .catch(function () { return trace.warn('Error removing remote streams from peerConnection'); })\n .then(function () {\n trace.info('destroySubscriberOnPeerConnection- unregisterPeersRemoteMediaTracks successfully');\n peerConnection.subscriber = null;\n });\n };\n MediaServerSession.prototype.destroyPublisherOnPeerConnection = function (peerConnection) {\n trace.info('destroyPublisherOnPeerConnection');\n if (this.sessionExistsGuard(false) && peerConnection.publisher) {\n trace.info('destroyPublisherOnPeerConnection- unpublish!');\n this._session.unpublish(peerConnection.publisher);\n }\n peerConnection.publisher = null;\n peerConnection.localStream = null;\n return bluebird_1.Promise.resolve();\n };\n MediaServerSession.prototype.createMediaSubscriber = function (remoteStream) {\n var _this = this;\n trace.info('createMediaSubscriber');\n return new bluebird_1.Promise(function (resolve, reject) {\n if (!_this.sessionExistsGuard(false)) {\n return reject('Session not exists');\n }\n trace.info('Before create subscriber');\n var subscriber = _this._session.subscribe(remoteStream, '', {}, function (err) {\n if (err) {\n trace.warn('Error creating subscriber', err);\n return reject(err);\n }\n trace.info('create subscriber successfully', subscriber);\n return resolve(subscriber);\n });\n });\n };\n MediaServerSession.prototype.streamCreatedHandler = function (event) {\n var _this = this;\n if (!event) {\n return bluebird_1.Promise.resolve();\n }\n trace.info('streamCreatedHandler', event.stream);\n var stream = event.stream;\n var connection = (stream || { connection: null }).connection;\n if (!this.sessionExistsGuard(false) || !stream || connection.connectionId === this.ownPeerId) {\n return bluebird_1.Promise.resolve();\n }\n if (!this._peerConnections.has(connection.connectionId)) {\n trace.warn('Unexpected case, connection should exist, add to streams to subscribe list', event);\n this._lastStreamEvents.push(event);\n return bluebird_1.Promise.resolve();\n }\n var peerConnection = this._peerConnections.get(connection.connectionId);\n trace.info('Subscribing the stream');\n return this.createMediaSubscriber(stream).then(function (subscriber) {\n peerConnection.subscriber = subscriber;\n trace.info('Registering remote media tracks', peerConnection.subscriber);\n subscriber.stream.getMediaStream().getTracks().forEach(function (mediaTrack) {\n _this.addRemoteTrackToPeer(peerConnection, mediaTrack);\n });\n return _this.registerPeersRemoteTracks(peerConnection);\n });\n };\n MediaServerSession.prototype.createStreamForPublishing = function (destinationRole) {\n var _this = this;\n trace.info('createStreamForPublishing');\n return this._sessionStreamsManager.getMediaStreamForRole(destinationRole)\n .then(function (mediaStream) {\n var stream = { videoSource: null, audioSource: null };\n if (mediaStream) {\n trace.info('Media stream found for publishing', mediaStream);\n mediaStream.getTracks().forEach(function (track) {\n if (track.kind === 'video') {\n stream.videoSource = track;\n }\n else if (track.kind === 'audio') {\n stream.audioSource = track;\n }\n });\n }\n else if (_this._sessionParams.clientRole === MediaConstants_1.SessionClientRole.USER) {\n trace.warn('No local media was found for publishing to destinationRole:', destinationRole);\n }\n return stream;\n });\n };\n MediaServerSession.prototype.createMediaPublisher = function (stream) {\n var _this = this;\n var ovParams = {\n videoSource: stream.videoSource ? stream.videoSource : false,\n audioSource: stream.audioSource ? stream.audioSource : false,\n publishAudio: !!stream.audioSource,\n publishVideo: !!stream.videoSource\n };\n return new bluebird_1.Promise(function (resolve, reject) {\n var ovPublisher = _this.OV.initPublisher('', ovParams, function (error) {\n if (error) {\n reject(error);\n return;\n }\n ovPublisher.on('streamDestroyed', function (event) {\n trace.info('Publisher stream destroyed', event);\n var connectionId = get_1.default(event, 'stream.connection.connectionId');\n _this.onPublisherDestroyed(connectionId);\n //We preventing the default, in order to prevent stop the stream by OV.\n //We managing streams by ourselves and if we allow OV to close the stream, it cannot be reused.\n event.preventDefault();\n });\n resolve(ovPublisher);\n });\n });\n };\n MediaServerSession.prototype.connectionCreatedHandler = function (event) {\n var _this = this;\n trace.info('connectionCreatedHandler', event);\n var connection = event.connection;\n if (!this.sessionExistsGuard(false) || !connection) {\n return;\n }\n var destinationRole = JSON.parse(connection.data).clientRole;\n this.createStreamForPublishing(destinationRole)\n .then(function (streams) {\n var peerConnection = {\n peerId: connection.connectionId,\n peerRole: destinationRole,\n peerType: _this._sessionParams.clientType === MediaConstants_1.SessionClientType.INITIATOR\n ? MediaConstants_1.SessionClientType.GUEST : MediaConstants_1.SessionClientType.INITIATOR,\n connection: connection,\n publisher: null,\n subscriber: null,\n remoteMediaTracks: [],\n localStream: streams,\n connectionTimoutPrt: null\n };\n if (connection.connectionId !== _this.ownPeerId || (!streams.videoSource && !streams.audioSource)) {\n trace.info('Peer connection without publisher was created', peerConnection);\n return peerConnection;\n }\n return _this.createMediaPublisher(streams)\n .then(function (publisher) {\n peerConnection.publisher = publisher;\n trace.info('Peer connection with publisher was created', peerConnection);\n return peerConnection;\n });\n })\n .then(function (peerConnection) {\n _this._peerConnections.set(peerConnection.peerId, peerConnection);\n if (connection.connectionId === _this.ownPeerId) {\n trace.info('Before subscribe the event streams');\n return _this._lastStreamEvents.reduce(function (promiseChain, streamEvent) { return promiseChain.then(function () { return _this.streamCreatedHandler(streamEvent); }); }, bluebird_1.Promise.resolve()).then(function () {\n if (peerConnection.publisher) {\n trace.info('Starting publish to peerConnection.publisher');\n return _this._session.publish(peerConnection.publisher)\n .catch(function (err) {\n trace.info('Error during publish', peerConnection.publisher);\n if (peerConnection.publisher) {\n trace.info('Error during publish- unpublish');\n _this._session.unpublish(peerConnection.publisher);\n }\n throw err;\n });\n }\n return bluebird_1.Promise.resolve();\n });\n }\n })\n .catch(function (error) {\n trace.error('Error handling new peer connection', error);\n });\n };\n MediaServerSession.prototype.sessionExistsGuard = function (shouldThrow) {\n if (shouldThrow === void 0) { shouldThrow = true; }\n var connected = !!(this._session && this._session.connection && this._session.connection.connectionId);\n return guards_1.throwableGuard(connected, 'There no MediaServer session exists', shouldThrow);\n };\n return MediaServerSession;\n}(MediaSessionBase_1.MediaSessionBase));\nexports.MediaServerSession = MediaServerSession;\n\n//# sourceMappingURL=MediaServer.js.map\n"]}
@@ -32,4 +32,3 @@ export declare abstract class MediaSessionBase<PeerType extends IMediaSessionPee
32
32
  protected unregisterPeersRemoteMediaTracks(peerConnection: PeerType): Promise<void>;
33
33
  protected getPeerConnectionByMediaTrack(mediaTrack: MediaStreamTrack): Nullable<PeerType>;
34
34
  }
35
- //# sourceMappingURL=MediaSessionBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaSessionBase.d.ts","sourceRoot":"","sources":["../../src/MediaSession/MediaSessionBase.ts"],"names":[],"mappings":";AAAA,OAAO,EAAyC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAC/G,OAAO,EACH,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AAEpC,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,mBAAmB,EAAE,GAAG,CAAC;CAC5B;AAED,oBAAY,eAAe;IACvB,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;CAChC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,iBAAkB,SAAQ,iBAAiB;KAAG;CAC3D;AAID,8BAAsB,gBAAgB,CAAC,QAAQ,SAAS,iBAAiB;IACrE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE3D,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAElE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,kBAAkB,GAAG,yBAAyB,CAAC;IAElF,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAE1C,SAAS,aACL,aAAa,EAAE,kBAAkB,GAAG,yBAAyB,EAC7D,aAAa,EAAE,sBAAsB;IASzC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAI/E,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI;IAMzD,SAAS,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB;IAgCpG,SAAS,CAAC,yBAAyB,CAAC,oBAAoB,EAAE,iBAAiB;IAiB3E,SAAS,CAAC,gCAAgC,CAAC,cAAc,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAenF,SAAS,CAAC,6BAA6B,CAAC,UAAU,EAAE,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;CAmB5F"}
1
+ {"version":3,"sources":["../src/MediaSession/MediaSessionBase.ts"],"names":[],"mappings":";AAAA,OAAO,EAAyC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAC/G,OAAO,EACH,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AAEpC,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,mBAAmB,EAAE,GAAG,CAAC;CAC5B;AAED,oBAAY,eAAe;IACvB,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;CAChC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,iBAAkB,SAAQ,iBAAiB;KAEpD;CACJ;AAID,8BAAsB,gBAAgB,CAAC,QAAQ,SAAS,iBAAiB;IACrE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAClE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,kBAAkB,GAAG,yBAAyB,CAAC;IAClF,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAE1C,SAAS,aAAa,aAAa,EAAE,kBAAkB,GAAG,yBAAyB,EAAE,aAAa,EAAE,sBAAsB;IAQ1H,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAI/E,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI;IAMzD,SAAS,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB;IA+BpG,SAAS,CAAC,yBAAyB,CAAC,oBAAoB,EAAE,iBAAiB;IAgB3E,SAAS,CAAC,gCAAgC,CAAC,cAAc,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnF,SAAS,CAAC,6BAA6B,CAAC,UAAU,EAAE,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;CAiB5F","file":"MediaSessionBase.d.ts","sourcesContent":["import {KnownMediaStream, KnownMediaStreamKind, SessionClientRole, SessionClientType} from '../MediaConstants';\nimport {\n ISessionStreamsManager,\n MediaSessionConfiguration,\n MediaSessionParams,\n RemoteMediaTrack\n} from '../MediaContracts';\n\nimport {getMediaTracer} from '../MediaUtils/MediaTracer';\nimport {Nullable} from '@techsee/techsee-common';\nimport {EventEmitter} from 'events';\n\nexport interface IMediaSessionPeer {\n peerId: string;\n peerType: SessionClientType;\n peerRole: SessionClientRole;\n remoteMediaTracks: RemoteMediaTrack[];\n connectionTimoutPrt: any;\n}\n\nexport enum recordingEvents {\n RECORD_STARTED = 'RECORD_STARTED',\n RECORD_STOPPED = 'RECORD_STOPPED',\n RECONNECTING = 'RECONNECTING'\n}\n\ndeclare global {\n interface RTCPeerConnection extends IMediaSessionPeer {\n\n }\n}\n\nconst trace = getMediaTracer('MediaSessionBase');\n\nexport abstract class MediaSessionBase<PeerType extends IMediaSessionPeer> {\n protected readonly _peerConnections: Map<string, PeerType>;\n protected readonly _sessionStreamsManager: ISessionStreamsManager;\n protected readonly _sessionParams: MediaSessionParams & MediaSessionConfiguration;\n protected readonly _emitter: EventEmitter;\n\n protected constructor(sessionParams: MediaSessionParams & MediaSessionConfiguration, streamFactory: ISessionStreamsManager) {\n this._sessionParams = sessionParams;\n this._sessionStreamsManager = streamFactory;\n this._emitter = new EventEmitter();\n\n this._peerConnections = new Map();\n }\n\n registerEventCallback(event: string, callback: (eventArgs?: any) => void): void {\n this._emitter.on(event, callback);\n }\n\n protected emitEvent(event: string, eventArgs?: any): void {\n setTimeout(() => {\n this._emitter.emit(event, eventArgs);\n });\n }\n\n protected addRemoteTrackToPeer(sourcePeerConnection: IMediaSessionPeer, mediaTrack: MediaStreamTrack) {\n if (mediaTrack.kind === KnownMediaStreamKind.Video &&\n sourcePeerConnection.peerRole === SessionClientRole.AGENT) {\n //Currently We don't support video streams from Agent side\n return;\n }\n\n let trackType: Nullable<KnownMediaStream> = null;\n\n if (mediaTrack.kind.toLowerCase() === KnownMediaStreamKind.Audio) {\n switch (sourcePeerConnection.peerRole) {\n case SessionClientRole.AGENT:\n trackType = KnownMediaStream.AGENT_AUDIO_STREAM;\n break;\n case SessionClientRole.OBSERVER:\n trackType = KnownMediaStream.OBSERVER_AUDIO_STREAM;\n break;\n default:\n trackType = KnownMediaStream.USER_AUDIO_STREAM;\n break;\n }\n\n } else {\n trackType = KnownMediaStream.USER_VIDEO_STREAM;\n }\n\n const remoteMediaTrack: RemoteMediaTrack = {mediaTrack, trackType, isRegistered: false};\n\n sourcePeerConnection.remoteMediaTracks.push(remoteMediaTrack);\n }\n\n protected registerPeersRemoteTracks(sourcePeerConnection: IMediaSessionPeer) {\n trace.info('registerPeersRemoteTracks', sourcePeerConnection && sourcePeerConnection.remoteMediaTracks);\n sourcePeerConnection.remoteMediaTracks.forEach((remoteMediaTrack: RemoteMediaTrack) => {\n if (!remoteMediaTrack.isRegistered) {\n trace.info('call addRemoteMediaTrack with the remote media track', remoteMediaTrack);\n this._sessionStreamsManager.addRemoteMediaTrack(remoteMediaTrack)\n .then(() => {\n remoteMediaTrack.isRegistered = true;\n })\n .catch((error: any) => {\n trace.warn('Error adding remote media track to available streams', error);\n });\n }\n });\n }\n\n protected unregisterPeersRemoteMediaTracks(peerConnection: PeerType): Promise<void> {\n const promises: Promise<any>[] = [];\n\n peerConnection.remoteMediaTracks.forEach((remoteMediaTrack) => {\n const removalPromise = this._sessionStreamsManager.removeMediaTrack(remoteMediaTrack.mediaTrack)\n .then(() => remoteMediaTrack.isRegistered = false)\n .catch(() => trace.warn('Error while removing remote media track', remoteMediaTrack));\n\n promises.push(removalPromise);\n });\n\n return Promise.all(promises).then(() => undefined);\n }\n\n protected getPeerConnectionByMediaTrack(mediaTrack: MediaStreamTrack): Nullable<PeerType> {\n let peerConnectionOfTrack: Nullable<PeerType> = null;\n\n this._peerConnections.forEach((peerConnection: PeerType) => {\n if (peerConnectionOfTrack !== null) {\n return;\n }\n\n const remoteTrack = peerConnection.remoteMediaTracks.filter((track) => track.mediaTrack.id === mediaTrack.id);\n\n if (remoteTrack.length === 1) {\n peerConnectionOfTrack = peerConnection;\n }\n });\n\n return peerConnectionOfTrack;\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.MediaSessionBase = exports.recordingEvents = void 0;
4
5
  var MediaConstants_1 = require("../MediaConstants");
@@ -10,8 +11,8 @@ var recordingEvents;
10
11
  recordingEvents["RECORD_STOPPED"] = "RECORD_STOPPED";
11
12
  recordingEvents["RECONNECTING"] = "RECONNECTING";
12
13
  })(recordingEvents = exports.recordingEvents || (exports.recordingEvents = {}));
13
- var trace = (0, MediaTracer_1.getMediaTracer)('MediaSessionBase');
14
- var MediaSessionBase = (function () {
14
+ var trace = MediaTracer_1.getMediaTracer('MediaSessionBase');
15
+ var MediaSessionBase = /** @class */function () {
15
16
  function MediaSessionBase(sessionParams, streamFactory) {
16
17
  this._sessionParams = sessionParams;
17
18
  this._sessionStreamsManager = streamFactory;
@@ -28,8 +29,8 @@ var MediaSessionBase = (function () {
28
29
  });
29
30
  };
30
31
  MediaSessionBase.prototype.addRemoteTrackToPeer = function (sourcePeerConnection, mediaTrack) {
31
- if (mediaTrack.kind === MediaConstants_1.KnownMediaStreamKind.Video &&
32
- sourcePeerConnection.peerRole === MediaConstants_1.SessionClientRole.AGENT) {
32
+ if (mediaTrack.kind === MediaConstants_1.KnownMediaStreamKind.Video && sourcePeerConnection.peerRole === MediaConstants_1.SessionClientRole.AGENT) {
33
+ //Currently We don't support video streams from Agent side
33
34
  return;
34
35
  }
35
36
  var trackType = null;
@@ -45,8 +46,7 @@ var MediaSessionBase = (function () {
45
46
  trackType = MediaConstants_1.KnownMediaStream.USER_AUDIO_STREAM;
46
47
  break;
47
48
  }
48
- }
49
- else {
49
+ } else {
50
50
  trackType = MediaConstants_1.KnownMediaStream.USER_VIDEO_STREAM;
51
51
  }
52
52
  var remoteMediaTrack = { mediaTrack: mediaTrack, trackType: trackType, isRegistered: false };
@@ -58,12 +58,9 @@ var MediaSessionBase = (function () {
58
58
  sourcePeerConnection.remoteMediaTracks.forEach(function (remoteMediaTrack) {
59
59
  if (!remoteMediaTrack.isRegistered) {
60
60
  trace.info('call addRemoteMediaTrack with the remote media track', remoteMediaTrack);
61
- _this._sessionStreamsManager
62
- .addRemoteMediaTrack(remoteMediaTrack)
63
- .then(function () {
61
+ _this._sessionStreamsManager.addRemoteMediaTrack(remoteMediaTrack).then(function () {
64
62
  remoteMediaTrack.isRegistered = true;
65
- })
66
- .catch(function (error) {
63
+ }).catch(function (error) {
67
64
  trace.warn('Error adding remote media track to available streams', error);
68
65
  });
69
66
  }
@@ -73,13 +70,16 @@ var MediaSessionBase = (function () {
73
70
  var _this = this;
74
71
  var promises = [];
75
72
  peerConnection.remoteMediaTracks.forEach(function (remoteMediaTrack) {
76
- var removalPromise = _this._sessionStreamsManager
77
- .removeMediaTrack(remoteMediaTrack.mediaTrack)
78
- .then(function () { return (remoteMediaTrack.isRegistered = false); })
79
- .catch(function () { return trace.warn('Error while removing remote media track', remoteMediaTrack); });
73
+ var removalPromise = _this._sessionStreamsManager.removeMediaTrack(remoteMediaTrack.mediaTrack).then(function () {
74
+ return remoteMediaTrack.isRegistered = false;
75
+ }).catch(function () {
76
+ return trace.warn('Error while removing remote media track', remoteMediaTrack);
77
+ });
80
78
  promises.push(removalPromise);
81
79
  });
82
- return Promise.all(promises).then(function () { return undefined; });
80
+ return Promise.all(promises).then(function () {
81
+ return undefined;
82
+ });
83
83
  };
84
84
  MediaSessionBase.prototype.getPeerConnectionByMediaTrack = function (mediaTrack) {
85
85
  var peerConnectionOfTrack = null;
@@ -87,7 +87,9 @@ var MediaSessionBase = (function () {
87
87
  if (peerConnectionOfTrack !== null) {
88
88
  return;
89
89
  }
90
- var remoteTrack = peerConnection.remoteMediaTracks.filter(function (track) { return track.mediaTrack.id === mediaTrack.id; });
90
+ var remoteTrack = peerConnection.remoteMediaTracks.filter(function (track) {
91
+ return track.mediaTrack.id === mediaTrack.id;
92
+ });
91
93
  if (remoteTrack.length === 1) {
92
94
  peerConnectionOfTrack = peerConnection;
93
95
  }
@@ -95,6 +97,8 @@ var MediaSessionBase = (function () {
95
97
  return peerConnectionOfTrack;
96
98
  };
97
99
  return MediaSessionBase;
98
- }());
100
+ }();
99
101
  exports.MediaSessionBase = MediaSessionBase;
100
- //# sourceMappingURL=MediaSessionBase.js.map
102
+
103
+ //# sourceMappingURL=MediaSessionBase.js.map
104
+ //# sourceMappingURL=MediaSessionBase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaSessionBase.js","sourceRoot":"","sources":["../../src/MediaSession/MediaSessionBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["MediaSession/MediaSessionBase.js"],"names":["Object","defineProperty","exports","value","MediaSessionBase","recordingEvents","MediaConstants_1","require","MediaTracer_1","events_1","trace","getMediaTracer","sessionParams","streamFactory","_sessionParams","_sessionStreamsManager","_emitter","EventEmitter","_peerConnections","Map","prototype","registerEventCallback","event","callback","on","emitEvent","eventArgs","_this","setTimeout","emit","addRemoteTrackToPeer","sourcePeerConnection","mediaTrack","kind","KnownMediaStreamKind","Video","peerRole","SessionClientRole","AGENT","trackType","toLowerCase","Audio","KnownMediaStream","AGENT_AUDIO_STREAM","OBSERVER","OBSERVER_AUDIO_STREAM","USER_AUDIO_STREAM","USER_VIDEO_STREAM","remoteMediaTrack","isRegistered","remoteMediaTracks","push","registerPeersRemoteTracks","info","forEach","addRemoteMediaTrack","then","catch","error","warn","unregisterPeersRemoteMediaTracks","peerConnection","promises","removalPromise","removeMediaTrack","Promise","all","undefined","getPeerConnectionByMediaTrack","peerConnectionOfTrack","remoteTrack","filter","track","id","length"],"mappings":"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","file":"MediaSessionBase.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediaSessionBase = exports.recordingEvents = void 0;\nvar MediaConstants_1 = require(\"../MediaConstants\");\nvar MediaTracer_1 = require(\"../MediaUtils/MediaTracer\");\nvar events_1 = require(\"events\");\nvar recordingEvents;\n(function (recordingEvents) {\n recordingEvents[\"RECORD_STARTED\"] = \"RECORD_STARTED\";\n recordingEvents[\"RECORD_STOPPED\"] = \"RECORD_STOPPED\";\n recordingEvents[\"RECONNECTING\"] = \"RECONNECTING\";\n})(recordingEvents = exports.recordingEvents || (exports.recordingEvents = {}));\nvar trace = MediaTracer_1.getMediaTracer('MediaSessionBase');\nvar MediaSessionBase = /** @class */ (function () {\n function MediaSessionBase(sessionParams, streamFactory) {\n this._sessionParams = sessionParams;\n this._sessionStreamsManager = streamFactory;\n this._emitter = new events_1.EventEmitter();\n this._peerConnections = new Map();\n }\n MediaSessionBase.prototype.registerEventCallback = function (event, callback) {\n this._emitter.on(event, callback);\n };\n MediaSessionBase.prototype.emitEvent = function (event, eventArgs) {\n var _this = this;\n setTimeout(function () {\n _this._emitter.emit(event, eventArgs);\n });\n };\n MediaSessionBase.prototype.addRemoteTrackToPeer = function (sourcePeerConnection, mediaTrack) {\n if (mediaTrack.kind === MediaConstants_1.KnownMediaStreamKind.Video &&\n sourcePeerConnection.peerRole === MediaConstants_1.SessionClientRole.AGENT) {\n //Currently We don't support video streams from Agent side\n return;\n }\n var trackType = null;\n if (mediaTrack.kind.toLowerCase() === MediaConstants_1.KnownMediaStreamKind.Audio) {\n switch (sourcePeerConnection.peerRole) {\n case MediaConstants_1.SessionClientRole.AGENT:\n trackType = MediaConstants_1.KnownMediaStream.AGENT_AUDIO_STREAM;\n break;\n case MediaConstants_1.SessionClientRole.OBSERVER:\n trackType = MediaConstants_1.KnownMediaStream.OBSERVER_AUDIO_STREAM;\n break;\n default:\n trackType = MediaConstants_1.KnownMediaStream.USER_AUDIO_STREAM;\n break;\n }\n }\n else {\n trackType = MediaConstants_1.KnownMediaStream.USER_VIDEO_STREAM;\n }\n var remoteMediaTrack = { mediaTrack: mediaTrack, trackType: trackType, isRegistered: false };\n sourcePeerConnection.remoteMediaTracks.push(remoteMediaTrack);\n };\n MediaSessionBase.prototype.registerPeersRemoteTracks = function (sourcePeerConnection) {\n var _this = this;\n trace.info('registerPeersRemoteTracks', sourcePeerConnection && sourcePeerConnection.remoteMediaTracks);\n sourcePeerConnection.remoteMediaTracks.forEach(function (remoteMediaTrack) {\n if (!remoteMediaTrack.isRegistered) {\n trace.info('call addRemoteMediaTrack with the remote media track', remoteMediaTrack);\n _this._sessionStreamsManager.addRemoteMediaTrack(remoteMediaTrack)\n .then(function () {\n remoteMediaTrack.isRegistered = true;\n })\n .catch(function (error) {\n trace.warn('Error adding remote media track to available streams', error);\n });\n }\n });\n };\n MediaSessionBase.prototype.unregisterPeersRemoteMediaTracks = function (peerConnection) {\n var _this = this;\n var promises = [];\n peerConnection.remoteMediaTracks.forEach(function (remoteMediaTrack) {\n var removalPromise = _this._sessionStreamsManager.removeMediaTrack(remoteMediaTrack.mediaTrack)\n .then(function () { return remoteMediaTrack.isRegistered = false; })\n .catch(function () { return trace.warn('Error while removing remote media track', remoteMediaTrack); });\n promises.push(removalPromise);\n });\n return Promise.all(promises).then(function () { return undefined; });\n };\n MediaSessionBase.prototype.getPeerConnectionByMediaTrack = function (mediaTrack) {\n var peerConnectionOfTrack = null;\n this._peerConnections.forEach(function (peerConnection) {\n if (peerConnectionOfTrack !== null) {\n return;\n }\n var remoteTrack = peerConnection.remoteMediaTracks.filter(function (track) { return track.mediaTrack.id === mediaTrack.id; });\n if (remoteTrack.length === 1) {\n peerConnectionOfTrack = peerConnection;\n }\n });\n return peerConnectionOfTrack;\n };\n return MediaSessionBase;\n}());\nexports.MediaSessionBase = MediaSessionBase;\n\n//# sourceMappingURL=MediaSessionBase.js.map\n"]}
@@ -49,4 +49,3 @@ export declare class OpentokSession extends MediaSessionBase<OTPeerConnection> i
49
49
  private sessionExistsGuard;
50
50
  }
51
51
  export {};
52
- //# sourceMappingURL=SessionOpentok.d.ts.map