Source: constants.js

/*
 * Copyright (c) 2021, salesforce.com, inc.
 * All rights reserved.
 * SPDX-License-Identifier: BSD-3-Clause
 * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
 */

export default {
    MESSAGE_TYPE: {
        // Framework Message Types
        SETUP_CONNECTOR: 'SETUP_CONNECTOR',
        CONNECTOR_READY: 'CONNECTOR_READY',
        LOG: 'LOG',
        TELEPHONY_EVENT_DISPATCHED: 'TELEPHONY_EVENT_DISPATCHED',
        SET_AGENT_STATUS: 'SET_AGENT_STATUS',
        GET_AGENT_STATUS: 'GET_AGENT_STATUS',
        LOGOUT: 'LOGOUT',
        MESSAGE: 'MESSAGE',
        DOWNLOAD_VENDOR_LOGS: 'DOWNLOAD_VENDOR_LOGS',
        AGENT_WORK_EVENT: 'AGENT_WORK_EVENT',

        // Telephony Message Types: sent from SFDC to Telephony Vendor
        VOICE: {
            ACCEPT_CALL: 'ACCEPT_CALL',
            DECLINE_CALL: 'DECLINE_CALL',
            END_CALL: 'END_CALL',
            MUTE: 'MUTE',
            UNMUTE: 'UNMUTE',
            HOLD: 'HOLD',
            RESUME: 'RESUME',
            DIAL: 'DIAL',
            SEND_DIGITS: 'SEND_DIGITS',
            GET_PHONE_CONTACTS: 'GET_PHONE_CONTACTS',
            SWAP_PARTICIPANTS: 'SWAP_PARTICIPANTS',
            ADD_PARTICIPANT: 'ADD_PARTICIPANT',
            CONFERENCE: 'CONFERENCE',
            PAUSE_RECORDING: 'PAUSE_RECORDING',
            RESUME_RECORDING: 'RESUME_RECORDING',
            SUPERVISE_CALL: 'SUPERVISE_CALL',
            SUPERVISOR_BARGE_IN : 'SUPERVISOR_BARGE_IN',
            SUPERVISOR_DISCONNECT: 'SUPERVISOR_DISCONNECT',
            SET_AGENT_CONFIG: 'SET_AGENT_CONFIG',
            GET_SIGNED_RECORDING_URL: 'GET_SIGNED_RECORDING_URL',
            WRAP_UP_CALL: 'WRAP_UP_CALL',
            AGENT_AVAILABLE: 'AGENT_AVAILABLE'
        }
    },
    EVENT_TYPE: {
        ERROR: 'ERROR',
        WARNING: 'WARNING',
        INFO: 'INFO',
        LOGIN_STARTED: 'LOGIN_STARTED',
        LOGIN_RESULT: 'LOGIN_RESULT', // info about timeout, error, success etc
        LOGOUT_RESULT: 'LOGOUT_RESULT',
        SHOW_LOGIN: 'SHOW_LOGIN',
        SET_AGENT_STATUS_RESULT: 'SET_AGENT_STATUS_RESULT',
        GET_AGENT_STATUS_RESULT: 'GET_AGENT_STATUS_RESULT',
        MESSAGE: 'MESSAGE',
        SET_AGENT_STATUS: 'SET_AGENT_STATUS',
        GET_AGENT_STATUS: 'GET_AGENT_STATUS',
        STATE_CHANGE: 'STATE_CHANGE',
        REMOTE_CONTROLLER: 'REMOTE_CONTROLLER',
        SHOW_STORAGE_ACCESS: 'SHOW_STORAGE_ACCESS',
        STORAGE_ACCESS_RESULT: 'STORAGE_ACCESS_RESULT',
        VOICE: {
            QUEUED_CALL_STARTED: 'QUEUED_CALL_STARTED',
            CALL_STARTED: 'CALL_STARTED',
            CALL_CONNECTED: 'CALL_CONNECTED',
            CALL_FAILED: 'CALL_FAILED',
            MUTE_TOGGLE: 'MUTE_TOGGLE',
            HOLD_TOGGLE: 'HOLD_TOGGLE',
            PHONE_CONTACTS: 'PHONE_CONTACTS',
            PARTICIPANT_ADDED: 'PARTICIPANT_ADDED',
            PARTICIPANT_CONNECTED: 'PARTICIPANT_CONNECTED',
            PARTICIPANT_REMOVED: 'PARTICIPANT_REMOVED',
            RECORDING_TOGGLE: 'RECORDING_TOGGLE',
            PARTICIPANTS_SWAPPED: 'PARTICIPANTS_SWAPPED',
            PARTICIPANTS_CONFERENCED: 'PARTICIPANTS_CONFERENCED',
            SIGNED_RECORDING_URL: 'SIGNED_RECORDING_URL',
            UPDATE_AUDIO_STATS: 'UPDATE_AUDIO_STATS',
            UPDATE_AUDIO_STATS_COMPLETED: 'UPDATE_AUDIO_STATS_COMPLETED',
            SUPERVISOR_BARGED_IN: 'SUPERVISOR_BARGED_IN',
            SUPERVISOR_CALL_STARTED : 'SUPERVISOR_CALL_STARTED',
            SUPERVISOR_CALL_CONNECTED: 'SUPERVISOR_CALL_CONNECTED',
            SUPERVISOR_HANGUP : 'SUPERVISOR_HANGUP',
            CALL_BARGED_IN : 'CALL_BARGED_IN',
            WRAP_UP_ENDED: 'WRAP_UP_ENDED',
            AFTER_CALL_WORK_STARTED: 'AFTER_CALL_WORK_STARTED',
            AGENT_CONFIG_UPDATED: 'AGENT_CONFIG_UPDATED',
            AGENT_ERROR: 'AGENT_ERROR',
            HANGUP: 'HANGUP',
            SOFTPHONE_ERROR: 'SOFTPHONE_ERROR',
            SHOW_TRANSFER_VIEW: 'SHOW_TRANSFER_VIEW'
        }
    },
    INFO_TYPE: {
        VOICE: {
            CAN_NOT_ACCEPT_THE_CALL: 'CAN_NOT_ACCEPT_THE_CALL'
        }
    },
    ERROR_TYPE: {
        VOICE: {
            CAN_NOT_DECLINE_THE_CALL: 'CAN_NOT_DECLINE_THE_CALL',
            CAN_NOT_END_THE_CALL: 'CAN_NOT_END_THE_CALL',
            CAN_NOT_HOLD_CALL: 'CAN_NOT_HOLD_CALL',
            CAN_NOT_RESUME_CALL: 'CAN_NOT_RESUME_CALL',
            CAN_NOT_MUTE_CALL: 'CAN_NOT_MUTE_CALL',
            CAN_NOT_UNMUTE_CALL: 'CAN_NOT_UNMUTE_CALL',
            CAN_NOT_TOGGLE_MUTE: 'CAN_NOT_TOGGLE_MUTE',
            CAN_NOT_TOGGLE_HOLD: 'CAN_NOT_TOGGLE_HOLD',
            CAN_NOT_TOGGLE_RECORD: 'CAN_NOT_TOGGLE_RECORD',
            INVALID_PARTICIPANT: 'INVALID_PARTICIPANT',
            INVALID_PARAMS: 'INVALID_PARAMS',
            CAN_NOT_GET_PHONE_CONTACTS: 'CAN_NOT_GET_PHONE_CONTACTS',
            CAN_NOT_SWAP_PARTICIPANTS: 'CAN_NOT_SWAP_PARTICIPANTS',
            CAN_NOT_CONFERENCE: 'CAN_NOT_CONFERENCE',
            INVALID_DESTINATION: 'INVALID_DESTINATION',
            INVALID_PHONE_NUMBER: 'INVALID_PHONE_NUMBER',
            CAN_NOT_HANGUP_PARTICIPANT: 'CAN_NOT_HANGUP_PARTICIPANT',
            CAN_NOT_ADD_PARTICIPANT: 'CAN_NOT_ADD_PARTICIPANT',
            CAN_NOT_CONNECT_PARTICIPANT: 'CAN_NOT_CONNECT_PARTICIPANT',
            CAN_NOT_START_THE_CALL: 'CAN_NOT_START_THE_CALL',
            CAN_NOT_PAUSE_RECORDING: 'CAN_NOT_PAUSE_RECORDING',
            CAN_NOT_RESUME_RECORDING: 'CAN_NOT_RESUME_RECORDING',
            CAN_NOT_SET_AGENT_CONFIG: 'CAN_NOT_SET_AGENT_CONFIG',
            CAN_NOT_SET_CAPABILITIES: 'CAN_NOT_SET_CAPABILITIES',
            CAN_NOT_UPDATE_PHONE_NUMBER: 'CAN_NOT_UPDATE_PHONE_NUMBER',
            CAN_NOT_GET_SIGNED_RECORDING_URL: 'CAN_NOT_GET_SIGNED_RECORDING_URL',
            CAN_NOT_SUPERVISE_CALL : 'CAN_NOT_SUPERVISE_CALL',
            CAN_NOT_DISCONNECT_SUPERVISOR : 'CAN_NOT_DISCONNECT_SUPERVISOR',
            CAN_NOT_BARGE_IN_SUPERVISOR: 'CAN_NOT_BARGE_IN_SUPERVISOR',
            CAN_NOT_BARGE_IN_CALL: 'CAN_NOT_BARGE_IN_CALL',
            AGENT_ERROR: 'AGENT_ERROR',
            MICROPHONE_NOT_SHARED: 'MICROPHONE_NOT_SHARED',
            UNSUPPORTED_BROWSER: 'UNSUPPORTED_BROWSER'
        },
        CUSTOM_ERROR: 'CUSTOM_ERROR',
        GENERIC_ERROR: 'GENERIC_ERROR',
        AUTHENTICATION_ERROR: 'AUTHENTICATION_ERROR',
        INVALID_AGENT_STATUS: 'INVALID_AGENT_STATUS',
        CAN_NOT_GET_AGENT_STATUS: 'CAN_NOT_GET_AGENT_STATUS',
        CAN_NOT_SET_AGENT_STATUS: 'CAN_NOT_SET_AGENT_STATUS',
        LOGIN_REQUIRED: 'LOGIN_REQUIRED',
        CAN_NOT_LOG_IN: 'CAN_NOT_LOG_IN',
        CAN_NOT_LOG_OUT: 'CAN_NOT_LOG_OUT',
        INVALID_STATE_CHANGE_RESULT: 'INVALID_STATE_CHANGE_RESULT',
        INVALID_STORAGE_ACCESS_RESULT: 'INVALID_STORAGE_ACCESS_RESULT'
    },
    AGENT_STATUS: {
        ONLINE: 'Online',
        OFFLINE: 'Offline',
        ACW : 'AfterCallWork',
        CALLBACK_MISSED_OR_REJECTED: 'CallbackMissedOrRejected' // Used only for Amazon; workaround for https://github.com/amazon-connect/amazon-connect-streams/issues/344
    },
    PARTICIPANT_TYPE: {
        AGENT: 'Agent',
        INITIAL_CALLER: 'Initial_Caller',
        THIRD_PARTY: 'Third_Party',
        SUPERVISOR: 'Supervisor'
    },
    CALL_TYPE: {
        INBOUND: 'Inbound',
        OUTBOUND: 'Outbound',
        CALLBACK: 'Callback',
        ADD_PARTICIPANT: 'AddParticipant',
        TRANSFER:'Transfer',
        INTERNAL_CALL: 'InternalCall',
        DIALED_CALLBACK: 'DialedCallback'
    },
    DIALER_TYPE: {
        OUTBOUND_PREVIEW: 'OutboundPreview',
        NONE: 'None'
    },
    CONTACT_TYPE: {
        PHONEBOOK: 'PhoneBook',
        QUEUE: 'Queue',
        PHONENUMBER: 'PhoneNumber',
        AGENT: 'Agent',
        FLOW: 'Flow'
    },
    AGENT_CONFIG_TYPE: {
        SHOW_AGENT_SETTINGS: 'SHOW_AGENT_SETTINGS',
        PHONES: 'PHONES',
        SELECTED_PHONE: 'SELECTED_PHONE'
    },
    CAPABILITIES_TYPE: {
        MUTE: 'MUTE',
        RECORD: 'RECORD',
        MERGE: 'MERGE',
        SWAP: 'SWAP',
        SIGNED_RECORDING_URL: 'SIGNED_RECORDING_URL',
        DEBUG_ENABLED: 'DEBUG_ENABLED',
        CONTACT_SEARCH: 'CONTACT_SEARCH',
        VENDOR_PROVIDED_AVAILABILITY: 'VENDOR_PROVIDED_AVAILABILITY',
        VENDOR_PROVIDED_QUEUE_WAIT_TIME: 'VENDOR_PROVIDED_QUEUE_WAIT_TIME',
        SUPERVISOR_LISTEN_IN: 'SUPERVISOR_LISTEN_IN',
        SUPERVISOR_BARGE_IN: 'SUPERVISOR_BARGE_IN',
        MOS: 'MOS',
        BLIND_TRANSFER: 'BLIND_TRANSFER',
        TRANSFER_TO_OMNI_FLOW: 'TRANSFER_TO_OMNI_FLOW',
        PENDING_STATUS_CHANGE: 'PENDING_STATUS_CHANGE',
        PHONEBOOK: 'PHONEBOOK'
    },
    CALL_STATE: {
        RINGING: 'ringing',
        CONNECTED: 'connected',
        TRANSFERRING: 'transferring',
        TRANSFERRED: 'transferred',
        ENDED: 'ended'
    },
    PHONE_TYPE: {
        DESK_PHONE: 'DESK_PHONE',
        SOFT_PHONE: 'SOFT_PHONE'
    },
    HANGUP_REASON: {
        PHONE_CALL_ERROR: "error",
        PHONE_CALL_ENDED: "ended"
    },
    AGENT_AVAILABILITY: {
        AVAILABLE: "AVAILABLE",
        BUSY: "BUSY",
        OFFLINE: "OFFLINE"
    },
    REMOVE_PARTICIPANT_VARIANT: {
        ALWAYS : 'ALWAYS',
        NEVER: 'NEVER',
        ALWAYS_EXCEPT_ON_HOLD: 'ALWAYS_EXCEPT_ON_HOLD'
    },
    LOG_LEVEL: {
        ERROR: "ERROR",
        INFO: "INFO"
    },
    LOG_SOURCE: {
        SYSTEM: "SYSTEM",
        PARTNER: "PARTNER"
    },
    CONTACTS_FILTER_TYPES: {
        AGENT: "AGENT",
        QUEUE: "QUEUE",
        CONTACT: "CONTACT",
        DIRECTORY: "DIRECTORY",
        FLOW: "FLOW",
        AVAILABLE: "AVAILABLE"
    },
    WORK_EVENT: {
        ASSIGNED: 'ASSIGNED',
        ACCEPTED: 'ACCEPTED',
        DECLINED: 'DECLINED',
        COMPLETED: 'COMPLETED',
        CLOSED: 'CLOSED'
    },
    DIAL_OPTIONS: {
        CALLBACK: "isCallback=true"
    }
};

/**
 * Fields in the connector configuration that are logged. 
 */
export const CONNECTOR_CONFIG_EXPOSED_FIELDS = [
    "/internalNameLabel",
    "/reqGeneralInfo/reqAdapterUrl",
    "/reqGeneralInfo/reqVendorInfoApiName",
    "isACWAllowed",
    "isHVSEnabled",
    "orgDomainName",
    "phoneServiceChannelId",
    "telephonySettingsComponentFqn"
];

/**
 * Fields that starts with string in the connector configuration that are logged. 
 */
export const CONNECTOR_CONFIG_EXPOSED_FIELDS_STARTSWITH = [
    "/reqHvcc"
];

/**
 * Fields in the connector configuration that are NOT logged. 
 */
export const CONNECTOR_CONFIG_EXCEPTION_FIELDS = [
    "/reqHvcc/reqTelephonyIntegrationCertificate"
];