Conferencing, Paging, Voice Mailing via Asterisk EPBX

5 downloads 115443 Views 514KB Size Report
Mar 2, 2009 - Exchange i.e. Conferencing, Paging and Voice mailing. Besides this we will .... The Call conference is an Asterisk solution based. PBX system.
2009 International Conference on Computer Engineering and Technology

Conferencing, Paging, Voice Mailing via Asterisk EPBX 1

Ale Imran1, Mohammed A Qadeer2 Dept of Electronics Engg, Aligarh Muslim University, Aligarh, India Dept of Computer Engg, Aligarh Muslim University, Aligarh, India {aleimran, maqadeer}@zhcet.ac.in

2

such as paging, (which may be from one-to-one or manyto-one, depending on the usage requirements) Interactive voice responses (IVR), Conferencing, Voicemail, Music on hold to name a few.

Abstract—This paper is intended to present theoretical and implementation details of various important features that are generally associated with an Asterisk based Voice Exchange i.e. Conferencing, Paging and Voice mailing. Besides this we will be concentrating on the web based approach for the configuration of the hard phones that will be used at the clients end. Our approach follows the clientserver model for all subsidiary procedures. The application is developed in C language and is compatible with all the versions of Linux, essentially providing PC to PC data and voice communications. Keywords-Asterisk, VoIP, PBX, Voicemail, Conferencing, Paging, ST-302 hardphone.

I.

INTRODUCTION

Over the last few years Voice over Internet Protocol (VoIP) has became an important player in supporting telephony. The contribution in achieving this goal clearly goes to the various advantages that the technology offers. Besides being almost free, it provides various other features which one could say are almost patented with it.. To talk of a few would certainly include a reduction in the bandwidth requirements and availability of a large number of features like for example selective call forwarding and rejection [4].

Fig 1: Overview of Asterisk based system [4]

On top of that we can get interfaces to the operating system and programming languages for the extreme in power, optional web based administration interfaces, configuration in SQL databases or flat files, detailed call logging into a database and many more features. Hence to summarize it up, we can say that with Asterisk you can: •

The development of Asterisk Based Voice Exchange which works on VoIP takes into consideration the various complexities associated with a conventional Private Branch Exchange (PBX). A conventional circuit switching based PBX is not only expensive but limited in terms of functionality as well. Asterisk is a complete phone system in software. It can replace large and expensive phone systems powering thousands of extensions, or it can help users save money on long international call usages. Because being implemented in software, it’s extremely versatile, easy to customize as and easy to extend.

• • • • • •

Asterisk is different for several reasons, the most important being its all software approach. Instead of switching analog lines in hardware, it routes and manipulates Voice over Internet Protocols (VoIP) Packets in software [4]. The backbone of the system generally becomes an IP enabled network, and phones can be hooked into that. However it also supports old analog phones using gateway devices.

II. COMPLETE ASTERISK SYSTEM A. Set Up of the Work Asterisk is an open source converged telecommunications platform designed to allow different type of telephony hardware, middleware and software to interact with each other consistently. It provides multiple layers, managing both TDM and packet voice at lower layers while offering a highly flexible platform for PBX and telephonic applications. Asterisk can bridge and translate different type of VoIP protocols such as SIP,

Asterisk provides more than what one would expect from a conventional PBX. We get a variety of features

978-0-7695-3521-0/09 $25.00 © 2009 IEEE DOI 10.1109/ICCET.2009.209

Provide basic service to Analog and Digital phones. Develop a call routing logic in order to choose a least expensive way to route a particular call. Route Incoming and Outgoing voice calls over standard voice lines or the internet. Provide voicemail and teleconferencing services Develop complex or simple interactive menus Operate small or large queues for call centers and announcing the estimated hold time to the callers Call other programs on the system .

186

Authorized licensed use limited to: ZAKIR HUSSAIN COLLEGE OF ENG AND TECH. Downloaded on March 2, 2009 at 06:26 from IEEE Xplore. Restrictions apply.

MGCP, IAX and H.323[2]. In order to set up a Asterisk based Private branch exchange (PBX), we require the following 3 major components [3]; • • •

Asterisk based PBX Phones at the clients end which may be soft or hard depending upon the requirements. VoIP gateway service in order to enable a particular user to call others who might be on PSTN or on the same IP network.

We begin implementing our voice exchange by compiling the Asterisk system. The following commands help us in compiling the Asterisk. cd/root/ale/asterisk make make install make samples make progdocs

Fig 3: Picture showing ST-302, the IP enabled hardphone.

B. Asterisk PBX configuration Now we need to create one user in the iax.conf file. This is because the phone is using IAX protocol for being connected with the Asterisk server. So now we create a new user say by the name of user1. This one is now going to be used with the ST-302 IP phone.

Fig 2: Snapshot after the complete installation [4]

Once it has been successfully installed we can start Asterisk on the server by running the following commands: /root/ale/asterisk-vvvc. Now since here we are interested in having hard phones at the client’s end ,we have the choice of selecting a particular hard phone among the various available ones and configuring it . ST-302 is an IP enabled hard phone which uses an Inter Asterisk Exchange (IAX) protocol. It has got two RJ-45 ports, one for connection with a PC and another for connection with the existing IP enabled network. We put the Ethernet cable from our network in the port labeled RJ-45 and use the another Ethernet cable to connect our computer with the phone. Then we put this cable in the RJ-45 jack labeled PC.

Fig 4: IAX.conf file

type=friend means that the user can make & receive calls, host=dynamic means that the IP is dynamic through a DHCP server, allow=all means that the line which this user will be using, could support all audio codec’s, context=test shows that the user is working with the extensions in this context of the configuration file extensions.conf.

187

Authorized licensed use limited to: ZAKIR HUSSAIN COLLEGE OF ENG AND TECH. Downloaded on March 2, 2009 at 06:26 from IEEE Xplore. Restrictions apply.

Now lets have a look on the extensions.conf file that we ‘ll be using for setting up the various extensions.

Here configuring the ST-302 with the help of web interface allows to perform the following operations : 1) Audio Settings: gives a user free hand as far as selection of various codec’s for the hardphone is concerned. It may generally depend on the design aspect and for our implementation we have set this to G.711. Besides this, it allows for various other added features as well like for example voice activity detection(vad), automatic gain control(agc) ,automatic echo cancellation (aec), jittre size and various others.

Fig 5: Extensions.conf file

[test] Exten=>100,1,answer() Exten=>100,2,dial(IAX/user1) Exten=>100,3,hangup()

2) IAX Settings: The following parameters summarize to give up the complete IAX settings: a) Use service: Enabling this particular feature allows calls to made through the gatekeeper, if however this feature is disabled only IP to IP calls could be made. b) Local port: this is the port on which phone will negotiate registration information with the server. Generally by default it’s 4569.

Exten=>200,1,answer() Exten=>200,2,dial(IAX/user2) Exten=>200,3,hangup() In the extensions.conf file, working in the [text] section we have got 2 phone numbers 100 and 200, and for each of them we have created 3 extensions . When somebody dials a number 100,the call will be answered by the Answer application.The next application which will be executed is the Dial application.User1 is the user which we are going to use for the ST-302 IP phone. The last extension is using the Hangup application. Its purpose is to hang up the line after the conversation is over. Infact its always a good idea to use this application in the dial plans. So when somebody dials the number 100, the ST-302 phone will start ringing and call will be connected to this phone.

3) Network Setings: includes the features generally associated with the networks. It includes local ip, subnet mask, dns, iptype, ppp id and ppp pin. 4) Dial Plan Settings: In this file actions are connected to extensions. Each extension belongs to a context, either the default context or a specific context that we have created like incoming IAX calls, long distance outgoing PSTN calls, local calls etc [4]. IV.

III. CONFIGURATION ON THE ST-302 IP PHONE

FEATURES OF ASTERISK

Asterisk based telephony solutions offer a rich and flexible feature set. Asterisk offers both classical PBX functionality and advanced features, and interoperates with traditional standard based telephony systems and Voice over IP systems. Asterisk offers the advanced features that are often associated with large, high end proprietary PBX’s. Here in this paper we will be concentrating in details on the paging, voicemails and conferencing applications of the Asterisk enabled Voice exchange [3].

The configurations of the ST-302 IP phone could be done with the help of Web Interface and for this we need to know the IP address of the phone . A. Making connections through the Web Interface The web interface has two access modes ie ordinary and super. The first does not give the access to the settings considering the IAX ,however the super mode gives you the access to all the settings ,including the one for the IAX protocol. The one implemented for the configuration of ST-302 is super access mode since it allows IAX settings.

Fig 6: Web Interface for the configuration of hard phone.

Fig 7: Management & Configuration Modules of Asterisk

188

Authorized licensed use limited to: ZAKIR HUSSAIN COLLEGE OF ENG AND TECH. Downloaded on March 2, 2009 at 06:26 from IEEE Xplore. Restrictions apply.

means that no mandatory downsampling is required. These two factors in fact provide a rather significant boost to the VoIP base conferencing.

A. Call Conferencing The Call conference is an Asterisk solution based PBX system. The call conference provides conference room system for use by all users. The call conference provided by Asterisk based PBX has the following features: Security passwords to control access to who can call into a conference bridge, unlimited simultaneous conferences, with unlimited participants. Joining a particular conference is as simple as dialing the extension. Incoming or outgoing calls may be transferred to a conference, or it may be directly dialed [4].

B. Voicemail This feature enables users to record messages for incoming calls that are not answered within a specified number of rings, or receive busy treatment, or are transferred directly to the voicemail. Asterisk comes with a voicemail storage with storage capacity of more than thousand hours and it can be retrieved from any remote phone or it could be attached with the email as .WAV file or to the voice messaging system repository for retrieval from a phone [4]. By accessing voice portal from any phone user can listen, save, delete or reply to a message received from a one or more than one group members with introductory messages. Moreover users have the option of marking a particular message as urgent or confidential.

While installing Asterisk on the server, we need to execute the following commands for enabling the conferencing feature via the server: Cd/usr/src/asterisk Cd/app_conference Make clean Make Make install

The first thing we need to do is to create the mail box for asterisk to use, with the help of the following utility Usr/src/asterisk/addmailbox.

Once the conferencing feature has been installed, compilation of the conferencing application, we need to make the following changes in the configuration files :

Moreover we also need to edit the configuration files of voicemail ie vi voicemail.conf

[Conferences] Exten=>s,1,wait(1) Exten=>s,2,digit timeout,5 Exten=>s,3,response timeout,8 Exten=>s,4,background Exten=>s,5,waitexten(20) Exten=>s,6,goto(s,4) Exten=>XXXX,1,DBget(pass=conferences/${exten}); Exten=>XXXX,2,gotoIf($[“xxx${pass}”=” xxxNONE” Exten=>XXXX,3,read(secret,pls-enter-conf-password,10) Exten=>XXXX,30,conference(${EXTEN}/MTV) Exten=>XXXX,31,hangup Exten=>XXXX,40,playback Exten=>XXXX,41,hangup

Now we need to locate the IAX section where we have added the entries for the extensions, the lines should like this: Exten=>1, 1, dial (IAX/100,20, tr) Exten=>2, 1 dial (IAX/200,20, tr) Exten=1000,1,dial(IAX,100&IAX,200,20,tr) Exten =>1000,2,voicemail,u9999 Exten=>1000,102,voicemail,b9999 Now what we have done over here is that when extension 1000 rings ,the first thing we do is dial phone number 1and phone number2 ie 100 and 200 make them ring for 20 seconds. If the extension is not answered in 20 seconds, the second entry will be executed which is a voicemail. The mailbox is specified by u9999 at the end of the line. Moreover there are two more things noticeable over here, the first is that the priority number has jumped to 102.This is in fact quite a useful feature of Asterisk which signifies that when the call comes and if a person is on, the priority will be jumped to+101(n+101).This gives a priority of 102.The second thing to notice is that the mailbox number at the end of the line is preceded by b9999,this indicates a busy message should be displayed to the user and the user should be allowed to leave a message.

[confhelper] Exten=>in,1,answer() Exten=>in,2,background() Exten=>in,3,response timeout() Exten=>in,4,hangup() Exten=>out,1answer() Exten=>out,2,background Exten=>out,3,response timeout() Exten=>out,4,hangup() [context] Exten=>999999,1,goto(conf-conferencename,join,1] The conferencing feature provided by the Asterisk offers the advantage of doing conferencing without any zaptel hardware as well doing native codec streaming, which

189

Authorized licensed use limited to: ZAKIR HUSSAIN COLLEGE OF ENG AND TECH. Downloaded on March 2, 2009 at 06:26 from IEEE Xplore. Restrictions apply.

The above written configurations will allow user intercom with any extension by dialing *5XX.

However until here, a person can leave a voice message, but in order to access it, we need to add the following lines: Exten=>1001,1,ringing Exten=>1001,2,wait(2) Exten=>1001,3,voicemailMain,s9999 Now when an extension 1001 is dialed, the following happens • The phone gets a ringing tone • There is a two second wait(the phone is still getting the ringing tone) • The call is answered and goes straight to the voicemail menu for mailbox 9999.

3) One-to-Many Intercom: [Two_way_intercom_GROUP] Exten=>**2,1,IAXheader (Call-Info:answerafter=0 ) Exten=>**2,2,Page(${Two_way_intercom_list}/d) Exten=>2,3,hangup The above written configuration will allow user to do two way intercom to all the extensions defined in the variable”Two_way_intercom_list as follows Two_way_intercom_list=>IAX/100 & IAX/200 V.

C. Paging

SUMMARY

We expect that the design and implementation aspects presented in this paper, will be a valuable developing guide for similar kinds of applications. Future work could proceed along the following lines:

This feature supports system wide paging and single phone intercom or unlimited parking of calls simultaneously. Call parking enables a user to hold a call and to retrieve it from another station within the group.In order to park a call, a user presses the flash hook and dials the call park feature code.The call is parked and the caller is held.[4]In order to retrieve the call,the user can go to any phone in the group and has to dial the call retrieve feature code,followed by the user’s extension id. Hence as a result the call is retrieved and connected to the retrieving user.

• •

Using an Asterisk based server for connecting two remote locations. Implementing IVR, Multiple Auto Attendants, Music-on-hold and various other features of the Asterisk based PBX.

This project has provided us with an invaluable experience related to VoIP and collaborative efforts. In fact, Asterisk has proven to be a viable PBX for future research studies.

1) One-to-Many Paging: [One_way_page_group] Exten=>1,1,IAX Addheader(Call-Info:answerafter=0) Exten=>1,2,Page($,{One_way_paging_list}) Exten=>1,3,Hangup. The above written configuration will allow users to one way page (broadcast) to all the extensions defined in the variable”One_way_paging_list”, which infact could be defined as One _way_paging_list=>IAX/100 & IAX/200.

REFRENCES [1] Taemoor Abbasi, Shekhar Prasad , Nabil Seddigh, Ioannis Lambadaris “A comparative study of the SIP & IAX voice protocols” in CCECE/CCGEI, Saskatoon, May 2005 [2] Md. Zaidul Alam, Saugata Bose, Md. Mhafuzur Rahman, Mohammad Abdullah Al-Mumin”Small office PBX using Voice over IP” in ICACT I2-14 FEB,2007

2) One-to-One Intercom: We first need to define a macro and then use it in the one to one intercom context. [macro-pageext] Exten=>s,1,chanisaval(${ARG1}/JS) WHERE J:is for dump& Sis for ANY call Exten=>s,2IAX Addheader( Call-Info:answerafter=0) Exten=>s,3,Dial(${ARG1}) Exten=>s,4,No Op() Exten=>s,5,hangup Exten=>s,102,hangup [INTERCOM GROUP] Exten=>*5XX,1,macro(pageext,IAX,/${EXTEN:1}) Exten=>*5XX,2,hangup

[3] Jim Van Meggelen, Leif Madsen , Jared Smith”Asterisk the Future of Telephony” Second Edition, August 2007 [4] Mohammed A Qadeer & Ale Imran, “Asterisk Voice Exchange-An alternative to conventional EPBX” in Proc. IEEE ICCEE 2008, Dec 2022, 2008

190

Authorized licensed use limited to: ZAKIR HUSSAIN COLLEGE OF ENG AND TECH. Downloaded on March 2, 2009 at 06:26 from IEEE Xplore. Restrictions apply.