DESIGN AND DEVELOPMENT OF ASTERISK BASED COMPUTER SERVICES ACCESSING FRAMEWORK FOR THE VISUALLY IMPAIRED

We are today living in age where technology continues to bring about one magical transformation after another into our lives. Especially computers and internet that constitute the cardinal components of the present day technology have so penetrated into our live that they today make up an indispensable part of life. In this paper, we present an Asterisk based framework that is designed particularly to the benefit of the visually challenged people. These people find it difficult to use the conventional computer access devices like the keyboard, the mouse or the monitor as these devices require a good hand-eye co-ordination. Our framework is designed to take DTMF input from the user that serve as commands for execution of different operations on the computer and provide output in the form of voice using speech synthesis. Additionally, our framework provides the benefit of customizing it as per user needs as it is based on the open source platform Asterisk.


INTRODUCTION
Living in this era of constantly evolving technology, it is very difficult for us to imagine of lives when the elements of the present day technology, existed, if at all, only in the imaginations of the demiurgic minds.We are today living in an era of information technology with computers constituting an inevitable force of this era.From education to entertainment, computer has a role everywhere to play.Whether its reading the encyclopedia or reading newspapers from across the world, doing some shopping or checking movie times, paying the bills or accessing bank accounts or turning the lights and the AC on, the computer is always there at our service.However, what the general user takes for granted is infact an issue for the physically challenged people.Visually challenged people for example find it troublesome to use conventional computer access devices like the mouse or keyboard.Limitations as these tend to produce a gap between these people and the technological marvels of the day.Hence, there is an increased need to address the computing requirements of those who have physical limitations.This, infact is an important aspect of information technology.
To address this issue, several efforts have already been made and successfully implemented.Users with limited hand mobility who want to use a keyboard have several options.Keyboards with larger keys are available.[1]Hearing-impaired users can instruct programs to display words instead of sounds.On the contrary, blind users can work with voice output i.e, the computer reads the information that appears on the screen.In our approach, we focus on making use of the Asterisk platform to send DTMF input to the computer that would serve as commands for execution of different programs on the computer and relay voice the output in the form of narrated voice to the user.

What is Asterisk?
Asterisk is a computerized telephony integration platform.[1]It is a software that can turn an ordinary computer into a voice communications server.[2].Asterisk is today one of the most popular open source telephony software and provides most features of a traditional PBXs such as voicemail, call conferencing, ACD(Automatic Call Distribution) and IVR(Interactive Voice Response) as well as it can handle call queuing, bridging and conference calling with the use of virtual conference rooms.[3] It can serve both as a tool-kit for telephony applications as well as a full featured call-processing server in itself.[4]Asterisk can interoperate with almost all standards based telephony equipment using relatively inexpensive hardware.[4]Digium and a number of firms sell PCI cards to attach telephones, telephone lines, T1 and E1 lines and other analog and digital phone services to a Asterisk server.[5].By supporting a mix of traditional and VoIP telephony services, Asterisk allows developers to build new telephone systems or gradually migrate existing systems to new technologies.[5].Though originally designed for Linux, Asterisk also runs on a wide variety of operating systems including NetBSD, OpenBSD, FreeBSD, Mac OS X and Solaris.[6]

Asterisk architecture
Asterisk acts as a middleware connecting telephony technologies on the bottom to telephony applications on the top, creating a consistent environment for deploying a mixed telephony environment.[7]Telephony technologies can include VoIP services like SIP, H.323, IAX, and MGCP(both gateways and phones) as well as more traditional TDM technologies like T1, ISDN PRI, analog POTS and PSTN services , Basic Rate ISDN(BRI) and more.[7] Telephony applications include things such as call bridging, conferencing, voicemail, auto-attendant, custom IVR scripting, call parking, intercom and more.[7] Figure 1.Asterisk architecture

Asterisk Applications
The modular architecture of Asterisk makes it highly extensible and flexible thus facilitating its application in a wide variety of uses some of which are briefly stated below:  Asterisk as a PBX : Asterisk can be configured as the core of an IP or hybrid PBX, switching calls, managing routes enabling features and connecting callers with the outside world over IP analog(POTS) and digital(T1/E1) connection.[8]  Asterisk as a Gateway: Asterisk in connection with telephony interface cards can be used to connect legacy PBX systems with VoIP services or conversely to link IP-PBX systems to legacy PBX systems.[9]  Asterisk in the call center: With support for call queues, IVRs, outbound dialing, recording, live monitoring and reporting, Asterisk includes virtually everything needed to create a working call center.[10]  Asterisk as a conference bridge: Asterisk includes a standard application called confBridge which is a high definition capable conference bridge component that makes it easy to build standalone conferencing services or to integrate conferencing into other solutions including IP-PBX systems.[11]  Asterisk as a voicemail server: Asterisk"s standard voicemail components make it trivial to assemble a world class voicemail server.[12]  Asterisk as an IVR: Asterisk acts strongly as an IVR platform because of it"s wide support to various functions such as audio playback, and recording, digit collection, database and webservice access, calendar integration and optional speech recognition and synthesis.[13]

RELATED WORKS
 Lwaji: The Lwaji project was commissioned by the Department of Arts and Culture, South Africa.The project aims to develop a telephone-based speech-driven information system.The project aimed at providing South Africans with an opportunity to access government information and services in any of South Africa"s eleven official languages using either landline telephones or mobile telephones, free of charge.Since not all South Africans have access to the internet or to printed media, telephones therefore serve as an important alternative for accessing government information.[14]The underlying telephony platform used is Asterisk with focus on integration of Test-To-Speech and Automatic Speech Recognition technologies with Asterisk [15]  Zahir Koradia and Aaditeshwar Seth [16] deployed PhonePeti, an answering machine system at a Community Radio station in north India called Gurgaon Ki Aawaz(GKA).PhonePeti is implemented as an application over Asterisk.A GSM gateway is connected to the computer running Asterisk to terminate GSM calls and redirect them to Asterisk for further processing.Thus when a listener calls the mobile number associated with PhonePeti, the call lands on Asterisk via the GSM gateway.At this point, Asterisk begins execution of the telephony application which prompts the user to leave a message after a beep.The application records the message from the caller and pushes it to a web server to make it available to the station staff over the internet.
 Miroslav Voznak, Lukas Kapicak, Jaroslav Zdralek, Pavel Nevlud and Jan Rozhan [17] implemented a SW PBX Asterisk with capabilities for recording and playback of video files.Native Asterisk supports audio and video calls but do not allow recording and playback of video files.In this system, the video files were directly saved into a directory in the server and a list generated and read out to the user by means of speech synthesis.DTMF key input from the user was used to select the desired file.
 Raphael Frank, Benjamin Hourte, Dan Jungels and Thomas Engel [18] developed a communication tool to enhance the co-ordination and response time during emergency situations.The application is supposed to enable group calls among different rescue groups in such situations.Additionally they also presented a video application that provides real time access to surveillance cameras.The group call system was based on a centralized client-server model to allow concentrating all relevant information in one central point to obtain a better view of the crisis situation.The central entity used in the system was a Voice-over-IP server based on Asterisk.The server was equipped with a additional PRI cards1 to connect to PSTN/ISDN and GSM networks so as to interconnect the VoIP communications with traditional circuit switched communications.
 Iasonas Polakis, Georgios Kontaxis and Sotiris Ioannidis [19] implemented a system to protect landlines from DIAL attacks.The core component of the platform is asterisk PBX.They crafted a CAPTCHA called Phone CAPTCHA.When an incoming call is received, Asterisk places the call in the call queue.The caller then receives a Phone CAPTCHA and has a limited amount of time to answer the CAPTCHA test using the phone dialpad.The Phone CAPTCHA test requires the caller to press a sequence of keys based on the instructions presented to him by recorded message.If the caller provides the correct answer, Asterisk forwards the call to the destination as determined by the dialplan.Otherwise the call is dropped.This mechanism provides automated calls from binding to the end device and consuming resources which could prevent legitimate callers from reaching the destination number. Munir B.Sayyad, Nilesh Nikam, S.L Nalbalwar [20] examined the security issues in IP-PBX and suggested mechanisms to resolve them.Security issues that arises in an IP-PBX are dummy/blank/fake CLI(Caller Line Identification) configuration at IP-PBX or dummy IP addresses or IP phones connection to IP-PBX.For blocking of calls with dummy CLI or IP address, they suggested to maintain a mapping table of the IP addresses with assigned subscriber numbers(CLI ) at MSC end.If a call comes from IP-PBX with IP address and CLI that is not matching with the entries in the mapping table of MSC, such calls would be rejected.This is authentication of both IP address and assigned CLI number.Only authenticated calls will be allowed.
 Ndaohialy Manda-Vy Ravonimanantosa, Andry Auguste Randriamitantosa and Malalatiana Hajasoa [21] defined a relationship between the number of calls made in an Asterisk server and use of the processor in this server as the processor is one of the major hardware devices.They calculated the correlation and found that there was a close relation between the number of calls made and percentage of CPU usage.The relationship led to the inference that if the number of calls continues to increase, it could lead to a limit so that this limit represents the physical capacity the Asterisk server.
 Kranti Kumar Appari [22] developed a customized IVR implementation using VoiceXML on VoIP platform.VoiceXML delivers its output in form of audio which will be very much useful to all kinds of people.When the user places a call to the designated VoiceXML extension, the particular code for call flow gets activated.After the session is established successfully, Asterisk Gateway Interface call the initial VoiceXML browser and calls the initial VoiceXMl script hosted on the same server.VoiceGlue starts interpreting the VoiceXML code for audio output and the user input by way of DTMF signals or voice commands.Once the user is finished with his operation on VoiceXML the control is handed over to Asterisk(IPPBX) .
 Miroslav Voznak and Jan Rozhan [23] developed a speech quality monitoring tool in accordance with PESQ (Perceptual Evaluation of Speech Quality ) that automatically runs and calculates the MOS(Mean Opinion Score).As the heart of the system, they configured the Asterisk PBX to make a call regularly every 5 minutes to the SIP/GSM gateway, which is connected to Asterisk PBX with the SIP trunk over the LAN.The call is handled by the gateway and sent to the GSM network over a GSM interface equipped with a SIM card.The call is destined to another GSM interface of the SIP/GSM gateway from where it is routed back to the Asterisk PBX.Thos way they created a loop which starts and ends on the Asterisk PBX.This approach was mainly beneficial because of the huge configuration capabilities of the Asterisk PBX.
 Sadaf Nawaj, Saman Cheema, Sana Akram, K. Shehzad and S. Muzahir Abbas [24] introduced a new procedure for Vertical Handoff(VHO).It is a mechanism in which multiple users having access to different networks can execute the VHO in such a manner that when handoff takes place, it do not interrupt any ongoing call or data session.A server and clients were created.By employing a technique called IP Assignment VHO was carried out successfully.Asterisk was chosen as the server taking into consideration the facts that Asterisk system controls all routing information as well as it supports SIP which is the most important component to establish, maintain and terminate a connection.Also Asterisk supports different soft-phones that were used as clients in the system. Lerato Lerato, Molise Mokhomo, Thato Pebane and Lerato Mohapi [25] introduces a VoiceXML gateway that comprises the integration of OpenVXI and an Asterisk telephony platform; focusing on the addition of the HTK-based speech recognition capability of the system.Finally the paper reports the successful implementation of a recognition interface that conforms to the SRGS specification.SRGS is a standard that defines the syntax representing grammars to be used in speech recognition.

PROPOSED SYSTEM
Our system will maintain a client-server architecture wherein a PC installed with Asterisk will act as a server.A Bluetooth enabled mobile phone will remain connected to the server via Bluetooth.Any phone that makes a call to this particular mobile phone is a client that accesses the services offered by the server.The server will have a preprocessed rule set on what task to accomplish when a certain command is issued by the client.The commands along with their corresponding usage are made available to the client on demand.The client would accordingly issue a command to be executed on the server for the desired action.Prior to execution, the server will check the command for appropriateness.A command appropriately issued would execute the corresponding program on the server while any inappropriate command or any unsuccessful execution of a program would send a negative feedback to the user.The core of the system is the Bluetooth connection between the PC and the mobile phone.Once the Bluetooth address of the mobile phone is specified in the chan_mobile.conffile of Asterisk which is the Bluetooth configuration file for Asterisk, any calls made to this mobile phone are redirected to the Asterisk server.The server can then be made to play around with the call by making appropriate configurations in the Asterisk dialplan which is specified in the file extensions.conf.The dialplan is the heart of any Asterisk system that is built of a multitude of configuration contexts, each configuration context containing the logic to be performed in accordance o a dialed number or a dialed pattern.In our case, we invoke a phpagi script that defines the sequence of actions to be performed once a call is received by the server.
Once a call is received, the phpagi script reads out a menu of available options to the user by means of speech synthesis.This is accomplished using the text2wave program of the Festival framework that takes as input plain text and converts it into audible speech output.The menu provided to the user here is a list of operations to be performed on the server computer along with the corresponding key to be pressed by the user in the dialpad.The user accordingly feeds in the DTMF key input.This enables DTMF based control of a computer system

Installing Asterisk and configuring it for Bluetooth
Asterisk 1.8 is installed on a Ubuntu10.04machine and appropriate configurations made on the chan_mobile.confand extensions.conffile in the /etc/asterisk directory.As already mentioned earlier, the chan_mobile.conffile is the blue-tooth configuration file for Asterisk, therefore in order for the Asterisk server to be able to listen to other Bluetooth devices, we first of all need to find out the Bluetooth adapter MAC address of the server and add it to the chan_mobile.conffile.Once this is done, the next step is to pair the Bluetooth enabled mobile phone to the server.This is done by first scanning the phone using the mobile search command from the asterisk console that provides Bluetooth details of the phone.All that is to be done next is to provide these details in the chan_mobile.conffile under a particular adapter and direct it to a particular context defined in the extensions.conffile.Depending on the context we put it in, if a call comes in to the mobile phone and the phone is within the proximity of the Asterisk server, it should route the call to the server.The context contains the logic o be performed in accordance to a dialled number or pattern.As have already been mentioned earlier, in this particular case, we invoke a phpagi script within the context for the sequence of actions to be performed once a call is received.

Execution of different system commands on the server computer through DTMF
The first step towards the implementation of the framework involved the execution of different system commands on the computer.Our framework being based on Linux, the implementation involved the execution of different Linux system commands.Though there are a multitude of commands to be executed on a Linux system, we have concentrated only on a handful of them; primarily those that would enable a user to navigate through the file-system and perform some of the very often required operations on it"s contents.The list of commands along with the key to be pressed in the dial-pad is read out to the user.The user accordingly chooses the desired command by pressing the appropriate key in the dial-pad After having successfully controlled the in-house resources of the computer, we next concentrated on exercising the capabilities of the server for accessing the resources external to the computer system and relaying the retrieved information to the user through narrated voice in the same way as we have done for the in-house resources.

Voice based retrieval of weather information through DTMF tone
For the retrieval of weather information, we have used the WorldWeatherOnline free API.This API provides the current weather condition and next 5 days of accurate and reliable weather forecast.The API returns weather data in XML, JSON or CSV format and contains weather elements like temperature, precipitation, weather description, weather icon and wind speed.We have initially retrieved the weather forecast of four cities in XML format and have used the XMLDOM parser to parse the XML response and retrieve the important weather elements.The user is provided a menu listing the cities and the user is supposed to select one among these for which he wishes to know the weather condition which the user does by a DTMF key input.As already mentioned, the response is received in XML format which is parsed and is then integrated with our phpagi solution to convey the message to the user via voice over the telephone.

Voice based retrieval of current currency exchange rate through DTMF tone
We have used the "THE EASY API" free API for the current currency exchange rate and conversion from a source currency format to the destination currency format.The user is provided with a list of source and destination currency formats for the user to select the desired one through DTMF.The user is then prompted to enter the amount for conversion which is done again through DTMF.The API sends response in XML format which is parsed using the XMLDOM parser and the output conveyed back to the user via voice using speech synthesis over the telephone.

Voice based retrieval of e-news through DTMF tone
This module is aimed at retrieving an e-newspaper and conveying the contents back to the user via voice over the phone using speech synthesis.We have chosen the "The Hindu" newspaper for the purpose.The response is received in HTML format which is parsed using the SIMPLE HTML DOM parser.The headlines are read out to the user with a query after each one of them regarding whether or not the user wants to go through the news in detail to which if the user response in an affirmative, the detailed news is read out; otherwise it is skipped and moved to the next headline.

Integrating the different services into a DTMF tone based Welcome Module
All the services discussed above are integrated into a single module resulting in a compact computer control framework.When a connection is first set-up between the server and the user, the Welcome Module presents a list of the services to the user.Each item in the list is again divided into a menu and submenu allowing the user to effectively and efficiently control the services on the computer.

Introducing the security services
To prevent misuse of the system by unauthorized users, user authentication using username and password is provided.When the user first connects to the system, the user is prompted to enter the username and password.On successful verification, the user is authorized to access the server.Authentication is particularly important because Asterisk always runs on administrator mode.Therefore anyone who gains access to the server can execute any operation on the computer system.

CONCLUSION AND FUTURE SCOPE
In this paper, we have demonstrated a framework that makes use of Asterisk to control a computer system using DTMF and speech synthesis.The system can further be enhanced to accept voice input from the user.This will also ensure better security of the system.It can still further be augmented to offer services in local languages that would particularly be beneficial to the common people.

Figure 2 .
Figure 2. Block diagram of proposed system

Figure 3 .Figure 4 .
Figure 3. Execution of system commands part-I

Figure 5 .
Figure 5. Retrieval of weather information

Figure 6 .
Figure 6.Retrieval of current currency exchange rate

Figure 8 .
Figure 8. Integration of different services