@wazo/sdk 1.0.0-alpha.0 → 1.0.0-alpha.10
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/README.md +16 -7
- package/dist/wazo-sdk.js +6 -6
- package/esm/__tests__/__voice__/call.test.js +57 -2
- package/esm/__tests__/api-client.test.js +20 -1
- package/esm/api/auth.js +16 -2
- package/esm/checker/checks/webrtc.js +2 -2
- package/esm/domain/CallLog.js +2 -3
- package/esm/domain/Phone/CTIPhone.js +2 -2
- package/esm/domain/Phone/WebRTCPhone.js +64 -63
- package/esm/index.js +5 -1
- package/esm/service/CallApi.js +4 -4
- package/esm/simple/Auth.js +19 -15
- package/esm/simple/Phone.js +6 -5
- package/esm/simple/__tests__/Auth.test.js +8 -64
- package/esm/simple/index.js +2 -1
- package/esm/simple/room/Room.js +2 -2
- package/esm/simple/room/SipRoom.js +2 -2
- package/esm/state-machine/call-state-machine.js +2 -2
- package/esm/state-machine/softphone-state-machine.js +1 -2
- package/esm/state-machine/utils.js +8 -3
- package/esm/types/api/auth.d.ts +3 -0
- package/esm/types/api/auth.d.ts.map +1 -1
- package/esm/types/checker/checks/index.d.ts +1 -1
- package/esm/types/checker/checks/webrtc-transport.d.ts +2 -2
- package/esm/types/checker/checks/webrtc-transport.d.ts.map +1 -1
- package/esm/types/domain/CallLog.d.ts.map +1 -1
- package/esm/types/domain/CallSession.d.ts +3 -3
- package/esm/types/domain/CallSession.d.ts.map +1 -1
- package/esm/types/domain/Phone/CTIPhone.d.ts.map +1 -1
- package/esm/types/domain/Phone/WebRTCPhone.d.ts +22 -22
- package/esm/types/domain/Phone/WebRTCPhone.d.ts.map +1 -1
- package/esm/types/domain/types.d.ts +0 -4
- package/esm/types/domain/types.d.ts.map +1 -1
- package/esm/types/index.d.ts +5 -1
- package/esm/types/index.d.ts.map +1 -1
- package/esm/types/lib/WazoSessionDescriptionHandler.d.ts +3 -3
- package/esm/types/lib/WazoSessionDescriptionHandler.d.ts.map +1 -1
- package/esm/types/service/CallApi.d.ts +5 -5
- package/esm/types/service/CallApi.d.ts.map +1 -1
- package/esm/types/simple/Auth.d.ts +6 -1
- package/esm/types/simple/Auth.d.ts.map +1 -1
- package/esm/types/simple/Phone.d.ts +8 -8
- package/esm/types/simple/Phone.d.ts.map +1 -1
- package/esm/types/simple/index.d.ts +3 -1
- package/esm/types/simple/index.d.ts.map +1 -1
- package/esm/types/state-machine/softphone-state-machine.d.ts +1 -2
- package/esm/types/state-machine/softphone-state-machine.d.ts.map +1 -1
- package/esm/types/state-machine/utils.d.ts +2 -2
- package/esm/types/state-machine/utils.d.ts.map +1 -1
- package/esm/types/utils/api-requester.d.ts.map +1 -1
- package/esm/types/utils/sdp.d.ts +3 -2
- package/esm/types/utils/sdp.d.ts.map +1 -1
- package/esm/types/utils/webrtc.d.ts +1 -0
- package/esm/types/utils/webrtc.d.ts.map +1 -1
- package/esm/types/voice/call.d.ts +30 -12
- package/esm/types/voice/call.d.ts.map +1 -1
- package/esm/types/voice/softphone.d.ts +25 -13
- package/esm/types/voice/softphone.d.ts.map +1 -1
- package/esm/types/web-rtc-client.d.ts +39 -38
- package/esm/types/web-rtc-client.d.ts.map +1 -1
- package/esm/utils/__tests__/api-requester.test.js +17 -0
- package/esm/utils/api-requester.js +9 -1
- package/esm/utils/sdp.js +22 -9
- package/esm/utils/webrtc.js +24 -4
- package/esm/voice/call.js +130 -38
- package/esm/voice/softphone.js +145 -35
- package/esm/web-rtc-client.js +61 -58
- package/lib/__tests__/__voice__/call.test.js +56 -1
- package/lib/__tests__/api-client.test.js +20 -1
- package/lib/api/auth.js +16 -2
- package/lib/checker/checks/webrtc.js +1 -1
- package/lib/domain/CallLog.js +2 -3
- package/lib/domain/Phone/CTIPhone.js +2 -2
- package/lib/domain/Phone/WebRTCPhone.js +63 -62
- package/lib/index.js +11 -3
- package/lib/service/CallApi.js +2 -2
- package/lib/simple/Auth.js +21 -15
- package/lib/simple/Phone.js +3 -2
- package/lib/simple/__tests__/Auth.test.js +11 -64
- package/lib/simple/index.js +2 -1
- package/lib/simple/room/Room.js +1 -1
- package/lib/simple/room/SipRoom.js +1 -1
- package/lib/state-machine/call-state-machine.js +2 -2
- package/lib/state-machine/softphone-state-machine.js +1 -2
- package/lib/state-machine/utils.js +8 -3
- package/lib/types/api/auth.d.ts +3 -0
- package/lib/types/api/auth.d.ts.map +1 -1
- package/lib/types/checker/checks/index.d.ts +1 -1
- package/lib/types/checker/checks/webrtc-transport.d.ts +2 -2
- package/lib/types/checker/checks/webrtc-transport.d.ts.map +1 -1
- package/lib/types/domain/CallLog.d.ts.map +1 -1
- package/lib/types/domain/CallSession.d.ts +3 -3
- package/lib/types/domain/CallSession.d.ts.map +1 -1
- package/lib/types/domain/Phone/CTIPhone.d.ts.map +1 -1
- package/lib/types/domain/Phone/WebRTCPhone.d.ts +22 -22
- package/lib/types/domain/Phone/WebRTCPhone.d.ts.map +1 -1
- package/lib/types/domain/types.d.ts +0 -4
- package/lib/types/domain/types.d.ts.map +1 -1
- package/lib/types/index.d.ts +5 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/lib/WazoSessionDescriptionHandler.d.ts +3 -3
- package/lib/types/lib/WazoSessionDescriptionHandler.d.ts.map +1 -1
- package/lib/types/service/CallApi.d.ts +5 -5
- package/lib/types/service/CallApi.d.ts.map +1 -1
- package/lib/types/simple/Auth.d.ts +6 -1
- package/lib/types/simple/Auth.d.ts.map +1 -1
- package/lib/types/simple/Phone.d.ts +8 -8
- package/lib/types/simple/Phone.d.ts.map +1 -1
- package/lib/types/simple/index.d.ts +3 -1
- package/lib/types/simple/index.d.ts.map +1 -1
- package/lib/types/state-machine/softphone-state-machine.d.ts +1 -2
- package/lib/types/state-machine/softphone-state-machine.d.ts.map +1 -1
- package/lib/types/state-machine/utils.d.ts +2 -2
- package/lib/types/state-machine/utils.d.ts.map +1 -1
- package/lib/types/utils/api-requester.d.ts.map +1 -1
- package/lib/types/utils/sdp.d.ts +3 -2
- package/lib/types/utils/sdp.d.ts.map +1 -1
- package/lib/types/utils/webrtc.d.ts +1 -0
- package/lib/types/utils/webrtc.d.ts.map +1 -1
- package/lib/types/voice/call.d.ts +30 -12
- package/lib/types/voice/call.d.ts.map +1 -1
- package/lib/types/voice/softphone.d.ts +25 -13
- package/lib/types/voice/softphone.d.ts.map +1 -1
- package/lib/types/web-rtc-client.d.ts +39 -38
- package/lib/types/web-rtc-client.d.ts.map +1 -1
- package/lib/utils/__tests__/api-requester.test.js +17 -0
- package/lib/utils/api-requester.js +9 -1
- package/lib/utils/sdp.js +25 -10
- package/lib/utils/webrtc.js +25 -4
- package/lib/voice/call.js +131 -36
- package/lib/voice/softphone.js +150 -35
- package/lib/web-rtc-client.js +59 -57
- package/package.json +1 -1
- package/src/__tests__/__voice__/call.test.ts +63 -2
- package/src/__tests__/api-client.test.ts +22 -1
- package/src/api/auth.ts +30 -3
- package/src/checker/checks/webrtc-transport.ts +2 -2
- package/src/checker/checks/webrtc.ts +2 -2
- package/src/domain/CallLog.ts +2 -3
- package/src/domain/CallSession.ts +3 -3
- package/src/domain/Phone/CTIPhone.ts +3 -2
- package/src/domain/Phone/WebRTCPhone.ts +95 -93
- package/src/domain/types.ts +0 -5
- package/src/index.ts +6 -1
- package/src/lib/WazoSessionDescriptionHandler.ts +3 -3
- package/src/service/CallApi.ts +7 -7
- package/src/simple/Auth.ts +21 -16
- package/src/simple/Phone.ts +12 -11
- package/src/simple/__tests__/Auth.test.ts +9 -87
- package/src/simple/index.ts +2 -1
- package/src/simple/room/Room.ts +3 -3
- package/src/simple/room/SipRoom.ts +3 -3
- package/src/state-machine/call-state-machine.ts +2 -2
- package/src/state-machine/softphone-state-machine.ts +1 -2
- package/src/state-machine/utils.ts +12 -5
- package/src/utils/__tests__/api-requester.test.ts +20 -0
- package/src/utils/api-requester.ts +9 -1
- package/src/utils/sdp.ts +26 -11
- package/src/utils/webrtc.ts +27 -5
- package/src/voice/call.ts +169 -50
- package/src/voice/softphone.ts +180 -41
- package/src/web-rtc-client.ts +106 -99
|
@@ -10,7 +10,7 @@ import { OutgoingByeRequest, OutgoingInviteRequest, OutgoingRequest } from 'sip.
|
|
|
10
10
|
import { Inviter, Invitation, Registerer } from 'sip.js/lib/api';
|
|
11
11
|
import Emitter from './utils/Emitter';
|
|
12
12
|
import Heartbeat from './utils/Heartbeat';
|
|
13
|
-
import type { MediaConfig, UserAgentConfigOverrides, WebRtcConfig,
|
|
13
|
+
import type { MediaConfig, UserAgentConfigOverrides, WebRtcConfig, SipCall } from './domain/types';
|
|
14
14
|
export declare const events: string[];
|
|
15
15
|
export declare const transportEvents: string[];
|
|
16
16
|
export declare class CanceledCallError extends Error {
|
|
@@ -35,7 +35,7 @@ export default class WebRTCClient extends Emitter {
|
|
|
35
35
|
heartbeatTimeoutCb: ((...args: Array<any>) => any) | null | undefined;
|
|
36
36
|
heartbeatCb: ((...args: Array<any>) => any) | null | undefined;
|
|
37
37
|
statsIntervals: Record<string, any>;
|
|
38
|
-
sipSessions: Record<string,
|
|
38
|
+
sipSessions: Record<string, SipCall>;
|
|
39
39
|
conferences: Record<string, boolean>;
|
|
40
40
|
skipRegister: boolean;
|
|
41
41
|
networkMonitoringInterval: Record<string, any>;
|
|
@@ -43,6 +43,7 @@ export default class WebRTCClient extends Emitter {
|
|
|
43
43
|
forceClosed: boolean;
|
|
44
44
|
ON_USER_AGENT: string;
|
|
45
45
|
REGISTERED: string;
|
|
46
|
+
REGISTERING: string;
|
|
46
47
|
UNREGISTERED: string;
|
|
47
48
|
REGISTRATION_FAILED: string;
|
|
48
49
|
INVITE: string;
|
|
@@ -60,7 +61,7 @@ export default class WebRTCClient extends Emitter {
|
|
|
60
61
|
ON_EARLY_MEDIA: string;
|
|
61
62
|
ON_PROGRESS: string;
|
|
62
63
|
ON_DISCONNECTED: string;
|
|
63
|
-
constructor(config: WebRtcConfig, session?:
|
|
64
|
+
constructor(config: WebRtcConfig, session?: SipCall, uaConfigOverrides?: UserAgentConfigOverrides);
|
|
64
65
|
configureMedia(media: MediaConfig): void;
|
|
65
66
|
setMediaConstraints(media: MediaStreamConstraints): void;
|
|
66
67
|
createUserAgent(uaConfigOverrides?: UserAgentConfigOverrides): UserAgent;
|
|
@@ -73,40 +74,40 @@ export default class WebRTCClient extends Emitter {
|
|
|
73
74
|
_monkeyPatchRegisterer(registerer: Registerer | null | undefined): void;
|
|
74
75
|
unregister(): Promise<void>;
|
|
75
76
|
stop(): Promise<void>;
|
|
76
|
-
call(number: string, enableVideo?: boolean, audioOnly?: boolean, conference?: boolean, options?: {}):
|
|
77
|
+
call(number: string, enableVideo?: boolean, audioOnly?: boolean, conference?: boolean, options?: {}): SipCall | null;
|
|
77
78
|
answer(session: Invitation, enableVideo?: boolean): Promise<void>;
|
|
78
|
-
hangup(session:
|
|
79
|
-
startNetworkMonitoring(session:
|
|
80
|
-
stopNetworkMonitoring(session:
|
|
81
|
-
reject(session:
|
|
79
|
+
hangup(session: SipCall): Promise<OutgoingByeRequest | null>;
|
|
80
|
+
startNetworkMonitoring(session: SipCall, interval?: number): void;
|
|
81
|
+
stopNetworkMonitoring(session: SipCall): void;
|
|
82
|
+
reject(session: SipCall): Promise<void>;
|
|
82
83
|
close(force?: boolean): Promise<void>;
|
|
83
|
-
mute(session:
|
|
84
|
-
unmute(session:
|
|
85
|
-
isAudioMuted(session:
|
|
86
|
-
toggleCameraOn(session:
|
|
87
|
-
toggleCameraOff(session:
|
|
88
|
-
hold(session:
|
|
89
|
-
unhold(session:
|
|
84
|
+
mute(session: SipCall): void;
|
|
85
|
+
unmute(session: SipCall): void;
|
|
86
|
+
isAudioMuted(session: SipCall): boolean;
|
|
87
|
+
toggleCameraOn(session: SipCall): void;
|
|
88
|
+
toggleCameraOff(session: SipCall): void;
|
|
89
|
+
hold(session: SipCall, isConference?: boolean, hadVideo?: boolean): Promise<OutgoingInviteRequest | void>;
|
|
90
|
+
unhold(session: SipCall, isConference?: boolean): Promise<OutgoingInviteRequest | void>;
|
|
90
91
|
getHeldSession(sessionId: string): any;
|
|
91
|
-
isCallHeld(session:
|
|
92
|
+
isCallHeld(session: SipCall): boolean;
|
|
92
93
|
isVideoRemotelyHeld(sessionId: string): boolean;
|
|
93
|
-
sendDTMF(session:
|
|
94
|
+
sendDTMF(session: SipCall, tone: string): boolean;
|
|
94
95
|
message(destination: string, message: string): void;
|
|
95
|
-
transfer(session:
|
|
96
|
-
atxfer(session:
|
|
97
|
-
sendMessage(sipSession:
|
|
96
|
+
transfer(session: SipCall, target: string): void;
|
|
97
|
+
atxfer(session: SipCall): Record<string, any>;
|
|
98
|
+
sendMessage(sipSession: SipCall | null | undefined, body: string, contentType?: string): void;
|
|
98
99
|
pingServer(): OutgoingRequest | void;
|
|
99
100
|
getState(): UserAgentState;
|
|
100
101
|
getContactIdentifier(): string | null;
|
|
101
102
|
changeAudioOutputVolume(volume: number): void;
|
|
102
103
|
changeAudioOutputDevice(id: string): Promise<void>;
|
|
103
|
-
changeAudioInputDevice(id: string, session:
|
|
104
|
-
changeVideoInputDevice(id: string, session?:
|
|
104
|
+
changeAudioInputDevice(id: string, session: SipCall | null | undefined, force?: boolean): Promise<MediaStream | null>;
|
|
105
|
+
changeVideoInputDevice(id: string, session?: SipCall): Promise<MediaStream | void>;
|
|
105
106
|
setVideoInputDevice(id: string): null | undefined;
|
|
106
|
-
changeSessionVideoInputDevice(id: string | null | undefined, session:
|
|
107
|
+
changeSessionVideoInputDevice(id: string | null | undefined, session: SipCall): Promise<MediaStream | void>;
|
|
107
108
|
getAudioDeviceId(): string | null | undefined;
|
|
108
109
|
getVideoDeviceId(): string | null;
|
|
109
|
-
reinvite(sipSession:
|
|
110
|
+
reinvite(sipSession: SipCall, newConstraints?: Record<string, any> | null | undefined, conference?: boolean, audioOnly?: boolean, iceRestart?: boolean): Promise<OutgoingInviteRequest | void>;
|
|
110
111
|
getUserMedia(constraints: Record<string, any>): Promise<MediaStream>;
|
|
111
112
|
getPeerConnection(sessionId: string): RTCPeerConnection | null | undefined;
|
|
112
113
|
getLocalStream(sessionId: string): MediaStream | null;
|
|
@@ -128,15 +129,15 @@ export default class WebRTCClient extends Emitter {
|
|
|
128
129
|
stopHeartbeat(): void;
|
|
129
130
|
setOnHeartbeatTimeout(cb: (...args: Array<any>) => any): void;
|
|
130
131
|
setOnHeartbeatCallback(cb: (...args: Array<any>) => any): void;
|
|
131
|
-
onCallEnded(session:
|
|
132
|
+
onCallEnded(session: SipCall): void;
|
|
132
133
|
attemptReconnection(): void;
|
|
133
|
-
storeSipSession(session:
|
|
134
|
-
getSipSession(id: string):
|
|
135
|
-
|
|
134
|
+
storeSipSession(session: SipCall): void;
|
|
135
|
+
getSipSession(id: string): SipCall | null | undefined;
|
|
136
|
+
getSipCallIds(): string[];
|
|
136
137
|
updateLocalStream(sipSessionId: string, newStream: MediaStream): Promise<void>;
|
|
137
138
|
isConference(sessionId: string): boolean;
|
|
138
139
|
createAudioElementFor(sessionId: string): Promise<HTMLAudioElement>;
|
|
139
|
-
_onTransportError(): void;
|
|
140
|
+
_onTransportError(reason?: string): void;
|
|
140
141
|
enableLogger(logConnector: (level: any, className: string, label: any, content: string) => void): void;
|
|
141
142
|
_onHeartbeat(message: string | Record<string, any>): void;
|
|
142
143
|
_onHeartbeatTimeout(): Promise<void>;
|
|
@@ -144,20 +145,20 @@ export default class WebRTCClient extends Emitter {
|
|
|
144
145
|
_getAudioConstraints(): MediaTrackConstraints | boolean;
|
|
145
146
|
_getVideoConstraints(video?: boolean): MediaTrackConstraints | boolean;
|
|
146
147
|
_connectIfNeeded(): Promise<any>;
|
|
147
|
-
_buildConfig(config: WebRtcConfig, session:
|
|
148
|
-
_setupSession(session:
|
|
149
|
-
_onProgress(session:
|
|
150
|
-
_onAccepted(session:
|
|
151
|
-
_setupMedias(session:
|
|
152
|
-
_cleanupMedia(session?:
|
|
148
|
+
_buildConfig(config: WebRtcConfig, session: SipCall | null | undefined): Promise<WebRtcConfig>;
|
|
149
|
+
_setupSession(session: SipCall): void;
|
|
150
|
+
_onProgress(session: SipCall, early?: boolean): Promise<void>;
|
|
151
|
+
_onAccepted(session: SipCall, sessionDialog?: SessionDialog, withEvent?: boolean, initAllTracks?: boolean): Promise<void>;
|
|
152
|
+
_setupMedias(session: SipCall, newStream?: MediaStream | null | undefined): Promise<void>;
|
|
153
|
+
_cleanupMedia(session?: SipCall): void;
|
|
153
154
|
_cleanupRegister(): void;
|
|
154
|
-
_startSendingStats(session:
|
|
155
|
-
_stopSendingStats(session:
|
|
155
|
+
_startSendingStats(session: SipCall): void;
|
|
156
|
+
_stopSendingStats(session: SipCall): void;
|
|
156
157
|
_disconnectTransport(force?: boolean): Promise<void>;
|
|
157
158
|
_fetchNetworkStats(sessionId: string): Promise<Record<string, any> | null | undefined>;
|
|
158
159
|
_accept(session: Invitation, options?: InvitationAcceptOptions): Promise<void>;
|
|
159
160
|
_reject(session: Invitation, options?: InvitationRejectOptions): Promise<void>;
|
|
160
161
|
_cancel(session: Inviter, options?: InviterCancelOptions): Promise<void>;
|
|
161
|
-
_bye(session:
|
|
162
|
+
_bye(session: SipCall, options?: SessionByeOptions): Promise<OutgoingByeRequest | null>;
|
|
162
163
|
}
|
|
163
164
|
//# sourceMappingURL=web-rtc-client.d.ts.map
|
|
@@ -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;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,
|
|
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,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AA4BpJ,eAAO,MAAM,MAAM,UAAuE,CAAC;AAC3F,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,OAAO,CAAC,CAAC;IAErC,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,WAAW,EAAE,MAAM,CAAC;IAEpB,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,OAAO,EAAE,iBAAiB,CAAC,EAAE,wBAAwB;IA+DjG,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;IAiHxC,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,OAAO,GAAG,IAAI;IAwFhH,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC3D,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAkClE,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,SAAO,GAAG,IAAI;IAU/D,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAgBvC,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvC,KAAK,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CzC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ5B,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ9B,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAqCvC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQtC,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQvC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,UAAQ,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IA0DrG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IA2CrF,cAAc,CAAC,SAAS,EAAE,MAAM;IAIhC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIrC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/C,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAYjD,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAUnD,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAwBhD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA8B7C,WAAW,CAAC,UAAU,4BAAuB,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,SAAe,GAAG,IAAI;IA0B9F,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,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAuErH,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAQxF,mBAAmB,CAAC,EAAE,EAAE,MAAM;IAoB9B,6BAA6B,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAwD3G,gBAAgB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS;IAI7C,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC,QAAQ,CAAC,UAAU,EAAE,OAAO,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;IAwFxL,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,OAAO,GAAG,IAAI;IAUnC,mBAAmB,IAAI,IAAI;IAW3B,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOvC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS;IAIrD,aAAa,IAAI,MAAM,EAAE;IAInB,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,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAMxC,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,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAqB9F,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAyE/B,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,SAAS,UAAO,EAAE,aAAa,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDnH,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAE,WAAW,GAAG,IAAI,GAAG,SAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6DrG,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAkCtC,gBAAgB,IAAI,IAAI;IAQxB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAwB1C,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAgBnC,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,OAAO,EAAE,OAAO,GAAE,iBAAsB;CAc7D"}
|
|
@@ -161,3 +161,20 @@ describe('With a refresh token', () => {
|
|
|
161
161
|
});
|
|
162
162
|
}));
|
|
163
163
|
});
|
|
164
|
+
describe('base64Encode', () => {
|
|
165
|
+
it('should encode a string using base64', () => {
|
|
166
|
+
const input = 'Hello World!';
|
|
167
|
+
const expectedOutput = 'SGVsbG8gV29ybGQh';
|
|
168
|
+
expect(api_requester_1.default.base64Encode(input)).toBe(expectedOutput);
|
|
169
|
+
});
|
|
170
|
+
it('should handle special characters', () => {
|
|
171
|
+
const input = 'éà$@€';
|
|
172
|
+
const expectedOutput = 'w6nDoCRA4oKs';
|
|
173
|
+
expect(api_requester_1.default.base64Encode(input)).toBe(expectedOutput);
|
|
174
|
+
});
|
|
175
|
+
it('should handle empty string', () => {
|
|
176
|
+
const input = '';
|
|
177
|
+
const expectedOutput = '';
|
|
178
|
+
expect(api_requester_1.default.base64Encode(input)).toBe(expectedOutput);
|
|
179
|
+
});
|
|
180
|
+
});
|
|
@@ -30,7 +30,15 @@ class ApiRequester {
|
|
|
30
30
|
return Object.keys(obj).filter(key => obj[key]).map(key => `${key}=${encodeURIComponent(obj[key])}`).join('&');
|
|
31
31
|
}
|
|
32
32
|
static base64Encode(str) {
|
|
33
|
-
|
|
33
|
+
if (typeof btoa !== 'undefined') {
|
|
34
|
+
try {
|
|
35
|
+
return btoa(str);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
// fall back to Base64.encode if btoa fails
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return js_base64_1.Base64.encode(str);
|
|
34
42
|
}
|
|
35
43
|
// @see https://github.com/facebook/flow/issues/183#issuecomment-358607052
|
|
36
44
|
constructor({ server, refreshTokenCallback, clientId, agent = null, token = null, fetchOptions, requestTimeout = REQUEST_TIMEOUT_MS, }) {
|
package/lib/utils/sdp.js
CHANGED
|
@@ -3,11 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.makeURI = exports.replaceLocalIpModifier = exports.
|
|
6
|
+
exports.getCallDisplayName = exports.getCallNumber = exports.makeURI = exports.replaceLocalIpModifier = exports.getSipCallId = exports.addIcesInAllBundles = exports.fixSdp = exports.hasAnActiveVideo = exports.activateVideoModifier = exports.deactivateVideoModifier = exports.getVideoDirection = exports.toggleVideoDirection = exports.fixBundle = exports.isSdpValid = exports.areCandidateValid = exports.parseCandidate = exports.getCandidates = void 0;
|
|
7
|
+
/* eslint-disable no-underscore-dangle */
|
|
7
8
|
const sdp_transform_1 = __importDefault(require("sdp-transform"));
|
|
8
9
|
const user_agent_1 = require("sip.js/lib/api/user-agent");
|
|
9
10
|
const api_1 = require("sip.js/lib/api");
|
|
10
|
-
exports.SIP_ID_LENGTH = 36;
|
|
11
11
|
const getCandidates = (rawSdp) => {
|
|
12
12
|
if (!rawSdp) {
|
|
13
13
|
return [];
|
|
@@ -116,26 +116,41 @@ const addIcesInAllBundles = (sdp) => {
|
|
|
116
116
|
return sdp_transform_1.default.write(parsedSdp);
|
|
117
117
|
};
|
|
118
118
|
exports.addIcesInAllBundles = addIcesInAllBundles;
|
|
119
|
-
const
|
|
119
|
+
const getSipCallId = (sipSession) => {
|
|
120
120
|
if (!sipSession) {
|
|
121
121
|
return '';
|
|
122
122
|
}
|
|
123
|
-
const message = sipSession.message;
|
|
124
|
-
if (message === null || message === void 0 ? void 0 : message.callId) {
|
|
125
|
-
return message.callId.substring(0, exports.SIP_ID_LENGTH);
|
|
126
|
-
}
|
|
127
123
|
// For Inviter
|
|
128
124
|
// @ts-ignore: private
|
|
129
125
|
if (sipSession instanceof api_1.Inviter && sipSession.outgoingRequestMessage) {
|
|
130
126
|
// @ts-ignore: private
|
|
131
|
-
return sipSession.outgoingRequestMessage.callId
|
|
127
|
+
return sipSession.outgoingRequestMessage.callId;
|
|
132
128
|
}
|
|
133
129
|
// For Invitation
|
|
134
|
-
|
|
130
|
+
// @ts-ignore: private
|
|
131
|
+
if (sipSession instanceof api_1.Invitation && sipSession.incomingInviteRequest.message) {
|
|
132
|
+
// @ts-ignore: private
|
|
133
|
+
return sipSession.incomingInviteRequest.message.callId;
|
|
134
|
+
}
|
|
135
|
+
return sipSession.id;
|
|
135
136
|
};
|
|
136
|
-
exports.
|
|
137
|
+
exports.getSipCallId = getSipCallId;
|
|
137
138
|
// We need to replace 0.0.0.0 to 127.0.0.1 in the sdp to avoid MOH during a createOffer.
|
|
138
139
|
const replaceLocalIpModifier = (description) => Promise.resolve(Object.assign(Object.assign({}, JSON.parse(JSON.stringify(description))), { sdp: description.sdp.replace('c=IN IP4 0.0.0.0', 'c=IN IP4 127.0.0.1') }));
|
|
139
140
|
exports.replaceLocalIpModifier = replaceLocalIpModifier;
|
|
140
141
|
const makeURI = (target, host) => user_agent_1.UserAgent.makeURI(`sip:${target}@${host}`);
|
|
141
142
|
exports.makeURI = makeURI;
|
|
143
|
+
const getCallNumber = (sipCall) => {
|
|
144
|
+
// eslint-disable-next-line
|
|
145
|
+
const identity = sipCall ? sipCall.remoteIdentity || sipCall.assertedIdentity : null;
|
|
146
|
+
// @ts-ignore: private
|
|
147
|
+
return identity ? identity.uri._normal.user : null;
|
|
148
|
+
};
|
|
149
|
+
exports.getCallNumber = getCallNumber;
|
|
150
|
+
const getCallDisplayName = (sipCall) => {
|
|
151
|
+
// eslint-disable-next-line
|
|
152
|
+
const identity = sipCall ? sipCall.remoteIdentity || sipCall.assertedIdentity : null;
|
|
153
|
+
const number = (0, exports.getCallNumber)(sipCall);
|
|
154
|
+
return identity ? identity.displayName || number : number;
|
|
155
|
+
};
|
|
156
|
+
exports.getCallDisplayName = getCallDisplayName;
|
package/lib/utils/webrtc.js
CHANGED
|
@@ -35,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.fetchNetworkStats = exports.upgradeToVideo = exports.downgradeToAudio = exports.createUaOptions = exports.getStreamFromConstraints = exports.getMediaConfiguration = exports.getVideoConstraints = exports.getAudioConstraints = exports.isAudioOnly = exports.updateRemoteStream = exports.setLocalMediaStream = exports.cleanupStream = exports.toggleVideo = exports.toggleAudio = exports.getWebRtcStats = exports.sessionWantsToDoVideo = exports.hasAVideoTrack = exports.hasVideoTrack = exports.getRemoteVideoStreamFromPc = exports.getRemoteVideoStream = exports.hasARemoteVideoTrack = exports.hasRemoteVideo = exports.isVideoRemotelyHeld = exports.getRemoteTracks = exports.getLocalVideoStream = exports.hasALocalVideoTrack = exports.hasLocalVideo = exports.isVideoTrack = exports.getRemoteStream = exports.getLocalTracks = exports.getLocalStream = exports.getPeerConnection = exports.parseCandidate = exports.getIceServers = exports.isAPrivateIp = exports.isFirefox = exports.isWeb = void 0;
|
|
38
|
+
exports.fetchNetworkStats = exports.upgradeToVideo = exports.downgradeToAudio = exports.createUaOptions = exports.getStreamFromConstraints = exports.getMediaConfiguration = exports.getVideoConstraints = exports.getAudioConstraints = exports.isAudioOnly = exports.updateRemoteStream = exports.setLocalMediaStream = exports.cleanupStream = exports.isVideoMuted = exports.toggleVideo = exports.toggleAudio = exports.getWebRtcStats = exports.sessionWantsToDoVideo = exports.hasAVideoTrack = exports.hasVideoTrack = exports.getRemoteVideoStreamFromPc = exports.getRemoteVideoStream = exports.hasARemoteVideoTrack = exports.hasRemoteVideo = exports.isVideoRemotelyHeld = exports.getRemoteTracks = exports.getLocalVideoStream = exports.hasALocalVideoTrack = exports.hasLocalVideo = exports.isVideoTrack = exports.getRemoteStream = exports.getLocalTracks = exports.getLocalStream = exports.getPeerConnection = exports.parseCandidate = exports.getIceServers = exports.isAPrivateIp = exports.isFirefox = exports.isWeb = void 0;
|
|
39
39
|
const peer_connection_configuration_default_1 = require("sip.js/lib/platform/web/session-description-handler/peer-connection-configuration-default");
|
|
40
40
|
const web_1 = require("sip.js/lib/platform/web");
|
|
41
41
|
const WazoSessionDescriptionHandler_1 = __importStar(require("../lib/WazoSessionDescriptionHandler"));
|
|
@@ -238,13 +238,34 @@ const toggleVideo = (sipCall, muteCamera) => {
|
|
|
238
238
|
}
|
|
239
239
|
};
|
|
240
240
|
exports.toggleVideo = toggleVideo;
|
|
241
|
+
const isVideoMuted = (sipCall) => {
|
|
242
|
+
const sdh = sipCall.sessionDescriptionHandler;
|
|
243
|
+
const pc = sdh === null || sdh === void 0 ? void 0 : sdh.peerConnection;
|
|
244
|
+
if (pc === null || pc === void 0 ? void 0 : pc.getSenders) {
|
|
245
|
+
for (const sender of pc.getSenders()) {
|
|
246
|
+
if (sender && sender.track && sender.track.kind === 'video') {
|
|
247
|
+
return !sender.track.enabled;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
for (const stream of pc.getLocalStreams()) {
|
|
253
|
+
// eslint-disable-next-line no-unreachable-loop
|
|
254
|
+
for (const track of stream.getVideoTracks()) {
|
|
255
|
+
return !track.enabled;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return true;
|
|
260
|
+
};
|
|
261
|
+
exports.isVideoMuted = isVideoMuted;
|
|
241
262
|
const cleanupStream = (stream) => {
|
|
242
263
|
stream.getTracks().filter(track => track.enabled).forEach(track => track.stop());
|
|
243
264
|
};
|
|
244
265
|
exports.cleanupStream = cleanupStream;
|
|
245
266
|
const setLocalMediaStream = (sipCall, newStream) => {
|
|
246
267
|
logger.info('setting local media stream', {
|
|
247
|
-
id: sipCall
|
|
268
|
+
id: (0, sdp_1.getSipCallId)(sipCall),
|
|
248
269
|
tracks: newStream ? newStream.getTracks() : null,
|
|
249
270
|
});
|
|
250
271
|
if (sipCall.sessionDescriptionHandler) {
|
|
@@ -258,7 +279,7 @@ const updateRemoteStream = (sipCall, allTracks = true) => {
|
|
|
258
279
|
const remoteStream = (0, exports.getRemoteStream)(sipCall);
|
|
259
280
|
const pc = (0, exports.getPeerConnection)(sipCall);
|
|
260
281
|
logger.info('Updating remote stream', {
|
|
261
|
-
id: sipCall
|
|
282
|
+
id: (0, sdp_1.getSipCallId)(sipCall),
|
|
262
283
|
tracks: remoteStream ? remoteStream.getTracks() : null,
|
|
263
284
|
receiverTracks: pc && pc.getReceivers ? pc.getReceivers().map((receiver) => receiver.track) : null,
|
|
264
285
|
});
|
|
@@ -313,7 +334,7 @@ const getMediaConfiguration = (enableVideo, conference = false, constraints = nu
|
|
|
313
334
|
return {
|
|
314
335
|
constraints: {
|
|
315
336
|
// Exact constraint are not supported with `getDisplayMedia` and we must have a video=false in desktop screenshare
|
|
316
|
-
audio: screenSharing ? !isDesktop :
|
|
337
|
+
audio: screenSharing ? !isDesktop : withAudio ? (0, exports.getAudioConstraints)(true) : false,
|
|
317
338
|
video: screenSharing ? isDesktop ? {
|
|
318
339
|
mandatory: Object.assign({ chromeMediaSource: 'desktop' }, (mandatoryVideo || {})),
|
|
319
340
|
} : {
|