UNPKG

@cognigy/rest-api-client

Version:

Cognigy REST-Client

148 lines 5.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handoverNode = void 0; /** Custom Modules */ const createNodeDescriptor_1 = require("../../../createNodeDescriptor"); /** Helper Modules */ const design_1 = require("../utils/design"); const transfer_mapper_1 = require("../../voice/mappers/transfer.mapper"); const utils_1 = require("./helper/utils"); exports.handoverNode = (0, createNodeDescriptor_1.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: design_1.nodeColor }, form: [ { type: "field", key: "handoverReason" }, { type: "field", key: "transferTarget" }, { type: "section", key: "advanced" } ], function: async ({ cognigy, config, nodeId }) => { 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") { await 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 ? (0, utils_1.buildPayloadAccm)("handover", transferParams, nodeId) : transfer_mapper_1.transfer.handleInput("audioCodes", transferParams); await api.say(null, { _cognigy: payload }); } catch (error) { throw new Error(`Error on hangup node. Error message: ${error.message}`); } } }); //# sourceMappingURL=handover.js.map