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
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
- Context based conversation
- Information Manager
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.
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
- 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
- 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
- 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
- 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
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
The above missing features will be implemented in our next release
- 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
automated response or topic of interest is not yet supported
For installation instructions go to software documentation
More information is provided under software documentation