@webex/contact-center 3.9.0-next.15 → 3.9.0-next.17
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/dist/cc.js +114 -8
- package/dist/cc.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/metrics/constants.js +7 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/services/config/constants.js +13 -1
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/index.js +50 -0
- package/dist/services/config/index.js.map +1 -1
- package/dist/services/config/types.js +15 -0
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/task/types.js.map +1 -1
- package/dist/types/cc.d.ts +49 -3
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/metrics/constants.d.ts +5 -1
- package/dist/types/services/config/constants.d.ts +12 -0
- package/dist/types/services/config/index.d.ts +11 -1
- package/dist/types/services/config/types.d.ts +41 -0
- package/dist/types/services/task/types.d.ts +2 -0
- package/dist/webex.js +1 -1
- package/package.json +3 -2
- package/src/cc.ts +132 -4
- package/src/constants.ts +1 -0
- package/src/metrics/constants.ts +7 -1
- package/src/services/config/constants.ts +16 -0
- package/src/services/config/index.ts +56 -2
- package/src/services/config/types.ts +44 -0
- package/src/services/task/types.ts +2 -0
- package/test/unit/spec/cc.ts +46 -2
- package/test/unit/spec/services/config/index.ts +314 -29
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CC_TASK_EVENTS","exports","AGENT_CONTACT_ASSIGN_FAILED","AGENT_CONTACT_OFFER_RONA","AGENT_CONTACT_HELD","AGENT_CONTACT_HOLD_FAILED","AGENT_CONTACT_UNHELD","AGENT_CONTACT_UNHOLD_FAILED","AGENT_CONSULT_CREATED","AGENT_OFFER_CONSULT","AGENT_CONSULTING","AGENT_CONSULT_FAILED","AGENT_CTQ_FAILED","AGENT_CTQ_CANCELLED","AGENT_CTQ_CANCEL_FAILED","AGENT_CONSULT_ENDED","AGENT_CONSULT_END_FAILED","AGENT_CONSULT_CONFERENCE_ENDED","AGENT_CONSULT_CONFERENCING","AGENT_CONSULT_CONFERENCED","AGENT_CONSULT_CONFERENCE_FAILED","PARTICIPANT_JOINED_CONFERENCE","PARTICIPANT_LEFT_CONFERENCE","PARTICIPANT_LEFT_CONFERENCE_FAILED","AGENT_CONSULT_CONFERENCE_END_FAILED","AGENT_CONFERENCE_TRANSFERRED","AGENT_CONFERENCE_TRANSFER_FAILED","CONSULTED_PARTICIPANT_MOVING","PARTICIPANT_POST_CALL_ACTIVITY","AGENT_BLIND_TRANSFERRED","AGENT_BLIND_TRANSFER_FAILED","AGENT_VTEAM_TRANSFERRED","AGENT_VTEAM_TRANSFER_FAILED","AGENT_CONSULT_TRANSFERRING","AGENT_CONSULT_TRANSFERRED","AGENT_CONSULT_TRANSFER_FAILED","CONTACT_RECORDING_PAUSED","CONTACT_RECORDING_PAUSE_FAILED","CONTACT_RECORDING_RESUMED","CONTACT_RECORDING_RESUME_FAILED","CONTACT_ENDED","AGENT_CONTACT_END_FAILED","AGENT_WRAPUP","AGENT_WRAPPEDUP","AGENT_WRAPUP_FAILED","AGENT_OUTBOUND_FAILED","AGENT_CONTACT","AGENT_OFFER_CONTACT","AGENT_CONTACT_ASSIGNED","AGENT_CONTACT_UNASSIGNED","AGENT_INVITE_FAILED","CC_AGENT_EVENTS","WELCOME","AGENT_RELOGIN_SUCCESS","AGENT_RELOGIN_FAILED","AGENT_DN_REGISTERED","AGENT_LOGOUT","AGENT_LOGOUT_SUCCESS","AGENT_LOGOUT_FAILED","AGENT_STATION_LOGIN","AGENT_STATION_LOGIN_SUCCESS","AGENT_STATION_LOGIN_FAILED","AGENT_STATE_CHANGE","AGENT_MULTI_LOGIN","AGENT_STATE_CHANGE_SUCCESS","AGENT_STATE_CHANGE_FAILED","AGENT_BUDDY_AGENTS","AGENT_BUDDY_AGENTS_SUCCESS","AGENT_BUDDY_AGENTS_RETRIEVE_FAILED","AGENT_CONTACT_RESERVED","CC_EVENTS","IDLE_CODE","WRAP_UP_CODE"],"sources":["types.ts"],"sourcesContent":["import * as Agent from '../agent/types';\n\n/**\n * Generic type for converting a const enum object into a union type of its values\n * @internal\n */\ntype Enum<T extends Record<string, unknown>> = T[keyof T];\n\n/**\n * Events emitted on task objects\n * @enum {string}\n * @private\n * @ignore\n */\nexport const CC_TASK_EVENTS = {\n /** Event emitted when assigning contact to agent fails */\n AGENT_CONTACT_ASSIGN_FAILED: 'AgentContactAssignFailed',\n /** Event emitted when agent does not respond to contact offer */\n AGENT_CONTACT_OFFER_RONA: 'AgentOfferContactRona',\n /** Event emitted when contact is put on hold */\n AGENT_CONTACT_HELD: 'AgentContactHeld',\n /** Event emitted when putting contact on hold fails */\n AGENT_CONTACT_HOLD_FAILED: 'AgentContactHoldFailed',\n /** Event emitted when contact is taken off hold */\n AGENT_CONTACT_UNHELD: 'AgentContactUnheld',\n /** Event emitted when taking contact off hold fails */\n AGENT_CONTACT_UNHOLD_FAILED: 'AgentContactUnHoldFailed',\n /** Event emitted when consultation is created */\n AGENT_CONSULT_CREATED: 'AgentConsultCreated',\n /** Event emitted when consultation is offered */\n AGENT_OFFER_CONSULT: 'AgentOfferConsult',\n /** Event emitted when agent is consulting */\n AGENT_CONSULTING: 'AgentConsulting',\n /** Event emitted when consultation fails */\n AGENT_CONSULT_FAILED: 'AgentConsultFailed',\n /** Event emitted when consulting to queue (CTQ) fails */\n AGENT_CTQ_FAILED: 'AgentCtqFailed',\n /** Event emitted when CTQ is cancelled */\n AGENT_CTQ_CANCELLED: 'AgentCtqCancelled',\n /** Event emitted when CTQ cancellation fails */\n AGENT_CTQ_CANCEL_FAILED: 'AgentCtqCancelFailed',\n /** Event emitted when consultation ends */\n AGENT_CONSULT_ENDED: 'AgentConsultEnded',\n /** Event emitted when ending consultation fails */\n AGENT_CONSULT_END_FAILED: 'AgentConsultEndFailed',\n /** Event emitted when consultation conference ends */\n AGENT_CONSULT_CONFERENCE_ENDED: 'AgentConsultConferenceEnded',\n /** Event emitted when consultation conference is in progress */\n AGENT_CONSULT_CONFERENCING: 'AgentConsultConferencing',\n /** Event emitted when consultation conference starts */\n AGENT_CONSULT_CONFERENCED: 'AgentConsultConferenced',\n /** Event emitted when consultation conference fails */\n AGENT_CONSULT_CONFERENCE_FAILED: 'AgentConsultConferenceFailed',\n /** Event emitted when participant joins conference */\n PARTICIPANT_JOINED_CONFERENCE: 'ParticipantJoinedConference',\n /** Event emitted when participant leaves conference */\n PARTICIPANT_LEFT_CONFERENCE: 'ParticipantLeftConference',\n /** Event emitted when participant leaving conference fails */\n PARTICIPANT_LEFT_CONFERENCE_FAILED: 'ParticipantLeftConferenceFailed',\n /** Event emitted when consultation conference end fails */\n AGENT_CONSULT_CONFERENCE_END_FAILED: 'AgentConsultConferenceEndFailed',\n /** Event emitted when conference is successfully transferred */\n AGENT_CONFERENCE_TRANSFERRED: 'AgentConferenceTransferred',\n /** Event emitted when conference transfer fails */\n AGENT_CONFERENCE_TRANSFER_FAILED: 'AgentConferenceTransferFailed',\n /** Event emitted when consulted participant is moving/being transferred */\n CONSULTED_PARTICIPANT_MOVING: 'ConsultedParticipantMoving',\n /** Event emitted for post-call activity by participant */\n PARTICIPANT_POST_CALL_ACTIVITY: 'ParticipantPostCallActivity',\n /** Event emitted when contact is blind transferred */\n AGENT_BLIND_TRANSFERRED: 'AgentBlindTransferred',\n /** Event emitted when blind transfer fails */\n AGENT_BLIND_TRANSFER_FAILED: 'AgentBlindTransferFailed',\n /** Event emitted when contact is transferred to virtual team */\n AGENT_VTEAM_TRANSFERRED: 'AgentVteamTransferred',\n /** Event emitted when virtual team transfer fails */\n AGENT_VTEAM_TRANSFER_FAILED: 'AgentVteamTransferFailed',\n /** Event emitted when consultation transfer is in progress */\n AGENT_CONSULT_TRANSFERRING: 'AgentConsultTransferring',\n /** Event emitted when consultation transfer completes */\n AGENT_CONSULT_TRANSFERRED: 'AgentConsultTransferred',\n /** Event emitted when consultation transfer fails */\n AGENT_CONSULT_TRANSFER_FAILED: 'AgentConsultTransferFailed',\n /** Event emitted when contact recording is paused */\n CONTACT_RECORDING_PAUSED: 'ContactRecordingPaused',\n /** Event emitted when pausing contact recording fails */\n CONTACT_RECORDING_PAUSE_FAILED: 'ContactRecordingPauseFailed',\n /** Event emitted when contact recording is resumed */\n CONTACT_RECORDING_RESUMED: 'ContactRecordingResumed',\n /** Event emitted when resuming contact recording fails */\n CONTACT_RECORDING_RESUME_FAILED: 'ContactRecordingResumeFailed',\n /** Event emitted when contact ends */\n CONTACT_ENDED: 'ContactEnded',\n /** Event emitted when ending contact fails */\n AGENT_CONTACT_END_FAILED: 'AgentContactEndFailed',\n /** Event emitted when agent enters wrap-up state */\n AGENT_WRAPUP: 'AgentWrapup',\n /** Event emitted when agent completes wrap-up */\n AGENT_WRAPPEDUP: 'AgentWrappedUp',\n /** Event emitted when wrap-up fails */\n AGENT_WRAPUP_FAILED: 'AgentWrapupFailed',\n /** Event emitted when outbound call fails */\n AGENT_OUTBOUND_FAILED: 'AgentOutboundFailed',\n /** Event emitted for general agent contact events */\n AGENT_CONTACT: 'AgentContact',\n /** Event emitted when contact is offered to agent */\n AGENT_OFFER_CONTACT: 'AgentOfferContact',\n /** Event emitted when contact is assigned to agent */\n AGENT_CONTACT_ASSIGNED: 'AgentContactAssigned',\n /** Event emitted when contact is unassigned from agent */\n AGENT_CONTACT_UNASSIGNED: 'AgentContactUnassigned',\n /** Event emitted when inviting agent fails */\n AGENT_INVITE_FAILED: 'AgentInviteFailed',\n} as const;\n\n/**\n * Events emitted on Contact Center agent operations\n * @enum {string}\n * @private\n * @ignore\n */\nexport const CC_AGENT_EVENTS = {\n /** Welcome event when agent connects to websocket/backend */\n WELCOME: 'Welcome',\n /** Event emitted when agent re-login is successful */\n AGENT_RELOGIN_SUCCESS: 'AgentReloginSuccess',\n /** Event emitted when agent re-login fails */\n AGENT_RELOGIN_FAILED: 'AgentReloginFailed',\n /** Event emitted when agent DN registration completes */\n AGENT_DN_REGISTERED: 'AgentDNRegistered',\n /** Event emitted when agent initiates logout */\n AGENT_LOGOUT: 'Logout',\n /** Event emitted when agent logout is successful */\n AGENT_LOGOUT_SUCCESS: 'AgentLogoutSuccess',\n /** Event emitted when agent logout fails */\n AGENT_LOGOUT_FAILED: 'AgentLogoutFailed',\n /** Event emitted when agent initiates station login */\n AGENT_STATION_LOGIN: 'StationLogin',\n /** Event emitted when agent station login is successful */\n AGENT_STATION_LOGIN_SUCCESS: 'AgentStationLoginSuccess',\n /** Event emitted when agent station login fails */\n AGENT_STATION_LOGIN_FAILED: 'AgentStationLoginFailed',\n /** Event emitted when agent's state changes */\n AGENT_STATE_CHANGE: 'AgentStateChange',\n /** Event emitted when multiple logins detected for same agent */\n AGENT_MULTI_LOGIN: 'AGENT_MULTI_LOGIN',\n /** Event emitted when agent state change is successful */\n AGENT_STATE_CHANGE_SUCCESS: 'AgentStateChangeSuccess',\n /** Event emitted when agent state change fails */\n AGENT_STATE_CHANGE_FAILED: 'AgentStateChangeFailed',\n /** Event emitted when requesting buddy agents list */\n AGENT_BUDDY_AGENTS: 'BuddyAgents',\n /** Event emitted when buddy agents list is successfully retrieved */\n AGENT_BUDDY_AGENTS_SUCCESS: 'BuddyAgents',\n /** Event emitted when retrieving buddy agents list fails */\n AGENT_BUDDY_AGENTS_RETRIEVE_FAILED: 'BuddyAgentsRetrieveFailed',\n /** Event emitted when contact is reserved for agent */\n AGENT_CONTACT_RESERVED: 'AgentContactReserved',\n} as const;\n\n/**\n * Combined Contact Center events including both agent and task events\n * @enum {string}\n * @public\n */\nexport const CC_EVENTS = {\n ...CC_AGENT_EVENTS,\n ...CC_TASK_EVENTS,\n} as const;\n\n/**\n * Event data received when agent connects to the system\n * @public\n */\nexport type WelcomeEvent = {\n /** ID of the agent that connected */\n agentId: string;\n};\n\n/**\n * Response type for welcome events which can be either success or error\n * @public\n */\nexport type WelcomeResponse = WelcomeEvent | Error;\n\n/**\n * Type representing the union of all possible Contact Center events\n * @public\n */\nexport type CC_EVENTS = Enum<typeof CC_EVENTS>;\n\n/**\n * WebSocket event structure for Contact Center events\n * @public\n */\nexport type WebSocketEvent = {\n /** Type of the event */\n type: CC_EVENTS;\n /** Event payload data */\n data:\n | WelcomeEvent\n | Agent.StationLoginSuccess\n | Agent.LogoutSuccess\n | Agent.ReloginSuccess\n | Agent.StateChangeSuccess\n | Agent.BuddyAgentsSuccess;\n};\n\n/**\n * Represents the response from getUserUsingCI method.\n */\nexport type AgentResponse = {\n /**\n * ID of the agent.\n */\n id: string;\n\n /**\n * The ciUserId of the agent.\n */\n ciUserId: string;\n\n /**\n * The first name of the agent.\n */\n firstName: string;\n\n /**\n * The last name of the agent.\n */\n lastName: string;\n\n /**\n * Identifier for a Desktop Profile.\n */\n agentProfileId: string;\n\n /**\n * The email address of the agent.\n */\n email: string;\n\n /**\n * Team IDs assigned to the agent.\n */\n teamIds: string[];\n\n /**\n * Multimedia profile ID associated with the agent.\n */\n multimediaProfileId: string;\n\n /**\n * Skill profile ID of the agent.\n */\n skillProfileId: string;\n\n /**\n * Site ID of the agent.\n */\n siteId: string;\n\n /**\n * Database ID of the agent.\n */\n dbId?: string;\n\n /**\n * The default dialed number of the agent.\n */\n defaultDialledNumber?: string;\n};\n\n/**\n * Represents the response from getDesktopProfileById method.\n */\nexport type DesktopProfileResponse = {\n /**\n * Represents the voice options of an agent.\n */\n loginVoiceOptions: LoginOption[];\n\n /**\n * Wrap-up codes that the agents can select when they wrap up a contact. It can take one of these values: ALL - To make all wrap-up codes available. SPECIFIC - To make specific codes available.\n */\n accessWrapUpCode: string;\n\n /**\n * Idle codes that the agents can select in Agent Desktop. It can take one of these values: ALL - To make all idle codes available. SPECIFIC - To make specific codes available.\n */\n accessIdleCode: string;\n\n /**\n * Wrap-up codes list that the agents can select when they wrap up a contact.\n */\n wrapUpCodes: string[];\n\n /**\n * Idle codes list that the agents can select in Agent Desktop.\n */\n idleCodes: string[];\n\n /**\n * Dial plan enabled for the agent.\n */\n dialPlanEnabled: boolean;\n\n /**\n * Last agent routing enabled for the agent.\n */\n lastAgentRouting: boolean;\n\n /**\n * Auto wrap-up allowed.\n */\n autoWrapUp: boolean;\n\n /**\n * Auto answer allowed.\n */\n autoAnswer: boolean;\n\n /**\n * Auto wrap-up after seconds.\n */\n autoWrapAfterSeconds: number;\n\n /**\n * Agent available after outdial.\n */\n agentAvailableAfterOutdial: boolean;\n\n /**\n * Allow auto wrap-up extension.\n */\n allowAutoWrapUpExtension: boolean;\n\n /**\n * Outdial enabled for the agent.\n */\n outdialEnabled: boolean;\n\n /**\n * Outdial entry point ID of the agent.\n */\n outdialEntryPointId: string;\n\n /**\n * Outdial ANI ID of the agent.\n */\n outdialANIId: string;\n\n /**\n * Consult to queue allowed.\n */\n consultToQueue: boolean;\n\n /**\n * Address book ID of the agent.\n */\n addressBookId: string;\n\n /**\n * Viewable statistics of the agent.\n */\n viewableStatistics: {\n id: string;\n agentStats: boolean;\n accessQueueStats: string;\n contactServiceQueues: string[];\n loggedInTeamStats: boolean;\n accessTeamStats: string;\n teams: string[];\n };\n\n /**\n * Agent DN validation of the agent.\n */\n agentDNValidation: string;\n\n /**\n * Dial plans of the agent.\n */\n dialPlans: string[];\n\n /**\n * Timeout desktop inactivity custom enabled.\n */\n timeoutDesktopInactivityCustomEnabled: boolean;\n\n /**\n * Timeout desktop inactivity minutes.\n */\n timeoutDesktopInactivityMins: number;\n\n /**\n * Show user details in Microsoft enabled or not.\n */\n showUserDetailsMS: boolean;\n\n /**\n * State synchronization in Microsoft enabled or not.\n */\n stateSynchronizationMS: boolean;\n\n /**\n * Show user details in Webex enabled or not.\n */\n showUserDetailsWebex: boolean;\n\n /**\n * State synchronization in Webex enabled or not.\n */\n stateSynchronizationWebex: boolean;\n};\n\n/**\n * Response containing multimedia profile configuration for an agent\n * Defines capabilities across different communication channels\n * @private\n */\nexport type MultimediaProfileResponse = {\n /** Organization identifier */\n organizationId: string;\n /** Profile identifier */\n id: string;\n /** Version number of the profile */\n version: number;\n /** Profile name */\n name: string;\n /** Profile description */\n description: string;\n /** Maximum number of concurrent chat interactions */\n chat: number;\n /** Maximum number of concurrent email interactions */\n email: number;\n /** Maximum number of concurrent voice interactions */\n telephony: number;\n /** Maximum number of concurrent social media interactions */\n social: number;\n /** Whether the profile is active */\n active: boolean;\n /** Whether channel blending is enabled */\n blendingModeEnabled: boolean;\n /** Type of blending mode configuration */\n blendingMode: string;\n /** Whether this is the system default profile */\n systemDefault: boolean;\n /** Timestamp when profile was created */\n createdTime: number;\n /** Timestamp when profile was last updated */\n lastUpdatedTime: number;\n};\n\n/**\n * Response from subscription requests containing WebSocket connection details\n * @public\n */\nexport type SubscribeResponse = {\n /** HTTP status code of the response */\n statusCode: number;\n /** Response body containing connection details */\n body: {\n /** WebSocket URL for real-time updates */\n webSocketUrl?: string;\n /** Unique subscription identifier */\n subscriptionId?: string;\n };\n /** Optional status or error message */\n message: string | null;\n};\n\nexport type AuxCode = {\n /**\n * ID of the Auxiliary Code.\n */\n id: string;\n\n /**\n * Indicates whether the auxiliary code is active or not.\n */\n active: boolean;\n\n /**\n * Indicates whether this is the default code (true) or not (false).\n */\n defaultCode: boolean;\n\n /**\n * Indicates whether this is the system default code (true) or not (false).\n */\n isSystemCode: boolean;\n\n /**\n * A short description indicating the context of the code.\n */\n description: string;\n\n /**\n * Name of the Auxiliary Code.\n */\n name: string;\n\n /**\n * Indicates the work type associated with this code.\n */\n workTypeCode: string;\n};\n\nexport type ListAuxCodesResponse = {\n data: AuxCode[];\n meta: {\n page: number;\n pageSize: number;\n totalPages: number;\n totalRecords: number;\n };\n};\n\n/**\n * Configuration for a team in the contact center system\n * @private\n */\nexport type TeamList = {\n /** Unique identifier for the team */\n id: string;\n /** Team name */\n name: string;\n /** Type of team (e.g., 'AGENT_BASED') */\n teamType: string;\n /** Current status of the team */\n teamStatus: string;\n /** Whether the team is active */\n active: boolean;\n /** Site identifier where team is located */\n siteId: string;\n /** Name of the site */\n siteName: string;\n /** Optional multimedia profile ID for team */\n multiMediaProfileId?: string;\n /** List of user IDs belonging to team */\n userIds: string[];\n /** Whether queue rankings are enabled for team */\n rankQueuesForTeam: boolean;\n /** Ordered list of queue rankings */\n queueRankings: string[];\n /** Optional database identifier */\n dbId?: string;\n /** Optional desktop layout identifier */\n desktopLayoutId?: string;\n};\n\n/**\n * Response type for listing teams with pagination metadata\n * @private\n */\nexport type ListTeamsResponse = {\n /** Array of team configurations */\n data: TeamList[];\n /** Pagination metadata */\n meta: {\n /** Current page number */\n page: number;\n /** Number of items per page */\n pageSize: number;\n /** Total number of pages */\n totalPages: number;\n /** Total number of records */\n totalRecords: number;\n };\n};\n\n/**\n * Basic organization information in the contact center system\n * @private\n * @ignore\n */\nexport type OrgInfo = {\n /** Tenant identifier */\n tenantId: string;\n /** Organization timezone */\n timezone: string;\n};\n\n/**\n * Organization-wide feature settings and configurations\n * @private\n */\nexport type OrgSettings = {\n /** Whether WebRTC functionality is enabled */\n webRtcEnabled: boolean;\n /** Whether sensitive data masking is enabled */\n maskSensitiveData: boolean;\n /** Whether campaign manager features are enabled */\n campaignManagerEnabled: boolean;\n};\n\n/**\n * Contact center site configuration information\n * @private\n */\nexport type SiteInfo = {\n /** Unique site identifier */\n id: string;\n /** Site name */\n name: string;\n /** Whether site is active */\n active: boolean;\n /** Multimedia profile ID for site */\n multimediaProfileId: string;\n /** Whether this is the system default site */\n systemDefault: boolean;\n};\n\n/**\n * Tenant-level configuration data and settings\n * @private\n */\nexport type TenantData = {\n /** Desktop inactivity timeout in minutes */\n timeoutDesktopInactivityMins: number;\n /** Whether default DN is enforced */\n forceDefaultDn: boolean;\n /** Regex pattern for default DN validation */\n dnDefaultRegex: string;\n /** Regex pattern for other DN validation */\n dnOtherRegex: string;\n /** Whether privacy shield feature is visible */\n privacyShieldVisible: boolean;\n /** Whether outbound dialing is enabled */\n outdialEnabled: boolean;\n /** Whether ending calls is enabled */\n endCallEnabled: boolean;\n /** Whether ending consultations is enabled */\n endConsultEnabled: boolean;\n /** Whether call variables are suppressed */\n callVariablesSuppressed: boolean;\n /** Whether desktop inactivity timeout is enabled */\n timeoutDesktopInactivityEnabled: boolean;\n /** Lost connection recovery timeout in seconds */\n lostConnectionRecoveryTimeout: number;\n};\n\n/**\n * URL mapping configuration for external integrations\n * @public\n */\nexport type URLMapping = {\n id: string;\n name: string;\n url: string;\n links: string[]; // Assuming 'links' is an array of strings, adjust if necessary\n createdTime: number; // Assuming timestamps are represented as numbers\n lastUpdatedTime: number;\n};\n\n/**\n * Constant representing idle code\n * @public\n * @ignore\n */\nexport const IDLE_CODE = 'IDLE_CODE';\n\n/**\n * Constant representing wrap up code\n * @public\n * @ignore\n */\nexport const WRAP_UP_CODE = 'WRAP_UP_CODE';\n\n/**\n * Type representing the possible auxiliary code types\n * @public\n */\nexport type AuxCodeType = typeof IDLE_CODE | typeof WRAP_UP_CODE;\n\n/**\n * Sort order configuration for queries\n * @internal\n */\ntype SortOrder = {\n /** Property to sort by */\n property: string;\n /** Sort order direction */\n order: string;\n};\n\n/**\n * Search query configuration\n * @internal\n */\ntype SearchQuery = {\n /** Properties to search in */\n properties: string;\n /** Search value */\n value: string;\n};\n\n/**\n * Parameters for querying Contact Center resources\n * @public\n */\nexport type QueryParams = {\n /** Page number for pagination */\n pageNumber?: number;\n pageSize?: number;\n attributes?: Array<string>;\n ids?: Array<string>;\n queueType?: string;\n entryPointType?: string;\n channelType?: string;\n isActive?: boolean;\n workTypeCode?: AuxCodeType;\n names?: Array<string>;\n sortOrder?: SortOrder;\n searchQuery?: SearchQuery;\n defaultCode?: boolean;\n search?: string;\n desktopProfileFilter?: boolean;\n};\n\n/**\n * Basic entity information used throughout the system\n * @public\n */\nexport type Entity = {\n /** Whether this is a system entity */\n isSystem: boolean;\n /** Entity name */\n name: string;\n /** Unique entity identifier */\n id: string;\n /** Whether this is the default entity */\n isDefault: boolean;\n};\n\n/**\n * Dial plan entity definition containing number manipulation rules\n * @public\n */\nexport type DialPlanEntity = {\n /** Unique identifier for the dial plan */\n id: string;\n /** Regular expression pattern for matching numbers */\n regularExpression: string;\n /** Prefix to add to matched numbers */\n prefix: string;\n /** Characters to strip from matched numbers */\n strippedChars: string;\n /** Name of the dial plan */\n name: string;\n};\n\n/**\n * Complete dial plan configuration for number handling\n * @public\n */\nexport type DialPlan = {\n /** Type of dial plan (e.g., 'adhocDial') */\n type: string;\n /** List of dial plan entities with transformation rules */\n dialPlanEntity: {\n /** Regular expression pattern */\n regex: string;\n /** Number prefix */\n prefix: string;\n /** Characters to strip */\n strippedChars: string;\n /** Entity name */\n name: string;\n }[];\n};\n\n/**\n * Agent wrap-up codes configuration with pagination metadata\n * @public\n */\nexport type agentWrapUpCodes = {\n /** Array of wrap-up code entities */\n data: Entity[];\n /** Pagination and navigation metadata */\n meta: {\n /** Navigation URLs for pagination */\n links: {\n /** URL for first page */\n first: string;\n /** URL for last page */\n last: string;\n /** URL for next page */\n next: string;\n /** URL for current page */\n self: string;\n };\n /** Organization identifier */\n orgid: string;\n /** Current page number */\n page: number;\n /** Number of items per page */\n pageSize: number;\n /** Total number of pages */\n totalPages: number;\n /** Total number of records */\n totalRecords: number;\n };\n};\n\n/**\n * Default wrap-up code configuration for an agent\n * @public\n */\nexport type agentDefaultWrapupCode = {\n /** Unique identifier for the wrap-up code */\n id: string;\n /** Display name of the wrap-up code */\n name: string;\n};\n\n/**\n * Wrap-up reason configuration used to classify completed interactions\n * @public\n */\nexport type WrapUpReason = {\n /** Whether this is a system-defined reason */\n isSystem: boolean;\n /** Display name of the reason */\n name: string;\n /** Unique identifier */\n id: string;\n /** Whether this is the default reason */\n isDefault: boolean;\n};\n\n/**\n * Wrap-up configuration data containing settings and available options\n * @public\n */\nexport type WrapupData = {\n /** Wrap-up configuration properties */\n wrapUpProps: {\n /** Whether automatic wrap-up is enabled */\n autoWrapup?: boolean;\n /** Time in seconds before auto wrap-up triggers */\n autoWrapupInterval?: number;\n /** Whether last agent routing is enabled */\n lastAgentRoute?: boolean;\n /** List of available wrap-up reasons */\n wrapUpReasonList: Array<WrapUpReason>;\n /** List of available wrap-up codes */\n wrapUpCodesList?: Array<string>;\n /** Access control for idle codes ('ALL' or 'SPECIFIC') */\n idleCodesAccess?: 'ALL' | 'SPECIFIC';\n /** Associated interaction identifier */\n interactionId?: string;\n /** Whether cancelling auto wrap-up is allowed */\n allowCancelAutoWrapup?: boolean;\n };\n};\n\n/**\n * Available login options for voice channel access\n * 'AGENT_DN' - Login using agent's DN\n * 'EXTENSION' - Login using extension number\n * 'BROWSER' - Login using browser-based WebRTC\n * @public\n */\nexport type LoginOption = 'AGENT_DN' | 'EXTENSION' | 'BROWSER';\n\n/**\n * Team configuration information\n * @public\n */\nexport type Team = {\n /** Unique team identifier */\n teamId: string;\n /** Team display name */\n teamName: string;\n /** Optional desktop layout configuration identifier */\n desktopLayoutId?: string;\n};\n\n/**\n * Basic queue configuration information\n * @public\n */\nexport type Queue = {\n /** Queue identifier */\n queueId: string;\n /** Queue display name */\n queueName: string;\n};\n\n/**\n * URL mappings for external system integrations\n * @public\n */\nexport type URLMappings = {\n /** Acqueon API endpoint URL */\n acqueonApiUrl: string;\n /** Acqueon console URL */\n acqueonConsoleUrl: string;\n};\n\n/**\n * Comprehensive agent profile configuration in the contact center system\n * Contains all settings and capabilities for an agent\n * @public\n */\nexport type Profile = {\n /** Microsoft Teams integration configuration */\n microsoftConfig?: {\n /** Whether to show user details in Teams */\n showUserDetailsMS?: boolean;\n /** Whether to sync agent state with Teams */\n stateSynchronizationMS?: boolean;\n };\n /** Webex integration configuration */\n webexConfig?: {\n /** Whether to show user details in Webex */\n showUserDetailsWebex?: boolean;\n /** Whether to sync agent state with Webex */\n stateSynchronizationWebex?: boolean;\n };\n /** List of teams the agent belongs to */\n teams: Team[];\n /** Agent's default dial number */\n defaultDn: string;\n dn?: string;\n /** Whether default DN is enforced at tenant level */\n forceDefaultDn: boolean;\n /** Whether default DN is enforced for this agent */\n forceDefaultDnForAgent: boolean;\n /** Regex pattern for US phone number validation */\n regexUS: RegExp | string;\n /** Regex pattern for international phone number validation */\n regexOther: RegExp | string;\n /** Unique identifier for the agent */\n agentId: string;\n /** Display name for the agent */\n agentName: string;\n /** Email address for the agent */\n agentMailId: string;\n /** Agent's profile configuration ID */\n agentProfileID: string;\n /** Dial plan configuration for number handling */\n dialPlan: DialPlan;\n /** Multimedia profile defining channel capabilities */\n multimediaProfileId: string;\n /** Skill profile defining agent competencies */\n skillProfileId: string;\n /** Site where agent is located */\n siteId: string;\n /** Enterprise-wide identifier */\n enterpriseId: string;\n /** Whether privacy shield feature is visible */\n privacyShieldVisible: boolean;\n /** Available idle codes */\n idleCodes: Entity[];\n /** List of specific idle codes */\n idleCodesList?: Array<string>;\n /** Access control for idle codes */\n idleCodesAccess?: 'ALL' | 'SPECIFIC';\n /** Available wrap-up codes */\n wrapupCodes: Entity[];\n /** Agent-specific wrap-up codes */\n agentWrapUpCodes?: agentWrapUpCodes;\n /** Default wrap-up code for agent */\n agentDefaultWrapUpCode?: agentDefaultWrapupCode;\n /** Default wrap-up code identifier */\n defaultWrapupCode: string;\n /** Wrap-up configuration data */\n wrapUpData: WrapupData;\n /** Organization identifier */\n orgId?: string;\n /** Whether outbound is enabled at tenant level */\n isOutboundEnabledForTenant: boolean;\n /** Whether outbound is enabled for this agent */\n isOutboundEnabledForAgent: boolean;\n /** Whether ad-hoc dialing is enabled */\n isAdhocDialingEnabled: boolean;\n /** Whether agent becomes available after outdial */\n isAgentAvailableAfterOutdial: boolean;\n /** Whether campaign management is enabled */\n isCampaignManagementEnabled: boolean;\n /** Outbound entry point */\n outDialEp: string;\n /** Whether ending calls is enabled */\n isEndCallEnabled: boolean;\n /** Whether ending consultations is enabled */\n isEndConsultEnabled: boolean;\n /** Optional lifecycle manager URL */\n lcmUrl?: string;\n /** Database identifier for agent */\n agentDbId: string;\n /** Optional analyzer identifier for agent */\n agentAnalyzerId?: string;\n /** Whether consult to queue is allowed */\n allowConsultToQueue: boolean;\n /** Additional campaign manager information */\n campaignManagerAdditionalInfo?: string;\n /** Whether personal statistics are enabled */\n agentPersonalStatsEnabled: boolean;\n /** Optional address book identifier */\n addressBookId?: string;\n /** Optional outbound ANI identifier */\n outdialANIId?: string;\n /** Optional analyzer user identifier */\n analyserUserId?: string;\n /** Whether call monitoring is enabled */\n isCallMonitoringEnabled?: boolean;\n /** Whether mid-call monitoring is enabled */\n isMidCallMonitoringEnabled?: boolean;\n /** Whether barge-in functionality is enabled */\n isBargeInEnabled?: boolean;\n /** Whether managed teams feature is enabled */\n isManagedTeamsEnabled?: boolean;\n /** Whether managed queues feature is enabled */\n isManagedQueuesEnabled?: boolean;\n /** Whether sending messages is enabled */\n isSendMessageEnabled?: boolean;\n /** Whether agent state changes are enabled */\n isAgentStateChangeEnabled?: boolean;\n /** Whether signing out agents is enabled */\n isSignOutAgentsEnabled?: boolean;\n /** Integration URL mappings */\n urlMappings?: URLMappings;\n /** Whether desktop inactivity timeout is enabled */\n isTimeoutDesktopInactivityEnabled: boolean;\n /** Desktop inactivity timeout in minutes */\n timeoutDesktopInactivityMins?: number;\n /** Whether analyzer features are enabled */\n isAnalyzerEnabled?: boolean;\n /** Tenant timezone */\n tenantTimezone?: string;\n /** Available voice login options */\n loginVoiceOptions?: LoginOption[];\n /** Current login device type */\n deviceType?: LoginOption;\n /** Current team identifier */\n currentTeamId?: string;\n /** Whether WebRTC is enabled */\n webRtcEnabled: boolean;\n /** Organization-wide idle codes */\n organizationIdleCodes?: Entity[];\n /** Whether recording management is enabled */\n isRecordingManagementEnabled?: boolean;\n /** Connection recovery timeout in milliseconds */\n lostConnectionRecoveryTimeout: number;\n /** Whether sensitive data masking is enabled */\n maskSensitiveData?: boolean;\n /** Whether agent is currently logged in */\n isAgentLoggedIn?: boolean;\n /** Last auxiliary code ID used for state change */\n lastStateAuxCodeId?: string;\n /** Timestamp of last state change */\n lastStateChangeTimestamp?: number;\n /** Timestamp of last idle code change */\n lastIdleCodeChangeTimestamp?: number;\n};\n\n/**\n * Contact distribution group configuration for routing logic\n * @public\n */\nexport type CallDistributionGroup = {\n /** List of agent groups in this distribution group */\n agentGroups: {\n /** Team identifier */\n teamId: string;\n }[];\n /** Distribution order priority */\n order: number;\n /** Distribution time duration in seconds */\n duration: number;\n};\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5B;EACAE,2BAA2B,EAAE,0BAA0B;EACvD;EACAC,wBAAwB,EAAE,uBAAuB;EACjD;EACAC,kBAAkB,EAAE,kBAAkB;EACtC;EACAC,yBAAyB,EAAE,wBAAwB;EACnD;EACAC,oBAAoB,EAAE,oBAAoB;EAC1C;EACAC,2BAA2B,EAAE,0BAA0B;EACvD;EACAC,qBAAqB,EAAE,qBAAqB;EAC5C;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,gBAAgB,EAAE,iBAAiB;EACnC;EACAC,oBAAoB,EAAE,oBAAoB;EAC1C;EACAC,gBAAgB,EAAE,gBAAgB;EAClC;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,uBAAuB,EAAE,sBAAsB;EAC/C;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,wBAAwB,EAAE,uBAAuB;EACjD;EACAC,8BAA8B,EAAE,6BAA6B;EAC7D;EACAC,0BAA0B,EAAE,0BAA0B;EACtD;EACAC,yBAAyB,EAAE,yBAAyB;EACpD;EACAC,+BAA+B,EAAE,8BAA8B;EAC/D;EACAC,6BAA6B,EAAE,6BAA6B;EAC5D;EACAC,2BAA2B,EAAE,2BAA2B;EACxD;EACAC,kCAAkC,EAAE,iCAAiC;EACrE;EACAC,mCAAmC,EAAE,iCAAiC;EACtE;EACAC,4BAA4B,EAAE,4BAA4B;EAC1D;EACAC,gCAAgC,EAAE,+BAA+B;EACjE;EACAC,4BAA4B,EAAE,4BAA4B;EAC1D;EACAC,8BAA8B,EAAE,6BAA6B;EAC7D;EACAC,uBAAuB,EAAE,uBAAuB;EAChD;EACAC,2BAA2B,EAAE,0BAA0B;EACvD;EACAC,uBAAuB,EAAE,uBAAuB;EAChD;EACAC,2BAA2B,EAAE,0BAA0B;EACvD;EACAC,0BAA0B,EAAE,0BAA0B;EACtD;EACAC,yBAAyB,EAAE,yBAAyB;EACpD;EACAC,6BAA6B,EAAE,4BAA4B;EAC3D;EACAC,wBAAwB,EAAE,wBAAwB;EAClD;EACAC,8BAA8B,EAAE,6BAA6B;EAC7D;EACAC,yBAAyB,EAAE,yBAAyB;EACpD;EACAC,+BAA+B,EAAE,8BAA8B;EAC/D;EACAC,aAAa,EAAE,cAAc;EAC7B;EACAC,wBAAwB,EAAE,uBAAuB;EACjD;EACAC,YAAY,EAAE,aAAa;EAC3B;EACAC,eAAe,EAAE,gBAAgB;EACjC;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,qBAAqB,EAAE,qBAAqB;EAC5C;EACAC,aAAa,EAAE,cAAc;EAC7B;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,sBAAsB,EAAE,sBAAsB;EAC9C;EACAC,wBAAwB,EAAE,wBAAwB;EAClD;EACAC,mBAAmB,EAAE;AACvB,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,eAAe,GAAAlD,OAAA,CAAAkD,eAAA,GAAG;EAC7B;EACAC,OAAO,EAAE,SAAS;EAClB;EACAC,qBAAqB,EAAE,qBAAqB;EAC5C;EACAC,oBAAoB,EAAE,oBAAoB;EAC1C;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,YAAY,EAAE,QAAQ;EACtB;EACAC,oBAAoB,EAAE,oBAAoB;EAC1C;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,mBAAmB,EAAE,cAAc;EACnC;EACAC,2BAA2B,EAAE,0BAA0B;EACvD;EACAC,0BAA0B,EAAE,yBAAyB;EACrD;EACAC,kBAAkB,EAAE,kBAAkB;EACtC;EACAC,iBAAiB,EAAE,mBAAmB;EACtC;EACAC,0BAA0B,EAAE,yBAAyB;EACrD;EACAC,yBAAyB,EAAE,wBAAwB;EACnD;EACAC,kBAAkB,EAAE,aAAa;EACjC;EACAC,0BAA0B,EAAE,aAAa;EACzC;EACAC,kCAAkC,EAAE,2BAA2B;EAC/D;EACAC,sBAAsB,EAAE;AAC1B,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAS,GAAArE,OAAA,CAAAqE,SAAA,GAAG;EACvB,GAAGnB,eAAe;EAClB,GAAGnD;AACL,CAAU;;AAEV;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAcA;AACA;AACA;;AA+DA;AACA;AACA;;AA6IA;AACA;AACA;AACA;AACA;;AAkCA;AACA;AACA;AACA;;AA8DA;AACA;AACA;AACA;;AA8BA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;;AAcA;AACA;AACA;AACA;;AA0BA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACO,MAAMuE,SAAS,GAAAtE,OAAA,CAAAsE,SAAA,GAAG,WAAW;;AAEpC;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAY,GAAAvE,OAAA,CAAAuE,YAAA,GAAG,cAAc;;AAE1C;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;;AAcA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA;;AA8BA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;;AAyJA;AACA;AACA;AACA"}
|
|
1
|
+
{"version":3,"names":["CC_TASK_EVENTS","exports","AGENT_CONTACT_ASSIGN_FAILED","AGENT_CONTACT_OFFER_RONA","AGENT_CONTACT_HELD","AGENT_CONTACT_HOLD_FAILED","AGENT_CONTACT_UNHELD","AGENT_CONTACT_UNHOLD_FAILED","AGENT_CONSULT_CREATED","AGENT_OFFER_CONSULT","AGENT_CONSULTING","AGENT_CONSULT_FAILED","AGENT_CTQ_FAILED","AGENT_CTQ_CANCELLED","AGENT_CTQ_CANCEL_FAILED","AGENT_CONSULT_ENDED","AGENT_CONSULT_END_FAILED","AGENT_CONSULT_CONFERENCE_ENDED","AGENT_CONSULT_CONFERENCING","AGENT_CONSULT_CONFERENCED","AGENT_CONSULT_CONFERENCE_FAILED","PARTICIPANT_JOINED_CONFERENCE","PARTICIPANT_LEFT_CONFERENCE","PARTICIPANT_LEFT_CONFERENCE_FAILED","AGENT_CONSULT_CONFERENCE_END_FAILED","AGENT_CONFERENCE_TRANSFERRED","AGENT_CONFERENCE_TRANSFER_FAILED","CONSULTED_PARTICIPANT_MOVING","PARTICIPANT_POST_CALL_ACTIVITY","AGENT_BLIND_TRANSFERRED","AGENT_BLIND_TRANSFER_FAILED","AGENT_VTEAM_TRANSFERRED","AGENT_VTEAM_TRANSFER_FAILED","AGENT_CONSULT_TRANSFERRING","AGENT_CONSULT_TRANSFERRED","AGENT_CONSULT_TRANSFER_FAILED","CONTACT_RECORDING_PAUSED","CONTACT_RECORDING_PAUSE_FAILED","CONTACT_RECORDING_RESUMED","CONTACT_RECORDING_RESUME_FAILED","CONTACT_ENDED","AGENT_CONTACT_END_FAILED","AGENT_WRAPUP","AGENT_WRAPPEDUP","AGENT_WRAPUP_FAILED","AGENT_OUTBOUND_FAILED","AGENT_CONTACT","AGENT_OFFER_CONTACT","AGENT_CONTACT_ASSIGNED","AGENT_CONTACT_UNASSIGNED","AGENT_INVITE_FAILED","CC_AGENT_EVENTS","WELCOME","AGENT_RELOGIN_SUCCESS","AGENT_RELOGIN_FAILED","AGENT_DN_REGISTERED","AGENT_LOGOUT","AGENT_LOGOUT_SUCCESS","AGENT_LOGOUT_FAILED","AGENT_STATION_LOGIN","AGENT_STATION_LOGIN_SUCCESS","AGENT_STATION_LOGIN_FAILED","AGENT_STATE_CHANGE","AGENT_MULTI_LOGIN","AGENT_STATE_CHANGE_SUCCESS","AGENT_STATE_CHANGE_FAILED","AGENT_BUDDY_AGENTS","AGENT_BUDDY_AGENTS_SUCCESS","AGENT_BUDDY_AGENTS_RETRIEVE_FAILED","AGENT_CONTACT_RESERVED","CC_EVENTS","IDLE_CODE","WRAP_UP_CODE"],"sources":["types.ts"],"sourcesContent":["import * as Agent from '../agent/types';\n\n/**\n * Generic type for converting a const enum object into a union type of its values\n * @internal\n */\ntype Enum<T extends Record<string, unknown>> = T[keyof T];\n\n/**\n * Events emitted on task objects\n * @enum {string}\n * @private\n * @ignore\n */\nexport const CC_TASK_EVENTS = {\n /** Event emitted when assigning contact to agent fails */\n AGENT_CONTACT_ASSIGN_FAILED: 'AgentContactAssignFailed',\n /** Event emitted when agent does not respond to contact offer */\n AGENT_CONTACT_OFFER_RONA: 'AgentOfferContactRona',\n /** Event emitted when contact is put on hold */\n AGENT_CONTACT_HELD: 'AgentContactHeld',\n /** Event emitted when putting contact on hold fails */\n AGENT_CONTACT_HOLD_FAILED: 'AgentContactHoldFailed',\n /** Event emitted when contact is taken off hold */\n AGENT_CONTACT_UNHELD: 'AgentContactUnheld',\n /** Event emitted when taking contact off hold fails */\n AGENT_CONTACT_UNHOLD_FAILED: 'AgentContactUnHoldFailed',\n /** Event emitted when consultation is created */\n AGENT_CONSULT_CREATED: 'AgentConsultCreated',\n /** Event emitted when consultation is offered */\n AGENT_OFFER_CONSULT: 'AgentOfferConsult',\n /** Event emitted when agent is consulting */\n AGENT_CONSULTING: 'AgentConsulting',\n /** Event emitted when consultation fails */\n AGENT_CONSULT_FAILED: 'AgentConsultFailed',\n /** Event emitted when consulting to queue (CTQ) fails */\n AGENT_CTQ_FAILED: 'AgentCtqFailed',\n /** Event emitted when CTQ is cancelled */\n AGENT_CTQ_CANCELLED: 'AgentCtqCancelled',\n /** Event emitted when CTQ cancellation fails */\n AGENT_CTQ_CANCEL_FAILED: 'AgentCtqCancelFailed',\n /** Event emitted when consultation ends */\n AGENT_CONSULT_ENDED: 'AgentConsultEnded',\n /** Event emitted when ending consultation fails */\n AGENT_CONSULT_END_FAILED: 'AgentConsultEndFailed',\n /** Event emitted when consultation conference ends */\n AGENT_CONSULT_CONFERENCE_ENDED: 'AgentConsultConferenceEnded',\n /** Event emitted when consultation conference is in progress */\n AGENT_CONSULT_CONFERENCING: 'AgentConsultConferencing',\n /** Event emitted when consultation conference starts */\n AGENT_CONSULT_CONFERENCED: 'AgentConsultConferenced',\n /** Event emitted when consultation conference fails */\n AGENT_CONSULT_CONFERENCE_FAILED: 'AgentConsultConferenceFailed',\n /** Event emitted when participant joins conference */\n PARTICIPANT_JOINED_CONFERENCE: 'ParticipantJoinedConference',\n /** Event emitted when participant leaves conference */\n PARTICIPANT_LEFT_CONFERENCE: 'ParticipantLeftConference',\n /** Event emitted when participant leaving conference fails */\n PARTICIPANT_LEFT_CONFERENCE_FAILED: 'ParticipantLeftConferenceFailed',\n /** Event emitted when consultation conference end fails */\n AGENT_CONSULT_CONFERENCE_END_FAILED: 'AgentConsultConferenceEndFailed',\n /** Event emitted when conference is successfully transferred */\n AGENT_CONFERENCE_TRANSFERRED: 'AgentConferenceTransferred',\n /** Event emitted when conference transfer fails */\n AGENT_CONFERENCE_TRANSFER_FAILED: 'AgentConferenceTransferFailed',\n /** Event emitted when consulted participant is moving/being transferred */\n CONSULTED_PARTICIPANT_MOVING: 'ConsultedParticipantMoving',\n /** Event emitted for post-call activity by participant */\n PARTICIPANT_POST_CALL_ACTIVITY: 'ParticipantPostCallActivity',\n /** Event emitted when contact is blind transferred */\n AGENT_BLIND_TRANSFERRED: 'AgentBlindTransferred',\n /** Event emitted when blind transfer fails */\n AGENT_BLIND_TRANSFER_FAILED: 'AgentBlindTransferFailed',\n /** Event emitted when contact is transferred to virtual team */\n AGENT_VTEAM_TRANSFERRED: 'AgentVteamTransferred',\n /** Event emitted when virtual team transfer fails */\n AGENT_VTEAM_TRANSFER_FAILED: 'AgentVteamTransferFailed',\n /** Event emitted when consultation transfer is in progress */\n AGENT_CONSULT_TRANSFERRING: 'AgentConsultTransferring',\n /** Event emitted when consultation transfer completes */\n AGENT_CONSULT_TRANSFERRED: 'AgentConsultTransferred',\n /** Event emitted when consultation transfer fails */\n AGENT_CONSULT_TRANSFER_FAILED: 'AgentConsultTransferFailed',\n /** Event emitted when contact recording is paused */\n CONTACT_RECORDING_PAUSED: 'ContactRecordingPaused',\n /** Event emitted when pausing contact recording fails */\n CONTACT_RECORDING_PAUSE_FAILED: 'ContactRecordingPauseFailed',\n /** Event emitted when contact recording is resumed */\n CONTACT_RECORDING_RESUMED: 'ContactRecordingResumed',\n /** Event emitted when resuming contact recording fails */\n CONTACT_RECORDING_RESUME_FAILED: 'ContactRecordingResumeFailed',\n /** Event emitted when contact ends */\n CONTACT_ENDED: 'ContactEnded',\n /** Event emitted when ending contact fails */\n AGENT_CONTACT_END_FAILED: 'AgentContactEndFailed',\n /** Event emitted when agent enters wrap-up state */\n AGENT_WRAPUP: 'AgentWrapup',\n /** Event emitted when agent completes wrap-up */\n AGENT_WRAPPEDUP: 'AgentWrappedUp',\n /** Event emitted when wrap-up fails */\n AGENT_WRAPUP_FAILED: 'AgentWrapupFailed',\n /** Event emitted when outbound call fails */\n AGENT_OUTBOUND_FAILED: 'AgentOutboundFailed',\n /** Event emitted for general agent contact events */\n AGENT_CONTACT: 'AgentContact',\n /** Event emitted when contact is offered to agent */\n AGENT_OFFER_CONTACT: 'AgentOfferContact',\n /** Event emitted when contact is assigned to agent */\n AGENT_CONTACT_ASSIGNED: 'AgentContactAssigned',\n /** Event emitted when contact is unassigned from agent */\n AGENT_CONTACT_UNASSIGNED: 'AgentContactUnassigned',\n /** Event emitted when inviting agent fails */\n AGENT_INVITE_FAILED: 'AgentInviteFailed',\n} as const;\n\n/**\n * Events emitted on Contact Center agent operations\n * @enum {string}\n * @private\n * @ignore\n */\nexport const CC_AGENT_EVENTS = {\n /** Welcome event when agent connects to websocket/backend */\n WELCOME: 'Welcome',\n /** Event emitted when agent re-login is successful */\n AGENT_RELOGIN_SUCCESS: 'AgentReloginSuccess',\n /** Event emitted when agent re-login fails */\n AGENT_RELOGIN_FAILED: 'AgentReloginFailed',\n /** Event emitted when agent DN registration completes */\n AGENT_DN_REGISTERED: 'AgentDNRegistered',\n /** Event emitted when agent initiates logout */\n AGENT_LOGOUT: 'Logout',\n /** Event emitted when agent logout is successful */\n AGENT_LOGOUT_SUCCESS: 'AgentLogoutSuccess',\n /** Event emitted when agent logout fails */\n AGENT_LOGOUT_FAILED: 'AgentLogoutFailed',\n /** Event emitted when agent initiates station login */\n AGENT_STATION_LOGIN: 'StationLogin',\n /** Event emitted when agent station login is successful */\n AGENT_STATION_LOGIN_SUCCESS: 'AgentStationLoginSuccess',\n /** Event emitted when agent station login fails */\n AGENT_STATION_LOGIN_FAILED: 'AgentStationLoginFailed',\n /** Event emitted when agent's state changes */\n AGENT_STATE_CHANGE: 'AgentStateChange',\n /** Event emitted when multiple logins detected for same agent */\n AGENT_MULTI_LOGIN: 'AGENT_MULTI_LOGIN',\n /** Event emitted when agent state change is successful */\n AGENT_STATE_CHANGE_SUCCESS: 'AgentStateChangeSuccess',\n /** Event emitted when agent state change fails */\n AGENT_STATE_CHANGE_FAILED: 'AgentStateChangeFailed',\n /** Event emitted when requesting buddy agents list */\n AGENT_BUDDY_AGENTS: 'BuddyAgents',\n /** Event emitted when buddy agents list is successfully retrieved */\n AGENT_BUDDY_AGENTS_SUCCESS: 'BuddyAgents',\n /** Event emitted when retrieving buddy agents list fails */\n AGENT_BUDDY_AGENTS_RETRIEVE_FAILED: 'BuddyAgentsRetrieveFailed',\n /** Event emitted when contact is reserved for agent */\n AGENT_CONTACT_RESERVED: 'AgentContactReserved',\n} as const;\n\n/**\n * Combined Contact Center events including both agent and task events\n * @enum {string}\n * @public\n */\nexport const CC_EVENTS = {\n ...CC_AGENT_EVENTS,\n ...CC_TASK_EVENTS,\n} as const;\n\n/**\n * Event data received when agent connects to the system\n * @public\n */\nexport type WelcomeEvent = {\n /** ID of the agent that connected */\n agentId: string;\n};\n\n/**\n * Response type for welcome events which can be either success or error\n * @public\n */\nexport type WelcomeResponse = WelcomeEvent | Error;\n\n/**\n * Type representing the union of all possible Contact Center events\n * @public\n */\nexport type CC_EVENTS = Enum<typeof CC_EVENTS>;\n\n/**\n * WebSocket event structure for Contact Center events\n * @public\n */\nexport type WebSocketEvent = {\n /** Type of the event */\n type: CC_EVENTS;\n /** Event payload data */\n data:\n | WelcomeEvent\n | Agent.StationLoginSuccess\n | Agent.LogoutSuccess\n | Agent.ReloginSuccess\n | Agent.StateChangeSuccess\n | Agent.BuddyAgentsSuccess;\n};\n\n/**\n * Represents the response from getUserUsingCI method.\n */\nexport type AgentResponse = {\n /**\n * ID of the agent.\n */\n id: string;\n\n /**\n * The ciUserId of the agent.\n */\n ciUserId: string;\n\n /**\n * The first name of the agent.\n */\n firstName: string;\n\n /**\n * The last name of the agent.\n */\n lastName: string;\n\n /**\n * Identifier for a Desktop Profile.\n */\n agentProfileId: string;\n\n /**\n * The email address of the agent.\n */\n email: string;\n\n /**\n * Team IDs assigned to the agent.\n */\n teamIds: string[];\n\n /**\n * Multimedia profile ID associated with the agent.\n */\n multimediaProfileId: string;\n\n /**\n * Skill profile ID of the agent.\n */\n skillProfileId: string;\n\n /**\n * Site ID of the agent.\n */\n siteId: string;\n\n /**\n * Database ID of the agent.\n */\n dbId?: string;\n\n /**\n * The default dialed number of the agent.\n */\n defaultDialledNumber?: string;\n};\n\n/**\n * Represents the response from getDesktopProfileById method.\n */\nexport type DesktopProfileResponse = {\n /**\n * Represents the voice options of an agent.\n */\n loginVoiceOptions: LoginOption[];\n\n /**\n * Wrap-up codes that the agents can select when they wrap up a contact. It can take one of these values: ALL - To make all wrap-up codes available. SPECIFIC - To make specific codes available.\n */\n accessWrapUpCode: string;\n\n /**\n * Idle codes that the agents can select in Agent Desktop. It can take one of these values: ALL - To make all idle codes available. SPECIFIC - To make specific codes available.\n */\n accessIdleCode: string;\n\n /**\n * Wrap-up codes list that the agents can select when they wrap up a contact.\n */\n wrapUpCodes: string[];\n\n /**\n * Idle codes list that the agents can select in Agent Desktop.\n */\n idleCodes: string[];\n\n /**\n * Dial plan enabled for the agent.\n */\n dialPlanEnabled: boolean;\n\n /**\n * Last agent routing enabled for the agent.\n */\n lastAgentRouting: boolean;\n\n /**\n * Auto wrap-up allowed.\n */\n autoWrapUp: boolean;\n\n /**\n * Auto answer allowed.\n */\n autoAnswer: boolean;\n\n /**\n * Auto wrap-up after seconds.\n */\n autoWrapAfterSeconds: number;\n\n /**\n * Agent available after outdial.\n */\n agentAvailableAfterOutdial: boolean;\n\n /**\n * Allow auto wrap-up extension.\n */\n allowAutoWrapUpExtension: boolean;\n\n /**\n * Outdial enabled for the agent.\n */\n outdialEnabled: boolean;\n\n /**\n * Outdial entry point ID of the agent.\n */\n outdialEntryPointId: string;\n\n /**\n * Outdial ANI ID of the agent.\n */\n outdialANIId: string;\n\n /**\n * Consult to queue allowed.\n */\n consultToQueue: boolean;\n\n /**\n * Address book ID of the agent.\n */\n addressBookId: string;\n\n /**\n * Viewable statistics of the agent.\n */\n viewableStatistics: {\n id: string;\n agentStats: boolean;\n accessQueueStats: string;\n contactServiceQueues: string[];\n loggedInTeamStats: boolean;\n accessTeamStats: string;\n teams: string[];\n };\n\n /**\n * Agent DN validation of the agent.\n */\n agentDNValidation: string;\n\n /**\n * Dial plans of the agent.\n */\n dialPlans: string[];\n\n /**\n * Timeout desktop inactivity custom enabled.\n */\n timeoutDesktopInactivityCustomEnabled: boolean;\n\n /**\n * Timeout desktop inactivity minutes.\n */\n timeoutDesktopInactivityMins: number;\n\n /**\n * Show user details in Microsoft enabled or not.\n */\n showUserDetailsMS: boolean;\n\n /**\n * State synchronization in Microsoft enabled or not.\n */\n stateSynchronizationMS: boolean;\n\n /**\n * Show user details in Webex enabled or not.\n */\n showUserDetailsWebex: boolean;\n\n /**\n * State synchronization in Webex enabled or not.\n */\n stateSynchronizationWebex: boolean;\n};\n\n/**\n * Response containing multimedia profile configuration for an agent\n * Defines capabilities across different communication channels\n * @private\n */\nexport type MultimediaProfileResponse = {\n /** Organization identifier */\n organizationId: string;\n /** Profile identifier */\n id: string;\n /** Version number of the profile */\n version: number;\n /** Profile name */\n name: string;\n /** Profile description */\n description: string;\n /** Maximum number of concurrent chat interactions */\n chat: number;\n /** Maximum number of concurrent email interactions */\n email: number;\n /** Maximum number of concurrent voice interactions */\n telephony: number;\n /** Maximum number of concurrent social media interactions */\n social: number;\n /** Whether the profile is active */\n active: boolean;\n /** Whether channel blending is enabled */\n blendingModeEnabled: boolean;\n /** Type of blending mode configuration */\n blendingMode: string;\n /** Whether this is the system default profile */\n systemDefault: boolean;\n /** Timestamp when profile was created */\n createdTime: number;\n /** Timestamp when profile was last updated */\n lastUpdatedTime: number;\n};\n\n/**\n * Response from subscription requests containing WebSocket connection details\n * @public\n */\nexport type SubscribeResponse = {\n /** HTTP status code of the response */\n statusCode: number;\n /** Response body containing connection details */\n body: {\n /** WebSocket URL for real-time updates */\n webSocketUrl?: string;\n /** Unique subscription identifier */\n subscriptionId?: string;\n };\n /** Optional status or error message */\n message: string | null;\n};\n\nexport type AuxCode = {\n /**\n * ID of the Auxiliary Code.\n */\n id: string;\n\n /**\n * Indicates whether the auxiliary code is active or not.\n */\n active: boolean;\n\n /**\n * Indicates whether this is the default code (true) or not (false).\n */\n defaultCode: boolean;\n\n /**\n * Indicates whether this is the system default code (true) or not (false).\n */\n isSystemCode: boolean;\n\n /**\n * A short description indicating the context of the code.\n */\n description: string;\n\n /**\n * Name of the Auxiliary Code.\n */\n name: string;\n\n /**\n * Indicates the work type associated with this code.\n */\n workTypeCode: string;\n};\n\nexport type ListAuxCodesResponse = {\n data: AuxCode[];\n meta: {\n page: number;\n pageSize: number;\n totalPages: number;\n totalRecords: number;\n };\n};\n\n/**\n * Configuration for a team in the contact center system\n * @private\n */\nexport type TeamList = {\n /** Unique identifier for the team */\n id: string;\n /** Team name */\n name: string;\n /** Type of team (e.g., 'AGENT_BASED') */\n teamType: string;\n /** Current status of the team */\n teamStatus: string;\n /** Whether the team is active */\n active: boolean;\n /** Site identifier where team is located */\n siteId: string;\n /** Name of the site */\n siteName: string;\n /** Optional multimedia profile ID for team */\n multiMediaProfileId?: string;\n /** List of user IDs belonging to team */\n userIds: string[];\n /** Whether queue rankings are enabled for team */\n rankQueuesForTeam: boolean;\n /** Ordered list of queue rankings */\n queueRankings: string[];\n /** Optional database identifier */\n dbId?: string;\n /** Optional desktop layout identifier */\n desktopLayoutId?: string;\n};\n\n/**\n * Response type for listing teams with pagination metadata\n * @private\n */\nexport type ListTeamsResponse = {\n /** Array of team configurations */\n data: TeamList[];\n /** Pagination metadata */\n meta: {\n /** Current page number */\n page: number;\n /** Number of items per page */\n pageSize: number;\n /** Total number of pages */\n totalPages: number;\n /** Total number of records */\n totalRecords: number;\n };\n};\n\n/**\n * Basic organization information in the contact center system\n * @private\n * @ignore\n */\nexport type OrgInfo = {\n /** Tenant identifier */\n tenantId: string;\n /** Organization timezone */\n timezone: string;\n};\n\n/**\n * Organization-wide feature settings and configurations\n * @private\n */\nexport type OrgSettings = {\n /** Whether WebRTC functionality is enabled */\n webRtcEnabled: boolean;\n /** Whether sensitive data masking is enabled */\n maskSensitiveData: boolean;\n /** Whether campaign manager features are enabled */\n campaignManagerEnabled: boolean;\n};\n\n/**\n * Contact center site configuration information\n * @private\n */\nexport type SiteInfo = {\n /** Unique site identifier */\n id: string;\n /** Site name */\n name: string;\n /** Whether site is active */\n active: boolean;\n /** Multimedia profile ID for site */\n multimediaProfileId: string;\n /** Whether this is the system default site */\n systemDefault: boolean;\n};\n\n/**\n * Tenant-level configuration data and settings\n * @private\n */\nexport type TenantData = {\n /** Desktop inactivity timeout in minutes */\n timeoutDesktopInactivityMins: number;\n /** Whether default DN is enforced */\n forceDefaultDn: boolean;\n /** Regex pattern for default DN validation */\n dnDefaultRegex: string;\n /** Regex pattern for other DN validation */\n dnOtherRegex: string;\n /** Whether privacy shield feature is visible */\n privacyShieldVisible: boolean;\n /** Whether outbound dialing is enabled */\n outdialEnabled: boolean;\n /** Whether ending calls is enabled */\n endCallEnabled: boolean;\n /** Whether ending consultations is enabled */\n endConsultEnabled: boolean;\n /** Whether call variables are suppressed */\n callVariablesSuppressed: boolean;\n /** Whether desktop inactivity timeout is enabled */\n timeoutDesktopInactivityEnabled: boolean;\n /** Lost connection recovery timeout in seconds */\n lostConnectionRecoveryTimeout: number;\n};\n\n/**\n * URL mapping configuration for external integrations\n * @public\n */\nexport type URLMapping = {\n id: string;\n name: string;\n url: string;\n links: string[]; // Assuming 'links' is an array of strings, adjust if necessary\n createdTime: number; // Assuming timestamps are represented as numbers\n lastUpdatedTime: number;\n};\n\n/**\n * Constant representing idle code\n * @public\n * @ignore\n */\nexport const IDLE_CODE = 'IDLE_CODE';\n\n/**\n * Constant representing wrap up code\n * @public\n * @ignore\n */\nexport const WRAP_UP_CODE = 'WRAP_UP_CODE';\n\n/**\n * Type representing the possible auxiliary code types\n * @public\n */\nexport type AuxCodeType = typeof IDLE_CODE | typeof WRAP_UP_CODE;\n\n/**\n * Sort order configuration for queries\n * @internal\n */\ntype SortOrder = {\n /** Property to sort by */\n property: string;\n /** Sort order direction */\n order: string;\n};\n\n/**\n * Search query configuration\n * @internal\n */\ntype SearchQuery = {\n /** Properties to search in */\n properties: string;\n /** Search value */\n value: string;\n};\n\n/**\n * Parameters for querying Contact Center resources\n * @public\n */\nexport type QueryParams = {\n /** Page number for pagination */\n pageNumber?: number;\n pageSize?: number;\n attributes?: Array<string>;\n ids?: Array<string>;\n queueType?: string;\n entryPointType?: string;\n channelType?: string;\n isActive?: boolean;\n workTypeCode?: AuxCodeType;\n names?: Array<string>;\n sortOrder?: SortOrder;\n searchQuery?: SearchQuery;\n defaultCode?: boolean;\n search?: string;\n desktopProfileFilter?: boolean;\n};\n\n/**\n * Basic entity information used throughout the system\n * @public\n */\nexport type Entity = {\n /** Whether this is a system entity */\n isSystem: boolean;\n /** Entity name */\n name: string;\n /** Unique entity identifier */\n id: string;\n /** Whether this is the default entity */\n isDefault: boolean;\n};\n\n/**\n * Dial plan entity definition containing number manipulation rules\n * @public\n */\nexport type DialPlanEntity = {\n /** Unique identifier for the dial plan */\n id: string;\n /** Regular expression pattern for matching numbers */\n regularExpression: string;\n /** Prefix to add to matched numbers */\n prefix: string;\n /** Characters to strip from matched numbers */\n strippedChars: string;\n /** Name of the dial plan */\n name: string;\n};\n\n/**\n * Complete dial plan configuration for number handling\n * @public\n */\nexport type DialPlan = {\n /** Type of dial plan (e.g., 'adhocDial') */\n type: string;\n /** List of dial plan entities with transformation rules */\n dialPlanEntity: {\n /** Regular expression pattern */\n regex: string;\n /** Number prefix */\n prefix: string;\n /** Characters to strip */\n strippedChars: string;\n /** Entity name */\n name: string;\n }[];\n};\n\n/**\n * Agent wrap-up codes configuration with pagination metadata\n * @public\n */\nexport type agentWrapUpCodes = {\n /** Array of wrap-up code entities */\n data: Entity[];\n /** Pagination and navigation metadata */\n meta: {\n /** Navigation URLs for pagination */\n links: {\n /** URL for first page */\n first: string;\n /** URL for last page */\n last: string;\n /** URL for next page */\n next: string;\n /** URL for current page */\n self: string;\n };\n /** Organization identifier */\n orgid: string;\n /** Current page number */\n page: number;\n /** Number of items per page */\n pageSize: number;\n /** Total number of pages */\n totalPages: number;\n /** Total number of records */\n totalRecords: number;\n };\n};\n\n/**\n * Default wrap-up code configuration for an agent\n * @public\n */\nexport type agentDefaultWrapupCode = {\n /** Unique identifier for the wrap-up code */\n id: string;\n /** Display name of the wrap-up code */\n name: string;\n};\n\n/**\n * Wrap-up reason configuration used to classify completed interactions\n * @public\n */\nexport type WrapUpReason = {\n /** Whether this is a system-defined reason */\n isSystem: boolean;\n /** Display name of the reason */\n name: string;\n /** Unique identifier */\n id: string;\n /** Whether this is the default reason */\n isDefault: boolean;\n};\n\n/**\n * Wrap-up configuration data containing settings and available options\n * @public\n */\nexport type WrapupData = {\n /** Wrap-up configuration properties */\n wrapUpProps: {\n /** Whether automatic wrap-up is enabled */\n autoWrapup?: boolean;\n /** Time in seconds before auto wrap-up triggers */\n autoWrapupInterval?: number;\n /** Whether last agent routing is enabled */\n lastAgentRoute?: boolean;\n /** List of available wrap-up reasons */\n wrapUpReasonList: Array<WrapUpReason>;\n /** List of available wrap-up codes */\n wrapUpCodesList?: Array<string>;\n /** Access control for idle codes ('ALL' or 'SPECIFIC') */\n idleCodesAccess?: 'ALL' | 'SPECIFIC';\n /** Associated interaction identifier */\n interactionId?: string;\n /** Whether cancelling auto wrap-up is allowed */\n allowCancelAutoWrapup?: boolean;\n };\n};\n\n/**\n * Available login options for voice channel access\n * 'AGENT_DN' - Login using agent's DN\n * 'EXTENSION' - Login using extension number\n * 'BROWSER' - Login using browser-based WebRTC\n * @public\n */\nexport type LoginOption = 'AGENT_DN' | 'EXTENSION' | 'BROWSER';\n\n/**\n * Team configuration information\n * @public\n */\nexport type Team = {\n /** Unique team identifier */\n teamId: string;\n /** Team display name */\n teamName: string;\n /** Optional desktop layout configuration identifier */\n desktopLayoutId?: string;\n};\n\n/**\n * Basic queue configuration information\n * @public\n */\nexport type Queue = {\n /** Queue identifier */\n queueId: string;\n /** Queue display name */\n queueName: string;\n};\n\n/**\n * URL mappings for external system integrations\n * @public\n */\nexport type URLMappings = {\n /** Acqueon API endpoint URL */\n acqueonApiUrl: string;\n /** Acqueon console URL */\n acqueonConsoleUrl: string;\n};\n\n/**\n * Comprehensive agent profile configuration in the contact center system\n * Contains all settings and capabilities for an agent\n * @public\n */\nexport type Profile = {\n /** Microsoft Teams integration configuration */\n microsoftConfig?: {\n /** Whether to show user details in Teams */\n showUserDetailsMS?: boolean;\n /** Whether to sync agent state with Teams */\n stateSynchronizationMS?: boolean;\n };\n /** Webex integration configuration */\n webexConfig?: {\n /** Whether to show user details in Webex */\n showUserDetailsWebex?: boolean;\n /** Whether to sync agent state with Webex */\n stateSynchronizationWebex?: boolean;\n };\n /** List of teams the agent belongs to */\n teams: Team[];\n /** Agent's default dial number */\n defaultDn: string;\n dn?: string;\n /** Whether default DN is enforced at tenant level */\n forceDefaultDn: boolean;\n /** Whether default DN is enforced for this agent */\n forceDefaultDnForAgent: boolean;\n /** Regex pattern for US phone number validation */\n regexUS: RegExp | string;\n /** Regex pattern for international phone number validation */\n regexOther: RegExp | string;\n /** Unique identifier for the agent */\n agentId: string;\n /** Display name for the agent */\n agentName: string;\n /** Email address for the agent */\n agentMailId: string;\n /** Agent's profile configuration ID */\n agentProfileID: string;\n /** Dial plan configuration for number handling */\n dialPlan: DialPlan;\n /** Multimedia profile defining channel capabilities */\n multimediaProfileId: string;\n /** Skill profile defining agent competencies */\n skillProfileId: string;\n /** Site where agent is located */\n siteId: string;\n /** Enterprise-wide identifier */\n enterpriseId: string;\n /** Whether privacy shield feature is visible */\n privacyShieldVisible: boolean;\n /** Available idle codes */\n idleCodes: Entity[];\n /** List of specific idle codes */\n idleCodesList?: Array<string>;\n /** Access control for idle codes */\n idleCodesAccess?: 'ALL' | 'SPECIFIC';\n /** Available wrap-up codes */\n wrapupCodes: Entity[];\n /** Agent-specific wrap-up codes */\n agentWrapUpCodes?: agentWrapUpCodes;\n /** Default wrap-up code for agent */\n agentDefaultWrapUpCode?: agentDefaultWrapupCode;\n /** Default wrap-up code identifier */\n defaultWrapupCode: string;\n /** Wrap-up configuration data */\n wrapUpData: WrapupData;\n /** Organization identifier */\n orgId?: string;\n /** Whether outbound is enabled at tenant level */\n isOutboundEnabledForTenant: boolean;\n /** Whether outbound is enabled for this agent */\n isOutboundEnabledForAgent: boolean;\n /** Whether ad-hoc dialing is enabled */\n isAdhocDialingEnabled: boolean;\n /** Whether agent becomes available after outdial */\n isAgentAvailableAfterOutdial: boolean;\n /** Whether campaign management is enabled */\n isCampaignManagementEnabled: boolean;\n /** Outbound entry point */\n outDialEp: string;\n /** Whether ending calls is enabled */\n isEndCallEnabled: boolean;\n /** Whether ending consultations is enabled */\n isEndConsultEnabled: boolean;\n /** Optional lifecycle manager URL */\n lcmUrl?: string;\n /** Database identifier for agent */\n agentDbId: string;\n /** Optional analyzer identifier for agent */\n agentAnalyzerId?: string;\n /** Whether consult to queue is allowed */\n allowConsultToQueue: boolean;\n /** Additional campaign manager information */\n campaignManagerAdditionalInfo?: string;\n /** Whether personal statistics are enabled */\n agentPersonalStatsEnabled: boolean;\n /** Optional address book identifier */\n addressBookId?: string;\n /** Optional outbound ANI identifier */\n outdialANIId?: string;\n /** Optional analyzer user identifier */\n analyserUserId?: string;\n /** Whether call monitoring is enabled */\n isCallMonitoringEnabled?: boolean;\n /** Whether mid-call monitoring is enabled */\n isMidCallMonitoringEnabled?: boolean;\n /** Whether barge-in functionality is enabled */\n isBargeInEnabled?: boolean;\n /** Whether managed teams feature is enabled */\n isManagedTeamsEnabled?: boolean;\n /** Whether managed queues feature is enabled */\n isManagedQueuesEnabled?: boolean;\n /** Whether sending messages is enabled */\n isSendMessageEnabled?: boolean;\n /** Whether agent state changes are enabled */\n isAgentStateChangeEnabled?: boolean;\n /** Whether signing out agents is enabled */\n isSignOutAgentsEnabled?: boolean;\n /** Integration URL mappings */\n urlMappings?: URLMappings;\n /** Whether desktop inactivity timeout is enabled */\n isTimeoutDesktopInactivityEnabled: boolean;\n /** Desktop inactivity timeout in minutes */\n timeoutDesktopInactivityMins?: number;\n /** Whether analyzer features are enabled */\n isAnalyzerEnabled?: boolean;\n /** Tenant timezone */\n tenantTimezone?: string;\n /** Available voice login options */\n loginVoiceOptions?: LoginOption[];\n /** Current login device type */\n deviceType?: LoginOption;\n /** Current team identifier */\n currentTeamId?: string;\n /** Whether WebRTC is enabled */\n webRtcEnabled: boolean;\n /** Organization-wide idle codes */\n organizationIdleCodes?: Entity[];\n /** Whether recording management is enabled */\n isRecordingManagementEnabled?: boolean;\n /** Connection recovery timeout in milliseconds */\n lostConnectionRecoveryTimeout: number;\n /** Whether sensitive data masking is enabled */\n maskSensitiveData?: boolean;\n /** Whether agent is currently logged in */\n isAgentLoggedIn?: boolean;\n /** Last auxiliary code ID used for state change */\n lastStateAuxCodeId?: string;\n /** Timestamp of last state change */\n lastStateChangeTimestamp?: number;\n /** Timestamp of last idle code change */\n lastIdleCodeChangeTimestamp?: number;\n};\n\n/**\n * Contact distribution group configuration for routing logic\n * @public\n */\nexport type CallDistributionGroup = {\n /** List of agent groups in this distribution group */\n agentGroups: {\n /** Team identifier */\n teamId: string;\n }[];\n /** Distribution order priority */\n order: number;\n /** Distribution time duration in seconds */\n duration: number;\n};\n\n/**\n * Represents a single outdial ANI (Automatic Number Identification) entry\n * @public\n */\nexport type OutdialAniEntry = {\n /** Unique identifier for the ANI entry */\n id: string;\n /** Display name for the ANI entry */\n name: string;\n /** Phone number associated with this ANI entry */\n number: string;\n /** Related links for this ANI entry */\n links: string[];\n /** Timestamp when this entry was created (Unix timestamp in milliseconds) */\n createdTime: number;\n /** Timestamp when this entry was last updated (Unix timestamp in milliseconds) */\n lastUpdatedTime: number;\n};\n\n/**\n * Response structure for outdial ANI entries API call\n * @public\n */\nexport type OutdialAniEntriesResponse = OutdialAniEntry[];\n\n/**\n * Parameters for fetching outdial ANI entries\n * @public\n */\nexport type OutdialAniParams = {\n /** Outdial ANI ID from agent profile */\n outdialANI: string;\n /** Page number for pagination (optional) */\n page?: number;\n /** Number of entries per page (optional) */\n pageSize?: number;\n /** Search string to filter entries (optional) */\n search?: string;\n /** Filter expression for advanced filtering (optional) */\n filter?: string;\n /** Comma-separated list of attributes to include in response (optional) */\n attributes?: string;\n};\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5B;EACAE,2BAA2B,EAAE,0BAA0B;EACvD;EACAC,wBAAwB,EAAE,uBAAuB;EACjD;EACAC,kBAAkB,EAAE,kBAAkB;EACtC;EACAC,yBAAyB,EAAE,wBAAwB;EACnD;EACAC,oBAAoB,EAAE,oBAAoB;EAC1C;EACAC,2BAA2B,EAAE,0BAA0B;EACvD;EACAC,qBAAqB,EAAE,qBAAqB;EAC5C;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,gBAAgB,EAAE,iBAAiB;EACnC;EACAC,oBAAoB,EAAE,oBAAoB;EAC1C;EACAC,gBAAgB,EAAE,gBAAgB;EAClC;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,uBAAuB,EAAE,sBAAsB;EAC/C;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,wBAAwB,EAAE,uBAAuB;EACjD;EACAC,8BAA8B,EAAE,6BAA6B;EAC7D;EACAC,0BAA0B,EAAE,0BAA0B;EACtD;EACAC,yBAAyB,EAAE,yBAAyB;EACpD;EACAC,+BAA+B,EAAE,8BAA8B;EAC/D;EACAC,6BAA6B,EAAE,6BAA6B;EAC5D;EACAC,2BAA2B,EAAE,2BAA2B;EACxD;EACAC,kCAAkC,EAAE,iCAAiC;EACrE;EACAC,mCAAmC,EAAE,iCAAiC;EACtE;EACAC,4BAA4B,EAAE,4BAA4B;EAC1D;EACAC,gCAAgC,EAAE,+BAA+B;EACjE;EACAC,4BAA4B,EAAE,4BAA4B;EAC1D;EACAC,8BAA8B,EAAE,6BAA6B;EAC7D;EACAC,uBAAuB,EAAE,uBAAuB;EAChD;EACAC,2BAA2B,EAAE,0BAA0B;EACvD;EACAC,uBAAuB,EAAE,uBAAuB;EAChD;EACAC,2BAA2B,EAAE,0BAA0B;EACvD;EACAC,0BAA0B,EAAE,0BAA0B;EACtD;EACAC,yBAAyB,EAAE,yBAAyB;EACpD;EACAC,6BAA6B,EAAE,4BAA4B;EAC3D;EACAC,wBAAwB,EAAE,wBAAwB;EAClD;EACAC,8BAA8B,EAAE,6BAA6B;EAC7D;EACAC,yBAAyB,EAAE,yBAAyB;EACpD;EACAC,+BAA+B,EAAE,8BAA8B;EAC/D;EACAC,aAAa,EAAE,cAAc;EAC7B;EACAC,wBAAwB,EAAE,uBAAuB;EACjD;EACAC,YAAY,EAAE,aAAa;EAC3B;EACAC,eAAe,EAAE,gBAAgB;EACjC;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,qBAAqB,EAAE,qBAAqB;EAC5C;EACAC,aAAa,EAAE,cAAc;EAC7B;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,sBAAsB,EAAE,sBAAsB;EAC9C;EACAC,wBAAwB,EAAE,wBAAwB;EAClD;EACAC,mBAAmB,EAAE;AACvB,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,eAAe,GAAAlD,OAAA,CAAAkD,eAAA,GAAG;EAC7B;EACAC,OAAO,EAAE,SAAS;EAClB;EACAC,qBAAqB,EAAE,qBAAqB;EAC5C;EACAC,oBAAoB,EAAE,oBAAoB;EAC1C;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,YAAY,EAAE,QAAQ;EACtB;EACAC,oBAAoB,EAAE,oBAAoB;EAC1C;EACAC,mBAAmB,EAAE,mBAAmB;EACxC;EACAC,mBAAmB,EAAE,cAAc;EACnC;EACAC,2BAA2B,EAAE,0BAA0B;EACvD;EACAC,0BAA0B,EAAE,yBAAyB;EACrD;EACAC,kBAAkB,EAAE,kBAAkB;EACtC;EACAC,iBAAiB,EAAE,mBAAmB;EACtC;EACAC,0BAA0B,EAAE,yBAAyB;EACrD;EACAC,yBAAyB,EAAE,wBAAwB;EACnD;EACAC,kBAAkB,EAAE,aAAa;EACjC;EACAC,0BAA0B,EAAE,aAAa;EACzC;EACAC,kCAAkC,EAAE,2BAA2B;EAC/D;EACAC,sBAAsB,EAAE;AAC1B,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAS,GAAArE,OAAA,CAAAqE,SAAA,GAAG;EACvB,GAAGnB,eAAe;EAClB,GAAGnD;AACL,CAAU;;AAEV;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAcA;AACA;AACA;;AA+DA;AACA;AACA;;AA6IA;AACA;AACA;AACA;AACA;;AAkCA;AACA;AACA;AACA;;AA8DA;AACA;AACA;AACA;;AA8BA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;;AAcA;AACA;AACA;AACA;;AA0BA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACO,MAAMuE,SAAS,GAAAtE,OAAA,CAAAsE,SAAA,GAAG,WAAW;;AAEpC;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAY,GAAAvE,OAAA,CAAAuE,YAAA,GAAG,cAAc;;AAE1C;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;;AAcA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA;;AA8BA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;;AAyJA;AACA;AACA;AACA;;AAaA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DESTINATION_TYPE","exports","QUEUE","DIALNUMBER","AGENT","ENTRYPOINT","CONSULT_TRANSFER_DESTINATION_TYPE","MEDIA_CHANNEL","EMAIL","CHAT","TELEPHONY","SOCIAL","SMS","FACEBOOK","WHATSAPP","TASK_EVENTS"],"sources":["types.ts"],"sourcesContent":["import {CallId} from '@webex/calling/dist/types/common/types';\nimport EventEmitter from 'events';\nimport {Msg} from '../core/GlobalTypes';\nimport AutoWrapup from './AutoWrapup';\n\n/**\n * Unique identifier for a task in the contact center system\n * @public\n */\nexport type TaskId = string;\n\n/**\n * Helper type for creating enum-like objects with type safety\n * @internal\n */\ntype Enum<T extends Record<string, unknown>> = T[keyof T];\n\n/**\n * Defines the valid destination types for routing tasks within the contact center\n * Used to specify where a task should be directed\n * @public\n */\nexport const DESTINATION_TYPE = {\n /** Route task to a specific queue */\n QUEUE: 'queue',\n /** Route task to a specific dial number */\n DIALNUMBER: 'dialNumber',\n /** Route task to a specific agent */\n AGENT: 'agent',\n /** Route task to an entry point (supported only for consult operations) */\n ENTRYPOINT: 'entryPoint',\n};\n\n/**\n * Type representing valid destination types for task routing\n * Derived from the DESTINATION_TYPE constant\n * @public\n */\nexport type DestinationType = Enum<typeof DESTINATION_TYPE>;\n\n/**\n * Defines the valid destination types for consult transfer operations\n * Used when transferring a task after consultation\n * @public\n */\nexport const CONSULT_TRANSFER_DESTINATION_TYPE = {\n /** Transfer to a specific agent */\n AGENT: 'agent',\n /** Transfer to an entry point */\n ENTRYPOINT: 'entryPoint',\n /** Transfer to a dial number */\n DIALNUMBER: 'dialNumber',\n /** Transfer to a queue */\n QUEUE: 'queue',\n};\n\n/**\n * Type representing valid destination types for consult transfers\n * Derived from the CONSULT_TRANSFER_DESTINATION_TYPE constant\n * @public\n */\nexport type ConsultTransferDestinationType = Enum<typeof CONSULT_TRANSFER_DESTINATION_TYPE>;\n\n/**\n * Defines all supported media channel types for customer interactions\n * These represent the different ways customers can communicate with agents\n * @public\n */\nexport const MEDIA_CHANNEL = {\n /** Email-based communication channel */\n EMAIL: 'email',\n /** Web-based chat communication channel */\n CHAT: 'chat',\n /** Voice/phone communication channel */\n TELEPHONY: 'telephony',\n /** Social media platform communication channel */\n SOCIAL: 'social',\n /** SMS text messaging communication channel */\n SMS: 'sms',\n /** Facebook Messenger communication channel */\n FACEBOOK: 'facebook',\n /** WhatsApp messaging communication channel */\n WHATSAPP: 'whatsapp',\n} as const;\n\n/**\n * Type representing valid media channels\n * Derived from the MEDIA_CHANNEL constant\n * @public\n */\nexport type MEDIA_CHANNEL = Enum<typeof MEDIA_CHANNEL>;\n\n/**\n * Enumeration of all task-related events that can occur in the contact center system\n * These events represent different states and actions in the task lifecycle\n * @public\n */\nexport enum TASK_EVENTS {\n /**\n * Triggered when a new task is received by the system\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_INCOMING, (task: ITask) => {\n * console.log('New task received:', task.data.interactionId);\n * // Handle incoming task\n * });\n * ```\n */\n TASK_INCOMING = 'task:incoming',\n\n /**\n * Triggered when a task is successfully assigned to an agent\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_ASSIGNED, (task: ITask) => {\n * console.log('Task assigned:', task.data.interactionId);\n * // Begin handling the assigned task\n * });\n * ```\n */\n TASK_ASSIGNED = 'task:assigned',\n\n /**\n * Triggered when the media state of a task changes\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_MEDIA, (track: MediaStreamTrack) => {\n * // Handle media track updates\n * });\n * ```\n */\n TASK_MEDIA = 'task:media',\n\n /**\n * Triggered when a task is removed from an agent\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_UNASSIGNED, (task: ITask) => {\n * console.log('Task unassigned:', task.data.interactionId);\n * // Clean up task resources\n * });\n * ```\n */\n TASK_UNASSIGNED = 'task:unassigned',\n\n /**\n * Triggered when a task is placed on hold\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_HOLD, (task: ITask) => {\n * console.log('Task placed on hold:', task.data.interactionId);\n * // Update UI to show hold state\n * });\n * ```\n */\n TASK_HOLD = 'task:hold',\n\n /**\n * Triggered when a task is resumed from hold\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_RESUME, (task: ITask) => {\n * console.log('Task resumed from hold:', task.data.interactionId);\n * // Update UI to show active state\n * });\n * ```\n */\n TASK_RESUME = 'task:resume',\n\n /**\n * Triggered when a consultation session ends\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULT_END, (task: ITask) => {\n * console.log('Consultation ended:', task.data.interactionId);\n * // Clean up consultation resources\n * });\n * ```\n */\n TASK_CONSULT_END = 'task:consultEnd',\n\n /**\n * Triggered when a queue consultation is cancelled\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULT_QUEUE_CANCELLED, (task: ITask) => {\n * console.log('Queue consultation cancelled:', task.data.interactionId);\n * // Handle consultation cancellation\n * });\n * ```\n */\n TASK_CONSULT_QUEUE_CANCELLED = 'task:consultQueueCancelled',\n\n /**\n * Triggered when a queue consultation fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULT_QUEUE_FAILED, (task: ITask) => {\n * console.log('Queue consultation failed:', task.data.interactionId);\n * // Handle consultation failure\n * });\n * ```\n */\n TASK_CONSULT_QUEUE_FAILED = 'task:consultQueueFailed',\n\n /**\n * Triggered when a consultation request is accepted\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULT_ACCEPTED, (task: ITask) => {\n * console.log('Consultation accepted:', task.data.interactionId);\n * // Begin consultation\n * });\n * ```\n */\n TASK_CONSULT_ACCEPTED = 'task:consultAccepted',\n\n /**\n * Triggered when consultation is in progress\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULTING, (task: ITask) => {\n * console.log('Consulting in progress:', task.data.interactionId);\n * // Handle ongoing consultation\n * });\n * ```\n */\n TASK_CONSULTING = 'task:consulting',\n\n /**\n * Triggered when a new consultation is created\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULT_CREATED, (task: ITask) => {\n * console.log('Consultation created:', task.data.interactionId);\n * // Initialize consultation\n * });\n * ```\n */\n TASK_CONSULT_CREATED = 'task:consultCreated',\n\n /**\n * Triggered when a consultation is offered\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_OFFER_CONSULT, (task: ITask) => {\n * console.log('Consultation offered:', task.data.interactionId);\n * // Handle consultation offer\n * });\n * ```\n */\n TASK_OFFER_CONSULT = 'task:offerConsult',\n\n /**\n * Triggered when a task is completed/terminated\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_END, (task: ITask) => {\n * console.log('Task ended:', task.data.interactionId);\n * // Clean up and finalize task\n * });\n * ```\n */\n TASK_END = 'task:end',\n\n /**\n * Triggered when a task enters wrap-up state\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_WRAPUP, (task: ITask) => {\n * console.log('Task in wrap-up:', task.data.interactionId);\n * // Begin wrap-up process\n * });\n * ```\n */\n TASK_WRAPUP = 'task:wrapup',\n\n /**\n * Triggered when task wrap-up is completed\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_WRAPPEDUP, (task: ITask) => {\n * console.log('Task wrapped up:', task.data.interactionId);\n * // Finalize task completion\n * });\n * ```\n */\n TASK_WRAPPEDUP = 'task:wrappedup',\n\n /**\n * Triggered when recording is paused\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_RECORDING_PAUSED, (task: ITask) => {\n * console.log('Recording paused:', task.data.interactionId);\n * // Update recording state\n * });\n * ```\n */\n TASK_RECORDING_PAUSED = 'task:recordingPaused',\n\n /**\n * Triggered when recording pause attempt fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_RECORDING_PAUSE_FAILED, (task: ITask) => {\n * console.log('Recording pause failed:', task.data.interactionId);\n * // Handle pause failure\n * });\n * ```\n */\n TASK_RECORDING_PAUSE_FAILED = 'task:recordingPauseFailed',\n\n /**\n * Triggered when recording is resumed\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_RECORDING_RESUMED, (task: ITask) => {\n * console.log('Recording resumed:', task.data.interactionId);\n * // Update recording state\n * });\n * ```\n */\n TASK_RECORDING_RESUMED = 'task:recordingResumed',\n\n /**\n * Triggered when recording resume attempt fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_RECORDING_RESUME_FAILED, (task: ITask) => {\n * console.log('Recording resume failed:', task.data.interactionId);\n * // Handle resume failure\n * });\n * ```\n */\n TASK_RECORDING_RESUME_FAILED = 'task:recordingResumeFailed',\n\n /**\n * Triggered when a task is rejected/unanswered\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_REJECT, (task: ITask) => {\n * console.log('Task rejected:', task.data.interactionId);\n * // Handle task rejection\n * });\n * ```\n */\n TASK_REJECT = 'task:rejected',\n\n /**\n * Triggered when a task is populated with data\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_HYDRATE, (task: ITask) => {\n * console.log('Task hydrated:', task.data.interactionId);\n * // Process task data\n * });\n * ```\n */\n TASK_HYDRATE = 'task:hydrate',\n\n /**\n * Triggered when a new contact is offered\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_OFFER_CONTACT, (task: ITask) => {\n * console.log('Contact offered:', task.data.interactionId);\n * // Handle contact offer\n * });\n * ```\n */\n TASK_OFFER_CONTACT = 'task:offerContact',\n\n /**\n * Triggered when a conference is being established\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_ESTABLISHING, (task: ITask) => {\n * console.log('Conference establishing:', task.data.interactionId);\n * // Handle conference setup in progress\n * });\n * ```\n */\n TASK_CONFERENCE_ESTABLISHING = 'task:conferenceEstablishing',\n\n /**\n * Triggered when a conference is started successfully\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_STARTED, (task: ITask) => {\n * console.log('Conference started:', task.data.interactionId);\n * // Handle conference start\n * });\n * ```\n */\n TASK_CONFERENCE_STARTED = 'task:conferenceStarted',\n\n /**\n * Triggered when a conference fails to start\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_FAILED, (task: ITask) => {\n * console.log('Conference failed:', task.data.interactionId);\n * // Handle conference failure\n * });\n * ```\n */\n TASK_CONFERENCE_FAILED = 'task:conferenceFailed',\n\n /**\n * Triggered when a conference is ended successfully\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_ENDED, (task: ITask) => {\n * console.log('Conference ended:', task.data.interactionId);\n * // Handle conference end\n * });\n * ```\n */\n TASK_CONFERENCE_ENDED = 'task:conferenceEnded',\n\n /**\n * Triggered when a participant joins the conference\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_PARTICIPANT_JOINED, (task: ITask) => {\n * console.log('Participant joined conference:', task.data.interactionId);\n * // Handle participant joining\n * });\n * ```\n */\n TASK_PARTICIPANT_JOINED = 'task:participantJoined',\n\n /**\n * Triggered when a participant leaves the conference\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_PARTICIPANT_LEFT, (task: ITask) => {\n * console.log('Participant left conference:', task.data.interactionId);\n * // Handle participant leaving\n * });\n * ```\n */\n TASK_PARTICIPANT_LEFT = 'task:participantLeft',\n\n /**\n * Triggered when conference transfer is successful\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_TRANSFERRED, (task: ITask) => {\n * console.log('Conference transferred:', task.data.interactionId);\n * // Handle successful conference transfer\n * });\n * ```\n */\n TASK_CONFERENCE_TRANSFERRED = 'task:conferenceTransferred',\n\n /**\n * Triggered when conference transfer fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_TRANSFER_FAILED, (task: ITask) => {\n * console.log('Conference transfer failed:', task.data.interactionId);\n * // Handle failed conference transfer\n * });\n * ```\n */\n TASK_CONFERENCE_TRANSFER_FAILED = 'task:conferenceTransferFailed',\n\n /**\n * Triggered when ending a conference fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_END_FAILED, (task: ITask) => {\n * console.log('Conference end failed:', task.data.interactionId);\n * // Handle failed conference end\n * });\n * ```\n */\n TASK_CONFERENCE_END_FAILED = 'task:conferenceEndFailed',\n\n /**\n * Triggered when participant exit from conference fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_PARTICIPANT_LEFT_FAILED, (task: ITask) => {\n * console.log('Participant failed to leave conference:', task.data.interactionId);\n * // Handle failed participant exit\n * });\n * ```\n */\n TASK_PARTICIPANT_LEFT_FAILED = 'task:participantLeftFailed',\n}\n\n/**\n * Represents a customer interaction within the contact center system\n * Contains comprehensive details about an ongoing customer interaction\n * @public\n */\nexport type Interaction = {\n /** Indicates if the interaction is managed by Flow Control */\n isFcManaged: boolean;\n /** Indicates if the interaction has been terminated */\n isTerminated: boolean;\n /** The type of media channel for this interaction */\n mediaType: MEDIA_CHANNEL;\n /** List of previous virtual teams that handled this interaction */\n previousVTeams: string[];\n /** Current state of the interaction */\n state: string;\n /** Current virtual team handling the interaction */\n currentVTeam: string;\n /** List of participants in the interaction */\n participants: any; // TODO: Define specific participant type\n /** Unique identifier for the interaction */\n interactionId: string;\n /** Organization identifier */\n orgId: string;\n /** Timestamp when the interaction was created */\n createdTimestamp?: number;\n /** Indicates if wrap-up assistance is enabled */\n isWrapUpAssist?: boolean;\n /** Detailed call processing information and metadata */\n callProcessingDetails: {\n /** Name of the Queue Manager handling this interaction */\n QMgrName: string;\n /** Indicates if the task should be self-serviced */\n taskToBeSelfServiced: string;\n /** Automatic Number Identification (caller's number) */\n ani: string;\n /** Display version of the ANI */\n displayAni: string;\n /** Dialed Number Identification Service number */\n dnis: string;\n /** Tenant identifier */\n tenantId: string;\n /** Queue identifier */\n QueueId: string;\n /** Virtual team identifier */\n vteamId: string;\n /** Indicates if pause/resume functionality is enabled */\n pauseResumeEnabled?: string;\n /** Duration of pause in seconds */\n pauseDuration?: string;\n /** Indicates if the interaction is currently paused */\n isPaused?: string;\n /** Indicates if recording is in progress */\n recordInProgress?: string;\n /** Indicates if recording has started */\n recordingStarted?: string;\n /** Indicates if Consult to Queue is in progress */\n ctqInProgress?: string;\n /** Indicates if outdial transfer to queue is enabled */\n outdialTransferToQueueEnabled?: string;\n /** IVR conversation transcript */\n convIvrTranscript?: string;\n /** Customer's name */\n customerName: string;\n /** Name of the virtual team */\n virtualTeamName: string;\n /** RONA (Redirection on No Answer) timeout in seconds */\n ronaTimeout: string;\n /** Category of the interaction */\n category: string;\n /** Reason for the interaction */\n reason: string;\n /** Source number for the interaction */\n sourceNumber: string;\n /** Source page that initiated the interaction */\n sourcePage: string;\n /** Application user identifier */\n appUser: string;\n /** Customer's contact number */\n customerNumber: string;\n /** Code indicating the reason for interaction */\n reasonCode: string;\n /** Path taken through the IVR system */\n IvrPath: string;\n /** Identifier for the IVR path */\n pathId: string;\n /** Email address or contact point that initiated the interaction */\n fromAddress: string;\n /** Identifier of the parent interaction for related interactions */\n parentInteractionId?: string;\n /** Identifier of the child interaction for related interactions */\n childInteractionId?: string;\n /** Type of relationship between parent and child interactions */\n relationshipType?: string;\n /** ANI of the parent interaction */\n parent_ANI?: string;\n /** DNIS of the parent interaction */\n parent_DNIS?: string;\n /** Indicates if the consulted destination agent has joined */\n consultDestinationAgentJoined?: boolean | string;\n /** Name of the destination agent for consultation */\n consultDestinationAgentName?: string;\n /** DN of the parent interaction's agent */\n parent_Agent_DN?: string;\n /** Name of the parent interaction's agent */\n parent_Agent_Name?: string;\n /** Team name of the parent interaction's agent */\n parent_Agent_TeamName?: string;\n /** Indicates if the interaction is in conference mode */\n isConferencing?: string;\n /** Type of monitoring being performed */\n monitorType?: string;\n /** Name of the workflow being executed */\n workflowName?: string;\n /** Identifier of the workflow */\n workflowId?: string;\n /** Indicates if monitoring is in invisible mode */\n monitoringInvisibleMode?: string;\n /** Identifier for the monitoring request */\n monitoringRequestId?: string;\n /** Timeout for participant invitation */\n participantInviteTimeout?: string;\n /** Filename for music on hold */\n mohFileName?: string;\n /** Flag for continuing recording during transfer */\n CONTINUE_RECORDING_ON_TRANSFER?: string;\n /** Entry point identifier */\n EP_ID?: string;\n /** Type of routing being used */\n ROUTING_TYPE?: string;\n /** Events registered with Flow Control Engine */\n fceRegisteredEvents?: string;\n /** Indicates if the interaction is parked */\n isParked?: string;\n /** Priority level of the interaction */\n priority?: string;\n /** Identifier for the routing strategy */\n routingStrategyId?: string;\n /** Current state of monitoring */\n monitoringState?: string;\n /** Indicates if blind transfer is in progress */\n BLIND_TRANSFER_IN_PROGRESS?: boolean;\n /** Desktop view configuration for Flow Control */\n fcDesktopView?: string;\n };\n /** Main interaction identifier for related interactions */\n mainInteractionId?: string;\n /** Media-specific information for the interaction */\n media: Record<\n string,\n {\n /** Unique identifier for the media resource */\n mediaResourceId: string;\n /** Type of media channel */\n mediaType: MEDIA_CHANNEL;\n /** Media manager handling this media */\n mediaMgr: string;\n /** List of participant identifiers */\n participants: string[];\n /** Type of media */\n mType: string;\n /** Indicates if media is on hold */\n isHold: boolean;\n /** Timestamp when media was put on hold */\n holdTimestamp: number | null;\n }\n >;\n /** Owner of the interaction */\n owner: string;\n /** Primary media channel for the interaction */\n mediaChannel: MEDIA_CHANNEL;\n /** Direction information for the contact */\n contactDirection: {type: string};\n /** Type of outbound interaction */\n outboundType?: string;\n /** Parameters passed through the call flow */\n callFlowParams: Record<\n string,\n {\n /** Name of the parameter */\n name: string;\n /** Qualifier for the parameter */\n qualifier: string;\n /** Description of the parameter */\n description: string;\n /** Data type of the parameter value */\n valueDataType: string;\n /** Value of the parameter */\n value: string;\n }\n >;\n};\n\n/**\n * Task payload containing detailed information about a contact center task\n * This structure encapsulates all relevant data for task management\n * @public\n */\nexport type TaskData = {\n /** Unique identifier for the media resource handling this task */\n mediaResourceId: string;\n /** Type of event that triggered this task data */\n eventType: string;\n /** Timestamp when the event occurred */\n eventTime?: number;\n /** Identifier of the agent handling the task */\n agentId: string;\n /** Identifier of the destination agent for transfers/consults */\n destAgentId: string;\n /** Unique tracking identifier for the task */\n trackingId: string;\n /** Media resource identifier for consultation operations */\n consultMediaResourceId: string;\n /** Detailed interaction information */\n interaction: Interaction;\n /** Unique identifier for the participant */\n participantId?: string;\n /** Indicates if the task is from the owner */\n fromOwner?: boolean;\n /** Indicates if the task is to the owner */\n toOwner?: boolean;\n /** Identifier for child interaction in consult/transfer scenarios */\n childInteractionId?: string;\n /** Unique identifier for the interaction */\n interactionId: string;\n /** Organization identifier */\n orgId: string;\n /** Current owner of the task */\n owner: string;\n /** Queue manager handling the task */\n queueMgr: string;\n /** Name of the queue where task is queued */\n queueName?: string;\n /** Type of the task */\n type: string;\n /** Timeout value for RONA (Redirection on No Answer) in seconds */\n ronaTimeout?: number;\n /** Indicates if the task is in consultation state */\n isConsulted?: boolean;\n /** Indicates if the task is in conference state */\n isConferencing: boolean;\n /** Identifier of agent who last updated the task */\n updatedBy?: string;\n /** Type of destination for transfer/consult */\n destinationType?: string;\n /** Indicates if the task was automatically resumed */\n autoResumed?: boolean;\n /** Code indicating the reason for an action */\n reasonCode?: string | number;\n /** Description of the reason for an action */\n reason?: string;\n /** Identifier of the consulting agent */\n consultingAgentId?: string;\n /** Unique identifier for the task */\n taskId?: string;\n /** Task details including state and media information */\n task?: Interaction;\n /** Unique identifier for monitoring offered events */\n id?: string;\n /** Indicates if the web call is muted */\n isWebCallMute?: boolean;\n /** Identifier for reservation interaction */\n reservationInteractionId?: string;\n /** Indicates if wrap-up is required for this task */\n wrapUpRequired?: boolean;\n};\n\n/**\n * Type representing an agent contact message within the contact center system\n * Contains comprehensive interaction and task related details for agent operations\n * @public\n */\nexport type AgentContact = Msg<{\n /** Unique identifier for the media resource */\n mediaResourceId: string;\n /** Type of the event (e.g., 'AgentDesktopMessage') */\n eventType: string;\n /** Timestamp when the event occurred */\n eventTime?: number;\n /** Unique identifier of the agent handling the contact */\n agentId: string;\n /** Identifier of the destination agent for transfers/consults */\n destAgentId: string;\n /** Unique tracking identifier for the contact */\n trackingId: string;\n /** Media resource identifier for consult operations */\n consultMediaResourceId: string;\n /** Detailed interaction information including media and participant data */\n interaction: Interaction;\n /** Unique identifier for the participant */\n participantId?: string;\n /** Indicates if the message is from the owner of the interaction */\n fromOwner?: boolean;\n /** Indicates if the message is to the owner of the interaction */\n toOwner?: boolean;\n /** Identifier for child interaction in case of consult/transfer */\n childInteractionId?: string;\n /** Unique identifier for the interaction */\n interactionId: string;\n /** Organization identifier */\n orgId: string;\n /** Current owner of the interaction */\n owner: string;\n /** Queue manager handling the interaction */\n queueMgr: string;\n /** Name of the queue where interaction is queued */\n queueName?: string;\n /** Type of the contact/interaction */\n type: string;\n /** Timeout value for RONA (Redirection on No Answer) in seconds */\n ronaTimeout?: number;\n /** Indicates if the interaction is in consult state */\n isConsulted?: boolean;\n /** Indicates if the interaction is in conference state */\n isConferencing: boolean;\n /** Identifier of the agent who last updated the interaction */\n updatedBy?: string;\n /** Type of destination for transfer/consult */\n destinationType?: string;\n /** Indicates if the interaction was automatically resumed */\n autoResumed?: boolean;\n /** Code indicating the reason for an action */\n reasonCode?: string | number;\n /** Description of the reason for an action */\n reason?: string;\n /** Identifier of the consulting agent */\n consultingAgentId?: string;\n /** Unique identifier for the task */\n taskId?: string;\n /** Task details including media and state information */\n task?: Interaction;\n /** Identifier of the supervisor monitoring the interaction */\n supervisorId?: string;\n /** Type of monitoring (e.g., 'SILENT', 'BARGE_IN') */\n monitorType?: string;\n /** Dial number of the supervisor */\n supervisorDN?: string;\n /** Unique identifier for monitoring offered events */\n id?: string;\n /** Indicates if the web call is muted */\n isWebCallMute?: boolean;\n /** Identifier for reservation interaction */\n reservationInteractionId?: string;\n /** Identifier for the reserved agent channel */\n reservedAgentChannelId?: string;\n /** Current monitoring state information */\n monitoringState?: {\n /** Type of monitoring state */\n type: string;\n };\n /** Name of the supervisor monitoring the interaction */\n supervisorName?: string;\n}>;\n\n/**\n * Information about a virtual team in the contact center\n * @ignore\n */\nexport type VTeam = {\n /** Profile ID of the agent in the virtual team */\n agentProfileId: string;\n /** Session ID of the agent in the virtual team */\n agentSessionId: string;\n /** Type of channel handled by the virtual team */\n channelType: string;\n /** Type of the virtual team */\n type: string;\n /** Optional tracking identifier */\n trackingId?: string;\n};\n\n/**\n * Detailed information about a virtual team configuration\n * @ignore\n */\nexport type VteamDetails = {\n /** Name of the virtual team */\n name: string;\n /** Type of channel handled by the virtual team */\n channelType: string;\n /** Unique identifier for the virtual team */\n id: string;\n /** Type of the virtual team */\n type: string;\n /** ID of the analyzer associated with the team */\n analyzerId: string;\n};\n\n/**\n * Response type for successful virtual team operations\n * Contains details about virtual teams and their capabilities\n * @ignore\n */\nexport type VTeamSuccess = Msg<{\n /** Response data containing team information */\n data: {\n /** List of virtual team details */\n vteamList: Array<VteamDetails>;\n /** Whether queue consultation is allowed */\n allowConsultToQueue: boolean;\n };\n /** Method name from JavaScript */\n jsMethod: string;\n /** Data related to the call */\n callData: string;\n /** Session ID of the agent */\n agentSessionId: string;\n}>;\n\n/**\n * Parameters for putting a task on hold or resuming from hold\n * @public\n */\nexport type HoldResumePayload = {\n /** Unique identifier for the media resource to hold/resume */\n mediaResourceId: string;\n};\n\n/**\n * Parameters for resuming a task's recording\n * @public\n */\nexport type ResumeRecordingPayload = {\n /** Indicates if the recording was automatically resumed */\n autoResumed: boolean;\n};\n\n/**\n * Parameters for transferring a task to another destination\n * @public\n */\nexport type TransferPayLoad = {\n /** Destination identifier where the task will be transferred to */\n to: string;\n /** Type of the destination (queue, agent, etc.) */\n destinationType: DestinationType;\n};\n\n/**\n * Parameters for initiating a consultative transfer\n * @public\n */\nexport type ConsultTransferPayLoad = {\n /** Destination identifier for the consultation transfer */\n to: string;\n /** Type of the consultation transfer destination */\n destinationType: ConsultTransferDestinationType;\n};\n\n/**\n * Parameters for initiating a consultation with another agent or queue\n * @public\n */\nexport type ConsultPayload = {\n /** Destination identifier for the consultation */\n to: string | undefined;\n /** Type of the consultation destination (agent, queue, etc.) */\n destinationType: DestinationType;\n /** Whether to hold other participants during consultation (always true) */\n holdParticipants?: boolean;\n};\n\n/**\n * Parameters for ending a consultation task\n * @public\n */\nexport type ConsultEndPayload = {\n /** Indicates if this is a consultation operation */\n isConsult: boolean;\n /** Indicates if this involves a secondary entry point or DN agent */\n isSecondaryEpDnAgent?: boolean;\n /** Optional queue identifier for the consultation */\n queueId?: string;\n /** Identifier of the task being consulted */\n taskId: string;\n};\n\n/**\n * Parameters for transferring a task to another destination\n * @public\n */\nexport type TransferPayload = {\n /** Destination identifier where the task will be transferred */\n to: string | undefined;\n /** Type of the transfer destination */\n destinationType: DestinationType;\n};\n\n/**\n * API payload for ending a consultation\n * This is the actual payload that is sent to the developer API\n * @public\n */\nexport type ConsultEndAPIPayload = {\n /** Optional identifier of the queue involved in the consultation */\n queueId?: string;\n};\n\n/**\n * Data required for consulting and conferencing operations\n * @public\n */\nexport type ConsultConferenceData = {\n /** Identifier of the agent initiating consult/conference */\n agentId?: string;\n /** Target destination for the consult/conference */\n to: string | undefined;\n /** Type of destination (e.g., 'agent', 'queue') */\n destinationType: string;\n};\n\n/**\n * Legacy consultation conference data type matching Agent Desktop\n * @public\n */\nexport type consultConferencePayloadData = {\n /** Identifier of the agent initiating consult/conference */\n agentId: string;\n /** Type of destination (e.g., 'agent', 'queue') */\n destinationType: string;\n /** Identifier of the destination agent */\n destAgentId: string;\n};\n\n/**\n * Parameters required for cancelling a consult to queue operation\n * @public\n */\nexport type cancelCtq = {\n /** Identifier of the agent cancelling the CTQ */\n agentId: string;\n /** Identifier of the queue where consult was initiated */\n queueId: string;\n};\n\n/**\n * Parameters required for declining a task\n * @public\n */\nexport type declinePayload = {\n /** Identifier of the media resource to decline */\n mediaResourceId: string;\n};\n\n/**\n * Parameters for wrapping up a task with relevant completion details\n * @public\n */\nexport type WrapupPayLoad = {\n /** The reason provided for wrapping up the task */\n wrapUpReason: string;\n /** Auxiliary code identifier associated with the wrap-up state */\n auxCodeId: string;\n};\n\n/**\n * Configuration parameters for initiating outbound dialer tasks\n * @public\n */\nexport type DialerPayload = {\n /** An entryPointId for respective task */\n entryPointId: string;\n /** A valid customer DN, on which the response is expected, maximum length 36 characters */\n destination: string;\n /** The direction of the call */\n direction: 'OUTBOUND';\n /** Schema-free data tuples to pass specific data based on outboundType (max 30 tuples) */\n attributes: {[key: string]: string};\n /** The media type for the request */\n mediaType: 'telephony' | 'chat' | 'social' | 'email';\n /** The outbound type for the task */\n outboundType: 'OUTDIAL' | 'CALLBACK' | 'EXECUTE_FLOW';\n};\n\n/**\n * Data structure for cleaning up contact resources\n * @public\n */\nexport type ContactCleanupData = {\n /** Type of cleanup operation being performed */\n type: string;\n /** Organization identifier where cleanup is occurring */\n orgId: string;\n /** Identifier of the agent associated with the contacts */\n agentId: string;\n /** Detailed data about the cleanup operation */\n data: {\n /** Type of event that triggered the cleanup */\n eventType: string;\n /** Identifier of the interaction being cleaned up */\n interactionId: string;\n /** Organization identifier */\n orgId: string;\n /** Media manager handling the cleanup */\n mediaMgr: string;\n /** Tracking identifier for the cleanup operation */\n trackingId: string;\n /** Type of media being cleaned up */\n mediaType: string;\n /** Optional destination information */\n destination?: string;\n /** Whether this is a broadcast cleanup */\n broadcast: boolean;\n /** Type of cleanup being performed */\n type: string;\n };\n};\n\n/**\n * Response type for task public methods\n * Can be an {@link AgentContact} object containing updated task state,\n * an Error in case of failure, or void for operations that don't return data\n * @public\n */\nexport type TaskResponse = AgentContact | Error | void;\n\n/**\n * Interface for managing task-related operations in the contact center\n * Extends EventEmitter to support event-driven task updates\n */\nexport interface ITask extends EventEmitter {\n /**\n * Event data received in the Contact Center events.\n * Contains detailed task information including interaction details, media resources,\n * and participant data as defined in {@link TaskData}\n */\n data: TaskData;\n\n /**\n * Map associating tasks with their corresponding call identifiers.\n */\n webCallMap: Record<TaskId, CallId>;\n\n /**\n * Auto-wrapup timer for the task\n * This is used to automatically wrap up tasks after a specified duration\n * as defined in {@link AutoWrapup}\n */\n autoWrapup?: AutoWrapup;\n\n /**\n * cancels the auto-wrapup timer for the task\n * This method stops the auto-wrapup process if it is currently active\n * Note: This is supported only in single session mode. Not supported in multi-session mode.\n * @returns void\n */\n cancelAutoWrapupTimer(): void;\n\n /**\n * Deregisters all web call event listeners\n * Used when cleaning up task resources\n * @ignore\n */\n unregisterWebCallListeners(): void;\n\n /**\n * Updates the task data with new information\n * @param newData - Updated task data to apply, must conform to {@link TaskData} structure\n * @returns Updated task instance\n * @ignore\n */\n updateTaskData(newData: TaskData): ITask;\n\n /**\n * Answers or accepts an incoming task.\n * Once accepted, the task will be assigned to the agent and trigger a {@link TASK_EVENTS.TASK_ASSIGNED} event.\n * The response will contain updated agent contact information as defined in {@link AgentContact}.\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.accept();\n * ```\n */\n accept(): Promise<TaskResponse>;\n\n /**\n * Declines an incoming task for Browser Login\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.decline();\n * ```\n */\n decline(): Promise<TaskResponse>;\n\n /**\n * Places the current task on hold\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.hold();\n * ```\n */\n hold(): Promise<TaskResponse>;\n\n /**\n * Resumes a task that was previously on hold\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.resume();\n * ```\n */\n resume(): Promise<TaskResponse>;\n\n /**\n * Ends/terminates the current task\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.end();\n * ```\n */\n end(): Promise<TaskResponse>;\n\n /**\n * Initiates wrap-up process for the task with specified details\n * @param wrapupPayload - Wrap-up details including reason and auxiliary code\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.wrapup({\n * wrapUpReason: \"Customer issue resolved\",\n * auxCodeId: \"RESOLVED\"\n * });\n * ```\n */\n wrapup(wrapupPayload: WrapupPayLoad): Promise<TaskResponse>;\n\n /**\n * Pauses the recording for current task\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.pauseRecording();\n * ```\n */\n pauseRecording(): Promise<TaskResponse>;\n\n /**\n * Resumes a previously paused recording\n * @param resumeRecordingPayload - Parameters for resuming the recording\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.resumeRecording({\n * autoResumed: false\n * });\n * ```\n */\n resumeRecording(resumeRecordingPayload: ResumeRecordingPayload): Promise<TaskResponse>;\n}\n"],"mappings":";;;;;;AAKA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,MAAMA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC9B;EACAE,KAAK,EAAE,OAAO;EACd;EACAC,UAAU,EAAE,YAAY;EACxB;EACAC,KAAK,EAAE,OAAO;EACd;EACAC,UAAU,EAAE;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,MAAMC,iCAAiC,GAAAL,OAAA,CAAAK,iCAAA,GAAG;EAC/C;EACAF,KAAK,EAAE,OAAO;EACd;EACAC,UAAU,EAAE,YAAY;EACxB;EACAF,UAAU,EAAE,YAAY;EACxB;EACAD,KAAK,EAAE;AACT,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,MAAMK,aAAa,GAAAN,OAAA,CAAAM,aAAA,GAAG;EAC3B;EACAC,KAAK,EAAE,OAAO;EACd;EACAC,IAAI,EAAE,MAAM;EACZ;EACAC,SAAS,EAAE,WAAW;EACtB;EACAC,MAAM,EAAE,QAAQ;EAChB;EACAC,GAAG,EAAE,KAAK;EACV;EACAC,QAAQ,EAAE,UAAU;EACpB;EACAC,QAAQ,EAAE;AACZ,CAAU;;AAEV;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAJA,IAKYC,WAAW,GAAAd,OAAA,CAAAc,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AA6YvB;AACA;AACA;AACA;AACA;AA6LA;AACA;AACA;AACA;AACA;AAsEA;AACA;AACA;AACA;AACA;AAmFA;AACA;AACA;AACA;AAcA;AACA;AACA;AACA;AAcA;AACA;AACA;AACA;AACA;AAiBA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AAUA;AACA;AACA;AACA;AAYA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AAUA;AACA;AACA;AACA;AAUA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AAgBA;AACA;AACA;AACA;AA+BA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA"}
|
|
1
|
+
{"version":3,"names":["DESTINATION_TYPE","exports","QUEUE","DIALNUMBER","AGENT","ENTRYPOINT","CONSULT_TRANSFER_DESTINATION_TYPE","MEDIA_CHANNEL","EMAIL","CHAT","TELEPHONY","SOCIAL","SMS","FACEBOOK","WHATSAPP","TASK_EVENTS"],"sources":["types.ts"],"sourcesContent":["import {CallId} from '@webex/calling/dist/types/common/types';\nimport EventEmitter from 'events';\nimport {Msg} from '../core/GlobalTypes';\nimport AutoWrapup from './AutoWrapup';\n\n/**\n * Unique identifier for a task in the contact center system\n * @public\n */\nexport type TaskId = string;\n\n/**\n * Helper type for creating enum-like objects with type safety\n * @internal\n */\ntype Enum<T extends Record<string, unknown>> = T[keyof T];\n\n/**\n * Defines the valid destination types for routing tasks within the contact center\n * Used to specify where a task should be directed\n * @public\n */\nexport const DESTINATION_TYPE = {\n /** Route task to a specific queue */\n QUEUE: 'queue',\n /** Route task to a specific dial number */\n DIALNUMBER: 'dialNumber',\n /** Route task to a specific agent */\n AGENT: 'agent',\n /** Route task to an entry point (supported only for consult operations) */\n ENTRYPOINT: 'entryPoint',\n};\n\n/**\n * Type representing valid destination types for task routing\n * Derived from the DESTINATION_TYPE constant\n * @public\n */\nexport type DestinationType = Enum<typeof DESTINATION_TYPE>;\n\n/**\n * Defines the valid destination types for consult transfer operations\n * Used when transferring a task after consultation\n * @public\n */\nexport const CONSULT_TRANSFER_DESTINATION_TYPE = {\n /** Transfer to a specific agent */\n AGENT: 'agent',\n /** Transfer to an entry point */\n ENTRYPOINT: 'entryPoint',\n /** Transfer to a dial number */\n DIALNUMBER: 'dialNumber',\n /** Transfer to a queue */\n QUEUE: 'queue',\n};\n\n/**\n * Type representing valid destination types for consult transfers\n * Derived from the CONSULT_TRANSFER_DESTINATION_TYPE constant\n * @public\n */\nexport type ConsultTransferDestinationType = Enum<typeof CONSULT_TRANSFER_DESTINATION_TYPE>;\n\n/**\n * Defines all supported media channel types for customer interactions\n * These represent the different ways customers can communicate with agents\n * @public\n */\nexport const MEDIA_CHANNEL = {\n /** Email-based communication channel */\n EMAIL: 'email',\n /** Web-based chat communication channel */\n CHAT: 'chat',\n /** Voice/phone communication channel */\n TELEPHONY: 'telephony',\n /** Social media platform communication channel */\n SOCIAL: 'social',\n /** SMS text messaging communication channel */\n SMS: 'sms',\n /** Facebook Messenger communication channel */\n FACEBOOK: 'facebook',\n /** WhatsApp messaging communication channel */\n WHATSAPP: 'whatsapp',\n} as const;\n\n/**\n * Type representing valid media channels\n * Derived from the MEDIA_CHANNEL constant\n * @public\n */\nexport type MEDIA_CHANNEL = Enum<typeof MEDIA_CHANNEL>;\n\n/**\n * Enumeration of all task-related events that can occur in the contact center system\n * These events represent different states and actions in the task lifecycle\n * @public\n */\nexport enum TASK_EVENTS {\n /**\n * Triggered when a new task is received by the system\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_INCOMING, (task: ITask) => {\n * console.log('New task received:', task.data.interactionId);\n * // Handle incoming task\n * });\n * ```\n */\n TASK_INCOMING = 'task:incoming',\n\n /**\n * Triggered when a task is successfully assigned to an agent\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_ASSIGNED, (task: ITask) => {\n * console.log('Task assigned:', task.data.interactionId);\n * // Begin handling the assigned task\n * });\n * ```\n */\n TASK_ASSIGNED = 'task:assigned',\n\n /**\n * Triggered when the media state of a task changes\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_MEDIA, (track: MediaStreamTrack) => {\n * // Handle media track updates\n * });\n * ```\n */\n TASK_MEDIA = 'task:media',\n\n /**\n * Triggered when a task is removed from an agent\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_UNASSIGNED, (task: ITask) => {\n * console.log('Task unassigned:', task.data.interactionId);\n * // Clean up task resources\n * });\n * ```\n */\n TASK_UNASSIGNED = 'task:unassigned',\n\n /**\n * Triggered when a task is placed on hold\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_HOLD, (task: ITask) => {\n * console.log('Task placed on hold:', task.data.interactionId);\n * // Update UI to show hold state\n * });\n * ```\n */\n TASK_HOLD = 'task:hold',\n\n /**\n * Triggered when a task is resumed from hold\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_RESUME, (task: ITask) => {\n * console.log('Task resumed from hold:', task.data.interactionId);\n * // Update UI to show active state\n * });\n * ```\n */\n TASK_RESUME = 'task:resume',\n\n /**\n * Triggered when a consultation session ends\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULT_END, (task: ITask) => {\n * console.log('Consultation ended:', task.data.interactionId);\n * // Clean up consultation resources\n * });\n * ```\n */\n TASK_CONSULT_END = 'task:consultEnd',\n\n /**\n * Triggered when a queue consultation is cancelled\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULT_QUEUE_CANCELLED, (task: ITask) => {\n * console.log('Queue consultation cancelled:', task.data.interactionId);\n * // Handle consultation cancellation\n * });\n * ```\n */\n TASK_CONSULT_QUEUE_CANCELLED = 'task:consultQueueCancelled',\n\n /**\n * Triggered when a queue consultation fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULT_QUEUE_FAILED, (task: ITask) => {\n * console.log('Queue consultation failed:', task.data.interactionId);\n * // Handle consultation failure\n * });\n * ```\n */\n TASK_CONSULT_QUEUE_FAILED = 'task:consultQueueFailed',\n\n /**\n * Triggered when a consultation request is accepted\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULT_ACCEPTED, (task: ITask) => {\n * console.log('Consultation accepted:', task.data.interactionId);\n * // Begin consultation\n * });\n * ```\n */\n TASK_CONSULT_ACCEPTED = 'task:consultAccepted',\n\n /**\n * Triggered when consultation is in progress\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULTING, (task: ITask) => {\n * console.log('Consulting in progress:', task.data.interactionId);\n * // Handle ongoing consultation\n * });\n * ```\n */\n TASK_CONSULTING = 'task:consulting',\n\n /**\n * Triggered when a new consultation is created\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONSULT_CREATED, (task: ITask) => {\n * console.log('Consultation created:', task.data.interactionId);\n * // Initialize consultation\n * });\n * ```\n */\n TASK_CONSULT_CREATED = 'task:consultCreated',\n\n /**\n * Triggered when a consultation is offered\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_OFFER_CONSULT, (task: ITask) => {\n * console.log('Consultation offered:', task.data.interactionId);\n * // Handle consultation offer\n * });\n * ```\n */\n TASK_OFFER_CONSULT = 'task:offerConsult',\n\n /**\n * Triggered when a task is completed/terminated\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_END, (task: ITask) => {\n * console.log('Task ended:', task.data.interactionId);\n * // Clean up and finalize task\n * });\n * ```\n */\n TASK_END = 'task:end',\n\n /**\n * Triggered when a task enters wrap-up state\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_WRAPUP, (task: ITask) => {\n * console.log('Task in wrap-up:', task.data.interactionId);\n * // Begin wrap-up process\n * });\n * ```\n */\n TASK_WRAPUP = 'task:wrapup',\n\n /**\n * Triggered when task wrap-up is completed\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_WRAPPEDUP, (task: ITask) => {\n * console.log('Task wrapped up:', task.data.interactionId);\n * // Finalize task completion\n * });\n * ```\n */\n TASK_WRAPPEDUP = 'task:wrappedup',\n\n /**\n * Triggered when recording is paused\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_RECORDING_PAUSED, (task: ITask) => {\n * console.log('Recording paused:', task.data.interactionId);\n * // Update recording state\n * });\n * ```\n */\n TASK_RECORDING_PAUSED = 'task:recordingPaused',\n\n /**\n * Triggered when recording pause attempt fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_RECORDING_PAUSE_FAILED, (task: ITask) => {\n * console.log('Recording pause failed:', task.data.interactionId);\n * // Handle pause failure\n * });\n * ```\n */\n TASK_RECORDING_PAUSE_FAILED = 'task:recordingPauseFailed',\n\n /**\n * Triggered when recording is resumed\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_RECORDING_RESUMED, (task: ITask) => {\n * console.log('Recording resumed:', task.data.interactionId);\n * // Update recording state\n * });\n * ```\n */\n TASK_RECORDING_RESUMED = 'task:recordingResumed',\n\n /**\n * Triggered when recording resume attempt fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_RECORDING_RESUME_FAILED, (task: ITask) => {\n * console.log('Recording resume failed:', task.data.interactionId);\n * // Handle resume failure\n * });\n * ```\n */\n TASK_RECORDING_RESUME_FAILED = 'task:recordingResumeFailed',\n\n /**\n * Triggered when a task is rejected/unanswered\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_REJECT, (task: ITask) => {\n * console.log('Task rejected:', task.data.interactionId);\n * // Handle task rejection\n * });\n * ```\n */\n TASK_REJECT = 'task:rejected',\n\n /**\n * Triggered when a task is populated with data\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_HYDRATE, (task: ITask) => {\n * console.log('Task hydrated:', task.data.interactionId);\n * // Process task data\n * });\n * ```\n */\n TASK_HYDRATE = 'task:hydrate',\n\n /**\n * Triggered when a new contact is offered\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_OFFER_CONTACT, (task: ITask) => {\n * console.log('Contact offered:', task.data.interactionId);\n * // Handle contact offer\n * });\n * ```\n */\n TASK_OFFER_CONTACT = 'task:offerContact',\n\n /**\n * Triggered when a conference is being established\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_ESTABLISHING, (task: ITask) => {\n * console.log('Conference establishing:', task.data.interactionId);\n * // Handle conference setup in progress\n * });\n * ```\n */\n TASK_CONFERENCE_ESTABLISHING = 'task:conferenceEstablishing',\n\n /**\n * Triggered when a conference is started successfully\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_STARTED, (task: ITask) => {\n * console.log('Conference started:', task.data.interactionId);\n * // Handle conference start\n * });\n * ```\n */\n TASK_CONFERENCE_STARTED = 'task:conferenceStarted',\n\n /**\n * Triggered when a conference fails to start\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_FAILED, (task: ITask) => {\n * console.log('Conference failed:', task.data.interactionId);\n * // Handle conference failure\n * });\n * ```\n */\n TASK_CONFERENCE_FAILED = 'task:conferenceFailed',\n\n /**\n * Triggered when a conference is ended successfully\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_ENDED, (task: ITask) => {\n * console.log('Conference ended:', task.data.interactionId);\n * // Handle conference end\n * });\n * ```\n */\n TASK_CONFERENCE_ENDED = 'task:conferenceEnded',\n\n /**\n * Triggered when a participant joins the conference\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_PARTICIPANT_JOINED, (task: ITask) => {\n * console.log('Participant joined conference:', task.data.interactionId);\n * // Handle participant joining\n * });\n * ```\n */\n TASK_PARTICIPANT_JOINED = 'task:participantJoined',\n\n /**\n * Triggered when a participant leaves the conference\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_PARTICIPANT_LEFT, (task: ITask) => {\n * console.log('Participant left conference:', task.data.interactionId);\n * // Handle participant leaving\n * });\n * ```\n */\n TASK_PARTICIPANT_LEFT = 'task:participantLeft',\n\n /**\n * Triggered when conference transfer is successful\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_TRANSFERRED, (task: ITask) => {\n * console.log('Conference transferred:', task.data.interactionId);\n * // Handle successful conference transfer\n * });\n * ```\n */\n TASK_CONFERENCE_TRANSFERRED = 'task:conferenceTransferred',\n\n /**\n * Triggered when conference transfer fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_TRANSFER_FAILED, (task: ITask) => {\n * console.log('Conference transfer failed:', task.data.interactionId);\n * // Handle failed conference transfer\n * });\n * ```\n */\n TASK_CONFERENCE_TRANSFER_FAILED = 'task:conferenceTransferFailed',\n\n /**\n * Triggered when ending a conference fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_CONFERENCE_END_FAILED, (task: ITask) => {\n * console.log('Conference end failed:', task.data.interactionId);\n * // Handle failed conference end\n * });\n * ```\n */\n TASK_CONFERENCE_END_FAILED = 'task:conferenceEndFailed',\n\n /**\n * Triggered when participant exit from conference fails\n * @example\n * ```typescript\n * task.on(TASK_EVENTS.TASK_PARTICIPANT_LEFT_FAILED, (task: ITask) => {\n * console.log('Participant failed to leave conference:', task.data.interactionId);\n * // Handle failed participant exit\n * });\n * ```\n */\n TASK_PARTICIPANT_LEFT_FAILED = 'task:participantLeftFailed',\n}\n\n/**\n * Represents a customer interaction within the contact center system\n * Contains comprehensive details about an ongoing customer interaction\n * @public\n */\nexport type Interaction = {\n /** Indicates if the interaction is managed by Flow Control */\n isFcManaged: boolean;\n /** Indicates if the interaction has been terminated */\n isTerminated: boolean;\n /** The type of media channel for this interaction */\n mediaType: MEDIA_CHANNEL;\n /** List of previous virtual teams that handled this interaction */\n previousVTeams: string[];\n /** Current state of the interaction */\n state: string;\n /** Current virtual team handling the interaction */\n currentVTeam: string;\n /** List of participants in the interaction */\n participants: any; // TODO: Define specific participant type\n /** Unique identifier for the interaction */\n interactionId: string;\n /** Organization identifier */\n orgId: string;\n /** Timestamp when the interaction was created */\n createdTimestamp?: number;\n /** Indicates if wrap-up assistance is enabled */\n isWrapUpAssist?: boolean;\n /** Detailed call processing information and metadata */\n callProcessingDetails: {\n /** Name of the Queue Manager handling this interaction */\n QMgrName: string;\n /** Indicates if the task should be self-serviced */\n taskToBeSelfServiced: string;\n /** Automatic Number Identification (caller's number) */\n ani: string;\n /** Display version of the ANI */\n displayAni: string;\n /** Dialed Number Identification Service number */\n dnis: string;\n /** Tenant identifier */\n tenantId: string;\n /** Queue identifier */\n QueueId: string;\n /** Virtual team identifier */\n vteamId: string;\n /** Indicates if pause/resume functionality is enabled */\n pauseResumeEnabled?: string;\n /** Duration of pause in seconds */\n pauseDuration?: string;\n /** Indicates if the interaction is currently paused */\n isPaused?: string;\n /** Indicates if recording is in progress */\n recordInProgress?: string;\n /** Indicates if recording has started */\n recordingStarted?: string;\n /** Indicates if Consult to Queue is in progress */\n ctqInProgress?: string;\n /** Indicates if outdial transfer to queue is enabled */\n outdialTransferToQueueEnabled?: string;\n /** IVR conversation transcript */\n convIvrTranscript?: string;\n /** Customer's name */\n customerName: string;\n /** Name of the virtual team */\n virtualTeamName: string;\n /** RONA (Redirection on No Answer) timeout in seconds */\n ronaTimeout: string;\n /** Category of the interaction */\n category: string;\n /** Reason for the interaction */\n reason: string;\n /** Source number for the interaction */\n sourceNumber: string;\n /** Source page that initiated the interaction */\n sourcePage: string;\n /** Application user identifier */\n appUser: string;\n /** Customer's contact number */\n customerNumber: string;\n /** Code indicating the reason for interaction */\n reasonCode: string;\n /** Path taken through the IVR system */\n IvrPath: string;\n /** Identifier for the IVR path */\n pathId: string;\n /** Email address or contact point that initiated the interaction */\n fromAddress: string;\n /** Identifier of the parent interaction for related interactions */\n parentInteractionId?: string;\n /** Identifier of the child interaction for related interactions */\n childInteractionId?: string;\n /** Type of relationship between parent and child interactions */\n relationshipType?: string;\n /** ANI of the parent interaction */\n parent_ANI?: string;\n /** DNIS of the parent interaction */\n parent_DNIS?: string;\n /** Indicates if the consulted destination agent has joined */\n consultDestinationAgentJoined?: boolean | string;\n /** Name of the destination agent for consultation */\n consultDestinationAgentName?: string;\n /** DN of the parent interaction's agent */\n parent_Agent_DN?: string;\n /** Name of the parent interaction's agent */\n parent_Agent_Name?: string;\n /** Team name of the parent interaction's agent */\n parent_Agent_TeamName?: string;\n /** Indicates if the interaction is in conference mode */\n isConferencing?: string;\n /** Type of monitoring being performed */\n monitorType?: string;\n /** Name of the workflow being executed */\n workflowName?: string;\n /** Identifier of the workflow */\n workflowId?: string;\n /** Indicates if monitoring is in invisible mode */\n monitoringInvisibleMode?: string;\n /** Identifier for the monitoring request */\n monitoringRequestId?: string;\n /** Timeout for participant invitation */\n participantInviteTimeout?: string;\n /** Filename for music on hold */\n mohFileName?: string;\n /** Flag for continuing recording during transfer */\n CONTINUE_RECORDING_ON_TRANSFER?: string;\n /** Entry point identifier */\n EP_ID?: string;\n /** Type of routing being used */\n ROUTING_TYPE?: string;\n /** Events registered with Flow Control Engine */\n fceRegisteredEvents?: string;\n /** Indicates if the interaction is parked */\n isParked?: string;\n /** Priority level of the interaction */\n priority?: string;\n /** Identifier for the routing strategy */\n routingStrategyId?: string;\n /** Current state of monitoring */\n monitoringState?: string;\n /** Indicates if blind transfer is in progress */\n BLIND_TRANSFER_IN_PROGRESS?: boolean;\n /** Desktop view configuration for Flow Control */\n fcDesktopView?: string;\n };\n /** Main interaction identifier for related interactions */\n mainInteractionId?: string;\n /** Media-specific information for the interaction */\n media: Record<\n string,\n {\n /** Unique identifier for the media resource */\n mediaResourceId: string;\n /** Type of media channel */\n mediaType: MEDIA_CHANNEL;\n /** Media manager handling this media */\n mediaMgr: string;\n /** List of participant identifiers */\n participants: string[];\n /** Type of media */\n mType: string;\n /** Indicates if media is on hold */\n isHold: boolean;\n /** Timestamp when media was put on hold */\n holdTimestamp: number | null;\n }\n >;\n /** Owner of the interaction */\n owner: string;\n /** Primary media channel for the interaction */\n mediaChannel: MEDIA_CHANNEL;\n /** Direction information for the contact */\n contactDirection: {type: string};\n /** Type of outbound interaction */\n outboundType?: string;\n /** Parameters passed through the call flow */\n callFlowParams: Record<\n string,\n {\n /** Name of the parameter */\n name: string;\n /** Qualifier for the parameter */\n qualifier: string;\n /** Description of the parameter */\n description: string;\n /** Data type of the parameter value */\n valueDataType: string;\n /** Value of the parameter */\n value: string;\n }\n >;\n};\n\n/**\n * Task payload containing detailed information about a contact center task\n * This structure encapsulates all relevant data for task management\n * @public\n */\nexport type TaskData = {\n /** Unique identifier for the media resource handling this task */\n mediaResourceId: string;\n /** Type of event that triggered this task data */\n eventType: string;\n /** Timestamp when the event occurred */\n eventTime?: number;\n /** Identifier of the agent handling the task */\n agentId: string;\n /** Identifier of the destination agent for transfers/consults */\n destAgentId: string;\n /** Unique tracking identifier for the task */\n trackingId: string;\n /** Media resource identifier for consultation operations */\n consultMediaResourceId: string;\n /** Detailed interaction information */\n interaction: Interaction;\n /** Unique identifier for the participant */\n participantId?: string;\n /** Indicates if the task is from the owner */\n fromOwner?: boolean;\n /** Indicates if the task is to the owner */\n toOwner?: boolean;\n /** Identifier for child interaction in consult/transfer scenarios */\n childInteractionId?: string;\n /** Unique identifier for the interaction */\n interactionId: string;\n /** Organization identifier */\n orgId: string;\n /** Current owner of the task */\n owner: string;\n /** Queue manager handling the task */\n queueMgr: string;\n /** Name of the queue where task is queued */\n queueName?: string;\n /** Type of the task */\n type: string;\n /** Timeout value for RONA (Redirection on No Answer) in seconds */\n ronaTimeout?: number;\n /** Indicates if the task is in consultation state */\n isConsulted?: boolean;\n /** Indicates if the task is in conference state */\n isConferencing: boolean;\n /** Identifier of agent who last updated the task */\n updatedBy?: string;\n /** Type of destination for transfer/consult */\n destinationType?: string;\n /** Indicates if the task was automatically resumed */\n autoResumed?: boolean;\n /** Code indicating the reason for an action */\n reasonCode?: string | number;\n /** Description of the reason for an action */\n reason?: string;\n /** Identifier of the consulting agent */\n consultingAgentId?: string;\n /** Unique identifier for the task */\n taskId?: string;\n /** Task details including state and media information */\n task?: Interaction;\n /** Unique identifier for monitoring offered events */\n id?: string;\n /** Indicates if the web call is muted */\n isWebCallMute?: boolean;\n /** Identifier for reservation interaction */\n reservationInteractionId?: string;\n /** Indicates if wrap-up is required for this task */\n wrapUpRequired?: boolean;\n};\n\n/**\n * Type representing an agent contact message within the contact center system\n * Contains comprehensive interaction and task related details for agent operations\n * @public\n */\nexport type AgentContact = Msg<{\n /** Unique identifier for the media resource */\n mediaResourceId: string;\n /** Type of the event (e.g., 'AgentDesktopMessage') */\n eventType: string;\n /** Timestamp when the event occurred */\n eventTime?: number;\n /** Unique identifier of the agent handling the contact */\n agentId: string;\n /** Identifier of the destination agent for transfers/consults */\n destAgentId: string;\n /** Unique tracking identifier for the contact */\n trackingId: string;\n /** Media resource identifier for consult operations */\n consultMediaResourceId: string;\n /** Detailed interaction information including media and participant data */\n interaction: Interaction;\n /** Unique identifier for the participant */\n participantId?: string;\n /** Indicates if the message is from the owner of the interaction */\n fromOwner?: boolean;\n /** Indicates if the message is to the owner of the interaction */\n toOwner?: boolean;\n /** Identifier for child interaction in case of consult/transfer */\n childInteractionId?: string;\n /** Unique identifier for the interaction */\n interactionId: string;\n /** Organization identifier */\n orgId: string;\n /** Current owner of the interaction */\n owner: string;\n /** Queue manager handling the interaction */\n queueMgr: string;\n /** Name of the queue where interaction is queued */\n queueName?: string;\n /** Type of the contact/interaction */\n type: string;\n /** Timeout value for RONA (Redirection on No Answer) in seconds */\n ronaTimeout?: number;\n /** Indicates if the interaction is in consult state */\n isConsulted?: boolean;\n /** Indicates if the interaction is in conference state */\n isConferencing: boolean;\n /** Identifier of the agent who last updated the interaction */\n updatedBy?: string;\n /** Type of destination for transfer/consult */\n destinationType?: string;\n /** Indicates if the interaction was automatically resumed */\n autoResumed?: boolean;\n /** Code indicating the reason for an action */\n reasonCode?: string | number;\n /** Description of the reason for an action */\n reason?: string;\n /** Identifier of the consulting agent */\n consultingAgentId?: string;\n /** Unique identifier for the task */\n taskId?: string;\n /** Task details including media and state information */\n task?: Interaction;\n /** Identifier of the supervisor monitoring the interaction */\n supervisorId?: string;\n /** Type of monitoring (e.g., 'SILENT', 'BARGE_IN') */\n monitorType?: string;\n /** Dial number of the supervisor */\n supervisorDN?: string;\n /** Unique identifier for monitoring offered events */\n id?: string;\n /** Indicates if the web call is muted */\n isWebCallMute?: boolean;\n /** Identifier for reservation interaction */\n reservationInteractionId?: string;\n /** Identifier for the reserved agent channel */\n reservedAgentChannelId?: string;\n /** Current monitoring state information */\n monitoringState?: {\n /** Type of monitoring state */\n type: string;\n };\n /** Name of the supervisor monitoring the interaction */\n supervisorName?: string;\n}>;\n\n/**\n * Information about a virtual team in the contact center\n * @ignore\n */\nexport type VTeam = {\n /** Profile ID of the agent in the virtual team */\n agentProfileId: string;\n /** Session ID of the agent in the virtual team */\n agentSessionId: string;\n /** Type of channel handled by the virtual team */\n channelType: string;\n /** Type of the virtual team */\n type: string;\n /** Optional tracking identifier */\n trackingId?: string;\n};\n\n/**\n * Detailed information about a virtual team configuration\n * @ignore\n */\nexport type VteamDetails = {\n /** Name of the virtual team */\n name: string;\n /** Type of channel handled by the virtual team */\n channelType: string;\n /** Unique identifier for the virtual team */\n id: string;\n /** Type of the virtual team */\n type: string;\n /** ID of the analyzer associated with the team */\n analyzerId: string;\n};\n\n/**\n * Response type for successful virtual team operations\n * Contains details about virtual teams and their capabilities\n * @ignore\n */\nexport type VTeamSuccess = Msg<{\n /** Response data containing team information */\n data: {\n /** List of virtual team details */\n vteamList: Array<VteamDetails>;\n /** Whether queue consultation is allowed */\n allowConsultToQueue: boolean;\n };\n /** Method name from JavaScript */\n jsMethod: string;\n /** Data related to the call */\n callData: string;\n /** Session ID of the agent */\n agentSessionId: string;\n}>;\n\n/**\n * Parameters for putting a task on hold or resuming from hold\n * @public\n */\nexport type HoldResumePayload = {\n /** Unique identifier for the media resource to hold/resume */\n mediaResourceId: string;\n};\n\n/**\n * Parameters for resuming a task's recording\n * @public\n */\nexport type ResumeRecordingPayload = {\n /** Indicates if the recording was automatically resumed */\n autoResumed: boolean;\n};\n\n/**\n * Parameters for transferring a task to another destination\n * @public\n */\nexport type TransferPayLoad = {\n /** Destination identifier where the task will be transferred to */\n to: string;\n /** Type of the destination (queue, agent, etc.) */\n destinationType: DestinationType;\n};\n\n/**\n * Parameters for initiating a consultative transfer\n * @public\n */\nexport type ConsultTransferPayLoad = {\n /** Destination identifier for the consultation transfer */\n to: string;\n /** Type of the consultation transfer destination */\n destinationType: ConsultTransferDestinationType;\n};\n\n/**\n * Parameters for initiating a consultation with another agent or queue\n * @public\n */\nexport type ConsultPayload = {\n /** Destination identifier for the consultation */\n to: string | undefined;\n /** Type of the consultation destination (agent, queue, etc.) */\n destinationType: DestinationType;\n /** Whether to hold other participants during consultation (always true) */\n holdParticipants?: boolean;\n};\n\n/**\n * Parameters for ending a consultation task\n * @public\n */\nexport type ConsultEndPayload = {\n /** Indicates if this is a consultation operation */\n isConsult: boolean;\n /** Indicates if this involves a secondary entry point or DN agent */\n isSecondaryEpDnAgent?: boolean;\n /** Optional queue identifier for the consultation */\n queueId?: string;\n /** Identifier of the task being consulted */\n taskId: string;\n};\n\n/**\n * Parameters for transferring a task to another destination\n * @public\n */\nexport type TransferPayload = {\n /** Destination identifier where the task will be transferred */\n to: string | undefined;\n /** Type of the transfer destination */\n destinationType: DestinationType;\n};\n\n/**\n * API payload for ending a consultation\n * This is the actual payload that is sent to the developer API\n * @public\n */\nexport type ConsultEndAPIPayload = {\n /** Optional identifier of the queue involved in the consultation */\n queueId?: string;\n};\n\n/**\n * Data required for consulting and conferencing operations\n * @public\n */\nexport type ConsultConferenceData = {\n /** Identifier of the agent initiating consult/conference */\n agentId?: string;\n /** Target destination for the consult/conference */\n to: string | undefined;\n /** Type of destination (e.g., 'agent', 'queue') */\n destinationType: string;\n};\n\n/**\n * Legacy consultation conference data type matching Agent Desktop\n * @public\n */\nexport type consultConferencePayloadData = {\n /** Identifier of the agent initiating consult/conference */\n agentId: string;\n /** Type of destination (e.g., 'agent', 'queue') */\n destinationType: string;\n /** Identifier of the destination agent */\n destAgentId: string;\n};\n\n/**\n * Parameters required for cancelling a consult to queue operation\n * @public\n */\nexport type cancelCtq = {\n /** Identifier of the agent cancelling the CTQ */\n agentId: string;\n /** Identifier of the queue where consult was initiated */\n queueId: string;\n};\n\n/**\n * Parameters required for declining a task\n * @public\n */\nexport type declinePayload = {\n /** Identifier of the media resource to decline */\n mediaResourceId: string;\n};\n\n/**\n * Parameters for wrapping up a task with relevant completion details\n * @public\n */\nexport type WrapupPayLoad = {\n /** The reason provided for wrapping up the task */\n wrapUpReason: string;\n /** Auxiliary code identifier associated with the wrap-up state */\n auxCodeId: string;\n};\n\n/**\n * Configuration parameters for initiating outbound dialer tasks\n * @public\n */\nexport type DialerPayload = {\n /** An entryPointId for respective task */\n entryPointId: string;\n /** A valid customer DN, on which the response is expected, maximum length 36 characters */\n destination: string;\n /** The direction of the call */\n direction: 'OUTBOUND';\n /** Schema-free data tuples to pass specific data based on outboundType (max 30 tuples) */\n attributes: {[key: string]: string};\n /** The media type for the request */\n mediaType: 'telephony' | 'chat' | 'social' | 'email';\n /** The outbound type for the task */\n outboundType: 'OUTDIAL' | 'CALLBACK' | 'EXECUTE_FLOW';\n /** The Outdial ANI number that will be used while making a call to the customer. */\n origin: string;\n};\n\n/**\n * Data structure for cleaning up contact resources\n * @public\n */\nexport type ContactCleanupData = {\n /** Type of cleanup operation being performed */\n type: string;\n /** Organization identifier where cleanup is occurring */\n orgId: string;\n /** Identifier of the agent associated with the contacts */\n agentId: string;\n /** Detailed data about the cleanup operation */\n data: {\n /** Type of event that triggered the cleanup */\n eventType: string;\n /** Identifier of the interaction being cleaned up */\n interactionId: string;\n /** Organization identifier */\n orgId: string;\n /** Media manager handling the cleanup */\n mediaMgr: string;\n /** Tracking identifier for the cleanup operation */\n trackingId: string;\n /** Type of media being cleaned up */\n mediaType: string;\n /** Optional destination information */\n destination?: string;\n /** Whether this is a broadcast cleanup */\n broadcast: boolean;\n /** Type of cleanup being performed */\n type: string;\n };\n};\n\n/**\n * Response type for task public methods\n * Can be an {@link AgentContact} object containing updated task state,\n * an Error in case of failure, or void for operations that don't return data\n * @public\n */\nexport type TaskResponse = AgentContact | Error | void;\n\n/**\n * Interface for managing task-related operations in the contact center\n * Extends EventEmitter to support event-driven task updates\n */\nexport interface ITask extends EventEmitter {\n /**\n * Event data received in the Contact Center events.\n * Contains detailed task information including interaction details, media resources,\n * and participant data as defined in {@link TaskData}\n */\n data: TaskData;\n\n /**\n * Map associating tasks with their corresponding call identifiers.\n */\n webCallMap: Record<TaskId, CallId>;\n\n /**\n * Auto-wrapup timer for the task\n * This is used to automatically wrap up tasks after a specified duration\n * as defined in {@link AutoWrapup}\n */\n autoWrapup?: AutoWrapup;\n\n /**\n * cancels the auto-wrapup timer for the task\n * This method stops the auto-wrapup process if it is currently active\n * Note: This is supported only in single session mode. Not supported in multi-session mode.\n * @returns void\n */\n cancelAutoWrapupTimer(): void;\n\n /**\n * Deregisters all web call event listeners\n * Used when cleaning up task resources\n * @ignore\n */\n unregisterWebCallListeners(): void;\n\n /**\n * Updates the task data with new information\n * @param newData - Updated task data to apply, must conform to {@link TaskData} structure\n * @returns Updated task instance\n * @ignore\n */\n updateTaskData(newData: TaskData): ITask;\n\n /**\n * Answers or accepts an incoming task.\n * Once accepted, the task will be assigned to the agent and trigger a {@link TASK_EVENTS.TASK_ASSIGNED} event.\n * The response will contain updated agent contact information as defined in {@link AgentContact}.\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.accept();\n * ```\n */\n accept(): Promise<TaskResponse>;\n\n /**\n * Declines an incoming task for Browser Login\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.decline();\n * ```\n */\n decline(): Promise<TaskResponse>;\n\n /**\n * Places the current task on hold\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.hold();\n * ```\n */\n hold(): Promise<TaskResponse>;\n\n /**\n * Resumes a task that was previously on hold\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.resume();\n * ```\n */\n resume(): Promise<TaskResponse>;\n\n /**\n * Ends/terminates the current task\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.end();\n * ```\n */\n end(): Promise<TaskResponse>;\n\n /**\n * Initiates wrap-up process for the task with specified details\n * @param wrapupPayload - Wrap-up details including reason and auxiliary code\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.wrapup({\n * wrapUpReason: \"Customer issue resolved\",\n * auxCodeId: \"RESOLVED\"\n * });\n * ```\n */\n wrapup(wrapupPayload: WrapupPayLoad): Promise<TaskResponse>;\n\n /**\n * Pauses the recording for current task\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.pauseRecording();\n * ```\n */\n pauseRecording(): Promise<TaskResponse>;\n\n /**\n * Resumes a previously paused recording\n * @param resumeRecordingPayload - Parameters for resuming the recording\n * @returns Promise<TaskResponse>\n * @example\n * ```typescript\n * task.resumeRecording({\n * autoResumed: false\n * });\n * ```\n */\n resumeRecording(resumeRecordingPayload: ResumeRecordingPayload): Promise<TaskResponse>;\n}\n"],"mappings":";;;;;;AAKA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,MAAMA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC9B;EACAE,KAAK,EAAE,OAAO;EACd;EACAC,UAAU,EAAE,YAAY;EACxB;EACAC,KAAK,EAAE,OAAO;EACd;EACAC,UAAU,EAAE;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,MAAMC,iCAAiC,GAAAL,OAAA,CAAAK,iCAAA,GAAG;EAC/C;EACAF,KAAK,EAAE,OAAO;EACd;EACAC,UAAU,EAAE,YAAY;EACxB;EACAF,UAAU,EAAE,YAAY;EACxB;EACAD,KAAK,EAAE;AACT,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,MAAMK,aAAa,GAAAN,OAAA,CAAAM,aAAA,GAAG;EAC3B;EACAC,KAAK,EAAE,OAAO;EACd;EACAC,IAAI,EAAE,MAAM;EACZ;EACAC,SAAS,EAAE,WAAW;EACtB;EACAC,MAAM,EAAE,QAAQ;EAChB;EACAC,GAAG,EAAE,KAAK;EACV;EACAC,QAAQ,EAAE,UAAU;EACpB;EACAC,QAAQ,EAAE;AACZ,CAAU;;AAEV;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAJA,IAKYC,WAAW,GAAAd,OAAA,CAAAc,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AA6YvB;AACA;AACA;AACA;AACA;AA6LA;AACA;AACA;AACA;AACA;AAsEA;AACA;AACA;AACA;AACA;AAmFA;AACA;AACA;AACA;AAcA;AACA;AACA;AACA;AAcA;AACA;AACA;AACA;AACA;AAiBA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AAUA;AACA;AACA;AACA;AAYA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AAUA;AACA;AACA;AACA;AAUA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AAkBA;AACA;AACA;AACA;AA+BA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA"}
|
package/dist/types/cc.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { WebexPlugin } from '@webex/webex-core';
|
|
|
9
9
|
import { SetStateResponse, IContactCenter, AgentLogin, AgentProfileUpdate, StationLoginResponse, StationLogoutResponse, BuddyAgentsResponse, BuddyAgents, UploadLogsResponse, UpdateDeviceTypeResponse } from './types';
|
|
10
10
|
import LoggerProxy from './logger-proxy';
|
|
11
11
|
import { StateChange, Logout } from './services/agent/types';
|
|
12
|
-
import { Profile } from './services/config/types';
|
|
12
|
+
import { Profile, OutdialAniEntriesResponse, OutdialAniParams } from './services/config/types';
|
|
13
13
|
import { TaskResponse } from './services/task/types';
|
|
14
14
|
import AddressBook from './services/AddressBook';
|
|
15
15
|
import type { EntryPointListResponse, EntryPointSearchParams, ContactServiceQueuesResponse, ContactServiceQueueSearchParams } from './types';
|
|
@@ -540,6 +540,7 @@ export default class ContactCenter extends WebexPlugin implements IContactCenter
|
|
|
540
540
|
* Makes an outbound call to a specified phone number.
|
|
541
541
|
*
|
|
542
542
|
* @param {string} destination - The phone number to dial (e.g., '+1234567890').
|
|
543
|
+
* @param {string} origin - The contact center number that will be used while making a call to the customer.
|
|
543
544
|
* Should include country code and be in E.164 format.
|
|
544
545
|
* @returns {Promise<TaskResponse>} Resolves with the task response containing:
|
|
545
546
|
* - interactionId: Unique identifier for the outbound call
|
|
@@ -575,7 +576,7 @@ export default class ContactCenter extends WebexPlugin implements IContactCenter
|
|
|
575
576
|
*
|
|
576
577
|
* // Start the outbound call
|
|
577
578
|
* const destination = '+1234567890';
|
|
578
|
-
* const task = await cc.startOutdial(destination);
|
|
579
|
+
* const task = await cc.startOutdial(destination, origin);
|
|
579
580
|
*
|
|
580
581
|
* // Listen for all relevant task events
|
|
581
582
|
* task.on('task:ringing', () => {
|
|
@@ -643,7 +644,52 @@ export default class ContactCenter extends WebexPlugin implements IContactCenter
|
|
|
643
644
|
* }
|
|
644
645
|
* ```
|
|
645
646
|
*/
|
|
646
|
-
startOutdial(destination: string): Promise<TaskResponse>;
|
|
647
|
+
startOutdial(destination: string, origin: string): Promise<TaskResponse>;
|
|
648
|
+
/**
|
|
649
|
+
* Fetches outdial ANI (Automatic Number Identification) entries for an outdial ANI ID.
|
|
650
|
+
*
|
|
651
|
+
* This method retrieves the list of phone numbers that can be used as caller ID when making
|
|
652
|
+
* outbound calls. The ANI data is associated with an outdial ANI ID and can be filtered
|
|
653
|
+
* and paginated as needed.
|
|
654
|
+
*
|
|
655
|
+
* @param {string} outdialANI - The outdial ANI ID to fetch ANI data for
|
|
656
|
+
* @param {number} [page] - Optional page number for pagination (0-based)
|
|
657
|
+
* @param {number} [pageSize] - Optional number of items per page
|
|
658
|
+
* @param {string} [search] - Optional search term to filter results by name or number
|
|
659
|
+
* @param {string} [filter] - Optional filter string
|
|
660
|
+
* @param {string} [attributes] - Optional attributes to include in response
|
|
661
|
+
* @returns {Promise<OutdialAniEntriesResponse>} Promise resolving to outdial ANI response containing:
|
|
662
|
+
* - data: Array of ANI entries with number and name
|
|
663
|
+
* - meta: Pagination metadata
|
|
664
|
+
* @throws {Error} If the operation fails or agent is not registered
|
|
665
|
+
* @public
|
|
666
|
+
* @example
|
|
667
|
+
* ```typescript
|
|
668
|
+
* const cc = webex.cc;
|
|
669
|
+
* await cc.register();
|
|
670
|
+
*
|
|
671
|
+
* // Get agent profile to obtain outdial ANI ID
|
|
672
|
+
* const agentProfile = cc.agentConfig;
|
|
673
|
+
* const outdialANI = agentProfile.outdialANIId;
|
|
674
|
+
*
|
|
675
|
+
* // Basic usage - get all ANI data for an outdial ANI ID
|
|
676
|
+
* const aniData = await cc.getOutdialAniEntries({ outdialANI });
|
|
677
|
+
*
|
|
678
|
+
* // With pagination and search
|
|
679
|
+
* const paginatedAni = await cc.getOutdialAniEntries({
|
|
680
|
+
* outdialANI,
|
|
681
|
+
* page: 0,
|
|
682
|
+
* pageSize: 50,
|
|
683
|
+
* search: '555' // search for numbers containing '555'
|
|
684
|
+
* });
|
|
685
|
+
*
|
|
686
|
+
* // Process the results
|
|
687
|
+
* paginatedAni.forEach(ani => {
|
|
688
|
+
* console.log(`ANI: ${ani.number} - ${ani.name}`);
|
|
689
|
+
* });
|
|
690
|
+
* ```
|
|
691
|
+
*/
|
|
692
|
+
getOutdialAniEntries(params: OutdialAniParams): Promise<OutdialAniEntriesResponse>;
|
|
647
693
|
/**
|
|
648
694
|
* Uploads logs to help troubleshoot SDK issues.
|
|
649
695
|
*
|
|
@@ -36,7 +36,6 @@ type Enum<T extends Record<string, unknown>> = T[keyof T];
|
|
|
36
36
|
* @property {string} TASK_HOLD_FAILED - Event name for failed task hold.
|
|
37
37
|
* @property {string} TASK_RESUME_SUCCESS - Event name for successful task resume.
|
|
38
38
|
* @property {string} TASK_RESUME_FAILED - Event name for failed task resume.
|
|
39
|
-
*
|
|
40
39
|
* @property {string} TASK_CONSULT_START_SUCCESS - Event name for successful consult start.
|
|
41
40
|
* @property {string} TASK_CONSULT_START_FAILED - Event name for failed consult start.
|
|
42
41
|
* @property {string} TASK_CONSULT_END_SUCCESS - Event name for successful consult end.
|
|
@@ -68,6 +67,9 @@ type Enum<T extends Record<string, unknown>> = T[keyof T];
|
|
|
68
67
|
* @property {string} AGENT_DEVICE_TYPE_UPDATE_SUCCESS - Event name for successful agent device type update.
|
|
69
68
|
* @property {string} AGENT_DEVICE_TYPE_UPDATE_FAILED - Event name for failed agent device type update.
|
|
70
69
|
*
|
|
70
|
+
* @property {string} OUTDIAL_ANI_EP_FETCH_SUCCESS - Event name for successful outdial ANI entries fetch.
|
|
71
|
+
* @property {string} OUTDIAL_ANI_EP_FETCH_FAILED - Event name for failed outdial ANI entries fetch.
|
|
72
|
+
*
|
|
71
73
|
* @readonly
|
|
72
74
|
*/
|
|
73
75
|
export declare const METRIC_EVENT_NAMES: {
|
|
@@ -131,6 +133,8 @@ export declare const METRIC_EVENT_NAMES: {
|
|
|
131
133
|
readonly ADDRESSBOOK_FETCH_FAILED: "AddressBook Fetch Failed";
|
|
132
134
|
readonly QUEUE_FETCH_SUCCESS: "Queue Fetch Success";
|
|
133
135
|
readonly QUEUE_FETCH_FAILED: "Queue Fetch Failed";
|
|
136
|
+
readonly OUTDIAL_ANI_EP_FETCH_SUCCESS: "Outdial ANI Entries Fetch Success";
|
|
137
|
+
readonly OUTDIAL_ANI_EP_FETCH_FAILED: "Outdial ANI Entries Fetch Failed";
|
|
134
138
|
};
|
|
135
139
|
/**
|
|
136
140
|
* Represents the possible metric event names used within the metrics system.
|
|
@@ -222,4 +222,16 @@ export declare const endPointMap: {
|
|
|
222
222
|
* @ignore
|
|
223
223
|
*/
|
|
224
224
|
addressBookEntries: (orgId: string, addressBookId: string, queryParams: string) => string;
|
|
225
|
+
/**
|
|
226
|
+
* Gets the endpoint for outdial ANI entries with custom query parameters.
|
|
227
|
+
* @param orgId - Organization ID.
|
|
228
|
+
* @param outdialANI - Outdial ANI ID.
|
|
229
|
+
* @param queryParams - Query parameters string.
|
|
230
|
+
* @returns The endpoint URL string.
|
|
231
|
+
* @public
|
|
232
|
+
* @example
|
|
233
|
+
* const url = endPointMap.outdialAniEntries('org123', 'ani456', 'page=0&pageSize=10');
|
|
234
|
+
* @ignore
|
|
235
|
+
*/
|
|
236
|
+
outdialAniEntries: (orgId: string, outdialANI: string, queryParams: string) => string;
|
|
225
237
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @packageDocumentation
|
|
3
3
|
* @module AgentConfigService
|
|
4
4
|
*/
|
|
5
|
-
import { DesktopProfileResponse, ListAuxCodesResponse, AgentResponse, OrgInfo, OrgSettings,
|
|
5
|
+
import { DesktopProfileResponse, ListAuxCodesResponse, AgentResponse, TenantData, OrgInfo, OrgSettings, URLMapping, TeamList, DialPlanEntity, Profile, ListTeamsResponse, AuxCode, MultimediaProfileResponse, SiteInfo, OutdialAniEntriesResponse, OutdialAniParams } from './types';
|
|
6
6
|
/**
|
|
7
7
|
* The AgentConfigService class provides methods to fetch agent configuration data.
|
|
8
8
|
* @private
|
|
@@ -155,4 +155,14 @@ export default class AgentConfigService {
|
|
|
155
155
|
* @private
|
|
156
156
|
*/
|
|
157
157
|
getDialPlanData(orgId: string): Promise<DialPlanEntity[]>;
|
|
158
|
+
/**
|
|
159
|
+
* Fetches outdial ANI (Automatic Number Identification) entries for the given orgId and outdial ANI ID.
|
|
160
|
+
* @ignore
|
|
161
|
+
* @param {string} orgId - organization ID for which the outdial ANI entries are to be fetched.
|
|
162
|
+
* @param {OutdialAniParams} params - parameters object containing outdialANI and optional pagination/filtering options
|
|
163
|
+
* @returns {Promise<OutdialAniEntriesResponse>} - A promise that resolves to the outdial ANI entries response.
|
|
164
|
+
* @throws {Error} - Throws an error if the API call fails or if the response status is not 200.
|
|
165
|
+
* @private
|
|
166
|
+
*/
|
|
167
|
+
getOutdialAniEntries(orgId: string, params: OutdialAniParams): Promise<OutdialAniEntriesResponse>;
|
|
158
168
|
}
|
|
@@ -1091,3 +1091,44 @@ export type CallDistributionGroup = {
|
|
|
1091
1091
|
/** Distribution time duration in seconds */
|
|
1092
1092
|
duration: number;
|
|
1093
1093
|
};
|
|
1094
|
+
/**
|
|
1095
|
+
* Represents a single outdial ANI (Automatic Number Identification) entry
|
|
1096
|
+
* @public
|
|
1097
|
+
*/
|
|
1098
|
+
export type OutdialAniEntry = {
|
|
1099
|
+
/** Unique identifier for the ANI entry */
|
|
1100
|
+
id: string;
|
|
1101
|
+
/** Display name for the ANI entry */
|
|
1102
|
+
name: string;
|
|
1103
|
+
/** Phone number associated with this ANI entry */
|
|
1104
|
+
number: string;
|
|
1105
|
+
/** Related links for this ANI entry */
|
|
1106
|
+
links: string[];
|
|
1107
|
+
/** Timestamp when this entry was created (Unix timestamp in milliseconds) */
|
|
1108
|
+
createdTime: number;
|
|
1109
|
+
/** Timestamp when this entry was last updated (Unix timestamp in milliseconds) */
|
|
1110
|
+
lastUpdatedTime: number;
|
|
1111
|
+
};
|
|
1112
|
+
/**
|
|
1113
|
+
* Response structure for outdial ANI entries API call
|
|
1114
|
+
* @public
|
|
1115
|
+
*/
|
|
1116
|
+
export type OutdialAniEntriesResponse = OutdialAniEntry[];
|
|
1117
|
+
/**
|
|
1118
|
+
* Parameters for fetching outdial ANI entries
|
|
1119
|
+
* @public
|
|
1120
|
+
*/
|
|
1121
|
+
export type OutdialAniParams = {
|
|
1122
|
+
/** Outdial ANI ID from agent profile */
|
|
1123
|
+
outdialANI: string;
|
|
1124
|
+
/** Page number for pagination (optional) */
|
|
1125
|
+
page?: number;
|
|
1126
|
+
/** Number of entries per page (optional) */
|
|
1127
|
+
pageSize?: number;
|
|
1128
|
+
/** Search string to filter entries (optional) */
|
|
1129
|
+
search?: string;
|
|
1130
|
+
/** Filter expression for advanced filtering (optional) */
|
|
1131
|
+
filter?: string;
|
|
1132
|
+
/** Comma-separated list of attributes to include in response (optional) */
|
|
1133
|
+
attributes?: string;
|
|
1134
|
+
};
|