@wazo/sdk 0.43.6 → 1.0.0-alpha.1
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/wazo-sdk.js +2 -2
- package/esm/__tests__/__voice__/call.test.js +72 -0
- package/esm/__tests__/__voice__/softphone.test.js +66 -0
- package/esm/checker/checks/webrtc.js +2 -1
- package/esm/domain/InvalidState.js +8 -0
- package/esm/domain/InvalidStateTransition.js +10 -0
- package/esm/domain/Phone/WebRTCPhone.js +33 -35
- package/esm/index.js +2 -0
- package/esm/simple/Phone.js +2 -1
- package/esm/simple/index.js +8 -2
- package/esm/simple/room/Room.js +2 -1
- package/esm/simple/room/SipRoom.js +2 -1
- package/esm/state-machine/call-state-machine.js +114 -0
- package/esm/state-machine/softphone-state-machine.js +39 -0
- package/esm/state-machine/utils.js +40 -0
- package/esm/types/__tests__/__voice__/call.test.d.ts +2 -0
- package/esm/types/__tests__/__voice__/call.test.d.ts.map +1 -0
- package/esm/types/__tests__/__voice__/softphone.test.d.ts +2 -0
- package/esm/types/__tests__/__voice__/softphone.test.d.ts.map +1 -0
- package/esm/types/checker/checks/webrtc.d.ts.map +1 -1
- package/esm/types/domain/InvalidState.d.ts +6 -0
- package/esm/types/domain/InvalidState.d.ts.map +1 -0
- package/esm/types/domain/InvalidStateTransition.d.ts +7 -0
- package/esm/types/domain/InvalidStateTransition.d.ts.map +1 -0
- package/esm/types/domain/Phone/WebRTCPhone.d.ts +0 -1
- package/esm/types/domain/Phone/WebRTCPhone.d.ts.map +1 -1
- package/esm/types/domain/types.d.ts +4 -0
- package/esm/types/domain/types.d.ts.map +1 -1
- package/esm/types/index.d.ts +2 -0
- package/esm/types/index.d.ts.map +1 -1
- package/esm/types/simple/Phone.d.ts.map +1 -1
- package/esm/types/simple/index.d.ts +7 -2
- package/esm/types/simple/index.d.ts.map +1 -1
- package/esm/types/simple/room/Room.d.ts.map +1 -1
- package/esm/types/simple/room/SipRoom.d.ts +1 -1
- package/esm/types/simple/room/SipRoom.d.ts.map +1 -1
- package/esm/types/state-machine/call-state-machine.d.ts +43 -0
- package/esm/types/state-machine/call-state-machine.d.ts.map +1 -0
- package/esm/types/state-machine/softphone-state-machine.d.ts +19 -0
- package/esm/types/state-machine/softphone-state-machine.d.ts.map +1 -0
- package/esm/types/state-machine/utils.d.ts +9 -0
- package/esm/types/state-machine/utils.d.ts.map +1 -0
- package/esm/types/utils/sdp.d.ts +6 -0
- package/esm/types/utils/sdp.d.ts.map +1 -1
- package/esm/types/utils/sip-logger.d.ts +4 -0
- package/esm/types/utils/sip-logger.d.ts.map +1 -0
- package/esm/types/utils/webrtc.d.ts +40 -0
- package/esm/types/utils/webrtc.d.ts.map +1 -1
- package/esm/types/voice/call.d.ts +110 -0
- package/esm/types/voice/call.d.ts.map +1 -0
- package/esm/types/voice/softphone.d.ts +77 -0
- package/esm/types/voice/softphone.d.ts.map +1 -0
- package/esm/types/web-rtc-client.d.ts +1 -36
- package/esm/types/web-rtc-client.d.ts.map +1 -1
- package/esm/utils/sdp.js +26 -0
- package/esm/utils/sip-logger.js +32 -0
- package/esm/utils/webrtc.js +465 -0
- package/esm/voice/call.js +527 -0
- package/esm/voice/softphone.js +347 -0
- package/esm/web-rtc-client.js +86 -584
- package/lib/__tests__/__voice__/call.test.js +86 -0
- package/lib/__tests__/__voice__/softphone.test.js +80 -0
- package/lib/checker/checks/webrtc.js +2 -1
- package/lib/domain/InvalidState.js +9 -0
- package/lib/domain/InvalidStateTransition.js +10 -0
- package/lib/domain/Phone/WebRTCPhone.js +33 -35
- package/lib/index.js +6 -2
- package/lib/simple/Phone.js +2 -1
- package/lib/simple/index.js +6 -0
- package/lib/simple/room/Room.js +4 -3
- package/lib/simple/room/SipRoom.js +2 -1
- package/lib/state-machine/call-state-machine.js +120 -0
- package/lib/state-machine/softphone-state-machine.js +42 -0
- package/lib/state-machine/utils.js +52 -0
- package/lib/types/__tests__/__voice__/call.test.d.ts +2 -0
- package/lib/types/__tests__/__voice__/call.test.d.ts.map +1 -0
- package/lib/types/__tests__/__voice__/softphone.test.d.ts +2 -0
- package/lib/types/__tests__/__voice__/softphone.test.d.ts.map +1 -0
- package/lib/types/checker/checks/webrtc.d.ts.map +1 -1
- package/lib/types/domain/InvalidState.d.ts +6 -0
- package/lib/types/domain/InvalidState.d.ts.map +1 -0
- package/lib/types/domain/InvalidStateTransition.d.ts +7 -0
- package/lib/types/domain/InvalidStateTransition.d.ts.map +1 -0
- package/lib/types/domain/Phone/WebRTCPhone.d.ts +0 -1
- package/lib/types/domain/Phone/WebRTCPhone.d.ts.map +1 -1
- package/lib/types/domain/types.d.ts +4 -0
- package/lib/types/domain/types.d.ts.map +1 -1
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/simple/Phone.d.ts.map +1 -1
- package/lib/types/simple/index.d.ts +7 -2
- package/lib/types/simple/index.d.ts.map +1 -1
- package/lib/types/simple/room/Room.d.ts.map +1 -1
- package/lib/types/simple/room/SipRoom.d.ts +1 -1
- package/lib/types/simple/room/SipRoom.d.ts.map +1 -1
- package/lib/types/state-machine/call-state-machine.d.ts +43 -0
- package/lib/types/state-machine/call-state-machine.d.ts.map +1 -0
- package/lib/types/state-machine/softphone-state-machine.d.ts +19 -0
- package/lib/types/state-machine/softphone-state-machine.d.ts.map +1 -0
- package/lib/types/state-machine/utils.d.ts +9 -0
- package/lib/types/state-machine/utils.d.ts.map +1 -0
- package/lib/types/utils/sdp.d.ts +6 -0
- package/lib/types/utils/sdp.d.ts.map +1 -1
- package/lib/types/utils/sip-logger.d.ts +4 -0
- package/lib/types/utils/sip-logger.d.ts.map +1 -0
- package/lib/types/utils/webrtc.d.ts +40 -0
- package/lib/types/utils/webrtc.d.ts.map +1 -1
- package/lib/types/voice/call.d.ts +110 -0
- package/lib/types/voice/call.d.ts.map +1 -0
- package/lib/types/voice/softphone.d.ts +77 -0
- package/lib/types/voice/softphone.d.ts.map +1 -0
- package/lib/types/web-rtc-client.d.ts +1 -36
- package/lib/types/web-rtc-client.d.ts.map +1 -1
- package/lib/utils/sdp.js +27 -1
- package/lib/utils/sip-logger.js +37 -0
- package/lib/utils/webrtc.js +521 -1
- package/lib/voice/call.js +577 -0
- package/lib/voice/softphone.js +375 -0
- package/lib/web-rtc-client.js +89 -601
- package/package.json +3 -2
- package/src/__tests__/__voice__/call.test.ts +90 -0
- package/src/__tests__/__voice__/softphone.test.ts +82 -0
- package/src/checker/checks/webrtc.ts +2 -1
- package/src/domain/InvalidState.ts +13 -0
- package/src/domain/InvalidStateTransition.ts +17 -0
- package/src/domain/Phone/WebRTCPhone.ts +34 -36
- package/src/domain/types.ts +6 -1
- package/src/index.ts +2 -0
- package/src/simple/Phone.ts +2 -1
- package/src/simple/index.ts +9 -2
- package/src/simple/room/Room.ts +2 -1
- package/src/simple/room/SipRoom.ts +2 -1
- package/src/state-machine/call-state-machine.ts +131 -0
- package/src/state-machine/softphone-state-machine.ts +49 -0
- package/src/state-machine/utils.ts +53 -0
- package/src/utils/sdp.ts +36 -0
- package/src/utils/sip-logger.ts +40 -0
- package/src/utils/webrtc.ts +571 -0
- package/src/voice/call.ts +713 -0
- package/src/voice/softphone.ts +485 -0
- package/src/web-rtc-client.ts +90 -690
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
import { OutgoingInviteRequest } from 'sip.js/lib/core';
|
|
4
|
+
import type { IncomingRequestMessage } from 'sip.js/lib/core/messages/incoming-request-message';
|
|
5
|
+
import { type ActionTypes, type EstablishedActionTypes, type CallActorRef } from '../state-machine/call-state-machine';
|
|
6
|
+
import { SipCall } from '../domain/types';
|
|
7
|
+
import { Softphone } from './softphone';
|
|
8
|
+
export type AcceptOptions = {
|
|
9
|
+
withCamera?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export type ReinviteOptions = {
|
|
12
|
+
constraints?: Record<string, any>;
|
|
13
|
+
conference?: boolean;
|
|
14
|
+
audioOnly?: boolean;
|
|
15
|
+
iceRestart?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export declare const EVENT_CALL_ACCEPTED = "accepted";
|
|
18
|
+
export declare const EVENT_CALL_CANCELED = "canceled";
|
|
19
|
+
export declare const EVENT_PROGRESS = "progress";
|
|
20
|
+
export declare const EVENT_EARLY_MEDIA = "earlyMedia";
|
|
21
|
+
export declare const EVENT_CALL_ERROR = "error";
|
|
22
|
+
export declare const EVENT_CALL_REJECTED = "rejected";
|
|
23
|
+
export declare const EVENT_CALL_TERMINATING = "terminating";
|
|
24
|
+
export declare const EVENT_CALL_ENDED = "ended";
|
|
25
|
+
export declare const EVENT_CALL_MUTED = "muted";
|
|
26
|
+
export declare const EVENT_CALL_UN_MUTED = "unMuted";
|
|
27
|
+
export declare const EVENT_CALL_HELD = "held";
|
|
28
|
+
export declare const EVENT_CALL_RESUMED = "resumed";
|
|
29
|
+
export declare const EVENT_REINVITE = "reinvite";
|
|
30
|
+
export declare const EVENT_TRACK = "track";
|
|
31
|
+
export declare const EVENT_AUDIO_STREAM = "onAudioStream";
|
|
32
|
+
export declare const EVENT_VIDEO_STREAM = "onVideoStream";
|
|
33
|
+
export declare const EVENT_REMOVE_STREAM = "onRemoveStream";
|
|
34
|
+
export declare const EVENT_SHARE_SCREEN_ENDING = "onScreenShareEnding";
|
|
35
|
+
export declare const EVENT_SHARE_SCREEN_STARTED = "onScreenShareStarted";
|
|
36
|
+
export declare const EVENT_SHARE_SCREEN_ENDED = "onScreenShareEnded";
|
|
37
|
+
export declare const EVENT_WEB_RTC_STATS = "webRtcStats";
|
|
38
|
+
export declare const EVENT_CAMERA_RESUMED = "onCameraResumed";
|
|
39
|
+
export declare const EVENT_CAMERA_DISABLED = "onCameraDisabled";
|
|
40
|
+
export declare const EVENT_TERMINATE_SOUND = "terminateSound";
|
|
41
|
+
export declare const MESSAGE_TYPE_CHAT = "message/TYPE_CHAT";
|
|
42
|
+
export declare const MESSAGE_TYPE_SIGNAL = "message/TYPE_SIGNAL";
|
|
43
|
+
export declare const MESSAGE_TRACK_UPDATED = "onTrackUpdated";
|
|
44
|
+
declare class Call extends EventEmitter {
|
|
45
|
+
eventEmitter: EventEmitter;
|
|
46
|
+
callActor: CallActorRef;
|
|
47
|
+
apiId?: string;
|
|
48
|
+
sipCall: SipCall;
|
|
49
|
+
talkingToIds: string[];
|
|
50
|
+
creationTime: Date;
|
|
51
|
+
answerTime: Date;
|
|
52
|
+
endTime: Date;
|
|
53
|
+
phone: Softphone;
|
|
54
|
+
shouldSendReinvite: boolean;
|
|
55
|
+
currentScreenShare: Record<string, any> | null;
|
|
56
|
+
constructor(sipCall: SipCall, phone: Softphone);
|
|
57
|
+
accept(options?: AcceptOptions): Promise<string | null>;
|
|
58
|
+
reject(): Promise<boolean>;
|
|
59
|
+
hangup(): Promise<boolean>;
|
|
60
|
+
forceCancel(): void;
|
|
61
|
+
startConference(withCalls: Call[]): void;
|
|
62
|
+
mute(): void;
|
|
63
|
+
unMute(): void;
|
|
64
|
+
hold(): Promise<void | OutgoingInviteRequest>;
|
|
65
|
+
resume(): Promise<MediaStream | null | undefined>;
|
|
66
|
+
turnCameraOn(): void;
|
|
67
|
+
turnCameraOff(): void;
|
|
68
|
+
isHeld(): boolean;
|
|
69
|
+
isEstablished(): boolean;
|
|
70
|
+
isConference(): boolean;
|
|
71
|
+
transfer(target: string): void;
|
|
72
|
+
atxfer(): Record<string, any> | null | undefined;
|
|
73
|
+
sendDigits(digits: string): void;
|
|
74
|
+
startNetworkMonitoring(interval?: number): void;
|
|
75
|
+
stopNetworkMonitoring(): void;
|
|
76
|
+
getStats(): Promise<RTCStatsReport | null | undefined>;
|
|
77
|
+
sendReinvite(options?: ReinviteOptions): Promise<OutgoingInviteRequest | void>;
|
|
78
|
+
sendMessage(body: string, contentType?: string): void;
|
|
79
|
+
sendChat(content: string): void;
|
|
80
|
+
sendSignal(content: any): void;
|
|
81
|
+
startScreenSharing(constraints: Record<string, any>): Promise<MediaStream>;
|
|
82
|
+
stopScreenSharing(restoreLocalStream?: boolean): Promise<OutgoingInviteRequest | void | null>;
|
|
83
|
+
onScreenShareReinvite(response: any, desktop: boolean): void;
|
|
84
|
+
onAccepted(): void;
|
|
85
|
+
onProgress(): void;
|
|
86
|
+
onEarlyMedia(): void;
|
|
87
|
+
onTrack(event: RTCTrackEvent | MediaStreamTrackEvent): void;
|
|
88
|
+
onError(error: Error): void;
|
|
89
|
+
onRejected(): void;
|
|
90
|
+
onNetworkStats(stats: Record<string, any>, previousStats: Record<string, any>): void;
|
|
91
|
+
getRemoteStream(): MediaStream | null;
|
|
92
|
+
getRemoteVideoStream(): MediaStream | null | undefined;
|
|
93
|
+
hasRemoteVideo(): boolean;
|
|
94
|
+
hasLocalVideo(): boolean;
|
|
95
|
+
getLocalStream(): MediaStream | null;
|
|
96
|
+
getLocalVideoStream(): MediaStream | null | undefined;
|
|
97
|
+
hasALocalVideoTrack(): boolean;
|
|
98
|
+
isVideoRemotelyHeld(): boolean;
|
|
99
|
+
onReinvite(request: IncomingRequestMessage, updatedCalleeName: string, updatedNumber: string, hadRemoteVideo: boolean): void;
|
|
100
|
+
get id(): string;
|
|
101
|
+
get number(): any;
|
|
102
|
+
_bindEvents(): void;
|
|
103
|
+
_downgradeToAudio(withMessage?: boolean): boolean;
|
|
104
|
+
_upgradeToVideo(options?: ReinviteOptions): Promise<boolean>;
|
|
105
|
+
_sendReinviteMessage(isUpgrade: boolean): void;
|
|
106
|
+
_onScreenSharing(screenStream: MediaStream, hadVideo: boolean, desktop?: boolean | null | undefined): void;
|
|
107
|
+
_sendAction(action: ActionTypes | EstablishedActionTypes): void;
|
|
108
|
+
}
|
|
109
|
+
export default Call;
|
|
110
|
+
//# sourceMappingURL=call.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../src/voice/call.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
import type { Message } from 'sip.js/lib/api/message';
|
|
4
|
+
import type Session from '../domain/Session';
|
|
5
|
+
import type SipLine from '../domain/SipLine';
|
|
6
|
+
import { type SoftphoneActorRef, type StateTypes, ActionTypes } from '../state-machine/softphone-state-machine';
|
|
7
|
+
import { WebRtcConfig, SipCall } from '../domain/types';
|
|
8
|
+
import WazoWebRTCClient from '../web-rtc-client';
|
|
9
|
+
import Call from './call';
|
|
10
|
+
export declare const EVENT_INCOMING = "incoming";
|
|
11
|
+
export declare const EVENT_HEARTBEAT = "heartbeat";
|
|
12
|
+
export declare const EVENT_HEARTBEAT_TIMEOUT = "heartbeatTimeout";
|
|
13
|
+
export declare const EVENT_REGISTERED = "registered";
|
|
14
|
+
export declare const EVENT_UNREGISTERED = "unregistered";
|
|
15
|
+
export declare const EVENT_DISCONNECTED = "disconnected";
|
|
16
|
+
export declare const EVENT_VIDEO_INPUT_CHANGE = "videoInputChange";
|
|
17
|
+
export declare const EVENT_ON_MESSAGE = "message";
|
|
18
|
+
export declare const EVENT_ON_CHAT = "phone/ON_CHAT";
|
|
19
|
+
export declare const EVENT_ON_SIGNAL = "phone/ON_SIGNAL";
|
|
20
|
+
export declare const MESSAGE_TYPE_CHAT = "message/TYPE_CHAT";
|
|
21
|
+
export declare const MESSAGE_TYPE_SIGNAL = "message/TYPE_SIGNAL";
|
|
22
|
+
export type CallOptions = {
|
|
23
|
+
params: {
|
|
24
|
+
To: string;
|
|
25
|
+
};
|
|
26
|
+
withCamera?: boolean;
|
|
27
|
+
audioOnly?: boolean;
|
|
28
|
+
conference?: boolean;
|
|
29
|
+
};
|
|
30
|
+
export declare class Softphone extends EventEmitter {
|
|
31
|
+
audioOutputDeviceId?: string;
|
|
32
|
+
audioRingDeviceId?: string;
|
|
33
|
+
audioOutputVolume: number;
|
|
34
|
+
audioRingVolume: number;
|
|
35
|
+
eventEmitter: EventEmitter;
|
|
36
|
+
calls: Call[];
|
|
37
|
+
client: WazoWebRTCClient;
|
|
38
|
+
session: Session;
|
|
39
|
+
sipLine: SipLine | null;
|
|
40
|
+
softphoneActor: SoftphoneActorRef;
|
|
41
|
+
options: Partial<WebRtcConfig>;
|
|
42
|
+
shouldSendReinvite: boolean;
|
|
43
|
+
constructor();
|
|
44
|
+
connect(options?: Partial<WebRtcConfig>): Promise<void>;
|
|
45
|
+
disconnect(): Promise<void | null>;
|
|
46
|
+
getPrimaryWebRtcLine(): SipLine | null;
|
|
47
|
+
connectWithCredentials(server: string, sipLine: SipLine, displayName: string, rawOptions?: Partial<WebRtcConfig>): Promise<void>;
|
|
48
|
+
reconnect(): void;
|
|
49
|
+
call(options: CallOptions): Promise<Call | null>;
|
|
50
|
+
removeCall(callToRemove: Call): void;
|
|
51
|
+
holdAllCalls(exceptCall?: Call | null): void;
|
|
52
|
+
startHeartbeat(): void;
|
|
53
|
+
stopHeartbeat(): void;
|
|
54
|
+
setMediaConstraints(media: MediaStreamConstraints): void;
|
|
55
|
+
changeAudioOutputDevice(id: string): Promise<void>;
|
|
56
|
+
changeAudioInputDevice(id: string, force?: boolean): Promise<MediaStream | null>;
|
|
57
|
+
changeVideoInputDevice(id: string): Promise<void | MediaStream | null | undefined>;
|
|
58
|
+
changeRingDevice(id: string): void;
|
|
59
|
+
hasSfu(): boolean;
|
|
60
|
+
changeAudioVolume(volume: number): void;
|
|
61
|
+
changeRingVolume(volume: number): void;
|
|
62
|
+
getCalls(): Call[];
|
|
63
|
+
getCurrentCall(): Call | undefined;
|
|
64
|
+
getState(): StateTypes;
|
|
65
|
+
getUserAgent(): string;
|
|
66
|
+
_bindEvents(): void;
|
|
67
|
+
_sendAction(action: ActionTypes): void;
|
|
68
|
+
_getCall(sipCall: SipCall): Call | undefined;
|
|
69
|
+
_onCallEvent(sipCall: SipCall, eventName: string, ...args: any[]): void;
|
|
70
|
+
_onMessage(message: Message & {
|
|
71
|
+
method?: string;
|
|
72
|
+
body?: string;
|
|
73
|
+
}): void;
|
|
74
|
+
}
|
|
75
|
+
declare const _default: Softphone;
|
|
76
|
+
export default _default;
|
|
77
|
+
//# sourceMappingURL=softphone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"softphone.d.ts","sourceRoot":"","sources":["../../../src/voice/softphone.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,14 +5,12 @@ import type { SessionByeOptions } from 'sip.js/lib/api/session-bye-options';
|
|
|
5
5
|
import type { InvitationAcceptOptions } from 'sip.js/lib/api/invitation-accept-options';
|
|
6
6
|
import type { SessionDialog } from 'sip.js/lib/core/dialogs/session-dialog';
|
|
7
7
|
import { UserAgentState } from 'sip.js/lib/api/user-agent-state';
|
|
8
|
-
import { URI } from 'sip.js/lib/grammar/uri';
|
|
9
8
|
import { UserAgent } from 'sip.js/lib/api/user-agent';
|
|
10
9
|
import { OutgoingByeRequest, OutgoingInviteRequest, OutgoingRequest } from 'sip.js/lib/core';
|
|
11
10
|
import { Inviter, Invitation, Registerer } from 'sip.js/lib/api';
|
|
12
11
|
import Emitter from './utils/Emitter';
|
|
13
12
|
import Heartbeat from './utils/Heartbeat';
|
|
14
|
-
import type { MediaConfig, UserAgentConfigOverrides, WebRtcConfig,
|
|
15
|
-
export declare const replaceLocalIpModifier: (description: Record<string, any>) => Promise<any>;
|
|
13
|
+
import type { MediaConfig, UserAgentConfigOverrides, WebRtcConfig, WazoSession } from './domain/types';
|
|
16
14
|
export declare const events: string[];
|
|
17
15
|
export declare const transportEvents: string[];
|
|
18
16
|
export declare class CanceledCallError extends Error {
|
|
@@ -62,10 +60,6 @@ export default class WebRTCClient extends Emitter {
|
|
|
62
60
|
ON_EARLY_MEDIA: string;
|
|
63
61
|
ON_PROGRESS: string;
|
|
64
62
|
ON_DISCONNECTED: string;
|
|
65
|
-
static isAPrivateIp(ip: string): boolean;
|
|
66
|
-
static getIceServers(ip: string): Array<{
|
|
67
|
-
urls: Array<string>;
|
|
68
|
-
}>;
|
|
69
63
|
constructor(config: WebRtcConfig, session?: WazoSession, uaConfigOverrides?: UserAgentConfigOverrides);
|
|
70
64
|
configureMedia(media: MediaConfig): void;
|
|
71
65
|
setMediaConstraints(media: MediaStreamConstraints): void;
|
|
@@ -82,12 +76,10 @@ export default class WebRTCClient extends Emitter {
|
|
|
82
76
|
call(number: string, enableVideo?: boolean, audioOnly?: boolean, conference?: boolean, options?: {}): WazoSession | null;
|
|
83
77
|
answer(session: Invitation, enableVideo?: boolean): Promise<void>;
|
|
84
78
|
hangup(session: WazoSession): Promise<OutgoingByeRequest | null>;
|
|
85
|
-
getStats(session: WazoSession): Promise<RTCStatsReport | null>;
|
|
86
79
|
startNetworkMonitoring(session: WazoSession, interval?: number): void;
|
|
87
80
|
stopNetworkMonitoring(session: WazoSession): void;
|
|
88
81
|
reject(session: WazoSession): Promise<void>;
|
|
89
82
|
close(force?: boolean): Promise<void>;
|
|
90
|
-
getNumber(session: Inviter): string | null | undefined;
|
|
91
83
|
mute(session: WazoSession): void;
|
|
92
84
|
unmute(session: WazoSession): void;
|
|
93
85
|
isAudioMuted(session: WazoSession): boolean;
|
|
@@ -95,9 +87,6 @@ export default class WebRTCClient extends Emitter {
|
|
|
95
87
|
toggleCameraOff(session: WazoSession): void;
|
|
96
88
|
hold(session: WazoSession, isConference?: boolean, hadVideo?: boolean): Promise<OutgoingInviteRequest | void>;
|
|
97
89
|
unhold(session: WazoSession, isConference?: boolean): Promise<OutgoingInviteRequest | void>;
|
|
98
|
-
upgradeToVideo(session: WazoSession, constraints: Record<string, any>, isConference: boolean): Promise<MediaStream | undefined>;
|
|
99
|
-
downgradeToAudio(session: WazoSession): void;
|
|
100
|
-
getStreamFromConstraints(constraints: Record<string, any>, conference?: boolean): Promise<MediaStream | null | undefined>;
|
|
101
90
|
getHeldSession(sessionId: string): any;
|
|
102
91
|
isCallHeld(session: WazoSession): boolean;
|
|
103
92
|
isVideoRemotelyHeld(sessionId: string): boolean;
|
|
@@ -109,7 +98,6 @@ export default class WebRTCClient extends Emitter {
|
|
|
109
98
|
pingServer(): OutgoingRequest | void;
|
|
110
99
|
getState(): UserAgentState;
|
|
111
100
|
getContactIdentifier(): string | null;
|
|
112
|
-
isFirefox(): boolean;
|
|
113
101
|
changeAudioOutputVolume(volume: number): void;
|
|
114
102
|
changeAudioOutputDevice(id: string): Promise<void>;
|
|
115
103
|
changeAudioInputDevice(id: string, session: WazoSession | null | undefined, force?: boolean): Promise<MediaStream | null>;
|
|
@@ -134,9 +122,7 @@ export default class WebRTCClient extends Emitter {
|
|
|
134
122
|
getRemoteVideoStreamFromPc(sessionId: string): MediaStream | null | undefined;
|
|
135
123
|
hasVideo(sessionId: string): boolean;
|
|
136
124
|
hasAVideoTrack(sessionId: string): boolean;
|
|
137
|
-
getSipSessionId(sipSession: WazoSession | null | undefined): string;
|
|
138
125
|
waitForRegister(): Promise<void>;
|
|
139
|
-
sessionWantsToDoVideo(session: WazoSession): boolean;
|
|
140
126
|
hasHeartbeat(): boolean;
|
|
141
127
|
startHeartbeat(): void;
|
|
142
128
|
stopHeartbeat(): void;
|
|
@@ -147,47 +133,26 @@ export default class WebRTCClient extends Emitter {
|
|
|
147
133
|
storeSipSession(session: WazoSession): void;
|
|
148
134
|
getSipSession(id: string): WazoSession | null | undefined;
|
|
149
135
|
getSipSessionIds(): string[];
|
|
150
|
-
setLocalMediaStream(sipSessionId: string, newStream: MediaStream): void;
|
|
151
136
|
updateLocalStream(sipSessionId: string, newStream: MediaStream): Promise<void>;
|
|
152
|
-
updateRemoteStream(sessionId: string, allTracks?: boolean): void;
|
|
153
|
-
getMediaConfiguration(enableVideo: boolean, conference?: boolean, constraints?: Record<string, any> | null | undefined): Record<string, any>;
|
|
154
137
|
isConference(sessionId: string): boolean;
|
|
155
138
|
createAudioElementFor(sessionId: string): Promise<HTMLAudioElement>;
|
|
156
139
|
_onTransportError(): void;
|
|
157
140
|
enableLogger(logConnector: (level: any, className: string, label: any, content: string) => void): void;
|
|
158
141
|
_onHeartbeat(message: string | Record<string, any>): void;
|
|
159
142
|
_onHeartbeatTimeout(): Promise<void>;
|
|
160
|
-
_isWeb(): boolean;
|
|
161
|
-
_isVideoTrack(track: MediaStreamTrack): boolean;
|
|
162
143
|
_hasAudio(): boolean;
|
|
163
144
|
_getAudioConstraints(): MediaTrackConstraints | boolean;
|
|
164
145
|
_getVideoConstraints(video?: boolean): MediaTrackConstraints | boolean;
|
|
165
146
|
_connectIfNeeded(): Promise<any>;
|
|
166
147
|
_buildConfig(config: WebRtcConfig, session: WazoSession | null | undefined): Promise<WebRtcConfig>;
|
|
167
|
-
_createUaOptions(uaOptionsOverrides?: UserAgentConfigOverrides): UserAgentOptions;
|
|
168
|
-
_getRtcOptions(): {
|
|
169
|
-
mandatory: {
|
|
170
|
-
OfferToReceiveAudio: boolean;
|
|
171
|
-
OfferToReceiveVideo: boolean;
|
|
172
|
-
};
|
|
173
|
-
};
|
|
174
148
|
_setupSession(session: WazoSession): void;
|
|
175
149
|
_onProgress(session: WazoSession, early?: boolean): Promise<void>;
|
|
176
150
|
_onAccepted(session: WazoSession, sessionDialog?: SessionDialog, withEvent?: boolean, initAllTracks?: boolean): Promise<void>;
|
|
177
|
-
_isAudioOnly(session: WazoSession): boolean;
|
|
178
151
|
_setupMedias(session: WazoSession, newStream?: MediaStream | null | undefined): Promise<void>;
|
|
179
152
|
_cleanupMedia(session?: WazoSession): void;
|
|
180
|
-
_cleanupStream(stream: MediaStream): void;
|
|
181
|
-
_toggleAudio(session: WazoSession, muteAudio: boolean): void;
|
|
182
|
-
_toggleVideo(session: WazoSession, muteCamera: boolean): void;
|
|
183
|
-
/**
|
|
184
|
-
* @param pc RTCPeerConnection
|
|
185
|
-
*/
|
|
186
|
-
_getRemoteStream(pc: PeerConnection): MediaStream | null;
|
|
187
153
|
_cleanupRegister(): void;
|
|
188
154
|
_startSendingStats(session: WazoSession): void;
|
|
189
155
|
_stopSendingStats(session: WazoSession): void;
|
|
190
|
-
_makeURI(target: string): URI | undefined;
|
|
191
156
|
_disconnectTransport(force?: boolean): Promise<void>;
|
|
192
157
|
_fetchNetworkStats(sessionId: string): Promise<Record<string, any> | null | undefined>;
|
|
193
158
|
_accept(session: Invitation, options?: InvitationAcceptOptions): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-rtc-client.d.ts","sourceRoot":"","sources":["../../src/web-rtc-client.ts"],"names":[],"mappings":"AAGA,OAAO,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"web-rtc-client.d.ts","sourceRoot":"","sources":["../../src/web-rtc-client.ts"],"names":[],"mappings":"AAGA,OAAO,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAG5E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAIjE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAStD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAoC,MAAM,gBAAgB,CAAC;AACnG,OAAO,OAAO,MAAM,iBAAiB,CAAC;AAGtC,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,YAAY,EAAoC,WAAW,EAAiB,MAAM,gBAAgB,CAAC;AA2BxJ,eAAO,MAAM,MAAM,UAA0D,CAAC;AAC9E,eAAO,MAAM,eAAe,UAAsD,CAAC;AACnF,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAI/C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,YAAY,CAAC;IAErB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAE7C,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAE5B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAE9B,QAAQ,EAAE,OAAO,CAAC;IAElB,KAAK,EAAE,uBAAuB,GAAG,OAAO,GAAG,SAAS,CAAC;IAErD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEhD,KAAK,EAAE,uBAAuB,GAAG,OAAO,GAAG,SAAS,CAAC;IAErD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAElC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAE/C,iBAAiB,EAAE,MAAM,CAAC;IAE1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAElC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAEpD,iBAAiB,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEhD,SAAS,EAAE,SAAS,CAAC;IAErB,kBAAkB,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAEtE,WAAW,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAE/D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEzC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC,YAAY,EAAE,OAAO,CAAC;IAEtB,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/C,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAEzD,WAAW,EAAE,OAAO,CAAC;IAGrB,aAAa,EAAE,MAAM,CAAC;IAEtB,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,MAAM,CAAC;IAErB,mBAAmB,EAAE,MAAM,CAAC;IAE5B,MAAM,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,MAAM,CAAC;IAElB,YAAY,EAAE,MAAM,CAAC;IAErB,eAAe,EAAE,MAAM,CAAC;IAExB,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,MAAM,CAAC;IAEjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,0BAA0B,EAAE,MAAM,CAAC;IAEnC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,cAAc,EAAE,MAAM,CAAC;IAEvB,WAAW,EAAE,MAAM,CAAC;IAEpB,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,wBAAwB;IA4DrG,cAAc,CAAC,KAAK,EAAE,WAAW;IAMjC,mBAAmB,CAAC,KAAK,EAAE,sBAAsB;IAKjD,eAAe,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,GAAG,SAAS;IAqDxE,WAAW,IAAI,OAAO;IAItB,YAAY,IAAI,OAAO;IAIvB,YAAY,IAAI,OAAO;IAIvB,SAAS;IAaH,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK;IAkB1B,QAAQ,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA+GxC,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IA8BjE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2CjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBrB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,UAAQ,EAAE,UAAU,UAAQ,EAAE,OAAO,KAAK,GAAG,WAAW,GAAG,IAAI;IAwFpH,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC3D,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAkCtE,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,SAAO,GAAG,IAAI;IAUnE,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAgB3C,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3C,KAAK,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CzC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAQhC,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAQlC,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAqC3C,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAQ1C,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAQ3C,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,UAAQ,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IA0DzG,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IA2CzF,cAAc,CAAC,SAAS,EAAE,MAAM;IAIhC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIzC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/C,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAYrD,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAUnD,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAwBpD,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA8BjD,WAAW,CAAC,UAAU,gCAA2B,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,SAAe,GAAG,IAAI;IA0BlG,UAAU,IAAI,eAAe,GAAG,IAAI;IAsBpC,QAAQ,IAAI,cAAc;IAK1B,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAIrC,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAavC,uBAAuB,CAAC,EAAE,EAAE,MAAM;IAUlC,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAuEzH,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAQ5F,mBAAmB,CAAC,EAAE,EAAE,MAAM;IAoB9B,6BAA6B,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAwD/G,gBAAgB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS;IAI7C,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAgB,EAAE,UAAU,UAAQ,EAAE,SAAS,UAAQ,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAwF5L,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ1E,iBAAiB,CAAC,SAAS,EAAE,MAAM;IAKnC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAIrD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAIrD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKzC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/C,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS;IAKtE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAItD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAItD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK1C,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIhD,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS;IAKvE,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS;IAI7E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,YAAY,IAAI,OAAO;IAIvB,cAAc,IAAI,IAAI;IAatB,aAAa,IAAI,IAAI;IAKrB,qBAAqB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI;IAI7D,sBAAsB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI;IAI9D,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAUvC,mBAAmB,IAAI,IAAI;IAW3B,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAO3C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS;IAIzD,gBAAgB,IAAI,MAAM,EAAE;IAItB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBpF,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIlC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoBzE,iBAAiB,IAAI,IAAI;IAMzB,YAAY,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAiBtG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAiBnD,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B1C,SAAS,IAAI,OAAO;IAIpB,oBAAoB,IAAI,qBAAqB,GAAG,OAAO;IAIvD,oBAAoB,CAAC,KAAK,UAAQ,GAAG,qBAAqB,GAAG,OAAO;IAIpE,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC;IAwChC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAqBlG,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAyEnC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/D,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,SAAS,UAAO,EAAE,aAAa,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDvH,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,GAAE,WAAW,GAAG,IAAI,GAAG,SAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6DzG,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IAkC1C,gBAAgB,IAAI,IAAI;IAQxB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAwB9C,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAgBvC,oBAAoB,CAAC,KAAK,UAAQ;IAwBlC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAkBtF,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,GAAE,uBAA4B;IA2BlE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,GAAE,uBAA4B;IAmBlE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,oBAAyB;IAa5D,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB;CAcjE"}
|
package/esm/utils/sdp.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import sdpParser from 'sdp-transform';
|
|
2
|
+
import { UserAgent } from 'sip.js/lib/api/user-agent';
|
|
3
|
+
import { Inviter } from 'sip.js/lib/api';
|
|
4
|
+
export const SIP_ID_LENGTH = 36;
|
|
2
5
|
export const getCandidates = (rawSdp) => {
|
|
3
6
|
if (!rawSdp) {
|
|
4
7
|
return [];
|
|
@@ -102,3 +105,26 @@ export const addIcesInAllBundles = (sdp) => {
|
|
|
102
105
|
}));
|
|
103
106
|
return sdpParser.write(parsedSdp);
|
|
104
107
|
};
|
|
108
|
+
export const getSipSessionId = (sipSession) => {
|
|
109
|
+
if (!sipSession) {
|
|
110
|
+
return '';
|
|
111
|
+
}
|
|
112
|
+
const message = sipSession.message;
|
|
113
|
+
if (message?.callId) {
|
|
114
|
+
return message.callId.substring(0, SIP_ID_LENGTH);
|
|
115
|
+
}
|
|
116
|
+
// For Inviter
|
|
117
|
+
// @ts-ignore: private
|
|
118
|
+
if (sipSession instanceof Inviter && sipSession.outgoingRequestMessage) {
|
|
119
|
+
// @ts-ignore: private
|
|
120
|
+
return sipSession.outgoingRequestMessage.callId.substring(0, SIP_ID_LENGTH);
|
|
121
|
+
}
|
|
122
|
+
// For Invitation
|
|
123
|
+
return (sipSession.id || '').substring(0, SIP_ID_LENGTH);
|
|
124
|
+
};
|
|
125
|
+
// We need to replace 0.0.0.0 to 127.0.0.1 in the sdp to avoid MOH during a createOffer.
|
|
126
|
+
export const replaceLocalIpModifier = (description) => Promise.resolve({
|
|
127
|
+
...JSON.parse(JSON.stringify(description)),
|
|
128
|
+
sdp: description.sdp.replace('c=IN IP4 0.0.0.0', 'c=IN IP4 127.0.0.1'),
|
|
129
|
+
});
|
|
130
|
+
export const makeURI = (target, host) => UserAgent.makeURI(`sip:${target}@${host}`);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import IssueReporter from '../service/IssueReporter';
|
|
2
|
+
const sipLogger = IssueReporter.loggerFor('sip.js');
|
|
3
|
+
const protocolLogger = IssueReporter.loggerFor('sip');
|
|
4
|
+
const protocolDebugMessages = ['Received WebSocket text message:', 'Sending WebSocket message:'];
|
|
5
|
+
const logConnector = (level, className, label, content) => {
|
|
6
|
+
const protocolIndex = content && content.indexOf ? protocolDebugMessages.findIndex(prefix => content.indexOf(prefix) !== -1) : -1;
|
|
7
|
+
if (className === 'sip.Transport' && protocolIndex !== -1) {
|
|
8
|
+
const direction = protocolIndex === 0 ? 'receiving' : 'sending';
|
|
9
|
+
const message = content.replace(`${protocolDebugMessages[protocolIndex]}\n\n`, '').replace('\r\n', '\n');
|
|
10
|
+
protocolLogger.trace(message, {
|
|
11
|
+
className,
|
|
12
|
+
direction,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
sipLogger.trace(content, {
|
|
17
|
+
className,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const configureLogger = (rawOptions = {}) => {
|
|
22
|
+
const options = rawOptions;
|
|
23
|
+
if (options.uaConfigOverrides) {
|
|
24
|
+
options.uaConfigOverrides.traceSip = true;
|
|
25
|
+
}
|
|
26
|
+
options.log = options.log || {};
|
|
27
|
+
options.log.builtinEnabled = false;
|
|
28
|
+
options.log.logLevel = 'debug';
|
|
29
|
+
options.log.connector = logConnector;
|
|
30
|
+
return options;
|
|
31
|
+
};
|
|
32
|
+
export default configureLogger;
|