@ohos-ports/genesys-cloud-streaming-client 20.1.0-beta.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/README.md +47 -0
- package/dist/cjs/alerting-leader.d.ts +29 -0
- package/dist/cjs/alerting-leader.js +163 -0
- package/dist/cjs/client.d.ts +84 -0
- package/dist/cjs/client.js +680 -0
- package/dist/cjs/connection-manager.d.ts +18 -0
- package/dist/cjs/connection-manager.js +120 -0
- package/dist/cjs/connection-transfer.d.ts +7 -0
- package/dist/cjs/connection-transfer.js +20 -0
- package/dist/cjs/http-client.d.ts +18 -0
- package/dist/cjs/http-client.js +230 -0
- package/dist/cjs/index.d.ts +10 -0
- package/dist/cjs/index.js +31 -0
- package/dist/cjs/messenger.d.ts +37 -0
- package/dist/cjs/messenger.js +54 -0
- package/dist/cjs/notifications.d.ts +94 -0
- package/dist/cjs/notifications.js +495 -0
- package/dist/cjs/ping.d.ts +21 -0
- package/dist/cjs/ping.js +60 -0
- package/dist/cjs/polyfills.d.ts +0 -0
- package/dist/cjs/polyfills.js +6 -0
- package/dist/cjs/server-monitor.d.ts +16 -0
- package/dist/cjs/server-monitor.js +44 -0
- package/dist/cjs/stanza-definitions/webrtc-signaling.d.ts +29 -0
- package/dist/cjs/stanza-definitions/webrtc-signaling.js +113 -0
- package/dist/cjs/stanza-definitions/xep0051.d.ts +19 -0
- package/dist/cjs/stanza-definitions/xep0051.js +28 -0
- package/dist/cjs/stats-formatter.d.ts +6 -0
- package/dist/cjs/stats-formatter.js +63 -0
- package/dist/cjs/types/genesys-cloud-media-session.d.ts +64 -0
- package/dist/cjs/types/genesys-cloud-media-session.js +353 -0
- package/dist/cjs/types/interfaces.d.ts +310 -0
- package/dist/cjs/types/interfaces.js +22 -0
- package/dist/cjs/types/libs.d.ts +32 -0
- package/dist/cjs/types/libs.js +1 -0
- package/dist/cjs/types/media-session.d.ts +76 -0
- package/dist/cjs/types/media-session.js +2 -0
- package/dist/cjs/types/named-agent.d.ts +13 -0
- package/dist/cjs/types/named-agent.js +2 -0
- package/dist/cjs/types/offline-error.d.ts +2 -0
- package/dist/cjs/types/offline-error.js +5 -0
- package/dist/cjs/types/sasl-error.d.ts +8 -0
- package/dist/cjs/types/sasl-error.js +12 -0
- package/dist/cjs/types/stanza-media-session.d.ts +56 -0
- package/dist/cjs/types/stanza-media-session.js +255 -0
- package/dist/cjs/types/streaming-client-extension.d.ts +14 -0
- package/dist/cjs/types/streaming-client-extension.js +2 -0
- package/dist/cjs/types/timeout-error.d.ts +3 -0
- package/dist/cjs/types/timeout-error.js +9 -0
- package/dist/cjs/types/user-cancelled-error.d.ts +2 -0
- package/dist/cjs/types/user-cancelled-error.js +5 -0
- package/dist/cjs/utils.d.ts +34 -0
- package/dist/cjs/utils.js +202 -0
- package/dist/cjs/webrtc.d.ts +126 -0
- package/dist/cjs/webrtc.js +891 -0
- package/dist/deploy-info.json +21 -0
- package/dist/es/alerting-leader.d.ts +29 -0
- package/dist/es/alerting-leader.js +177 -0
- package/dist/es/client.d.ts +84 -0
- package/dist/es/client.js +699 -0
- package/dist/es/connection-manager.d.ts +18 -0
- package/dist/es/connection-manager.js +124 -0
- package/dist/es/connection-transfer.d.ts +7 -0
- package/dist/es/connection-transfer.js +16 -0
- package/dist/es/http-client.d.ts +18 -0
- package/dist/es/http-client.js +194 -0
- package/dist/es/index.bundle.js +39629 -0
- package/dist/es/index.d.ts +10 -0
- package/dist/es/index.js +10 -0
- package/dist/es/messenger.d.ts +37 -0
- package/dist/es/messenger.js +62 -0
- package/dist/es/notifications.d.ts +94 -0
- package/dist/es/notifications.js +507 -0
- package/dist/es/ping.d.ts +21 -0
- package/dist/es/ping.js +68 -0
- package/dist/es/polyfills.d.ts +0 -0
- package/dist/es/polyfills.js +6 -0
- package/dist/es/server-monitor.d.ts +16 -0
- package/dist/es/server-monitor.js +41 -0
- package/dist/es/stanza-definitions/webrtc-signaling.d.ts +29 -0
- package/dist/es/stanza-definitions/webrtc-signaling.js +110 -0
- package/dist/es/stanza-definitions/xep0051.d.ts +19 -0
- package/dist/es/stanza-definitions/xep0051.js +25 -0
- package/dist/es/stats-formatter.d.ts +6 -0
- package/dist/es/stats-formatter.js +54 -0
- package/dist/es/types/genesys-cloud-media-session.d.ts +64 -0
- package/dist/es/types/genesys-cloud-media-session.js +379 -0
- package/dist/es/types/interfaces.d.ts +310 -0
- package/dist/es/types/interfaces.js +19 -0
- package/dist/es/types/libs.d.ts +32 -0
- package/dist/es/types/libs.js +1 -0
- package/dist/es/types/media-session.d.ts +76 -0
- package/dist/es/types/media-session.js +1 -0
- package/dist/es/types/named-agent.d.ts +13 -0
- package/dist/es/types/named-agent.js +1 -0
- package/dist/es/types/offline-error.d.ts +2 -0
- package/dist/es/types/offline-error.js +2 -0
- package/dist/es/types/sasl-error.d.ts +8 -0
- package/dist/es/types/sasl-error.js +9 -0
- package/dist/es/types/stanza-media-session.d.ts +56 -0
- package/dist/es/types/stanza-media-session.js +264 -0
- package/dist/es/types/streaming-client-extension.d.ts +14 -0
- package/dist/es/types/streaming-client-extension.js +1 -0
- package/dist/es/types/timeout-error.d.ts +3 -0
- package/dist/es/types/timeout-error.js +5 -0
- package/dist/es/types/user-cancelled-error.d.ts +2 -0
- package/dist/es/types/user-cancelled-error.js +2 -0
- package/dist/es/utils.d.ts +34 -0
- package/dist/es/utils.js +192 -0
- package/dist/es/webrtc.d.ts +126 -0
- package/dist/es/webrtc.js +917 -0
- package/dist/manifest.json +19 -0
- package/dist/npm/CHANGELOG.md +637 -0
- package/dist/npm/README.md +47 -0
- package/dist/npm/alerting-leader.d.ts +29 -0
- package/dist/npm/alerting-leader.js +163 -0
- package/dist/npm/client.d.ts +84 -0
- package/dist/npm/client.js +680 -0
- package/dist/npm/connection-manager.d.ts +18 -0
- package/dist/npm/connection-manager.js +120 -0
- package/dist/npm/connection-transfer.d.ts +7 -0
- package/dist/npm/connection-transfer.js +20 -0
- package/dist/npm/http-client.d.ts +18 -0
- package/dist/npm/http-client.js +230 -0
- package/dist/npm/index.d.ts +10 -0
- package/dist/npm/index.js +31 -0
- package/dist/npm/messenger.d.ts +37 -0
- package/dist/npm/messenger.js +54 -0
- package/dist/npm/module.js +10 -0
- package/dist/npm/notifications.d.ts +94 -0
- package/dist/npm/notifications.js +495 -0
- package/dist/npm/ping.d.ts +21 -0
- package/dist/npm/ping.js +60 -0
- package/dist/npm/polyfills.d.ts +0 -0
- package/dist/npm/polyfills.js +6 -0
- package/dist/npm/server-monitor.d.ts +16 -0
- package/dist/npm/server-monitor.js +44 -0
- package/dist/npm/stanza-definitions/webrtc-signaling.d.ts +29 -0
- package/dist/npm/stanza-definitions/webrtc-signaling.js +113 -0
- package/dist/npm/stanza-definitions/xep0051.d.ts +19 -0
- package/dist/npm/stanza-definitions/xep0051.js +28 -0
- package/dist/npm/stats-formatter.d.ts +6 -0
- package/dist/npm/stats-formatter.js +63 -0
- package/dist/npm/types/genesys-cloud-media-session.d.ts +64 -0
- package/dist/npm/types/genesys-cloud-media-session.js +353 -0
- package/dist/npm/types/interfaces.d.ts +310 -0
- package/dist/npm/types/interfaces.js +22 -0
- package/dist/npm/types/libs.d.ts +32 -0
- package/dist/npm/types/libs.js +1 -0
- package/dist/npm/types/media-session.d.ts +76 -0
- package/dist/npm/types/media-session.js +2 -0
- package/dist/npm/types/named-agent.d.ts +13 -0
- package/dist/npm/types/named-agent.js +2 -0
- package/dist/npm/types/offline-error.d.ts +2 -0
- package/dist/npm/types/offline-error.js +5 -0
- package/dist/npm/types/sasl-error.d.ts +8 -0
- package/dist/npm/types/sasl-error.js +12 -0
- package/dist/npm/types/stanza-media-session.d.ts +56 -0
- package/dist/npm/types/stanza-media-session.js +255 -0
- package/dist/npm/types/streaming-client-extension.d.ts +14 -0
- package/dist/npm/types/streaming-client-extension.js +2 -0
- package/dist/npm/types/timeout-error.d.ts +3 -0
- package/dist/npm/types/timeout-error.js +9 -0
- package/dist/npm/types/user-cancelled-error.d.ts +2 -0
- package/dist/npm/types/user-cancelled-error.js +5 -0
- package/dist/npm/utils.d.ts +34 -0
- package/dist/npm/utils.js +207 -0
- package/dist/npm/webrtc.d.ts +126 -0
- package/dist/npm/webrtc.js +893 -0
- package/dist/streaming-client.browser.js +2 -0
- package/dist/streaming-client.browser.js.LICENSE.txt +12 -0
- package/dist/v20/streaming-client.browser.js +2 -0
- package/dist/v20/streaming-client.browser.js.LICENSE.txt +12 -0
- package/dist/v20.1.0/streaming-client.browser.js +2 -0
- package/dist/v20.1.0/streaming-client.browser.js.LICENSE.txt +12 -0
- package/package.json +132 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { DefinitionOptions } from 'stanza/jxt';
|
|
2
|
+
import { Stanzas } from 'stanza';
|
|
3
|
+
import { GenesysMediaMessage, GenesysWebrtcJsonRpcMessage } from '../types/interfaces';
|
|
4
|
+
export interface Propose {
|
|
5
|
+
sessionId: string;
|
|
6
|
+
conversationId: string;
|
|
7
|
+
autoAnswer: boolean;
|
|
8
|
+
persistentConversationId?: string;
|
|
9
|
+
originalRoomJid?: string;
|
|
10
|
+
fromUserId?: string;
|
|
11
|
+
sdpOverXmpp?: boolean;
|
|
12
|
+
privAnswerMode?: 'Auto';
|
|
13
|
+
}
|
|
14
|
+
declare module 'stanza/protocol' {
|
|
15
|
+
interface IQPayload {
|
|
16
|
+
genesysWebrtc?: GenesysWebrtcJsonRpcMessage;
|
|
17
|
+
}
|
|
18
|
+
interface ReceivedMessage {
|
|
19
|
+
mediaMessage?: GenesysMediaMessage;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
declare module 'stanza' {
|
|
23
|
+
interface AgentEvents {
|
|
24
|
+
'iq:set:genesysWebrtc': Stanzas.ReceivedIQ & {
|
|
25
|
+
genesysWebrtc: GenesysWebrtcJsonRpcMessage;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export declare const definitions: DefinitionOptions<any>[];
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { attribute, booleanAttribute, childAttribute, childJSON } from 'stanza/jxt';
|
|
2
|
+
import { NS_CLIENT, NS_JINGLE_RTP_INFO_1 } from 'stanza/Namespaces';
|
|
3
|
+
const NS_JINGLE_SIGNALING = 'urn:xmpp:jingle-message:0';
|
|
4
|
+
const proposeDefinition = {
|
|
5
|
+
aliases: ['message.propose'],
|
|
6
|
+
element: 'propose',
|
|
7
|
+
fields: {
|
|
8
|
+
conversationId: attribute('inin-cid'),
|
|
9
|
+
persistentConversationId: attribute('inin-persistent-cid'),
|
|
10
|
+
sdpOverXmpp: booleanAttribute('inin-sdp-over-xmpp'),
|
|
11
|
+
privAnswerMode: attribute('inin-priv-answer-mode'),
|
|
12
|
+
originalRoomJid: attribute('inin-ofrom'),
|
|
13
|
+
autoAnswer: booleanAttribute('inin-autoanswer'),
|
|
14
|
+
fromUserId: attribute('inin-user-id'),
|
|
15
|
+
sessionId: attribute('id'),
|
|
16
|
+
meetingId: attribute('inin-meeting-id')
|
|
17
|
+
},
|
|
18
|
+
namespace: NS_JINGLE_SIGNALING
|
|
19
|
+
};
|
|
20
|
+
const proceedDefinition = {
|
|
21
|
+
aliases: ['message.proceed'],
|
|
22
|
+
element: 'proceed',
|
|
23
|
+
fields: {
|
|
24
|
+
sessionId: attribute('id')
|
|
25
|
+
},
|
|
26
|
+
namespace: NS_JINGLE_SIGNALING
|
|
27
|
+
};
|
|
28
|
+
const sessionAcceptedDefinition = {
|
|
29
|
+
aliases: ['message.accept'],
|
|
30
|
+
element: 'accept',
|
|
31
|
+
fields: {
|
|
32
|
+
sessionId: attribute('id')
|
|
33
|
+
},
|
|
34
|
+
namespace: NS_JINGLE_SIGNALING
|
|
35
|
+
};
|
|
36
|
+
const sessionRejectedDefinition = {
|
|
37
|
+
aliases: ['message.reject'],
|
|
38
|
+
element: 'reject',
|
|
39
|
+
fields: {
|
|
40
|
+
sessionId: attribute('id')
|
|
41
|
+
},
|
|
42
|
+
namespace: NS_JINGLE_SIGNALING
|
|
43
|
+
};
|
|
44
|
+
const sessionRetractedDefinition = {
|
|
45
|
+
aliases: ['message.retract'],
|
|
46
|
+
element: 'retract',
|
|
47
|
+
fields: {
|
|
48
|
+
sessionId: attribute('id')
|
|
49
|
+
},
|
|
50
|
+
namespace: NS_JINGLE_SIGNALING
|
|
51
|
+
};
|
|
52
|
+
const screenStartDefinition = {
|
|
53
|
+
aliases: ['iq.jingle.screenstart'],
|
|
54
|
+
element: 'screen-start',
|
|
55
|
+
namespace: NS_JINGLE_RTP_INFO_1
|
|
56
|
+
};
|
|
57
|
+
const screenStopDefinition = {
|
|
58
|
+
aliases: ['iq.jingle.screenstop'],
|
|
59
|
+
element: 'screen-stop',
|
|
60
|
+
namespace: NS_JINGLE_RTP_INFO_1
|
|
61
|
+
};
|
|
62
|
+
// this allows parsing xml that looks something like this:
|
|
63
|
+
/*
|
|
64
|
+
<iq xmlns="jabber:client" [other stuff]>
|
|
65
|
+
<genesys-webrtc xmlns="genesys">{ "id": "whatver", "anyOtherFieldICareAbout": true }</genesys-webrtc>
|
|
66
|
+
</iq>
|
|
67
|
+
*/
|
|
68
|
+
const genesysWebrtc = {
|
|
69
|
+
path: 'iq',
|
|
70
|
+
namespace: NS_CLIENT,
|
|
71
|
+
element: 'iq',
|
|
72
|
+
fields: {
|
|
73
|
+
genesysWebrtc: childJSON('genesys', 'genesys-webrtc')
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const mediaMessage = {
|
|
77
|
+
path: 'message',
|
|
78
|
+
namespace: NS_CLIENT,
|
|
79
|
+
element: 'message',
|
|
80
|
+
fields: {
|
|
81
|
+
mediaMessage: childJSON('genesys', 'media-message')
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
const upgradeMediaPresenceDefinition = {
|
|
85
|
+
aliases: ['presence.media'],
|
|
86
|
+
element: 'x',
|
|
87
|
+
fields: {
|
|
88
|
+
conversationId: attribute('conversationId'),
|
|
89
|
+
sourceCommunicationId: attribute('sourceCommunicationId'),
|
|
90
|
+
screenShare: childAttribute(null, 'mediastream', 'screenShare'),
|
|
91
|
+
video: childAttribute(null, 'mediastream', 'video'),
|
|
92
|
+
audio: childAttribute(null, 'mediastream', 'audio'),
|
|
93
|
+
listener: childAttribute(null, 'mediastream', 'listener'),
|
|
94
|
+
screenRecording: childAttribute(null, 'mediastream', 'screenRecording'),
|
|
95
|
+
videoGuest: childAttribute(null, 'mediastream', 'videoGuest')
|
|
96
|
+
},
|
|
97
|
+
namespace: 'orgspan:mediastream'
|
|
98
|
+
};
|
|
99
|
+
export const definitions = [
|
|
100
|
+
proposeDefinition,
|
|
101
|
+
proceedDefinition,
|
|
102
|
+
sessionAcceptedDefinition,
|
|
103
|
+
sessionRejectedDefinition,
|
|
104
|
+
sessionRetractedDefinition,
|
|
105
|
+
screenStartDefinition,
|
|
106
|
+
screenStopDefinition,
|
|
107
|
+
upgradeMediaPresenceDefinition,
|
|
108
|
+
genesysWebrtc,
|
|
109
|
+
mediaMessage
|
|
110
|
+
];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Stanzas } from 'stanza';
|
|
2
|
+
import { DefinitionOptions } from 'stanza/jxt';
|
|
3
|
+
declare module 'stanza' {
|
|
4
|
+
interface AgentEvents {
|
|
5
|
+
'iq:set:connectionTransfer': Stanzas.ReceivedIQ & {
|
|
6
|
+
query: ConnectionTransfer;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
declare module 'stanza/protocol' {
|
|
11
|
+
interface IQPayload {
|
|
12
|
+
query?: ConnectionTransfer;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export interface ConnectionTransfer {
|
|
16
|
+
domain?: string;
|
|
17
|
+
server?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const connectionTransfer: DefinitionOptions;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { childText } from 'stanza/jxt';
|
|
2
|
+
// XEP-0051: Connection Transfer
|
|
3
|
+
// Source: https://xmpp.org/extensions/xep-0051.html
|
|
4
|
+
// Version: 0.2.1 (2022-03-08)
|
|
5
|
+
// ---------------------------
|
|
6
|
+
// We don't currently use domain or server
|
|
7
|
+
const NS_CONNECTION_TRANSFER = 'urn:xmpp:cxfr';
|
|
8
|
+
/*
|
|
9
|
+
<iq xmlns="jabber:client" id="<someId>" to="<toJID>" type="set">
|
|
10
|
+
<query xmlns="urn:xmpp:cxfr">
|
|
11
|
+
<domain>jabber.org</domain>
|
|
12
|
+
<server>123.123.123.122</server>
|
|
13
|
+
</query>
|
|
14
|
+
</iq>
|
|
15
|
+
*/
|
|
16
|
+
export const connectionTransfer = {
|
|
17
|
+
path: 'iq.query',
|
|
18
|
+
aliases: ['iq.connectionTransfer'],
|
|
19
|
+
namespace: NS_CONNECTION_TRANSFER,
|
|
20
|
+
element: 'query',
|
|
21
|
+
fields: {
|
|
22
|
+
domain: childText(null, 'domain'),
|
|
23
|
+
server: childText(null, 'server')
|
|
24
|
+
}
|
|
25
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { StatsEvent } from 'webrtc-stats-gatherer';
|
|
2
|
+
import { FlatObject, InsightAction } from './types/interfaces';
|
|
3
|
+
export declare function formatStatsEvent(event: StatsEvent, extraDetails?: FlatObject): InsightAction<{
|
|
4
|
+
_eventType: string;
|
|
5
|
+
} & FlatObject>;
|
|
6
|
+
export declare function deepFlatten(obj: any, prefix?: string): any;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
function isGetStatsEvent(event) {
|
|
2
|
+
return event.name === 'getStats';
|
|
3
|
+
}
|
|
4
|
+
function prepGetStatsEvent(event) {
|
|
5
|
+
const details = {};
|
|
6
|
+
Object.assign(details, deepFlatten(event.tracks, 'localTrack'));
|
|
7
|
+
delete event.tracks;
|
|
8
|
+
Object.assign(details, deepFlatten(event.remoteTracks, 'remoteTrack'));
|
|
9
|
+
delete event.remoteTracks;
|
|
10
|
+
return details;
|
|
11
|
+
}
|
|
12
|
+
export function formatStatsEvent(event, extraDetails = {}) {
|
|
13
|
+
const details = Object.assign({ _eventType: event.name, _eventTimestamp: new Date().getTime() }, extraDetails);
|
|
14
|
+
// anything that needs to be renamed or massaged
|
|
15
|
+
if (isGetStatsEvent(event)) {
|
|
16
|
+
Object.assign(details, prepGetStatsEvent(event));
|
|
17
|
+
}
|
|
18
|
+
// general case
|
|
19
|
+
Object.assign(details, deepFlatten(event));
|
|
20
|
+
delete details.name;
|
|
21
|
+
const formattedEvent = {
|
|
22
|
+
actionName: 'WebrtcStats',
|
|
23
|
+
details
|
|
24
|
+
};
|
|
25
|
+
return formattedEvent;
|
|
26
|
+
}
|
|
27
|
+
export function deepFlatten(obj, prefix = '') {
|
|
28
|
+
const flatObj = {};
|
|
29
|
+
if (Array.isArray(obj)) {
|
|
30
|
+
for (let i = 0; i < obj.length; i++) {
|
|
31
|
+
Object.assign(flatObj, deepFlatten(obj[i], `${prefix}_[${i}]`));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else if (typeof obj !== 'object') {
|
|
35
|
+
flatObj[prefix] = obj;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
Object.keys(obj)
|
|
39
|
+
/* Filter all IP addresses before sending to NR.
|
|
40
|
+
https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidatePairStats */
|
|
41
|
+
.filter(key => !['ip', 'address', 'relatedaddress'].includes(key.toLowerCase()))
|
|
42
|
+
.forEach((key) => {
|
|
43
|
+
const val = obj[key];
|
|
44
|
+
const nextPrefix = prefix ? `${prefix}_${key}` : key;
|
|
45
|
+
if (typeof val !== 'object' && !Array.isArray(val)) {
|
|
46
|
+
flatObj[nextPrefix] = val;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
Object.assign(flatObj, deepFlatten(val, nextPrefix));
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return flatObj;
|
|
54
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { JingleReasonCondition } from 'stanza/Constants';
|
|
2
|
+
import { JingleReason } from 'stanza/protocol';
|
|
3
|
+
import { ConnectionState, IGenesysCloudMediaSessionParams, IMediaSession, SessionState } from './media-session';
|
|
4
|
+
import { WebrtcExtension } from '../webrtc';
|
|
5
|
+
import { SessionTypes } from './interfaces';
|
|
6
|
+
export interface GenesysCloudMediaSession extends IMediaSession {
|
|
7
|
+
}
|
|
8
|
+
export declare class GenesysCloudMediaSession {
|
|
9
|
+
private webrtcExtension;
|
|
10
|
+
private statsGatherer?;
|
|
11
|
+
private iceCandidatesDiscovered;
|
|
12
|
+
private iceCandidatesReceivedFromPeer;
|
|
13
|
+
private interruptionStart?;
|
|
14
|
+
private logger;
|
|
15
|
+
private stateSyncTimeout?;
|
|
16
|
+
conversationId: string;
|
|
17
|
+
id: string;
|
|
18
|
+
fromJid: string;
|
|
19
|
+
peerID: string;
|
|
20
|
+
peerConnection: RTCPeerConnection;
|
|
21
|
+
fromUserId?: string;
|
|
22
|
+
originalRoomJid?: string;
|
|
23
|
+
sessionType: SessionTypes;
|
|
24
|
+
ignoreHostCandidatesFromRemote: boolean;
|
|
25
|
+
allowIPv6: boolean;
|
|
26
|
+
allowTCP: boolean;
|
|
27
|
+
dataChannel?: RTCDataChannel;
|
|
28
|
+
state: SessionState;
|
|
29
|
+
connectionState: ConnectionState;
|
|
30
|
+
privAnswerMode?: 'Auto';
|
|
31
|
+
constructor(webrtcExtension: WebrtcExtension, params: IGenesysCloudMediaSessionParams);
|
|
32
|
+
private keepStateInSyncWithPeerConnection;
|
|
33
|
+
setRemoteDescription(sdp: string): Promise<void>;
|
|
34
|
+
private getLogDetails;
|
|
35
|
+
private log;
|
|
36
|
+
private sendGenesysWebrtc;
|
|
37
|
+
end(reason?: JingleReasonCondition | JingleReason, silent?: boolean): Promise<void>;
|
|
38
|
+
setupStatsGatherer(): void;
|
|
39
|
+
protected onIceStateChange(): Promise<void>;
|
|
40
|
+
protected onConnectionStateChange(): void;
|
|
41
|
+
protected onIceCandidateError(ev: Event): void;
|
|
42
|
+
private createIceCandidate;
|
|
43
|
+
addRemoteIceCandidate(sdpFragment: string): Promise<void>;
|
|
44
|
+
protected onIceCandidate(e: RTCPeerConnectionIceEvent): Promise<any> | undefined;
|
|
45
|
+
onSessionTerminate(reason?: JingleReasonCondition): void;
|
|
46
|
+
addTrack(track: MediaStreamTrack, stream?: MediaStream): Promise<void>;
|
|
47
|
+
protected _setupDataChannel(): void;
|
|
48
|
+
_handleDataChannelMessage(event: MessageEvent): void;
|
|
49
|
+
accept(): Promise<any>;
|
|
50
|
+
mute(userId: string, type: 'audio' | 'video'): Promise<any>;
|
|
51
|
+
unmute(userId: string, type: 'audio' | 'video'): Promise<any>;
|
|
52
|
+
removeTrack(): Promise<void>;
|
|
53
|
+
hold(): Promise<void>;
|
|
54
|
+
resume(): Promise<void>;
|
|
55
|
+
toString(): {
|
|
56
|
+
connectionState: ConnectionState;
|
|
57
|
+
state: SessionState;
|
|
58
|
+
sessionType: SessionTypes;
|
|
59
|
+
fromJid: string;
|
|
60
|
+
conversationId: string;
|
|
61
|
+
id: string;
|
|
62
|
+
peerConnection: RTCPeerConnection;
|
|
63
|
+
};
|
|
64
|
+
}
|