Chat Architecture

The following diagram illustrates the architecture of MCF chat and the flow of a chat session.

MCF chat architecture and flow

When a customer clicks the Help button on an application page:

  1. InitChat() passes the following parameters to the application server:

  2. The application server posts to the REN server to notify the queue server that a customer chat is waiting.

    The application server then returns the name and port of the REN server and the iScript to build the customer chat window.

  3. The customer chat window appears and communicates with the REN server to receive all events on that chat topic.

  4. The REN server notifies the queue server that a customer chat is waiting.

    The queue server determines the appropriate agent according to workload, cost, agent availability, skill level, and language.

  5. The queue server tells the REN server to notify the agent that the agent has been assigned a chat.

  6. The REN server notifies the agent from the MultiChannel Console that the agent has been assigned a chat.

  7. The agent, from the MultiChannel Console, notifies the REN server to notify the queue server that the agent has accepted the task.

  8. The REN server notifies the queue that the agent has accepted the task.

  9. The MultiChannel Console displays an agent chat window.

    The agent responds to inquiry.

  10. Agent to customer two-way communication is mediated by the REN server.

  11. If the agent chooses to grab a URL, the Grab button invokes the application URL wizard.

  12. If the agent chooses to push a URL, the Push button invokes a pagelet (labeled with an A in the diagram) to push a selected URL through the REN server (labeled with a B in the diagram) and customer chat window (labeled with a C in the diagram) to a new browser window.

The entire chat session can be logged through the MCF log server (labeled with a dotted line in the preceding diagram).