@observertc/observer-js 0.9.26-beta → 0.30.0-beta

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 (298) hide show
  1. package/lib/ObservedCall.d.ts +54 -0
  2. package/lib/ObservedCall.d.ts.map +1 -0
  3. package/lib/ObservedCall.js +166 -0
  4. package/lib/ObservedClient.d.ts +73 -0
  5. package/lib/ObservedClient.d.ts.map +1 -0
  6. package/lib/ObservedClient.js +487 -0
  7. package/lib/ObservedInboundTrack.d.ts +65 -0
  8. package/lib/ObservedInboundTrack.d.ts.map +1 -0
  9. package/lib/ObservedInboundTrack.js +192 -0
  10. package/lib/ObservedOutboundTrack.d.ts +55 -0
  11. package/lib/ObservedOutboundTrack.d.ts.map +1 -0
  12. package/lib/ObservedOutboundTrack.js +166 -0
  13. package/lib/ObservedPeerConnection.d.ts +57 -0
  14. package/lib/ObservedPeerConnection.d.ts.map +1 -0
  15. package/lib/ObservedPeerConnection.js +217 -0
  16. package/lib/Observer.d.ts +26 -1465
  17. package/lib/Observer.d.ts.map +1 -1
  18. package/lib/Observer.js +53 -605
  19. package/lib/{sinks/ObserverSink.d.ts → ReportsCollector.d.ts} +7 -23
  20. package/lib/ReportsCollector.d.ts.map +1 -0
  21. package/lib/{sinks/ObserverSink.js → ReportsCollector.js} +27 -85
  22. package/lib/common/ReportsCollector.d.ts +21 -24
  23. package/lib/common/ReportsCollector.d.ts.map +1 -1
  24. package/lib/common/ReportsCollector.js +24 -0
  25. package/lib/common/SingleExecutor.d.ts +3 -0
  26. package/lib/common/SingleExecutor.d.ts.map +1 -0
  27. package/lib/common/SingleExecutor.js +31 -0
  28. package/lib/common/TypedEventEmitter.d.ts +22 -0
  29. package/lib/common/TypedEventEmitter.d.ts.map +1 -0
  30. package/lib/common/TypedEventEmitter.js +11 -0
  31. package/lib/common/callEventReports.d.ts.map +1 -0
  32. package/lib/common/logger.d.ts +3 -9
  33. package/lib/common/logger.d.ts.map +1 -1
  34. package/lib/common/logger.js +58 -141
  35. package/lib/common/types.d.ts +2 -14
  36. package/lib/common/types.d.ts.map +1 -1
  37. package/lib/common/utils.d.ts +1 -0
  38. package/lib/common/utils.d.ts.map +1 -1
  39. package/lib/common/utils.js +6 -1
  40. package/lib/index.d.ts +8 -19
  41. package/lib/index.d.ts.map +1 -1
  42. package/lib/index.js +7 -2
  43. package/package.json +1 -1
  44. package/src/ObservedCall.ts +201 -0
  45. package/src/ObservedClient.ts +681 -0
  46. package/src/ObservedInboundTrack.ts +238 -0
  47. package/src/ObservedOutboundTrack.ts +205 -0
  48. package/src/ObservedPeerConnection.ts +249 -0
  49. package/src/Observer.ts +86 -442
  50. package/src/{sinks/ObserverSink.ts → ReportsCollector.ts} +29 -94
  51. package/src/common/ReportsCollector.ts +48 -23
  52. package/src/common/SingleExecutor.ts +36 -0
  53. package/src/common/TypedEventEmitter.ts +32 -0
  54. package/src/common/logger.ts +58 -161
  55. package/src/common/types.ts +4 -24
  56. package/src/common/utils.ts +6 -0
  57. package/src/index.ts +12 -23
  58. package/lib/Evaluator.d.ts +0 -43
  59. package/lib/Evaluator.d.ts.map +0 -1
  60. package/lib/Evaluator.js +0 -171
  61. package/lib/common/Semaphore.d.ts +0 -31
  62. package/lib/common/Semaphore.d.ts.map +0 -1
  63. package/lib/common/Semaphore.js +0 -16
  64. package/lib/entries/CallEntry.d.ts +0 -619
  65. package/lib/entries/CallEntry.d.ts.map +0 -1
  66. package/lib/entries/CallEntry.js +0 -75
  67. package/lib/entries/ClientEntry.d.ts +0 -478
  68. package/lib/entries/ClientEntry.d.ts.map +0 -1
  69. package/lib/entries/ClientEntry.js +0 -114
  70. package/lib/entries/InboundTrackEntry.d.ts +0 -682
  71. package/lib/entries/InboundTrackEntry.d.ts.map +0 -1
  72. package/lib/entries/InboundTrackEntry.js +0 -76
  73. package/lib/entries/OutboundTrackEntry.d.ts +0 -682
  74. package/lib/entries/OutboundTrackEntry.d.ts.map +0 -1
  75. package/lib/entries/OutboundTrackEntry.js +0 -73
  76. package/lib/entries/PeerConnectionEntry.d.ts +0 -505
  77. package/lib/entries/PeerConnectionEntry.d.ts.map +0 -1
  78. package/lib/entries/PeerConnectionEntry.js +0 -144
  79. package/lib/entries/SfuEntry.d.ts +0 -150
  80. package/lib/entries/SfuEntry.d.ts.map +0 -1
  81. package/lib/entries/SfuEntry.js +0 -77
  82. package/lib/entries/SfuInboundRtpPadEntry.d.ts +0 -14
  83. package/lib/entries/SfuInboundRtpPadEntry.d.ts.map +0 -1
  84. package/lib/entries/SfuInboundRtpPadEntry.js +0 -49
  85. package/lib/entries/SfuOutboundRtpPadEntry.d.ts +0 -14
  86. package/lib/entries/SfuOutboundRtpPadEntry.d.ts.map +0 -1
  87. package/lib/entries/SfuOutboundRtpPadEntry.js +0 -47
  88. package/lib/entries/SfuSctpChannelEntry.d.ts +0 -12
  89. package/lib/entries/SfuSctpChannelEntry.d.ts.map +0 -1
  90. package/lib/entries/SfuSctpChannelEntry.js +0 -43
  91. package/lib/entries/SfuTransportEntry.d.ts +0 -82
  92. package/lib/entries/SfuTransportEntry.d.ts.map +0 -1
  93. package/lib/entries/SfuTransportEntry.js +0 -122
  94. package/lib/evaluators/SetClientsCoordinateEvaluator.d.ts +0 -9
  95. package/lib/evaluators/SetClientsCoordinateEvaluator.d.ts.map +0 -1
  96. package/lib/evaluators/SetClientsCoordinateEvaluator.js +0 -95
  97. package/lib/middlewares/CallOperationsContext.d.ts +0 -18
  98. package/lib/middlewares/CallOperationsContext.d.ts.map +0 -1
  99. package/lib/middlewares/CallOperationsContext.js +0 -27
  100. package/lib/middlewares/CallProcessor.d.ts +0 -6
  101. package/lib/middlewares/CallProcessor.d.ts.map +0 -1
  102. package/lib/middlewares/CallProcessor.js +0 -36
  103. package/lib/middlewares/CommitTransactionMiddleware.d.ts +0 -6
  104. package/lib/middlewares/CommitTransactionMiddleware.d.ts.map +0 -1
  105. package/lib/middlewares/CommitTransactionMiddleware.js +0 -179
  106. package/lib/middlewares/DeleteOutdatedCallEntries.d.ts +0 -6
  107. package/lib/middlewares/DeleteOutdatedCallEntries.d.ts.map +0 -1
  108. package/lib/middlewares/DeleteOutdatedCallEntries.js +0 -121
  109. package/lib/middlewares/DeleteOutdatedSfuEntries.d.ts +0 -6
  110. package/lib/middlewares/DeleteOutdatedSfuEntries.d.ts.map +0 -1
  111. package/lib/middlewares/DeleteOutdatedSfuEntries.js +0 -127
  112. package/lib/middlewares/Middleware.d.ts +0 -3
  113. package/lib/middlewares/Middleware.d.ts.map +0 -1
  114. package/lib/middlewares/Middleware.js +0 -21
  115. package/lib/middlewares/Processor.d.ts +0 -9
  116. package/lib/middlewares/Processor.d.ts.map +0 -1
  117. package/lib/middlewares/Processor.js +0 -54
  118. package/lib/middlewares/TransactionContext.d.ts +0 -35
  119. package/lib/middlewares/TransactionContext.d.ts.map +0 -1
  120. package/lib/middlewares/TransactionContext.js +0 -90
  121. package/lib/middlewares/TransactoinProcessor.d.ts +0 -6
  122. package/lib/middlewares/TransactoinProcessor.d.ts.map +0 -1
  123. package/lib/middlewares/TransactoinProcessor.js +0 -17
  124. package/lib/middlewares/VisitObservedCallsMiddleware.d.ts +0 -7
  125. package/lib/middlewares/VisitObservedCallsMiddleware.d.ts.map +0 -1
  126. package/lib/middlewares/VisitObservedCallsMiddleware.js +0 -96
  127. package/lib/middlewares/VisitObservedSfusMiddleware.d.ts +0 -6
  128. package/lib/middlewares/VisitObservedSfusMiddleware.d.ts.map +0 -1
  129. package/lib/middlewares/VisitObservedSfusMiddleware.js +0 -151
  130. package/lib/middlewares/visitors/visitClient.d.ts +0 -5
  131. package/lib/middlewares/visitors/visitClient.d.ts.map +0 -1
  132. package/lib/middlewares/visitors/visitClient.js +0 -174
  133. package/lib/middlewares/visitors/visitInboundAudioTrack.d.ts +0 -5
  134. package/lib/middlewares/visitors/visitInboundAudioTrack.d.ts.map +0 -1
  135. package/lib/middlewares/visitors/visitInboundAudioTrack.js +0 -93
  136. package/lib/middlewares/visitors/visitInboundVideoTrack.d.ts +0 -5
  137. package/lib/middlewares/visitors/visitInboundVideoTrack.d.ts.map +0 -1
  138. package/lib/middlewares/visitors/visitInboundVideoTrack.js +0 -94
  139. package/lib/middlewares/visitors/visitOutboundAudioTrack.d.ts +0 -5
  140. package/lib/middlewares/visitors/visitOutboundAudioTrack.d.ts.map +0 -1
  141. package/lib/middlewares/visitors/visitOutboundAudioTrack.js +0 -90
  142. package/lib/middlewares/visitors/visitOutboundVideoTarck.d.ts +0 -5
  143. package/lib/middlewares/visitors/visitOutboundVideoTarck.d.ts.map +0 -1
  144. package/lib/middlewares/visitors/visitOutboundVideoTarck.js +0 -90
  145. package/lib/middlewares/visitors/visitPeerConnection.d.ts +0 -5
  146. package/lib/middlewares/visitors/visitPeerConnection.d.ts.map +0 -1
  147. package/lib/middlewares/visitors/visitPeerConnection.js +0 -111
  148. package/lib/middlewares/visitors/visitSfu.d.ts +0 -5
  149. package/lib/middlewares/visitors/visitSfu.d.ts.map +0 -1
  150. package/lib/middlewares/visitors/visitSfu.js +0 -78
  151. package/lib/middlewares/visitors/visitSfuInboundRtpPad.d.ts +0 -5
  152. package/lib/middlewares/visitors/visitSfuInboundRtpPad.d.ts.map +0 -1
  153. package/lib/middlewares/visitors/visitSfuInboundRtpPad.js +0 -56
  154. package/lib/middlewares/visitors/visitSfuOutboundRtpPad.d.ts +0 -5
  155. package/lib/middlewares/visitors/visitSfuOutboundRtpPad.d.ts.map +0 -1
  156. package/lib/middlewares/visitors/visitSfuOutboundRtpPad.js +0 -56
  157. package/lib/middlewares/visitors/visitSfuSctpChannel.d.ts +0 -5
  158. package/lib/middlewares/visitors/visitSfuSctpChannel.d.ts.map +0 -1
  159. package/lib/middlewares/visitors/visitSfuSctpChannel.js +0 -55
  160. package/lib/middlewares/visitors/visitSfuTransport.d.ts +0 -5
  161. package/lib/middlewares/visitors/visitSfuTransport.d.ts.map +0 -1
  162. package/lib/middlewares/visitors/visitSfuTransport.js +0 -56
  163. package/lib/processes/closePeerConnectionProcess.d.ts +0 -10
  164. package/lib/processes/closePeerConnectionProcess.d.ts.map +0 -1
  165. package/lib/processes/closePeerConnectionProcess.js +0 -51
  166. package/lib/processes/detachClientProcess.d.ts +0 -14
  167. package/lib/processes/detachClientProcess.d.ts.map +0 -1
  168. package/lib/processes/detachClientProcess.js +0 -106
  169. package/lib/processes/findRemoteMatches.d.ts +0 -9
  170. package/lib/processes/findRemoteMatches.d.ts.map +0 -1
  171. package/lib/processes/findRemoteMatches.js +0 -96
  172. package/lib/processes/inboundTrackRemoved.d.ts +0 -9
  173. package/lib/processes/inboundTrackRemoved.d.ts.map +0 -1
  174. package/lib/processes/inboundTrackRemoved.js +0 -22
  175. package/lib/processes/joinClientProcess.d.ts +0 -11
  176. package/lib/processes/joinClientProcess.d.ts.map +0 -1
  177. package/lib/processes/joinClientProcess.js +0 -120
  178. package/lib/processes/outboundTrackRemoved.d.ts +0 -9
  179. package/lib/processes/outboundTrackRemoved.d.ts.map +0 -1
  180. package/lib/processes/outboundTrackRemoved.js +0 -22
  181. package/lib/samples/ObservedCall.d.ts +0 -17
  182. package/lib/samples/ObservedCall.d.ts.map +0 -1
  183. package/lib/samples/ObservedCall.js +0 -29
  184. package/lib/samples/ObservedCalls.d.ts +0 -19
  185. package/lib/samples/ObservedCalls.d.ts.map +0 -1
  186. package/lib/samples/ObservedCalls.js +0 -113
  187. package/lib/samples/ObservedClient.d.ts +0 -28
  188. package/lib/samples/ObservedClient.d.ts.map +0 -1
  189. package/lib/samples/ObservedClient.js +0 -110
  190. package/lib/samples/ObservedInboundAudioTrack.d.ts +0 -17
  191. package/lib/samples/ObservedInboundAudioTrack.d.ts.map +0 -1
  192. package/lib/samples/ObservedInboundAudioTrack.js +0 -17
  193. package/lib/samples/ObservedInboundVideoTrack.d.ts +0 -17
  194. package/lib/samples/ObservedInboundVideoTrack.d.ts.map +0 -1
  195. package/lib/samples/ObservedInboundVideoTrack.js +0 -17
  196. package/lib/samples/ObservedOutboundAudioTrack.d.ts +0 -16
  197. package/lib/samples/ObservedOutboundAudioTrack.d.ts.map +0 -1
  198. package/lib/samples/ObservedOutboundAudioTrack.js +0 -17
  199. package/lib/samples/ObservedOutboundVideoTrack.d.ts +0 -16
  200. package/lib/samples/ObservedOutboundVideoTrack.d.ts.map +0 -1
  201. package/lib/samples/ObservedOutboundVideoTrack.js +0 -17
  202. package/lib/samples/ObservedPeerConnection.d.ts +0 -47
  203. package/lib/samples/ObservedPeerConnection.d.ts.map +0 -1
  204. package/lib/samples/ObservedPeerConnection.js +0 -130
  205. package/lib/samples/ObservedSfu.d.ts +0 -27
  206. package/lib/samples/ObservedSfu.d.ts.map +0 -1
  207. package/lib/samples/ObservedSfu.js +0 -65
  208. package/lib/samples/ObservedSfuInboundRtpPad.d.ts +0 -15
  209. package/lib/samples/ObservedSfuInboundRtpPad.d.ts.map +0 -1
  210. package/lib/samples/ObservedSfuInboundRtpPad.js +0 -17
  211. package/lib/samples/ObservedSfuOutboundRtpPad.d.ts +0 -15
  212. package/lib/samples/ObservedSfuOutboundRtpPad.d.ts.map +0 -1
  213. package/lib/samples/ObservedSfuOutboundRtpPad.js +0 -17
  214. package/lib/samples/ObservedSfuSctpChannel.d.ts +0 -15
  215. package/lib/samples/ObservedSfuSctpChannel.d.ts.map +0 -1
  216. package/lib/samples/ObservedSfuSctpChannel.js +0 -17
  217. package/lib/samples/ObservedSfuTransport.d.ts +0 -30
  218. package/lib/samples/ObservedSfuTransport.d.ts.map +0 -1
  219. package/lib/samples/ObservedSfuTransport.js +0 -86
  220. package/lib/samples/ObservedSfus.d.ts +0 -16
  221. package/lib/samples/ObservedSfus.d.ts.map +0 -1
  222. package/lib/samples/ObservedSfus.js +0 -72
  223. package/lib/sinks/ObserverSink.d.ts.map +0 -1
  224. package/lib/sinks/callEventReports.d.ts.map +0 -1
  225. package/lib/sources/ObservedCallSource.d.ts +0 -18
  226. package/lib/sources/ObservedCallSource.d.ts.map +0 -1
  227. package/lib/sources/ObservedCallSource.js +0 -2
  228. package/lib/sources/ObservedClientSource.d.ts +0 -19
  229. package/lib/sources/ObservedClientSource.d.ts.map +0 -1
  230. package/lib/sources/ObservedClientSource.js +0 -2
  231. package/lib/sources/ObservedSfuSource.d.ts +0 -15
  232. package/lib/sources/ObservedSfuSource.d.ts.map +0 -1
  233. package/lib/sources/ObservedSfuSource.js +0 -2
  234. package/lib/sources/Sources.d.ts +0 -47
  235. package/lib/sources/Sources.d.ts.map +0 -1
  236. package/lib/sources/Sources.js +0 -211
  237. package/src/Evaluator.ts +0 -229
  238. package/src/common/Semaphore.ts +0 -45
  239. package/src/entries/CallEntry.ts +0 -62
  240. package/src/entries/ClientEntry.ts +0 -106
  241. package/src/entries/InboundTrackEntry.ts +0 -74
  242. package/src/entries/OutboundTrackEntry.ts +0 -72
  243. package/src/entries/PeerConnectionEntry.ts +0 -133
  244. package/src/entries/SfuEntry.ts +0 -62
  245. package/src/entries/SfuInboundRtpPadEntry.ts +0 -46
  246. package/src/entries/SfuOutboundRtpPadEntry.ts +0 -44
  247. package/src/entries/SfuSctpChannelEntry.ts +0 -39
  248. package/src/entries/SfuTransportEntry.ts +0 -109
  249. package/src/evaluators/SetClientsCoordinateEvaluator.ts +0 -78
  250. package/src/middlewares/CallOperationsContext.ts +0 -56
  251. package/src/middlewares/CallProcessor.ts +0 -38
  252. package/src/middlewares/CommitTransactionMiddleware.ts +0 -328
  253. package/src/middlewares/DeleteOutdatedCallEntries.ts +0 -159
  254. package/src/middlewares/DeleteOutdatedSfuEntries.ts +0 -168
  255. package/src/middlewares/Middleware.ts +0 -10
  256. package/src/middlewares/Processor.ts +0 -59
  257. package/src/middlewares/TransactionContext.ts +0 -176
  258. package/src/middlewares/TransactoinProcessor.ts +0 -28
  259. package/src/middlewares/VisitObservedCallsMiddleware.ts +0 -172
  260. package/src/middlewares/VisitObservedSfusMiddleware.ts +0 -203
  261. package/src/middlewares/visitors/visitClient.ts +0 -239
  262. package/src/middlewares/visitors/visitInboundAudioTrack.ts +0 -113
  263. package/src/middlewares/visitors/visitInboundVideoTrack.ts +0 -117
  264. package/src/middlewares/visitors/visitOutboundAudioTrack.ts +0 -100
  265. package/src/middlewares/visitors/visitOutboundVideoTarck.ts +0 -102
  266. package/src/middlewares/visitors/visitPeerConnection.ts +0 -151
  267. package/src/middlewares/visitors/visitSfu.ts +0 -70
  268. package/src/middlewares/visitors/visitSfuInboundRtpPad.ts +0 -52
  269. package/src/middlewares/visitors/visitSfuOutboundRtpPad.ts +0 -53
  270. package/src/middlewares/visitors/visitSfuSctpChannel.ts +0 -50
  271. package/src/middlewares/visitors/visitSfuTransport.ts +0 -50
  272. package/src/processes/closePeerConnectionProcess.ts +0 -54
  273. package/src/processes/detachClientProcess.ts +0 -136
  274. package/src/processes/findRemoteMatches.ts +0 -104
  275. package/src/processes/inboundTrackRemoved.ts +0 -22
  276. package/src/processes/joinClientProcess.ts +0 -138
  277. package/src/processes/outboundTrackRemoved.ts +0 -22
  278. package/src/samples/ObservedCall.ts +0 -49
  279. package/src/samples/ObservedCalls.ts +0 -143
  280. package/src/samples/ObservedClient.ts +0 -172
  281. package/src/samples/ObservedInboundAudioTrack.ts +0 -35
  282. package/src/samples/ObservedInboundVideoTrack.ts +0 -36
  283. package/src/samples/ObservedOutboundAudioTrack.ts +0 -35
  284. package/src/samples/ObservedOutboundVideoTrack.ts +0 -35
  285. package/src/samples/ObservedPeerConnection.ts +0 -227
  286. package/src/samples/ObservedSfu.ts +0 -115
  287. package/src/samples/ObservedSfuInboundRtpPad.ts +0 -35
  288. package/src/samples/ObservedSfuOutboundRtpPad.ts +0 -35
  289. package/src/samples/ObservedSfuSctpChannel.ts +0 -35
  290. package/src/samples/ObservedSfuTransport.ts +0 -142
  291. package/src/samples/ObservedSfus.ts +0 -95
  292. package/src/sources/ObservedCallSource.ts +0 -26
  293. package/src/sources/ObservedClientSource.ts +0 -28
  294. package/src/sources/ObservedSfuSource.ts +0 -19
  295. package/src/sources/Sources.ts +0 -294
  296. /package/lib/{sinks → common}/callEventReports.d.ts +0 -0
  297. /package/lib/{sinks → common}/callEventReports.js +0 -0
  298. /package/src/{sinks → common}/callEventReports.ts +0 -0
@@ -1,100 +0,0 @@
1
- /* eslint-disable camelcase */
2
- import * as Models from '../../models/Models';
3
- import { ReportsCollector } from '../../common/ReportsCollector';
4
- import { ObservedOutboundAudioTrack } from '../../samples/ObservedOutboundAudioTrack';
5
- import { OutboundAudioTrackReport } from '@observertc/report-schemas-js';
6
- import { logger } from '../VisitObservedCallsMiddleware';
7
- import { Samples_ClientSample_OutboundAudioTrack } from '../../models/samples_pb';
8
-
9
- export function visitOutboundAudioTrack(
10
- observedOutboundAudioTrack: ObservedOutboundAudioTrack,
11
- storedPeerConnection: Models.PeerConnection,
12
- storedOutboundTracks: Map<string, Models.OutboundTrack>,
13
- reports: ReportsCollector,
14
- fetchSamples: boolean
15
- ) {
16
- const { trackId, sfuStreamId } = observedOutboundAudioTrack;
17
-
18
- const { peerConnectionId } = observedOutboundAudioTrack.peerConnection;
19
-
20
- const {
21
- mediaUnitId,
22
- clientId,
23
- userId,
24
- marker,
25
- minTimestamp: timestamp,
26
- } = observedOutboundAudioTrack.peerConnection.client;
27
-
28
- const { serviceId, roomId, callId } = observedOutboundAudioTrack.peerConnection.client.call;
29
-
30
- let storedOutboundAudioTrack = storedOutboundTracks.get(trackId);
31
-
32
- if (!storedOutboundAudioTrack) {
33
- storedOutboundAudioTrack = new Models.OutboundTrack({
34
- serviceId,
35
- roomId,
36
- callId,
37
- clientId,
38
- kind: 'audio',
39
- peerConnectionId,
40
- mediaUnitId,
41
- trackId,
42
-
43
- sfuStreamId,
44
- userId,
45
- marker,
46
- });
47
- storedOutboundTracks.set(trackId, storedOutboundAudioTrack);
48
- if (!storedPeerConnection.outboundTrackIds.find((tId) => tId === trackId)) {
49
- storedPeerConnection.outboundTrackIds.push(trackId);
50
- } else {
51
- logger.warn(
52
- `Attempted to add trackId to storedPeerConnection twice. serviceId: ${serviceId}, callId: ${callId}, clientId: ${clientId}, pcId: ${peerConnectionId}`
53
- );
54
- }
55
- }
56
-
57
- const statsMap = new Map<bigint, Samples_ClientSample_OutboundAudioTrack>();
58
-
59
- for (const outboundAudioSample of observedOutboundAudioTrack.samples()) {
60
- const report: OutboundAudioTrackReport = {
61
- serviceId,
62
- roomId,
63
- callId,
64
- clientId,
65
- userId,
66
- mediaUnitId,
67
- peerConnectionId,
68
- ...outboundAudioSample,
69
- timestamp,
70
- sampleSeq: -1,
71
- };
72
-
73
- reports.addOutboundAudioTrackReport(report);
74
-
75
- if (fetchSamples) {
76
- const {
77
- ssrc: sample_ssrc,
78
- bytesSent: sample_bytesSent,
79
- headerBytesSent: samples_headerBytesSent,
80
- retransmittedBytesSent: samples_retransmittedBytesSent,
81
- totalEncodedBytesTarget: samples_totalEncodedBytesTarget,
82
- ...sample
83
- } = outboundAudioSample;
84
-
85
- const ssrc = BigInt(sample_ssrc);
86
- const audioStats = new Samples_ClientSample_OutboundAudioTrack({
87
- ssrc,
88
- bytesSent: BigInt(sample_bytesSent ?? -1),
89
- headerBytesSent: BigInt(samples_headerBytesSent ?? -1),
90
- retransmittedBytesSent: BigInt(samples_retransmittedBytesSent ?? -1),
91
- totalEncodedBytesTarget: BigInt(samples_totalEncodedBytesTarget ?? -1),
92
- ...sample,
93
- });
94
-
95
- statsMap.set(ssrc, audioStats);
96
- }
97
- }
98
- storedOutboundAudioTrack.ssrc = [ ...statsMap.keys() ];
99
- storedOutboundAudioTrack.audioStats = Array.from(statsMap.values());
100
- }
@@ -1,102 +0,0 @@
1
- /* eslint-disable camelcase */
2
- import * as Models from '../../models/Models';
3
- import { ReportsCollector } from '../../common/ReportsCollector';
4
- import { ObservedOutboundVideoTrack } from '../../samples/ObservedOutboundVideoTrack';
5
- import { OutboundVideoTrackReport } from '@observertc/report-schemas-js';
6
- import { logger } from '../VisitObservedCallsMiddleware';
7
- import { Samples_ClientSample_OutboundVideoTrack } from '../../models/samples_pb';
8
-
9
- export function visitOutboundVideoTrack(
10
- observedOutboundVideoTrack: ObservedOutboundVideoTrack,
11
- storedPeerConnection: Models.PeerConnection,
12
- storedOutboundTracks: Map<string, Models.OutboundTrack>,
13
- reports: ReportsCollector,
14
- fetchSamples: boolean
15
- ) {
16
- const { trackId, sfuStreamId } = observedOutboundVideoTrack;
17
-
18
- const { peerConnectionId } = observedOutboundVideoTrack.peerConnection;
19
-
20
- const {
21
- mediaUnitId,
22
- clientId,
23
- userId,
24
- marker,
25
- minTimestamp: timestamp,
26
- } = observedOutboundVideoTrack.peerConnection.client;
27
-
28
- const { serviceId, roomId, callId } = observedOutboundVideoTrack.peerConnection.client.call;
29
-
30
- let storedOutboundVideoTrack = storedOutboundTracks.get(trackId);
31
-
32
- if (!storedOutboundVideoTrack) {
33
- storedOutboundVideoTrack = new Models.OutboundTrack({
34
- serviceId,
35
- roomId,
36
- callId,
37
- clientId,
38
- kind: 'video',
39
- peerConnectionId,
40
- mediaUnitId,
41
- trackId,
42
-
43
- sfuStreamId,
44
- userId,
45
- marker,
46
- });
47
- storedOutboundTracks.set(trackId, storedOutboundVideoTrack);
48
- if (!storedPeerConnection.outboundTrackIds.find((tId) => tId === trackId)) {
49
- storedPeerConnection.outboundTrackIds.push(trackId);
50
- } else {
51
- logger.warn(
52
- `Attempted to add trackId to storedPeerConnection twice. serviceId: ${serviceId}, callId: ${callId}, clientId: ${clientId}, pcId: ${peerConnectionId}`
53
- );
54
- }
55
- }
56
-
57
- const statsMap = new Map<bigint, Samples_ClientSample_OutboundVideoTrack>();
58
-
59
- for (const outboundVideoSample of observedOutboundVideoTrack.samples()) {
60
- const report: OutboundVideoTrackReport = {
61
- serviceId,
62
- roomId,
63
- callId,
64
- clientId,
65
- userId,
66
- mediaUnitId,
67
- peerConnectionId,
68
- ...outboundVideoSample,
69
- timestamp,
70
- sampleSeq: -1,
71
- };
72
-
73
- reports.addOutboundVideoTrackReport(report);
74
-
75
- if (fetchSamples) {
76
- const {
77
- ssrc: sample_ssrc,
78
- bytesSent: sample_bytesSent,
79
- headerBytesSent: samples_headerBytesSent,
80
- qpSum: samples_qpSum,
81
- retransmittedBytesSent: samples_retransmittedBytesSent,
82
- totalEncodedBytesTarget: samples_totalEncodedBytesTarget,
83
- ...sample
84
- } = outboundVideoSample;
85
-
86
- const ssrc = BigInt(sample_ssrc);
87
- const videoStats = new Samples_ClientSample_OutboundVideoTrack({
88
- ssrc,
89
- bytesSent: BigInt(sample_bytesSent ?? -1),
90
- headerBytesSent: BigInt(samples_headerBytesSent ?? -1),
91
- retransmittedBytesSent: BigInt(samples_retransmittedBytesSent ?? -1),
92
- totalEncodedBytesTarget: BigInt(samples_totalEncodedBytesTarget ?? -1),
93
- qpSum: BigInt(samples_qpSum ?? -1),
94
- ...sample,
95
- });
96
-
97
- statsMap.set(ssrc, videoStats);
98
- }
99
- }
100
- storedOutboundVideoTrack.ssrc = [ ...statsMap.keys() ];
101
- storedOutboundVideoTrack.videoStats = Array.from(statsMap.values());
102
- }
@@ -1,151 +0,0 @@
1
- /* eslint-disable camelcase */
2
- import { ObservedPeerConnection } from '../../samples/ObservedPeerConnection';
3
- import * as Models from '../../models/Models';
4
- import { ReportsCollector } from '../../common/ReportsCollector';
5
- import { logger } from '../VisitObservedCallsMiddleware';
6
- import { IceCandidatePairReport, PeerConnectionTransportReport } from '@observertc/report-schemas-js';
7
- import {
8
- Samples_ClientSample_IceCandidatePair,
9
- Samples_ClientSample_IceLocalCandidate,
10
- Samples_ClientSample_IceRemoteCandidate,
11
- Samples_ClientSample_PeerConnectionTransport
12
- } from '../../models/samples_pb';
13
-
14
- export function visitPeerConnection(
15
- observedPeerConnection: ObservedPeerConnection,
16
- storedClient: Models.Client,
17
- storedPeerConnections: Map<string, Models.PeerConnection>,
18
- reports: ReportsCollector,
19
- fetchSamples: boolean
20
- ) {
21
- const { peerConnectionLabel, peerConnectionId } = observedPeerConnection;
22
-
23
- const { mediaUnitId, clientId, userId, marker, minTimestamp: timestamp } = observedPeerConnection.client;
24
-
25
- const { serviceId, roomId, callId } = observedPeerConnection.client.call;
26
-
27
- let storedPeerConnection = storedPeerConnections.get(peerConnectionId);
28
-
29
- if (!storedPeerConnection) {
30
- storedPeerConnection = new Models.PeerConnection({
31
- serviceId,
32
- roomId,
33
- callId,
34
- clientId,
35
- peerConnectionId,
36
- mediaUnitId,
37
-
38
- // opened
39
- userId,
40
- marker,
41
- label: peerConnectionLabel,
42
- });
43
- storedPeerConnections.set(peerConnectionId, storedPeerConnection);
44
- if (!storedClient.peerConnectionIds.find((pcId) => pcId === peerConnectionId)) {
45
- storedClient.peerConnectionIds.push(peerConnectionId);
46
- } else {
47
- logger.warn('');
48
- }
49
- }
50
-
51
- for (const pcTransport of observedPeerConnection.transportSamples()) {
52
- const report: PeerConnectionTransportReport = {
53
- serviceId,
54
- roomId,
55
- callId,
56
- clientId,
57
- userId,
58
- mediaUnitId,
59
- ...pcTransport,
60
- timestamp,
61
- sampleSeq: -1, // deprecated
62
- };
63
-
64
- reports.addPeerConnectionTransportReports(report);
65
- }
66
-
67
- for (const iceCandidatePair of observedPeerConnection.iceCandidatePairs()) {
68
- const report: IceCandidatePairReport = {
69
- serviceId,
70
- roomId,
71
- callId,
72
- userId,
73
- clientId,
74
- mediaUnitId,
75
- ...iceCandidatePair,
76
- timestamp,
77
- sampleSeq: -1, // deprecated
78
- };
79
-
80
- reports.addIceCandidatePairReport(report);
81
- }
82
-
83
- if (!fetchSamples) return;
84
-
85
- // restricted area
86
-
87
- storedPeerConnection.icelocalCandidates = [];
88
- for (const iceLocalCandidate of observedPeerConnection.iceLocalCandidates()) {
89
- const {
90
- priority,
91
- ...sample
92
- } = iceLocalCandidate;
93
-
94
- storedPeerConnection.icelocalCandidates.push(new Samples_ClientSample_IceLocalCandidate({
95
- ...sample,
96
- priority: BigInt(priority ?? -1)
97
- }));
98
- }
99
-
100
- storedPeerConnection.iceRemoteCandidates = [];
101
- for (const iceRemoteCandidate of observedPeerConnection.iceRemoteCandidates()) {
102
- const {
103
- priority,
104
- ...sample
105
- } = iceRemoteCandidate;
106
-
107
- storedPeerConnection.iceRemoteCandidates.push(new Samples_ClientSample_IceRemoteCandidate({
108
- ...sample,
109
- priority: BigInt(priority ?? -1)
110
- }));
111
- }
112
-
113
- storedPeerConnection.iceCandidatePairs = [];
114
- for (const iceCandidatePair of observedPeerConnection.iceCandidatePairs()) {
115
- const {
116
- bytesDiscardedOnSend,
117
- bytesReceived,
118
- bytesSent,
119
- lastPacketReceivedTimestamp,
120
- lastPacketSentTimestamp,
121
- ...sample
122
- } = iceCandidatePair;
123
-
124
- storedPeerConnection.iceCandidatePairs.push(new Samples_ClientSample_IceCandidatePair({
125
- ...sample,
126
- bytesDiscardedOnSend: BigInt(bytesDiscardedOnSend ?? -1),
127
- bytesReceived: BigInt(bytesReceived ?? -1),
128
- bytesSent: BigInt(bytesSent ?? -1),
129
- lastPacketReceivedTimestamp: BigInt(lastPacketReceivedTimestamp ?? -1),
130
- lastPacketSentTimestamp: BigInt(lastPacketSentTimestamp ?? -1),
131
- }));
132
- }
133
-
134
- storedPeerConnection.transports = [];
135
- for (const pcTransport of observedPeerConnection.transportSamples()) {
136
- const {
137
- bytesReceived,
138
- bytesSent,
139
- ...sample
140
- } = pcTransport;
141
-
142
- storedPeerConnection.transports.push(new Samples_ClientSample_PeerConnectionTransport({
143
- ...sample,
144
- bytesReceived: BigInt(bytesReceived ?? -1),
145
- bytesSent: BigInt(bytesSent ?? -1),
146
- }));
147
- }
148
-
149
- // storedPeerConnection.stats = new Models.PeerConnectionStats({
150
- // });
151
- }
@@ -1,70 +0,0 @@
1
- import * as Models from '../../models/Models';
2
- import { ReportsCollector } from '../../common/ReportsCollector';
3
- import { ObservedSfu } from '../../samples/ObservedSfu';
4
-
5
- export function visitSfu(
6
- observedSfu: ObservedSfu,
7
- storedSfus: Map<string, Models.Sfu>,
8
- reports: ReportsCollector,
9
- fetchSamples: boolean
10
- ) {
11
- const { mediaUnitId, serviceId, sfuId, timeZoneId, marker } = observedSfu;
12
- let storedSfu = storedSfus.get(sfuId);
13
-
14
- if (!storedSfu) {
15
- const timestamp = Date.now();
16
-
17
- storedSfu = new Models.Sfu({
18
- serviceId,
19
- sfuId,
20
- joined: BigInt(timestamp),
21
- mediaUnitId,
22
- timeZoneId,
23
- marker,
24
- sfuTransportIds: [],
25
- });
26
- storedSfus.set(sfuId, storedSfu);
27
-
28
- reports.addSfuEventReport({
29
- serviceId,
30
- mediaUnitId,
31
- name: 'SFU_JOINED',
32
- sfuId,
33
- timestamp,
34
- marker,
35
- message: 'SFU is joined',
36
- });
37
- }
38
-
39
- for (const sfuSample of observedSfu.samples()) {
40
-
41
- if (sfuSample.customSfuEvents) {
42
- for (const sfuEvent of sfuSample.customSfuEvents) {
43
- reports.addSfuEventReport({
44
- serviceId,
45
- mediaUnitId,
46
- sfuId,
47
- timestamp: Date.now(),
48
- ...sfuEvent,
49
- });
50
- }
51
- }
52
-
53
- if (sfuSample.extensionStats) {
54
- for (const extensionStats of sfuSample.extensionStats) {
55
- reports.addSfuExtensionReport({
56
- serviceId,
57
- mediaUnitId,
58
- sfuId,
59
- timestamp: Date.now(),
60
- payload: extensionStats.payload,
61
- extensionType: extensionStats.type,
62
- });
63
- }
64
- }
65
-
66
- if (fetchSamples) {
67
- // empty
68
- }
69
- }
70
- }
@@ -1,52 +0,0 @@
1
- import * as Models from '../../models/Models';
2
- import { ReportsCollector } from '../../common/ReportsCollector';
3
- import { SfuInboundRtpPadReport } from '@observertc/report-schemas-js';
4
- import { ObservedSfuInboundRtpPad } from '../../samples/ObservedSfuInboundRtpPad';
5
-
6
- export function visitSfuInboundRtpPad(
7
- observedSfuInboundRtpPad: ObservedSfuInboundRtpPad,
8
- storedSfuTransport: Models.SfuTransport,
9
- storedSfuInboundRtpPads: Map<string, Models.SfuInboundRtpPad>,
10
- reports: ReportsCollector,
11
- fetchSamples: boolean
12
- ) {
13
- const { padId: rtpPadId } = observedSfuInboundRtpPad;
14
-
15
- const { transportId: sfuTransportId } = observedSfuInboundRtpPad.sfuTransport;
16
-
17
- const { serviceId, sfuId, mediaUnitId, marker, minTimestamp: timestamp } = observedSfuInboundRtpPad.sfuTransport.sfu;
18
-
19
- let storedSfuInboundRtpPad = storedSfuInboundRtpPads.get(rtpPadId);
20
-
21
- if (!storedSfuInboundRtpPad) {
22
- storedSfuInboundRtpPad = new Models.SfuInboundRtpPad({
23
- serviceId,
24
- sfuId,
25
- mediaUnitId,
26
- sfuTransportId,
27
- added: BigInt(Date.now()),
28
- marker,
29
- });
30
- storedSfuInboundRtpPads.set(rtpPadId, storedSfuInboundRtpPad);
31
-
32
- storedSfuTransport.inboundRtpPadIds.push(rtpPadId);
33
- }
34
-
35
- for (const sfuInboundRtpPad of observedSfuInboundRtpPad.samples()) {
36
- const report: SfuInboundRtpPadReport = {
37
- serviceId,
38
- sfuId,
39
- mediaUnitId,
40
- rtpPadId,
41
- ...sfuInboundRtpPad,
42
- sfuStreamId: sfuInboundRtpPad.streamId,
43
- timestamp,
44
- };
45
-
46
- reports.addSfuTransportReport(report);
47
- }
48
-
49
- if (fetchSamples) {
50
- // empty
51
- }
52
- }
@@ -1,53 +0,0 @@
1
- import * as Models from '../../models/Models';
2
- import { ReportsCollector } from '../../common/ReportsCollector';
3
- import { SfuOutboundRtpPadReport } from '@observertc/report-schemas-js';
4
- import { ObservedSfuOutboundRtpPad } from '../../samples/ObservedSfuOutboundRtpPad';
5
-
6
- export function visitSfuOutboundRtpPad(
7
- observedSfuOutboundRtpPad: ObservedSfuOutboundRtpPad,
8
- storedSfuTransport: Models.SfuTransport,
9
- storedSfuOutboundRtpPads: Map<string, Models.SfuOutboundRtpPad>,
10
- reports: ReportsCollector,
11
- fetchSamples: boolean
12
- ) {
13
- const { padId: rtpPadId } = observedSfuOutboundRtpPad;
14
-
15
- const { transportId: sfuTransportId } = observedSfuOutboundRtpPad.sfuTransport;
16
-
17
- const { serviceId, sfuId, mediaUnitId, marker, minTimestamp: timestamp } = observedSfuOutboundRtpPad.sfuTransport.sfu;
18
-
19
- let storedSfuOutboundRtpPad = storedSfuOutboundRtpPads.get(rtpPadId);
20
-
21
- if (!storedSfuOutboundRtpPad) {
22
- storedSfuOutboundRtpPad = new Models.SfuOutboundRtpPad({
23
- serviceId,
24
- sfuId,
25
- mediaUnitId,
26
- sfuTransportId,
27
- added: BigInt(Date.now()),
28
- marker,
29
- });
30
- storedSfuOutboundRtpPads.set(rtpPadId, storedSfuOutboundRtpPad);
31
-
32
- storedSfuTransport.outboundRtpPadIds.push(rtpPadId);
33
- }
34
-
35
- for (const sfuOutboundRtpPad of observedSfuOutboundRtpPad.samples()) {
36
- const report: SfuOutboundRtpPadReport = {
37
- serviceId,
38
- sfuId,
39
- mediaUnitId,
40
- rtpPadId,
41
- ...sfuOutboundRtpPad,
42
- sfuStreamId: sfuOutboundRtpPad.streamId,
43
- sfuSinkId: sfuOutboundRtpPad.sinkId,
44
- timestamp,
45
- };
46
-
47
- reports.addSfuTransportReport(report);
48
- }
49
-
50
- if (fetchSamples) {
51
- // empty
52
- }
53
- }
@@ -1,50 +0,0 @@
1
- import * as Models from '../../models/Models';
2
- import { ReportsCollector } from '../../common/ReportsCollector';
3
- import { SfuSctpStreamReport } from '@observertc/report-schemas-js';
4
- import { ObservedSfuSctpChannel } from '../../samples/ObservedSfuSctpChannel';
5
-
6
- export function visitSfuSctpChannel(
7
- observedSfuSctpChannel: ObservedSfuSctpChannel,
8
- storedSfuTransport: Models.SfuTransport,
9
- storedSfuSctpChannels: Map<string, Models.SfuSctpChannel>,
10
- reports: ReportsCollector,
11
- fetchSamples: boolean
12
- ) {
13
- const { channelId } = observedSfuSctpChannel;
14
-
15
- const { transportId: sfuTransportId } = observedSfuSctpChannel.sfuTransport;
16
-
17
- const { serviceId, sfuId, mediaUnitId, marker, minTimestamp: timestamp } = observedSfuSctpChannel.sfuTransport.sfu;
18
-
19
- let storedSfuSctpChannel = storedSfuSctpChannels.get(channelId);
20
-
21
- if (!storedSfuSctpChannel) {
22
- storedSfuSctpChannel = new Models.SfuSctpChannel({
23
- serviceId,
24
- sfuId,
25
- mediaUnitId,
26
- sfuTransportId,
27
- opened: BigInt(Date.now()),
28
- marker,
29
- });
30
- storedSfuSctpChannels.set(channelId, storedSfuSctpChannel);
31
-
32
- storedSfuTransport.sctpChannelIds.push(channelId);
33
- }
34
-
35
- for (const sfuSctpChannel of observedSfuSctpChannel.samples()) {
36
- const report: SfuSctpStreamReport = {
37
- serviceId,
38
- sfuId,
39
- mediaUnitId,
40
- ...sfuSctpChannel,
41
- timestamp,
42
- };
43
-
44
- reports.addSfuTransportReport(report);
45
- }
46
-
47
- if (fetchSamples) {
48
- // empty
49
- }
50
- }
@@ -1,50 +0,0 @@
1
- import * as Models from '../../models/Models';
2
- import { ReportsCollector } from '../../common/ReportsCollector';
3
- import { SFUTransportReport } from '@observertc/report-schemas-js';
4
- import { ObservedSfuTransport } from '../../samples/ObservedSfuTransport';
5
-
6
- export function visitSfuTransport(
7
- observedSfuTransport: ObservedSfuTransport,
8
- storedSfu: Models.Sfu,
9
- storedSfuTransports: Map<string, Models.SfuTransport>,
10
- reports: ReportsCollector,
11
- fetchSamples: boolean
12
- ) {
13
- const { transportId } = observedSfuTransport;
14
-
15
- const { serviceId, sfuId, mediaUnitId, marker, minTimestamp: timestamp } = observedSfuTransport.sfu;
16
-
17
- let storedSfuTransport = storedSfuTransports.get(transportId);
18
-
19
- if (!storedSfuTransport) {
20
- storedSfuTransport = new Models.SfuTransport({
21
- serviceId,
22
- sfuId,
23
- mediaUnitId,
24
- transportId,
25
- opened: BigInt(Date.now()),
26
- marker,
27
- inboundRtpPadIds: [],
28
- outboundRtpPadIds: [],
29
- });
30
- storedSfuTransports.set(transportId, storedSfuTransport);
31
-
32
- storedSfu.sfuTransportIds.push(transportId);
33
- }
34
-
35
- for (const sfuTransport of observedSfuTransport.transportSamples()) {
36
- const report: SFUTransportReport = {
37
- serviceId,
38
- sfuId,
39
- mediaUnitId,
40
- ...sfuTransport,
41
- timestamp,
42
- };
43
-
44
- reports.addSfuTransportReport(report);
45
- }
46
-
47
- if (fetchSamples) {
48
- // empty
49
- }
50
- }
@@ -1,54 +0,0 @@
1
- import { StorageProvider } from '../storages/StorageProvider';
2
- import { createInboundTrackRemoveProcess } from './inboundTrackRemoved';
3
- import { createOutboundTrackRemoveProcess } from './outboundTrackRemoved';
4
-
5
- export type ClosePeerConnectionProcessInput = {
6
- closedPeerConnections: {
7
- peerConnectionId: string;
8
- closed: number;
9
- }[];
10
- recursive: boolean;
11
- };
12
-
13
- export function createClosePeerConnectionProcess(
14
- storageProvider: StorageProvider
15
- ): (input: ClosePeerConnectionProcessInput) => Promise<void> {
16
- const removeInboundTracks = createInboundTrackRemoveProcess(storageProvider);
17
- const removeOutboundTracks = createOutboundTrackRemoveProcess(storageProvider);
18
- const process = async (input: ClosePeerConnectionProcessInput) => {
19
- const { closedPeerConnections, recursive } = input;
20
- const { peerConnectionStorage } = storageProvider;
21
- const peerConnectionIds = closedPeerConnections.map((c) => c.peerConnectionId);
22
- const peerConnections = await peerConnectionStorage.getAll(peerConnectionIds);
23
-
24
- await peerConnectionStorage.removeAll(peerConnectionIds);
25
-
26
- if (recursive) {
27
- const inboundTrackIds = Array.from(peerConnections.values())
28
- .flatMap((pc) => pc.inboundTrackIds)
29
- .map((trackId) => {
30
- return {
31
- trackId,
32
- };
33
- });
34
- const outboundTrackIds = Array.from(peerConnections.values())
35
- .flatMap((pc) => pc.outboundTrackIds)
36
- .map((trackId) => {
37
- return {
38
- trackId,
39
- };
40
- });
41
-
42
- await Promise.all([
43
- removeInboundTracks({
44
- removedTracks: inboundTrackIds,
45
- }),
46
- removeOutboundTracks({
47
- removedTracks: outboundTrackIds,
48
- }),
49
- ]);
50
- }
51
- };
52
-
53
- return process;
54
- }