UNPKG

@cognigy/rest-api-client

Version:

Cognigy REST-Client

146 lines 5.18 kB
import { __awaiter } from "tslib"; /** Custom Modules */ import { createNodeDescriptor } from "../../../createNodeDescriptor"; /** Helper Modules */ import { nodeColor } from '../utils/design'; import { transfer } from "../../voice/mappers/transfer.mapper"; import { buildPayloadAccm } from "./helper/utils"; export const handoverNode = createNodeDescriptor({ type: "handover", defaultLabel: "Transfer", summary: "UI__NODE_EDITOR__HANDOVER__SUMMARY", fields: [ { key: "handoverReason", label: "UI__NODE_EDITOR__HANDOVER__FIELDS__HANDOVER_REASON__LABEL", type: "cognigyText", defaultValue: "Bot initiated handover", params: { required: true } }, { key: "transferTarget", label: "UI__NODE_EDITOR__HANDOVER__FIELDS__TRANSFER_TARGET__LABEL", type: "cognigyText", defaultValue: "tel:+49123456789", params: { required: true } }, { key: "transferReferredByURL", label: "UI__NODE_EDITOR__HANDOVER__FIELDS__TRANSFER_REFERRED_BY_URL__LABEL", type: "cognigyText", description: "UI__NODE_EDITOR__HANDOVER__FIELDS__TRANSFER_REFERRED_BY_URL__DESCRIPTION", defaultValue: "" }, { key: "useTransferSipHeaders", label: "UI__NODE_EDITOR__HANDOVER__FIELDS__USE_TRANSFER_SIP_HEADERS__LABEL", type: "toggle", description: "UI__NODE_EDITOR__HANDOVER__FIELDS__USE_TRANSFER_SIP_HEADERS__DESCRIPTION", defaultValue: false }, { key: "transferSipHeaders", label: "UI__NODE_EDITOR__HANDOVER__FIELDS__TRANSFER_SIP_HEADERS__LABEL", type: "json", description: "UI__NODE_EDITOR__HANDOVER__FIELDS__TRANSFER_SIP_HEADERS__DESCRIPTION", defaultValue: `[{ "name": "X-My-Header", "value": "my_value" }]`, condition: { key: "useTransferSipHeaders", value: true } }, { key: "transferNotifications", label: "UI__NODE_EDITOR__HANDOVER__FIELDS__TRANSFER_NOTIFICATIONS__LABEL", type: "toggle", description: "UI__NODE_EDITOR__HANDOVER__FIELDS__TRANSFER_NOTIFICATIONS__DESCRIPTION", defaultValue: false }, { key: "transferNotificationsHangupMS", label: "UI__NODE_EDITOR__HANDOVER__FIELDS__TRANSFER_NOTIFICATIONS_HANGUP_MS__LABEL", type: "number", description: "UI__NODE_EDITOR__HANDOVER__FIELDS__TRANSFER_NOTIFICATIONS_HANGUP_MS__DESCRIPTION", defaultValue: 5000, params: { min: 0, max: 60000, step: 500 }, condition: { key: "transferNotifications", value: true } }, ], sections: [ { key: "advanced", label: "UI__NODE_EDITOR__HANDOVER__SECTIONS__ADVANCED__LABEL", defaultCollapsed: true, fields: [ "transferNotifications", "transferNotificationsHangupMS", "transferReferredByURL", "useTransferSipHeaders", "transferSipHeaders", ] } ], preview: { key: "transferTarget", type: "text" }, appearance: { color: nodeColor }, form: [ { type: "field", key: "handoverReason" }, { type: "field", key: "transferTarget" }, { type: "section", key: "advanced" } ], function: ({ cognigy, config, nodeId }) => __awaiter(void 0, void 0, void 0, function* () { const { api, input } = cognigy; const { handoverReason, transferTarget, transferReferredByURL, useTransferSipHeaders, transferSipHeaders, transferNotifications, transferNotificationsHangupMS } = config; const transferParams = { transferReason: handoverReason, transferTarget, useTransferSipHeaders, transferSipHeaders, transferNotifications, transferNotificationsHangupMS, transferReferredByURL }; try { if (input.channel === "adminconsole") { yield api.say("Transferring a call is not supported in the Interaction Panel, please use the AudioCodes endpoint.", null); return; } const { isFeatureAccmEnabled } = api.getEndpointSettings(); const payload = isFeatureAccmEnabled ? buildPayloadAccm("handover", transferParams, nodeId) : transfer.handleInput("audioCodes", transferParams); yield api.say(null, { _cognigy: payload }); } catch (error) { throw new Error(`Error on hangup node. Error message: ${error.message}`); } }) }); //# sourceMappingURL=handover.js.map