@azure/communication-call-automation 1.5.0-beta.2 → 1.5.0-beta.3
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 +3 -1
- package/dist/browser/callAutomationClient.d.ts +2 -3
- package/dist/browser/callAutomationClient.d.ts.map +1 -1
- package/dist/browser/callAutomationClient.js +79 -31
- package/dist/browser/callAutomationClient.js.map +1 -1
- package/dist/browser/callAutomationEventParser.d.ts.map +1 -1
- package/dist/browser/callAutomationEventParser.js +9 -10
- package/dist/browser/callAutomationEventParser.js.map +1 -1
- package/dist/browser/callConnection.d.ts +1 -1
- package/dist/browser/callConnection.d.ts.map +1 -1
- package/dist/browser/callConnection.js +82 -38
- package/dist/browser/callConnection.js.map +1 -1
- package/dist/browser/callMedia.d.ts +1 -1
- package/dist/browser/callMedia.d.ts.map +1 -1
- package/dist/browser/callMedia.js +33 -12
- package/dist/browser/callMedia.js.map +1 -1
- package/dist/browser/callRecording.js +11 -6
- package/dist/browser/callRecording.js.map +1 -1
- package/dist/browser/contentDownloader.js +11 -12
- package/dist/browser/contentDownloader.js.map +1 -1
- package/dist/browser/credential/callAutomationAccessKeyCredentialPolicy.js +1 -2
- package/dist/browser/credential/callAutomationAccessKeyCredentialPolicy.js.map +1 -1
- package/dist/browser/credential/callAutomationAuthPolicy.js +1 -1
- package/dist/browser/credential/callAutomationAuthPolicy.js.map +1 -1
- package/dist/browser/credential/cryptoUtils-browser.mjs.map +1 -1
- package/dist/browser/credential/cryptoUtils.js +1 -2
- package/dist/browser/generated/src/callAutomationApiClient.js +14 -5
- package/dist/browser/generated/src/callAutomationApiClient.js.map +1 -1
- package/dist/browser/generated/src/models/index.d.ts +305 -322
- package/dist/browser/generated/src/models/index.d.ts.map +1 -1
- package/dist/browser/generated/src/models/index.js +29 -35
- package/dist/browser/generated/src/models/index.js.map +1 -1
- package/dist/browser/generated/src/models/mappers.d.ts +41 -34
- package/dist/browser/generated/src/models/mappers.d.ts.map +1 -1
- package/dist/browser/generated/src/models/mappers.js +481 -462
- package/dist/browser/generated/src/models/mappers.js.map +1 -1
- package/dist/browser/generated/src/models/parameters.js +1 -1
- package/dist/browser/generated/src/models/parameters.js.map +1 -1
- package/dist/browser/generated/src/operations/callConnection.js +23 -40
- package/dist/browser/generated/src/operations/callConnection.js.map +1 -1
- package/dist/browser/generated/src/operations/callMedia.js +1 -0
- package/dist/browser/generated/src/operations/callMedia.js.map +1 -1
- package/dist/browser/generated/src/operations/callRecording.js +1 -0
- package/dist/browser/generated/src/operations/callRecording.js.map +1 -1
- package/dist/browser/generated/src/pagingHelper.js +2 -4
- package/dist/browser/generated/src/pagingHelper.js.map +1 -1
- package/dist/browser/models/constants.d.ts.map +1 -1
- package/dist/browser/models/constants.js +1 -1
- package/dist/browser/models/constants.js.map +1 -1
- package/dist/browser/models/events.d.ts +295 -209
- package/dist/browser/models/events.d.ts.map +1 -1
- package/dist/browser/models/events.js.map +1 -1
- package/dist/browser/models/models.d.ts +44 -4
- package/dist/browser/models/models.d.ts.map +1 -1
- package/dist/browser/models/models.js +1 -1
- package/dist/browser/models/models.js.map +1 -1
- package/dist/browser/models/options.d.ts +17 -0
- package/dist/browser/models/options.d.ts.map +1 -1
- package/dist/browser/models/options.js.map +1 -1
- package/dist/browser/models/responses.d.ts +1 -1
- package/dist/browser/models/responses.d.ts.map +1 -1
- package/dist/browser/models/responses.js.map +1 -1
- package/dist/browser/models/streaming.d.ts +26 -27
- package/dist/browser/models/streaming.d.ts.map +1 -1
- package/dist/browser/models/streaming.js +28 -57
- package/dist/browser/models/streaming.js.map +1 -1
- package/dist/browser/streamingData.d.ts.map +1 -1
- package/dist/browser/streamingData.js +10 -1
- package/dist/browser/streamingData.js.map +1 -1
- package/dist/browser/utli/converters.d.ts.map +1 -1
- package/dist/browser/utli/converters.js +30 -9
- package/dist/browser/utli/converters.js.map +1 -1
- package/dist/commonjs/callAutomationClient.d.ts +2 -3
- package/dist/commonjs/callAutomationClient.d.ts.map +1 -1
- package/dist/commonjs/callAutomationClient.js +79 -31
- package/dist/commonjs/callAutomationClient.js.map +1 -1
- package/dist/commonjs/callAutomationEventParser.d.ts.map +1 -1
- package/dist/commonjs/callAutomationEventParser.js +9 -10
- package/dist/commonjs/callAutomationEventParser.js.map +1 -1
- package/dist/commonjs/callConnection.d.ts +1 -1
- package/dist/commonjs/callConnection.d.ts.map +1 -1
- package/dist/commonjs/callConnection.js +82 -38
- package/dist/commonjs/callConnection.js.map +1 -1
- package/dist/commonjs/callMedia.d.ts +1 -1
- package/dist/commonjs/callMedia.d.ts.map +1 -1
- package/dist/commonjs/callMedia.js +42 -21
- package/dist/commonjs/callMedia.js.map +1 -1
- package/dist/commonjs/callRecording.js +12 -7
- package/dist/commonjs/callRecording.js.map +1 -1
- package/dist/commonjs/contentDownloader.js +11 -12
- package/dist/commonjs/contentDownloader.js.map +1 -1
- package/dist/commonjs/credential/callAutomationAccessKeyCredentialPolicy.js +1 -2
- package/dist/commonjs/credential/callAutomationAccessKeyCredentialPolicy.js.map +1 -1
- package/dist/commonjs/credential/callAutomationAuthPolicy.js +1 -1
- package/dist/commonjs/credential/callAutomationAuthPolicy.js.map +1 -1
- package/dist/commonjs/generated/src/callAutomationApiClient.js +14 -5
- package/dist/commonjs/generated/src/callAutomationApiClient.js.map +1 -1
- package/dist/commonjs/generated/src/models/index.d.ts +305 -322
- package/dist/commonjs/generated/src/models/index.d.ts.map +1 -1
- package/dist/commonjs/generated/src/models/index.js +30 -36
- package/dist/commonjs/generated/src/models/index.js.map +1 -1
- package/dist/commonjs/generated/src/models/mappers.d.ts +41 -34
- package/dist/commonjs/generated/src/models/mappers.d.ts.map +1 -1
- package/dist/commonjs/generated/src/models/mappers.js +484 -465
- package/dist/commonjs/generated/src/models/mappers.js.map +1 -1
- package/dist/commonjs/generated/src/models/parameters.js +1 -1
- package/dist/commonjs/generated/src/models/parameters.js.map +1 -1
- package/dist/commonjs/generated/src/operations/callConnection.js +23 -39
- package/dist/commonjs/generated/src/operations/callConnection.js.map +1 -1
- package/dist/commonjs/generated/src/operations/callMedia.js +1 -0
- package/dist/commonjs/generated/src/operations/callMedia.js.map +1 -1
- package/dist/commonjs/generated/src/operations/callRecording.js +1 -0
- package/dist/commonjs/generated/src/operations/callRecording.js.map +1 -1
- package/dist/commonjs/generated/src/pagingHelper.js +2 -4
- package/dist/commonjs/generated/src/pagingHelper.js.map +1 -1
- package/dist/commonjs/models/constants.d.ts.map +1 -1
- package/dist/commonjs/models/constants.js +1 -1
- package/dist/commonjs/models/constants.js.map +1 -1
- package/dist/commonjs/models/events.d.ts +295 -209
- package/dist/commonjs/models/events.d.ts.map +1 -1
- package/dist/commonjs/models/events.js.map +1 -1
- package/dist/commonjs/models/models.d.ts +44 -4
- package/dist/commonjs/models/models.d.ts.map +1 -1
- package/dist/commonjs/models/models.js +2 -16
- package/dist/commonjs/models/models.js.map +1 -1
- package/dist/commonjs/models/options.d.ts +17 -0
- package/dist/commonjs/models/options.d.ts.map +1 -1
- package/dist/commonjs/models/options.js.map +1 -1
- package/dist/commonjs/models/responses.d.ts +1 -1
- package/dist/commonjs/models/responses.d.ts.map +1 -1
- package/dist/commonjs/models/responses.js.map +1 -1
- package/dist/commonjs/models/streaming.d.ts +26 -27
- package/dist/commonjs/models/streaming.d.ts.map +1 -1
- package/dist/commonjs/models/streaming.js +31 -59
- package/dist/commonjs/models/streaming.js.map +1 -1
- package/dist/commonjs/streamingData.d.ts.map +1 -1
- package/dist/commonjs/streamingData.js +10 -1
- package/dist/commonjs/streamingData.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +11 -11
- package/dist/commonjs/utli/converters.d.ts.map +1 -1
- package/dist/commonjs/utli/converters.js +30 -9
- package/dist/commonjs/utli/converters.js.map +1 -1
- package/dist/esm/callAutomationClient.d.ts +2 -3
- package/dist/esm/callAutomationClient.d.ts.map +1 -1
- package/dist/esm/callAutomationClient.js +79 -31
- package/dist/esm/callAutomationClient.js.map +1 -1
- package/dist/esm/callAutomationEventParser.d.ts.map +1 -1
- package/dist/esm/callAutomationEventParser.js +9 -10
- package/dist/esm/callAutomationEventParser.js.map +1 -1
- package/dist/esm/callConnection.d.ts +1 -1
- package/dist/esm/callConnection.d.ts.map +1 -1
- package/dist/esm/callConnection.js +82 -38
- package/dist/esm/callConnection.js.map +1 -1
- package/dist/esm/callMedia.d.ts +1 -1
- package/dist/esm/callMedia.d.ts.map +1 -1
- package/dist/esm/callMedia.js +33 -12
- package/dist/esm/callMedia.js.map +1 -1
- package/dist/esm/callRecording.js +11 -6
- package/dist/esm/callRecording.js.map +1 -1
- package/dist/esm/contentDownloader.js +11 -12
- package/dist/esm/contentDownloader.js.map +1 -1
- package/dist/esm/credential/callAutomationAccessKeyCredentialPolicy.js +1 -2
- package/dist/esm/credential/callAutomationAccessKeyCredentialPolicy.js.map +1 -1
- package/dist/esm/credential/callAutomationAuthPolicy.js +1 -1
- package/dist/esm/credential/callAutomationAuthPolicy.js.map +1 -1
- package/dist/esm/generated/src/callAutomationApiClient.js +14 -5
- package/dist/esm/generated/src/callAutomationApiClient.js.map +1 -1
- package/dist/esm/generated/src/models/index.d.ts +305 -322
- package/dist/esm/generated/src/models/index.d.ts.map +1 -1
- package/dist/esm/generated/src/models/index.js +29 -35
- package/dist/esm/generated/src/models/index.js.map +1 -1
- package/dist/esm/generated/src/models/mappers.d.ts +41 -34
- package/dist/esm/generated/src/models/mappers.d.ts.map +1 -1
- package/dist/esm/generated/src/models/mappers.js +481 -462
- package/dist/esm/generated/src/models/mappers.js.map +1 -1
- package/dist/esm/generated/src/models/parameters.js +1 -1
- package/dist/esm/generated/src/models/parameters.js.map +1 -1
- package/dist/esm/generated/src/operations/callConnection.js +23 -40
- package/dist/esm/generated/src/operations/callConnection.js.map +1 -1
- package/dist/esm/generated/src/operations/callMedia.js +1 -0
- package/dist/esm/generated/src/operations/callMedia.js.map +1 -1
- package/dist/esm/generated/src/operations/callRecording.js +1 -0
- package/dist/esm/generated/src/operations/callRecording.js.map +1 -1
- package/dist/esm/generated/src/pagingHelper.js +2 -4
- package/dist/esm/generated/src/pagingHelper.js.map +1 -1
- package/dist/esm/models/constants.d.ts.map +1 -1
- package/dist/esm/models/constants.js +1 -1
- package/dist/esm/models/constants.js.map +1 -1
- package/dist/esm/models/events.d.ts +295 -209
- package/dist/esm/models/events.d.ts.map +1 -1
- package/dist/esm/models/events.js.map +1 -1
- package/dist/esm/models/models.d.ts +44 -4
- package/dist/esm/models/models.d.ts.map +1 -1
- package/dist/esm/models/models.js +1 -1
- package/dist/esm/models/models.js.map +1 -1
- package/dist/esm/models/options.d.ts +17 -0
- package/dist/esm/models/options.d.ts.map +1 -1
- package/dist/esm/models/options.js.map +1 -1
- package/dist/esm/models/responses.d.ts +1 -1
- package/dist/esm/models/responses.d.ts.map +1 -1
- package/dist/esm/models/responses.js.map +1 -1
- package/dist/esm/models/streaming.d.ts +26 -27
- package/dist/esm/models/streaming.d.ts.map +1 -1
- package/dist/esm/models/streaming.js +28 -57
- package/dist/esm/models/streaming.js.map +1 -1
- package/dist/esm/streamingData.d.ts.map +1 -1
- package/dist/esm/streamingData.js +10 -1
- package/dist/esm/streamingData.js.map +1 -1
- package/dist/esm/utli/converters.d.ts.map +1 -1
- package/dist/esm/utli/converters.js +30 -9
- package/dist/esm/utli/converters.js.map +1 -1
- package/dist/react-native/callAutomationClient.d.ts +2 -3
- package/dist/react-native/callAutomationClient.d.ts.map +1 -1
- package/dist/react-native/callAutomationClient.js +79 -31
- package/dist/react-native/callAutomationClient.js.map +1 -1
- package/dist/react-native/callAutomationEventParser.d.ts.map +1 -1
- package/dist/react-native/callAutomationEventParser.js +9 -10
- package/dist/react-native/callAutomationEventParser.js.map +1 -1
- package/dist/react-native/callConnection.d.ts +1 -1
- package/dist/react-native/callConnection.d.ts.map +1 -1
- package/dist/react-native/callConnection.js +82 -38
- package/dist/react-native/callConnection.js.map +1 -1
- package/dist/react-native/callMedia.d.ts +1 -1
- package/dist/react-native/callMedia.d.ts.map +1 -1
- package/dist/react-native/callMedia.js +33 -12
- package/dist/react-native/callMedia.js.map +1 -1
- package/dist/react-native/callRecording.js +11 -6
- package/dist/react-native/callRecording.js.map +1 -1
- package/dist/react-native/contentDownloader.js +11 -12
- package/dist/react-native/contentDownloader.js.map +1 -1
- package/dist/react-native/credential/callAutomationAccessKeyCredentialPolicy.js +1 -2
- package/dist/react-native/credential/callAutomationAccessKeyCredentialPolicy.js.map +1 -1
- package/dist/react-native/credential/callAutomationAuthPolicy.js +1 -1
- package/dist/react-native/credential/callAutomationAuthPolicy.js.map +1 -1
- package/dist/react-native/generated/src/callAutomationApiClient.js +14 -5
- package/dist/react-native/generated/src/callAutomationApiClient.js.map +1 -1
- package/dist/react-native/generated/src/models/index.d.ts +305 -322
- package/dist/react-native/generated/src/models/index.d.ts.map +1 -1
- package/dist/react-native/generated/src/models/index.js +29 -35
- package/dist/react-native/generated/src/models/index.js.map +1 -1
- package/dist/react-native/generated/src/models/mappers.d.ts +41 -34
- package/dist/react-native/generated/src/models/mappers.d.ts.map +1 -1
- package/dist/react-native/generated/src/models/mappers.js +481 -462
- package/dist/react-native/generated/src/models/mappers.js.map +1 -1
- package/dist/react-native/generated/src/models/parameters.js +1 -1
- package/dist/react-native/generated/src/models/parameters.js.map +1 -1
- package/dist/react-native/generated/src/operations/callConnection.js +23 -40
- package/dist/react-native/generated/src/operations/callConnection.js.map +1 -1
- package/dist/react-native/generated/src/operations/callMedia.js +1 -0
- package/dist/react-native/generated/src/operations/callMedia.js.map +1 -1
- package/dist/react-native/generated/src/operations/callRecording.js +1 -0
- package/dist/react-native/generated/src/operations/callRecording.js.map +1 -1
- package/dist/react-native/generated/src/pagingHelper.js +2 -4
- package/dist/react-native/generated/src/pagingHelper.js.map +1 -1
- package/dist/react-native/models/constants.d.ts.map +1 -1
- package/dist/react-native/models/constants.js +1 -1
- package/dist/react-native/models/constants.js.map +1 -1
- package/dist/react-native/models/events.d.ts +295 -209
- package/dist/react-native/models/events.d.ts.map +1 -1
- package/dist/react-native/models/events.js.map +1 -1
- package/dist/react-native/models/models.d.ts +44 -4
- package/dist/react-native/models/models.d.ts.map +1 -1
- package/dist/react-native/models/models.js +1 -1
- package/dist/react-native/models/models.js.map +1 -1
- package/dist/react-native/models/options.d.ts +17 -0
- package/dist/react-native/models/options.d.ts.map +1 -1
- package/dist/react-native/models/options.js.map +1 -1
- package/dist/react-native/models/responses.d.ts +1 -1
- package/dist/react-native/models/responses.d.ts.map +1 -1
- package/dist/react-native/models/responses.js.map +1 -1
- package/dist/react-native/models/streaming.d.ts +26 -27
- package/dist/react-native/models/streaming.d.ts.map +1 -1
- package/dist/react-native/models/streaming.js +28 -57
- package/dist/react-native/models/streaming.js.map +1 -1
- package/dist/react-native/streamingData.d.ts.map +1 -1
- package/dist/react-native/streamingData.js +10 -1
- package/dist/react-native/streamingData.js.map +1 -1
- package/dist/react-native/utli/converters.d.ts.map +1 -1
- package/dist/react-native/utli/converters.js +30 -9
- package/dist/react-native/utli/converters.js.map +1 -1
- package/package.json +38 -44
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
import { __asyncValues, __rest } from "tslib";
|
|
4
3
|
import { createCommunicationAuthPolicy, } from "@azure/communication-common";
|
|
5
4
|
import { CallMedia } from "./callMedia.js";
|
|
6
5
|
import { CallAutomationApiClient, } from "./generated/src/index.js";
|
|
@@ -11,6 +10,12 @@ import { randomUUID } from "@azure/core-util";
|
|
|
11
10
|
* CallConnection class represents call connection based APIs.
|
|
12
11
|
*/
|
|
13
12
|
export class CallConnection {
|
|
13
|
+
callConnectionId;
|
|
14
|
+
callConnection;
|
|
15
|
+
callAutomationApiClient;
|
|
16
|
+
endpoint;
|
|
17
|
+
credential;
|
|
18
|
+
callAutomationApiClientOptions;
|
|
14
19
|
constructor(callConnectionId, endpoint, credential, options) {
|
|
15
20
|
this.callAutomationApiClient = new CallAutomationApiClient(endpoint, options);
|
|
16
21
|
const authPolicy = createCommunicationAuthPolicy(credential);
|
|
@@ -31,10 +36,17 @@ export class CallConnection {
|
|
|
31
36
|
* Get call connection properties of the call
|
|
32
37
|
*/
|
|
33
38
|
async getCallConnectionProperties(options = {}) {
|
|
34
|
-
const
|
|
35
|
-
const callConnectionProperties =
|
|
39
|
+
const { targets, sourceCallerIdNumber, answeredBy, source, answeredFor, ...result } = await this.callConnection.getCall(this.callConnectionId, options);
|
|
40
|
+
const callConnectionProperties = {
|
|
41
|
+
...result,
|
|
42
|
+
source: source ? communicationIdentifierConverter(source) : undefined,
|
|
43
|
+
answeredby: communicationUserIdentifierConverter(answeredBy),
|
|
44
|
+
answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,
|
|
45
|
+
targetParticipants: targets?.map((target) => communicationIdentifierConverter(target)),
|
|
46
|
+
sourceCallerIdNumber: sourceCallerIdNumber
|
|
36
47
|
? phoneNumberIdentifierConverter(sourceCallerIdNumber)
|
|
37
|
-
: undefined
|
|
48
|
+
: undefined,
|
|
49
|
+
};
|
|
38
50
|
return callConnectionProperties;
|
|
39
51
|
}
|
|
40
52
|
/**
|
|
@@ -44,7 +56,11 @@ export class CallConnection {
|
|
|
44
56
|
*/
|
|
45
57
|
async hangUp(isForEveryone, options = {}) {
|
|
46
58
|
if (isForEveryone) {
|
|
47
|
-
const optionsInternal =
|
|
59
|
+
const optionsInternal = {
|
|
60
|
+
...options,
|
|
61
|
+
repeatabilityFirstSent: new Date(),
|
|
62
|
+
repeatabilityRequestID: randomUUID(),
|
|
63
|
+
};
|
|
48
64
|
await this.callConnection.terminateCall(this.callConnectionId, optionsInternal);
|
|
49
65
|
}
|
|
50
66
|
else {
|
|
@@ -74,28 +90,18 @@ export class CallConnection {
|
|
|
74
90
|
* Get all participants from the call
|
|
75
91
|
*/
|
|
76
92
|
async listParticipants(options = {}) {
|
|
77
|
-
var _a, e_1, _b, _c;
|
|
78
93
|
const result = this.callConnection.listParticipants(this.callConnectionId, options);
|
|
79
94
|
const participants = [];
|
|
80
|
-
const pages = result
|
|
81
|
-
|
|
82
|
-
for (
|
|
83
|
-
|
|
84
|
-
_d = false;
|
|
85
|
-
const page = _c;
|
|
86
|
-
for (const participant of page) {
|
|
87
|
-
participants.push(callParticipantConverter(participant));
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
92
|
-
finally {
|
|
93
|
-
try {
|
|
94
|
-
if (!_d && !_a && (_b = pages_1.return)) await _b.call(pages_1);
|
|
95
|
+
const pages = result?.byPage();
|
|
96
|
+
for await (const page of pages) {
|
|
97
|
+
for (const participant of page) {
|
|
98
|
+
participants.push(callParticipantConverter(participant));
|
|
95
99
|
}
|
|
96
|
-
finally { if (e_1) throw e_1.error; }
|
|
97
100
|
}
|
|
98
|
-
const listParticipantResponse =
|
|
101
|
+
const listParticipantResponse = {
|
|
102
|
+
...result,
|
|
103
|
+
values: participants,
|
|
104
|
+
};
|
|
99
105
|
return listParticipantResponse;
|
|
100
106
|
}
|
|
101
107
|
createCustomCallingContextInternal(customCallingContext) {
|
|
@@ -107,7 +113,12 @@ export class CallConnection {
|
|
|
107
113
|
sipHeaders[`User-To-User`] = header.value;
|
|
108
114
|
}
|
|
109
115
|
else if (header.kind === "sipx") {
|
|
110
|
-
|
|
116
|
+
if (header.sipHeaderPrefix === "X-") {
|
|
117
|
+
sipHeaders[`X-${header.key}`] = header.value;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
sipHeaders[`X-MS-Custom-${header.key}`] = header.value;
|
|
121
|
+
}
|
|
111
122
|
}
|
|
112
123
|
else if (header.kind === "voip") {
|
|
113
124
|
voipHeaders[`${header.key}`] = header.value;
|
|
@@ -122,7 +133,6 @@ export class CallConnection {
|
|
|
122
133
|
* @param participant - The participant is going to be added.
|
|
123
134
|
*/
|
|
124
135
|
async addParticipant(targetParticipant, options = {}) {
|
|
125
|
-
var _a, _b;
|
|
126
136
|
const addParticipantRequest = {
|
|
127
137
|
participantToAdd: communicationIdentifierModelConverter(targetParticipant.targetParticipant),
|
|
128
138
|
sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(targetParticipant.sourceCallIdNumber),
|
|
@@ -132,11 +142,21 @@ export class CallConnection {
|
|
|
132
142
|
operationCallbackUri: options.operationCallbackUrl,
|
|
133
143
|
customCallingContext: this.createCustomCallingContextInternal(targetParticipant.customCallingContext),
|
|
134
144
|
};
|
|
135
|
-
const optionsInternal =
|
|
145
|
+
const optionsInternal = {
|
|
146
|
+
...options,
|
|
147
|
+
repeatabilityFirstSent: new Date(),
|
|
148
|
+
repeatabilityRequestID: randomUUID(),
|
|
149
|
+
};
|
|
136
150
|
const result = await this.callConnection.addParticipant(this.callConnectionId, addParticipantRequest, optionsInternal);
|
|
137
|
-
const addParticipantsResult =
|
|
138
|
-
|
|
139
|
-
|
|
151
|
+
const addParticipantsResult = {
|
|
152
|
+
...result,
|
|
153
|
+
participant: {
|
|
154
|
+
...result.participant,
|
|
155
|
+
identifier: result.participant?.identifier
|
|
156
|
+
? communicationIdentifierConverter(result.participant?.identifier)
|
|
157
|
+
: undefined,
|
|
158
|
+
},
|
|
159
|
+
};
|
|
140
160
|
return addParticipantsResult;
|
|
141
161
|
}
|
|
142
162
|
/**
|
|
@@ -153,9 +173,15 @@ export class CallConnection {
|
|
|
153
173
|
customCallingContext: this.createCustomCallingContextInternal(options.customCallingContext),
|
|
154
174
|
sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(options.sourceCallIdNumber),
|
|
155
175
|
};
|
|
156
|
-
const optionsInternal =
|
|
176
|
+
const optionsInternal = {
|
|
177
|
+
...options,
|
|
178
|
+
repeatabilityFirstSent: new Date(),
|
|
179
|
+
repeatabilityRequestID: randomUUID(),
|
|
180
|
+
};
|
|
157
181
|
const result = await this.callConnection.transferToParticipant(this.callConnectionId, transferToParticipantRequest, optionsInternal);
|
|
158
|
-
const transferCallResult =
|
|
182
|
+
const transferCallResult = {
|
|
183
|
+
...result,
|
|
184
|
+
};
|
|
159
185
|
return transferCallResult;
|
|
160
186
|
}
|
|
161
187
|
/**
|
|
@@ -169,9 +195,15 @@ export class CallConnection {
|
|
|
169
195
|
operationContext: options.operationContext ? options.operationContext : randomUUID(),
|
|
170
196
|
operationCallbackUri: options.operationCallbackUrl,
|
|
171
197
|
};
|
|
172
|
-
const optionsInternal =
|
|
198
|
+
const optionsInternal = {
|
|
199
|
+
...options,
|
|
200
|
+
repeatabilityFirstSent: new Date(),
|
|
201
|
+
repeatabilityRequestID: randomUUID(),
|
|
202
|
+
};
|
|
173
203
|
const result = await this.callConnection.removeParticipant(this.callConnectionId, removeParticipantRequest, optionsInternal);
|
|
174
|
-
const removeParticipantsResult =
|
|
204
|
+
const removeParticipantsResult = {
|
|
205
|
+
...result,
|
|
206
|
+
};
|
|
175
207
|
return removeParticipantsResult;
|
|
176
208
|
}
|
|
177
209
|
/**
|
|
@@ -185,9 +217,15 @@ export class CallConnection {
|
|
|
185
217
|
targetParticipants: [communicationIdentifierModelConverter(participant)],
|
|
186
218
|
operationContext: options.operationContext,
|
|
187
219
|
};
|
|
188
|
-
const optionsInternal =
|
|
220
|
+
const optionsInternal = {
|
|
221
|
+
...options,
|
|
222
|
+
repeatabilityFirstSent: new Date(),
|
|
223
|
+
repeatabilityRequestID: randomUUID(),
|
|
224
|
+
};
|
|
189
225
|
const result = await this.callConnection.mute(this.callConnectionId, muteParticipantsRequest, optionsInternal);
|
|
190
|
-
const muteParticipantResult =
|
|
226
|
+
const muteParticipantResult = {
|
|
227
|
+
...result,
|
|
228
|
+
};
|
|
191
229
|
return muteParticipantResult;
|
|
192
230
|
}
|
|
193
231
|
/** Cancel add participant request.
|
|
@@ -195,15 +233,21 @@ export class CallConnection {
|
|
|
195
233
|
* @param invitationId - Invitation ID used to cancel the add participant request.
|
|
196
234
|
*/
|
|
197
235
|
async cancelAddParticipantOperation(invitationId, options = {}) {
|
|
198
|
-
const { operationContext, operationCallbackUrl: operationCallbackUri
|
|
236
|
+
const { operationContext, operationCallbackUrl: operationCallbackUri, ...operationOptions } = options;
|
|
199
237
|
const cancelAddParticipantRequest = {
|
|
200
238
|
invitationId,
|
|
201
239
|
operationContext: operationContext ? operationContext : randomUUID(),
|
|
202
240
|
operationCallbackUri,
|
|
203
241
|
};
|
|
204
|
-
const optionsInternal =
|
|
242
|
+
const optionsInternal = {
|
|
243
|
+
...operationOptions,
|
|
244
|
+
repeatabilityFirstSent: new Date(),
|
|
245
|
+
repeatabilityRequestID: randomUUID(),
|
|
246
|
+
};
|
|
205
247
|
const result = await this.callConnection.cancelAddParticipant(this.callConnectionId, cancelAddParticipantRequest, optionsInternal);
|
|
206
|
-
const cancelAddParticipantResult =
|
|
248
|
+
const cancelAddParticipantResult = {
|
|
249
|
+
...result,
|
|
250
|
+
};
|
|
207
251
|
return cancelAddParticipantResult;
|
|
208
252
|
}
|
|
209
253
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callConnection.js","sourceRoot":"","sources":["../../src/callConnection.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n CommunicationIdentifier,\n createCommunicationAuthPolicy,\n} from \"@azure/communication-common\";\nimport { CallMedia } from \"./callMedia.js\";\nimport {\n AddParticipantRequest,\n CallAutomationApiClient,\n CallAutomationApiClientOptionalParams,\n CustomCallingContextInternal,\n MuteParticipantsRequest,\n RemoveParticipantRequest,\n TransferToParticipantRequest,\n} from \"./generated/src/index.js\";\nimport { CallConnectionImpl } from \"./generated/src/operations/index.js\";\nimport type {\n CallConnectionProperties,\n CallInvite,\n CallParticipant,\n CustomCallingContext,\n} from \"./models/models.js\";\nimport type {\n AddParticipantOptions,\n CancelAddParticipantOperationOptions,\n GetCallConnectionPropertiesOptions,\n GetParticipantOptions,\n HangUpOptions,\n MuteParticipantOption,\n RemoveParticipantsOption,\n TransferCallToParticipantOptions,\n} from \"./models/options.js\";\nimport type {\n ListParticipantsResult,\n TransferCallResult,\n AddParticipantResult,\n RemoveParticipantResult,\n MuteParticipantResult,\n CancelAddParticipantOperationResult,\n} from \"./models/responses.js\";\nimport {\n callParticipantConverter,\n communicationIdentifierConverter,\n communicationIdentifierModelConverter,\n communicationUserIdentifierConverter,\n phoneNumberIdentifierConverter,\n PhoneNumberIdentifierModelConverter,\n} from \"./utli/converters.js\";\nimport { randomUUID } from \"@azure/core-util\";\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\n\n/**\n * CallConnection class represents call connection based APIs.\n */\nexport class CallConnection {\n private readonly callConnectionId: string;\n private readonly callConnection: CallConnectionImpl;\n private readonly callAutomationApiClient: CallAutomationApiClient;\n private readonly endpoint: string;\n private readonly credential: TokenCredential | KeyCredential;\n private readonly callAutomationApiClientOptions?: CallAutomationApiClientOptionalParams;\n constructor(\n callConnectionId: string,\n endpoint: string,\n credential: KeyCredential | TokenCredential,\n options?: CallAutomationApiClientOptionalParams,\n ) {\n this.callAutomationApiClient = new CallAutomationApiClient(endpoint, options);\n const authPolicy = createCommunicationAuthPolicy(credential);\n this.callAutomationApiClient.pipeline.addPolicy(authPolicy);\n this.callConnectionId = callConnectionId;\n this.callConnection = new CallConnectionImpl(this.callAutomationApiClient);\n this.endpoint = endpoint;\n this.credential = credential;\n this.callAutomationApiClientOptions = options;\n }\n\n /**\n * Initializes a new instance of CallMedia.\n */\n public getCallMedia(): CallMedia {\n return new CallMedia(\n this.callConnectionId,\n this.endpoint,\n this.credential,\n this.callAutomationApiClientOptions,\n );\n }\n\n /**\n * Get call connection properties of the call\n */\n public async getCallConnectionProperties(\n options: GetCallConnectionPropertiesOptions = {},\n ): Promise<CallConnectionProperties> {\n const { targets, sourceCallerIdNumber, answeredBy, source, answeredFor, ...result } =\n await this.callConnection.getCall(this.callConnectionId, options);\n const callConnectionProperties: CallConnectionProperties = {\n ...result,\n source: source ? communicationIdentifierConverter(source) : undefined,\n answeredby: communicationUserIdentifierConverter(answeredBy),\n answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,\n targetParticipants: targets?.map((target) => communicationIdentifierConverter(target)),\n sourceCallerIdNumber: sourceCallerIdNumber\n ? phoneNumberIdentifierConverter(sourceCallerIdNumber)\n : undefined,\n };\n return callConnectionProperties;\n }\n\n /**\n * Hang up the call for itself or terminate the whole call.\n *\n * @param isForEveryOne - Determine if every one in the call would be hung up or not.\n */\n public async hangUp(isForEveryone: boolean, options: HangUpOptions = {}): Promise<void> {\n if (isForEveryone) {\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n await this.callConnection.terminateCall(this.callConnectionId, optionsInternal);\n } else {\n await this.callConnection.hangupCall(this.callConnectionId, options);\n }\n return;\n }\n\n /**\n * Get a participant from the call\n *\n * @param targetParticipant - The communication identifier of requested participant.\n */\n public async getParticipant(\n targetParticipant: CommunicationIdentifier,\n options: GetParticipantOptions = {},\n ): Promise<CallParticipant> {\n let rawId: string | undefined = communicationIdentifierModelConverter(targetParticipant).rawId;\n rawId = rawId === undefined ? \"\" : rawId;\n\n const result = await this.callConnection.getParticipant(this.callConnectionId, rawId, options);\n const callParticipant: CallParticipant = {\n identifier: result.identifier\n ? communicationIdentifierConverter(result.identifier)\n : undefined,\n isMuted: result.isMuted,\n isOnHold: result.isOnHold,\n };\n return callParticipant;\n }\n\n /**\n * Get all participants from the call\n */\n public async listParticipants(\n options: GetParticipantOptions = {},\n ): Promise<ListParticipantsResult> {\n const result = this.callConnection.listParticipants(this.callConnectionId, options);\n const participants = [];\n const pages = result?.byPage();\n\n for await (const page of pages) {\n for (const participant of page) {\n participants.push(callParticipantConverter(participant));\n }\n }\n\n const listParticipantResponse: ListParticipantsResult = {\n ...result,\n values: participants,\n };\n return listParticipantResponse;\n }\n\n private createCustomCallingContextInternal(\n customCallingContext: CustomCallingContext,\n ): CustomCallingContextInternal {\n const sipHeaders: { [key: string]: string } = {};\n const voipHeaders: { [key: string]: string } = {};\n if (customCallingContext) {\n for (const header of customCallingContext) {\n if (header.kind === \"sipuui\") {\n sipHeaders[`User-To-User`] = header.value;\n } else if (header.kind === \"sipx\") {\n sipHeaders[`X-MS-Custom-${header.key}`] = header.value;\n } else if (header.kind === \"voip\") {\n voipHeaders[`${header.key}`] = header.value;\n }\n }\n }\n return { sipHeaders: sipHeaders, voipHeaders: voipHeaders };\n }\n\n /**\n * Add a participant to the call\n *\n * @param participant - The participant is going to be added.\n */\n public async addParticipant(\n targetParticipant: CallInvite,\n options: AddParticipantOptions = {},\n ): Promise<AddParticipantResult> {\n const addParticipantRequest: AddParticipantRequest = {\n participantToAdd: communicationIdentifierModelConverter(targetParticipant.targetParticipant),\n sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(\n targetParticipant.sourceCallIdNumber,\n ),\n sourceDisplayName: targetParticipant.sourceDisplayName,\n invitationTimeoutInSeconds: options.invitationTimeoutInSeconds,\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n customCallingContext: this.createCustomCallingContextInternal(\n targetParticipant.customCallingContext!,\n ),\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const result = await this.callConnection.addParticipant(\n this.callConnectionId,\n addParticipantRequest,\n optionsInternal,\n );\n const addParticipantsResult: AddParticipantResult = {\n ...result,\n participant: {\n ...result.participant,\n identifier: result.participant?.identifier\n ? communicationIdentifierConverter(result.participant?.identifier)\n : undefined,\n },\n };\n return addParticipantsResult;\n }\n\n /**\n * Transfer the call to a target participant\n *\n * @param targetParticipant - The target to be transferred to.\n */\n public async transferCallToParticipant(\n targetParticipant: CommunicationIdentifier,\n options: TransferCallToParticipantOptions = {},\n ): Promise<TransferCallResult> {\n const transferToParticipantRequest: TransferToParticipantRequest = {\n targetParticipant: communicationIdentifierModelConverter(targetParticipant),\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n operationCallbackUri: options.operationCallbackUrl,\n transferee: options.transferee && communicationIdentifierModelConverter(options.transferee),\n customCallingContext: this.createCustomCallingContextInternal(options.customCallingContext!),\n sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(options.sourceCallIdNumber),\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const result = await this.callConnection.transferToParticipant(\n this.callConnectionId,\n transferToParticipantRequest,\n optionsInternal,\n );\n const transferCallResult: TransferCallResult = {\n ...result,\n };\n return transferCallResult;\n }\n\n /**\n * Remove a participant from the call\n *\n * @param participant - The participant is going to be removed from the call.\n */\n public async removeParticipant(\n participant: CommunicationIdentifier,\n options: RemoveParticipantsOption = {},\n ): Promise<RemoveParticipantResult> {\n const removeParticipantRequest: RemoveParticipantRequest = {\n participantToRemove: communicationIdentifierModelConverter(participant),\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n operationCallbackUri: options.operationCallbackUrl,\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const result = await this.callConnection.removeParticipant(\n this.callConnectionId,\n removeParticipantRequest,\n optionsInternal,\n );\n const removeParticipantsResult: RemoveParticipantResult = {\n ...result,\n };\n return removeParticipantsResult;\n }\n\n /**\n * Mute participant from the call.\n *\n * @param participant - Participant to be muted from the call.\n * @param options - Additional attributes for mute participant.\n */\n public async muteParticipant(\n participant: CommunicationIdentifier,\n options: MuteParticipantOption = {},\n ): Promise<MuteParticipantResult> {\n const muteParticipantsRequest: MuteParticipantsRequest = {\n targetParticipants: [communicationIdentifierModelConverter(participant)],\n operationContext: options.operationContext,\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const result = await this.callConnection.mute(\n this.callConnectionId,\n muteParticipantsRequest,\n optionsInternal,\n );\n const muteParticipantResult: MuteParticipantResult = {\n ...result,\n };\n return muteParticipantResult;\n }\n\n /** Cancel add participant request.\n *\n * @param invitationId - Invitation ID used to cancel the add participant request.\n */\n public async cancelAddParticipantOperation(\n invitationId: string,\n options: CancelAddParticipantOperationOptions = {},\n ): Promise<CancelAddParticipantOperationResult> {\n const {\n operationContext,\n operationCallbackUrl: operationCallbackUri,\n ...operationOptions\n } = options;\n const cancelAddParticipantRequest = {\n invitationId,\n operationContext: operationContext ? operationContext : randomUUID(),\n operationCallbackUri,\n };\n const optionsInternal = {\n ...operationOptions,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n\n const result = await this.callConnection.cancelAddParticipant(\n this.callConnectionId,\n cancelAddParticipantRequest,\n optionsInternal,\n );\n\n const cancelAddParticipantResult: CancelAddParticipantOperationResult = {\n ...result,\n };\n\n return cancelAddParticipantResult;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"callConnection.js","sourceRoot":"","sources":["../../src/callConnection.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n CommunicationIdentifier,\n createCommunicationAuthPolicy,\n} from \"@azure/communication-common\";\nimport { CallMedia } from \"./callMedia.js\";\nimport {\n AddParticipantRequest,\n CallAutomationApiClient,\n CallAutomationApiClientOptionalParams,\n CustomCallingContextInternal,\n MuteParticipantsRequest,\n RemoveParticipantRequest,\n TransferToParticipantRequest,\n} from \"./generated/src/index.js\";\nimport { CallConnectionImpl } from \"./generated/src/operations/index.js\";\nimport {\n type CallConnectionProperties,\n type CallInvite,\n type CallParticipant,\n type CustomCallingContext,\n} from \"./models/models.js\";\nimport type {\n AddParticipantOptions,\n CancelAddParticipantOperationOptions,\n GetCallConnectionPropertiesOptions,\n GetParticipantOptions,\n HangUpOptions,\n MuteParticipantOption,\n RemoveParticipantsOption,\n TransferCallToParticipantOptions,\n} from \"./models/options.js\";\nimport type {\n ListParticipantsResult,\n TransferCallResult,\n AddParticipantResult,\n RemoveParticipantResult,\n MuteParticipantResult,\n CancelAddParticipantOperationResult,\n} from \"./models/responses.js\";\nimport {\n callParticipantConverter,\n communicationIdentifierConverter,\n communicationIdentifierModelConverter,\n communicationUserIdentifierConverter,\n phoneNumberIdentifierConverter,\n PhoneNumberIdentifierModelConverter,\n} from \"./utli/converters.js\";\nimport { randomUUID } from \"@azure/core-util\";\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\n\n/**\n * CallConnection class represents call connection based APIs.\n */\nexport class CallConnection {\n private readonly callConnectionId: string;\n private readonly callConnection: CallConnectionImpl;\n private readonly callAutomationApiClient: CallAutomationApiClient;\n private readonly endpoint: string;\n private readonly credential: TokenCredential | KeyCredential;\n private readonly callAutomationApiClientOptions?: CallAutomationApiClientOptionalParams;\n constructor(\n callConnectionId: string,\n endpoint: string,\n credential: KeyCredential | TokenCredential,\n options?: CallAutomationApiClientOptionalParams,\n ) {\n this.callAutomationApiClient = new CallAutomationApiClient(endpoint, options);\n const authPolicy = createCommunicationAuthPolicy(credential);\n this.callAutomationApiClient.pipeline.addPolicy(authPolicy);\n this.callConnectionId = callConnectionId;\n this.callConnection = new CallConnectionImpl(this.callAutomationApiClient);\n this.endpoint = endpoint;\n this.credential = credential;\n this.callAutomationApiClientOptions = options;\n }\n\n /**\n * Initializes a new instance of CallMedia.\n */\n public getCallMedia(): CallMedia {\n return new CallMedia(\n this.callConnectionId,\n this.endpoint,\n this.credential,\n this.callAutomationApiClientOptions,\n );\n }\n\n /**\n * Get call connection properties of the call\n */\n public async getCallConnectionProperties(\n options: GetCallConnectionPropertiesOptions = {},\n ): Promise<CallConnectionProperties> {\n const { targets, sourceCallerIdNumber, answeredBy, source, answeredFor, ...result } =\n await this.callConnection.getCall(this.callConnectionId, options);\n const callConnectionProperties: CallConnectionProperties = {\n ...result,\n source: source ? communicationIdentifierConverter(source) : undefined,\n answeredby: communicationUserIdentifierConverter(answeredBy),\n answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,\n targetParticipants: targets?.map((target) => communicationIdentifierConverter(target)),\n sourceCallerIdNumber: sourceCallerIdNumber\n ? phoneNumberIdentifierConverter(sourceCallerIdNumber)\n : undefined,\n };\n return callConnectionProperties;\n }\n\n /**\n * Hang up the call for itself or terminate the whole call.\n *\n * @param isForEveryOne - Determine if every one in the call would be hung up or not.\n */\n public async hangUp(isForEveryone: boolean, options: HangUpOptions = {}): Promise<void> {\n if (isForEveryone) {\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n await this.callConnection.terminateCall(this.callConnectionId, optionsInternal);\n } else {\n await this.callConnection.hangupCall(this.callConnectionId, options);\n }\n return;\n }\n\n /**\n * Get a participant from the call\n *\n * @param targetParticipant - The communication identifier of requested participant.\n */\n public async getParticipant(\n targetParticipant: CommunicationIdentifier,\n options: GetParticipantOptions = {},\n ): Promise<CallParticipant> {\n let rawId: string | undefined = communicationIdentifierModelConverter(targetParticipant).rawId;\n rawId = rawId === undefined ? \"\" : rawId;\n\n const result = await this.callConnection.getParticipant(this.callConnectionId, rawId, options);\n const callParticipant: CallParticipant = {\n identifier: result.identifier\n ? communicationIdentifierConverter(result.identifier)\n : undefined,\n isMuted: result.isMuted,\n isOnHold: result.isOnHold,\n };\n return callParticipant;\n }\n\n /**\n * Get all participants from the call\n */\n public async listParticipants(\n options: GetParticipantOptions = {},\n ): Promise<ListParticipantsResult> {\n const result = this.callConnection.listParticipants(this.callConnectionId, options);\n const participants = [];\n const pages = result?.byPage();\n\n for await (const page of pages) {\n for (const participant of page) {\n participants.push(callParticipantConverter(participant));\n }\n }\n\n const listParticipantResponse: ListParticipantsResult = {\n ...result,\n values: participants,\n };\n return listParticipantResponse;\n }\n\n private createCustomCallingContextInternal(\n customCallingContext: CustomCallingContext,\n ): CustomCallingContextInternal {\n const sipHeaders: { [key: string]: string } = {};\n const voipHeaders: { [key: string]: string } = {};\n if (customCallingContext) {\n for (const header of customCallingContext) {\n if (header.kind === \"sipuui\") {\n sipHeaders[`User-To-User`] = header.value;\n } else if (header.kind === \"sipx\") {\n if (header.sipHeaderPrefix === \"X-\") {\n sipHeaders[`X-${header.key}`] = header.value;\n } else {\n sipHeaders[`X-MS-Custom-${header.key}`] = header.value;\n }\n } else if (header.kind === \"voip\") {\n voipHeaders[`${header.key}`] = header.value;\n }\n }\n }\n return { sipHeaders: sipHeaders, voipHeaders: voipHeaders };\n }\n\n /**\n * Add a participant to the call\n *\n * @param participant - The participant is going to be added.\n */\n public async addParticipant(\n targetParticipant: CallInvite,\n options: AddParticipantOptions = {},\n ): Promise<AddParticipantResult> {\n const addParticipantRequest: AddParticipantRequest = {\n participantToAdd: communicationIdentifierModelConverter(targetParticipant.targetParticipant),\n sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(\n targetParticipant.sourceCallIdNumber,\n ),\n sourceDisplayName: targetParticipant.sourceDisplayName,\n invitationTimeoutInSeconds: options.invitationTimeoutInSeconds,\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n customCallingContext: this.createCustomCallingContextInternal(\n targetParticipant.customCallingContext!,\n ),\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const result = await this.callConnection.addParticipant(\n this.callConnectionId,\n addParticipantRequest,\n optionsInternal,\n );\n const addParticipantsResult: AddParticipantResult = {\n ...result,\n participant: {\n ...result.participant,\n identifier: result.participant?.identifier\n ? communicationIdentifierConverter(result.participant?.identifier)\n : undefined,\n },\n };\n return addParticipantsResult;\n }\n\n /**\n * Transfer the call to a target participant\n *\n * @param targetParticipant - The target to be transferred to.\n */\n public async transferCallToParticipant(\n targetParticipant: CommunicationIdentifier,\n options: TransferCallToParticipantOptions = {},\n ): Promise<TransferCallResult> {\n const transferToParticipantRequest: TransferToParticipantRequest = {\n targetParticipant: communicationIdentifierModelConverter(targetParticipant),\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n operationCallbackUri: options.operationCallbackUrl,\n transferee: options.transferee && communicationIdentifierModelConverter(options.transferee),\n customCallingContext: this.createCustomCallingContextInternal(options.customCallingContext!),\n sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(options.sourceCallIdNumber),\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const result = await this.callConnection.transferToParticipant(\n this.callConnectionId,\n transferToParticipantRequest,\n optionsInternal,\n );\n const transferCallResult: TransferCallResult = {\n ...result,\n };\n return transferCallResult;\n }\n\n /**\n * Remove a participant from the call\n *\n * @param participant - The participant is going to be removed from the call.\n */\n public async removeParticipant(\n participant: CommunicationIdentifier,\n options: RemoveParticipantsOption = {},\n ): Promise<RemoveParticipantResult> {\n const removeParticipantRequest: RemoveParticipantRequest = {\n participantToRemove: communicationIdentifierModelConverter(participant),\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n operationCallbackUri: options.operationCallbackUrl,\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const result = await this.callConnection.removeParticipant(\n this.callConnectionId,\n removeParticipantRequest,\n optionsInternal,\n );\n const removeParticipantsResult: RemoveParticipantResult = {\n ...result,\n };\n return removeParticipantsResult;\n }\n\n /**\n * Mute participant from the call.\n *\n * @param participant - Participant to be muted from the call.\n * @param options - Additional attributes for mute participant.\n */\n public async muteParticipant(\n participant: CommunicationIdentifier,\n options: MuteParticipantOption = {},\n ): Promise<MuteParticipantResult> {\n const muteParticipantsRequest: MuteParticipantsRequest = {\n targetParticipants: [communicationIdentifierModelConverter(participant)],\n operationContext: options.operationContext,\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const result = await this.callConnection.mute(\n this.callConnectionId,\n muteParticipantsRequest,\n optionsInternal,\n );\n const muteParticipantResult: MuteParticipantResult = {\n ...result,\n };\n return muteParticipantResult;\n }\n\n /** Cancel add participant request.\n *\n * @param invitationId - Invitation ID used to cancel the add participant request.\n */\n public async cancelAddParticipantOperation(\n invitationId: string,\n options: CancelAddParticipantOperationOptions = {},\n ): Promise<CancelAddParticipantOperationResult> {\n const {\n operationContext,\n operationCallbackUrl: operationCallbackUri,\n ...operationOptions\n } = options;\n const cancelAddParticipantRequest = {\n invitationId,\n operationContext: operationContext ? operationContext : randomUUID(),\n operationCallbackUri,\n };\n const optionsInternal = {\n ...operationOptions,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n\n const result = await this.callConnection.cancelAddParticipant(\n this.callConnectionId,\n cancelAddParticipantRequest,\n optionsInternal,\n );\n\n const cancelAddParticipantResult: CancelAddParticipantOperationResult = {\n ...result,\n };\n\n return cancelAddParticipantResult;\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CallAutomationApiClientOptionalParams, Tone } from "./generated/src/index.js";
|
|
2
|
-
import { CommunicationIdentifier } from "@azure/communication-common";
|
|
2
|
+
import type { CommunicationIdentifier } from "@azure/communication-common";
|
|
3
3
|
import type { FileSource, TextSource, SsmlSource, DtmfTone } from "./models/models.js";
|
|
4
4
|
import type { PlayOptions, CallMediaRecognizeDtmfOptions, CallMediaRecognizeChoiceOptions, ContinuousDtmfRecognitionOptions, SendDtmfTonesOptions, CallMediaRecognizeSpeechOptions, CallMediaRecognizeSpeechOrDtmfOptions, StartTranscriptionOptions, StopTranscriptionOptions, HoldOptions, UnholdOptions, StartMediaStreamingOptions, StopMediaStreamingOptions, PlayToAllOptions, UpdateTranscriptionOptions } from "./models/options.js";
|
|
5
5
|
import type { KeyCredential, TokenCredential } from "@azure/core-auth";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callMedia.d.ts","sourceRoot":"","sources":["../../src/callMedia.ts"],"names":[],"mappings":"AAGA,OAAO,EAUL,qCAAqC,EAGrC,IAAI,EASL,MAAM,0BAA0B,CAAC;AAKlC,OAAO,
|
|
1
|
+
{"version":3,"file":"callMedia.d.ts","sourceRoot":"","sources":["../../src/callMedia.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
import { CallAutomationApiClient, } from "./generated/src/index.js";
|
|
4
4
|
import { KnownPlaySourceType, KnownRecognizeInputType } from "./generated/src/index.js";
|
|
5
5
|
import { CallMediaImpl } from "./generated/src/operations/index.js";
|
|
6
|
-
import { createCommunicationAuthPolicy, } from "@azure/communication-common";
|
|
7
|
-
import { serializeCommunicationIdentifier } from "@azure/communication-common";
|
|
6
|
+
import { createCommunicationAuthPolicy, serializeCommunicationIdentifier, } from "@azure/communication-common";
|
|
8
7
|
import { randomUUID } from "@azure/core-util";
|
|
9
8
|
/**
|
|
10
9
|
* CallMedia class represents call media related APIs.
|
|
11
10
|
*/
|
|
12
11
|
export class CallMedia {
|
|
12
|
+
callConnectionId;
|
|
13
|
+
callMedia;
|
|
14
|
+
callAutomationApiClient;
|
|
13
15
|
constructor(callConnectionId, endpoint, credential, options) {
|
|
14
16
|
this.callAutomationApiClient = new CallAutomationApiClient(endpoint, options);
|
|
15
17
|
const authPolicy = createCommunicationAuthPolicy(credential);
|
|
@@ -25,6 +27,9 @@ export class CallMedia {
|
|
|
25
27
|
return {
|
|
26
28
|
kind: KnownPlaySourceType.File,
|
|
27
29
|
file: fileSource,
|
|
30
|
+
playSourceCacheId: playSource.playSourceCacheId
|
|
31
|
+
? playSource.playSourceCacheId
|
|
32
|
+
: playSource.playsourcacheid,
|
|
28
33
|
};
|
|
29
34
|
}
|
|
30
35
|
else if (playSource.kind === "textSource") {
|
|
@@ -38,6 +43,9 @@ export class CallMedia {
|
|
|
38
43
|
return {
|
|
39
44
|
kind: KnownPlaySourceType.Text,
|
|
40
45
|
text: textSource,
|
|
46
|
+
playSourceCacheId: playSource.playSourceCacheId
|
|
47
|
+
? playSource.playSourceCacheId
|
|
48
|
+
: playSource.playsourcacheid,
|
|
41
49
|
};
|
|
42
50
|
}
|
|
43
51
|
else if (playSource.kind === "ssmlSource") {
|
|
@@ -48,6 +56,9 @@ export class CallMedia {
|
|
|
48
56
|
return {
|
|
49
57
|
kind: KnownPlaySourceType.Ssml,
|
|
50
58
|
ssml: ssmlSource,
|
|
59
|
+
playSourceCacheId: playSource.playSourceCacheId
|
|
60
|
+
? playSource.playSourceCacheId
|
|
61
|
+
: playSource.playsourcacheid,
|
|
51
62
|
};
|
|
52
63
|
}
|
|
53
64
|
throw new Error("Invalid play source");
|
|
@@ -73,7 +84,7 @@ export class CallMedia {
|
|
|
73
84
|
playRequest.playOptions = playRequest.playOptions || { loop: false }; // Ensure playOptions is defined
|
|
74
85
|
playRequest.playOptions.loop = options.loop;
|
|
75
86
|
}
|
|
76
|
-
|
|
87
|
+
await this.callMedia.play(this.callConnectionId, playRequest, options);
|
|
77
88
|
}
|
|
78
89
|
/**
|
|
79
90
|
* Play to all participants.
|
|
@@ -98,10 +109,10 @@ export class CallMedia {
|
|
|
98
109
|
if (options.interruptCallMediaOperation !== undefined) {
|
|
99
110
|
playRequest.playOptions = playRequest.playOptions || {
|
|
100
111
|
loop: false,
|
|
101
|
-
};
|
|
112
|
+
}; // Ensure playOptions is defined
|
|
102
113
|
playRequest.interruptCallMediaOperation = options.interruptCallMediaOperation;
|
|
103
114
|
}
|
|
104
|
-
|
|
115
|
+
await this.callMedia.play(this.callConnectionId, playRequest, options);
|
|
105
116
|
}
|
|
106
117
|
createRecognizeRequest(targetParticipant, recognizeOptions) {
|
|
107
118
|
if (recognizeOptions.kind === "callMediaRecognizeDtmfOptions") {
|
|
@@ -233,7 +244,7 @@ export class CallMedia {
|
|
|
233
244
|
// Old function signature logic
|
|
234
245
|
console.warn("Deprecated function signature used. Please use the new signature with targetParticipant and options params instead, and set maxTonesToCollect in options.");
|
|
235
246
|
options.maxTonesToCollect = maxTonesOrOptions;
|
|
236
|
-
|
|
247
|
+
return this.callMedia.recognize(this.callConnectionId, this.createRecognizeRequest(targetParticipant, options), {});
|
|
237
248
|
}
|
|
238
249
|
else if (typeof maxTonesOrOptions !== "number" && !options) {
|
|
239
250
|
maxTonesOrOptions.operationContext = maxTonesOrOptions.operationContext
|
|
@@ -248,7 +259,7 @@ export class CallMedia {
|
|
|
248
259
|
* Cancels all the queued media operations.
|
|
249
260
|
*/
|
|
250
261
|
async cancelAllOperations() {
|
|
251
|
-
|
|
262
|
+
await this.callMedia.cancelAllMediaOperations(this.callConnectionId, {});
|
|
252
263
|
}
|
|
253
264
|
/**
|
|
254
265
|
* Start continuous Dtmf recognition by subscribing to tones.
|
|
@@ -288,9 +299,15 @@ export class CallMedia {
|
|
|
288
299
|
operationContext: options.operationContext,
|
|
289
300
|
operationCallbackUri: options.operationCallbackUrl,
|
|
290
301
|
};
|
|
291
|
-
const optionsInternal =
|
|
302
|
+
const optionsInternal = {
|
|
303
|
+
...options,
|
|
304
|
+
repeatabilityFirstSent: new Date(),
|
|
305
|
+
repeatabilityRequestID: randomUUID(),
|
|
306
|
+
};
|
|
292
307
|
const result = await this.callMedia.sendDtmfTones(this.callConnectionId, sendDtmfTonesRequest, optionsInternal);
|
|
293
|
-
const sendDtmfTonesResult =
|
|
308
|
+
const sendDtmfTonesResult = {
|
|
309
|
+
...result,
|
|
310
|
+
};
|
|
294
311
|
return sendDtmfTonesResult;
|
|
295
312
|
}
|
|
296
313
|
/**
|
|
@@ -320,6 +337,7 @@ export class CallMedia {
|
|
|
320
337
|
const unholdRequest = {
|
|
321
338
|
targetParticipant: serializeCommunicationIdentifier(targetParticipant),
|
|
322
339
|
operationContext: options.operationContext !== undefined ? options.operationContext : undefined,
|
|
340
|
+
operationCallbackUri: options.operationCallbackUrl !== undefined ? options.operationCallbackUrl : undefined,
|
|
323
341
|
};
|
|
324
342
|
return this.callMedia.unhold(this.callConnectionId, unholdRequest);
|
|
325
343
|
}
|
|
@@ -331,7 +349,8 @@ export class CallMedia {
|
|
|
331
349
|
const startTranscriptionRequest = {
|
|
332
350
|
locale: options.locale,
|
|
333
351
|
operationContext: options.operationContext,
|
|
334
|
-
|
|
352
|
+
speechModelEndpointId: options.speechRecognitionModelEndpointId,
|
|
353
|
+
operationCallbackUri: options.operationCallbackUrl,
|
|
335
354
|
};
|
|
336
355
|
return this.callMedia.startTranscription(this.callConnectionId, startTranscriptionRequest, {});
|
|
337
356
|
}
|
|
@@ -342,6 +361,7 @@ export class CallMedia {
|
|
|
342
361
|
async stopTranscription(options = {}) {
|
|
343
362
|
const stopTranscriptionRequest = {
|
|
344
363
|
operationContext: options.operationContext,
|
|
364
|
+
operationCallbackUri: options.operationCallbackUrl,
|
|
345
365
|
};
|
|
346
366
|
return this.callMedia.stopTranscription(this.callConnectionId, stopTranscriptionRequest, {});
|
|
347
367
|
}
|
|
@@ -352,8 +372,9 @@ export class CallMedia {
|
|
|
352
372
|
async updateTranscription(locale, options) {
|
|
353
373
|
const updateTranscriptionRequest = {
|
|
354
374
|
locale: locale,
|
|
355
|
-
|
|
356
|
-
operationContext: options
|
|
375
|
+
speechModelEndpointId: options?.speechRecognitionModelEndpointId,
|
|
376
|
+
operationContext: options?.operationContext,
|
|
377
|
+
operationCallbackUri: options?.operationCallbackUrl,
|
|
357
378
|
};
|
|
358
379
|
return this.callMedia.updateTranscription(this.callConnectionId, updateTranscriptionRequest, {});
|
|
359
380
|
}
|