IP TELEPHONY SOLUTION FOR
Ahmed Faisal Hassan (email@example.com)
IP telephony is the current market Buzzword in telecommunications industry. This is
comparatively a new technology over the traditional voice communication and the fields of
applications are developing fast. As the advent of new technology over the traditional technology
comes with more power to do new things with diverse applications, IP telephony is no far
In this report, I have tried to make some conceptual design of a survey system with the help of IP
telephony. This is a conceptual design, not tested; but the concepts are taken from some
applications which are developed already.
Need for the Solution
IVR based surveys provide organizations with valuable customer insight that is usually difficult
to capture in general market surveys. This is also an easy way to get the data in quick time with
less manual efforts. This kind of survey system can be needed by the organizations whose
primary job is to get frequent feedbacks from people around the country. Here is a list of the
organizations that can use this system in a highly effectively way.
• Government Offices
• National Survey Board/Bureau.
• Election Commission for Pre election (yes/no) voting
• Customer Service Satisfaction Surveys
The design is pretty simple. The core concept is to integrate the current telephony system with
the IP PABX system. The system can be designed in two ways;
1. The system has the ability to record the voice and thus the survey will be recorded and
stored for a later review.
2. A fully automated system, which is dependent on the interactive response of the customer
or the person who is giving the survey response by pressing the keys of the keypad of the
phone. IVR Places the options to the person taking the survey and sends the information
to a web server.
The system is a hybrid of the traditional telephone and IP telephony system. The reason why the
system is a merged system not totally IP based is because to give the users freedom participate
using what they have in the in hands and thus ensure a large number of participation. This is
helpful for the country like Bangladesh where internet is yet to reach to the mass and also,
because of the educational reasons. A large number of people will find almost impossible to
understand a total computer based system just because they do not have an access to the
computer and computer literacy.
The list of requirements for the design is as follows:
1. A VOIP gateway that connects some PSTN lines to receive calls from users.
2. Voice Server ( for example: Asterisk)
3. A web server
4. Local Voice Carrier, VOIP carrier involvement.
A little investment over the standard IT infrastructure of a small office can be the mere
requirement for the system. A web server, a voice server and a VoIP gateway with a few PSTN
connections is the primary requirement for the design. The user end requirement is simpler; just a
standard land or mobile phone.
The following flow chart describes the system function
Figure 1: Flow chart of the function of the survey system
The different components running on different computers may stay in different locations. A
telephone survey is handled as follows:
• The call arrives on the voice server through voice gateway.
• The voice server makes a request to the controlling web server to run a survey, saying it
has a call from a given telephone number
• The web server sends the appropriate survey to the voice server
• The voice processing equipment in the voice server runs the survey
• The user presses appropriate buttons in his phone.
• The information goes as DTMF tone to the voice gateway.
• Voice gateway sends the code to the voice server and voice server sends the converted
code as ASCII to the web server.
• The web server updates the survey result accordingly for record and graph.
• At the end of the call the voice equipment sends the survey results and any verbatim
comments back to the web server.
• At the end, the voice server plays some concluding announcement and terminates the
Flaws of the design
The design is not complete. This can be modified; new features may be added as per specific
requirements. There are a lot of things that has not been considered. This is just a model that may
require revision while implementation.
The general flaws or weaknesses of the design are
1. Security and AAA features needed to be added for secured survey systems.
2. Caller record and identification system has to be implemented if redundant survey is
needed to be prohibited (features like one caller cannot take same survey more than one
3. Both Bengali and English IVR needed to be implemented
The Practical Scenario
In practice, we can implement this with an IP PABX system with Asterisk and use open source
web application (PHP/MySQL) for web server. For this PHP/ MySQL. Asterisk can be design
and implemented with the connection with the web server. A voice gateway is required for the
integration with PSTN and IP service.
Figure 2: The Survey System diagram
The system is not tested but the model has been taken from some already working model. So
implementing these kind of survey system should not be a real big challenge. Yet it can prove
extremely effective if properly implemented.
IVR menu example
The following extensions.conf file may work for the IVR response taken from the caller.
exten => option1,1,Dial(SIP/option1); “This sends the DTMF tone
exten => option2,2,Dial(SIP/option2); “This sends the DTMF tone
exten => option3,3,Dial(SIP/option3); “This sends the DTMF tone
exten => s,1,Answer
exten => s,n, Playback(thanks); "Welcome to the Survey. Press
1 if you want to continue,
Press 0 for ending the call"
exten => s,n,WaitExten
exten => 1,1,Goto(survey,s,1)
exten => 0,1,Playback(thanks2); “Thanks for calling, Hope next
time you will take the survey”
exten => 0,2,Hangup
exten => s,1,Answer
exten => s,n, Playback(Survey); "Thanks for taking the survey.
Press 1 for option 1, press 2
for option2, 3 for option 3.
Press 0 to end."
4,1,Playback(thanks); “Thanks for giving your
valuable time and comments.
Hope you have liked it. Good
exten => 4,2,Hangup;