SUNGARD SUMMIT 2007 sungardsummit.com 1 Legacy and VoIP Phone Integration Presented by: Chris Peckham Sungard Higher Education at Mercy College March 20, 2007 A Community of Learning
Introduction Mercy College has six different campuses, each with its own campus telephone number. The current telephone system is a mix of legacy PBX systems and Cisco VoIP. There were a number of different auto-attendant prompts running across the various campus locations and callers would experience different prompts or program listings depending on what campus was called. Dial-by-name directories were not consistent across the two telephone systems. It is possible to successfully integrate legacy PBX systems with VoIP technology. Open source systems can be used to offer solutions that benefit telephony users. System integration can be performed for voice systems using LDAP/Active Directory to standardize configuration of dial plans and user directories. 2
Agenda Background Problems Our Solution What was implemented Issues Current and Future Plans Discussion / Questions 3
SUNGARD SUMMIT 2007 sungardsummit.com 4 Background What was running in the environment? A Community of Learning
Background Mercy College www.mercy.edu New York City metropolitan area Liberal arts undergraduate and master s programs 10, 000 students Five campus locations, online learning, and backend office location Established in 1950 by the Sisters of Mercy Became co-ed and nonsectarian in 1969 Outsourced Plus support to SCT (Sungard Higher Education) in 1998 and remaining IT staff in 1999 5
Background - Telecommunications Avaya Definity PBX Four PBX systems supporting Dobbs Ferry, Yonkers, Yorktown, and White Plains campuses Flexpath and analog CO trunks T1 circuits from each campus back to DF Audix voicemail Cisco VoIP Three call manager systems supporting Bronx, Manhattan, Dobbs Ferry, and Yonkers campuses PRI connections Voice gateway between Avaya and VoIP (DF / Yonkers) Analog server for fax (Bronx) Unity voicemail IPCC / CRA server 6
T1 PRI Verizon Bronx (718) COT1 PRI Bronx T1 Call Manager VoIP gw Fax GigE Call Manager Call Manager 3x T1 Manhattan Verizon Manhattan (212) CO T3 T3 Internet 2x T1 T1 VoIP gw T1 Yorktown 2x PRI White Plains T1 T1 T1 Avaya PBX T1 Avaya PBX CO trunk Verizon Yonkers (914) CO T1 Avaya PBX Verizon White Plain (914) CO CO trunk T1 flexpath Verizon Dobbs Ferry (914) CO Asterisk 4x T1 flexpath Dobbs Ferry Mercy College Telecommunications/Network Connections T1 Verizon Yorktown (914) CO Yonkers/i.park Avaya PBX 7
SUNGARD SUMMIT 2007 sungardsummit.com 8 Problems, Problems Things did not work as they should A Community of Learning
Problems, problems Different auto-attendants, based on campus Direct Inward Dial (DID) on some campuses Only extensions through auto-attendant on others Two different sources for dial-by-name information Outdated printed telephone directory Difficulty reporting use of auto-attendant Overlapping dial plans (extensions, voicemail) Capacity of existing voicemail system (ports) 9
SUNGARD SUMMIT 2007 sungardsummit.com 10 Our Solution Find a way to make it all work together! A Community of Learning
http://www.asterisk.org/ Open source telephone system Complete IP PBX with related features, protocols, and interoperability Runs on variety of operating systems GNU General Public License (GPL) Commercial support (Digium and others) Provides ability to easily automate process 11
How good can it be? Open source call center support (Aheeva) Sam Houston State University replacing Cisco Call Managers, Nortel PBXs with Linux-based VoIP and messaging servers (http://www.shsu.edu/, Huntsville, TX) (NetworkWorld.com, 09/18/06) Calling card billing / applications Many business case studies available 12
How was it implemented at Mercy? Started deployment in late 2005 Dell PowerEdge 2650 VoIP connection through Cisco gateway H.323 connection through Call Managers (CCM pre 4.0 version did not have SIP) Routing set up from Avaya and Cisco for various extensions 13
Uniform auto-attendant Developed with input from campus community Provides uniform prompts and experience regardless of called number Dial destination extension at any time Dial by name Admissions, Registrar, Student Services, Campus management, Library, Security, Weather line, Directions Auto-attendant at each campus pointed to unique extension for reporting 14
Uniform dial-by-name Driven through Asterisk voicemail system Listed Information Department name listing is static Recorded department names Dial by name (last name) Information obtained from Active Directory (information flagged ) Option to record their own name Default is name spelled out by system 15
Uniform dial-by-name - Generate name listing use Net::LDAP; use Net::LDAP::Entry; use Net::LDAP::Control::Sort; foreach $letter (A..Z) { $user=$letter.'*'; $mesg = $ldap->search ( base => "DC=mercy,DC=local", scope => 'sub', filter => "(&(&(&( (Flags=1))(objectCategory=person)(objectClass=user)(cn=$user))))", control => [ $sort ] ) or die "$@"; foreach $entry ($mesg->entries) { $telephone = $entry->get_value(telephonenumber); $dept = $entry->get_value(department); $cn = $entry->get_value(cn); $sn = $entry->get_value(sn); Output information in format for asterisk voicemail.conf file Check to make sure that process ran correctly or leave original file in place 16
Uniform dial-by-name - Recording of name [namerecording] exten => 500,1,Wait,1 exten => 500,2,set(TIMEOUT(response)=5) exten => 500,3,Playback(name-instructions) exten => 500,4,Playback(name-sayname) exten => 500,5,Record(mymessage:gsm) exten => 500,6,Wait,1 exten => 500,7,Playback(name-yousaid) exten => 500,8,Playback(mymessage) exten => 500,9,Background(name-save) exten => t,1,playback(invalid) ; "That's not valid, try again" exten => t,2,goto(500,4) exten => i,1,playback(invalid) ; "That's not valid, try again" exten => i,2,goto(500,9) exten => 1,1,System(/bin/mv /var/lib/asterisk/sounds/mymessage.gsm /var/lib/asterisk/sounds/local/${timestamp}.gsm) exten => 1,2,System(echo \'New voicemail greeting file is named ${TIMESTAMP} from ${CALLERID} has been created\' /bin/mail -s New_voicemail_greeting vm-greeting) exten => 1,3,Wait,1 exten => 1,4,Playback(name-thankyou) exten => 1,5,Playback(vm-goodbye) exten => 1,6,Hangup exten => 2,1,Goto(500,4) exten => 3,1,Playback(vm-goodbye) exten => 3,2,Hangup 17
Directory People like to have a printed copy Generated periodically and posted to WWW Information obtained from Active Directory Available from within campus network or connection through college portal Same information used for online search 18
Directory - Script use Spreadsheet::WriteExcel::Big; use PDF::API2; use Net::LDAP; use Net::LDAP::Entry; use Net::LDAP::Control::Sort; Same concept as with generation of voicemail file 19
Directory - WWW Outside the firewall or portal Inside the firewall or portal Online version 20
Call Detail Reporting Call information stored in database Source of call Destination of call Duration of call WWW interface for report generation Asterisk-Stat : CDR Analyser (http://areski.net/asterisk-stat-v2/) 21
Call Detail Reporting - Very flexible - Daily / Comparison / Six Month 22
Voicemail Features Notify user there is voicemail Send copy of voicemail to user via e-mail Envelope (date/time/caller ID) Allow caller to review message before saving Allow caller to reach operator Current Users Adjuncts Desktop support staff 23
Extension management and routing Do not want Avaya call directed toward Cisco or Cisco calls directed toward Avaya Dial plan allows us to direct to correct gateway Generate extension routing periodically Active Directory has extensions, but do not *really* know what system they are on (DF has mixed environment) Cisco extensions obtained from call manager database 24
Extension management and routing - CCM extension dump use DBI; # Obtain necessary information from CCM SELECT * FROM CCM0303.dbo.Device SELECT * FROM CCM0303.dbo.NumPlan SELECT * FROM CCM0303.dbo.DeviceNumPlanMap # Now create extension list # Compare to AD and report when there are issues # Create proper routing from Asterisk for Cisco VoIP extensions 25
SUNGARD SUMMIT 2007 sungardsummit.com 26 Implementation Issues What did not work the way it should have worked A Community of Learning
Implementation issues Gateway capacity Looping (not only Asterisk issue) H.323 module 27
Connectivity between Avaya and VoIP Two PRI interfaces on main campus (each has 23 voice channels and 1 control) Call between PSTN and VoIP uses a port Call between campus PBX and VoIP uses a port Call to auto-attendant uses a port; where DID is not possible, uses TWO ports per call Call to auto-attendant uses a port; where selection is not a VoIP telephone, uses TWO ports per call Call to Student Services areas routed to outside uses TWO ports per call 28
Connectivity between Avaya and VoIP Solution Majority of load are calls related to student services Install T1 interface to PSTN for Asterisk Route all calls related to student services out through this new interface 29
Looping VoIP routing map sends all non-defined extensions to Avaya Avaya has static routing to VoIP extensions Question - What happens when either system calls an extension that is not completely defined correctly? Answer: LOOPS 30
Looping Solution? Ties all channels up no other calls can go through (Avaya -> VoIP -> Avaya -> VoIP ) Auditing reports help manage problem Make sure tear down configuration when removing extensions Automate process, where possible 31
H.323 load Asterisk support for both SIP and H.323 SIP (Session Initiation Protocol, IETF) H.323 (ITU audio-visual communication sessions on any packet network) Before version 4, Cisco Call Manager only had H.323 trunks Over time, configuration caused loss of audio through Call Manager 32
H.323 load Solution Asterisk H.323 module was not robust Upgrade to Call Manager version 4, providing SIP trunks Transcoding through Cisco CM to Avaya caused issues for Call Manager, so routed calls to appropriate gateway 33
SUNGARD SUMMIT 2007 sungardsummit.com 34 Current and Future Plans Now that you can do all of this neat stuff, what s next? A Community of Learning
Current and future plans Class notification system Dial-by-name names from Cisco Unity Avaya comparison ICD for Helpdesk Fax DID routing Redundancy Future deployments 35
Class notification system Campus Management requested ability for professor to notify students and staff if going to be late College running Plus/SIS (converting to Banner) Data available through Datamart Everyone has a telephone 36
Class notification system AGI Asterisk Gateway Interface perl, java, PHP, Python, Ruby, C, C#, shell DBI Easily migrate to Banner or other SQL source. Information currently in Datamart and uploaded to another SQL database Could offer SMS (WWW interface being developed) 37
Class notification system - flowchart Announce process Delay or cancel? Obtain Instructor ID Delay by N m inutes Obtain Instructor PIN Verify options In D B a n d match? Hang up caller Obtain course ID N o tify u sers V a lid? Notify cam pus m anagem ent 38
Dial-by-name name If no greeting available, default is S M I T H Not everyone has recorded a name at this time Cisco Unity name recording easily available RIFF (little-endian) data, WAVE audio, ITU G.711 mu-law, mono 8000 Hz Asterisk GSM 06.10 Lossy Speech Compression Convert files using sox (Sound exchange audio conversion tool - Need GSM library for sox) Write script to perform conversion Make recording name part of new hire process 39
Avaya extensions Data from Avaya of extension assignment Scraper process (telnet is available to obtain basic name and extension information) Compare to Active Directory Compare to Call Manager Generate call routing information for extensions Report and audit looping issues 40
ICD for Helpdesk Existing Cisco IPCC / ICD used by multiple groups in the college ICD maintenance costs very expensive Necessary functionality available in Asterisk Separate reporting details Test bed 41
DID fax routing Some users at college using efax (http://www.efax.com) Provide similar functionality with hylafax (http://www.hylafax.org/) Inbound Install analog ports into Asterisk server DID numbers configured on T1 Route DID numbers to fax server E-mail delivery of fax based on specific DID Outbound Print via Windows Analog board for Asterisk server ordered in early February 2007 42
Redundancy Current only one server Many key functions use this system Need to plan for disaster Redundant server(s) Cold-spares for interfaces Configure routing to other gateways 43
Migrating in the future Older handsets No caller ID No multiple lines Older voicemail system High maintenance costs / end of life for existing systems Staffing - knowledge is key 44
SUNGARD SUMMIT 2007 sungardsummit.com 45 Summary What did we talk about? A Community of Learning
Summary Problems Auto attendant not uniform Could not reach all locations from all numbers No central dial by name Asterisk Uniform auto-attendant / dial by name Online / Printed directory information Reporting for auto-attendant Current and future plans Class notification system More auditing FAX DID email delivery Migrating in the future 46
Discussion / Questions & Answers 47
Thank You! Chris Peckham cpeckham@sungardhe.com Please complete the online class evaluation form SunGard, the SunGard logo, Banner, Campus Pipeline, Luminis, PowerCAMPUS, Matrix, and Plus are trademarks or registered trademarks of SunGard Data Systems Inc. or its subsidiaries in the U.S. and other countries. Third-party names and marks referenced herein are trademarks or registered trademarks of their respective owners. 2007 SunGard. All rights reserved. 48