sip-connector 15.1.0 → 15.3.0

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 (63) hide show
  1. package/README.md +160 -11
  2. package/dist/@SipConnector-DV4Ywba-.cjs +1 -0
  3. package/dist/{@SipConnector-G96OmJEP.js → @SipConnector-Gt9XLkRE.js} +577 -266
  4. package/dist/ApiManager/@ApiManager.d.ts +3 -0
  5. package/dist/ApiManager/constants.d.ts +4 -2
  6. package/dist/SipConnector/@SipConnector.d.ts +2 -0
  7. package/dist/SipConnector/eventNames.d.ts +1 -1
  8. package/dist/SipConnectorFacade/SipConnectorFacade.d.ts +3 -0
  9. package/dist/StatsManager/@StatsManager.d.ts +27 -0
  10. package/dist/StatsManager/eventNames.d.ts +2 -0
  11. package/dist/StatsManager/index.d.ts +2 -0
  12. package/dist/StatsPeerConnection/StatsPeerConnection.d.ts +20 -0
  13. package/dist/StatsPeerConnection/__fixtures__/callStaticsState.d.ts +3923 -0
  14. package/dist/StatsPeerConnection/constants.d.ts +14 -0
  15. package/dist/StatsPeerConnection/eventNames.d.ts +10 -0
  16. package/dist/StatsPeerConnection/index.d.ts +4 -0
  17. package/dist/StatsPeerConnection/parseStatsReports.d.ts +14 -0
  18. package/dist/StatsPeerConnection/requestAllStatistics.d.ts +11 -0
  19. package/dist/StatsPeerConnection/typings.d.ts +194 -0
  20. package/dist/StatsPeerConnection/utils/hasAvailableStats.d.ts +2 -0
  21. package/dist/StatsPeerConnection/utils/index.d.ts +3 -0
  22. package/dist/StatsPeerConnection/utils/now.d.ts +2 -0
  23. package/dist/StatsPeerConnection/utils/statsReportToObject.d.ts +4 -0
  24. package/dist/{videoSendingBalancer → VideoSendingBalancer}/ParametersSetterWithQueue.d.ts +2 -2
  25. package/dist/{videoSendingBalancer → VideoSendingBalancer}/SenderBalancer.d.ts +2 -2
  26. package/dist/{videoSendingBalancer → VideoSendingBalancer}/VideoSendingBalancer.d.ts +2 -2
  27. package/dist/{videoSendingBalancer → VideoSendingBalancer}/types.d.ts +2 -2
  28. package/dist/doMock.cjs +1 -1
  29. package/dist/doMock.js +4 -4
  30. package/dist/index.cjs +1 -1
  31. package/dist/index.d.ts +2 -2
  32. package/dist/index.js +270 -255
  33. package/dist/tools/createUaParser/createUaParser.d.ts +4 -0
  34. package/dist/tools/createUaParser/index.d.ts +1 -0
  35. package/dist/tools/createUaParser/isElectronEnvironment.d.ts +2 -0
  36. package/dist/tools/index.d.ts +4 -0
  37. package/dist/{setParametersToSender → tools/setParametersToSender}/configureDegradationPreference.d.ts +1 -1
  38. package/dist/{setParametersToSender → tools/setParametersToSender}/configureEncodings.d.ts +1 -1
  39. package/dist/{setParametersToSender → tools/setParametersToSender}/index.d.ts +1 -1
  40. package/dist/{setParametersToSender → tools/setParametersToSender}/setEncodingsToSender.d.ts +2 -2
  41. package/dist/{setParametersToSender → tools/setParametersToSender}/setMaxBitrateToSender.d.ts +1 -1
  42. package/dist/tools/setParametersToSender/setParametersToSender.d.ts +4 -0
  43. package/dist/{setParametersToSender → tools/setParametersToSender}/types.d.ts +1 -1
  44. package/package.json +9 -15
  45. package/dist/@SipConnector-BBhQzo-W.cjs +0 -1
  46. package/dist/setParametersToSender/setParametersToSender.d.ts +0 -4
  47. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/CodecProvider.d.ts +0 -0
  48. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/SenderFinder.d.ts +0 -0
  49. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/TaskQueue.d.ts +0 -0
  50. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/VideoSendingEventHandler.d.ts +0 -0
  51. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/calcBitrate/calcMaxBitrateByWidth.d.ts +0 -0
  52. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/calcBitrate/calcMaxBitrateByWidthAndCodec.d.ts +0 -0
  53. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/calcBitrate/hasAv1Codec.d.ts +0 -0
  54. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/calcBitrate/index.d.ts +0 -0
  55. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/calcBitrate/scaleBitrateByCodec.d.ts +0 -0
  56. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/calcResolution/calcScaleResolutionDownBy.d.ts +0 -0
  57. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/calcResolution/index.d.ts +0 -0
  58. /package/dist/{videoSendingBalancer → VideoSendingBalancer}/index.d.ts +0 -0
  59. /package/dist/{setParametersToSender → tools/setParametersToSender}/configureEmptyEncodings.d.ts +0 -0
  60. /package/dist/{setParametersToSender → tools/setParametersToSender}/configureMaxBitrate.d.ts +0 -0
  61. /package/dist/{setParametersToSender → tools/setParametersToSender}/configureScaleResolutionDownBy.d.ts +0 -0
  62. /package/dist/{setParametersToSender → tools/setParametersToSender}/hasChangedRTCRtpSendParameters.d.ts +0 -0
  63. /package/dist/{setParametersToSender → tools/setParametersToSender}/resolveHasNeedToUpdateItemEncoding.d.ts +0 -0
@@ -17,6 +17,9 @@ declare class ApiManager {
17
17
  sendDTMF(tone: number | string): Promise<void>;
18
18
  sendChannels({ inputChannels, outputChannels }: TChannels): Promise<void>;
19
19
  sendMediaState({ cam, mic }: TMediaState, options?: TOptionsInfoMediaState): Promise<void>;
20
+ sendStats({ availableIncomingBitrate, }: {
21
+ availableIncomingBitrate: number;
22
+ }): Promise<void>;
20
23
  sendRefusalToTurnOn(type: 'cam' | 'mic', options?: TOptionsInfoMediaState): Promise<void>;
21
24
  sendRefusalToTurnOnMic(options?: TOptionsInfoMediaState): Promise<void>;
22
25
  sendRefusalToTurnOnCam(options?: TOptionsInfoMediaState): Promise<void>;
@@ -22,7 +22,8 @@ export declare enum EHeader {
22
22
  STOP_PRESENTATION_P2P = "x-webrtc-share-state: CONTENTEND",
23
23
  STOP_PRESENTATION = "x-webrtc-share-state: STOPPRESENTATION",
24
24
  START_PRESENTATION = "x-webrtc-share-state: LETMESTARTPRESENTATION",
25
- ENABLE_MAIN_CAM = "X-WEBRTC-REQUEST-ENABLE-MEDIA-DEVICE: LETMESTARTMAINCAM"
25
+ ENABLE_MAIN_CAM = "X-WEBRTC-REQUEST-ENABLE-MEDIA-DEVICE: LETMESTARTMAINCAM",
26
+ AVAILABLE_INCOMING_BITRATE = "X-WEBRTC-AVAILABLE-INCOMING-BITRATE"
26
27
  }
27
28
  export declare enum EShareState {
28
29
  AVAILABLE_SECOND_REMOTE_STREAM = "YOUCANRECEIVECONTENT",
@@ -48,7 +49,8 @@ export declare enum EContentTypeSent {
48
49
  MEDIA_STATE = "application/vinteo.webrtc.mediastate",
49
50
  REFUSAL = "application/vinteo.webrtc.refusal",
50
51
  SHARE_STATE = "application/vinteo.webrtc.sharedesktop",
51
- MAIN_CAM = "application/vinteo.webrtc.maincam"
52
+ MAIN_CAM = "application/vinteo.webrtc.maincam",
53
+ STATS = "application/vinteo.webrtc.stats"
52
54
  }
53
55
  export declare enum EEventsMainCAM {
54
56
  PAUSE_MAIN_CAM = "PAUSEMAINCAM",
@@ -4,6 +4,7 @@ import { CallManager, TGetServerUrl } from '../CallManager';
4
4
  import { ConnectionManager } from '../ConnectionManager';
5
5
  import { IncomingCallManager } from '../IncomingCallManager';
6
6
  import { PresentationManager } from '../PresentationManager';
7
+ import { StatsManager } from '../StatsManager';
7
8
  import { EVENT_NAMES, TEvent } from './eventNames';
8
9
  import { TContentHint, TOnAddedTransceiver } from '../PresentationManager/types';
9
10
  import { TJsSIP } from '../types';
@@ -14,6 +15,7 @@ declare class SipConnector {
14
15
  readonly apiManager: ApiManager;
15
16
  readonly incomingCallManager: IncomingCallManager;
16
17
  readonly presentationManager: PresentationManager;
18
+ readonly statsManager: StatsManager;
17
19
  constructor({ JsSIP }: {
18
20
  JsSIP: TJsSIP;
19
21
  });
@@ -1,4 +1,4 @@
1
1
  import { Events } from 'events-constructor';
2
- export declare const EVENT_NAMES: readonly ("connection:connecting" | "connection:connected" | "connection:disconnected" | "connection:newRTCSession" | "connection:registered" | "connection:unregistered" | "connection:registrationFailed" | "connection:newMessage" | "connection:sipEvent" | "call:peerconnection" | "call:connecting" | "call:sending" | "call:progress" | "call:accepted" | "call:confirmed" | "call:ended" | "call:failed" | "call:newDTMF" | "call:newInfo" | "call:reinvite" | "call:update" | "call:refer" | "call:replaces" | "call:sdp" | "call:icecandidate" | "call:getusermediafailed" | "call:peerconnection:createofferfailed" | "call:peerconnection:createanswerfailed" | "call:peerconnection:setlocaldescriptionfailed" | "call:peerconnection:setremotedescriptionfailed" | "call:presentation:start" | "call:presentation:started" | "call:presentation:end" | "call:presentation:ended" | "call:presentation:failed" | "call:peerconnection:confirmed" | "call:peerconnection:ontrack" | "call:ended:fromserver" | "api:newDTMF" | "api:channels:notify" | "api:participant:added-to-list-moderators" | "api:participant:removed-from-list-moderators" | "api:participant:move-request-to-stream" | "api:participant:move-request-to-spectators" | "api:participant:move-request-to-participants" | "api:participant:move-request-to-spectators-over-sfu" | "api:participation:accepting-word-request" | "api:participation:cancelling-word-request" | "api:webcast:started" | "api:webcast:stopped" | "api:account:changed" | "api:account:deleted" | "api:conference:participant-token-issued" | "api:channels" | "api:enterRoom" | "api:shareState" | "api:main-cam-control" | "api:useLicense" | "api:admin-start-main-cam" | "api:admin-stop-main-cam" | "api:admin-start-mic" | "api:admin-stop-mic" | "api:admin-force-sync-media-state" | "api:availableSecondRemoteStream" | "api:notAvailableSecondRemoteStream" | "api:mustStopPresentation" | "incoming-call:incomingCall" | "incoming-call:declinedIncomingCall" | "incoming-call:terminatedIncomingCall" | "incoming-call:failedIncomingCall" | "presentation:presentation:start" | "presentation:presentation:started" | "presentation:presentation:end" | "presentation:presentation:ended" | "presentation:presentation:failed")[];
2
+ export declare const EVENT_NAMES: readonly ("connection:connecting" | "connection:connected" | "connection:disconnected" | "connection:newRTCSession" | "connection:registered" | "connection:unregistered" | "connection:registrationFailed" | "connection:newMessage" | "connection:sipEvent" | "call:peerconnection" | "call:connecting" | "call:sending" | "call:progress" | "call:accepted" | "call:confirmed" | "call:ended" | "call:failed" | "call:newDTMF" | "call:newInfo" | "call:reinvite" | "call:update" | "call:refer" | "call:replaces" | "call:sdp" | "call:icecandidate" | "call:getusermediafailed" | "call:peerconnection:createofferfailed" | "call:peerconnection:createanswerfailed" | "call:peerconnection:setlocaldescriptionfailed" | "call:peerconnection:setremotedescriptionfailed" | "call:presentation:start" | "call:presentation:started" | "call:presentation:end" | "call:presentation:ended" | "call:presentation:failed" | "call:peerconnection:confirmed" | "call:peerconnection:ontrack" | "call:ended:fromserver" | "api:newDTMF" | "api:channels:notify" | "api:participant:added-to-list-moderators" | "api:participant:removed-from-list-moderators" | "api:participant:move-request-to-stream" | "api:participant:move-request-to-spectators" | "api:participant:move-request-to-participants" | "api:participant:move-request-to-spectators-over-sfu" | "api:participation:accepting-word-request" | "api:participation:cancelling-word-request" | "api:webcast:started" | "api:webcast:stopped" | "api:account:changed" | "api:account:deleted" | "api:conference:participant-token-issued" | "api:channels" | "api:enterRoom" | "api:shareState" | "api:main-cam-control" | "api:useLicense" | "api:admin-start-main-cam" | "api:admin-stop-main-cam" | "api:admin-start-mic" | "api:admin-stop-mic" | "api:admin-force-sync-media-state" | "api:availableSecondRemoteStream" | "api:notAvailableSecondRemoteStream" | "api:mustStopPresentation" | "incoming-call:incomingCall" | "incoming-call:declinedIncomingCall" | "incoming-call:terminatedIncomingCall" | "incoming-call:failedIncomingCall" | "presentation:presentation:start" | "presentation:presentation:started" | "presentation:presentation:end" | "presentation:presentation:ended" | "presentation:presentation:failed" | "stats:collected")[];
3
3
  export type TEvent = (typeof EVENT_NAMES)[number];
4
4
  export type TEvents = Events<typeof EVENT_NAMES>;
@@ -2,6 +2,7 @@ import { UA } from '@krivega/jssip';
2
2
  import { EUseLicense } from '../ApiManager';
3
3
  import { TContentHint } from '../PresentationManager';
4
4
  import { SipConnector } from '../SipConnector';
5
+ import { TEventMap as TStatsEventMap } from '../StatsManager';
5
6
  import { TSimulcastEncoding } from '../types';
6
7
  type TEnterRoomHandlers = {
7
8
  onEnterPurgatory?: () => void;
@@ -180,5 +181,7 @@ declare class SipConnectorFacade implements IProxyMethods {
180
181
  onMustStopPresentation: (handler: () => void) => (() => void);
181
182
  onMoveToSpectators: (handler: () => void) => (() => void);
182
183
  onMoveToParticipants: (handler: () => void) => (() => void);
184
+ onStats: (handler: (data: TStatsEventMap["collected"]) => void) => (() => void);
185
+ offStats: (handler: (data: TStatsEventMap["collected"]) => void) => void;
183
186
  }
184
187
  export default SipConnectorFacade;
@@ -0,0 +1,27 @@
1
+ import { StatsPeerConnection, TEventMap } from '../StatsPeerConnection';
2
+ import { ApiManager } from '../ApiManager';
3
+ import { CallManager } from '../CallManager';
4
+ declare class StatsManager {
5
+ availableIncomingBitrate: number | undefined;
6
+ readonly statsPeerConnection: StatsPeerConnection;
7
+ private readonly callManager;
8
+ private readonly apiManager;
9
+ private previousAvailableIncomingBitrate;
10
+ constructor({ callManager, apiManager, }: {
11
+ callManager: CallManager;
12
+ apiManager: ApiManager;
13
+ });
14
+ get events(): import('../StatsPeerConnection/eventNames').TEvents;
15
+ on<T extends keyof TEventMap>(eventName: T, handler: (data: TEventMap[T]) => void): () => void;
16
+ once<T extends keyof TEventMap>(eventName: T, handler: (data: TEventMap[T]) => void): () => void;
17
+ onceRace<T extends keyof TEventMap>(eventNames: T[], handler: (data: TEventMap[T], eventName: string) => void): () => void;
18
+ wait<T extends keyof TEventMap>(eventName: T): Promise<TEventMap[T]>;
19
+ off<T extends keyof TEventMap>(eventName: T, handler: (data: TEventMap[T]) => void): void;
20
+ hasAvailableIncomingBitrateChangedQuarter(): boolean;
21
+ private subscribe;
22
+ private readonly handleStatsCollected;
23
+ private readonly handleStarted;
24
+ private readonly handleEnded;
25
+ private maybeSendStats;
26
+ }
27
+ export default StatsManager;
@@ -0,0 +1,2 @@
1
+ export type { TEventMap } from '../StatsPeerConnection';
2
+ export { EVENT_NAMES } from '../StatsPeerConnection/eventNames';
@@ -0,0 +1,2 @@
1
+ export { default as StatsManager } from './@StatsManager';
2
+ export type { TEventMap } from './eventNames';
@@ -0,0 +1,20 @@
1
+ import { TEventMap, TEvents } from './eventNames';
2
+ declare class StatsPeerConnection {
3
+ readonly events: TEvents;
4
+ private readonly setTimeoutRequest;
5
+ private readonly requesterAllStatistics;
6
+ constructor();
7
+ get requested(): boolean;
8
+ start(peerConnection: RTCPeerConnection, { interval, onError, }?: {
9
+ onError?: (error: unknown) => void;
10
+ interval?: number;
11
+ }): void;
12
+ stop(): void;
13
+ on<T extends keyof TEventMap>(eventName: T, handler: (data: TEventMap[T]) => void): () => void;
14
+ once<T extends keyof TEventMap>(eventName: T, handler: (data: TEventMap[T]) => void): () => void;
15
+ onceRace<T extends keyof TEventMap>(eventNames: T[], handler: (data: TEventMap[T], eventName: string) => void): () => void;
16
+ wait<T extends keyof TEventMap>(eventName: T): Promise<TEventMap[T]>;
17
+ off<T extends keyof TEventMap>(eventName: T, handler: (data: TEventMap[T]) => void): void;
18
+ private readonly resolveCollectStatistics;
19
+ }
20
+ export default StatsPeerConnection;