@voicenter-team/opensips-js 1.0.21 → 1.0.42

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 (56) hide show
  1. package/dist/index.d.ts +737 -0
  2. package/dist/opensips-js.cjs.js +155 -0
  3. package/dist/opensips-js.es.js +21363 -0
  4. package/dist/opensips-js.iife.js +155 -0
  5. package/dist/opensips-js.umd.js +155 -0
  6. package/package.json +15 -9
  7. package/src/types/Dialog.d.ts +7 -0
  8. package/src/types/Socket.d.ts +8 -0
  9. package/src/types/Transactions.d.ts +9 -0
  10. package/src/types/UAExtended.d.ts +86 -0
  11. package/src/types/listeners.d.ts +26 -2
  12. package/src/types/msrp.d.ts +55 -0
  13. package/src/types/rtc.d.ts +23 -4
  14. package/src/types/timer.d.ts +7 -0
  15. package/build/enum/call.event.listener.type.d.ts +0 -7
  16. package/build/enum/call.event.listener.type.js +0 -10
  17. package/build/enum/metric.keys.to.include.d.ts +0 -2
  18. package/build/enum/metric.keys.to.include.js +0 -4
  19. package/build/helpers/UA/index.d.ts +0 -6
  20. package/build/helpers/UA/index.js +0 -9
  21. package/build/helpers/audio.helper.d.ts +0 -9
  22. package/build/helpers/audio.helper.js +0 -61
  23. package/build/helpers/filter.helper.d.ts +0 -2
  24. package/build/helpers/filter.helper.js +0 -14
  25. package/build/helpers/time.helper.d.ts +0 -16
  26. package/build/helpers/time.helper.js +0 -28
  27. package/build/helpers/volume.helper.d.ts +0 -2
  28. package/build/helpers/volume.helper.js +0 -76
  29. package/build/helpers/webrtcmetrics/collector.d.ts +0 -32
  30. package/build/helpers/webrtcmetrics/collector.js +0 -282
  31. package/build/helpers/webrtcmetrics/engine.d.ts +0 -20
  32. package/build/helpers/webrtcmetrics/engine.js +0 -164
  33. package/build/helpers/webrtcmetrics/exporter.d.ts +0 -116
  34. package/build/helpers/webrtcmetrics/exporter.js +0 -528
  35. package/build/helpers/webrtcmetrics/extractor.d.ts +0 -1
  36. package/build/helpers/webrtcmetrics/extractor.js +0 -976
  37. package/build/helpers/webrtcmetrics/index.d.ts +0 -63
  38. package/build/helpers/webrtcmetrics/index.js +0 -93
  39. package/build/helpers/webrtcmetrics/metrics.d.ts +0 -2
  40. package/build/helpers/webrtcmetrics/metrics.js +0 -8
  41. package/build/helpers/webrtcmetrics/probe.d.ts +0 -76
  42. package/build/helpers/webrtcmetrics/probe.js +0 -153
  43. package/build/helpers/webrtcmetrics/utils/config.d.ts +0 -12
  44. package/build/helpers/webrtcmetrics/utils/config.js +0 -28
  45. package/build/helpers/webrtcmetrics/utils/helper.d.ts +0 -13
  46. package/build/helpers/webrtcmetrics/utils/helper.js +0 -134
  47. package/build/helpers/webrtcmetrics/utils/log.d.ts +0 -7
  48. package/build/helpers/webrtcmetrics/utils/log.js +0 -71
  49. package/build/helpers/webrtcmetrics/utils/models.d.ts +0 -309
  50. package/build/helpers/webrtcmetrics/utils/models.js +0 -298
  51. package/build/helpers/webrtcmetrics/utils/score.d.ts +0 -4
  52. package/build/helpers/webrtcmetrics/utils/score.js +0 -235
  53. package/build/helpers/webrtcmetrics/utils/shortUUId.d.ts +0 -1
  54. package/build/helpers/webrtcmetrics/utils/shortUUId.js +0 -7
  55. package/build/index.d.ts +0 -181
  56. package/build/index.js +0 -911
package/package.json CHANGED
@@ -1,15 +1,19 @@
1
1
  {
2
2
  "name": "@voicenter-team/opensips-js",
3
- "version": "1.0.21",
3
+ "version": "1.0.42",
4
4
  "description": "The JS package for opensips",
5
5
  "default": "src/index.ts",
6
- "main": "build/index.js",
7
- "types": "build/index.d.ts",
6
+ "jsdelivr": "dist/opensips-js.umd.js",
7
+ "main": "dist/opensips-js.cjs.js",
8
+ "module": "dist/opensips-js.es.js",
9
+ "unpkg": "dist/opensips-js.umd.js",
10
+ "types": "dist/index.d.ts",
8
11
  "scripts": {
9
- "build": "tsc --project tsconfig.json && tsc-alias -p tsconfig.json",
12
+ "build": "yarn run vite-build",
13
+ "build-no-check": "tsc --noEmit --skipLibCheck --project tsconfig.json && tsc-alias -p tsconfig.json",
10
14
  "dev": "vite",
11
- "demo-build": "vite build",
12
- "docs-build": "yarn run demo-build && cd docs && yarn && yarn run build",
15
+ "vite-build": "vite build",
16
+ "docs-build": "yarn run vite-build && cd docs && yarn && yarn run build",
13
17
  "test": "echo \"Error: no test specified\" && exit 1",
14
18
  "ts-check": "tsc --noEmit",
15
19
  "lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts --fix --ignore-path .gitignore"
@@ -35,6 +39,7 @@
35
39
  "@typescript-eslint/eslint-plugin": "^5.53.0",
36
40
  "@typescript-eslint/parser": "^5.53.0",
37
41
  "@vitejs/plugin-vue": "^4.2.3",
42
+ "@voicenter-team/eslint-config-ts": "^1.0.21",
38
43
  "dotenv": "^16.0.3",
39
44
  "eslint": "^8.35.0",
40
45
  "pre-commit": "^1.2.2",
@@ -42,20 +47,21 @@
42
47
  "regenerator-runtime": "^0.13.11",
43
48
  "tsc-alias": "^1.8.6",
44
49
  "typescript": "^4.9.5",
45
- "vite": "4.3.9",
50
+ "vite": "4.4.11",
51
+ "vite-plugin-dts": "3.5.3",
46
52
  "vite-plugin-singlefile": "^0.13.5",
47
53
  "vue": "3.2.25"
48
54
  },
49
55
  "dependencies": {
50
56
  "@types/mime": "^3.0.1",
51
57
  "generate-unique-id": "^2.0.1",
52
- "jssip": "^3.10.0",
58
+ "jssip": "3.10.0",
53
59
  "loglevel": "^1.8.1",
54
60
  "mime": "^3.0.0",
55
61
  "p-iteration": "^1.1.8"
56
62
  },
57
63
  "files": [
58
- "build",
64
+ "dist",
59
65
  "src/types"
60
66
  ]
61
67
  }
@@ -0,0 +1,7 @@
1
+ declare module 'jssip/lib/Dialog' {
2
+ export namespace Dialog {
3
+ interface Dialog {
4
+ receiveRequest(arg1: string, arg2: number): void
5
+ }
6
+ }
7
+ }
@@ -0,0 +1,8 @@
1
+ declare module 'jssip/lib/Socket' {
2
+ export class Socket {
3
+
4
+ }
5
+ export class WeightedSocket {
6
+
7
+ }
8
+ }
@@ -0,0 +1,9 @@
1
+ declare module 'jssip/lib/Transactions' {
2
+ export const checkTransaction
3
+ export class InviteServerTransaction {
4
+ constructor(ua, transport, request)
5
+ }
6
+ export class NonInviteServerTransaction {
7
+ constructor(ua, transport, request)
8
+ }
9
+ }
@@ -0,0 +1,86 @@
1
+ import { Transport } from 'jssip/lib/Transport'
2
+ import { MSRPSession, MSRPSessionEventMap, DialogType } from '@/lib/msrp/session'
3
+ import { Socket, WeightedSocket } from 'jssip/lib/Socket'
4
+ import { IncomingRequest } from 'jssip/lib/SIPMessage'
5
+ import { AnswerOptions, RTCSession } from 'jssip/lib/RTCSession'
6
+ import { CallOptionsExtended } from '@/types/rtc'
7
+
8
+ declare module 'jssip' {
9
+ export class UA {
10
+ protected _transport: Transport
11
+ protected _sessions: any[]
12
+ protected _msrp_sessions: any[]
13
+ protected _registrator: any
14
+ protected _applicants: any[]
15
+ protected _dynConfiguration: object
16
+ protected _status: number
17
+ protected _closeTimer: any
18
+ protected _configuration: any
19
+ protected _contact: any
20
+
21
+ _findDialog(call_id: string, from: string, to: string): DialogType
22
+ receiveRequest(request): void
23
+ _findSession(request): MSRPSession
24
+ call(target: string, options: CallOptionsExtended): RTCSession
25
+ }
26
+
27
+ export class Message {
28
+ constructor(ua: UA)
29
+ init_incoming(request: IncomingRequest): void
30
+ }
31
+
32
+ export class Options {
33
+ constructor(ua: UA)
34
+ init_incoming(request: IncomingRequest): void
35
+ }
36
+
37
+ export interface MSRPOptions extends AnswerOptions {
38
+ eventHandlers?: Partial<MSRPSessionEventMap>;
39
+ anonymous?: boolean;
40
+ fromUserName?: string;
41
+ fromDisplayName?: string;
42
+ }
43
+ export interface UAConfiguration {
44
+ // mandatory parameters
45
+ sockets: Socket | Socket[] | WeightedSocket[] ;
46
+ uri: string;
47
+ // optional parameters
48
+ authorization_jwt?: string;
49
+ authorization_user?: string;
50
+ connection_recovery_max_interval?: number;
51
+ connection_recovery_min_interval?: number;
52
+ contact_uri?: string;
53
+ display_name?: string;
54
+ instance_id?: string;
55
+ no_answer_timeout?: number;
56
+ session_timers?: boolean;
57
+ session_timers_refresh_method?: string;
58
+ session_timers_force_refresher?: boolean;
59
+ password?: string;
60
+ realm?: string;
61
+ ha1?: string;
62
+ register?: boolean;
63
+ register_expires?: number;
64
+ registrar_server?: string;
65
+ use_preloaded_route?: boolean;
66
+ user_agent?: string;
67
+ extra_headers?: string[];
68
+ }
69
+ export class RTCSessiono {
70
+ init_incoming(request: IncomingRequest): void
71
+ constructor(ua: UA)
72
+ }
73
+
74
+ /*export class Dialog {
75
+
76
+ }*/
77
+ }
78
+
79
+ declare module 'jssip/lib/URI' {
80
+
81
+ }
82
+
83
+ /*declare module 'jssip/lib/Dialog' {
84
+ export class owner: object
85
+ receiveRequest (request: any): void
86
+ }*/
@@ -1,11 +1,23 @@
1
- import { ICall, RoomChangeEmitType, ICallStatus } from '@/types/rtc'
2
1
  import { UAEventMap } from 'jssip/lib/UA'
3
2
 
3
+ import { IMessage, MSRPSessionExtended } from '@/types/msrp'
4
+ import { ICall, RoomChangeEmitType, ICallStatus } from '@/types/rtc'
5
+ import MSRPMessage from '@/lib/msrp/message'
6
+ import { ITimeData } from '@/types/timer'
7
+ import { IncomingMSRPSessionEvent, OutgoingMSRPSessionEvent } from '@/helpers/UA'
8
+
9
+ export type MSRPMessageEventType = {
10
+ message: MSRPMessage,
11
+ session: MSRPSessionExtended
12
+ }
13
+
4
14
  export type readyListener = (value: boolean) => void
5
15
  export type changeActiveCallsListener = (event: { [key: string]: ICall }) => void
16
+ export type changeActiveMessagesListener = (event: { [key: string]: IMessage }) => void
6
17
  export type TestEventListener = (event: { test: string }) => void
7
18
  export type ActiveRoomListener = (event: number | undefined) => void
8
19
  export type CallAddingProgressListener = (callId: string | undefined) => void
20
+ export type MSRPInitializingListener = (sessionId: string | undefined) => void
9
21
  export type RoomDeletedListener = (roomId: number) => void
10
22
  export type changeActiveInputMediaDeviceListener = (event: string) => void
11
23
  export type changeActiveOutputMediaDeviceListener = (event: string) => void
@@ -17,14 +29,22 @@ export type changeOriginalStreamListener = (value: MediaStream) => void
17
29
  export type addRoomListener = (value: RoomChangeEmitType) => void
18
30
  export type updateRoomListener = (value: RoomChangeEmitType) => void
19
31
  export type removeRoomListener = (value: RoomChangeEmitType) => void
32
+ export type IncomingMSRPSessionListener = (event: IncomingMSRPSessionEvent) => void;
33
+ export type OutgoingMSRPSessionListener = (event: OutgoingMSRPSessionEvent) => void;
34
+ export type MSRPSessionListener = IncomingMSRPSessionListener | OutgoingMSRPSessionListener;
35
+ export type MSRPMessageListener = (event: MSRPMessageEventType) => void;
20
36
  export type changeCallStatusListener = (event: { [key: string]: ICallStatus }) => void
37
+ export type changeCallTimeListener = (event: { [key: string]: ITimeData }) => void
38
+ export type changeCallMetricsListener = (event: { [key: string]: any }) => void
21
39
 
22
40
  export interface OpenSIPSEventMap extends UAEventMap {
23
41
  ready: readyListener
24
42
  changeActiveCalls: changeActiveCallsListener
43
+ changeActiveMessages: changeActiveMessagesListener
25
44
  callConfirmed: TestEventListener
26
45
  currentActiveRoomChanged: ActiveRoomListener
27
46
  callAddingInProgressChanged: CallAddingProgressListener
47
+ isMSRPInitializingChanged: MSRPInitializingListener
28
48
  roomDeleted: RoomDeletedListener
29
49
  changeActiveInputMediaDevice: changeActiveInputMediaDeviceListener
30
50
  changeActiveOutputMediaDevice: changeActiveOutputMediaDeviceListener
@@ -37,8 +57,12 @@ export interface OpenSIPSEventMap extends UAEventMap {
37
57
  updateRoom: updateRoomListener
38
58
  removeRoom: removeRoomListener
39
59
  changeCallStatus: changeCallStatusListener
60
+ changeCallTime: changeCallTimeListener
61
+ changeCallMetrics: changeCallMetricsListener
62
+ newMSRPMessage: MSRPMessageListener
63
+ newMSRPSession: MSRPSessionListener
40
64
  }
41
65
 
42
66
  export type ListenersKeyType = keyof OpenSIPSEventMap
43
67
  export type ListenersCallbackFnType = OpenSIPSEventMap[ListenersKeyType]
44
- export type ListenerCallbackFnType<T extends ListenersKeyType> = OpenSIPSEventMap[T]
68
+ export type ListenerCallbackFnType<T extends ListenersKeyType> = OpenSIPSEventMap[T]
@@ -0,0 +1,55 @@
1
+ import {
2
+ MSRPSession,
3
+ MSRPSessionEventMap
4
+ } from '@/lib/msrp/session'
5
+ import { EndEvent,
6
+ IncomingAckEvent,
7
+ IncomingEvent,
8
+ OutgoingAckEvent,
9
+ OutgoingEvent,
10
+ SessionDirection } from 'jssip/lib/RTCSession'
11
+
12
+ import { StreamMediaType } from '@/types/rtc'
13
+ import MSRPMessage from '@/lib/msrp/message'
14
+
15
+ export { MSRPMessage }
16
+
17
+ export type ListenerEventType = EndEvent | IncomingEvent | OutgoingEvent | IncomingAckEvent | OutgoingAckEvent
18
+
19
+ export interface IMessage extends MSRPSessionExtended {
20
+ roomId?: number
21
+ localMuted?: boolean
22
+ localHold?: boolean
23
+ audioTag?: StreamMediaType
24
+ terminate(): void
25
+ }
26
+
27
+
28
+ export interface MSRPSessionExtended extends MSRPSession {
29
+ id: string
30
+ status: string
31
+ start_time: Date
32
+ direction: SessionDirection
33
+ _id: string
34
+ _cancel_reason: string
35
+ _contact: string
36
+ _end_time: Date
37
+ _eventsCount: number
38
+ _from_tag: string
39
+ _is_canceled: boolean
40
+ _is_confirmed: boolean
41
+ _late_sdp: string
42
+ _status: number
43
+ _remote_identity: string
44
+ target_addr: Array<string>
45
+ answer(options?: any): void
46
+ _init_incomeing(): void
47
+ sendMSRP(body: string): void
48
+ on<T extends keyof MSRPSessionEventMap>(type: T, listener: MSRPSessionEventMap[T]): this;
49
+ }
50
+
51
+ export interface TriggerMSRPListenerOptions {
52
+ listenerType: string
53
+ session: MSRPSessionExtended
54
+ event?: ListenerEventType
55
+ }
@@ -1,5 +1,3 @@
1
- import { MediaStreamConstraints } from 'lib.dom.d.ts'
2
- import { Partial } from 'lib.es5.d.ts'
3
1
  import {
4
2
  AnswerOptions,
5
3
  EndEvent,
@@ -7,8 +5,13 @@ import {
7
5
  IncomingEvent,
8
6
  OutgoingAckEvent,
9
7
  OutgoingEvent,
10
- RTCSession, RTCSessionEventMap,
8
+ RTCSession,
9
+ RTCSessionEventMap,
10
+ MediaConstraints
11
11
  } from 'jssip/lib/RTCSession'
12
+ import {
13
+ IncomingRequest
14
+ } from 'jssip/lib/SIPMessage'
12
15
  import { UAConfiguration } from 'jssip/lib/UA'
13
16
 
14
17
  export type IntervalType = ReturnType<typeof setInterval>
@@ -39,8 +42,15 @@ export interface StreamMediaType extends HTMLAudioElement {
39
42
  setSinkId (id: string): Promise<void>
40
43
  }
41
44
 
45
+ type ExactConstraints = {
46
+ audio?: {
47
+ deviceId: {exact: string}
48
+ }
49
+ video?: boolean;
50
+ }
51
+
42
52
  export interface AnswerOptionsExtended extends AnswerOptions {
43
- mediaConstraints?: MediaStreamConstraints
53
+ mediaConstraints?: MediaConstraints | ExactConstraints
44
54
  }
45
55
 
46
56
  export interface RemoteIdentityCallType {
@@ -68,6 +78,7 @@ export interface RTCSessionExtended extends RTCSession {
68
78
  _status: number
69
79
  _remote_identity: RemoteIdentityCallType
70
80
  answer(options?: AnswerOptionsExtended): void
81
+ init_icncoming(request: IncomingRequest): void
71
82
  }
72
83
 
73
84
  export interface ICall extends RTCSessionExtended {
@@ -131,6 +142,14 @@ export interface TriggerListenerOptions {
131
142
  session: RTCSessionExtended
132
143
  event?: ListenerEventType
133
144
  }
145
+ type CommonLogMethodType = (...args: unknown[]) => void
146
+
147
+ export interface CustomLoggerType {
148
+ log: CommonLogMethodType
149
+ warn: CommonLogMethodType
150
+ error: CommonLogMethodType
151
+ debug: CommonLogMethodType
152
+ }
134
153
 
135
154
  /* UA */
136
155
  export interface CallOptionsExtended extends AnswerOptionsExtended {
@@ -0,0 +1,7 @@
1
+ export interface ITimeData {
2
+ callId: string
3
+ hours: number
4
+ minutes: number
5
+ seconds: number
6
+ formatted: string
7
+ }
@@ -1,7 +0,0 @@
1
- export declare const CALL_EVENT_LISTENER_TYPE: {
2
- NEW_CALL: string;
3
- CALL_CONFIRMED: string;
4
- CALL_FAILED: string;
5
- CALL_PROGRESS: string;
6
- CALL_ENDED: string;
7
- };
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CALL_EVENT_LISTENER_TYPE = void 0;
4
- exports.CALL_EVENT_LISTENER_TYPE = {
5
- NEW_CALL: 'new_call',
6
- CALL_CONFIRMED: 'confirmed',
7
- CALL_FAILED: 'failed',
8
- CALL_PROGRESS: 'progress',
9
- CALL_ENDED: 'ended'
10
- };
@@ -1,2 +0,0 @@
1
- import { ProbeMetricInType } from '@/types/webrtcmetrics';
2
- export declare const METRIC_KEYS_TO_INCLUDE: (keyof ProbeMetricInType)[];
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.METRIC_KEYS_TO_INCLUDE = void 0;
4
- exports.METRIC_KEYS_TO_INCLUDE = ['mos_in', 'codec_in', 'delta_KBytes_in', 'delta_kbs_in', 'delta_jitter_ms_in', 'delta_packets_lost_in'];
@@ -1,6 +0,0 @@
1
- import { UA } from 'jssip';
2
- import { CallOptionsExtended } from '@/types/rtc';
3
- import { RTCSession } from 'jssip/lib/RTCSession';
4
- export default class UAExtended extends UA {
5
- call(target: string, options?: CallOptionsExtended): RTCSession;
6
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jssip_1 = require("jssip");
4
- class UAExtended extends jssip_1.UA {
5
- call(target, options) {
6
- return super.call(target, options);
7
- }
8
- }
9
- exports.default = UAExtended;
@@ -1,9 +0,0 @@
1
- import { ICall, MediaEvent } from '@/types/rtc';
2
- import { Writeable } from '@/types/generic';
3
- type ICallKey = keyof ICall;
4
- declare const CALL_KEYS_TO_INCLUDE: Array<ICallKey>;
5
- export type ICallSimplified = Writeable<Pick<ICall, typeof CALL_KEYS_TO_INCLUDE[number]>>;
6
- export declare function simplifyCallObject(call: ICall): ICallSimplified;
7
- export declare function processAudioVolume(stream: MediaStream, volume: number): MediaStream;
8
- export declare function syncStream(event: MediaEvent, call: ICall, outputDevice: string, volume: number): void;
9
- export {};
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.syncStream = exports.processAudioVolume = exports.simplifyCallObject = void 0;
4
- const CALL_KEYS_TO_INCLUDE = [
5
- 'roomId',
6
- '_audioMuted',
7
- '_cancel_reason',
8
- '_contact',
9
- 'direction',
10
- '_end_time',
11
- '_eventsCount',
12
- '_from_tag',
13
- '_id',
14
- '_is_canceled',
15
- '_is_confirmed',
16
- '_late_sdp',
17
- '_localHold',
18
- '_videoMuted',
19
- 'status',
20
- 'start_time',
21
- '_remote_identity',
22
- 'audioTag',
23
- //'audioQuality',
24
- 'isOnHold',
25
- //'originalStream',
26
- 'localMuted',
27
- 'autoAnswer'
28
- ];
29
- function simplifyCallObject(call) {
30
- const simplified = {};
31
- CALL_KEYS_TO_INCLUDE.forEach(key => {
32
- if (call[key] !== undefined) {
33
- simplified[key] = call[key];
34
- }
35
- });
36
- simplified.localHold = call._localHold;
37
- return simplified;
38
- }
39
- exports.simplifyCallObject = simplifyCallObject;
40
- function processAudioVolume(stream, volume) {
41
- const audioContext = new AudioContext();
42
- const audioSource = audioContext.createMediaStreamSource(stream);
43
- const audioDestination = audioContext.createMediaStreamDestination();
44
- const gainNode = audioContext.createGain();
45
- audioSource.connect(gainNode);
46
- gainNode.connect(audioDestination);
47
- gainNode.gain.value = volume;
48
- return audioDestination.stream;
49
- }
50
- exports.processAudioVolume = processAudioVolume;
51
- function syncStream(event, call, outputDevice, volume) {
52
- const audio = document.createElement('audio');
53
- audio.id = call._id;
54
- audio.className = 'audioTag';
55
- audio.srcObject = event.stream;
56
- audio.setSinkId(outputDevice);
57
- audio.volume = volume;
58
- audio.play();
59
- call.audioTag = audio;
60
- }
61
- exports.syncStream = syncStream;
@@ -1,2 +0,0 @@
1
- import { ProbeMetricInType } from '@/types/webrtcmetrics';
2
- export declare function filterObjectKeys(fullObj: ProbeMetricInType, keys: Array<keyof ProbeMetricInType>): ProbeMetricInType;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterObjectKeys = void 0;
4
- function filterObjectKeys(fullObj, keys) {
5
- return Object.keys(fullObj)
6
- .filter((key) => keys.includes(key))
7
- .reduce((obj, key) => {
8
- const k = key;
9
- //const o = obj as ProbeMetricInType
10
- //o[k] = fullObj[k] //as ProbeMetricInType[keyof ProbeMetricInType]
11
- return Object.assign(Object.assign({}, obj), { [k]: fullObj[k] });
12
- }, {});
13
- }
14
- exports.filterObjectKeys = filterObjectKeys;
@@ -1,16 +0,0 @@
1
- export interface ITimeData {
2
- callId: string;
3
- hours: number;
4
- minutes: number;
5
- seconds: number;
6
- formatted: string;
7
- }
8
- export type TempTimeData = Omit<ITimeData, 'callId'> & {
9
- callId: string | undefined;
10
- };
11
- export declare function setupTime(time: TempTimeData): {
12
- seconds: number;
13
- minutes: number;
14
- hours: number;
15
- formatted: string;
16
- };
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupTime = void 0;
4
- function formatTime(time) {
5
- return time < 10 ? `0${time}` : `${time}`;
6
- }
7
- function setupTime(time) {
8
- let hours = time.hours || 0;
9
- let minutes = time.minutes || 0;
10
- let seconds = time.seconds || 0;
11
- seconds++;
12
- if (seconds === 60) {
13
- seconds = 0;
14
- minutes++;
15
- if (minutes === 60) {
16
- minutes = 0;
17
- hours++;
18
- }
19
- }
20
- const formatted = `${formatTime(hours)}:${formatTime(minutes)}:${formatTime(seconds)}`;
21
- return {
22
- seconds,
23
- minutes,
24
- hours,
25
- formatted
26
- };
27
- }
28
- exports.setupTime = setupTime;
@@ -1,2 +0,0 @@
1
- export declare const runIndicator: (stream: MediaStream, deviceId: string) => void;
2
- export declare const clearVolumeInterval: () => void;
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clearVolumeInterval = exports.runIndicator = void 0;
4
- const height = 20;
5
- const lineWidth = 4;
6
- let interval = undefined;
7
- const runIndicator = (stream, deviceId) => {
8
- if (stream && stream.getTracks().length) {
9
- //console.log('RUN INDICATOR IF')
10
- getVolumeLevelBar(stream, deviceId);
11
- }
12
- else {
13
- //console.log('RUN INDICATOR ELSE')
14
- (0, exports.clearVolumeInterval)();
15
- }
16
- };
17
- exports.runIndicator = runIndicator;
18
- const clearVolumeInterval = () => {
19
- clearInterval(interval);
20
- };
21
- exports.clearVolumeInterval = clearVolumeInterval;
22
- const getMaxSmallIndicatorHeight = (value) => {
23
- const halfLineHeight = height / 4;
24
- return value < halfLineHeight ? value : halfLineHeight;
25
- };
26
- const getVolumeLevelBar = (stream, deviceId) => {
27
- //console.log('IN GET VOLUME LEVEL BAR')
28
- //console.log('TRACKS LENGTH', stream.getTracks().length)
29
- clearInterval(interval);
30
- const audioContext = new AudioContext();
31
- const analyser = audioContext.createAnalyser();
32
- const microphone = audioContext.createMediaStreamSource(stream);
33
- const javascriptNode = audioContext.createScriptProcessor(2048, 1, 1);
34
- analyser.smoothingTimeConstant = 0.8;
35
- analyser.fftSize = 1024;
36
- microphone.connect(analyser);
37
- analyser.connect(javascriptNode);
38
- javascriptNode.connect(audioContext.destination);
39
- const canvas = document.getElementById(`canvas-${deviceId}`);
40
- if (!canvas) {
41
- return;
42
- }
43
- const indicatorWidth = lineWidth * 5;
44
- const halfLineHeight = height / 2;
45
- canvas.setAttribute('width', `${indicatorWidth}`);
46
- canvas.setAttribute('height', `${height}`);
47
- const canvasContext = canvas.getContext('2d');
48
- interval = setInterval(() => {
49
- if (!canvasContext) {
50
- return;
51
- }
52
- const array = new Uint8Array(analyser.frequencyBinCount);
53
- analyser.getByteFrequencyData(array);
54
- let values = 0;
55
- const length = array.length;
56
- for (let i = 0; i < length; i++) {
57
- values += (array[i]);
58
- }
59
- const average = values / length;
60
- //console.log('average', average)
61
- canvasContext.fillStyle = 'blue'; //getComputedStyle(document.body).getPropertyValue('--primary-actions')
62
- const halfValue = average / 2;
63
- canvasContext.clearRect(0, halfLineHeight, lineWidth, halfLineHeight);
64
- canvasContext.fillRect(0, halfLineHeight, lineWidth, getMaxSmallIndicatorHeight(halfValue));
65
- canvasContext.clearRect(0, halfLineHeight, lineWidth, -halfLineHeight);
66
- canvasContext.fillRect(0, halfLineHeight, lineWidth, 0 - getMaxSmallIndicatorHeight(halfValue));
67
- canvasContext.clearRect(lineWidth * 2, halfLineHeight, lineWidth, halfLineHeight);
68
- canvasContext.fillRect(lineWidth * 2, halfLineHeight, lineWidth, average);
69
- canvasContext.clearRect(lineWidth * 2, halfLineHeight, lineWidth, -halfLineHeight);
70
- canvasContext.fillRect(lineWidth * 2, halfLineHeight, lineWidth, 0 - average);
71
- canvasContext.clearRect(lineWidth * 4, halfLineHeight, lineWidth, halfLineHeight);
72
- canvasContext.fillRect(lineWidth * 4, halfLineHeight, lineWidth, getMaxSmallIndicatorHeight(halfValue));
73
- canvasContext.clearRect(lineWidth * 4, halfLineHeight, lineWidth, -halfLineHeight);
74
- canvasContext.fillRect(lineWidth * 4, halfLineHeight, lineWidth, 0 - getMaxSmallIndicatorHeight(halfValue));
75
- }, 200);
76
- };
@@ -1,32 +0,0 @@
1
- export default class Collector {
2
- constructor(cfg: any, refProbeId: any);
3
- _callbacks: {
4
- onreport: null;
5
- onticket: null;
6
- };
7
- _id: string;
8
- _moduleName: string;
9
- _probeId: any;
10
- _config: any;
11
- _exporter: Exporter;
12
- _state: string;
13
- analyze(stats: any, previousReport: any, beforeLastReport: any, referenceReport: any): any;
14
- takeReferenceStats(): Promise<any>;
15
- collectStats(): Promise<any>;
16
- start(): Promise<void>;
17
- set state(arg: string);
18
- get state(): string;
19
- _startedTime: Date | undefined;
20
- mute(): Promise<void>;
21
- unmute(): Promise<void>;
22
- stop(forced: any): Promise<void>;
23
- _stoppedTime: Date | undefined;
24
- registerCallback(name: any, callback: any, context: any): void;
25
- unregisterCallback(name: any): void;
26
- fireOnReport(report: any): void;
27
- fireOnTicket(ticket: any): void;
28
- updateConfig(config: any): void;
29
- addCustomEvent(at: any, category: any, name: any, description: any): void;
30
- registerToPCEvents(): Promise<void>;
31
- }
32
- import Exporter from "./exporter";