CONTENTS PAGE NO
List of Figures ii
List of Screens iii
Symbols & Abbreviations iv
1.1 Motivation 1
1.2 Problem definition 1
1.3 Objective of Project 2
1.4 Limitations of Project 2
1.5 Organization of Documentation 3
2. LITERATURE SURVEY
2.1 Introduction 4-8
2.2 Existing System 9
2.3 Disadvantages of Existing system 9
2.4 Proposed System 9
2.5 Conclusion 10
3.1 Introduction 11
3.2 Software Requirement Specification 12-16
3.2.1 User requirement
3.2.2 Software requirement
3.2.3 Hardware requirement
3.3 Content diagram of Project 17
3.4 Flowcharts 17-20
3.5 Conclusion 21
4.1 Introduction 22
4.2 ER / UML diagram 22-33
4.3 Module design and organization 34
4.4 Conclusion 34
5. IMPLEMENTATION & RESULTS
5.1 Introduction 34
5.2 Method of Implementation 34-45
5.3 Conclusion 46
6. TESTING & VALIDATION
6.1 Introduction 51
6.2 Design of test cases and scenarios 52
6.3 Validation 56
6.4 Conclusion 56
7. CONCLUSION 57
This document specifies Voice application, is an application in which both the
input/output are through voice (speaking) rather than graphical user interface. The
application files can reside on local systems, an intranet or the internet. The users can
access the deployed voice applications anywhere and anytime.
In this application we use Voice Extensible Markup Language VoiceXML, is
designed for creating audio dialogs that feature synthesized speech, digitization audio,
recognition of spoken and DTMF key input, recoding of speech input, telephony, and
mixed initiative conversations. Its major goal is to bring the advantages of Web-based
development and content delivery to interactive voice response application.
LIST OF FIGURES
S.NO FIGURE NAME PAGE NO
1-1 Voicexml architecture 6
3-2 Content diagram of application 17
3-2 Flow chart for application 18-20
4-1 ER diagram of application 24
4-2 Class diagram for application 27
4-3 Use case diagram for transaction 28
4-4 Sequence diagram for login 29
4-5 Sequence diagram for transfer money 30
4-6 Sequence diagram for balance enquiry 31
4-7 State chart diagram for transfer money 32
4-8 State chart diagram for balance enquiry 33
LIST OF SCREENS
S.NO SCREEN NAMES PAGE NO
5-1 URl address of application 46
5-2 Entering user name and password 47
5-3 Entering account number and pin 48
5-4 Entering toaccount no to transfer money 49
5-5 Enter amount to transfer 50
SRS- Software Requirement specification
UML-unified modeling language
IVR-Interactive Voice Response
SIP-Session Initiation protocol
VoIP-Voice over Internet protocol
SYMBOL NAME DESCRIPTION
Flow line connectors
show the direction that
the process flows.
Indicates a question or
branch in the process
flow. Typically, a
shape is used when
there are 2 options
(Terminal Point, Oval)
Terminators show the
start and stop points in a
process. When used as a
terminators depict a
trigger action that sets
the process flow into
The Data flowchart
shape indicates inputs
to and outputs from a
process. As such, the
shape is more often
referred to as an I/O
shape than a Data
shows continuation of a
process flowchart onto
Voice banking provides a feasible solution to users. By using this application
we will get the services like transfer money and balance enquiry user can interact the
system using their voice. This voice banking application helps in such a way that it
just need voice to interact with system. This application may useful for the illiterate
people and it is very easy for those people who don’t have the knowledge of
This application is very Easy to use for people with no knowledge or fear of
computers. Voice interaction can escape the physical limitations on keypads and
displays as mobile devices become ever smaller. As a solution for building next-
generation interactive voice response telephone services.
1.2 PROBLEM DEFINITION
We have some problems in present scenario to get the banking service people
are manually go the bank like money transaction and people also get services through
In present scenario we have some problems like, it is a time consuming
process. Illiterate people unable to get the services. In most of the countries around
the world some people even don’t have the knowledge of using a computer.
Especially in a country like India where literacy rate is very low, the major population
doesn’t have the knowledge of using computer and internet. Then in such case how
can we expect such kind of people to use the applications developed in those
1.3 OBJECTIVE OF PROJECT
Main objective of our project is to provide a feasible solution to users. By
using this application we can transfer money and get balance enquiry. User can easily
interact the system using their voice. This voice banking application helps in such a
way that it just need voice to interact with system. In the existing scenario to get the
banking service people are manually go the bank like money transaction and people
also get services through online websites. But we have to face some problems like if
we want to transfer money we need to go to the bank and wait in queue to get money
transaction it’s a time consuming.
process, though this online Banking have solution to such kind of problems
but What about Illiterate people or those people who don’t have knowledge about
computer. By using this application we can overcome these problems and it is easy
for user to use. Even illiterate people can access to application by using voice.
1.4 LIMITATIONS OF PROJECT
Every application has some limits as our application also has limits users are
restricted to use Dialup keys, which can be only a digit type. And user can only listen
the voice they can’t see any output though this is a voice application. And user should
speak clearly to execute the application.
1.5 ORGANIZATION OF DOCUMENTATION
The organization of this document follows a new approach which we find to
be best when discussing voice banking system. From this document user can easily
understand the aim of this application. How this application works, what its need, its
Chapter 1: In this chapter we discuss about motivation of our application, problems
of existing system, Objectives of our application and Limitations of our application.
Chapter 2: Here we introduce a Literature Survey. We provide a thorough discussion
of a voice banking system, existing system, its disadvantages, solutions, proposed
system and its advantages.
Chapter 3: Analysis, in this chapter we present SRS. Modules of our application,
provisions, functionalities, Alerts, Queries and report. And finally providing a
software requirements specification, user requirement, software requirement and
Chapter 4: Design, in this chapter we discuss about designs such as Entity diagram
and uml diagram.
Chapter 5: Implementation, in this chapter we discuss methods of implementation
and their results.
Chapter 6: In this chapter we provide testing methods and validation which we use in
Chapter 7: In this chapter we discuss advantages of our application i.e. voice banking
system and voicexml.
Voice Extensible Markup Language VXML, or VoiceXML, technology
allows a user to interact with the Internet through voice-recognition technology, as a
response, Voice or Audio. VoiceXML is a dialog markup language designed for
telephony applications, where users are restricted to voice and DTMF (touch tone)
input. VoiceXML is a markup language that makes building voice applications easier,
in the same way that HTML simplifies building visual applications. VoiceXML also
reduces the amount of speech expertise that developers need.
VoiceXML applications can use the same existing back-end business logic as
their visual counterparts, enabling voice solutions to be introduced to new markets
quickly. Current and long-term development and maintenance costs are minimized by
leveraging the Web design skills and infrastructures already present in the enterprise.
Customers can benefit from a consistency of experience between voice and visual
applications. VoiceXML implements a client/server paradigm, where a Web server
provides VoiceXML documents that contain dialogs to be interpreted and presented to
a user. The user's responses are submitted to the Web server, which responds by
providing additional VoiceXML documents, as appropriate. VoiceXML allows you to
request documents and submit data to server scripts using Universal Resource
Identifiers (URIs). VoiceXML documents can be static, or they can be dynamically
generated by CGI scripts, Java Beans, ASPs, JSPs, Java servlets, or other server-side
logic. Unlike a proprietary Interactive Voice Response (IVR) system, VoiceXML
provides an open application development environment that generates portable
applications. This makes VoiceXML a cost-effective alternative for providing voice
Most installed IVR systems today accept input from the telephone keypad
only. In contrast, VoiceXML is designed predominantly to accept spoken input, but it
can also accept DTMF input, if desired. As a result, VoiceXML helps speed up
customer interactions by providing a more natural interface that replaces the
traditional, hierarchical IVR menu tree with a streamlined dialog using a flattened
command structure. It directly supports networked and Web-based applications,
meaning that a user at one location can access information or an application provided
by a server at another geographically or organizationally distant location. This
capitalizes on the connectivity and commerce potential of the World Wide Web.
Using a single VoiceXML browser to interpret streams of markup language
originating from multiple locations provides the user with a seamless conversational
experience across independent applications. For example, a voice portal application
might allow a user to temporarily suspend an airline purchase transaction to interact
with a banking application on a different server to check an account balance.
VoiceXML supports local processing and validation of user input. It supports
playback of prerecorded audio files. It supports recording of user input. The resulting
audio can be played back locally or uploaded to the server for storage, processing, or
playback at a later time. It defines a set of events corresponding to such activities as a
user request for help, the failure of a user to respond within a timeout period, and an
unrecognized user response. A VoiceXML application can provide catch elements
that respond appropriately to a given event for a particular context. It also supports
context-specific and tapered help using a system of events and catch elements. Help
can be tapered by specifying a count for each event handler, so that different event
handlers are executed depending on the number of times that the event has occurred in
the specified context. This can be used to provide increasingly more detailed
messages each time the user asks for help. VoiceXML supports sub dialogs, which are
roughly the equivalent of function or method calls. Sub dialogs can be used to provide
a disambiguation or confirmation dialog, and to create reusable dialog components.
HISTORY OF VOICEXML
VoiceXML started with several informal gatherings in 1995 by Dave Ladd,
Chris Ramming, Ken Rehor, and Curt Tuckey of AT&T
They were brainstorming ideas about how the Internet would affect telephony
Thus began the AT&T Phone Web project.
AT&T, IBM, Lucent, and Motorola formed the VoiceXML Forum in March
1999, in order to develop a standard markup language for specifying voice
By September 1999 the Forum released VoiceXML 0.9 for member comment,
and in March 2000 they published VoiceXML 1.0.
Soon afterwards, the Forum turned over the control of the standard to the
The W3C produced several intermediate versions of VoiceXML 2.0, which
reached the final "Recommendation" stage in March 2004.
VoiceXML2.1 added a relatively small set of additional features to
VoiceXML2.0, based on feedback from implementations of the 2.0 standard.
It is backward compatible with VoiceXML2.0 and reached W3C
Recommendation status in June 2007.
ARCHITECTURE OF VOICEXML
Fig 2-1: Architecher of vxml
VOICEXML – ARCHITECTURE
A typical VoiceXML based system contains the four main components.
i. TELEPHONE NETWORK
Telephone Network Can be a PSTN network or VoIP packet network.
ii. VOICEXML GATEWAY
VoiceXML gateway consists of a VoiceXML interpreter integrated
with Media resources (Speech Recognition, Text-to-speech, Audio playback)
and Telephony resources (DTMF, Call Control). VoiceXML Gateway
downloads the applications from Application Server and interprets it.
iii. APPLICATION SERVER
Typically a Web Server that hosts the VoiceXML application and
iv. TCP/IP NETWORK
LAN, WAN or public Internet. VoiceXML connects to Telephone Network on one
side and TCP/IP network and Application Server on the other side. VoiceXML
connects to Telephone Network on one side and TCP/IP network and Application
Server on the other side
Whenever a user gives input through voice it will be redirected to the speech
browser for further processing of the input.
SPEECH RECOGNITION ENGINE
This is a component which is a part of the speech browser which converts the
spoken input into text upon validation with legal grammar provided and gives back
the valid processed input to the browser.
It gets request in the form http request from the speech browser which requests
for a valid resource based on the user’s request. The http server will process the
request and will communicate with the back end (data base) and give it back the
response to the browser.
TEXT TO SPEECH (TTS)
The speech browser will delegate the request to this component where it is
responsible for synthesizing speech out of text or else plays back the audio files back
to the requested user.
VoiceXML is a language for creating voice-user interfaces.
For Input, It uses Speech recognition and Touchtone (DTMF keypad). For
output, it uses Pre-recorded audio and Text-to-speech synthesis (TTS).
VoiceXML is based on the Worldwide Web Consortium's (W3C's) Extensible
Markup Language (XML).
Assume that you got a call on your IVR system
Answers the call and starts executing your VoiceXML document. Under the
document’s control, the interpreter may perform actions such as: Sending
vocal prompts, messages, or other audio material (such as music or sound
effects) to the user.
Accepting numeric input that the user enters by DTMF (telephone key tone)
Accepting voice input and recognizing the words.
Accepting voice input and simply recording it, without trying to recognize any
words. Sending the user’s information to a web site or other Internet server.
2.2 Existing System
In the present scenario to get the banking service people are manually go the
bank like money transaction and people get services through online websites for that
also user have to manually go to net café, which is not secure and user must have
knowledge about computer.
2.3 Disadvantages of Existing system
In most of the countries around the world some people even don’t have the
knowledge of using a computer.
Especially in a country like India where literacy rate is very low, the major
population doesn’t have the knowledge of using computer and internet.
Then in such case how can we expect such kind of people to use the
applications developed in those environments.
Its time consuming process.
Illiterate people unable to get the services
2.4 Proposed System
This voice banking application helps in such a way that it just need voice to
interact with system. In order to develop this application voice banking provides a
feasible solution to user. By using this application we will get the services like
transfer money and balance enquiry user can interact with the system using their
Despite the Internet's growing acceptance, the telephone network is still
more widely and readily accessible
Telephones are simple to operate and use the most natural form of
communication, the human voice.
Imagine a voice banking application which follows all the standards of a
web based application and enables user with all the comforts that a web
based application provides.
Then such kind of application would definitely give a solution to the
people who are only comfortable with voice rather than other
Voice banking provides an easy way of banking services.Despite the Internet's
growing acceptance, the telephone network is still more widely and readily
accessible.By using this application Illiterate people can easily get the services even
though they don’t have knowledge about system they can access this application by
dialing the numbers through SIP phone.
The purpose of the SRS is to provide a detailed overview of our software
product, its parameters and goals. A Software requirements specification (SRS), a
requirements specification for a software system, is a complete description of the
behavior of a system to be developed and may include a set of use cases that describe
interactions the users will have with the software. In addition it also contains non-
functional requirements. Non-functional requirements impose constraints on the
design or implementation. The software requirements specification document enlists
all necessary requirements that are required for the project development. To derive the
requirements we need to have clear and thorough understanding of the products to be
developed. This is prepared after detailed communications with the project team and
customer. A complete specification of what the proposed system should do! The SRS
must correctly define all of the software requirements, but no more. The SRS should
not describe design, verification, or project management details, except for required
design constraints.To introduce the concepts of user and system requirements,
describe functional and non-functional requirements, to explain how software
requirements may be organised in a requirements document.
PURPOSE OF SRS DOCUMENT
SRS establishes basis of agreement between the user and the supplier. Users
needs have to be satisfied, but user may not understand software. Developers will
develop the system, but may not know about problem domain.SRS is the medium to
bridge the communications gap.
Need for SRS
It helps user to understand his needs. Users do not always know their needs
must analyze and understand the potential. The requirement process helps clarify
needs.SRS provides a reference for validation of the final product and gives a clear
understanding about what is expected.
3.2 SOFTWARE REQUIREMENT SPECIFICATION
1. Profile Management
2. Account Management
3. Transaction Management
1. User can select the city name
2. User can select the country name
3. User can submit the details
4. User can login into the system
5. User can select the security question
6. Account details are already associated with account management.
Invalid User name/Password
Successfully logged in
What are the cities available?
What are the states available?
What are the countries available?
What are the security questions available?
How many no of users registered over a period of time?
How many no of users registered over a particular location?
Account type Name
1. User can select a particular bank
2. User can enquire about the information regarding balance
3. User can provide the destination account no to transfer the money
Invalid Destination Account no
Bank name is not available
Insufficient balance for transaction
What is the destination account number?
What are the banks available?
Comparison between number of account holders in a bank
Comparison between number of account holder over a particular
Transaction Type Name
1. User can get the transaction details
2. Transaction amount is transferred to destination account number
3. Source and destination details are already associated with account
Transaction is failed due to an error
Transaction is successfully done.
What is the transaction date?
What is the transaction amount?
Number of transactions over a period of time to a particular bank?
3.2.1 USER REQUIREMENT
User must have valid account registered in bank.
User must have another valid account to perform transaction.
Though this is voice application user requires a voice.
3.2.2 SOFTWARE REQUIREMENT
Technology: Voice XML
Operating System : Windows, MAC, Linux
Tools : JDBC, Eclipse Galileo
Technology : J2SE, J2EE, VXM
Database : Oracle 10g
Server : Tomcat, VOXEO Prophecy server
3.2.3 Hardware requirement
Our application is voice banking system. In this application we
require a Hardware’s like
Client side : SIP Phone
Processor : Intel(R) Core™2 Duo CPU
Hard disk : 40GB
Cache : 512KB
RAM : 1GB OR more
3.3 CONTENT DIAGRAM OF PROJECT
Fig 3-1: Content Diagram of project
A flowchart is a type of diagram that represents an algorithm or process,
showing the steps as boxes of various kinds, and their order by connecting them with
arrows. This diagrammatic representation illustrates a solution to a given problem.
Process operations are represented in these boxes, and arrows; rather, they are implied
by the sequencing of operations. Flowcharts are used in analyzing, designing,
documenting or managing a process or program in various fields.
3 54 6
Fig 3-2: FLOW CHART OF BANKING SYSTEM
By seeing SRS user can easily know the modules of the application. User can
also know what the requirements of our application are like software requirement and
hard ware requirement. Content diagram, and flowchart by this we can understand the
flow of our application.
Software design is a process of problem solving and planning for software
solution. After the purpose and specification of software are determined, software
developers will design or employ designers to develop a plan for solution. It includes
low-level component and algorithm implementation issues as well as the architectural
4.2 ER DIARAM
ER diagram is a graphical representation of entities and their relationships to
each other, typically used in computing in regard to the organization of data within
database or information systems. An entity is real world item or concept that exists on
A relationship is how the data is shared between entities. There are three types
of relationships between entities those are
One instance of an entity (A) is associated with one other instance of
another entity (B). For example, in a database of employees, each employee
name (A) is associated with only one social security number (B).
One instance of an entity (A) is associated with zero, one or many
instances of another entity (B), but for one instance of entity B there is only
one instance of entity A. For example, for a company with all employees
working in one building, the building name (A) is associated with many
different employees (B), but those employees all share the same singular
association with entity A.
One instance of an entity (A) is associated with one, zero or many
instances of another entity (B), and one instance of entity B is associated with
one, zero or many instances of entity A. For example, for a company in which
all of its employees work on multiple projects, each instance of an employee
(A) is associated with many instances of a project (B), and at the same time,
each instance of a project (B) has multiple employees (A) associated with it.
UML is a language. It is not simply a notation for drawing diagrams, but a
complete language for capturing knowledge (semantics) about a subject and
expressing knowledge (syntax) regarding the subject for the purpose of
UML applies to modeling and systems. Modeling involves a focus on
understanding a subject (system) and capturing and being able to communicate in this
It is the result of unifying the information systems and technology industry‘s
best engineering practices (principals, techniques, methods and tools) used for both
database and software modeling.
There are four kinds of relationships in the UML.
These relationships are the basic relational building blocks of the UML. These
are used to write well-formed models.
A dependency is a semantic relationship between two things in which a change to one
thing may affect the semantics of the other thing.
The arrow head represents the independent element and the other end the
Association describes how the elements in an UML diagram are associated. In
simple word it describes how many elements are taking part in an interaction.
The multiplicity is also mentioned at the ends (1, * etc) to show how many
objects are associated.
A generalization is a specialization/ generalization relationship in which
objects of the specialized element (the child) are substitutable for objects of the
generalized element (the parent). Generalization describes the inheritance relationship
of the object oriented world. It is parent and child relationship.
A realization is a semantic relationship between classifiers, wherein one
classifier specifies a contract that another classifier guarantees to carry out.
UML CLASS DIAGRAM
The UML class diagram is also known as object modeling. It is a static
analysis diagram. These diagrams show the static structure of the model. A class
diagram is a connection of static model elements, such as classes and their
relationships, connected as a graph to each other and to their contents.
Use visibility markers to signify who can access the information contained within a
1. Private visibility hides information from anything outside the class partition.
2. Public visibility allows all other classes to view the marked information.
3. Protected visibility allows child classes to access information they inherited
from a parent class.
Fig 4-2: Class diagram of application
From class diagram we can easily understand that what is in our application
and how it will work.
The functionality of a system can be described in a number of different use-
cases, each of which represents a specific flow of events in a system. It is a graph of
actors, a set of use-cases enclosed in a boundary, communication, associations
between the actors and the use-cases, and generalization among the use-cases. Use
case is represented as an eclipse.
An actor can be defined as some internal or external entity that interacts with
Fig 4-3: Use case diagram for Transaction management
Here User is actor and login, pin valid; bank, transfer, transaction and balance
enquiry are use cases.
login pin valid
SEQUENCE DIAGRAM FOR CREATING A NEW ACCOUNT
Fig 4-4: Sequence diagram for creating a new account
Customer can login into account after login it checks in database whether its
account is available in database or not.
check the application is submitted or not
SEQUENCE DIAGRAM FOR TRANSFERRING MONEY
Fig 4-5: Sequence diagram for transferring money
This diagram is about transferring money from one account to another
account. First user select bank after selecting bank user has to login. After login it
checks whether the entered account is valid or not if valid then user needs to select
transaction type and he need to enter amount to transfer money.
user bank account transaction transactiontype
2.enter account number and pin
6.enter account number to transfer
7.entered account no
SEQUENCE DIAGRAM FOR BALANCE ENQUIRY
Fig 4-6: Sequence diagram for balance enquiry
This diagram is about checking balance. First user select bank after selecting
bank user has to login. After login it checks whether the entered account is valid or
not if valid then all the details of the user will display.
bankuser account transaction transactiontype
2.enter account number and pin
STATE CHART DIAGRAM
It consists of state, events and activities. State diagrams are a familiar
technique to describe the behavior of a system. They describe all of the possible states
that a particular object can get into and how the object's state changes as a result of
events that reach the object. In most OO techniques, state diagrams are drawn for a
single class to show the lifetime behavior of a single object.
STATE CHART DIAGRAM FOR BALANCE ENQUIRY
Fig 4-7 State chart diagram for balance enquiry
Here circle is represented as initial state of transaction and double circle is
representation of end state and the balance enquiry and all the above are the remaining
states of the diagram.
enter user name and password
number and pin
details of account
STATE CHART DIAGRAM FOR TRANSFER MONEY
Fig 4-8: State chart diagram for transfer money
Here circle is represented as initial state of transaction and double circle is
representation of end state and the transfer money and all the above are the remaining
states of the diagram.
enter user name and password
number and pin
4.3 Module design and organization
Modules are categorize into 3 categories those are
In the first module that is profile management, user can get register, User can
select the city name, User can select the country name, User can login into the system, and
User can select the security question.
In the second module that is account management, User can select a particular
bank, User can enquire about the information regarding balance and User can provide
the destination account no to transfer the money.
In the third module that is transaction management, in which User can get the
transaction details, Transaction amount is transferred to destination account number.
In this chapter we use diagrams by seeing this diagram we can easily
understand how our application works. Users can easily get how over application will
work. Designing is a best approach for software developer.
IMPLEMENTATION & RESULTS
Implementation is the carrying out, execution, or practice of a plan, a method,
or any design for doing something. As such, implementation is the action that must
follow any preliminary thinking in order for something to actually happen. In an
information technology context, implementation encompasses all the processes
involved in getting new software or hardware operating properly in its environment,
including installation, configuration, running, testing, and making necessary changes.
The word deployment is sometimes used to mean the same thing.
5.2 METHOD OF IMPLEMENTATION
A Servlet is a generic server extension. a Java class that can be loaded
Dynamically to expand the functionality of a server. Servlets are commonly used with
web servers. Where they can take the place CGI scripts. Unlike CGI and Fast CGI,
which use multiple processes to handle separate program or separate requests,
separate threads within web server process handle all servlets. This means that
servlets are all efficient and scalable. Servlets are portable; both across operating
systems and also across web servers. Java Servlets offer the best possible platform for
web application development.
Servlets are used as replacement for CGI scripts on a web server, they can
extend any sort of server such as a mail server that allows serveltst extend its
functionality perhaps by performing a virus scan on all attached documents or
handling mail filtering tasks.
Servlets provide a Java-based solution used to address the problems currently
associated with doing server-side programming including inextensible scripting
solutions platform-specific API’s and incomplete interface.
Servlets are objects that conform to a specific interface that can be plugged
into a Java-based server. Servlets are to the server-side what applets are to the server-
side what applets are to the client-side-object byte codes that can be dynamically
loaded off the net. They differ from applets in than they are faceless objects(without
graphics or a GUI component).They serve as platform independent, dynamically
loadable, plugable helper byte code objects on the server side that can be used to
dynamically extend server-side functionality.
For example an HTTP servlet can be used to generate dynamic HTML content
when you use servlets to do dynamic content you get the following advantages:
They’re faster and cleaner then CGI scripts
They use a standard API( the servlet API)
They provide all the advantages of Java (run on a variety of servers
without needing to be rewritten.
ATTRACTIVENESS OF SERVLETS
They are many features of servlets that make them easy and attractive to tuse
Easily configure using the GUI-based Admin tool]
Can be Loaded and Invoked from a local disk or remotely across the
Can be linked together or chained, so that on servlet can call another
servlet, or several servlets in sequence.
Can be called dynamically from within HTML, pages using server-side
Are secure-even when downloading across the network, the servlet security
model and servlet and box protect your system from unfriendly behavior.,
ADVANTAGES OF THE SERVLET API
One of the great advantages of the servlet API is protocol independent. It
assumes nothing about
The protocol being used to transmit on the net
How it is loaded
The server environment it will be running in
These quantities are important, because it allows the Servlet API to be
embedded in many different kinds of servers. There are other advantages to
the servelt API as well These include:
It’s extensible-you can inherit all your functionality from the base classes
made available to you
FEATURES OF SERVLETS
Servlets are persistent. Servlet are loaded only by the web server and can
maintain services between requests.
Servlets are fast. Since servlets only need to be lloaded once, they offer
much better performance over their CGI counterparts.
Servlets are platform independent.
Servlets are extensible Java is a robust, object-oriented programming
language, which easily can be extended to suit your needs.
Servlets are secure
Servlets are used with a variety of client.
Servlets are classes and interfaces from tow packages, javax .servlet and
javax.servlet.http.Thejava.servlet package contains classes support generic, protocol-
independent servlets. The classes in the javax.servelt.http package to and HTTP
specific functionality extend these classes
Every servlet must implement the javax.serveltinterface.Most servlets implement
it by extending one of two classes.javax.servlet.GenericServlet or
javax.servlet.http.HttpServlet.A protocol-independent servlet should subclass
Generic-Servlet. While an Http servlet should subclass HttpServlet, which is itself a
subclass of Generic-servlet with added HTTP-specific functionality.
Unlike a java program, a servlet does not have a main() method, Instead the server
in the process of handling requests invoke certain methods of a servlet. Each time the
server dispatches a request to a servlet, it invokes the servelts Service () method,
A generic servlet should override its service() method to handle requests as
appropriate for the servlet. The service() accepts two parameters a request object and
a response object .The request object tells the servlet about the request, while the
response object is used to return a response
InContrast.anHttp servlet usually does not override the service () method. Instead
it overrides doGet() to handle GET requests and doPost() to handle Post requests. An
Http servlet can override either or both of these modules the service () method of
HttpServlet handles the setup and dispatching to all the doXXX() methods. Which is
why it usually should not be overridden
The remainders in the javax.servlet and javax.servlet.http.package are largely
support classes .The ServletRequest and ServletResponse classes in javax.servlet
provide access to generic server requests and responses while HttpServletRequest and
HttpServletResponse classes in javax.servlet provide access to generic server requests
and responses while HttpServletRequest and HttpServletResponse in
javax.servlet.http provide access a HTTP requests and responses. The
javax.servlet.http provide contains an HttpSession class that provides built-in session
tracking functionality and Cookie class that allows quickly setup and processing
Servlets can be loaded from their places. From a directory that is on the
CLASSPATH. The CLASSPATH of the JavaWebServer includes service
root/classes/, which is where the system classes reside
From the <SERVICE_ROOT/servlets/directory. This is not in the server’s
classpath. A class loader is used to create servlets form this directory. New servlets
can be added-existing servlets can be recompiled and the server will notice these
changes. From a remote location. For this a code base like http://nine.eng/classes/foo
is required in addition to the servlet’s class name. Refer to the admin Gui docs on
servlet section to see how to set this up.
LOADING REMOTE SERVLETS
Remote servlets can be loaded by:
Configuring the admin Tool to setup automatic loading of remote
Selection up server side include tags in .html files
Defining a filter chain Configuration
A servlet invoker is a servlet that invokes the “server” method on a named servlet.
If the servlet is not loaded in the server, then the invoker first loads the servlet (either
form local disk or from the network) and the then invokes the “service” method. Also
like applets, local servlets in the server can be identified by just the class name. In
other words, if a servlet name is not absolute. It is treated as local.
A Client can Invoke Servlets in the Following Ways:
The client can ask for a document that is served by the servlet.
The client(browser) can invoke the servlet directly using a URL, once
it has been mapped using the SERVLET ALIASES Section of the
The servlet can be invoked through server side include tags.
The servlet can be invoked by placing it in the servlets/directory
The servlet can be invoked by using it in a filter chain
THE SERVLET LIFE CYCLE
The Servlet life cycle is one of the most exciting features of Servlets. This life
cycle is a powerful hybrid of the life cycles used in CGI programming and lower-level
NSAPI and ISAPI programming.
The servlet life cycle allows servlet engines to address both the performance
and resource problems of CGI and the security concerts of low level server API
Servlet life cycle is highly flexible Servers have significant leeway in how
they choose to support servlets.
The only hard and fast rule is that a servlet engine must conform to the
following life cycle contact:
Create and initialize the servlets
Handle zero or more service from clients
Destroy the servlet and then garbage collects it.
It’s perfectly legal for a servlet t be loaded, created an initialized in its own
JVM, only to be destroyed an garbage collected without handling any client request or
after handling just one request
The most common and most sensible life cycle implementations for HTTP
servelts are: Single java virtual machine and astatine persistence.
INIT () AND DESTROY ()
Just like Applets servlets can define init() and destroy() methods, A servlets
init(ServiceConfig) method is called by the server immediately after the server
constructs the servlet’s instance. Depanding on the server and its configuration, this
can be at any of these times
When the server states
When the servlet is first requested, just before the service() method is
At the request of the server administrator
In any case, init() is guaranteed to be called before the servlet handles its first
request.The init() method is typically used to perform servlet initialization creating or
loading objects that are used by the servlet in handling of its request. In order to
providing a new servlet any information about itself and its environment, a server has
to call a serveltsinit() method and pass an object that implement the ServletConfig
This ServletConfig object supplies a servlet with information about its
initialization parameters. These parameters are given to the servlets and are not
associated with any single request. They can specify initial values, such as where a
counter should begin counting, or default values, perhaps a template to use when not
specified by the request.
The server calls a servlet’s destroy() method when the servlet is about to be
unloaded. In the destroy() method, a servlet should free any resources it has acquired
that will not be garbage collected. The destroy() method also gives a servlet a chance
to write out its unsaved. Cached information or any persistent information that should
be read during the next call to init().
HTTP is a stateless protocol, it provides no way for a server to recognize that a
sequence of requests is all from the same client. This causes a problem for application
such as shopping cart applications. Even in chat application server can’t know exactly
who’s making a request of several clients.
The solution for this is for client to introduce itself as it makes each request,
Eachclients needs to provide a unique identifier that lets the server identify it, or it
needs to give some information that the server can use to properly handle the request.
There are several ways to send this introductory information with each request
WHAT IS JDBC?
Any relational database, One can write a single program using the JDBC API,
and the JDBC is a Java API for executing SQL,Statements(As a point of interest
JDBC is trademarked name and is not an acronym; nevertheless, Jdbc is often thought
of as standing for Java Database Connectivity. It consists of a set of classes and
interfaces written in the Java Programming language. JDBC provides a standard API
for tool/database developers and makes it possible to write database applications
using a pure Java API.Using JDBC, it is easy to send SQL statements to virtually
program will be able to send SQL .statements to the appropriate database. The
Combination of Java and JDBC lets a programmer writes it once and run it anywhere
WHAT DOES JDBC DO
Establish a connection with a database
Send SQL statements and Process the results
JDBC Driver Types
The JDBC drivers that we are aware of this time fit into one of four
JDBC-ODBCBridge plus ODBC driver
Native-API party-java driver
JDBC-Net pure java driver
Native-protocol pure Java driver
An individual database system is accessed via a specific JDBC driver that
implements the java.sql.Driver interface. Drivers exist for nearly all-popular RDBMS
systems, through few are available for free. Sun bundles a free JDBC-ODBC bridge
driver with the JDK to allow access to a standard ODBC,data sources, such as a
Microsoft Access database, Sun advises against using the bridge driver for anything
other than development and very limited development.
JDBC drivers are available for most database platforms, from a number of
vendors and in a number of different flavors. There are four driver categories
TYPE 01-JDBC-ODBC BRIDGE DRIVER
Type 01 drivers use a bridge technology to connect a java client to an ODBC
database service. Sun’s JDBC-ODBC bridge is the most common type 01 driver.
These drivers implemented using native code.
TYPE 02-NATIVE-API PARTY-JAVA DRIVER
Type 02 drivers wrap a thin layer of java around database-specific native code
libraries for Oracle databases, the native code libraries might be based on the
OCI(Oracle call Interface) libraries, which were originally designed for c/c++
programmers, Because type-02 drivers are implemented using native code. in some
cases they have better performance than their all-java counter parts. They add an
element of risk, however, because a defect in a driver’s native code section can crash
the entire server.
TYPE 03-NET-PROTOCOL ALL-JAVA DRIVER
Type 03 drivers communicate via a generic network protocol to a piece of custom
middleware. The middleware component might use any type of driver to provide the
actual database access. These drivers are all java, which makes them useful for applet
deployment and safe for servlet deployment.
TYPE-04-NATIVE-PROTOCOL ALL-JAVA DRIVER
Type 04 drivers are the most direct of the lot. Written entirely in java, Type 04
drivers understand database-specific networking. protocols and can access the
database directly without any additional software
If possible use a Pure Java JDBC driver instead of the Bridge and an ODBC
driver. This completely eliminates the client configuration required by ODBC.It also
eliminates the potential that the Java VM could be corrupted by an error in the native
code brought in by the Bridge(that is, the Bridge native library, the ODBC driver
manager library, library, the ODBC driver library, and the database client library)
WHAT IS THE JDBC-ODBEBRIDGE ?
The JDBC-ODBCBridge is a Jdbc driver, which implements JDBC operations by
translating them into ODBC operations. To ODBC it appears as a normal application
program. The Bridge is implemented as the sun.jdbc.odbc Java package and contains
a native library used to access ODBC.The Bridge is joint development of Intervolve
and Java Software.
Oracle databases refer to server-side memory structure as the SGA (system Global
Area). SGA typically holds cache information such as data-buffers, SQL commands
and user information. In addition to storage, the database consists of online redo logs,
which hold transactional history.
Oracle is a relational database management system, which organizes data in the
form of tables. Oracle is one of many database servers based on RDBMS model,
which manages a seer of data that attends three specific things-data structures, data
integrity and data manipulation.
With oracle cooperative server technology we can realize the benefits of open,
relational systems for all the applications. Oracle makes efficient use of all systems
resources, on all hardware architecture; to deliver unmatched performance, price
performance and scalability. Any DBMS to be called as RDBMS has to satisfy
FEATURES OF ORACLE
The Oracle RDBMS is available on wide range of platforms ranging from PCs
to super computers and as a multi user loadable module for Novel NetWare, if you
develop application on system you can run the same application on other systems
without any modifications.
Oracle commands can be used for communicating with IBM DB2 mainframe
RDBMS that is different from Oracle, which is Oracle compatible with DB2. Oracle
RDBMS is a high performance fault tolerant DBMS, which is specially designed for
online transaction processing and for handling large database applications.
MULTITHREADED SERVER ARCHITECTURE
Oracle adaptable multithreaded server architecture delivers scalable high
performance for very large number of users on all hardware architecture including
symmetric multiprocessors (sumps) and loosely coupled multiprocessors.
Performance is achieved by eliminating CPU, I/O, memory and operating system
bottlenecks and by optimizing the Oracle DBMS server code to eliminate all internal
Oracle has become the most popular RDBMS in the market because of its ease of use
Ensuring data integrity and data security.
Managing data concurrency.
Parallel processing support for speed up data entry and online transaction
processing used for applications.
DB procedures, functions and packages.
Eclipse is a multi-language software development environment comprising an
integrated development environment (IDE) and extensible plug-in system. Written
mostly in Java, Eclipse can be used to develop application in java.
Tomcat is an open source web server and Servlet container developed by the
Apache Software Foundation (ASF). Tomcat implements the java Servlet and the Java
Server Page (JSP) specification from Sun micro systems, and provides a “pure
JAVA” HTTP web server environment for Java code to run in.
Apache Tomcat includes tools for configuration and management, but can also
be configured by editing XML configuration files.
Prophecy makes it easy for you to interact with customers in way to improve
service, drive sales and lower costs. Built on core principles of simplicity and open
standard, prophecy simplifies development and ease ongoing maintenance.
Voxeo prophecy is a powerful, 100% standards-based platform for speech,
IVR, VRU and SIP VoIP applications. Built natively on Voice-Over-IP (VoIP)
protocols, Prophecy seamlessly integrates into next generation contact center built on
IP communication. Prophecy was the first application platform to support VoiceXML,
CCXML, the first to be natively based on the Session Initiation Protocol (SIP) and
first to support HD audio and IPv6.
5.3 SCREEN SHORT
Screen 5-1: url address of application
In SIP phone we are Dialing url address of our application’s first page from
where our application will get start. Here url address is firstname.lastname@example.org
Screen 5-2: Entering user name and password
In SIP phone we are giving user name and password. Here user name is 13
and password is 12.
Screen 5-3: Entering account number and pin
Here in SIP phone we are entering account number to transfer money. Here
account number is 1236 and pin is 11.
Screen 5-4: Entering account number to transfer money
Here in SIP phone we are entering toaccount number to transfer money. Here
account number is 1234.
Screen 5-5: Entering money to transfer amount
Here in SIP phone we are entering amount to transfer money from one
account to other. Here we are entering amount as 2000/-.
From this we can easily understand the implementation of our project and
which type of implementation we have done like we have use Oracle, Voxeo
Prophecy, Apache Tomcat, Eclipse etc.
TESTING & VALIDATION
Software testing is the process of evaluation a software item to detect
differences between given input and expected output. Also to assess the feature of A
software item. Testing assesses the quality of the product. Software testing is a
process that should be done during the development process. In other words software
testing is a verification and validation process.
BLACK BOX TESTING
The technique of testing without having any knowledge of the interior
workings of the application is Black Box testing. The tester is oblivious to the system
architecture and does not have access to the source code. Typically, when performing
a black box test, a tester will interact with the system's user interface by providing
inputs and examining outputs without knowing how and where the inputs are worked
WHITE BOX TESTING
White box testing is the detailed investigation of internal logic and structure of
the code. White box testing is also called glass testing or open box testing. In order to
perform white box testing on an application, the tester needs to possess knowledge of
the internal working of the code. The tester needs to have a look inside the source
code and find out which unit/chunk of the code is behaving inappropriately.
6.2 DESIGN OF TEST CASES AND SCENARIOS
S.NO INPUT EXPECTED
1. Enter your
give a valid
We get a valid
1. Select bank It should
prompt the list
stored into the
2. Select bank It should
prompt the list
is not available
3. Enter account
give a valid
We get valid
4. Enter account
give a valid
We get Invalid
5. Enter valid pin
give a valid pin
We get a valid
6. Enter valid pin
give valid pin
We get Invalid
prompt types of
type should be
stored into the
detail of user
We get user’s
Verification that something is correct or conforms to a certain standard. In
data collection or data entry, it is the process of ensuring that the data that are entered
fall within the accepted boundaries of the application collecting the data. For example,
if a program is collecting last names to be entered in a database, the program validates
that only letters are entered and not numbers; or in a survey collecting data in the form
of "yes" or "no" questions, the program validates that only those responses are used
and not some other word.
Validation procedures typically are written into the program code and are
therefore invisible to the user.
The nomatch element is a syntactic shorthand for the expression <catch
event=”nomatch”>. This attribute allows the developer to assign handlers when the
caller inputs a value that is not recognized by any of the active grammars.
<nomatch cond="CDATA" count="CDATA">
Data Type: CDATA
Default: Optional (true)
The cond attribute specifies a Boolean expression, which must equate to ‘true’
in order for the content to be visited and executed. Any standard ECMAScript
Boolean value is valid for this attribute.
Data Type: CDATA
The count attribute allows the developer fine grained control over event
handling upon multiple event occurrences. When an event is thrown for the first time,
the catch element with a count of 1 will be executed. Upon the second instance of the
same event, the FIA will look for a catch handler with a count value of 2, if one
exists, otherwise, it will simply execute the catch handler with the count of 1 again.
<Nomatch count-cond> sample
<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1" xmlns="http://www.w3.org/2001/06/vxml">
<meta name="copyright" content="2012 Voxeo Corporation"/>
<meta name="maintainer" content="YOUR_EMAIL@HERE.COM"/>
<nomatch cond="false" count="1">
this handler will never get executed because the condition is set to false.
<nomatch cond="true" count="1">
<prompt> no match count one is successful. </prompt>
The noinput tag acts as a syntactic shorthand for the expression <catch
event=”noinput”>. It allows the developer to assign event handlers when the
application expects voice or DTMF input, but has received none from the caller.
<noinput cond="CDATA" count="CDATA">
Data Type: CDATA
Default: Optional (true)
The cond attribute specifies a Boolean expression, which must equate to ‘true’ in
order for the content to be visited and executed. Any standard ECMAScript Boolean
value is valid for this attribute.
Data Type: CDATA
The count attribute allows the developer fine grained control over event handling
upon multiple event occurrences. When an event is thrown for the first time, the catch
element with a count of 1 will be executed. Upon the second instance of the same
event, the FIA will look for a catch handler with a count value of 2, if one exists,
otherwise, it will simply execute the catch handler with the count of 1 again.
<Noinput count-cond> sample
<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1" xmlns="http://www.w3.org/2001/06/vxml">
<meta name="copyright" content="2005 voxeo corporation"/>
<meta name="maintainer" content="YOUR_EMAIL@HERE.COM"/>
<noinput cond="false" count="1">
This handler will never get executed, because the condition is set to false.
<noinput cond="true" count="1">
<prompt> no input count one is successful. </prompt>
<noinput cond="true" count="2">
<prompt> no input count two is successful. </prompt>
Validation Summary Reports provide an overview of the entire validation
project. We have tested our application and validations also done.
Voice banking provides an easy way of banking services. By using this
application Illiterate people can easily get the services even though they don’t have
knowledge about system they can access this application by dialing the numbers
through SIP phone. And it is a very useful application.
This project is limited to balance enquiry, and transfer money from one
account to another. In future we can extend this project by adding more banks,
Appling for new check book, Date of transferring money and many more features.