@azure/communication-call-automation 1.5.0-beta.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +37 -44
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callMedia.js","sourceRoot":"","sources":["../../src/callMedia.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n PlayRequest,\n PlaySourceInternal,\n FileSourceInternal,\n TextSourceInternal,\n SsmlSourceInternal,\n RecognizeRequest,\n RecognizeOptions,\n DtmfOptions,\n CallAutomationApiClient,\n CallAutomationApiClientOptionalParams,\n ContinuousDtmfRecognitionRequest,\n SendDtmfTonesRequest,\n Tone,\n SpeechOptions,\n StartTranscriptionRequest,\n StopTranscriptionRequest,\n UpdateTranscriptionRequest,\n HoldRequest,\n UnholdRequest,\n StartMediaStreamingRequest,\n StopMediaStreamingRequest,\n} from \"./generated/src/index.js\";\nimport { KnownPlaySourceType, KnownRecognizeInputType } from \"./generated/src/index.js\";\n\nimport { CallMediaImpl } from \"./generated/src/operations/index.js\";\n\nimport {\n CommunicationIdentifier,\n createCommunicationAuthPolicy,\n} from \"@azure/communication-common\";\nimport { serializeCommunicationIdentifier } from \"@azure/communication-common\";\n\nimport type { FileSource, TextSource, SsmlSource, DtmfTone } from \"./models/models.js\";\nimport type {\n PlayOptions,\n CallMediaRecognizeDtmfOptions,\n CallMediaRecognizeChoiceOptions,\n ContinuousDtmfRecognitionOptions,\n SendDtmfTonesOptions,\n CallMediaRecognizeSpeechOptions,\n CallMediaRecognizeSpeechOrDtmfOptions,\n StartTranscriptionOptions,\n StopTranscriptionOptions,\n HoldOptions,\n UnholdOptions,\n StartMediaStreamingOptions,\n StopMediaStreamingOptions,\n PlayToAllOptions,\n UpdateTranscriptionOptions,\n} from \"./models/options.js\";\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport type { SendDtmfTonesResult } from \"./models/responses.js\";\nimport { randomUUID } from \"@azure/core-util\";\n\n/**\n * CallMedia class represents call media related APIs.\n */\nexport class CallMedia {\n private readonly callConnectionId: string;\n private readonly callMedia: CallMediaImpl;\n private readonly callAutomationApiClient: CallAutomationApiClient;\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.callMedia = new CallMediaImpl(this.callAutomationApiClient);\n }\n\n private createPlaySourceInternal(\n playSource: FileSource | TextSource | SsmlSource,\n ): PlaySourceInternal {\n if (playSource.kind === \"fileSource\") {\n const fileSource: FileSourceInternal = {\n uri: playSource.url,\n };\n return {\n kind: KnownPlaySourceType.File,\n file: fileSource,\n };\n } else if (playSource.kind === \"textSource\") {\n const textSource: TextSourceInternal = {\n text: playSource.text,\n sourceLocale: playSource.sourceLocale,\n voiceKind: playSource.voiceKind,\n voiceName: playSource.voiceName,\n customVoiceEndpointId: playSource.customVoiceEndpointId,\n };\n return {\n kind: KnownPlaySourceType.Text,\n text: textSource,\n };\n } else if (playSource.kind === \"ssmlSource\") {\n const ssmlSource: SsmlSourceInternal = {\n ssmlText: playSource.ssmlText,\n customVoiceEndpointId: playSource.customVoiceEndpointId,\n };\n return {\n kind: KnownPlaySourceType.Ssml,\n ssml: ssmlSource,\n };\n }\n throw new Error(\"Invalid play source\");\n }\n\n /**\n * Play audio to a specific participant.\n *\n * @param playSources - A PlaySource representing the sources to play. Currently only single play source per request is supported.\n * @param playTo - The targets to play to.\n * @param options - Additional attributes for play.\n */\n public async play(\n playSources: (FileSource | TextSource | SsmlSource)[],\n playTo: CommunicationIdentifier[],\n options: PlayOptions = { loop: false },\n ): Promise<void> {\n const playRequest: PlayRequest = {\n playSources: playSources.map((source) => this.createPlaySourceInternal(source)),\n playTo: playTo.map((identifier) => serializeCommunicationIdentifier(identifier)),\n playOptions: {\n loop: false,\n },\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n\n if (options.loop !== undefined) {\n playRequest.playOptions = playRequest.playOptions || { loop: false }; // Ensure playOptions is defined\n playRequest.playOptions.loop = options.loop;\n }\n return this.callMedia.play(this.callConnectionId, playRequest, options);\n }\n\n /**\n * Play to all participants.\n *\n * @param playSources - A PlaySource representing the sources to play. Currently only single play source per request is supported.\n * @param options - Additional attributes for play.\n */\n public async playToAll(\n playSources: (FileSource | TextSource | SsmlSource)[],\n options: PlayToAllOptions = { loop: false },\n ): Promise<void> {\n const playRequest: PlayRequest = {\n playSources: playSources.map((source) => this.createPlaySourceInternal(source)),\n playTo: [],\n playOptions: {\n loop: false,\n },\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n operationCallbackUri: options.operationCallbackUrl,\n };\n\n if (options.loop !== undefined) {\n playRequest.playOptions = playRequest.playOptions || { loop: false }; // Ensure playOptions is defined\n playRequest.playOptions.loop = options.loop;\n }\n\n if (options.interruptCallMediaOperation !== undefined) {\n playRequest.playOptions = playRequest.playOptions || {\n loop: false,\n };\n playRequest.interruptCallMediaOperation = options.interruptCallMediaOperation;\n }\n\n return this.callMedia.play(this.callConnectionId, playRequest, options);\n }\n\n private createRecognizeRequest(\n targetParticipant: CommunicationIdentifier,\n recognizeOptions:\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n ): RecognizeRequest {\n if (recognizeOptions.kind === \"callMediaRecognizeDtmfOptions\") {\n const dtmfOptionsInternal: DtmfOptions = {\n interToneTimeoutInSeconds: recognizeOptions.interToneTimeoutInSeconds\n ? recognizeOptions.interToneTimeoutInSeconds\n : 2,\n maxTonesToCollect: recognizeOptions.maxTonesToCollect,\n stopTones: recognizeOptions.stopDtmfTones,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n dtmfOptions: dtmfOptionsInternal,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Dtmf,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeChoiceOptions\") {\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechLanguage: recognizeOptions.speechLanguage,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n choices: recognizeOptions.choices,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Choices,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeSpeechOptions\") {\n const speechOptions: SpeechOptions = {\n endSilenceTimeoutInMs: recognizeOptions.endSilenceTimeoutInSeconds\n ? recognizeOptions.endSilenceTimeoutInSeconds * 1000\n : 2000,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechOptions: speechOptions,\n speechLanguage: recognizeOptions.speechLanguage,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Speech,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeSpeechOrDtmfOptions\") {\n const dtmfOptionsInternal: DtmfOptions = {\n interToneTimeoutInSeconds: recognizeOptions.interToneTimeoutInSeconds\n ? recognizeOptions.interToneTimeoutInSeconds\n : 2,\n maxTonesToCollect: recognizeOptions.maxTonesToCollect,\n stopTones: recognizeOptions.stopDtmfTones,\n };\n const speechOptions: SpeechOptions = {\n endSilenceTimeoutInMs: recognizeOptions.endSilenceTimeoutInSeconds\n ? recognizeOptions.endSilenceTimeoutInSeconds * 1000\n : 2000,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechOptions: speechOptions,\n dtmfOptions: dtmfOptionsInternal,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.SpeechOrDtmf,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n }\n throw new Error(\"Invalid recognizeOptions\");\n }\n\n /**\n * Recognize participant input.\n * @deprecated This method signature is deprecated. Please use the new signature with targetParticipant and options params instead, and set maxTonesToCollect in options.\n * @param targetParticipant - Target participant.\n * @param maxTonesToCollect - Maximum number of DTMF tones to be collected.\n * @param options - Different attributes for recognize.\n * */\n public async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n maxTonesToCollect: number,\n options: CallMediaRecognizeDtmfOptions,\n ): Promise<void>;\n\n /**\n * Recognize participant input.\n * @param targetParticipant - Target participant.\n * @param options - Different attributes for recognize.\n * */\n public async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n options:\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n ): Promise<void>;\n async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n maxTonesOrOptions:\n | number\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n options?: CallMediaRecognizeDtmfOptions,\n ): Promise<void> {\n if (typeof maxTonesOrOptions === \"number\" && options) {\n // Old function signature logic\n console.warn(\n \"Deprecated function signature used. Please use the new signature with targetParticipant and options params instead, and set maxTonesToCollect in options.\",\n );\n options.maxTonesToCollect = maxTonesOrOptions;\n await this.callMedia.recognize(\n this.callConnectionId,\n this.createRecognizeRequest(targetParticipant, options),\n {},\n );\n } else if (typeof maxTonesOrOptions !== \"number\" && !options) {\n maxTonesOrOptions.operationContext = maxTonesOrOptions.operationContext\n ? maxTonesOrOptions.operationContext\n : randomUUID();\n // New function signature logic\n return this.callMedia.recognize(\n this.callConnectionId,\n this.createRecognizeRequest(targetParticipant, maxTonesOrOptions),\n {},\n );\n }\n throw new Error(\"Invalid params\");\n }\n\n /**\n * Cancels all the queued media operations.\n */\n public async cancelAllOperations(): Promise<void> {\n return this.callMedia.cancelAllMediaOperations(this.callConnectionId, {});\n }\n\n /**\n * Start continuous Dtmf recognition by subscribing to tones.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for continuous Dtmf recognition.\n * */\n public async startContinuousDtmfRecognition(\n targetParticipant: CommunicationIdentifier,\n options: ContinuousDtmfRecognitionOptions = {},\n ): Promise<void> {\n const continuousDtmfRecognitionRequest: ContinuousDtmfRecognitionRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext,\n };\n return this.callMedia.startContinuousDtmfRecognition(\n this.callConnectionId,\n continuousDtmfRecognitionRequest,\n {},\n );\n }\n\n /**\n * Stop continuous Dtmf recognition by unsubscribing to tones.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for continuous Dtmf recognition.\n * */\n public async stopContinuousDtmfRecognition(\n targetParticipant: CommunicationIdentifier,\n options: ContinuousDtmfRecognitionOptions = {},\n ): Promise<void> {\n const continuousDtmfRecognitionRequest: ContinuousDtmfRecognitionRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.stopContinuousDtmfRecognition(\n this.callConnectionId,\n continuousDtmfRecognitionRequest,\n {},\n );\n }\n\n /**\n * Send Dtmf tones.\n * @param tones - List of tones to be sent to target participant.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for send Dtmf tones.\n * */\n public async sendDtmfTones(\n tones: Tone[] | DtmfTone[],\n targetParticipant: CommunicationIdentifier,\n options: SendDtmfTonesOptions = {},\n ): Promise<SendDtmfTonesResult> {\n const sendDtmfTonesRequest: SendDtmfTonesRequest = {\n tones: tones,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const result = await this.callMedia.sendDtmfTones(\n this.callConnectionId,\n sendDtmfTonesRequest,\n optionsInternal,\n );\n\n const sendDtmfTonesResult: SendDtmfTonesResult = {\n ...result,\n };\n\n return sendDtmfTonesResult;\n }\n\n /**\n * Put participant on hold while playing audio.\n *\n * @param targetParticipant - The targets to play to.\n * @param options - Additional attributes for hold participant.\n */\n public async hold(\n targetParticipant: CommunicationIdentifier,\n options: HoldOptions = {},\n ): Promise<void> {\n const holdRequest: HoldRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n playSourceInfo:\n options.playSource !== undefined\n ? this.createPlaySourceInternal(options.playSource)\n : undefined,\n operationContext:\n options.operationContext !== undefined ? options.operationContext : undefined,\n operationCallbackUri:\n options.operationCallbackUrl !== undefined ? options.operationCallbackUrl : undefined,\n };\n return this.callMedia.hold(this.callConnectionId, holdRequest);\n }\n\n /**\n * Remove participant from hold.\n *\n * @param targetParticipant - The targets to play to.\n * @param options - Additional attributes for unhold participant.\n */\n public async unhold(\n targetParticipant: CommunicationIdentifier,\n options: UnholdOptions = {},\n ): Promise<void> {\n const unholdRequest: UnholdRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext:\n options.operationContext !== undefined ? options.operationContext : undefined,\n };\n return this.callMedia.unhold(this.callConnectionId, unholdRequest);\n }\n\n /**\n * Starts transcription in the call\n * @param options - Additional attributes for start transcription.\n */\n public async startTranscription(options: StartTranscriptionOptions = {}): Promise<void> {\n const startTranscriptionRequest: StartTranscriptionRequest = {\n locale: options.locale,\n operationContext: options.operationContext,\n speechRecognitionModelEndpointId: options.speechRecognitionModelEndpointId,\n };\n return this.callMedia.startTranscription(this.callConnectionId, startTranscriptionRequest, {});\n }\n\n /**\n * Stops transcription in the call.\n * @param options - Additional attributes for stop transcription.\n */\n public async stopTranscription(options: StopTranscriptionOptions = {}): Promise<void> {\n const stopTranscriptionRequest: StopTranscriptionRequest = {\n operationContext: options.operationContext,\n };\n return this.callMedia.stopTranscription(this.callConnectionId, stopTranscriptionRequest, {});\n }\n\n /**\n * Update transcription language.\n * @param locale - Defines new locale for transcription.\n */\n public async updateTranscription(\n locale: string,\n options?: UpdateTranscriptionOptions,\n ): Promise<void> {\n const updateTranscriptionRequest: UpdateTranscriptionRequest = {\n locale: locale,\n speechRecognitionModelEndpointId: options?.speechRecognitionModelEndpointId,\n operationContext: options?.operationContext,\n };\n return this.callMedia.updateTranscription(\n this.callConnectionId,\n updateTranscriptionRequest,\n {},\n );\n }\n /**\n * Starts media streaming in the call.\n * @param options - Additional attributes for start media streaming.\n */\n public async startMediaStreaming(options: StartMediaStreamingOptions = {}): Promise<void> {\n const startMediaStreamingRequest: StartMediaStreamingRequest = {\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.startMediaStreaming(\n this.callConnectionId,\n startMediaStreamingRequest,\n options,\n );\n }\n\n /**\n * Stops media streaming in the call.\n * @param options - Additional attributes for stop media streaming.\n */\n public async stopMediaStreaming(options: StopMediaStreamingOptions = {}): Promise<void> {\n const stopMediaStreamingRequest: StopMediaStreamingRequest = {\n operationCallbackUri: options.operationCallbackUrl,\n operationContext: options.operationContext,\n };\n return this.callMedia.stopMediaStreaming(\n this.callConnectionId,\n stopMediaStreamingRequest,\n options,\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"callMedia.js","sourceRoot":"","sources":["../../src/callMedia.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n PlayRequest,\n PlaySourceInternal,\n FileSourceInternal,\n TextSourceInternal,\n SsmlSourceInternal,\n RecognizeRequest,\n RecognizeOptions,\n DtmfOptions,\n CallAutomationApiClient,\n CallAutomationApiClientOptionalParams,\n ContinuousDtmfRecognitionRequest,\n SendDtmfTonesRequest,\n Tone,\n SpeechOptions,\n StartTranscriptionRequest,\n StopTranscriptionRequest,\n UpdateTranscriptionRequest,\n HoldRequest,\n UnholdRequest,\n StartMediaStreamingRequest,\n StopMediaStreamingRequest,\n} from \"./generated/src/index.js\";\nimport { KnownPlaySourceType, KnownRecognizeInputType } from \"./generated/src/index.js\";\n\nimport { CallMediaImpl } from \"./generated/src/operations/index.js\";\n\nimport type { CommunicationIdentifier } from \"@azure/communication-common\";\nimport {\n createCommunicationAuthPolicy,\n serializeCommunicationIdentifier,\n} from \"@azure/communication-common\";\n\nimport type { FileSource, TextSource, SsmlSource, DtmfTone } from \"./models/models.js\";\nimport type {\n PlayOptions,\n CallMediaRecognizeDtmfOptions,\n CallMediaRecognizeChoiceOptions,\n ContinuousDtmfRecognitionOptions,\n SendDtmfTonesOptions,\n CallMediaRecognizeSpeechOptions,\n CallMediaRecognizeSpeechOrDtmfOptions,\n StartTranscriptionOptions,\n StopTranscriptionOptions,\n HoldOptions,\n UnholdOptions,\n StartMediaStreamingOptions,\n StopMediaStreamingOptions,\n PlayToAllOptions,\n UpdateTranscriptionOptions,\n} from \"./models/options.js\";\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport type { SendDtmfTonesResult } from \"./models/responses.js\";\nimport { randomUUID } from \"@azure/core-util\";\n/**\n * CallMedia class represents call media related APIs.\n */\nexport class CallMedia {\n private readonly callConnectionId: string;\n private readonly callMedia: CallMediaImpl;\n private readonly callAutomationApiClient: CallAutomationApiClient;\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.callMedia = new CallMediaImpl(this.callAutomationApiClient);\n }\n\n private createPlaySourceInternal(\n playSource: FileSource | TextSource | SsmlSource,\n ): PlaySourceInternal {\n if (playSource.kind === \"fileSource\") {\n const fileSource: FileSourceInternal = {\n uri: playSource.url,\n };\n return {\n kind: KnownPlaySourceType.File,\n file: fileSource,\n playSourceCacheId: playSource.playSourceCacheId\n ? playSource.playSourceCacheId\n : playSource.playsourcacheid,\n };\n } else if (playSource.kind === \"textSource\") {\n const textSource: TextSourceInternal = {\n text: playSource.text,\n sourceLocale: playSource.sourceLocale,\n voiceKind: playSource.voiceKind,\n voiceName: playSource.voiceName,\n customVoiceEndpointId: playSource.customVoiceEndpointId,\n };\n return {\n kind: KnownPlaySourceType.Text,\n text: textSource,\n playSourceCacheId: playSource.playSourceCacheId\n ? playSource.playSourceCacheId\n : playSource.playsourcacheid,\n };\n } else if (playSource.kind === \"ssmlSource\") {\n const ssmlSource: SsmlSourceInternal = {\n ssmlText: playSource.ssmlText,\n customVoiceEndpointId: playSource.customVoiceEndpointId,\n };\n return {\n kind: KnownPlaySourceType.Ssml,\n ssml: ssmlSource,\n playSourceCacheId: playSource.playSourceCacheId\n ? playSource.playSourceCacheId\n : playSource.playsourcacheid,\n };\n }\n throw new Error(\"Invalid play source\");\n }\n\n /**\n * Play audio to a specific participant.\n *\n * @param playSources - A PlaySource representing the sources to play. Currently only single play source per request is supported.\n * @param playTo - The targets to play to.\n * @param options - Additional attributes for play.\n */\n public async play(\n playSources: (FileSource | TextSource | SsmlSource)[],\n playTo: CommunicationIdentifier[],\n options: PlayOptions = { loop: false },\n ): Promise<void> {\n const playRequest: PlayRequest = {\n playSources: playSources.map((source) => this.createPlaySourceInternal(source)),\n playTo: playTo.map((identifier) => serializeCommunicationIdentifier(identifier)),\n playOptions: {\n loop: false,\n },\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n\n if (options.loop !== undefined) {\n playRequest.playOptions = playRequest.playOptions || { loop: false }; // Ensure playOptions is defined\n playRequest.playOptions.loop = options.loop;\n }\n await this.callMedia.play(this.callConnectionId, playRequest, options);\n }\n\n /**\n * Play to all participants.\n *\n * @param playSources - A PlaySource representing the sources to play. Currently only single play source per request is supported.\n * @param options - Additional attributes for play.\n */\n public async playToAll(\n playSources: (FileSource | TextSource | SsmlSource)[],\n options: PlayToAllOptions = { loop: false },\n ): Promise<void> {\n const playRequest: PlayRequest = {\n playSources: playSources.map((source) => this.createPlaySourceInternal(source)),\n playTo: [],\n playOptions: {\n loop: false,\n },\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n operationCallbackUri: options.operationCallbackUrl,\n };\n\n if (options.loop !== undefined) {\n playRequest.playOptions = playRequest.playOptions || { loop: false }; // Ensure playOptions is defined\n playRequest.playOptions.loop = options.loop;\n }\n\n if (options.interruptCallMediaOperation !== undefined) {\n playRequest.playOptions = playRequest.playOptions || {\n loop: false,\n }; // Ensure playOptions is defined\n playRequest.interruptCallMediaOperation = options.interruptCallMediaOperation;\n }\n\n await this.callMedia.play(this.callConnectionId, playRequest, options);\n }\n\n private createRecognizeRequest(\n targetParticipant: CommunicationIdentifier,\n recognizeOptions:\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n ): RecognizeRequest {\n if (recognizeOptions.kind === \"callMediaRecognizeDtmfOptions\") {\n const dtmfOptionsInternal: DtmfOptions = {\n interToneTimeoutInSeconds: recognizeOptions.interToneTimeoutInSeconds\n ? recognizeOptions.interToneTimeoutInSeconds\n : 2,\n maxTonesToCollect: recognizeOptions.maxTonesToCollect,\n stopTones: recognizeOptions.stopDtmfTones,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n dtmfOptions: dtmfOptionsInternal,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Dtmf,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeChoiceOptions\") {\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechLanguage: recognizeOptions.speechLanguage,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n choices: recognizeOptions.choices,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Choices,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeSpeechOptions\") {\n const speechOptions: SpeechOptions = {\n endSilenceTimeoutInMs: recognizeOptions.endSilenceTimeoutInSeconds\n ? recognizeOptions.endSilenceTimeoutInSeconds * 1000\n : 2000,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechOptions: speechOptions,\n speechLanguage: recognizeOptions.speechLanguage,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Speech,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeSpeechOrDtmfOptions\") {\n const dtmfOptionsInternal: DtmfOptions = {\n interToneTimeoutInSeconds: recognizeOptions.interToneTimeoutInSeconds\n ? recognizeOptions.interToneTimeoutInSeconds\n : 2,\n maxTonesToCollect: recognizeOptions.maxTonesToCollect,\n stopTones: recognizeOptions.stopDtmfTones,\n };\n const speechOptions: SpeechOptions = {\n endSilenceTimeoutInMs: recognizeOptions.endSilenceTimeoutInSeconds\n ? recognizeOptions.endSilenceTimeoutInSeconds * 1000\n : 2000,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechOptions: speechOptions,\n dtmfOptions: dtmfOptionsInternal,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.SpeechOrDtmf,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n }\n throw new Error(\"Invalid recognizeOptions\");\n }\n\n /**\n * Recognize participant input.\n * @deprecated This method signature is deprecated. Please use the new signature with targetParticipant and options params instead, and set maxTonesToCollect in options.\n * @param targetParticipant - Target participant.\n * @param maxTonesToCollect - Maximum number of DTMF tones to be collected.\n * @param options - Different attributes for recognize.\n * */\n public async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n maxTonesToCollect: number,\n options: CallMediaRecognizeDtmfOptions,\n ): Promise<void>;\n\n /**\n * Recognize participant input.\n * @param targetParticipant - Target participant.\n * @param options - Different attributes for recognize.\n * */\n public async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n options:\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n ): Promise<void>;\n async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n maxTonesOrOptions:\n | number\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n options?: CallMediaRecognizeDtmfOptions,\n ): Promise<void> {\n if (typeof maxTonesOrOptions === \"number\" && options) {\n // Old function signature logic\n console.warn(\n \"Deprecated function signature used. Please use the new signature with targetParticipant and options params instead, and set maxTonesToCollect in options.\",\n );\n options.maxTonesToCollect = maxTonesOrOptions;\n return this.callMedia.recognize(\n this.callConnectionId,\n this.createRecognizeRequest(targetParticipant, options),\n {},\n );\n } else if (typeof maxTonesOrOptions !== \"number\" && !options) {\n maxTonesOrOptions.operationContext = maxTonesOrOptions.operationContext\n ? maxTonesOrOptions.operationContext\n : randomUUID();\n // New function signature logic\n return this.callMedia.recognize(\n this.callConnectionId,\n this.createRecognizeRequest(targetParticipant, maxTonesOrOptions),\n {},\n );\n }\n throw new Error(\"Invalid params\");\n }\n\n /**\n * Cancels all the queued media operations.\n */\n public async cancelAllOperations(): Promise<void> {\n await this.callMedia.cancelAllMediaOperations(this.callConnectionId, {});\n }\n\n /**\n * Start continuous Dtmf recognition by subscribing to tones.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for continuous Dtmf recognition.\n * */\n public async startContinuousDtmfRecognition(\n targetParticipant: CommunicationIdentifier,\n options: ContinuousDtmfRecognitionOptions = {},\n ): Promise<void> {\n const continuousDtmfRecognitionRequest: ContinuousDtmfRecognitionRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext,\n };\n return this.callMedia.startContinuousDtmfRecognition(\n this.callConnectionId,\n continuousDtmfRecognitionRequest,\n {},\n );\n }\n\n /**\n * Stop continuous Dtmf recognition by unsubscribing to tones.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for continuous Dtmf recognition.\n * */\n public async stopContinuousDtmfRecognition(\n targetParticipant: CommunicationIdentifier,\n options: ContinuousDtmfRecognitionOptions = {},\n ): Promise<void> {\n const continuousDtmfRecognitionRequest: ContinuousDtmfRecognitionRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.stopContinuousDtmfRecognition(\n this.callConnectionId,\n continuousDtmfRecognitionRequest,\n {},\n );\n }\n\n /**\n * Send Dtmf tones.\n * @param tones - List of tones to be sent to target participant.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for send Dtmf tones.\n * */\n public async sendDtmfTones(\n tones: Tone[] | DtmfTone[],\n targetParticipant: CommunicationIdentifier,\n options: SendDtmfTonesOptions = {},\n ): Promise<SendDtmfTonesResult> {\n const sendDtmfTonesRequest: SendDtmfTonesRequest = {\n tones: tones,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const result = await this.callMedia.sendDtmfTones(\n this.callConnectionId,\n sendDtmfTonesRequest,\n optionsInternal,\n );\n\n const sendDtmfTonesResult: SendDtmfTonesResult = {\n ...result,\n };\n return sendDtmfTonesResult;\n }\n\n /**\n * Put participant on hold while playing audio.\n *\n * @param targetParticipant - The targets to play to.\n * @param options - Additional attributes for hold participant.\n */\n public async hold(\n targetParticipant: CommunicationIdentifier,\n options: HoldOptions = {},\n ): Promise<void> {\n const holdRequest: HoldRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n playSourceInfo:\n options.playSource !== undefined\n ? this.createPlaySourceInternal(options.playSource)\n : undefined,\n operationContext:\n options.operationContext !== undefined ? options.operationContext : undefined,\n operationCallbackUri:\n options.operationCallbackUrl !== undefined ? options.operationCallbackUrl : undefined,\n };\n return this.callMedia.hold(this.callConnectionId, holdRequest);\n }\n\n /**\n * Remove participant from hold.\n *\n * @param targetParticipant - The targets to play to.\n * @param options - Additional attributes for unhold participant.\n */\n public async unhold(\n targetParticipant: CommunicationIdentifier,\n options: UnholdOptions = {},\n ): Promise<void> {\n const unholdRequest: UnholdRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext:\n options.operationContext !== undefined ? options.operationContext : undefined,\n operationCallbackUri:\n options.operationCallbackUrl !== undefined ? options.operationCallbackUrl : undefined,\n };\n return this.callMedia.unhold(this.callConnectionId, unholdRequest);\n }\n\n /**\n * Starts transcription in the call\n * @param options - Additional attributes for start transcription.\n */\n public async startTranscription(options: StartTranscriptionOptions = {}): Promise<void> {\n const startTranscriptionRequest: StartTranscriptionRequest = {\n locale: options.locale,\n operationContext: options.operationContext,\n speechModelEndpointId: options.speechRecognitionModelEndpointId,\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.startTranscription(this.callConnectionId, startTranscriptionRequest, {});\n }\n\n /**\n * Stops transcription in the call.\n * @param options - Additional attributes for stop transcription.\n */\n public async stopTranscription(options: StopTranscriptionOptions = {}): Promise<void> {\n const stopTranscriptionRequest: StopTranscriptionRequest = {\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.stopTranscription(this.callConnectionId, stopTranscriptionRequest, {});\n }\n\n /**\n * Update transcription language.\n * @param locale - Defines new locale for transcription.\n */\n public async updateTranscription(\n locale: string,\n options?: UpdateTranscriptionOptions,\n ): Promise<void> {\n const updateTranscriptionRequest: UpdateTranscriptionRequest = {\n locale: locale,\n speechModelEndpointId: options?.speechRecognitionModelEndpointId,\n operationContext: options?.operationContext,\n operationCallbackUri: options?.operationCallbackUrl,\n };\n return this.callMedia.updateTranscription(\n this.callConnectionId,\n updateTranscriptionRequest,\n {},\n );\n }\n /**\n * Starts media streaming in the call.\n * @param options - Additional attributes for start media streaming.\n */\n public async startMediaStreaming(options: StartMediaStreamingOptions = {}): Promise<void> {\n const startMediaStreamingRequest: StartMediaStreamingRequest = {\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.startMediaStreaming(\n this.callConnectionId,\n startMediaStreamingRequest,\n options,\n );\n }\n\n /**\n * Stops media streaming in the call.\n * @param options - Additional attributes for stop media streaming.\n */\n public async stopMediaStreaming(options: StopMediaStreamingOptions = {}): Promise<void> {\n const stopMediaStreamingRequest: StopMediaStreamingRequest = {\n operationCallbackUri: options.operationCallbackUrl,\n operationContext: options.operationContext,\n };\n return this.callMedia.stopMediaStreaming(\n this.callConnectionId,\n stopMediaStreamingRequest,\n options,\n );\n }\n}\n"]}
|
|
@@ -7,7 +7,7 @@ const tslib_1 = require("tslib");
|
|
|
7
7
|
const index_js_1 = require("./generated/src/operations/index.js");
|
|
8
8
|
const converters_js_1 = require("./utli/converters.js");
|
|
9
9
|
const contentDownloader_js_1 = require("./contentDownloader.js");
|
|
10
|
-
const
|
|
10
|
+
const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
|
|
11
11
|
const core_util_1 = require("@azure/core-util");
|
|
12
12
|
const index_js_2 = require("./generated/src/index.js");
|
|
13
13
|
const communication_common_1 = require("@azure/communication-common");
|
|
@@ -15,6 +15,9 @@ const communication_common_1 = require("@azure/communication-common");
|
|
|
15
15
|
* CallRecording class represents call recording related APIs.
|
|
16
16
|
*/
|
|
17
17
|
class CallRecording {
|
|
18
|
+
callRecordingImpl;
|
|
19
|
+
contentDownloader;
|
|
20
|
+
callAutomationApiClient;
|
|
18
21
|
constructor(endpoint, credential, options) {
|
|
19
22
|
this.callAutomationApiClient = new index_js_2.CallAutomationApiClient(endpoint, options);
|
|
20
23
|
const authPolicy = (0, communication_common_1.createCommunicationAuthPolicy)(credential);
|
|
@@ -43,8 +46,7 @@ class CallRecording {
|
|
|
43
46
|
if (options.channelAffinity) {
|
|
44
47
|
startCallRecordingRequest.channelAffinity = [];
|
|
45
48
|
options.channelAffinity.forEach((identifier) => {
|
|
46
|
-
|
|
47
|
-
(_a = startCallRecordingRequest.channelAffinity) === null || _a === void 0 ? void 0 : _a.push({
|
|
49
|
+
startCallRecordingRequest.channelAffinity?.push({
|
|
48
50
|
participant: (0, converters_js_1.communicationIdentifierModelConverter)(identifier.targetParticipant),
|
|
49
51
|
channel: identifier.channel,
|
|
50
52
|
});
|
|
@@ -53,8 +55,7 @@ class CallRecording {
|
|
|
53
55
|
if (options.audioChannelParticipantOrdering) {
|
|
54
56
|
startCallRecordingRequest.audioChannelParticipantOrdering = [];
|
|
55
57
|
options.audioChannelParticipantOrdering.forEach((identifier) => {
|
|
56
|
-
|
|
57
|
-
(_a = startCallRecordingRequest.audioChannelParticipantOrdering) === null || _a === void 0 ? void 0 : _a.push((0, converters_js_1.communicationIdentifierModelConverter)(identifier));
|
|
58
|
+
startCallRecordingRequest.audioChannelParticipantOrdering?.push((0, converters_js_1.communicationIdentifierModelConverter)(identifier));
|
|
58
59
|
});
|
|
59
60
|
}
|
|
60
61
|
if (options.callLocator) {
|
|
@@ -77,7 +78,11 @@ class CallRecording {
|
|
|
77
78
|
};
|
|
78
79
|
}
|
|
79
80
|
}
|
|
80
|
-
const optionsInternal =
|
|
81
|
+
const optionsInternal = {
|
|
82
|
+
...options,
|
|
83
|
+
repeatabilityFirstSent: new Date(),
|
|
84
|
+
repeatabilityRequestID: (0, core_util_1.randomUUID)(),
|
|
85
|
+
};
|
|
81
86
|
const response = await this.callRecordingImpl.startRecording(startCallRecordingRequest, optionsInternal);
|
|
82
87
|
const result = {
|
|
83
88
|
recordingId: response.recordingId,
|
|
@@ -178,7 +183,7 @@ class CallRecording {
|
|
|
178
183
|
const result = this.contentDownloader.download(sourceLocationUrl, options);
|
|
179
184
|
const recordingStream = (await result).readableStreamBody;
|
|
180
185
|
if (recordingStream) {
|
|
181
|
-
const writeFileStream =
|
|
186
|
+
const writeFileStream = node_fs_1.default.createWriteStream(destinationPath);
|
|
182
187
|
recordingStream.pipe(writeFileStream);
|
|
183
188
|
const finish = new Promise((resolve, reject) => {
|
|
184
189
|
writeFileStream.on("finish", resolve);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callRecording.js","sourceRoot":"","sources":["../../src/callRecording.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { CallRecordingImpl } from \"./generated/src/operations/index.js\";\nimport type {\n CallAutomationApiClientOptionalParams,\n StartCallRecordingRequest,\n} from \"./generated/src/models/index.js\";\nimport type { RecordingStateResult } from \"./models/responses.js\";\nimport type {\n StartRecordingOptions,\n StopRecordingOptions,\n PauseRecordingOptions,\n GetRecordingPropertiesOptions,\n ResumeRecordingOptions,\n DeleteRecordingOptions,\n DownloadRecordingOptions,\n} from \"./models/options.js\";\nimport { communicationIdentifierModelConverter } from \"./utli/converters.js\";\nimport { ContentDownloaderImpl } from \"./contentDownloader.js\";\nimport * as fs from \"node:fs\";\nimport { randomUUID } from \"@azure/core-util\";\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport { CallAutomationApiClient } from \"./generated/src/index.js\";\nimport { createCommunicationAuthPolicy } from \"@azure/communication-common\";\n\n/**\n * CallRecording class represents call recording related APIs.\n */\nexport class CallRecording {\n private readonly callRecordingImpl: CallRecordingImpl;\n private readonly contentDownloader: ContentDownloaderImpl;\n private readonly callAutomationApiClient: CallAutomationApiClient;\n\n constructor(\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\n this.callRecordingImpl = new CallRecordingImpl(this.callAutomationApiClient);\n this.contentDownloader = new ContentDownloaderImpl(this.callAutomationApiClient);\n }\n\n /**\n * Starts a call recording with the specified options.\n * @param startCallRecordingRequest - options to start the call recording\n * @param options - Operation options.\n */\n public async start(options: StartRecordingOptions): Promise<RecordingStateResult> {\n const startCallRecordingRequest: StartCallRecordingRequest = {\n callLocator: options.callLocator ? options.callLocator : undefined,\n };\n\n startCallRecordingRequest.recordingChannelType = options.recordingChannel;\n startCallRecordingRequest.recordingContentType = options.recordingContent;\n startCallRecordingRequest.recordingFormatType = options.recordingFormat;\n startCallRecordingRequest.recordingStateCallbackUri = options.recordingStateCallbackEndpointUrl;\n startCallRecordingRequest.pauseOnStart = options.pauseOnStart;\n startCallRecordingRequest.recordingStorage = options.recordingStorage;\n startCallRecordingRequest.callConnectionId = options.callConnectionId\n ? options.callConnectionId\n : undefined;\n\n if (options.channelAffinity) {\n startCallRecordingRequest.channelAffinity = [];\n options.channelAffinity.forEach((identifier) => {\n startCallRecordingRequest.channelAffinity?.push({\n participant: communicationIdentifierModelConverter(identifier.targetParticipant),\n channel: identifier.channel,\n });\n });\n }\n\n if (options.audioChannelParticipantOrdering) {\n startCallRecordingRequest.audioChannelParticipantOrdering = [];\n options.audioChannelParticipantOrdering.forEach((identifier) => {\n startCallRecordingRequest.audioChannelParticipantOrdering?.push(\n communicationIdentifierModelConverter(identifier),\n );\n });\n }\n if (options.callLocator) {\n if (options.callLocator.kind === \"groupCallLocator\") {\n startCallRecordingRequest.callLocator = {\n groupCallId: options.callLocator.id,\n kind: \"groupCallLocator\",\n };\n } else if (options.callLocator.kind === \"roomCallLocator\") {\n startCallRecordingRequest.callLocator = {\n roomId: options.callLocator.id,\n kind: \"roomCallLocator\",\n };\n } else {\n startCallRecordingRequest.callLocator = {\n serverCallId: options.callLocator.id,\n kind: \"serverCallLocator\",\n };\n }\n }\n\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const response = await this.callRecordingImpl.startRecording(\n startCallRecordingRequest,\n optionsInternal,\n );\n\n const result: RecordingStateResult = {\n recordingId: response.recordingId!,\n recordingKind: response.recordingKind!,\n recordingState: response.recordingState!,\n };\n\n return result;\n }\n\n /**\n * Returns call recording properties.\n * @param recordingId - The recordingId associated with the recording.\n * @param options - Additional request options contains getRecordingProperties api options.\n */\n public async getState(\n recordingId: string,\n options: GetRecordingPropertiesOptions = {},\n ): Promise<RecordingStateResult> {\n const response = await this.callRecordingImpl.getRecordingProperties(recordingId, options);\n\n const result: RecordingStateResult = {\n recordingId: response.recordingId!,\n recordingKind: response.recordingKind!,\n recordingState: response.recordingState!,\n };\n\n return result;\n }\n\n /**\n * Stops a call recording.\n * @param recordingId - The recordingId associated with the recording.\n * @param options - Additional request options contains stopRecording api options.\n */\n public async stop(recordingId: string, options: StopRecordingOptions = {}): Promise<void> {\n return this.callRecordingImpl.stopRecording(recordingId, options);\n }\n\n /**\n * Pauses a call recording.\n * @param recordingId - The recordingId associated with the recording.\n * @param options - Additional request options contains pauseRecording api options.\n */\n public async pause(recordingId: string, options: PauseRecordingOptions = {}): Promise<void> {\n return this.callRecordingImpl.pauseRecording(recordingId, options);\n }\n\n /**\n * Resumes a call recording.\n * @param recordingId - The recordingId associated with the recording.\n * @param options - Additional request options contains resumeRecording api options.\n */\n public async resume(recordingId: string, options: ResumeRecordingOptions = {}): Promise<void> {\n return this.callRecordingImpl.resumeRecording(recordingId, options);\n }\n\n /**\n * Deletes a recording.\n * @param recordingLocationUrl - The recording location url. Required.\n * @param options - Additional request options contains deleteRecording api options.\n */\n public async delete(\n recordingLocationUrl: string,\n options: DeleteRecordingOptions = {},\n ): Promise<void> {\n await this.contentDownloader.deleteRecording(recordingLocationUrl, options);\n }\n\n /**\n * Returns a stream with a call recording.\n * @param sourceLocationUrl - The source location url. Required.\n * @param options - Additional request options contains downloadRecording api options.\n */\n public async downloadStreaming(\n sourceLocationUrl: string,\n options: DownloadRecordingOptions = {},\n ): Promise<NodeJS.ReadableStream> {\n const result = this.contentDownloader.download(sourceLocationUrl, options);\n const recordingStream = (await result).readableStreamBody;\n if (recordingStream) {\n return recordingStream;\n } else {\n throw Error(\"failed to get stream\");\n }\n }\n\n /**\n * Downloads a call recording file to the specified stream.\n * @param sourceLocationUrl - The source location url. Required.\n * @param destinationStream - The destination stream. Required.\n * @param options - Additional request options contains downloadRecording api options.\n */\n public async downloadToStream(\n sourceLocationUrl: string,\n destinationStream: NodeJS.WritableStream,\n options: DownloadRecordingOptions = {},\n ): Promise<void> {\n const result = this.contentDownloader.download(sourceLocationUrl, options);\n const recordingStream = (await result).readableStreamBody;\n if (recordingStream) {\n recordingStream.pipe(destinationStream);\n const finish = new Promise<void>((resolve, reject) => {\n destinationStream.on(\"finish\", resolve);\n destinationStream.on(\"error\", reject);\n });\n await finish;\n } else {\n throw Error(\"failed to get stream\");\n }\n }\n\n /**\n * Downloads a call recording file to the specified path.\n * @param sourceLocationUrl - The source location url. Required.\n * @param destinationPath - The destination path. Required.\n * @param options - Additional request options contains downloadRecording api options.\n */\n public async downloadToPath(\n sourceLocationUrl: string,\n destinationPath: string,\n options: DownloadRecordingOptions = {},\n ): Promise<void> {\n const result = this.contentDownloader.download(sourceLocationUrl, options);\n const recordingStream = (await result).readableStreamBody;\n if (recordingStream) {\n const writeFileStream = fs.createWriteStream(destinationPath);\n recordingStream.pipe(writeFileStream);\n const finish = new Promise<void>((resolve, reject) => {\n writeFileStream.on(\"finish\", resolve);\n writeFileStream.on(\"error\", reject);\n });\n await finish;\n } else {\n throw Error(\"failed to get stream\");\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"callRecording.js","sourceRoot":"","sources":["../../src/callRecording.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { CallRecordingImpl } from \"./generated/src/operations/index.js\";\nimport type {\n CallAutomationApiClientOptionalParams,\n StartCallRecordingRequest,\n} from \"./generated/src/models/index.js\";\nimport type { RecordingStateResult } from \"./models/responses.js\";\nimport type {\n StartRecordingOptions,\n StopRecordingOptions,\n PauseRecordingOptions,\n GetRecordingPropertiesOptions,\n ResumeRecordingOptions,\n DeleteRecordingOptions,\n DownloadRecordingOptions,\n} from \"./models/options.js\";\nimport { communicationIdentifierModelConverter } from \"./utli/converters.js\";\nimport { ContentDownloaderImpl } from \"./contentDownloader.js\";\nimport fs from \"node:fs\";\nimport { randomUUID } from \"@azure/core-util\";\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport { CallAutomationApiClient } from \"./generated/src/index.js\";\nimport { createCommunicationAuthPolicy } from \"@azure/communication-common\";\n\n/**\n * CallRecording class represents call recording related APIs.\n */\nexport class CallRecording {\n private readonly callRecordingImpl: CallRecordingImpl;\n private readonly contentDownloader: ContentDownloaderImpl;\n private readonly callAutomationApiClient: CallAutomationApiClient;\n\n constructor(\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\n this.callRecordingImpl = new CallRecordingImpl(this.callAutomationApiClient);\n this.contentDownloader = new ContentDownloaderImpl(this.callAutomationApiClient);\n }\n\n /**\n * Starts a call recording with the specified options.\n * @param startCallRecordingRequest - options to start the call recording\n * @param options - Operation options.\n */\n public async start(options: StartRecordingOptions): Promise<RecordingStateResult> {\n const startCallRecordingRequest: StartCallRecordingRequest = {\n callLocator: options.callLocator ? options.callLocator : undefined,\n };\n\n startCallRecordingRequest.recordingChannelType = options.recordingChannel;\n startCallRecordingRequest.recordingContentType = options.recordingContent;\n startCallRecordingRequest.recordingFormatType = options.recordingFormat;\n startCallRecordingRequest.recordingStateCallbackUri = options.recordingStateCallbackEndpointUrl;\n startCallRecordingRequest.pauseOnStart = options.pauseOnStart;\n startCallRecordingRequest.recordingStorage = options.recordingStorage;\n startCallRecordingRequest.callConnectionId = options.callConnectionId\n ? options.callConnectionId\n : undefined;\n\n if (options.channelAffinity) {\n startCallRecordingRequest.channelAffinity = [];\n options.channelAffinity.forEach((identifier) => {\n startCallRecordingRequest.channelAffinity?.push({\n participant: communicationIdentifierModelConverter(identifier.targetParticipant),\n channel: identifier.channel,\n });\n });\n }\n\n if (options.audioChannelParticipantOrdering) {\n startCallRecordingRequest.audioChannelParticipantOrdering = [];\n options.audioChannelParticipantOrdering.forEach((identifier) => {\n startCallRecordingRequest.audioChannelParticipantOrdering?.push(\n communicationIdentifierModelConverter(identifier),\n );\n });\n }\n if (options.callLocator) {\n if (options.callLocator.kind === \"groupCallLocator\") {\n startCallRecordingRequest.callLocator = {\n groupCallId: options.callLocator.id,\n kind: \"groupCallLocator\",\n };\n } else if (options.callLocator.kind === \"roomCallLocator\") {\n startCallRecordingRequest.callLocator = {\n roomId: options.callLocator.id,\n kind: \"roomCallLocator\",\n };\n } else {\n startCallRecordingRequest.callLocator = {\n serverCallId: options.callLocator.id,\n kind: \"serverCallLocator\",\n };\n }\n }\n\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const response = await this.callRecordingImpl.startRecording(\n startCallRecordingRequest,\n optionsInternal,\n );\n\n const result: RecordingStateResult = {\n recordingId: response.recordingId!,\n recordingKind: response.recordingKind!,\n recordingState: response.recordingState!,\n };\n\n return result;\n }\n\n /**\n * Returns call recording properties.\n * @param recordingId - The recordingId associated with the recording.\n * @param options - Additional request options contains getRecordingProperties api options.\n */\n public async getState(\n recordingId: string,\n options: GetRecordingPropertiesOptions = {},\n ): Promise<RecordingStateResult> {\n const response = await this.callRecordingImpl.getRecordingProperties(recordingId, options);\n\n const result: RecordingStateResult = {\n recordingId: response.recordingId!,\n recordingKind: response.recordingKind!,\n recordingState: response.recordingState!,\n };\n\n return result;\n }\n\n /**\n * Stops a call recording.\n * @param recordingId - The recordingId associated with the recording.\n * @param options - Additional request options contains stopRecording api options.\n */\n public async stop(recordingId: string, options: StopRecordingOptions = {}): Promise<void> {\n return this.callRecordingImpl.stopRecording(recordingId, options);\n }\n\n /**\n * Pauses a call recording.\n * @param recordingId - The recordingId associated with the recording.\n * @param options - Additional request options contains pauseRecording api options.\n */\n public async pause(recordingId: string, options: PauseRecordingOptions = {}): Promise<void> {\n return this.callRecordingImpl.pauseRecording(recordingId, options);\n }\n\n /**\n * Resumes a call recording.\n * @param recordingId - The recordingId associated with the recording.\n * @param options - Additional request options contains resumeRecording api options.\n */\n public async resume(recordingId: string, options: ResumeRecordingOptions = {}): Promise<void> {\n return this.callRecordingImpl.resumeRecording(recordingId, options);\n }\n\n /**\n * Deletes a recording.\n * @param recordingLocationUrl - The recording location url. Required.\n * @param options - Additional request options contains deleteRecording api options.\n */\n public async delete(\n recordingLocationUrl: string,\n options: DeleteRecordingOptions = {},\n ): Promise<void> {\n await this.contentDownloader.deleteRecording(recordingLocationUrl, options);\n }\n\n /**\n * Returns a stream with a call recording.\n * @param sourceLocationUrl - The source location url. Required.\n * @param options - Additional request options contains downloadRecording api options.\n */\n public async downloadStreaming(\n sourceLocationUrl: string,\n options: DownloadRecordingOptions = {},\n ): Promise<NodeJS.ReadableStream> {\n const result = this.contentDownloader.download(sourceLocationUrl, options);\n const recordingStream = (await result).readableStreamBody;\n if (recordingStream) {\n return recordingStream;\n } else {\n throw Error(\"failed to get stream\");\n }\n }\n\n /**\n * Downloads a call recording file to the specified stream.\n * @param sourceLocationUrl - The source location url. Required.\n * @param destinationStream - The destination stream. Required.\n * @param options - Additional request options contains downloadRecording api options.\n */\n public async downloadToStream(\n sourceLocationUrl: string,\n destinationStream: NodeJS.WritableStream,\n options: DownloadRecordingOptions = {},\n ): Promise<void> {\n const result = this.contentDownloader.download(sourceLocationUrl, options);\n const recordingStream = (await result).readableStreamBody;\n if (recordingStream) {\n recordingStream.pipe(destinationStream);\n const finish = new Promise<void>((resolve, reject) => {\n destinationStream.on(\"finish\", resolve);\n destinationStream.on(\"error\", reject);\n });\n await finish;\n } else {\n throw Error(\"failed to get stream\");\n }\n }\n\n /**\n * Downloads a call recording file to the specified path.\n * @param sourceLocationUrl - The source location url. Required.\n * @param destinationPath - The destination path. Required.\n * @param options - Additional request options contains downloadRecording api options.\n */\n public async downloadToPath(\n sourceLocationUrl: string,\n destinationPath: string,\n options: DownloadRecordingOptions = {},\n ): Promise<void> {\n const result = this.contentDownloader.download(sourceLocationUrl, options);\n const recordingStream = (await result).readableStreamBody;\n if (recordingStream) {\n const writeFileStream = fs.createWriteStream(destinationPath);\n recordingStream.pipe(writeFileStream);\n const finish = new Promise<void>((resolve, reject) => {\n writeFileStream.on(\"finish\", resolve);\n writeFileStream.on(\"error\", reject);\n });\n await finish;\n } else {\n throw Error(\"failed to get stream\");\n }\n }\n}\n"]}
|
|
@@ -6,6 +6,7 @@ exports.ContentDownloaderImpl = void 0;
|
|
|
6
6
|
const core_rest_pipeline_1 = require("@azure/core-rest-pipeline");
|
|
7
7
|
/** Class containing ContentDownloading operations. */
|
|
8
8
|
class ContentDownloaderImpl {
|
|
9
|
+
client;
|
|
9
10
|
/**
|
|
10
11
|
* Initialize a new instance of the class ContentDownloader class.
|
|
11
12
|
* @param client - Reference to the service client
|
|
@@ -35,7 +36,6 @@ class ContentDownloaderImpl {
|
|
|
35
36
|
* @param deleteLocationUrl - The recording location url. Required.
|
|
36
37
|
*/
|
|
37
38
|
async deleteRecording(deleteLocationUrl, options) {
|
|
38
|
-
var _a, _b, _c;
|
|
39
39
|
const fileLocation = new URL(deleteLocationUrl);
|
|
40
40
|
const endpoint = new URL(this.client.endpoint);
|
|
41
41
|
const modifiedUrlForSigning = endpoint.origin + fileLocation.pathname;
|
|
@@ -44,12 +44,12 @@ class ContentDownloaderImpl {
|
|
|
44
44
|
method: "DELETE",
|
|
45
45
|
headers: (0, core_rest_pipeline_1.createHttpHeaders)(),
|
|
46
46
|
body: "",
|
|
47
|
-
abortSignal: options
|
|
48
|
-
tracingOptions: options
|
|
47
|
+
abortSignal: options?.abortSignal,
|
|
48
|
+
tracingOptions: options?.tracingOptions,
|
|
49
49
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
opt.headers?.set("OriginalUrl", deleteLocationUrl);
|
|
51
|
+
opt.headers?.set("x-ms-host", endpoint.host);
|
|
52
|
+
opt.headers?.set("accept", "application/json");
|
|
53
53
|
const req = (0, core_rest_pipeline_1.createPipelineRequest)(opt);
|
|
54
54
|
const results = await this.client.sendRequest(req);
|
|
55
55
|
if (results.status !== 200) {
|
|
@@ -66,7 +66,6 @@ class ContentDownloaderImpl {
|
|
|
66
66
|
* @param options - Additional request options contains downloadRecording options.
|
|
67
67
|
*/
|
|
68
68
|
async download(sourceLocationUrl, options) {
|
|
69
|
-
var _a, _b, _c, _d;
|
|
70
69
|
const fileLocation = new URL(sourceLocationUrl);
|
|
71
70
|
const endpoint = new URL(this.client.endpoint);
|
|
72
71
|
const modifiedUrlForSigning = endpoint.origin + fileLocation.pathname;
|
|
@@ -77,7 +76,7 @@ class ContentDownloaderImpl {
|
|
|
77
76
|
body: "",
|
|
78
77
|
streamResponseStatusCodes: new Set([200, 206]),
|
|
79
78
|
abortSignal: options.abortSignal,
|
|
80
|
-
tracingOptions: options
|
|
79
|
+
tracingOptions: options?.tracingOptions,
|
|
81
80
|
};
|
|
82
81
|
if (options.length && !options.offset) {
|
|
83
82
|
throw Error("Download offset value must not be empty if length is set.");
|
|
@@ -88,10 +87,10 @@ class ContentDownloaderImpl {
|
|
|
88
87
|
let rangeHeader = "bytes=" + options.offset;
|
|
89
88
|
if (options.length)
|
|
90
89
|
rangeHeader += "-" + options.length;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
90
|
+
opt.headers?.set("OriginalUrl", sourceLocationUrl);
|
|
91
|
+
opt.headers?.set("x-ms-host", endpoint.host);
|
|
92
|
+
opt.headers?.set("accept", "application/json");
|
|
93
|
+
opt.headers?.set("Range", rangeHeader);
|
|
95
94
|
const req = (0, core_rest_pipeline_1.createPipelineRequest)(opt);
|
|
96
95
|
const results = await this.client.sendRequest(req);
|
|
97
96
|
if (results.status !== 200 && results.status !== 206) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentDownloader.js","sourceRoot":"","sources":["../../src/contentDownloader.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAUlC,kEAAqF;AAGrF,sDAAsD;AACtD,MAAa,qBAAqB;
|
|
1
|
+
{"version":3,"file":"contentDownloader.js","sourceRoot":"","sources":["../../src/contentDownloader.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { CallAutomationApiClient } from \"./generated/src/callAutomationApiClient.js\";\nimport type {\n AddPipelineOptions,\n PipelineRequest,\n PipelineRequestOptions,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { createHttpHeaders, createPipelineRequest } from \"@azure/core-rest-pipeline\";\nimport type { DeleteRecordingOptions, DownloadRecordingOptions } from \"./models/options.js\";\n\n/** Class containing ContentDownloading operations. */\nexport class ContentDownloaderImpl {\n private readonly client: CallAutomationApiClient;\n\n /**\n * Initialize a new instance of the class ContentDownloader class.\n * @param client - Reference to the service client\n */\n constructor(client: CallAutomationApiClient) {\n this.client = client;\n this.addCustomSignUrlPolicy();\n }\n\n private addCustomSignUrlPolicy(): void {\n const signUrlPolicy = {\n name: \"CustomSignUrlPolicy\",\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n if (request.headers.has(\"OriginalUrl\")) {\n request.url = `${request.headers.get(\"OriginalUrl\")}`;\n const originalRequest = new URL(request.url);\n request.headers.set(\"Host\", originalRequest.host);\n }\n return next(request);\n },\n };\n\n const pipelineOptions: AddPipelineOptions = {};\n pipelineOptions.afterPhase = \"Sign\";\n this.client.pipeline.addPolicy(signUrlPolicy, pipelineOptions);\n }\n\n /**\n * Deletes a recording.\n * @param deleteLocationUrl - The recording location url. Required.\n */\n async deleteRecording(deleteLocationUrl: string, options: DeleteRecordingOptions): Promise<void> {\n const fileLocation = new URL(deleteLocationUrl);\n const endpoint = new URL(this.client.endpoint);\n const modifiedUrlForSigning = endpoint.origin + fileLocation.pathname;\n\n const opt: PipelineRequestOptions = {\n url: modifiedUrlForSigning,\n method: \"DELETE\",\n headers: createHttpHeaders(),\n body: \"\",\n abortSignal: options?.abortSignal,\n tracingOptions: options?.tracingOptions,\n };\n\n opt.headers?.set(\"OriginalUrl\", deleteLocationUrl);\n opt.headers?.set(\"x-ms-host\", endpoint.host);\n opt.headers?.set(\"accept\", \"application/json\");\n\n const req = createPipelineRequest(opt);\n\n const results = await this.client.sendRequest(req);\n\n if (results.status !== 200) {\n if (results.bodyAsText) {\n const jsonBody = JSON.parse(results.bodyAsText);\n throw { status: jsonBody.status, message: jsonBody.message };\n }\n throw { status: results.status };\n }\n }\n\n /**\n * Returns a stream with a call recording.\n * @param sourceLocationUrl - The source location url. Required.\n * @param options - Additional request options contains downloadRecording options.\n */\n async download(\n sourceLocationUrl: string,\n options: DownloadRecordingOptions,\n ): Promise<PipelineResponse> {\n const fileLocation = new URL(sourceLocationUrl);\n const endpoint = new URL(this.client.endpoint);\n const modifiedUrlForSigning = endpoint.origin + fileLocation.pathname;\n\n const opt: PipelineRequestOptions = {\n url: modifiedUrlForSigning,\n method: \"GET\",\n headers: createHttpHeaders(),\n body: \"\",\n streamResponseStatusCodes: new Set([200, 206]),\n abortSignal: options.abortSignal,\n tracingOptions: options?.tracingOptions,\n };\n\n if (options.length && !options.offset) {\n throw Error(\"Download offset value must not be empty if length is set.\");\n } else if (options.length && options.offset) {\n options.length = options.offset + options.length - 1;\n }\n\n let rangeHeader = \"bytes=\" + options.offset;\n if (options.length) rangeHeader += \"-\" + options.length;\n\n opt.headers?.set(\"OriginalUrl\", sourceLocationUrl);\n opt.headers?.set(\"x-ms-host\", endpoint.host);\n opt.headers?.set(\"accept\", \"application/json\");\n opt.headers?.set(\"Range\", rangeHeader);\n\n const req = createPipelineRequest(opt);\n\n const results = await this.client.sendRequest(req);\n\n if (results.status !== 200 && results.status !== 206) {\n if (results.bodyAsText) {\n const jsonBody = JSON.parse(results.bodyAsText);\n throw { status: jsonBody.status, message: jsonBody.message };\n }\n throw { status: results.status };\n }\n return results;\n }\n}\n"]}
|
|
@@ -16,10 +16,9 @@ function createCallAutomationAccessKeyCredentialPolicy(credential, acsUrl) {
|
|
|
16
16
|
return {
|
|
17
17
|
name: callAutomationAccessKeyCredentialPolicy,
|
|
18
18
|
async sendRequest(request, next) {
|
|
19
|
-
var _a;
|
|
20
19
|
const verb = request.method.toUpperCase();
|
|
21
20
|
const utcNow = new Date().toUTCString();
|
|
22
|
-
const contentHash = await (0, cryptoUtils_js_1.shaHash)(
|
|
21
|
+
const contentHash = await (0, cryptoUtils_js_1.shaHash)(request.body?.toString() || "");
|
|
23
22
|
const dateHeader = "x-ms-date";
|
|
24
23
|
const signedHeaders = `${dateHeader};host;x-ms-content-sha256`;
|
|
25
24
|
const acsUrlCast = new URL(acsUrl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callAutomationAccessKeyCredentialPolicy.js","sourceRoot":"","sources":["../../../src/credential/callAutomationAccessKeyCredentialPolicy.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAoBlC,sGAoCC;AA/CD,qDAAoD;AACpD,gDAA0C;AAE1C,MAAM,uCAAuC,GAAG,yCAAyC,CAAC;AAE1F;;;;;GAKG;AACH,SAAgB,6CAA6C,CAC3D,UAAyB,EACzB,MAAc;IAEd,OAAO;QACL,IAAI,EAAE,uCAAuC;QAC7C,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,IAAiB
|
|
1
|
+
{"version":3,"file":"callAutomationAccessKeyCredentialPolicy.js","sourceRoot":"","sources":["../../../src/credential/callAutomationAccessKeyCredentialPolicy.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAoBlC,sGAoCC;AA/CD,qDAAoD;AACpD,gDAA0C;AAE1C,MAAM,uCAAuC,GAAG,yCAAyC,CAAC;AAE1F;;;;;GAKG;AACH,SAAgB,6CAA6C,CAC3D,UAAyB,EACzB,MAAc;IAEd,OAAO;QACL,IAAI,EAAE,uCAAuC;QAC7C,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,IAAiB;YAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAO,EAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,WAAW,CAAC;YAC/B,MAAM,aAAa,GAAG,GAAG,UAAU,2BAA2B,CAAC;YAE/D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YACnC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1C,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;YAE1E,MAAM,YAAY,GAAG,GAAG,IAAI,KAAK,eAAe,KAAK,MAAM,IAAI,UAAU,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;YAChG,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAO,EAAC,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAE9D,IAAI,kBAAM,EAAE,CAAC;gBACX,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;YACxD,OAAO,CAAC,OAAO,CAAC,GAAG,CACjB,eAAe,EACf,6BAA6B,aAAa,cAAc,SAAS,EAAE,CACpE,CAAC;YACF,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport type { KeyCredential } from \"@azure/core-auth\";\nimport { shaHMAC, shaHash } from \"./cryptoUtils.js\";\nimport { isNode } from \"@azure/core-util\";\n\nconst callAutomationAccessKeyCredentialPolicy = \"CallAutomationAccessKeyCredentialPolicy\";\n\n/**\n * Creates an HTTP pipeline policy to authenticate a request using a `KeyCredential`.\n * @hidden\n *\n * @param credential - The key credential.\n */\nexport function createCallAutomationAccessKeyCredentialPolicy(\n credential: KeyCredential,\n acsUrl: string,\n): PipelinePolicy {\n return {\n name: callAutomationAccessKeyCredentialPolicy,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const verb = request.method.toUpperCase();\n const utcNow = new Date().toUTCString();\n const contentHash = await shaHash(request.body?.toString() || \"\");\n const dateHeader = \"x-ms-date\";\n const signedHeaders = `${dateHeader};host;x-ms-content-sha256`;\n\n const acsUrlCast = new URL(acsUrl);\n request.headers.set(\"x-ms-host\", acsUrlCast.host);\n\n const url = new URL(request.url);\n const query = url.searchParams.toString();\n const urlPathAndQuery = query ? `${url.pathname}?${query}` : url.pathname;\n\n const stringToSign = `${verb}\\n${urlPathAndQuery}\\n${utcNow};${acsUrlCast.host};${contentHash}`;\n const signature = await shaHMAC(credential.key, stringToSign);\n\n if (isNode) {\n request.headers.set(\"Host\", url.host || \"\");\n }\n\n request.headers.set(dateHeader, utcNow);\n request.headers.set(\"x-ms-content-sha256\", contentHash);\n request.headers.set(\n \"Authorization\",\n `HMAC-SHA256 SignedHeaders=${signedHeaders}&Signature=${signature}`,\n );\n return next(request);\n },\n };\n}\n"]}
|
|
@@ -41,7 +41,7 @@ function createCustomCallAutomationApiClient(credential, internalPipelineOptions
|
|
|
41
41
|
const customEnabled = process.env.COMMUNICATION_CUSTOM_ENDPOINT_ENABLED;
|
|
42
42
|
const customUrl = process.env.COMMUNICATION_CUSTOM_URL;
|
|
43
43
|
let callAutomationApiClient;
|
|
44
|
-
if (
|
|
44
|
+
if (customEnabled?.toLowerCase() === "true" && customUrl) {
|
|
45
45
|
// add custom header for Call Automation auth when flag is true
|
|
46
46
|
callAutomationApiClient = new index_js_1.CallAutomationApiClient(customUrl, internalPipelineOptions);
|
|
47
47
|
const callAutomationAuthPolicy = createCallAutomationAuthPolicy(credential, url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callAutomationAuthPolicy.js","sourceRoot":"","sources":["../../../src/credential/callAutomationAuthPolicy.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAoBlC,wEAaC;AAUD,kFAqBC;AA1DD,kEAA4E;AAE5E,gDAAqD;AACrD,6GAA6G;AAE7G,0DAAsE;AACtE,sEAA4E;AAC5E;;;;;;GAMG;AACH,SAAgB,8BAA8B,CAC5C,UAA2C,EAC3C,MAAc;IAEd,IAAI,IAAA,6BAAiB,EAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,aAAa,GAA2C;YAC5D,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,CAAC,2CAA2C,CAAC;SACtD,CAAC;QACF,OAAO,IAAA,oDAA+B,EAAC,aAAa,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,OAAO,IAAA,0FAA6C,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,mCAAmC,CACjD,UAA2C,EAC3C,uBAA0E,EAC1E,GAAW;IAEX,oDAAoD;IACpD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC;IACxE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACvD,IAAI,uBAAgD,CAAC;IAErD,IAAI,
|
|
1
|
+
{"version":3,"file":"callAutomationAuthPolicy.js","sourceRoot":"","sources":["../../../src/credential/callAutomationAuthPolicy.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAoBlC,wEAaC;AAUD,kFAqBC;AA1DD,kEAA4E;AAE5E,gDAAqD;AACrD,6GAA6G;AAE7G,0DAAsE;AACtE,sEAA4E;AAC5E;;;;;;GAMG;AACH,SAAgB,8BAA8B,CAC5C,UAA2C,EAC3C,MAAc;IAEd,IAAI,IAAA,6BAAiB,EAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,aAAa,GAA2C;YAC5D,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,CAAC,2CAA2C,CAAC;SACtD,CAAC;QACF,OAAO,IAAA,oDAA+B,EAAC,aAAa,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,OAAO,IAAA,0FAA6C,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,mCAAmC,CACjD,UAA2C,EAC3C,uBAA0E,EAC1E,GAAW;IAEX,oDAAoD;IACpD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC;IACxE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACvD,IAAI,uBAAgD,CAAC;IAErD,IAAI,aAAa,EAAE,WAAW,EAAE,KAAK,MAAM,IAAI,SAAS,EAAE,CAAC;QACzD,+DAA+D;QAC/D,uBAAuB,GAAG,IAAI,kCAAuB,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC1F,MAAM,wBAAwB,GAAG,8BAA8B,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACjF,uBAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,uBAAuB,GAAG,IAAI,kCAAuB,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,IAAA,oDAA6B,EAAC,UAAU,CAAC,CAAC;QAC7D,uBAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n BearerTokenAuthenticationPolicyOptions,\n PipelinePolicy,\n} from \"@azure/core-rest-pipeline\";\nimport { bearerTokenAuthenticationPolicy } from \"@azure/core-rest-pipeline\";\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport { createCallAutomationAccessKeyCredentialPolicy } from \"./callAutomationAccessKeyCredentialPolicy.js\";\nimport type { CallAutomationApiClientOptionalParams } from \"./../generated/src/index.js\";\nimport { CallAutomationApiClient } from \"./../generated/src/index.js\";\nimport { createCommunicationAuthPolicy } from \"@azure/communication-common\";\n/**\n * Creates a pipeline policy to authenticate request based\n * on the credential passed in.\n * @hidden\n *\n * @param credential - The KeyCredential or TokenCredential.\n */\nexport function createCallAutomationAuthPolicy(\n credential: KeyCredential | TokenCredential,\n acsUrl: string,\n): PipelinePolicy {\n if (isTokenCredential(credential)) {\n const policyOptions: BearerTokenAuthenticationPolicyOptions = {\n credential: credential,\n scopes: [\"https://communication.azure.com//.default\"],\n };\n return bearerTokenAuthenticationPolicy(policyOptions);\n } else {\n return createCallAutomationAccessKeyCredentialPolicy(credential, acsUrl);\n }\n}\n\n/**\n * Creates CallAutomationApiClient for custom endpoint\n * @hidden\n *\n * @param credential - The KeyCredential or TokenCredential.\n * @param internalPipelineOptions - CallAutomationApiClientOptionalParams if provided.\n * @param url - ACS url.\n */\nexport function createCustomCallAutomationApiClient(\n credential: KeyCredential | TokenCredential,\n internalPipelineOptions: CallAutomationApiClientOptionalParams | undefined,\n url: string,\n): CallAutomationApiClient {\n // read environment variable for callAutomation auth\n const customEnabled = process.env.COMMUNICATION_CUSTOM_ENDPOINT_ENABLED;\n const customUrl = process.env.COMMUNICATION_CUSTOM_URL;\n let callAutomationApiClient: CallAutomationApiClient;\n\n if (customEnabled?.toLowerCase() === \"true\" && customUrl) {\n // add custom header for Call Automation auth when flag is true\n callAutomationApiClient = new CallAutomationApiClient(customUrl, internalPipelineOptions);\n const callAutomationAuthPolicy = createCallAutomationAuthPolicy(credential, url);\n callAutomationApiClient.pipeline.addPolicy(callAutomationAuthPolicy);\n } else {\n callAutomationApiClient = new CallAutomationApiClient(url, internalPipelineOptions);\n const authPolicy = createCommunicationAuthPolicy(credential);\n callAutomationApiClient.pipeline.addPolicy(authPolicy);\n }\n return callAutomationApiClient;\n}\n"]}
|
|
@@ -14,13 +14,14 @@ const index_js_1 = require("./operations/index.js");
|
|
|
14
14
|
const Parameters = tslib_1.__importStar(require("./models/parameters.js"));
|
|
15
15
|
const Mappers = tslib_1.__importStar(require("./models/mappers.js"));
|
|
16
16
|
class CallAutomationApiClient extends coreClient.ServiceClient {
|
|
17
|
+
endpoint;
|
|
18
|
+
apiVersion;
|
|
17
19
|
/**
|
|
18
20
|
* Initializes a new instance of the CallAutomationApiClient class.
|
|
19
21
|
* @param endpoint The endpoint of the Azure Communication resource.
|
|
20
22
|
* @param options The parameter options
|
|
21
23
|
*/
|
|
22
24
|
constructor(endpoint, options) {
|
|
23
|
-
var _a, _b;
|
|
24
25
|
if (endpoint === undefined) {
|
|
25
26
|
throw new Error("'endpoint' cannot be null");
|
|
26
27
|
}
|
|
@@ -31,18 +32,23 @@ class CallAutomationApiClient extends coreClient.ServiceClient {
|
|
|
31
32
|
const defaults = {
|
|
32
33
|
requestContentType: "application/json; charset=utf-8",
|
|
33
34
|
};
|
|
34
|
-
const packageDetails = `azsdk-js-communication-call-automation/1.5.0
|
|
35
|
+
const packageDetails = `azsdk-js-communication-call-automation/1.5.0`;
|
|
35
36
|
const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
|
|
36
37
|
? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`
|
|
37
38
|
: `${packageDetails}`;
|
|
38
|
-
const optionsWithDefaults =
|
|
39
|
+
const optionsWithDefaults = {
|
|
40
|
+
...defaults,
|
|
41
|
+
...options,
|
|
42
|
+
userAgentOptions: {
|
|
39
43
|
userAgentPrefix,
|
|
40
|
-
},
|
|
44
|
+
},
|
|
45
|
+
endpoint: options.endpoint ?? options.baseUri ?? "{endpoint}",
|
|
46
|
+
};
|
|
41
47
|
super(optionsWithDefaults);
|
|
42
48
|
// Parameter assignments
|
|
43
49
|
this.endpoint = endpoint;
|
|
44
50
|
// Assigning values to Constant parameters
|
|
45
|
-
this.apiVersion = options.apiVersion || "2025-
|
|
51
|
+
this.apiVersion = options.apiVersion || "2025-06-15";
|
|
46
52
|
this.callConnection = new index_js_1.CallConnectionImpl(this);
|
|
47
53
|
this.callMedia = new index_js_1.CallMediaImpl(this);
|
|
48
54
|
this.callRecording = new index_js_1.CallRecordingImpl(this);
|
|
@@ -113,6 +119,9 @@ class CallAutomationApiClient extends coreClient.ServiceClient {
|
|
|
113
119
|
connect(connectRequest, options) {
|
|
114
120
|
return this.sendOperationRequest({ connectRequest, options }, connectOperationSpec);
|
|
115
121
|
}
|
|
122
|
+
callConnection;
|
|
123
|
+
callMedia;
|
|
124
|
+
callRecording;
|
|
116
125
|
}
|
|
117
126
|
exports.CallAutomationApiClient = CallAutomationApiClient;
|
|
118
127
|
// Operation Specifications
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callAutomationApiClient.js","sourceRoot":"","sources":["../../../../src/generated/src/callAutomationApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport {\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport {\n CallConnectionImpl,\n CallMediaImpl,\n CallRecordingImpl,\n} from \"./operations/index.js\";\nimport {\n CallConnection,\n CallMedia,\n CallRecording,\n} from \"./operationsInterfaces/index.js\";\nimport * as Parameters from \"./models/parameters.js\";\nimport * as Mappers from \"./models/mappers.js\";\nimport {\n CallAutomationApiClientOptionalParams,\n CreateCallRequest,\n CreateCallOptionalParams,\n CreateCallResponse,\n AnswerCallRequest,\n AnswerCallOptionalParams,\n AnswerCallResponse,\n RedirectCallRequest,\n RedirectCallOptionalParams,\n RejectCallRequest,\n RejectCallOptionalParams,\n ConnectRequest,\n ConnectOptionalParams,\n ConnectResponse,\n} from \"./models/index.js\";\n\nexport class CallAutomationApiClient extends coreClient.ServiceClient {\n endpoint: string;\n apiVersion: string;\n\n /**\n * Initializes a new instance of the CallAutomationApiClient class.\n * @param endpoint The endpoint of the Azure Communication resource.\n * @param options The parameter options\n */\n constructor(\n endpoint: string,\n options?: CallAutomationApiClientOptionalParams,\n ) {\n if (endpoint === undefined) {\n throw new Error(\"'endpoint' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: CallAutomationApiClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\",\n };\n\n const packageDetails = `azsdk-js-communication-call-automation/1.5.0-beta.2`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix,\n },\n endpoint: options.endpoint ?? options.baseUri ?? \"{endpoint}\",\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.endpoint = endpoint;\n\n // Assigning values to Constant parameters\n this.apiVersion = options.apiVersion || \"2025-03-30-preview\";\n this.callConnection = new CallConnectionImpl(this);\n this.callMedia = new CallMediaImpl(this);\n this.callRecording = new CallRecordingImpl(this);\n this.addCustomApiVersionPolicy(options.apiVersion);\n }\n\n /** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */\n private addCustomApiVersionPolicy(apiVersion?: string) {\n if (!apiVersion) {\n return;\n }\n const apiVersionPolicy = {\n name: \"CustomApiVersionPolicy\",\n async sendRequest(\n request: PipelineRequest,\n next: SendRequest,\n ): Promise<PipelineResponse> {\n const param = request.url.split(\"?\");\n if (param.length > 1) {\n const newParams = param[1].split(\"&\").map((item) => {\n if (item.indexOf(\"api-version\") > -1) {\n return \"api-version=\" + apiVersion;\n } else {\n return item;\n }\n });\n request.url = param[0] + \"?\" + newParams.join(\"&\");\n }\n return next(request);\n },\n };\n this.pipeline.addPolicy(apiVersionPolicy);\n }\n\n /**\n * Create an outbound call.\n * @param createCallRequest The create call request.\n * @param options The options parameters.\n */\n createCall(\n createCallRequest: CreateCallRequest,\n options?: CreateCallOptionalParams,\n ): Promise<CreateCallResponse> {\n return this.sendOperationRequest(\n { createCallRequest, options },\n createCallOperationSpec,\n );\n }\n\n /**\n * Answer a call using the IncomingCallContext from Event Grid.\n * @param answerCallRequest The answer call request.\n * @param options The options parameters.\n */\n answerCall(\n answerCallRequest: AnswerCallRequest,\n options?: AnswerCallOptionalParams,\n ): Promise<AnswerCallResponse> {\n return this.sendOperationRequest(\n { answerCallRequest, options },\n answerCallOperationSpec,\n );\n }\n\n /**\n * Redirect a call.\n * @param redirectCallRequest The redirect call request.\n * @param options The options parameters.\n */\n redirectCall(\n redirectCallRequest: RedirectCallRequest,\n options?: RedirectCallOptionalParams,\n ): Promise<void> {\n return this.sendOperationRequest(\n { redirectCallRequest, options },\n redirectCallOperationSpec,\n );\n }\n\n /**\n * Reject the call.\n * @param rejectCallRequest The reject call request.\n * @param options The options parameters.\n */\n rejectCall(\n rejectCallRequest: RejectCallRequest,\n options?: RejectCallOptionalParams,\n ): Promise<void> {\n return this.sendOperationRequest(\n { rejectCallRequest, options },\n rejectCallOperationSpec,\n );\n }\n\n /**\n * Create a connection to a CallLocator.\n * @param connectRequest The create connection request.\n * @param options The options parameters.\n */\n connect(\n connectRequest: ConnectRequest,\n options?: ConnectOptionalParams,\n ): Promise<ConnectResponse> {\n return this.sendOperationRequest(\n { connectRequest, options },\n connectOperationSpec,\n );\n }\n\n callConnection: CallConnection;\n callMedia: CallMedia;\n callRecording: CallRecording;\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst createCallOperationSpec: coreClient.OperationSpec = {\n path: \"/calling/callConnections\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: Mappers.CallConnectionPropertiesInternal,\n },\n default: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n },\n },\n requestBody: Parameters.createCallRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.repeatabilityRequestID,\n Parameters.repeatabilityFirstSent,\n ],\n mediaType: \"json\",\n serializer,\n};\nconst answerCallOperationSpec: coreClient.OperationSpec = {\n path: \"/calling/callConnections:answer\",\n httpMethod: \"POST\",\n responses: {\n 200: {\n bodyMapper: Mappers.CallConnectionPropertiesInternal,\n },\n default: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n },\n },\n requestBody: Parameters.answerCallRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.repeatabilityRequestID,\n Parameters.repeatabilityFirstSent,\n ],\n mediaType: \"json\",\n serializer,\n};\nconst redirectCallOperationSpec: coreClient.OperationSpec = {\n path: \"/calling/callConnections:redirect\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n },\n },\n requestBody: Parameters.redirectCallRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.repeatabilityRequestID,\n Parameters.repeatabilityFirstSent,\n ],\n mediaType: \"json\",\n serializer,\n};\nconst rejectCallOperationSpec: coreClient.OperationSpec = {\n path: \"/calling/callConnections:reject\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n },\n },\n requestBody: Parameters.rejectCallRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.repeatabilityRequestID,\n Parameters.repeatabilityFirstSent,\n ],\n mediaType: \"json\",\n serializer,\n};\nconst connectOperationSpec: coreClient.OperationSpec = {\n path: \"/calling/callConnections:connect\",\n httpMethod: \"POST\",\n responses: {\n 200: {\n bodyMapper: Mappers.CallConnectionPropertiesInternal,\n },\n default: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n },\n },\n requestBody: Parameters.connectRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.repeatabilityRequestID,\n Parameters.repeatabilityFirstSent,\n ],\n mediaType: \"json\",\n serializer,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"callAutomationApiClient.js","sourceRoot":"","sources":["../../../../src/generated/src/callAutomationApiClient.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport {\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport {\n CallConnectionImpl,\n CallMediaImpl,\n CallRecordingImpl,\n} from \"./operations/index.js\";\nimport {\n CallConnection,\n CallMedia,\n CallRecording,\n} from \"./operationsInterfaces/index.js\";\nimport * as Parameters from \"./models/parameters.js\";\nimport * as Mappers from \"./models/mappers.js\";\nimport {\n CallAutomationApiClientOptionalParams,\n CreateCallRequest,\n CreateCallOptionalParams,\n CreateCallResponse,\n AnswerCallRequest,\n AnswerCallOptionalParams,\n AnswerCallResponse,\n RedirectCallRequest,\n RedirectCallOptionalParams,\n RejectCallRequest,\n RejectCallOptionalParams,\n ConnectRequest,\n ConnectOptionalParams,\n ConnectResponse,\n} from \"./models/index.js\";\n\nexport class CallAutomationApiClient extends coreClient.ServiceClient {\n endpoint: string;\n apiVersion: string;\n\n /**\n * Initializes a new instance of the CallAutomationApiClient class.\n * @param endpoint The endpoint of the Azure Communication resource.\n * @param options The parameter options\n */\n constructor(\n endpoint: string,\n options?: CallAutomationApiClientOptionalParams,\n ) {\n if (endpoint === undefined) {\n throw new Error(\"'endpoint' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: CallAutomationApiClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\",\n };\n\n const packageDetails = `azsdk-js-communication-call-automation/1.5.0`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix,\n },\n endpoint: options.endpoint ?? options.baseUri ?? \"{endpoint}\",\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.endpoint = endpoint;\n\n // Assigning values to Constant parameters\n this.apiVersion = options.apiVersion || \"2025-06-15\";\n this.callConnection = new CallConnectionImpl(this);\n this.callMedia = new CallMediaImpl(this);\n this.callRecording = new CallRecordingImpl(this);\n this.addCustomApiVersionPolicy(options.apiVersion);\n }\n\n /** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */\n private addCustomApiVersionPolicy(apiVersion?: string) {\n if (!apiVersion) {\n return;\n }\n const apiVersionPolicy = {\n name: \"CustomApiVersionPolicy\",\n async sendRequest(\n request: PipelineRequest,\n next: SendRequest,\n ): Promise<PipelineResponse> {\n const param = request.url.split(\"?\");\n if (param.length > 1) {\n const newParams = param[1].split(\"&\").map((item) => {\n if (item.indexOf(\"api-version\") > -1) {\n return \"api-version=\" + apiVersion;\n } else {\n return item;\n }\n });\n request.url = param[0] + \"?\" + newParams.join(\"&\");\n }\n return next(request);\n },\n };\n this.pipeline.addPolicy(apiVersionPolicy);\n }\n\n /**\n * Create an outbound call.\n * @param createCallRequest The create call request.\n * @param options The options parameters.\n */\n createCall(\n createCallRequest: CreateCallRequest,\n options?: CreateCallOptionalParams,\n ): Promise<CreateCallResponse> {\n return this.sendOperationRequest(\n { createCallRequest, options },\n createCallOperationSpec,\n );\n }\n\n /**\n * Answer a call using the IncomingCallContext from Event Grid.\n * @param answerCallRequest The answer call request.\n * @param options The options parameters.\n */\n answerCall(\n answerCallRequest: AnswerCallRequest,\n options?: AnswerCallOptionalParams,\n ): Promise<AnswerCallResponse> {\n return this.sendOperationRequest(\n { answerCallRequest, options },\n answerCallOperationSpec,\n );\n }\n\n /**\n * Redirect a call.\n * @param redirectCallRequest The redirect call request.\n * @param options The options parameters.\n */\n redirectCall(\n redirectCallRequest: RedirectCallRequest,\n options?: RedirectCallOptionalParams,\n ): Promise<void> {\n return this.sendOperationRequest(\n { redirectCallRequest, options },\n redirectCallOperationSpec,\n );\n }\n\n /**\n * Reject the call.\n * @param rejectCallRequest The reject call request.\n * @param options The options parameters.\n */\n rejectCall(\n rejectCallRequest: RejectCallRequest,\n options?: RejectCallOptionalParams,\n ): Promise<void> {\n return this.sendOperationRequest(\n { rejectCallRequest, options },\n rejectCallOperationSpec,\n );\n }\n\n /**\n * Create a connection to a CallLocator.\n * @param connectRequest The create connection request.\n * @param options The options parameters.\n */\n connect(\n connectRequest: ConnectRequest,\n options?: ConnectOptionalParams,\n ): Promise<ConnectResponse> {\n return this.sendOperationRequest(\n { connectRequest, options },\n connectOperationSpec,\n );\n }\n\n callConnection: CallConnection;\n callMedia: CallMedia;\n callRecording: CallRecording;\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst createCallOperationSpec: coreClient.OperationSpec = {\n path: \"/calling/callConnections\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: Mappers.CallConnectionPropertiesInternal,\n },\n default: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n },\n },\n requestBody: Parameters.createCallRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.repeatabilityRequestID,\n Parameters.repeatabilityFirstSent,\n ],\n mediaType: \"json\",\n serializer,\n};\nconst answerCallOperationSpec: coreClient.OperationSpec = {\n path: \"/calling/callConnections:answer\",\n httpMethod: \"POST\",\n responses: {\n 200: {\n bodyMapper: Mappers.CallConnectionPropertiesInternal,\n },\n default: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n },\n },\n requestBody: Parameters.answerCallRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.repeatabilityRequestID,\n Parameters.repeatabilityFirstSent,\n ],\n mediaType: \"json\",\n serializer,\n};\nconst redirectCallOperationSpec: coreClient.OperationSpec = {\n path: \"/calling/callConnections:redirect\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n },\n },\n requestBody: Parameters.redirectCallRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.repeatabilityRequestID,\n Parameters.repeatabilityFirstSent,\n ],\n mediaType: \"json\",\n serializer,\n};\nconst rejectCallOperationSpec: coreClient.OperationSpec = {\n path: \"/calling/callConnections:reject\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n },\n },\n requestBody: Parameters.rejectCallRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.repeatabilityRequestID,\n Parameters.repeatabilityFirstSent,\n ],\n mediaType: \"json\",\n serializer,\n};\nconst connectOperationSpec: coreClient.OperationSpec = {\n path: \"/calling/callConnections:connect\",\n httpMethod: \"POST\",\n responses: {\n 200: {\n bodyMapper: Mappers.CallConnectionPropertiesInternal,\n },\n default: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n },\n },\n requestBody: Parameters.connectRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.contentType,\n Parameters.accept,\n Parameters.repeatabilityRequestID,\n Parameters.repeatabilityFirstSent,\n ],\n mediaType: \"json\",\n serializer,\n};\n"]}
|