sip-connector 14.1.2-7 → 15.0.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.
- package/dist/@SipConnector-CZo7A8_q.cjs +1 -0
- package/dist/@SipConnector-DbvV1Leg.js +2247 -0
- package/dist/ApiManager/@ApiManager.d.ts +59 -0
- package/dist/ApiManager/constants.d.ts +71 -0
- package/dist/ApiManager/eventNames.d.ts +33 -0
- package/dist/ApiManager/index.d.ts +3 -0
- package/dist/ApiManager/types.d.ts +99 -0
- package/dist/CallManager/@CallManager.d.ts +26 -0
- package/dist/CallManager/AbstractCallStrategy.d.ts +47 -0
- package/dist/CallManager/MCUCallStrategy.d.ts +30 -0
- package/dist/CallManager/RemoteStreamsManager.d.ts +8 -0
- package/dist/CallManager/causes.d.ts +13 -0
- package/dist/CallManager/eventNames.d.ts +45 -0
- package/dist/CallManager/hasCanceledCallError.d.ts +2 -0
- package/dist/CallManager/index.d.ts +7 -0
- package/dist/CallManager/types.d.ts +59 -0
- package/dist/ConnectionManager/@ConnectionManager.d.ts +48 -0
- package/dist/ConnectionManager/ConfigurationManager.d.ts +60 -0
- package/dist/ConnectionManager/ConnectionFlow.d.ts +84 -0
- package/dist/ConnectionManager/ConnectionStateMachine.d.ts +61 -0
- package/dist/ConnectionManager/RegistrationManager.d.ts +17 -0
- package/dist/ConnectionManager/SipOperations.d.ts +32 -0
- package/dist/ConnectionManager/UAFactory.d.ts +50 -0
- package/dist/ConnectionManager/eventNames.d.ts +16 -0
- package/dist/ConnectionManager/index.d.ts +3 -0
- package/dist/IncomingCallManager/@IncomingCallManager.d.ts +37 -0
- package/dist/IncomingCallManager/eventNames.d.ts +13 -0
- package/dist/IncomingCallManager/index.d.ts +2 -0
- package/dist/PresentationManager/@PresentationManager.d.ts +47 -0
- package/dist/PresentationManager/constants.d.ts +1 -0
- package/dist/PresentationManager/eventNames.d.ts +11 -0
- package/dist/PresentationManager/index.d.ts +2 -0
- package/dist/PresentationManager/types.d.ts +2 -0
- package/dist/SipConnector/@SipConnector.d.ts +96 -0
- package/dist/SipConnector/eventNames.d.ts +4 -0
- package/dist/SipConnector/index.d.ts +2 -0
- package/dist/{src/SipConnectorFacade → SipConnectorFacade}/SipConnectorFacade.d.ts +7 -16
- package/dist/{src/__fixtures__ → __fixtures__}/BaseSession.mock.d.ts +9 -9
- package/dist/{src/__fixtures__ → __fixtures__}/RTCPeerConnectionMock.d.ts +6 -0
- package/dist/{src/__fixtures__ → __fixtures__}/RTCSessionMock.d.ts +13 -8
- package/dist/{src/__fixtures__ → __fixtures__}/UA.mock.d.ts +13 -15
- package/dist/{src → __fixtures__}/eventNames.d.ts +1 -1
- package/dist/{src/__fixtures__ → __fixtures__}/index.d.ts +4 -4
- package/dist/{src/__fixtures__ → __fixtures__}/jssip.mock.d.ts +3 -3
- package/dist/doMock.cjs +1 -1
- package/dist/{src/doMock.d.ts → doMock.d.ts} +2 -1
- package/dist/doMock.js +442 -341
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.js +718 -671
- package/dist/{src/setParametersToSender → setParametersToSender}/resolveHasNeedToUpdateItemEncoding.d.ts +1 -1
- package/dist/{src/tools → tools}/__fixtures__/connectToServer.d.ts +2 -2
- package/dist/{src/tools → tools}/__fixtures__/processRequest.d.ts +1 -1
- package/dist/{src/tools → tools}/error/getLinkError.d.ts +1 -1
- package/dist/{src/tools → tools}/error/getTypeFromError.d.ts +1 -1
- package/dist/{src/tools → tools}/error/getValuesFromError.d.ts +1 -1
- package/dist/{src/tools → tools}/index.d.ts +1 -1
- package/dist/{src/tools → tools}/prepareMediaStream.d.ts +1 -1
- package/dist/{src/tools → tools}/setVideoTrackContentHints.d.ts +1 -1
- package/dist/{src/tools → tools}/syncMediaState/index.d.ts +1 -1
- package/dist/{src/tools → tools}/syncMediaState/resolveOnStartMainCam.d.ts +1 -1
- package/dist/{src/tools → tools}/syncMediaState/resolveOnStartMic.d.ts +1 -1
- package/dist/{src/tools → tools}/syncMediaState/resolveOnStopMainCam.d.ts +1 -1
- package/dist/{src/tools → tools}/syncMediaState/resolveOnStopMic.d.ts +1 -1
- package/dist/types.d.ts +23 -0
- package/dist/{src/videoSendingBalancer → videoSendingBalancer}/balance.d.ts +1 -1
- package/dist/{src/videoSendingBalancer → videoSendingBalancer}/getMaxBitrateByWidth.d.ts +1 -0
- package/dist/{src/videoSendingBalancer → videoSendingBalancer}/getMaxBitrateByWidthAndCodec.d.ts +1 -0
- package/dist/{src/videoSendingBalancer → videoSendingBalancer}/index.d.ts +1 -1
- package/dist/{src/videoSendingBalancer → videoSendingBalancer}/processSender.d.ts +1 -1
- package/package.json +35 -42
- package/dist/SipConnector-BHvTGgmw.js +0 -1352
- package/dist/SipConnector-ChW25Tx9.cjs +0 -1
- package/dist/src/SipConnector.d.ts +0 -235
- package/dist/src/causes.d.ts +0 -23
- package/dist/src/headers.d.ts +0 -37
- package/dist/src/index.d.ts +0 -11
- package/dist/src/types.d.ts +0 -69
- /package/dist/{src → ConnectionManager}/getExtraHeadersRemoteAddress.d.ts +0 -0
- /package/dist/{src/SipConnectorFacade → SipConnectorFacade}/index.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/RTCRtpSenderMock.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/Registrator.mock.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/Request.mock.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/WebSocketInterface.mock.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/accountNotify.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/channels.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/channelsNotify.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/conferenceParticipantTokenIssuedNotify.d.ts +0 -0
- /package/dist/{src → __fixtures__}/constants.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/delayPromise.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/enterRoom.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/mediaState.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/participantMoveRequests.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/participantNotify.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/remoteCallerData.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/utils.d.ts +0 -0
- /package/dist/{src/__fixtures__ → __fixtures__}/webcastNotify.d.ts +0 -0
- /package/dist/{src/logger.d.ts → logger.d.ts} +0 -0
- /package/dist/{src/setParametersToSender → setParametersToSender}/configureDegradationPreference.d.ts +0 -0
- /package/dist/{src/setParametersToSender → setParametersToSender}/configureEmptyEncodings.d.ts +0 -0
- /package/dist/{src/setParametersToSender → setParametersToSender}/configureEncodings.d.ts +0 -0
- /package/dist/{src/setParametersToSender → setParametersToSender}/configureMaxBitrate.d.ts +0 -0
- /package/dist/{src/setParametersToSender → setParametersToSender}/configureScaleResolutionDownBy.d.ts +0 -0
- /package/dist/{src/setParametersToSender → setParametersToSender}/hasChangedRTCRtpSendParameters.d.ts +0 -0
- /package/dist/{src/setParametersToSender → setParametersToSender}/index.d.ts +0 -0
- /package/dist/{src/setParametersToSender → setParametersToSender}/setParametersToSender.d.ts +0 -0
- /package/dist/{src/tools → tools}/__fixtures__/call.d.ts +0 -0
- /package/dist/{src/tools → tools}/__fixtures__/hasValidUri.d.ts +0 -0
- /package/dist/{src/tools → tools}/__fixtures__/permissions.d.ts +0 -0
- /package/dist/{src/tools → tools}/__tests-utils__/parseObject.d.ts +0 -0
- /package/dist/{src/tools → tools}/__tests-utils__/resolveParseArray.d.ts +0 -0
- /package/dist/{src/tools → tools}/error/index.d.ts +0 -0
- /package/dist/{src/tools → tools}/error/stringifyMessage.d.ts +0 -0
- /package/dist/{src/tools → tools}/generateSimulcastEncodings.d.ts +0 -0
- /package/dist/{src/tools → tools}/getExtraHeaders.d.ts +0 -0
- /package/dist/{src/tools → tools}/getUserAgent.d.ts +0 -0
- /package/dist/{src/tools → tools}/hasPurgatory.d.ts +0 -0
- /package/dist/{src/tools → tools}/resolveUpdateTransceiver.d.ts +0 -0
- /package/dist/{src/tools/sendDTMFAccumulated.d.ts → tools/sendDtmfFAccumulated.d.ts} +0 -0
- /package/dist/{src/utils → utils}/errors.d.ts +0 -0
- /package/dist/{src/utils → utils}/findSenderByStream.d.ts +0 -0
- /package/dist/{src/utils → utils}/findVideoSender.d.ts +0 -0
- /package/dist/{src/utils → utils}/findVideoTrack.d.ts +0 -0
- /package/dist/{src/utils → utils}/getCodecFromSender.d.ts +0 -0
- /package/dist/{src/utils → utils}/replaceForbiddenSymbolsWithUnderscore.d.ts +0 -0
- /package/dist/{src/videoSendingBalancer → videoSendingBalancer}/hasAv1Codec.d.ts +0 -0
- /package/dist/{src/videoSendingBalancer → videoSendingBalancer}/hasIncludesString.d.ts +0 -0
- /package/dist/{src/videoSendingBalancer → videoSendingBalancer}/scaleBitrate.d.ts +0 -0
- /package/dist/{src/videoSendingBalancer → videoSendingBalancer}/scaleBitrateByCodec.d.ts +0 -0
- /package/dist/{src/videoSendingBalancer → videoSendingBalancer}/scaleResolutionAndBitrate.d.ts +0 -0
- /package/dist/{src/videoSendingBalancer → videoSendingBalancer}/setEncodingsToSender.d.ts +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { UA, WebSocketInterface } from '@krivega/jssip';
|
|
2
|
+
import { Events } from 'events-constructor';
|
|
3
|
+
import { TGetServerUrl } from '../CallManager';
|
|
4
|
+
import { TJsSIP } from '../types';
|
|
5
|
+
import { default as ConnectionStateMachine } from './ConnectionStateMachine';
|
|
6
|
+
import { EVENT_NAMES } from './eventNames';
|
|
7
|
+
import { default as RegistrationManager } from './RegistrationManager';
|
|
8
|
+
import { default as UAFactory } from './UAFactory';
|
|
9
|
+
export type TOptionsExtraHeaders = {
|
|
10
|
+
extraHeaders?: string[];
|
|
11
|
+
};
|
|
12
|
+
export type TParametersConnection = TOptionsExtraHeaders & {
|
|
13
|
+
displayName?: string;
|
|
14
|
+
user?: string;
|
|
15
|
+
password?: string;
|
|
16
|
+
register?: boolean;
|
|
17
|
+
sipServerUrl: string;
|
|
18
|
+
sipWebSocketServerURL: string;
|
|
19
|
+
remoteAddress?: string;
|
|
20
|
+
sessionTimers?: boolean;
|
|
21
|
+
registerExpires?: number;
|
|
22
|
+
connectionRecoveryMinInterval?: number;
|
|
23
|
+
connectionRecoveryMaxInterval?: number;
|
|
24
|
+
userAgent?: string;
|
|
25
|
+
};
|
|
26
|
+
export type TConnect = (parameters: TParametersConnection, options?: {
|
|
27
|
+
callLimit?: number;
|
|
28
|
+
}) => Promise<UA>;
|
|
29
|
+
export type TSet = (parameters: {
|
|
30
|
+
displayName?: string;
|
|
31
|
+
}) => Promise<boolean>;
|
|
32
|
+
interface IDependencies {
|
|
33
|
+
JsSIP: TJsSIP;
|
|
34
|
+
events: Events<typeof EVENT_NAMES>;
|
|
35
|
+
uaFactory: UAFactory;
|
|
36
|
+
stateMachine: ConnectionStateMachine;
|
|
37
|
+
registrationManager: RegistrationManager;
|
|
38
|
+
getUa: () => UA | undefined;
|
|
39
|
+
setUa: (ua: UA | undefined) => void;
|
|
40
|
+
getConnectionConfiguration: () => {
|
|
41
|
+
sipServerUrl?: string;
|
|
42
|
+
displayName?: string;
|
|
43
|
+
register?: boolean;
|
|
44
|
+
user?: string;
|
|
45
|
+
password?: string;
|
|
46
|
+
};
|
|
47
|
+
setConnectionConfiguration: (config: {
|
|
48
|
+
sipServerUrl?: string;
|
|
49
|
+
displayName?: string;
|
|
50
|
+
register?: boolean;
|
|
51
|
+
user?: string;
|
|
52
|
+
password?: string;
|
|
53
|
+
}) => void;
|
|
54
|
+
updateConnectionConfiguration: (key: 'displayName', value: string) => void;
|
|
55
|
+
setSipServerUrl: (getSipServerUrl: TGetServerUrl) => void;
|
|
56
|
+
setSocket: (socket: WebSocketInterface) => void;
|
|
57
|
+
}
|
|
58
|
+
export default class ConnectionFlow {
|
|
59
|
+
private cancelableConnectWithRepeatedCalls;
|
|
60
|
+
private readonly JsSIP;
|
|
61
|
+
private readonly events;
|
|
62
|
+
private readonly uaFactory;
|
|
63
|
+
private readonly stateMachine;
|
|
64
|
+
private readonly registrationManager;
|
|
65
|
+
private readonly getUa;
|
|
66
|
+
private readonly setUa;
|
|
67
|
+
private readonly getConnectionConfiguration;
|
|
68
|
+
private readonly setConnectionConfiguration;
|
|
69
|
+
private readonly updateConnectionConfiguration;
|
|
70
|
+
private readonly setSipServerUrl;
|
|
71
|
+
private readonly setSocket;
|
|
72
|
+
constructor(dependencies: IDependencies);
|
|
73
|
+
connect: TConnect;
|
|
74
|
+
set: TSet;
|
|
75
|
+
disconnect: () => Promise<void>;
|
|
76
|
+
cancelRequests(): void;
|
|
77
|
+
private readonly connectWithDuplicatedCalls;
|
|
78
|
+
private hasEqualConnectionConfiguration;
|
|
79
|
+
private readonly connectInner;
|
|
80
|
+
private readonly initUa;
|
|
81
|
+
private readonly start;
|
|
82
|
+
private cancelConnectWithRepeatedCalls;
|
|
83
|
+
}
|
|
84
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Events } from 'events-constructor';
|
|
2
|
+
import { EVENT_NAMES } from './eventNames';
|
|
3
|
+
export declare enum EEvents {
|
|
4
|
+
START_CONNECT = "START_CONNECT",
|
|
5
|
+
START_INIT_UA = "START_INIT_UA",
|
|
6
|
+
UA_CONNECTED = "UA_CONNECTED",
|
|
7
|
+
UA_REGISTERED = "UA_REGISTERED",
|
|
8
|
+
UA_UNREGISTERED = "UA_UNREGISTERED",
|
|
9
|
+
UA_DISCONNECTED = "UA_DISCONNECTED",
|
|
10
|
+
CONNECTION_FAILED = "CONNECTION_FAILED",
|
|
11
|
+
RESET = "RESET"
|
|
12
|
+
}
|
|
13
|
+
type TConnectionMachineEvent = `${EEvents}`;
|
|
14
|
+
export declare enum EState {
|
|
15
|
+
IDLE = "idle",
|
|
16
|
+
CONNECTING = "connecting",
|
|
17
|
+
INITIALIZING = "initializing",
|
|
18
|
+
CONNECTED = "connected",
|
|
19
|
+
REGISTERED = "registered",
|
|
20
|
+
DISCONNECTED = "disconnected",
|
|
21
|
+
FAILED = "failed"
|
|
22
|
+
}
|
|
23
|
+
export default class ConnectionStateMachine {
|
|
24
|
+
private readonly actor;
|
|
25
|
+
private readonly stateChangeListeners;
|
|
26
|
+
private readonly events;
|
|
27
|
+
private unsubscribeFromEvents?;
|
|
28
|
+
private readonly actorSubscription?;
|
|
29
|
+
constructor(events: Events<typeof EVENT_NAMES>);
|
|
30
|
+
get state(): EState;
|
|
31
|
+
get isIdle(): boolean;
|
|
32
|
+
get isConnecting(): boolean;
|
|
33
|
+
get isInitializing(): boolean;
|
|
34
|
+
get isConnected(): boolean;
|
|
35
|
+
get isRegistered(): boolean;
|
|
36
|
+
get isDisconnected(): boolean;
|
|
37
|
+
get isFailed(): boolean;
|
|
38
|
+
get isPending(): boolean;
|
|
39
|
+
get isPendingConnect(): boolean;
|
|
40
|
+
get isPendingInitUa(): boolean;
|
|
41
|
+
get isActiveConnection(): boolean;
|
|
42
|
+
startConnect(): void;
|
|
43
|
+
startInitUa(): void;
|
|
44
|
+
reset(): void;
|
|
45
|
+
destroy(): void;
|
|
46
|
+
onStateChange(listener: (state: EState) => void): () => void;
|
|
47
|
+
canTransition(event: TConnectionMachineEvent): boolean;
|
|
48
|
+
getValidEvents(): TConnectionMachineEvent[];
|
|
49
|
+
private hasState;
|
|
50
|
+
private sendEvent;
|
|
51
|
+
private readonly toStartConnect;
|
|
52
|
+
private readonly toStartInitUa;
|
|
53
|
+
private readonly toConnected;
|
|
54
|
+
private readonly toRegistered;
|
|
55
|
+
private readonly toUnregistered;
|
|
56
|
+
private readonly toDisconnected;
|
|
57
|
+
private readonly toFailed;
|
|
58
|
+
private readonly toIdle;
|
|
59
|
+
private subscribeToEvents;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { RegisteredEvent, UA, UnRegisteredEvent } from '@krivega/jssip';
|
|
2
|
+
import { Events } from 'events-constructor';
|
|
3
|
+
import { EVENT_NAMES } from './eventNames';
|
|
4
|
+
interface IDependencies {
|
|
5
|
+
events: Events<typeof EVENT_NAMES>;
|
|
6
|
+
getUaProtected: () => UA;
|
|
7
|
+
}
|
|
8
|
+
export default class RegistrationManager {
|
|
9
|
+
private readonly events;
|
|
10
|
+
private readonly getUaProtected;
|
|
11
|
+
constructor(dependencies: IDependencies);
|
|
12
|
+
register(): Promise<RegisteredEvent>;
|
|
13
|
+
unregister(): Promise<UnRegisteredEvent>;
|
|
14
|
+
tryRegister(): Promise<RegisteredEvent>;
|
|
15
|
+
subscribeToStartEvents(onSuccess: () => void, onError: (error: Error) => void): () => void;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { UA, URI } from '@krivega/jssip';
|
|
2
|
+
import { default as UAFactory } from './UAFactory';
|
|
3
|
+
export type TParametersCheckTelephony = {
|
|
4
|
+
displayName: string;
|
|
5
|
+
sipServerUrl: string;
|
|
6
|
+
sipWebSocketServerURL: string;
|
|
7
|
+
userAgent?: string;
|
|
8
|
+
remoteAddress?: string;
|
|
9
|
+
extraHeaders?: string[];
|
|
10
|
+
};
|
|
11
|
+
interface IDependencies {
|
|
12
|
+
uaFactory: UAFactory;
|
|
13
|
+
getUaProtected: () => UA;
|
|
14
|
+
}
|
|
15
|
+
export default class SipOperations {
|
|
16
|
+
private readonly uaFactory;
|
|
17
|
+
private readonly getUaProtected;
|
|
18
|
+
constructor(dependencies: IDependencies);
|
|
19
|
+
/**
|
|
20
|
+
* Отправляет SIP OPTIONS запрос к указанному адресу
|
|
21
|
+
*/
|
|
22
|
+
sendOptions(target: URI | string, body?: string, extraHeaders?: string[]): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Отправляет SIP OPTIONS запрос к собственному URI (ping)
|
|
25
|
+
*/
|
|
26
|
+
ping(body?: string, extraHeaders?: string[]): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Проверяет доступность телефонии, создавая временное соединение
|
|
29
|
+
*/
|
|
30
|
+
checkTelephony({ userAgent, displayName, sipServerUrl, sipWebSocketServerURL, remoteAddress, extraHeaders, }: TParametersCheckTelephony): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { UA, UAConfigurationParams, WebSocketInterface } from '@krivega/jssip';
|
|
2
|
+
import { TJsSIP } from '../types';
|
|
3
|
+
export type TUAConfiguration = {
|
|
4
|
+
configuration: UAConfigurationParams;
|
|
5
|
+
helpers: {
|
|
6
|
+
socket: WebSocketInterface;
|
|
7
|
+
getSipServerUrl: (id: string) => string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export type TCreateUAParameters = UAConfigurationParams & {
|
|
11
|
+
remoteAddress?: string;
|
|
12
|
+
extraHeaders?: string[];
|
|
13
|
+
};
|
|
14
|
+
type TParametersCreateUaConfiguration = {
|
|
15
|
+
sipWebSocketServerURL: string;
|
|
16
|
+
displayName?: string;
|
|
17
|
+
sipServerUrl: string;
|
|
18
|
+
user?: string;
|
|
19
|
+
register?: boolean;
|
|
20
|
+
password?: string;
|
|
21
|
+
sessionTimers?: boolean;
|
|
22
|
+
registerExpires?: number;
|
|
23
|
+
connectionRecoveryMinInterval?: number;
|
|
24
|
+
connectionRecoveryMaxInterval?: number;
|
|
25
|
+
userAgent?: string;
|
|
26
|
+
};
|
|
27
|
+
export default class UAFactory {
|
|
28
|
+
private readonly JsSIP;
|
|
29
|
+
constructor(JsSIP: TJsSIP);
|
|
30
|
+
static isRegisteredUA(ua?: UA): boolean;
|
|
31
|
+
private static validateConfiguration;
|
|
32
|
+
private static resolveAuthorizationUser;
|
|
33
|
+
private static buildExtraHeaders;
|
|
34
|
+
createConfiguration({ user, password, sipWebSocketServerURL, displayName, sipServerUrl, register, sessionTimers, registerExpires, // 5 minutes in sec
|
|
35
|
+
connectionRecoveryMinInterval, connectionRecoveryMaxInterval, userAgent, }: TParametersCreateUaConfiguration): TUAConfiguration;
|
|
36
|
+
createUA({ remoteAddress, extraHeaders, ...parameters }: TCreateUAParameters): UA;
|
|
37
|
+
/**
|
|
38
|
+
* Создает UA с полным жизненным циклом - конфигурация + создание + настройка событий
|
|
39
|
+
*/
|
|
40
|
+
createUAWithConfiguration(parameters: TParametersCreateUaConfiguration & {
|
|
41
|
+
remoteAddress?: string;
|
|
42
|
+
extraHeaders?: string[];
|
|
43
|
+
}, events: {
|
|
44
|
+
eachTriggers: (callback: (trigger: (...args: unknown[]) => void, eventName: string) => void) => void;
|
|
45
|
+
}): {
|
|
46
|
+
ua: UA;
|
|
47
|
+
helpers: TUAConfiguration['helpers'];
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Events } from 'events-constructor';
|
|
2
|
+
export declare enum EEvent {
|
|
3
|
+
CONNECTING = "connecting",
|
|
4
|
+
CONNECTED = "connected",
|
|
5
|
+
DISCONNECTED = "disconnected",
|
|
6
|
+
NEW_RTC_SESSION = "newRTCSession",
|
|
7
|
+
REGISTERED = "registered",
|
|
8
|
+
UNREGISTERED = "unregistered",
|
|
9
|
+
REGISTRATION_FAILED = "registrationFailed",
|
|
10
|
+
NEW_MESSAGE = "newMessage",
|
|
11
|
+
SIP_EVENT = "sipEvent"
|
|
12
|
+
}
|
|
13
|
+
export declare const UA_EVENT_NAMES: readonly ["connecting", "connected", "disconnected", "newRTCSession", "registered", "unregistered", "registrationFailed", "newMessage", "sipEvent"];
|
|
14
|
+
export declare const EVENT_NAMES: ("connecting" | "connected" | "disconnected" | "newRTCSession" | "registered" | "unregistered" | "registrationFailed" | "newMessage" | "sipEvent")[];
|
|
15
|
+
export type TEvent = (typeof EVENT_NAMES)[number];
|
|
16
|
+
export type TEvents = Events<typeof EVENT_NAMES>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { default as ConnectionManager } from './@ConnectionManager';
|
|
2
|
+
export { EVENT_NAMES as CONNECTION_MANAGER_EVENT_NAMES, EEvent as EConnectionManagerEvent, } from './eventNames';
|
|
3
|
+
export type { TEvent as TConnectionManagerEvent, TEvents as TConnectionManagerEvents, } from './eventNames';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { RTCSession } from '@krivega/jssip';
|
|
2
|
+
import { Events } from 'events-constructor';
|
|
3
|
+
import { ConnectionManager } from '../ConnectionManager';
|
|
4
|
+
import { TEvent, EVENT_NAMES } from './eventNames';
|
|
5
|
+
type TRemoteCallerData = {
|
|
6
|
+
displayName?: string;
|
|
7
|
+
host?: string;
|
|
8
|
+
incomingNumber?: string;
|
|
9
|
+
rtcSession?: RTCSession;
|
|
10
|
+
};
|
|
11
|
+
export default class IncomingCallManager {
|
|
12
|
+
readonly events: Events<typeof EVENT_NAMES>;
|
|
13
|
+
private incomingRTCSession?;
|
|
14
|
+
private readonly connectionManager;
|
|
15
|
+
constructor(connectionManager: ConnectionManager);
|
|
16
|
+
get remoteCallerData(): TRemoteCallerData;
|
|
17
|
+
get isAvailableIncomingCall(): boolean;
|
|
18
|
+
start(): void;
|
|
19
|
+
stop(): void;
|
|
20
|
+
getIncomingRTCSession: () => RTCSession;
|
|
21
|
+
extractIncomingRTCSession: () => RTCSession;
|
|
22
|
+
declineToIncomingCall({ statusCode, }?: {
|
|
23
|
+
statusCode?: number;
|
|
24
|
+
}): Promise<void>;
|
|
25
|
+
busyIncomingCall(): Promise<void>;
|
|
26
|
+
on<T>(eventName: TEvent, handler: (data: T) => void): () => void;
|
|
27
|
+
once<T>(eventName: TEvent, handler: (data: T) => void): () => void;
|
|
28
|
+
onceRace<T>(eventNames: TEvent[], handler: (data: T, eventName: string) => void): () => void;
|
|
29
|
+
wait<T>(eventName: TEvent): Promise<T>;
|
|
30
|
+
off<T>(eventName: TEvent, handler: (data: T) => void): void;
|
|
31
|
+
private subscribe;
|
|
32
|
+
private unsubscribe;
|
|
33
|
+
private readonly handleNewRTCSession;
|
|
34
|
+
private setIncomingSession;
|
|
35
|
+
private removeIncomingSession;
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare enum EEvent {
|
|
2
|
+
INCOMING_CALL = "incomingCall",
|
|
3
|
+
DECLINED_INCOMING_CALL = "declinedIncomingCall",
|
|
4
|
+
TERMINATED_INCOMING_CALL = "terminatedIncomingCall",
|
|
5
|
+
FAILED_INCOMING_CALL = "failedIncomingCall"
|
|
6
|
+
}
|
|
7
|
+
export declare enum Originator {
|
|
8
|
+
LOCAL = "local",
|
|
9
|
+
REMOTE = "remote",
|
|
10
|
+
SYSTEM = "system"
|
|
11
|
+
}
|
|
12
|
+
export declare const EVENT_NAMES: readonly ["incomingCall", "declinedIncomingCall", "terminatedIncomingCall", "failedIncomingCall"];
|
|
13
|
+
export type TEvent = (typeof EVENT_NAMES)[number];
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { CallManager } from '../CallManager';
|
|
2
|
+
import { TEvent, TEvents } from './eventNames';
|
|
3
|
+
import { TContentHint, TOnAddedTransceiver } from './types';
|
|
4
|
+
export declare const hasCanceledStartPresentationError: (error: unknown) => error is import('repeated-calls').TCanceledError<unknown>;
|
|
5
|
+
declare class PresentationManager {
|
|
6
|
+
readonly events: TEvents;
|
|
7
|
+
promisePendingStartPresentation?: Promise<MediaStream>;
|
|
8
|
+
promisePendingStopPresentation?: Promise<MediaStream | undefined>;
|
|
9
|
+
streamPresentationCurrent?: MediaStream;
|
|
10
|
+
private cancelableSendPresentationWithRepeatedCalls;
|
|
11
|
+
private readonly callManager;
|
|
12
|
+
constructor({ callManager }: {
|
|
13
|
+
callManager: CallManager;
|
|
14
|
+
});
|
|
15
|
+
get isPendingPresentation(): boolean;
|
|
16
|
+
startPresentation(beforeStartPresentation: () => Promise<void>, stream: MediaStream, { isNeedReinvite, maxBitrate, contentHint, sendEncodings, onAddedTransceiver, }?: {
|
|
17
|
+
isNeedReinvite?: boolean;
|
|
18
|
+
maxBitrate?: number;
|
|
19
|
+
contentHint?: TContentHint;
|
|
20
|
+
sendEncodings?: RTCRtpEncodingParameters[];
|
|
21
|
+
onAddedTransceiver?: TOnAddedTransceiver;
|
|
22
|
+
}, options?: {
|
|
23
|
+
callLimit: number;
|
|
24
|
+
}): Promise<MediaStream>;
|
|
25
|
+
stopPresentation(beforeStopPresentation: () => Promise<void>): Promise<MediaStream | undefined>;
|
|
26
|
+
updatePresentation(beforeStartPresentation: () => Promise<void>, stream: MediaStream, { contentHint, sendEncodings, onAddedTransceiver, }?: {
|
|
27
|
+
isP2P?: boolean;
|
|
28
|
+
contentHint?: TContentHint;
|
|
29
|
+
sendEncodings?: RTCRtpEncodingParameters[];
|
|
30
|
+
onAddedTransceiver?: TOnAddedTransceiver;
|
|
31
|
+
}): Promise<MediaStream | undefined>;
|
|
32
|
+
cancelSendPresentationWithRepeatedCalls(): void;
|
|
33
|
+
on<T>(eventName: TEvent, handler: (data: T) => void): () => void;
|
|
34
|
+
once<T>(eventName: TEvent, handler: (data: T) => void): () => void;
|
|
35
|
+
onceRace<T>(eventNames: TEvent[], handler: (data: T, eventName: string) => void): () => void;
|
|
36
|
+
wait<T>(eventName: TEvent): Promise<T>;
|
|
37
|
+
off<T>(eventName: TEvent, handler: (data: T) => void): void;
|
|
38
|
+
private subscribe;
|
|
39
|
+
private sendPresentationWithDuplicatedCalls;
|
|
40
|
+
private sendPresentation;
|
|
41
|
+
private readonly getRtcSessionProtected;
|
|
42
|
+
private readonly handleEnded;
|
|
43
|
+
private reset;
|
|
44
|
+
private resetPresentation;
|
|
45
|
+
private removeStreamPresentationCurrent;
|
|
46
|
+
}
|
|
47
|
+
export default PresentationManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ONE_MEGABIT_IN_BITS = 1000000;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Events } from 'events-constructor';
|
|
2
|
+
export declare enum EEvent {
|
|
3
|
+
START_PRESENTATION = "presentation:start",
|
|
4
|
+
STARTED_PRESENTATION = "presentation:started",
|
|
5
|
+
END_PRESENTATION = "presentation:end",
|
|
6
|
+
ENDED_PRESENTATION = "presentation:ended",
|
|
7
|
+
FAILED_PRESENTATION = "presentation:failed"
|
|
8
|
+
}
|
|
9
|
+
export declare const EVENT_NAMES: readonly ["presentation:start", "presentation:started", "presentation:end", "presentation:ended", "presentation:failed"];
|
|
10
|
+
export type TEvent = (typeof EVENT_NAMES)[number];
|
|
11
|
+
export type TEvents = Events<typeof EVENT_NAMES>;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Events } from 'events-constructor';
|
|
2
|
+
import { ApiManager } from '../ApiManager';
|
|
3
|
+
import { TGetServerUrl, CallManager } from '../CallManager';
|
|
4
|
+
import { ConnectionManager } from '../ConnectionManager';
|
|
5
|
+
import { IncomingCallManager } from '../IncomingCallManager';
|
|
6
|
+
import { PresentationManager } from '../PresentationManager';
|
|
7
|
+
import { TContentHint, TOnAddedTransceiver } from '../PresentationManager/types';
|
|
8
|
+
import { TJsSIP } from '../types';
|
|
9
|
+
import { TEvent, EVENT_NAMES } from './eventNames';
|
|
10
|
+
declare class SipConnector {
|
|
11
|
+
readonly events: Events<typeof EVENT_NAMES>;
|
|
12
|
+
readonly connectionManager: ConnectionManager;
|
|
13
|
+
readonly callManager: CallManager;
|
|
14
|
+
readonly apiManager: ApiManager;
|
|
15
|
+
readonly incomingCallManager: IncomingCallManager;
|
|
16
|
+
readonly presentationManager: PresentationManager;
|
|
17
|
+
constructor({ JsSIP }: {
|
|
18
|
+
JsSIP: TJsSIP;
|
|
19
|
+
});
|
|
20
|
+
get requestedConnection(): boolean;
|
|
21
|
+
get isPendingConnect(): boolean;
|
|
22
|
+
get isPendingInitUa(): boolean;
|
|
23
|
+
get connectionState(): import('../ConnectionManager/ConnectionStateMachine').EState;
|
|
24
|
+
get isRegistered(): boolean;
|
|
25
|
+
get isRegisterConfig(): boolean;
|
|
26
|
+
get socket(): import('@krivega/jssip').WebSocketInterface | undefined;
|
|
27
|
+
get requestedCall(): boolean;
|
|
28
|
+
get connection(): RTCPeerConnection | undefined;
|
|
29
|
+
get establishedRTCSession(): import('@krivega/jssip').RTCSession | undefined;
|
|
30
|
+
get isCallActive(): boolean;
|
|
31
|
+
get remoteCallerData(): IncomingCallManager['remoteCallerData'];
|
|
32
|
+
get isAvailableIncomingCall(): IncomingCallManager['isAvailableIncomingCall'];
|
|
33
|
+
on<T>(eventName: TEvent, handler: (data: T) => void): () => void;
|
|
34
|
+
once<T>(eventName: TEvent, handler: (data: T) => void): () => void;
|
|
35
|
+
onceRace<T>(eventNames: TEvent[], handler: (data: T, eventName: string) => void): () => void;
|
|
36
|
+
wait<T>(eventName: TEvent): Promise<T>;
|
|
37
|
+
off<T>(eventName: TEvent, handler: (data: T) => void): void;
|
|
38
|
+
connect: ConnectionManager['connect'];
|
|
39
|
+
set: ConnectionManager['set'];
|
|
40
|
+
disconnect: () => Promise<void>;
|
|
41
|
+
register: () => Promise<import('@krivega/jssip').RegisteredEvent>;
|
|
42
|
+
unregister: () => Promise<import('@krivega/jssip').UnRegisteredEvent>;
|
|
43
|
+
tryRegister: () => Promise<import('@krivega/jssip').RegisteredEvent>;
|
|
44
|
+
sendOptions: (target: Parameters<ConnectionManager["sendOptions"]>[0], body?: Parameters<ConnectionManager["sendOptions"]>[1], extraHeaders?: Parameters<ConnectionManager["sendOptions"]>[2]) => Promise<void>;
|
|
45
|
+
ping: (body?: Parameters<ConnectionManager["ping"]>[0], extraHeaders?: Parameters<ConnectionManager["ping"]>[1]) => Promise<void>;
|
|
46
|
+
checkTelephony: ConnectionManager['checkTelephony'];
|
|
47
|
+
isConfigured: () => boolean;
|
|
48
|
+
getConnectionConfiguration: () => import('../ConnectionManager/ConfigurationManager').IConnectionConfiguration;
|
|
49
|
+
getSipServerUrl: TGetServerUrl;
|
|
50
|
+
call: (params: Parameters<CallManager["startCall"]>[2]) => Promise<RTCPeerConnection>;
|
|
51
|
+
hangUp: CallManager['endCall'];
|
|
52
|
+
answerToIncomingCall: (params: Parameters<CallManager["answerToIncomingCall"]>[1]) => Promise<RTCPeerConnection>;
|
|
53
|
+
declineToIncomingCall: IncomingCallManager['declineToIncomingCall'];
|
|
54
|
+
getEstablishedRTCSession: CallManager['getEstablishedRTCSession'];
|
|
55
|
+
getCallConfiguration: CallManager['getCallConfiguration'];
|
|
56
|
+
getRemoteStreams: CallManager['getRemoteStreams'];
|
|
57
|
+
replaceMediaStream: CallManager['replaceMediaStream'];
|
|
58
|
+
startPresentation(stream: MediaStream, options?: {
|
|
59
|
+
isP2P?: boolean;
|
|
60
|
+
isNeedReinvite?: boolean;
|
|
61
|
+
maxBitrate?: number;
|
|
62
|
+
contentHint?: TContentHint;
|
|
63
|
+
sendEncodings?: RTCRtpEncodingParameters[];
|
|
64
|
+
onAddedTransceiver?: TOnAddedTransceiver;
|
|
65
|
+
callLimit?: number;
|
|
66
|
+
}): Promise<MediaStream>;
|
|
67
|
+
stopPresentation(options?: {
|
|
68
|
+
isP2P?: boolean;
|
|
69
|
+
}): Promise<MediaStream | undefined>;
|
|
70
|
+
updatePresentation(stream: MediaStream, options?: {
|
|
71
|
+
isP2P?: boolean;
|
|
72
|
+
isNeedReinvite?: boolean;
|
|
73
|
+
maxBitrate?: number;
|
|
74
|
+
contentHint?: TContentHint;
|
|
75
|
+
sendEncodings?: RTCRtpEncodingParameters[];
|
|
76
|
+
onAddedTransceiver?: TOnAddedTransceiver;
|
|
77
|
+
}): Promise<MediaStream | undefined>;
|
|
78
|
+
waitChannels(...args: Parameters<ApiManager['waitChannels']>): Promise<import('../ApiManager/types').TChannels>;
|
|
79
|
+
waitSyncMediaState(...args: Parameters<ApiManager['waitSyncMediaState']>): Promise<{
|
|
80
|
+
isSyncForced: boolean;
|
|
81
|
+
}>;
|
|
82
|
+
sendDTMF(...args: Parameters<ApiManager['sendDTMF']>): Promise<void>;
|
|
83
|
+
sendChannels(...args: Parameters<ApiManager['sendChannels']>): Promise<void>;
|
|
84
|
+
sendMediaState(...args: Parameters<ApiManager['sendMediaState']>): Promise<void>;
|
|
85
|
+
sendRefusalToTurnOn(...args: Parameters<ApiManager['sendRefusalToTurnOn']>): Promise<void>;
|
|
86
|
+
sendRefusalToTurnOnMic(...args: Parameters<ApiManager['sendRefusalToTurnOnMic']>): Promise<void>;
|
|
87
|
+
sendRefusalToTurnOnCam(...args: Parameters<ApiManager['sendRefusalToTurnOnCam']>): Promise<void>;
|
|
88
|
+
sendMustStopPresentationP2P(...args: Parameters<ApiManager['sendMustStopPresentationP2P']>): Promise<void>;
|
|
89
|
+
sendStoppedPresentationP2P(...args: Parameters<ApiManager['sendStoppedPresentationP2P']>): Promise<void>;
|
|
90
|
+
sendStoppedPresentation(...args: Parameters<ApiManager['sendStoppedPresentation']>): Promise<void>;
|
|
91
|
+
askPermissionToStartPresentationP2P(...args: Parameters<ApiManager['askPermissionToStartPresentationP2P']>): Promise<void>;
|
|
92
|
+
askPermissionToStartPresentation(...args: Parameters<ApiManager['askPermissionToStartPresentation']>): Promise<void>;
|
|
93
|
+
askPermissionToEnableCam(...args: Parameters<ApiManager['askPermissionToEnableCam']>): Promise<void>;
|
|
94
|
+
private subscribe;
|
|
95
|
+
}
|
|
96
|
+
export default SipConnector;
|
|
@@ -0,0 +1,4 @@
|
|
|
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: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")[];
|
|
3
|
+
export type TEvent = (typeof EVENT_NAMES)[number];
|
|
4
|
+
export type TEvents = Events<typeof EVENT_NAMES>;
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import { UA } from '@krivega/jssip';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { EUseLicense } from '../ApiManager';
|
|
3
|
+
import { TContentHint } from '../PresentationManager';
|
|
4
|
+
import { SipConnector } from '../SipConnector';
|
|
5
|
+
import { TSimulcastEncoding } from '../types';
|
|
4
6
|
interface IProxyMethods {
|
|
5
7
|
on: SipConnector['on'];
|
|
6
8
|
once: SipConnector['once'];
|
|
7
9
|
onceRace: SipConnector['onceRace'];
|
|
8
10
|
wait: SipConnector['wait'];
|
|
9
11
|
off: SipConnector['off'];
|
|
10
|
-
onSession: SipConnector['onSession'];
|
|
11
|
-
onceSession: SipConnector['onceSession'];
|
|
12
|
-
onceRaceSession: SipConnector['onceRaceSession'];
|
|
13
|
-
waitSession: SipConnector['waitSession'];
|
|
14
|
-
offSession: SipConnector['offSession'];
|
|
15
12
|
sendDTMF: SipConnector['sendDTMF'];
|
|
16
13
|
hangUp: SipConnector['hangUp'];
|
|
17
14
|
declineToIncomingCall: SipConnector['declineToIncomingCall'];
|
|
@@ -29,11 +26,6 @@ declare class SipConnectorFacade implements IProxyMethods {
|
|
|
29
26
|
onceRace: IProxyMethods['onceRace'];
|
|
30
27
|
wait: IProxyMethods['wait'];
|
|
31
28
|
off: IProxyMethods['off'];
|
|
32
|
-
onSession: IProxyMethods['onSession'];
|
|
33
|
-
onceSession: IProxyMethods['onceSession'];
|
|
34
|
-
onceRaceSession: IProxyMethods['onceRaceSession'];
|
|
35
|
-
waitSession: IProxyMethods['waitSession'];
|
|
36
|
-
offSession: IProxyMethods['offSession'];
|
|
37
29
|
sendDTMF: IProxyMethods['sendDTMF'];
|
|
38
30
|
hangUp: IProxyMethods['hangUp'];
|
|
39
31
|
declineToIncomingCall: IProxyMethods['declineToIncomingCall'];
|
|
@@ -94,7 +86,7 @@ declare class SipConnectorFacade implements IProxyMethods {
|
|
|
94
86
|
disconnectFromServer: () => Promise<{
|
|
95
87
|
isSuccessful: boolean;
|
|
96
88
|
}>;
|
|
97
|
-
|
|
89
|
+
answerToIncomingCall: (parameters: {
|
|
98
90
|
mediaStream: MediaStream;
|
|
99
91
|
extraHeaders?: string[] | undefined;
|
|
100
92
|
iceServers?: RTCIceServer[];
|
|
@@ -130,7 +122,7 @@ declare class SipConnectorFacade implements IProxyMethods {
|
|
|
130
122
|
preferredMimeTypesVideoCodecs?: string[];
|
|
131
123
|
excludeMimeTypesVideoCodecs?: string[];
|
|
132
124
|
}) => Promise<MediaStream | undefined>;
|
|
133
|
-
startPresentation: ({ mediaStream, isP2P, maxBitrate, contentHint, simulcastEncodings, degradationPreference, sendEncodings, preferredMimeTypesVideoCodecs, excludeMimeTypesVideoCodecs, }: {
|
|
125
|
+
startPresentation: ({ mediaStream, isP2P, maxBitrate, contentHint, simulcastEncodings, degradationPreference, sendEncodings, preferredMimeTypesVideoCodecs, excludeMimeTypesVideoCodecs, callLimit, }: {
|
|
134
126
|
mediaStream: MediaStream;
|
|
135
127
|
isP2P: boolean;
|
|
136
128
|
maxBitrate?: number;
|
|
@@ -140,8 +132,7 @@ declare class SipConnectorFacade implements IProxyMethods {
|
|
|
140
132
|
sendEncodings?: RTCRtpEncodingParameters[];
|
|
141
133
|
preferredMimeTypesVideoCodecs?: string[];
|
|
142
134
|
excludeMimeTypesVideoCodecs?: string[];
|
|
143
|
-
|
|
144
|
-
callLimit: number;
|
|
135
|
+
callLimit?: number;
|
|
145
136
|
}) => Promise<MediaStream | undefined>;
|
|
146
137
|
stopShareSipConnector: ({ isP2P }?: {
|
|
147
138
|
isP2P?: boolean;
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { AnswerOptions, ExtraHeaders, HoldOptions, MediaStreamTypes, NameAddrHeader, OnHoldResult, RTCPeerConnectionDeprecated, RTCSession, ReferOptions, RenegotiateOptions, SessionDirection, SessionStatus, TerminateOptions, URI, C as constants } from '@krivega/jssip';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { Events } from 'events-constructor';
|
|
3
|
+
import { SESSION_JSSIP_EVENT_NAMES } from './eventNames';
|
|
4
4
|
export type TEventHandlers = Record<string, (data: unknown) => void>;
|
|
5
5
|
declare class BaseSession implements RTCSession {
|
|
6
6
|
originator: string;
|
|
7
7
|
connection: RTCPeerConnectionDeprecated;
|
|
8
|
-
events: Events<typeof
|
|
8
|
+
events: Events<typeof SESSION_JSSIP_EVENT_NAMES>;
|
|
9
9
|
remote_identity: NameAddrHeader;
|
|
10
10
|
mutedOptions: {
|
|
11
11
|
audio: boolean;
|
|
12
12
|
video: boolean;
|
|
13
13
|
};
|
|
14
|
-
constructor({ originator, eventHandlers, }: {
|
|
14
|
+
constructor({ originator, eventHandlers, remoteIdentity, }: {
|
|
15
15
|
originator?: string;
|
|
16
16
|
eventHandlers: TEventHandlers;
|
|
17
|
+
remoteIdentity: NameAddrHeader;
|
|
17
18
|
});
|
|
18
19
|
get contact(): string;
|
|
19
20
|
get direction(): SessionDirection;
|
|
@@ -48,7 +49,7 @@ declare class BaseSession implements RTCSession {
|
|
|
48
49
|
addListener(_event: string | symbol, _listener: (...arguments_: unknown[]) => void): this;
|
|
49
50
|
once(_event: string | symbol, _listener: (...arguments_: unknown[]) => void): this;
|
|
50
51
|
removeListener(_event: string | symbol, _listener: (...arguments_: unknown[]) => void): this;
|
|
51
|
-
off(
|
|
52
|
+
off(eventName: string | symbol, _listener: (...arguments_: unknown[]) => void): this;
|
|
52
53
|
removeAllListeners(_event?: string | symbol): this;
|
|
53
54
|
setMaxListeners(_n: number): this;
|
|
54
55
|
getMaxListeners(): number;
|
|
@@ -59,9 +60,9 @@ declare class BaseSession implements RTCSession {
|
|
|
59
60
|
prependListener(_event: string | symbol, _listener: (...arguments_: unknown[]) => void): this;
|
|
60
61
|
prependOnceListener(_event: string | symbol, _listener: (...arguments_: unknown[]) => void): this;
|
|
61
62
|
eventNames(): (string | symbol)[];
|
|
62
|
-
initEvents(eventHandlers
|
|
63
|
-
on<T>(eventName:
|
|
64
|
-
trigger(eventName:
|
|
63
|
+
initEvents(eventHandlers?: TEventHandlers): void;
|
|
64
|
+
on<T>(eventName: (typeof SESSION_JSSIP_EVENT_NAMES)[number], handler: (data: T) => void): this;
|
|
65
|
+
trigger(eventName: (typeof SESSION_JSSIP_EVENT_NAMES)[number], data?: unknown): void;
|
|
65
66
|
/**
|
|
66
67
|
* sendDTMF
|
|
67
68
|
*
|
|
@@ -71,7 +72,6 @@ declare class BaseSession implements RTCSession {
|
|
|
71
72
|
*/
|
|
72
73
|
sendDTMF(): void;
|
|
73
74
|
startPresentation(stream: MediaStream): Promise<MediaStream>;
|
|
74
|
-
updatePresentation(stream: MediaStream): Promise<MediaStream>;
|
|
75
75
|
stopPresentation(stream: MediaStream): Promise<MediaStream>;
|
|
76
76
|
isEstablished(): boolean;
|
|
77
77
|
}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { RTCPeerConnectionDeprecated } from '@krivega/jssip';
|
|
2
|
+
import { Events } from 'events-constructor';
|
|
2
3
|
import { MediaStreamTrackMock } from 'webrtc-mock';
|
|
3
4
|
import { default as RTCRtpSenderMock } from './RTCRtpSenderMock';
|
|
5
|
+
export declare enum EEvent {
|
|
6
|
+
TRACK = "track"
|
|
7
|
+
}
|
|
8
|
+
declare const EVENT_NAMES: readonly ["track"];
|
|
4
9
|
declare class RTCPeerConnectionMock implements RTCPeerConnectionDeprecated {
|
|
5
10
|
senders: RTCRtpSender[];
|
|
6
11
|
receivers: RTCRtpReceiver[];
|
|
@@ -28,6 +33,7 @@ declare class RTCPeerConnectionMock implements RTCPeerConnectionDeprecated {
|
|
|
28
33
|
remoteDescription: RTCSessionDescription | null;
|
|
29
34
|
sctp: null;
|
|
30
35
|
signalingState: RTCSignalingState;
|
|
36
|
+
events: Events<typeof EVENT_NAMES>;
|
|
31
37
|
constructor(_configuration?: RTCConfiguration, tracks: MediaStreamTrackMock[]);
|
|
32
38
|
getRemoteStreams(): MediaStream[];
|
|
33
39
|
addIceCandidate(_candidate: RTCIceCandidate | RTCIceCandidateInit): Promise<void>;
|