Task class represents a contact center task/interaction that can be managed by an agent. This class provides all the necessary methods to manage tasks in a contact center enivornment, handling various call control operations and task lifecycle management.

Implements

Example

const task = new Task(contact, webCallingService, taskData);

Hierarchy

  • EventEmitter
    • Task

Implements

Constructors

  • Creates a new Task instance

    Parameters

    • contact: {
          accept: Res<AgentContact, {
              interactionId: string;
          }>;
          blindTransfer: Res<AgentContact, {
              data: TransferPayLoad;
              interactionId: string;
          }>;
          cancelCtq: Res<AgentContact, {
              data: cancelCtq;
              interactionId: string;
          }>;
          cancelTask: Res<AgentContact, {
              interactionId: string;
          }>;
          consult: Res<AgentContact, {
              data: ConsultPayload;
              interactionId: string;
          }>;
          consultAccept: Res<AgentContact, {
              interactionId: string;
          }>;
          consultEnd: Res<AgentContact, {
              data: ConsultEndPayload;
              interactionId: string;
          }>;
          consultTransfer: Res<AgentContact, {
              data: ConsultTransferPayLoad;
              interactionId: string;
          }>;
          end: Res<AgentContact, {
              interactionId: string;
          }>;
          hold: Res<AgentContact, {
              data: HoldResumePayload;
              interactionId: string;
          }>;
          pauseRecording: Res<AgentContact, {
              interactionId: string;
          }>;
          resumeRecording: Res<AgentContact, {
              data: ResumeRecordingPayload;
              interactionId: string;
          }>;
          unHold: Res<AgentContact, {
              data: HoldResumePayload;
              interactionId: string;
          }>;
          vteamTransfer: Res<AgentContact, {
              data: TransferPayLoad;
              interactionId: string;
          }>;
          wrapup: Res<AgentContact, {
              data: WrapupPayLoad;
              interactionId: string;
          }>;
      }

      The routing contact service instance

    • webCallingService: default

      The web calling service instance

    • data: TaskData

      Initial task data

    Returns Task

Properties

data: TaskData

Event data received in the Contact Center events. Contains detailed task information including interaction details, media resources, and participant data as defined in TaskData

webCallMap: Record<string, string>

Map associating tasks with their corresponding call identifiers.

contact: {
    accept: Res<AgentContact, {
        interactionId: string;
    }>;
    blindTransfer: Res<AgentContact, {
        data: TransferPayLoad;
        interactionId: string;
    }>;
    cancelCtq: Res<AgentContact, {
        data: cancelCtq;
        interactionId: string;
    }>;
    cancelTask: Res<AgentContact, {
        interactionId: string;
    }>;
    consult: Res<AgentContact, {
        data: ConsultPayload;
        interactionId: string;
    }>;
    consultAccept: Res<AgentContact, {
        interactionId: string;
    }>;
    consultEnd: Res<AgentContact, {
        data: ConsultEndPayload;
        interactionId: string;
    }>;
    consultTransfer: Res<AgentContact, {
        data: ConsultTransferPayLoad;
        interactionId: string;
    }>;
    end: Res<AgentContact, {
        interactionId: string;
    }>;
    hold: Res<AgentContact, {
        data: HoldResumePayload;
        interactionId: string;
    }>;
    pauseRecording: Res<AgentContact, {
        interactionId: string;
    }>;
    resumeRecording: Res<AgentContact, {
        data: ResumeRecordingPayload;
        interactionId: string;
    }>;
    unHold: Res<AgentContact, {
        data: HoldResumePayload;
        interactionId: string;
    }>;
    vteamTransfer: Res<AgentContact, {
        data: TransferPayLoad;
        interactionId: string;
    }>;
    wrapup: Res<AgentContact, {
        data: WrapupPayLoad;
        interactionId: string;
    }>;
}

Type declaration

localAudioStream: LocalMicrophoneStream
metricsManager: default
webCallingService: default

Methods

  • Consults another agent or queue on an onngoing task for further assistance.

    Parameters

    • consultPayload: ConsultPayload

      ConsultPayload containing destination and destinationType

    Returns Promise<TaskResponse>

    Promise

    Throws

    Error

    Example

    const consultPayload = {
    destination: 'myBuddyAgentId',
    destinationType: DESTINATION_TYPE.AGENT,
    }
    task.consult(consultPayload).then(()=>{}).catch(()=>{});
  • Transfer the task to the consulted agent or queue.

    Parameters

    • consultTransferPayload: ConsultTransferPayLoad

      Consult transfer configuration containing destination and destinationType

    Returns Promise<TaskResponse>

    Promise

    Throws

    Error

    Example

    const consultTransferPayload = {
    destination: 'anotherAgentId | queueId',
    destinationType: 'agent | queue',
    }
    task.consultTransfer(consultTransferPayload).then(()=>{}).catch(()=>{});
  • Ends the consult session in progress for a task.

    Parameters

    Returns Promise<TaskResponse>

    Promise

    Throws

    Error

    Example

    const consultEndPayload = {
    isConsult: true,
    queueId: 'myQueueId',
    }
    task.endConsult(consultEndPayload).then(()=>{}).catch(()=>{});
  • Resumes the recording for the voice task that was previously paused.

    Parameters

    • resumeRecordingPayload: ResumeRecordingPayload

      Configuration for resuming recording, defaults to {autoResumed: false}

    Returns Promise<TaskResponse>

    Promise

    Throws

    Error

    Example

    task.resumeRecording(resumeRecordingPayload).then(()=>{}).catch(()=>{});
    
  • Agent can mute/unmute the webrtc task.

    Returns Promise<void>

    Promise - Resolves when mute/unmute operation completes

    Throws

    Error

    Example

    task.toggleMute().then(()=>{}).catch(()=>{})
    
  • Transfer the task to an agent dierctly or to the queue.

    Parameters

    • transferPayload: TransferPayLoad

      Transfer configuration containing destination and destination type

    Returns Promise<TaskResponse>

    Promise

    Throws

    Error

    Example

    const transferPayload = {
    to: 'myQueueId',
    destinationType: 'queue',
    }
    task.transfer(transferPayload).then(()=>{}).catch(()=>{});
  • Wraps up the task/interaction with the customer.

    Parameters

    • wrapupPayload: WrapupPayLoad

      WrapupPayLoad containing auxCodeId and wrapUpReason

    Returns Promise<TaskResponse>

    Promise

    Throws

    Error - Throws if task data is unavailable, auxCodeId is missing, or wrapUpReason is missing

    Example

    task.wrapup(wrapupPayload).then(()=>{}).catch(()=>{})