@wazo/sdk 0.37.0-rc.5 → 0.37.2

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 (149) hide show
  1. package/dist/wazo-sdk.js +5 -5
  2. package/esm/__tests__/api-client.test.js +93 -16
  3. package/esm/__tests__/web-rtc-client.test.js +153 -54
  4. package/esm/api/agentd.js +24 -3
  5. package/esm/api/amid.js +7 -1
  6. package/esm/api/application.js +24 -3
  7. package/esm/api/auth.js +24 -3
  8. package/esm/api/call-logd.js +78 -20
  9. package/esm/api/calld.js +24 -20
  10. package/esm/api/chatd.js +24 -3
  11. package/esm/api/confd.js +24 -3
  12. package/esm/api/ctid-ng.js +24 -3
  13. package/esm/api/dird.js +27 -6
  14. package/esm/api/webhookd.js +7 -1
  15. package/esm/api-client.js +93 -16
  16. package/esm/checker/Checker.js +156 -54
  17. package/esm/checker/checks/aor.js +95 -16
  18. package/esm/checker/checks/api.js +94 -16
  19. package/esm/checker/checks/index.js +156 -54
  20. package/esm/checker/checks/wazo-websocket.js +7 -1
  21. package/esm/checker/checks/webrtc-transport.js +153 -54
  22. package/esm/checker/checks/webrtc.js +153 -54
  23. package/esm/domain/AdHocAPIConference.js +1717 -1640
  24. package/esm/domain/CallLog.js +71 -19
  25. package/esm/domain/CallSession.js +1 -18
  26. package/esm/domain/Contact.js +3 -3
  27. package/esm/domain/Features.js +93 -16
  28. package/esm/domain/IndirectTransfer.js +0 -17
  29. package/esm/domain/Phone/CTIPhone.js +100 -19
  30. package/esm/domain/Phone/Phone.js +0 -17
  31. package/esm/domain/Phone/WebRTCPhone.js +51 -36
  32. package/esm/domain/Recording.js +51 -0
  33. package/esm/domain/Room.js +0 -17
  34. package/esm/domain/SwitchboardCall.js +0 -17
  35. package/esm/domain/__tests__/CallLog.test.js +89 -19
  36. package/esm/domain/__tests__/CallSession.test.js +1 -18
  37. package/esm/domain/__tests__/Contact.test.js +3 -3
  38. package/esm/domain/__tests__/IndirectTransfer.test.js +1 -18
  39. package/esm/domain/__tests__/Room.test.js +1 -18
  40. package/esm/domain/__tests__/Session.test.js +7 -0
  41. package/esm/index.js +3436 -2911
  42. package/esm/lib/WazoSessionDescriptionHandler.js +28 -10
  43. package/esm/service/CallApi.js +93 -16
  44. package/esm/service/IssueReporter.js +7 -1
  45. package/esm/service/__tests__/IssueReporter.test.js +26 -2
  46. package/esm/service/getApiClient.js +93 -16
  47. package/esm/simple/Auth.js +619 -97
  48. package/esm/simple/Configuration.js +619 -97
  49. package/esm/simple/Directory.js +93 -16
  50. package/esm/simple/Phone.js +3261 -2739
  51. package/esm/simple/Websocket.js +7 -1
  52. package/esm/simple/index.js +619 -97
  53. package/esm/simple/room/LocalParticipant.js +619 -97
  54. package/esm/simple/room/Participant.js +619 -97
  55. package/esm/simple/room/RemoteParticipant.js +619 -97
  56. package/esm/simple/room/Room.js +619 -97
  57. package/esm/simple/room/Stream.js +619 -97
  58. package/esm/simple/room/__tests__/RemoteParticipant.test.js +619 -97
  59. package/esm/simple/utils.js +619 -97
  60. package/esm/utils/__tests__/api-requester.test.js +32 -6
  61. package/esm/utils/api-requester.js +24 -3
  62. package/esm/web-rtc-client.js +153 -54
  63. package/esm/websocket-client.js +7 -1
  64. package/lib/__tests__/api-client.test.js +93 -16
  65. package/lib/__tests__/web-rtc-client.test.js +154 -55
  66. package/lib/api/agentd.js +24 -3
  67. package/lib/api/amid.js +7 -1
  68. package/lib/api/application.js +24 -3
  69. package/lib/api/auth.js +24 -3
  70. package/lib/api/call-logd.js +78 -20
  71. package/lib/api/calld.js +24 -20
  72. package/lib/api/chatd.js +24 -3
  73. package/lib/api/confd.js +24 -3
  74. package/lib/api/ctid-ng.js +24 -3
  75. package/lib/api/dird.js +27 -6
  76. package/lib/api/webhookd.js +7 -1
  77. package/lib/api-client.js +93 -16
  78. package/lib/checker/Checker.js +157 -55
  79. package/lib/checker/checks/aor.js +95 -16
  80. package/lib/checker/checks/api.js +94 -16
  81. package/lib/checker/checks/index.js +157 -55
  82. package/lib/checker/checks/wazo-websocket.js +7 -1
  83. package/lib/checker/checks/webrtc-transport.js +154 -55
  84. package/lib/checker/checks/webrtc.js +154 -55
  85. package/lib/domain/AdHocAPIConference.js +1717 -1640
  86. package/lib/domain/CallLog.js +71 -19
  87. package/lib/domain/CallSession.js +1 -18
  88. package/lib/domain/Contact.js +3 -3
  89. package/lib/domain/Features.js +93 -16
  90. package/lib/domain/IndirectTransfer.js +0 -17
  91. package/lib/domain/Phone/CTIPhone.js +100 -19
  92. package/lib/domain/Phone/Phone.js +0 -16
  93. package/lib/domain/Phone/WebRTCPhone.js +51 -36
  94. package/lib/domain/Recording.js +57 -0
  95. package/lib/domain/Room.js +0 -17
  96. package/lib/domain/SwitchboardCall.js +0 -17
  97. package/lib/domain/__tests__/CallLog.test.js +89 -19
  98. package/lib/domain/__tests__/CallSession.test.js +1 -18
  99. package/lib/domain/__tests__/Contact.test.js +3 -3
  100. package/lib/domain/__tests__/IndirectTransfer.test.js +1 -18
  101. package/lib/domain/__tests__/Room.test.js +1 -18
  102. package/lib/domain/__tests__/Session.test.js +7 -0
  103. package/lib/index.js +3437 -2912
  104. package/lib/lib/WazoSessionDescriptionHandler.js +28 -10
  105. package/lib/service/CallApi.js +93 -16
  106. package/lib/service/IssueReporter.js +7 -1
  107. package/lib/service/__tests__/IssueReporter.test.js +26 -2
  108. package/lib/service/getApiClient.js +93 -16
  109. package/lib/simple/Auth.js +620 -98
  110. package/lib/simple/Configuration.js +620 -98
  111. package/lib/simple/Directory.js +93 -16
  112. package/lib/simple/Phone.js +3262 -2740
  113. package/lib/simple/Websocket.js +7 -1
  114. package/lib/simple/index.js +620 -98
  115. package/lib/simple/room/LocalParticipant.js +620 -98
  116. package/lib/simple/room/Participant.js +620 -98
  117. package/lib/simple/room/RemoteParticipant.js +620 -98
  118. package/lib/simple/room/Room.js +620 -98
  119. package/lib/simple/room/Stream.js +620 -98
  120. package/lib/simple/room/__tests__/RemoteParticipant.test.js +620 -98
  121. package/lib/simple/utils.js +620 -98
  122. package/lib/utils/__tests__/api-requester.test.js +32 -6
  123. package/lib/utils/api-requester.js +24 -3
  124. package/lib/web-rtc-client.js +154 -55
  125. package/lib/websocket-client.js +7 -1
  126. package/package.json +1 -1
  127. package/src/api-client.js +4 -0
  128. package/src/checker/checks/aor.js +2 -0
  129. package/src/checker/checks/api.js +1 -0
  130. package/src/domain/CallLog.js +18 -11
  131. package/src/domain/CallSession.js +1 -2
  132. package/src/domain/Contact.js +3 -3
  133. package/src/domain/Phone/CTIPhone.js +6 -2
  134. package/src/domain/Phone/Phone.js +2 -0
  135. package/src/domain/Phone/WebRTCPhone.js +26 -16
  136. package/src/domain/Recording.js +48 -0
  137. package/src/domain/__tests__/CallLog.test.js +19 -0
  138. package/src/domain/__tests__/Session.test.js +7 -0
  139. package/src/index.js +6 -0
  140. package/src/lib/WazoSessionDescriptionHandler.js +21 -9
  141. package/src/service/IssueReporter.js +7 -1
  142. package/src/service/__tests__/IssueReporter.test.js +20 -1
  143. package/src/simple/Phone.js +5 -1
  144. package/src/simple/index.js +6 -0
  145. package/src/simple/room/Room.js +18 -15
  146. package/src/simple/room/Stream.js +1 -4
  147. package/src/utils/__tests__/api-requester.test.js +9 -4
  148. package/src/utils/api-requester.js +17 -2
  149. package/src/web-rtc-client.js +40 -13
@@ -9,6 +9,17 @@ var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
9
9
 
10
10
  //
11
11
 
12
+ var newFrom = (instance , ToClass ) => {
13
+ const args = {};
14
+ Object.getOwnPropertyNames(instance).forEach(prop => {
15
+ args[prop] = instance[prop];
16
+ });
17
+
18
+ return new ToClass(args);
19
+ };
20
+
21
+ //
22
+
12
23
  const swarmPublicKey = `-----BEGIN PUBLIC KEY-----
13
24
  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmkXOuNfY8u5xoTiIhkb8
14
25
  djnbIwG/Wrz3vpo8BZir8L5e1a1nSy740qBjP7ZINBQoALDhFfmdOfJnCyEGiHuz
@@ -21,32 +32,70 @@ BwIDAQAB
21
32
 
22
33
  //
23
34
 
24
- var newFrom = (instance , ToClass ) => {
25
- const args = {};
26
- Object.getOwnPropertyNames(instance).forEach(prop => {
27
- args[prop] = instance[prop];
28
- });
29
-
30
- return new ToClass(args);
31
- };
35
+ jsrsasign.KEYUTIL.getKey(swarmPublicKey);
32
36
 
33
37
  //
34
38
 
35
- jsrsasign.KEYUTIL.getKey(swarmPublicKey);
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+ class Recording {
56
+
57
+
58
+
59
+
60
+
61
+
62
+ static parseMany(recordings ) {
63
+ return recordings.map(item => Recording.parse(item));
64
+ }
65
+
66
+ static parse(plain ) {
67
+ return new Recording({
68
+ deleted: plain.deleted,
69
+ fileName: plain.filename,
70
+ end: plain.end_time ? moment__default['default'](plain.end_time).toDate() : null,
71
+ start: moment__default['default'](plain.start_time).toDate(),
72
+ uuid: plain.uuid,
73
+ });
74
+ }
75
+
76
+ constructor({ deleted, end, fileName, start, uuid } ) {
77
+ this.deleted = deleted;
78
+ this.end = end;
79
+ this.fileName = fileName;
80
+ this.start = start;
81
+ this.uuid = uuid;
82
+ }
83
+ }
36
84
 
37
85
  //
38
86
 
39
87
 
40
-
88
+
41
89
 
42
90
 
43
91
 
44
92
 
45
93
 
46
-
94
+
47
95
 
48
96
 
49
97
 
98
+
50
99
 
51
100
 
52
101
 
@@ -59,7 +108,7 @@ jsrsasign.KEYUTIL.getKey(swarmPublicKey);
59
108
 
60
109
 
61
110
 
62
-
111
+
63
112
 
64
113
 
65
114
 
@@ -74,13 +123,14 @@ jsrsasign.KEYUTIL.getKey(swarmPublicKey);
74
123
 
75
124
 
76
125
 
77
-
126
+
127
+
78
128
 
79
129
 
80
130
  class CallLog {
81
131
 
82
132
 
83
-
133
+
84
134
 
85
135
 
86
136
 
@@ -97,7 +147,7 @@ class CallLog {
97
147
 
98
148
 
99
149
 
100
-
150
+
101
151
 
102
152
  static merge(current , toMerge ) {
103
153
  const onlyUnique = (value, index, self) => self.indexOf(value) === index;
@@ -114,7 +164,7 @@ class CallLog {
114
164
 
115
165
  static parse(plain ) {
116
166
  return new CallLog({
117
- answer: moment__default['default'](plain.answer).toDate(),
167
+ answer: plain.answer ? moment__default['default'](plain.answer).toDate() : null,
118
168
  answered: plain.answered,
119
169
  callDirection: plain.call_direction,
120
170
  destination: {
@@ -128,13 +178,14 @@ class CallLog {
128
178
  id: plain.id,
129
179
  duration: (plain.duration || 0) * 1000, // duration is in seconds
130
180
  start: moment__default['default'](plain.start).toDate(),
131
- end: moment__default['default'](plain.end).toDate(),
181
+ end: plain.end ? moment__default['default'](plain.end).toDate() : null,
182
+ recordings: Recording.parseMany(plain.recordings),
132
183
  });
133
184
  }
134
185
 
135
186
  static parseNew(plain , session ) {
136
187
  return new CallLog({
137
- answer: moment__default['default'](plain.answer).toDate(),
188
+ answer: plain.answer ? moment__default['default'](plain.answer).toDate() : null,
138
189
  answered: plain.answered,
139
190
  callDirection: plain.call_direction,
140
191
  destination: {
@@ -148,7 +199,8 @@ class CallLog {
148
199
  id: plain.id,
149
200
  duration: (plain.duration || 0) * 1000, // duration is in seconds
150
201
  start: moment__default['default'](plain.start).toDate(),
151
- end: moment__default['default'](plain.end).toDate(),
202
+ end: plain.end ? moment__default['default'](plain.end).toDate() : null,
203
+ recordings: Recording.parseMany(plain.recordings),
152
204
  // @TODO: FIXME add verification declined vs missed call
153
205
  newMissedCall: session
154
206
  && session.hasExtension(plain.requested_extension || plain.destination_extension) && !plain.answered,
@@ -282,6 +334,15 @@ describe('CallLog domain', () => {
282
334
  requested_extension: '',
283
335
  requested_name: '',
284
336
  id: 215,
337
+ recordings: [
338
+ {
339
+ deleted: false,
340
+ end_time: '2021-08-11T13:22:50.519733+00:00',
341
+ filename: '2021-08-11T13_22_45UTC-61886-xxxx-5c72-4072-8503-e3ad9a41c0a0.wav',
342
+ start_time: '2021-08-11T13:22:45.161954+00:00',
343
+ uuid: '0394ad6f-5c72-4072-8503-e3ad9a41c0a0',
344
+ },
345
+ ],
285
346
  },
286
347
  ],
287
348
  total: 233,
@@ -306,6 +367,15 @@ describe('CallLog domain', () => {
306
367
  duration: 4000,
307
368
  start: moment__default['default']('2017-08-06T13:50:55.819057+00:00').toDate(),
308
369
  end: moment__default['default']('2017-08-08T13:51:23.822529+00:00').toDate(),
370
+ recordings: [
371
+ new Recording({
372
+ deleted: false,
373
+ end: moment__default['default']('2021-08-11T13:22:50.519733+00:00').toDate(),
374
+ fileName: '2021-08-11T13_22_45UTC-61886-xxxx-5c72-4072-8503-e3ad9a41c0a0.wav',
375
+ start: moment__default['default']('2021-08-11T13:22:45.161954+00:00').toDate(),
376
+ uuid: '0394ad6f-5c72-4072-8503-e3ad9a41c0a0',
377
+ }),
378
+ ],
309
379
  }),
310
380
  ]);
311
381
  });
@@ -2,7 +2,6 @@
2
2
 
3
3
  var sessionState = require('sip.js/lib/api/session-state');
4
4
  require('moment');
5
- var jsrsasign = require('jsrsasign');
6
5
 
7
6
  //
8
7
 
@@ -15,22 +14,6 @@ var newFrom = (instance , ToClass ) => {
15
14
  return new ToClass(args);
16
15
  };
17
16
 
18
- //
19
-
20
- const swarmPublicKey = `-----BEGIN PUBLIC KEY-----
21
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmkXOuNfY8u5xoTiIhkb8
22
- djnbIwG/Wrz3vpo8BZir8L5e1a1nSy740qBjP7ZINBQoALDhFfmdOfJnCyEGiHuz
23
- ZW6jbG6C3PryE3Bu6GKwqSmD6k3q4Zk27fpwYAnNl+rWhYYM563rJZBda/INyHNN
24
- pK7M1mixWi7gNdjjXwoEXSSBx+VpYMkY6LiAB2mvHXTY9M1qI14dvgGoQISZQoKi
25
- NMTRCg5UP2ic0Dd9nSz/XpcOxGfa+0fwIl1F7RC1tJXOqvkGGPTOV4LLfg/Yta3h
26
- nUPX9EZZDIX6vO/0IBV1LzjSl2A1bYFYAjJfowv3i1CpvONBOClHjSY5t9Y8MH6p
27
- BwIDAQAB
28
- -----END PUBLIC KEY-----`;
29
-
30
- //
31
-
32
- jsrsasign.KEYUTIL.getKey(swarmPublicKey);
33
-
34
17
  //
35
18
  /* eslint-disable no-param-reassign */
36
19
 
@@ -354,7 +337,7 @@ class CallSession {
354
337
  return newFrom(callSession, CallSession);
355
338
  }
356
339
 
357
- static parseCall(session , call ) {
340
+ static parseCall(call ) {
358
341
  return new CallSession({
359
342
  callId: call.id,
360
343
  sipCallId: call.sipCallId,
@@ -466,7 +466,7 @@ class Contact {
466
466
 
467
467
  return new Contact({
468
468
  sourceId: single.id || '',
469
- name: single.displayName,
469
+ name: single.displayName || '',
470
470
  number: numbers.length ? numbers[0].number : '',
471
471
  numbers,
472
472
  emails,
@@ -497,7 +497,7 @@ class Contact {
497
497
 
498
498
  return new Contact({
499
499
  sourceId: single.id || '',
500
- name: single.name,
500
+ name: single.name || '',
501
501
  number: numbers.length ? numbers[0].number : '',
502
502
  numbers,
503
503
  emails,
@@ -598,7 +598,7 @@ class Contact {
598
598
  } = {}) {
599
599
  this.id = id;
600
600
  this.uuid = uuid;
601
- this.name = name;
601
+ this.name = name || '';
602
602
  this.number = number;
603
603
  this.numbers = numbers;
604
604
  this.email = email;
@@ -2,7 +2,6 @@
2
2
 
3
3
  var sessionState = require('sip.js/lib/api/session-state');
4
4
  require('moment');
5
- var jsrsasign = require('jsrsasign');
6
5
 
7
6
  //
8
7
 
@@ -15,22 +14,6 @@ var newFrom = (instance , ToClass ) => {
15
14
  return new ToClass(args);
16
15
  };
17
16
 
18
- //
19
-
20
- const swarmPublicKey = `-----BEGIN PUBLIC KEY-----
21
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmkXOuNfY8u5xoTiIhkb8
22
- djnbIwG/Wrz3vpo8BZir8L5e1a1nSy740qBjP7ZINBQoALDhFfmdOfJnCyEGiHuz
23
- ZW6jbG6C3PryE3Bu6GKwqSmD6k3q4Zk27fpwYAnNl+rWhYYM563rJZBda/INyHNN
24
- pK7M1mixWi7gNdjjXwoEXSSBx+VpYMkY6LiAB2mvHXTY9M1qI14dvgGoQISZQoKi
25
- NMTRCg5UP2ic0Dd9nSz/XpcOxGfa+0fwIl1F7RC1tJXOqvkGGPTOV4LLfg/Yta3h
26
- nUPX9EZZDIX6vO/0IBV1LzjSl2A1bYFYAjJfowv3i1CpvONBOClHjSY5t9Y8MH6p
27
- BwIDAQAB
28
- -----END PUBLIC KEY-----`;
29
-
30
- //
31
-
32
- jsrsasign.KEYUTIL.getKey(swarmPublicKey);
33
-
34
17
  //
35
18
  /* eslint-disable no-param-reassign */
36
19
 
@@ -354,7 +337,7 @@ class CallSession {
354
337
  return newFrom(callSession, CallSession);
355
338
  }
356
339
 
357
- static parseCall(session , call ) {
340
+ static parseCall(call ) {
358
341
  return new CallSession({
359
342
  callId: call.id,
360
343
  sipCallId: call.sipCallId,
@@ -2,7 +2,6 @@
2
2
 
3
3
  var sessionState = require('sip.js/lib/api/session-state');
4
4
  require('moment');
5
- var jsrsasign = require('jsrsasign');
6
5
 
7
6
  //
8
7
 
@@ -15,22 +14,6 @@ var newFrom = (instance , ToClass ) => {
15
14
  return new ToClass(args);
16
15
  };
17
16
 
18
- //
19
-
20
- const swarmPublicKey = `-----BEGIN PUBLIC KEY-----
21
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmkXOuNfY8u5xoTiIhkb8
22
- djnbIwG/Wrz3vpo8BZir8L5e1a1nSy740qBjP7ZINBQoALDhFfmdOfJnCyEGiHuz
23
- ZW6jbG6C3PryE3Bu6GKwqSmD6k3q4Zk27fpwYAnNl+rWhYYM563rJZBda/INyHNN
24
- pK7M1mixWi7gNdjjXwoEXSSBx+VpYMkY6LiAB2mvHXTY9M1qI14dvgGoQISZQoKi
25
- NMTRCg5UP2ic0Dd9nSz/XpcOxGfa+0fwIl1F7RC1tJXOqvkGGPTOV4LLfg/Yta3h
26
- nUPX9EZZDIX6vO/0IBV1LzjSl2A1bYFYAjJfowv3i1CpvONBOClHjSY5t9Y8MH6p
27
- BwIDAQAB
28
- -----END PUBLIC KEY-----`;
29
-
30
- //
31
-
32
- jsrsasign.KEYUTIL.getKey(swarmPublicKey);
33
-
34
17
  //
35
18
  /* eslint-disable no-param-reassign */
36
19
 
@@ -354,7 +337,7 @@ class CallSession {
354
337
  return newFrom(callSession, CallSession);
355
338
  }
356
339
 
357
- static parseCall(session , call ) {
340
+ static parseCall(call ) {
358
341
  return new CallSession({
359
342
  callId: call.id,
360
343
  sipCallId: call.sipCallId,
@@ -1030,7 +1030,14 @@ describe('Session domain', () => {
1030
1030
  const acl = ['calld.lines.*.presences.read'];
1031
1031
  const session = new Session({ acl, expiresAt: new Date(), token: 'abc' });
1032
1032
 
1033
+ const oldWarn = console.warn;
1034
+ // $FlowFixMe
1035
+ console.warn = () => {};
1036
+
1033
1037
  expect(session.acls).toEqual(acl);
1034
1038
  expect(session.acl).toEqual(acl);
1039
+
1040
+ // $FlowFixMe
1041
+ console.warn = oldWarn;
1035
1042
  });
1036
1043
  });