@webex/internal-media-core 0.0.1-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 (215) hide show
  1. package/README.md +80 -0
  2. package/dist/esm/index.js +12660 -0
  3. package/dist/transpiled/Logger/index.js +41 -0
  4. package/dist/transpiled/Logger/index.js.map +1 -0
  5. package/dist/transpiled/Media/Device/Device.js +21 -0
  6. package/dist/transpiled/Media/Device/Device.js.map +1 -0
  7. package/dist/transpiled/Media/Device/DeviceMocks.js +65 -0
  8. package/dist/transpiled/Media/Device/DeviceMocks.js.map +1 -0
  9. package/dist/transpiled/Media/Device/index.js +2 -0
  10. package/dist/transpiled/Media/Device/index.js.map +1 -0
  11. package/dist/transpiled/Media/Effects/BNR/Bnr.integration-test.js +47 -0
  12. package/dist/transpiled/Media/Effects/BNR/Bnr.integration-test.js.map +1 -0
  13. package/dist/transpiled/Media/Effects/BNR/Bnr.js +187 -0
  14. package/dist/transpiled/Media/Effects/BNR/Bnr.js.map +1 -0
  15. package/dist/transpiled/Media/Effects/BNR/Bnr.test.js +37 -0
  16. package/dist/transpiled/Media/Effects/BNR/Bnr.test.js.map +1 -0
  17. package/dist/transpiled/Media/Effects/BNR/BnrMock.js +92 -0
  18. package/dist/transpiled/Media/Effects/BNR/BnrMock.js.map +1 -0
  19. package/dist/transpiled/Media/Effects/BNR/index.js +2 -0
  20. package/dist/transpiled/Media/Effects/BNR/index.js.map +1 -0
  21. package/dist/transpiled/Media/Media.integration-test.js +40 -0
  22. package/dist/transpiled/Media/Media.integration-test.js.map +1 -0
  23. package/dist/transpiled/Media/Media.test.js +291 -0
  24. package/dist/transpiled/Media/Media.test.js.map +1 -0
  25. package/dist/transpiled/Media/Track/BufferSourceAudioTrack.js +4 -0
  26. package/dist/transpiled/Media/Track/BufferSourceAudioTrack.js.map +1 -0
  27. package/dist/transpiled/Media/Track/CameraVideoTrack.js +4 -0
  28. package/dist/transpiled/Media/Track/CameraVideoTrack.js.map +1 -0
  29. package/dist/transpiled/Media/Track/LocalAudioTrack.js +4 -0
  30. package/dist/transpiled/Media/Track/LocalAudioTrack.js.map +1 -0
  31. package/dist/transpiled/Media/Track/LocalTrack.js +4 -0
  32. package/dist/transpiled/Media/Track/LocalTrack.js.map +1 -0
  33. package/dist/transpiled/Media/Track/LocalVideoTrack.js +4 -0
  34. package/dist/transpiled/Media/Track/LocalVideoTrack.js.map +1 -0
  35. package/dist/transpiled/Media/Track/MicrophoneAudioTrack.js +4 -0
  36. package/dist/transpiled/Media/Track/MicrophoneAudioTrack.js.map +1 -0
  37. package/dist/transpiled/Media/Track/RemoteAudioTrack.js +4 -0
  38. package/dist/transpiled/Media/Track/RemoteAudioTrack.js.map +1 -0
  39. package/dist/transpiled/Media/Track/RemoteTrack.js +4 -0
  40. package/dist/transpiled/Media/Track/RemoteTrack.js.map +1 -0
  41. package/dist/transpiled/Media/Track/RemoteVideoTrack.js +4 -0
  42. package/dist/transpiled/Media/Track/RemoteVideoTrack.js.map +1 -0
  43. package/dist/transpiled/Media/Track/Track.integration-test.js +118 -0
  44. package/dist/transpiled/Media/Track/Track.integration-test.js.map +1 -0
  45. package/dist/transpiled/Media/Track/Track.js +120 -0
  46. package/dist/transpiled/Media/Track/Track.js.map +1 -0
  47. package/dist/transpiled/Media/Track/Track.test.js +26 -0
  48. package/dist/transpiled/Media/Track/Track.test.js.map +1 -0
  49. package/dist/transpiled/Media/Track/TrackMock.js +109 -0
  50. package/dist/transpiled/Media/Track/TrackMock.js.map +1 -0
  51. package/dist/transpiled/Media/Track/Utils.js +31 -0
  52. package/dist/transpiled/Media/Track/Utils.js.map +1 -0
  53. package/dist/transpiled/Media/Track/index.js +2 -0
  54. package/dist/transpiled/Media/Track/index.js.map +1 -0
  55. package/dist/transpiled/Media/index.js +401 -0
  56. package/dist/transpiled/Media/index.js.map +1 -0
  57. package/dist/transpiled/MediaConnection/EventEmitter.js +4 -0
  58. package/dist/transpiled/MediaConnection/EventEmitter.js.map +1 -0
  59. package/dist/transpiled/MediaConnection/MediaConnection.integration-test.js +218 -0
  60. package/dist/transpiled/MediaConnection/MediaConnection.integration-test.js.map +1 -0
  61. package/dist/transpiled/MediaConnection/MediaConnection.js +357 -0
  62. package/dist/transpiled/MediaConnection/MediaConnection.js.map +1 -0
  63. package/dist/transpiled/MediaConnection/MediaConnection.test.js +427 -0
  64. package/dist/transpiled/MediaConnection/MediaConnection.test.js.map +1 -0
  65. package/dist/transpiled/MediaConnection/RoapMediaConnection.integration-test.js +368 -0
  66. package/dist/transpiled/MediaConnection/RoapMediaConnection.integration-test.js.map +1 -0
  67. package/dist/transpiled/MediaConnection/RoapMediaConnection.js +148 -0
  68. package/dist/transpiled/MediaConnection/RoapMediaConnection.js.map +1 -0
  69. package/dist/transpiled/MediaConnection/RoapMediaConnection.test.js +320 -0
  70. package/dist/transpiled/MediaConnection/RoapMediaConnection.test.js.map +1 -0
  71. package/dist/transpiled/MediaConnection/config.js +2 -0
  72. package/dist/transpiled/MediaConnection/config.js.map +1 -0
  73. package/dist/transpiled/MediaConnection/eventTypes.js +36 -0
  74. package/dist/transpiled/MediaConnection/eventTypes.js.map +1 -0
  75. package/dist/transpiled/MediaConnection/index.js +4 -0
  76. package/dist/transpiled/MediaConnection/index.js.map +1 -0
  77. package/dist/transpiled/MediaConnection/logger.js +22 -0
  78. package/dist/transpiled/MediaConnection/logger.js.map +1 -0
  79. package/dist/transpiled/MediaConnection/roap.js +399 -0
  80. package/dist/transpiled/MediaConnection/roap.js.map +1 -0
  81. package/dist/transpiled/MediaConnection/roap.test.js +873 -0
  82. package/dist/transpiled/MediaConnection/roap.test.js.map +1 -0
  83. package/dist/transpiled/MediaConnection/roap.typegen.js +2 -0
  84. package/dist/transpiled/MediaConnection/roap.typegen.js.map +1 -0
  85. package/dist/transpiled/MediaConnection/testUtils/EventListener.js +102 -0
  86. package/dist/transpiled/MediaConnection/testUtils/EventListener.js.map +1 -0
  87. package/dist/transpiled/MediaConnection/testUtils/RoapListener.js +15 -0
  88. package/dist/transpiled/MediaConnection/testUtils/RoapListener.js.map +1 -0
  89. package/dist/transpiled/MediaConnection/testUtils/index.js +17 -0
  90. package/dist/transpiled/MediaConnection/testUtils/index.js.map +1 -0
  91. package/dist/transpiled/MediaConnection/testUtils/logger.js +31 -0
  92. package/dist/transpiled/MediaConnection/testUtils/logger.js.map +1 -0
  93. package/dist/transpiled/MediaConnection/testUtils.js +14 -0
  94. package/dist/transpiled/MediaConnection/testUtils.js.map +1 -0
  95. package/dist/transpiled/MediaConnection/utils.js +71 -0
  96. package/dist/transpiled/MediaConnection/utils.js.map +1 -0
  97. package/dist/transpiled/MediaConnection/utils.test-fixtures.js +287 -0
  98. package/dist/transpiled/MediaConnection/utils.test-fixtures.js.map +1 -0
  99. package/dist/transpiled/MediaConnection/utils.test.js +20 -0
  100. package/dist/transpiled/MediaConnection/utils.test.js.map +1 -0
  101. package/dist/transpiled/common/peerConnectionMock.js +52 -0
  102. package/dist/transpiled/common/peerConnectionMock.js.map +1 -0
  103. package/dist/transpiled/constants.js +9 -0
  104. package/dist/transpiled/constants.js.map +1 -0
  105. package/dist/transpiled/index.intergation-test.js +14 -0
  106. package/dist/transpiled/index.intergation-test.js.map +1 -0
  107. package/dist/transpiled/index.js +41 -0
  108. package/dist/transpiled/index.js.map +1 -0
  109. package/dist/types/Logger/index.d.ts +16 -0
  110. package/dist/types/Logger/index.d.ts.map +1 -0
  111. package/dist/types/Media/Device/Device.d.ts +20 -0
  112. package/dist/types/Media/Device/Device.d.ts.map +1 -0
  113. package/dist/types/Media/Device/DeviceMocks.d.ts +18 -0
  114. package/dist/types/Media/Device/DeviceMocks.d.ts.map +1 -0
  115. package/dist/types/Media/Device/index.d.ts +2 -0
  116. package/dist/types/Media/Device/index.d.ts.map +1 -0
  117. package/dist/types/Media/Effects/BNR/Bnr.d.ts +5 -0
  118. package/dist/types/Media/Effects/BNR/Bnr.d.ts.map +1 -0
  119. package/dist/types/Media/Effects/BNR/Bnr.integration-test.d.ts +2 -0
  120. package/dist/types/Media/Effects/BNR/Bnr.integration-test.d.ts.map +1 -0
  121. package/dist/types/Media/Effects/BNR/Bnr.test.d.ts +2 -0
  122. package/dist/types/Media/Effects/BNR/Bnr.test.d.ts.map +1 -0
  123. package/dist/types/Media/Effects/BNR/BnrMock.d.ts +3 -0
  124. package/dist/types/Media/Effects/BNR/BnrMock.d.ts.map +1 -0
  125. package/dist/types/Media/Effects/BNR/index.d.ts +2 -0
  126. package/dist/types/Media/Effects/BNR/index.d.ts.map +1 -0
  127. package/dist/types/Media/Media.integration-test.d.ts +2 -0
  128. package/dist/types/Media/Media.integration-test.d.ts.map +1 -0
  129. package/dist/types/Media/Media.test.d.ts +2 -0
  130. package/dist/types/Media/Media.test.d.ts.map +1 -0
  131. package/dist/types/Media/Track/BufferSourceAudioTrack.d.ts +4 -0
  132. package/dist/types/Media/Track/BufferSourceAudioTrack.d.ts.map +1 -0
  133. package/dist/types/Media/Track/CameraVideoTrack.d.ts +4 -0
  134. package/dist/types/Media/Track/CameraVideoTrack.d.ts.map +1 -0
  135. package/dist/types/Media/Track/LocalAudioTrack.d.ts +4 -0
  136. package/dist/types/Media/Track/LocalAudioTrack.d.ts.map +1 -0
  137. package/dist/types/Media/Track/LocalTrack.d.ts +4 -0
  138. package/dist/types/Media/Track/LocalTrack.d.ts.map +1 -0
  139. package/dist/types/Media/Track/LocalVideoTrack.d.ts +4 -0
  140. package/dist/types/Media/Track/LocalVideoTrack.d.ts.map +1 -0
  141. package/dist/types/Media/Track/MicrophoneAudioTrack.d.ts +4 -0
  142. package/dist/types/Media/Track/MicrophoneAudioTrack.d.ts.map +1 -0
  143. package/dist/types/Media/Track/RemoteAudioTrack.d.ts +4 -0
  144. package/dist/types/Media/Track/RemoteAudioTrack.d.ts.map +1 -0
  145. package/dist/types/Media/Track/RemoteTrack.d.ts +4 -0
  146. package/dist/types/Media/Track/RemoteTrack.d.ts.map +1 -0
  147. package/dist/types/Media/Track/RemoteVideoTrack.d.ts +4 -0
  148. package/dist/types/Media/Track/RemoteVideoTrack.d.ts.map +1 -0
  149. package/dist/types/Media/Track/Track.d.ts +34 -0
  150. package/dist/types/Media/Track/Track.d.ts.map +1 -0
  151. package/dist/types/Media/Track/Track.integration-test.d.ts +2 -0
  152. package/dist/types/Media/Track/Track.integration-test.d.ts.map +1 -0
  153. package/dist/types/Media/Track/Track.test.d.ts +2 -0
  154. package/dist/types/Media/Track/Track.test.d.ts.map +1 -0
  155. package/dist/types/Media/Track/TrackMock.d.ts +64 -0
  156. package/dist/types/Media/Track/TrackMock.d.ts.map +1 -0
  157. package/dist/types/Media/Track/Utils.d.ts +3 -0
  158. package/dist/types/Media/Track/Utils.d.ts.map +1 -0
  159. package/dist/types/Media/Track/index.d.ts +2 -0
  160. package/dist/types/Media/Track/index.d.ts.map +1 -0
  161. package/dist/types/Media/index.d.ts +16 -0
  162. package/dist/types/Media/index.d.ts.map +1 -0
  163. package/dist/types/MediaConnection/EventEmitter.d.ts +6 -0
  164. package/dist/types/MediaConnection/EventEmitter.d.ts.map +1 -0
  165. package/dist/types/MediaConnection/MediaConnection.d.ts +64 -0
  166. package/dist/types/MediaConnection/MediaConnection.d.ts.map +1 -0
  167. package/dist/types/MediaConnection/MediaConnection.integration-test.d.ts +2 -0
  168. package/dist/types/MediaConnection/MediaConnection.integration-test.d.ts.map +1 -0
  169. package/dist/types/MediaConnection/MediaConnection.test.d.ts +2 -0
  170. package/dist/types/MediaConnection/MediaConnection.test.d.ts.map +1 -0
  171. package/dist/types/MediaConnection/RoapMediaConnection.d.ts +43 -0
  172. package/dist/types/MediaConnection/RoapMediaConnection.d.ts.map +1 -0
  173. package/dist/types/MediaConnection/RoapMediaConnection.integration-test.d.ts +2 -0
  174. package/dist/types/MediaConnection/RoapMediaConnection.integration-test.d.ts.map +1 -0
  175. package/dist/types/MediaConnection/RoapMediaConnection.test.d.ts +2 -0
  176. package/dist/types/MediaConnection/RoapMediaConnection.test.d.ts.map +1 -0
  177. package/dist/types/MediaConnection/config.d.ts +10 -0
  178. package/dist/types/MediaConnection/config.d.ts.map +1 -0
  179. package/dist/types/MediaConnection/eventTypes.d.ts +65 -0
  180. package/dist/types/MediaConnection/eventTypes.d.ts.map +1 -0
  181. package/dist/types/MediaConnection/index.d.ts +5 -0
  182. package/dist/types/MediaConnection/index.d.ts.map +1 -0
  183. package/dist/types/MediaConnection/logger.d.ts +12 -0
  184. package/dist/types/MediaConnection/logger.d.ts.map +1 -0
  185. package/dist/types/MediaConnection/roap.d.ts +37 -0
  186. package/dist/types/MediaConnection/roap.d.ts.map +1 -0
  187. package/dist/types/MediaConnection/roap.test.d.ts +2 -0
  188. package/dist/types/MediaConnection/roap.test.d.ts.map +1 -0
  189. package/dist/types/MediaConnection/roap.typegen.d.ts +86 -0
  190. package/dist/types/MediaConnection/roap.typegen.d.ts.map +1 -0
  191. package/dist/types/MediaConnection/testUtils/EventListener.d.ts +22 -0
  192. package/dist/types/MediaConnection/testUtils/EventListener.d.ts.map +1 -0
  193. package/dist/types/MediaConnection/testUtils/RoapListener.d.ts +9 -0
  194. package/dist/types/MediaConnection/testUtils/RoapListener.d.ts.map +1 -0
  195. package/dist/types/MediaConnection/testUtils/index.d.ts +10 -0
  196. package/dist/types/MediaConnection/testUtils/index.d.ts.map +1 -0
  197. package/dist/types/MediaConnection/testUtils/logger.d.ts +3 -0
  198. package/dist/types/MediaConnection/testUtils/logger.d.ts.map +1 -0
  199. package/dist/types/MediaConnection/testUtils.d.ts +7 -0
  200. package/dist/types/MediaConnection/testUtils.d.ts.map +1 -0
  201. package/dist/types/MediaConnection/utils.d.ts +11 -0
  202. package/dist/types/MediaConnection/utils.d.ts.map +1 -0
  203. package/dist/types/MediaConnection/utils.test-fixtures.d.ts +6 -0
  204. package/dist/types/MediaConnection/utils.test-fixtures.d.ts.map +1 -0
  205. package/dist/types/MediaConnection/utils.test.d.ts +2 -0
  206. package/dist/types/MediaConnection/utils.test.d.ts.map +1 -0
  207. package/dist/types/common/peerConnectionMock.d.ts +5 -0
  208. package/dist/types/common/peerConnectionMock.d.ts.map +1 -0
  209. package/dist/types/constants.d.ts +9 -0
  210. package/dist/types/constants.d.ts.map +1 -0
  211. package/dist/types/index.d.ts +23 -0
  212. package/dist/types/index.d.ts.map +1 -0
  213. package/dist/types/index.intergation-test.d.ts +2 -0
  214. package/dist/types/index.intergation-test.d.ts.map +1 -0
  215. package/package.json +153 -0
@@ -0,0 +1,320 @@
1
+ import EventEmitter from 'events';
2
+ import { setupTestLogger, teardownTestLogger } from './testUtils';
3
+ import { Event, ConnectionState, RemoteTrackType, ErrorType, } from './eventTypes';
4
+ import { RoapMediaConnection } from './index';
5
+ import * as roap from './roap';
6
+ import * as mediaConnection from './MediaConnection';
7
+ describe('RoapMediaConnection', () => {
8
+ const DEFAULT_CONFIG = {
9
+ iceServers: [],
10
+ skipInactiveTransceivers: false,
11
+ sdpMunging: {},
12
+ };
13
+ const FAKE_AUDIO_TRACK = {
14
+ kind: 'audio',
15
+ };
16
+ const FAKE_VIDEO_TRACK = {
17
+ kind: 'video',
18
+ };
19
+ const FAKE_SCREENSHARE_TRACK = {
20
+ kind: 'video',
21
+ };
22
+ const FAKE_MC = {
23
+ insertDTMF: jest.fn(),
24
+ initializeTransceivers: jest.fn(),
25
+ on: jest.fn(),
26
+ getConfig: jest.fn(),
27
+ getSendReceiveOptions: jest.fn(),
28
+ getConnectionState: jest.fn(),
29
+ getStats: jest.fn(),
30
+ close: jest.fn(),
31
+ removeAllListeners: jest.fn(),
32
+ };
33
+ const FAKE_ROAP = {
34
+ getSeq: jest.fn(),
35
+ initiateOffer: jest.fn(),
36
+ roapMessageReceived: jest.fn(),
37
+ on: jest.fn(),
38
+ stop: jest.fn(),
39
+ removeAllListeners: jest.fn(),
40
+ };
41
+ let mediaConnectionCtorSpy;
42
+ let roapCtorSpy;
43
+ beforeAll(() => {
44
+ setupTestLogger();
45
+ });
46
+ afterAll(() => {
47
+ teardownTestLogger();
48
+ });
49
+ beforeEach(() => {
50
+ roapCtorSpy = jest
51
+ .spyOn(roap, 'Roap')
52
+ .mockImplementation(() => FAKE_ROAP);
53
+ mediaConnectionCtorSpy = jest
54
+ .spyOn(mediaConnection, 'MediaConnection')
55
+ .mockImplementation(() => FAKE_MC);
56
+ });
57
+ it('getConnectionState() calls getConnectionState() on the media connection', () => {
58
+ const mc = new RoapMediaConnection(DEFAULT_CONFIG, {
59
+ send: {},
60
+ receive: {
61
+ audio: true,
62
+ video: true,
63
+ screenShareVideo: true,
64
+ },
65
+ });
66
+ mc.getConnectionState();
67
+ expect(FAKE_MC.getConnectionState).toBeCalledOnceWith();
68
+ });
69
+ it('getStats() calls getStats() on the media connection', async () => {
70
+ const FAKE_STATS = { someStats: 'any value' };
71
+ FAKE_MC.getStats.mockResolvedValue(FAKE_STATS);
72
+ const mc = new RoapMediaConnection(DEFAULT_CONFIG, {
73
+ send: {},
74
+ receive: {
75
+ audio: true,
76
+ video: true,
77
+ screenShareVideo: true,
78
+ },
79
+ });
80
+ const stats = await mc.getStats();
81
+ expect(FAKE_MC.getStats).toBeCalledOnceWith();
82
+ expect(stats).toEqual(FAKE_STATS);
83
+ FAKE_MC.getStats.mockReset();
84
+ });
85
+ describe('outgoing call/joining a meeting', () => {
86
+ let mc;
87
+ beforeEach(() => {
88
+ mc = new RoapMediaConnection(DEFAULT_CONFIG, {
89
+ send: {
90
+ audio: FAKE_AUDIO_TRACK,
91
+ video: FAKE_VIDEO_TRACK,
92
+ screenShareVideo: FAKE_SCREENSHARE_TRACK,
93
+ },
94
+ receive: {
95
+ audio: true,
96
+ video: true,
97
+ screenShareVideo: true,
98
+ },
99
+ });
100
+ });
101
+ it('initializes transceivers when initiateOffer() is called', async () => {
102
+ await mc.initiateOffer();
103
+ expect(FAKE_MC.initializeTransceivers).toBeCalledOnceWith(false);
104
+ expect(FAKE_ROAP.initiateOffer).toBeCalledOnceWith();
105
+ });
106
+ it('fails if initiateOffer() is called for a second time', async () => {
107
+ await mc.initiateOffer();
108
+ FAKE_ROAP.initiateOffer.mockClear();
109
+ await expect(mc.initiateOffer()).rejects.toThrow(new Error('SDP negotiation already started'));
110
+ expect(FAKE_ROAP.initiateOffer).not.toBeCalled();
111
+ });
112
+ it('does not call initializeTransceivers() on remote offer', async () => {
113
+ await mc.initiateOffer();
114
+ FAKE_MC.initializeTransceivers.mockClear();
115
+ mc.roapMessageReceived({ messageType: 'OFFER', sdp: 'fake', seq: 2 });
116
+ expect(FAKE_MC.initializeTransceivers).not.toBeCalled();
117
+ });
118
+ });
119
+ describe('incoming call', () => {
120
+ const FAKE_OFFER = { messageType: 'OFFER', sdp: 'fake', seq: 1 };
121
+ it('calls initializeTransceivers(true) when first incoming offer arrives', () => {
122
+ const mc = new RoapMediaConnection(DEFAULT_CONFIG, {
123
+ send: {
124
+ audio: FAKE_AUDIO_TRACK,
125
+ video: FAKE_VIDEO_TRACK,
126
+ screenShareVideo: FAKE_SCREENSHARE_TRACK,
127
+ },
128
+ receive: {
129
+ audio: false,
130
+ video: false,
131
+ screenShareVideo: false,
132
+ },
133
+ });
134
+ mc.roapMessageReceived(FAKE_OFFER);
135
+ expect(FAKE_MC.initializeTransceivers).toBeCalledOnceWith(true);
136
+ expect(FAKE_ROAP.roapMessageReceived).toBeCalledOnceWith(FAKE_OFFER);
137
+ });
138
+ it('calls initializeTransceivers(true) only once for incoming calls', () => {
139
+ const mc = new RoapMediaConnection(DEFAULT_CONFIG, {
140
+ send: {
141
+ audio: FAKE_AUDIO_TRACK,
142
+ video: FAKE_VIDEO_TRACK,
143
+ },
144
+ receive: {
145
+ audio: true,
146
+ video: true,
147
+ screenShareVideo: true,
148
+ },
149
+ });
150
+ mc.roapMessageReceived(FAKE_OFFER);
151
+ expect(FAKE_ROAP.roapMessageReceived).toBeCalledOnceWith(FAKE_OFFER);
152
+ expect(FAKE_MC.initializeTransceivers).toBeCalledOnceWith(true);
153
+ FAKE_MC.initializeTransceivers.mockClear();
154
+ FAKE_ROAP.roapMessageReceived.mockClear();
155
+ mc.roapMessageReceived({ messageType: 'OFFER', sdp: 'fake', seq: 2 });
156
+ expect(FAKE_ROAP.roapMessageReceived).toBeCalledOnceWith({
157
+ messageType: 'OFFER',
158
+ sdp: 'fake',
159
+ seq: 2,
160
+ });
161
+ expect(FAKE_MC.initializeTransceivers).not.toBeCalled();
162
+ });
163
+ });
164
+ describe('insertDTMF()', () => {
165
+ describe('calls insertDTMF() on the mediaConnection', () => {
166
+ let mc;
167
+ beforeEach(() => {
168
+ mc = new RoapMediaConnection(DEFAULT_CONFIG, {
169
+ send: {},
170
+ receive: {
171
+ audio: false,
172
+ video: false,
173
+ screenShareVideo: false,
174
+ },
175
+ });
176
+ });
177
+ it('without optional parameters', () => {
178
+ mc.insertDTMF('ABCD');
179
+ expect(FAKE_MC.insertDTMF).toBeCalledOnceWith('ABCD', undefined, undefined);
180
+ });
181
+ it('with only the 1st optional parameter', () => {
182
+ mc.insertDTMF('2468', 500);
183
+ expect(FAKE_MC.insertDTMF).toBeCalledOnceWith('2468', 500, undefined);
184
+ });
185
+ it('with all parameters', () => {
186
+ mc.insertDTMF('#A123*', 300, 600);
187
+ expect(FAKE_MC.insertDTMF).toBeCalledOnceWith('#A123*', 300, 600);
188
+ });
189
+ });
190
+ });
191
+ describe('Events', () => {
192
+ let mc;
193
+ const setup = () => {
194
+ mc = new RoapMediaConnection(DEFAULT_CONFIG, {
195
+ send: {},
196
+ receive: {
197
+ audio: false,
198
+ video: false,
199
+ screenShareVideo: false,
200
+ },
201
+ });
202
+ };
203
+ it('registers for the correct MediaConnection events', () => {
204
+ setup();
205
+ expect(FAKE_MC.on).toBeCalledTimes(3);
206
+ expect(FAKE_MC.on).toBeCalledWith(Event.REMOTE_TRACK_ADDED, expect.any(Function));
207
+ expect(FAKE_MC.on).toBeCalledWith(Event.CONNECTION_STATE_CHANGED, expect.any(Function));
208
+ expect(FAKE_MC.on).toBeCalledWith(Event.DTMF_TONE_CHANGED, expect.any(Function));
209
+ });
210
+ const testEvent = (from, eventType, eventData) => {
211
+ const emitter = new EventEmitter();
212
+ if (from === 'mc') {
213
+ jest
214
+ .spyOn(mediaConnection, 'MediaConnection')
215
+ .mockImplementation(() => emitter);
216
+ }
217
+ else if (from === 'roap') {
218
+ jest.spyOn(roap, 'Roap').mockImplementation(() => emitter);
219
+ }
220
+ setup();
221
+ let eventListenerCalled = false;
222
+ mc.on(eventType, (data) => {
223
+ expect(data).toEqual(eventData);
224
+ eventListenerCalled = true;
225
+ });
226
+ emitter.emit(eventType, eventData);
227
+ expect(eventListenerCalled).toEqual(true);
228
+ };
229
+ it('forwards the DTMF_TONE_CHANGED event', () => {
230
+ testEvent('mc', Event.DTMF_TONE_CHANGED, { tone: 'abc123456*#' });
231
+ });
232
+ it('forwards the REMOTE_TRACK_ADDED event', () => {
233
+ testEvent('mc', Event.REMOTE_TRACK_ADDED, {
234
+ track: FAKE_AUDIO_TRACK,
235
+ type: RemoteTrackType.AUDIO,
236
+ });
237
+ });
238
+ it('forwards the CONNECTION_STATE_CHANGED event', () => {
239
+ testEvent('mc', Event.CONNECTION_STATE_CHANGED, { state: ConnectionState.CONNECTING });
240
+ });
241
+ it('registers for the correct Roap events', () => {
242
+ setup();
243
+ expect(FAKE_ROAP.on).toBeCalledTimes(2);
244
+ expect(FAKE_ROAP.on).toBeCalledWith(Event.ROAP_MESSAGE_TO_SEND, expect.any(Function));
245
+ expect(FAKE_ROAP.on).toBeCalledWith(Event.ROAP_FAILURE, expect.any(Function));
246
+ });
247
+ it('forwards the ROAP_MESSAGE_TO_SEND event', () => {
248
+ testEvent('roap', Event.ROAP_MESSAGE_TO_SEND, {
249
+ roapMessage: { messageType: 'OFFER', seq: 100, sdp: 'fake', tieBreaker: 123 },
250
+ });
251
+ testEvent('roap', Event.ROAP_MESSAGE_TO_SEND, {
252
+ roapMessage: { messageType: 'ERROR', seq: 100, errorType: ErrorType.FAILED, retryAfter: 10 },
253
+ });
254
+ });
255
+ it('forwards the ROAP_FAILURE event', () => {
256
+ testEvent('roap', Event.ROAP_FAILURE, undefined);
257
+ });
258
+ });
259
+ describe('reconnect()', () => {
260
+ let mc;
261
+ const DEBUG_ID = 'some debug id';
262
+ beforeEach(() => {
263
+ mc = new RoapMediaConnection(DEFAULT_CONFIG, {
264
+ send: {},
265
+ receive: {
266
+ audio: true,
267
+ video: true,
268
+ screenShareVideo: true,
269
+ },
270
+ }, DEBUG_ID);
271
+ });
272
+ it('closes the media connection and stops the roap session', () => {
273
+ mc.reconnect();
274
+ expect(FAKE_MC.close).toBeCalledOnceWith();
275
+ expect(FAKE_ROAP.stop).toBeCalledOnceWith();
276
+ });
277
+ it('creates a new media connection with same config, options and debugId', () => {
278
+ const FAKE_CONFIG = { anyField: 'any value' };
279
+ const FAKE_OPTIONS = { send: { audio: FAKE_AUDIO_TRACK }, receive: { audio: false, video: true } };
280
+ FAKE_MC.getConfig.mockReturnValue(FAKE_CONFIG);
281
+ FAKE_MC.getSendReceiveOptions.mockReturnValue(FAKE_OPTIONS);
282
+ mediaConnectionCtorSpy.mockClear();
283
+ FAKE_MC.on.mockClear();
284
+ mc.reconnect();
285
+ expect(mediaConnectionCtorSpy).toBeCalledOnceWith(FAKE_CONFIG, FAKE_OPTIONS, DEBUG_ID);
286
+ expect(FAKE_MC.on).toBeCalledTimes(3);
287
+ expect(FAKE_MC.on).toBeCalledWith(Event.REMOTE_TRACK_ADDED, expect.any(Function));
288
+ expect(FAKE_MC.on).toBeCalledWith(Event.CONNECTION_STATE_CHANGED, expect.any(Function));
289
+ expect(FAKE_MC.on).toBeCalledWith(Event.DTMF_TONE_CHANGED, expect.any(Function));
290
+ });
291
+ it('creates a new roap session, maintaining the seq from the old one', () => {
292
+ const FAKE_SEQ = 100;
293
+ FAKE_ROAP.getSeq.mockReturnValue(FAKE_SEQ);
294
+ roapCtorSpy.mockClear();
295
+ FAKE_ROAP.on.mockClear();
296
+ mc.reconnect();
297
+ expect(roapCtorSpy).toBeCalledOnceWith(expect.any(Function), expect.any(Function), expect.any(Function), DEBUG_ID, FAKE_SEQ);
298
+ expect(FAKE_ROAP.on).toBeCalledTimes(2);
299
+ expect(FAKE_ROAP.on).toBeCalledWith(Event.ROAP_MESSAGE_TO_SEND, expect.any(Function));
300
+ expect(FAKE_ROAP.on).toBeCalledWith(Event.ROAP_FAILURE, expect.any(Function));
301
+ });
302
+ it('initiates new offer by default', () => {
303
+ mc.reconnect();
304
+ expect(FAKE_ROAP.initiateOffer).toBeCalledOnceWith();
305
+ });
306
+ it('does not initiate new offer when initiateOffer argument is false', () => {
307
+ FAKE_MC.initializeTransceivers.mockClear();
308
+ mc.reconnect(false);
309
+ expect(FAKE_ROAP.initiateOffer).not.toBeCalled();
310
+ mc.roapMessageReceived({ messageType: 'OFFER', sdp: 'fake remote offer', seq: 2 });
311
+ expect(FAKE_MC.initializeTransceivers).toBeCalledOnceWith(true);
312
+ expect(FAKE_ROAP.roapMessageReceived).toBeCalledOnceWith({
313
+ messageType: 'OFFER',
314
+ sdp: 'fake remote offer',
315
+ seq: 2,
316
+ });
317
+ });
318
+ });
319
+ });
320
+ //# sourceMappingURL=RoapMediaConnection.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoapMediaConnection.test.js","sourceRoot":"","sources":["../../../src/MediaConnection/RoapMediaConnection.test.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAChE,OAAO,EAEL,KAAK,EAEL,eAAe,EACf,eAAe,EACf,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AAErD,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,cAAc,GAAG;QACrB,UAAU,EAAE,EAAE;QACd,wBAAwB,EAAE,KAAK;QAC/B,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,MAAM,gBAAgB,GAAG;QACvB,IAAI,EAAE,OAAO;KACM,CAAC;IAEtB,MAAM,gBAAgB,GAAG;QACvB,IAAI,EAAE,OAAO;KACM,CAAC;IAEtB,MAAM,sBAAsB,GAAG;QAC7B,IAAI,EAAE,OAAO;KACM,CAAC;IAEtB,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;QACrB,sBAAsB,EAAE,IAAI,CAAC,EAAE,EAAE;QACjC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;QACb,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;QACpB,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;QAChC,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC7B,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QACnB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;KAC9B,CAAC;IAEF,MAAM,SAAS,GAAG;QAChB,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QACjB,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;QACxB,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC9B,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;QACb,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;KAC9B,CAAC;IAEF,IAAI,sBAAwC,CAAC;IAC7C,IAAI,WAA6B,CAAC;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACZ,kBAAkB,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACd,WAAW,GAAG,IAAI;aACf,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;aACnB,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAiC,CAAC,CAAC;QAC/D,sBAAsB,GAAG,IAAI;aAC1B,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC;aACzC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAqD,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,EAAE,GAAG,IAAI,mBAAmB,CAAC,cAAc,EAAE;YACjD,IAAI,EAAE,EAAE;YACR,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,IAAI;gBACX,gBAAgB,EAAE,IAAI;aACvB;SACF,CAAC,CAAC;QAEH,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAExB,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,UAAU,GAAG,EAAC,SAAS,EAAE,WAAW,EAAC,CAAC;QAE5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE/C,MAAM,EAAE,GAAG,IAAI,mBAAmB,CAAC,cAAc,EAAE;YACjD,IAAI,EAAE,EAAE;YACR,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,IAAI;gBACX,gBAAgB,EAAE,IAAI;aACvB;SACF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QAElC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAElC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,IAAI,EAAuB,CAAC;QAE5B,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,GAAG,IAAI,mBAAmB,CAAC,cAAc,EAAE;gBAC3C,IAAI,EAAE;oBACJ,KAAK,EAAE,gBAAgB;oBACvB,KAAK,EAAE,gBAAgB;oBACvB,gBAAgB,EAAE,sBAAsB;iBACzC;gBACD,OAAO,EAAE;oBACP,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,IAAI;oBACX,gBAAgB,EAAE,IAAI;iBACvB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;YAEzB,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACjE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,kBAAkB,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;YAEzB,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;YAGpC,MAAM,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAC9C,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAC7C,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;YAEzB,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,CAAC;YAG3C,EAAE,CAAC,mBAAmB,CAAC,EAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;YAEpE,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,MAAM,UAAU,GAAgB,EAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC;QAE5E,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC9E,MAAM,EAAE,GAAG,IAAI,mBAAmB,CAAC,cAAc,EAAE;gBACjD,IAAI,EAAE;oBACJ,KAAK,EAAE,gBAAgB;oBACvB,KAAK,EAAE,gBAAgB;oBACvB,gBAAgB,EAAE,sBAAsB;iBACzC;gBACD,OAAO,EAAE;oBACP,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,KAAK;oBACZ,gBAAgB,EAAE,KAAK;iBACxB;aACF,CAAC,CAAC;YAEH,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,EAAE,GAAG,IAAI,mBAAmB,CAAC,cAAc,EAAE;gBACjD,IAAI,EAAE;oBACJ,KAAK,EAAE,gBAAgB;oBACvB,KAAK,EAAE,gBAAgB;iBACxB;gBACD,OAAO,EAAE;oBACP,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,IAAI;oBACX,gBAAgB,EAAE,IAAI;iBACvB;aACF,CAAC,CAAC;YAGH,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAEnC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACrE,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAEhE,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,CAAC;YAC3C,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;YAG1C,EAAE,CAAC,mBAAmB,CAAC,EAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;YAEpE,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,kBAAkB,CAAC;gBACvD,WAAW,EAAE,OAAO;gBACpB,GAAG,EAAE,MAAM;gBACX,GAAG,EAAE,CAAC;aACP,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACzD,IAAI,EAAuB,CAAC;YAE5B,UAAU,CAAC,GAAG,EAAE;gBAKd,EAAE,GAAG,IAAI,mBAAmB,CAAC,cAAc,EAAE;oBAC3C,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE;wBACP,KAAK,EAAE,KAAK;wBACZ,KAAK,EAAE,KAAK;wBACZ,gBAAgB,EAAE,KAAK;qBACxB;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACrC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC9C,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC3B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;gBAC7B,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,IAAI,EAAuB,CAAC;QAE5B,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,EAAE,GAAG,IAAI,mBAAmB,CAAC,cAAc,EAAE;gBAC3C,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE;oBACP,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,KAAK;oBACZ,gBAAgB,EAAE,KAAK;iBACxB;aACF,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,KAAK,EAAE,CAAC;YACR,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClF,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxF,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAWH,MAAM,SAAS,GAAG,CAAC,IAAmB,EAAE,SAAgB,EAAE,SAAmB,EAAE,EAAE;YAC/E,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;YAInC,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI;qBACD,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC;qBACzC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAA0C,CAAC,CAAC;aACzE;iBAAM,IAAI,IAAI,KAAK,MAAM,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAoB,CAAC,CAAC;aACzE;YAED,KAAK,EAAE,CAAC;YAER,IAAI,mBAAmB,GAAG,KAAK,CAAC;YAIhC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAc,EAAE,EAAE;gBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAChC,mBAAmB,GAAG,IAAI,CAAC;YAC7B,CAAC,CAAC,CAAC;YAGH,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAGnC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,EAAE;gBACxC,KAAK,EAAE,gBAAgB;gBACvB,IAAI,EAAE,eAAe,CAAC,KAAK;aAC5B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,wBAAwB,EAAE,EAAC,KAAK,EAAE,eAAe,CAAC,UAAU,EAAC,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,KAAK,EAAE,CAAC;YACR,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtF,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,EAAE;gBAC5C,WAAW,EAAE,EAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAC;aAC5E,CAAC,CAAC;YACH,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,EAAE;gBAC5C,WAAW,EAAE,EAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAC;aAC3F,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,IAAI,EAAuB,CAAC;QAE5B,MAAM,QAAQ,GAAG,eAAe,CAAC;QAEjC,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,GAAG,IAAI,mBAAmB,CAC1B,cAAc,EACd;gBACE,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE;oBACP,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,IAAI;oBACX,gBAAgB,EAAE,IAAI;iBACvB;aACF,EACD,QAAQ,CACT,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,EAAE,CAAC,SAAS,EAAE,CAAC;YAEf,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;YAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC9E,MAAM,WAAW,GAAG,EAAC,QAAQ,EAAE,WAAW,EAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,EAAC,IAAI,EAAE,EAAC,KAAK,EAAE,gBAAgB,EAAC,EAAE,OAAO,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC,EAAC,CAAC;YAE7F,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAC/C,OAAO,CAAC,qBAAqB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAE5D,sBAAsB,CAAC,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;YAEvB,EAAE,CAAC,SAAS,EAAE,CAAC;YAEf,MAAM,CAAC,sBAAsB,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YACvF,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClF,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxF,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC1E,MAAM,QAAQ,GAAG,GAAG,CAAC;YAErB,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAE3C,WAAW,CAAC,SAAS,EAAE,CAAC;YACxB,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;YAEzB,EAAE,CAAC,SAAS,EAAE,CAAC;YAEf,MAAM,CAAC,WAAW,CAAC,CAAC,kBAAkB,CACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EACpB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EACpB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EACpB,QAAQ,EACR,QAAQ,CACT,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtF,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,SAAS,EAAE,CAAC;YAEf,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,kBAAkB,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC1E,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,CAAC;YAE3C,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAEpB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YAIjD,EAAE,CAAC,mBAAmB,CAAC,EAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;YAEjF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,kBAAkB,CAAC;gBACvD,WAAW,EAAE,OAAO;gBACpB,GAAG,EAAE,mBAAmB;gBACxB,GAAG,EAAE,CAAC;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/MediaConnection/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ export var Event;
2
+ (function (Event) {
3
+ Event["CONNECTION_STATE_CHANGED"] = "connectionState:changed";
4
+ Event["REMOTE_TRACK_ADDED"] = "remoteTrack:added";
5
+ Event["ROAP_MESSAGE_TO_SEND"] = "roap:messageToSend";
6
+ Event["ROAP_FAILURE"] = "roap:failure";
7
+ Event["DTMF_TONE_CHANGED"] = "dtmfTone:changed";
8
+ })(Event || (Event = {}));
9
+ export var ConnectionState;
10
+ (function (ConnectionState) {
11
+ ConnectionState["NEW"] = "NEW";
12
+ ConnectionState["CLOSED"] = "CLOSED";
13
+ ConnectionState["CONNECTED"] = "CONNECTED";
14
+ ConnectionState["CONNECTING"] = "CONNECTING";
15
+ ConnectionState["DISCONNECTED"] = "DISCONNECTED";
16
+ ConnectionState["FAILED"] = "FAILED";
17
+ })(ConnectionState || (ConnectionState = {}));
18
+ export var RemoteTrackType;
19
+ (function (RemoteTrackType) {
20
+ RemoteTrackType["AUDIO"] = "audio";
21
+ RemoteTrackType["VIDEO"] = "video";
22
+ RemoteTrackType["SCREENSHARE_VIDEO"] = "screenShareVideo";
23
+ })(RemoteTrackType || (RemoteTrackType = {}));
24
+ export var ErrorType;
25
+ (function (ErrorType) {
26
+ ErrorType["DOUBLECONFLICT"] = "DOUBLECONFLICT";
27
+ ErrorType["CONFLICT"] = "CONFLICT";
28
+ ErrorType["FAILED"] = "FAILED";
29
+ ErrorType["INVALID_STATE"] = "INVALID_STATE";
30
+ ErrorType["NOMATCH"] = "NOMATCH";
31
+ ErrorType["OUT_OF_ORDER"] = "OUT_OF_ORDER";
32
+ ErrorType["REFUSED"] = "REFUSED";
33
+ ErrorType["RETRY"] = "RETRY";
34
+ ErrorType["TIMEOUT"] = "TIMEOUT";
35
+ })(ErrorType || (ErrorType = {}));
36
+ //# sourceMappingURL=eventTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventTypes.js","sourceRoot":"","sources":["../../../src/MediaConnection/eventTypes.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,KAMX;AAND,WAAY,KAAK;IACf,6DAAoD,CAAA;IACpD,iDAAwC,CAAA;IACxC,oDAA2C,CAAA;IAC3C,sCAA6B,CAAA;IAC7B,+CAAsC,CAAA;AACxC,CAAC,EANW,KAAK,KAAL,KAAK,QAMhB;AAGD,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,oCAAiB,CAAA;IACjB,0CAAuB,CAAA;IACvB,4CAAyB,CAAA;IACzB,gDAA6B,CAAA;IAC7B,oCAAiB,CAAA;AACnB,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AAMD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,kCAAe,CAAA;IACf,yDAAsC,CAAA;AACxC,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAOD,MAAM,CAAN,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,8CAAiC,CAAA;IACjC,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,4CAA+B,CAAA;IAC/B,gCAAmB,CAAA;IACnB,0CAA6B,CAAA;IAC7B,gCAAmB,CAAA;IACnB,4BAAe,CAAA;IACf,gCAAmB,CAAA;AACrB,CAAC,EAVW,SAAS,KAAT,SAAS,QAUpB"}
@@ -0,0 +1,4 @@
1
+ export * from './RoapMediaConnection';
2
+ export { Event, ConnectionState, RemoteTrackType, } from './eventTypes';
3
+ export * from './logger';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/MediaConnection/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAEL,KAAK,EACL,eAAe,EAEf,eAAe,GAIhB,MAAM,cAAc,CAAC;AAEtB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,22 @@
1
+ const defaultLogger = {
2
+ info: (...args) => console.info(...args),
3
+ log: (...args) => console.log(...args),
4
+ error: (...args) => console.error(...args),
5
+ warn: (...args) => console.warn(...args),
6
+ trace: (...args) => console.trace(...args),
7
+ debug: (...args) => console.debug(...args),
8
+ };
9
+ let currentLogger = defaultLogger;
10
+ export const setLogger = (newLogger) => {
11
+ if (newLogger) {
12
+ currentLogger = newLogger;
13
+ }
14
+ else {
15
+ currentLogger = defaultLogger;
16
+ }
17
+ };
18
+ export const getLogger = () => currentLogger;
19
+ export const getErrorDescription = (error) => {
20
+ return error ? (error.stack ? `${error.message}: ${error.stack}` : `${error}`) : '';
21
+ };
22
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/MediaConnection/logger.ts"],"names":[],"mappings":"AAcA,MAAM,aAAa,GAAW;IAC5B,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC7C,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACjD,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACjD,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;CAClD,CAAC;AAEF,IAAI,aAAa,GAAW,aAAa,CAAC;AAU1C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,SAAwB,EAAE,EAAE;IACpD,IAAI,SAAS,EAAE;QACb,aAAa,GAAG,SAAS,CAAC;KAC3B;SAAM;QACL,aAAa,GAAG,aAAa,CAAC;KAC/B;AACH,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC,aAAa,CAAC;AASrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAU,EAAE;IAE3D,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtF,CAAC,CAAC"}