The ChatForte Agent project is a real world application using the ChatForte protocol. It is aimed at improving the onlineshopping experience for customers through collaboration. The agent provides two basic services
  1. Context based conversation
  2. Information Manager
The first service assists in one service representative serving multiple customers and the second service acts as a sophisticated customer representative by itself in answering customer queries mostly unless a direct interaction is required where the customer is transferred to a customer representative.

Message Sequence

The message sequence for CFAgent is shown in the following diagram. CFAgent uses ChatForte protocol for its messaging. The sequence of the messages differ from one application to the other based upon the requirements and the interaction among different components involved.
ChatForte Agent Message Sequence
Auto sessions are created for the Information Manager to answer customer queries and an intelligent routing is done internally to the appropriate auto session. While enrolled in the auto session, the customer always sends query messages to the ChatForte server. When a customer requires more information, a transfer is initiated from the auto session to a session handled by the customer representative. The transfer is done based on the availability of the representative and the size of the session based on the customer's topic of interest. If none of the sessions are available, a force transfer is done to one of the sessions. A customer can be put on hold by a representative. This facility will be made available in our user interface. If the customer enters different queries while on hold, then an array of queries will be sent once the representative is ready.


The customer representative  serves as the chat master.  The chat admin creates all the sessions and enrolls the chat masters. The chat master do not create any sessions in this application. In addition, the session properties for the protocol has been minimized to maximum number of customers allowed in a session. It also includes other attributes such as category, description, and password protection. The filters are included in these sessions but are not active currently. A user interface will be provided for the chat admin to create sessions and edit session properties initially. The chat masters have the right to change the properties of the session handled by them.


The Information Manager requires a database to search for customer queries. The database is also used to store the context based conversations between the representatives and the customers. The software currently provides support for MySQL database. In future, there will be support for other RDBMS. A file based database will also be provided in future so that the software can act self without any requirements for external packages.


  • Timer Thread to close the open connections after a certain period of inactivity. This is mainly
    required for CFWeb because the Servlet may not know when the browser stops listening to
    the messages.
  • AutoSession which is an automated customer representative to which all the customers are directed to.
    There may be several auto sessions created for handling different customer volume. 
  • QueryMessage is specific to customer queries. There are other attributes with this message which will
    prompt transfer to a manual customer representative. If the automated representative is unable find any
    response for the customer query, the system automatically transfers the customer to a manual representative.
    Once the transfer to a human representative is done, only chat messages are sent.
  • The Session now has Session Properties that can be set such as description, category, maximum members,
    timeout, password and privacy etc. 
  • The admin is responsible for creating masters (registering masters) and sessions (including their
    properties). The masters (customer representatives) cannot register and only login with the provided
    username, password and the session allocated to them. 
  • There is a failover when a session master (customer rep) is not available (disconnected for some reasons).
    This means all the members of that session will be automatically transferred to other active sessions based on
    some rules.
  • Session has different status (NOT_STARTED, READY, BUSY etc.) which can be set according to the
    availability of the chat master. 
  • New database methods are including in order to store customer query, customer rep's response, search
    for customer queries, list all customer queries to learn more about the customer and so on... The MySQL
    implementation works for now. The other implementations (flat file and serial are not fully completed)
  • CFWeb, a web interface agent specifically for CFAgent through pure HTTP has been built and is in its initial
  • System properties are loaded when the server is started from a configuration file. This file gives a lot of
    flexibility in choosing different options. 
  • The logger package is effectively utilized for file/console logging. Everything is being logged with different
    flags (information, warning, severe, fine and finest) such that they are easy to scan through for debugging
    purposes. This log file can also be used to track the server functionality.
  • If for some reasons, the customer representative is disconnected, the failover will be first invoked.
    If there are no more representatives and the customers are finally transferred to the same
    representative, the messages will be cached until the customer representative becomes available.
    No information is lost during loss of connectivity. 
  • The customer query is refined further before sending it to the database for automated response. All the
    queries are domain specific and hence provisions are available to make it suitable to meet the domain
Missing Features
  • Whiteboard
  • Peer-to-Peer file transfer facility
  • Some GUI frames and features
  • Security filters in the chatforte protocol implementation
  • Transfer of customers to different sessions based on their dissatisfaction with
    automated response or topic of interest is not yet supported
The above missing features will be implemented in our next release


For installation instructions go to software documentation


More information is provided under software documentation .