24
T H E E - M A I L F I L T E R I N G E X P E R T S w w w . r o a r i n g p e n g u i n . c o m Saving a Bundle with Asterisk Saving a Bundle with Asterisk and Open-Source and Open-Source David F. Skoll Roaring Penguin Software 21 February 2007

Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

T H E E - M A I L F I L T E R I N G E X P E R T S

w w w . r o a r i n g p e n g u i n . c o m

Saving a Bundle with Asterisk Saving a Bundle with Asterisk and Open-Sourceand Open-Source

David F. Skoll Roaring Penguin Software

21 February 2007

Page 2: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

IntroductionIntroduction

● Asterisk @Roaring Penguin● Asterisk Integration● Cool Asterisk tricks● The Open-Source Ecosystem

Page 3: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk @Roaring PenguinAsterisk @Roaring Penguin

● Old phone system: Proprietary NEC– More-or-less worked well.– Inflexible.– Want any kind change? Ka-Ching! $$$ for

service call.– Want to move a phone? Get out the

punchdown tool...– Want competitive prices

on phones? You're such acomedian!

Page 4: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk @Roaring PenguinAsterisk @Roaring Penguin

● Irritation built up until we bit the bullet.● New system:

– Asterisk on Debian Etch– Two Digium cards for 6 Bell lines– Uniden SIP phones– One Polycom SIP phone for boardroom– Hired a consultant to do initial setup – we

had no Asterisk experience

Page 5: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk @Roaring PenguinAsterisk @Roaring Penguin

● Want to move a phone? Just move it!● Want any kind of change? Just do it!● Competitive prices on phones? No

problem!● Flexibility? Yee-HAW!!!

Page 6: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Roaring Penguin ITRoaring Penguin IT

● We write software.● We have talented hackers.● Everyone's desktop runs Linux (even

the non-techies.)● Infrastructure

built around Linux.● Not the typical

SMB ITinfrastructure...

use RoaringPenguin::Utils;use strict;use warnings;my $frobnitz, $bloot;my @oh_my;

Page 7: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk IntegrationAsterisk Integration

● SugarCRM: Our CRM system. Free, open-source.

● We wrote Perl glue code to hook Asterisk to Sugar CRM.– Incoming call? Open browser to SugarCRM

entry for account based on Caller*ID– Can dial numbers by clicking in Sugar.

Great for international numbers: 0119725444583467

Page 8: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk IntegrationAsterisk Integration

● RT: Our support/helpdesk/ticket-tracking system. Open-source, free.

● Support call comes in: Open Web page showing customer's ticket history.

● Again done with Perl.

Page 9: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk IntegrationAsterisk Integration

● Ledger-SMB: Our accounting system. Open-source, free. (Detect a pattern yet?)

● Wrote Perl glue code to hook Ledger-SMB into Sugar CRM. More glue code hooks Sugar CRM to RT.

● So....

Page 10: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk IntegrationAsterisk Integration

● Grand Unification!● Call comes in:

– Sugar page opens showingaccount details

– Invoice history right in Sugar page– Open RT tickets right in Sugar page

● You are well-prepared as soon as you pick up the phone!

Page 11: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Cool Asterisk TricksCool Asterisk Tricks

● Real-Time Call Notification.● We need an event-based system.● Did we use DCOM? CORBA?

Buzzword-of-the-week? NO!● Good old IRC: Internet Relay Chat

Page 12: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Real-Time Call NotificationReal-Time Call Notification

● Dialplan calls a script at various places.● Script broadcasts structured data on a

special #asterisk IRC channel.

● Desktop users can run IRC bots that watch for the broadcasts and react.

● Very easy. A few hours of Perl hackery.● That's how our

automatic-open-a-browser-page systemworks

Page 13: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

After-Hours SupportAfter-Hours Support

● Blackberry for after-hours support.● Asterisk diaplan changes after-hours.

Caller can enter a numeric page.● Asterisk calls a script that:

– Looks up page message and Caller*ID in Sugar CRM

– Creates an RT ticket– Sends mail to the Blackberry

● send-page script is 59 lines of Perl

Page 14: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Secure Remote AccessSecure Remote Access

● We have road warriors going all over the world:– USA– Europe– South Africa

● Hotel long-distance rates:Ex$$tortion

● Why not use VoIP with soft-phones?● Er... what about security?

Page 15: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Secure Remote AccessSecure Remote Access

● OpenVPN to the rescue. OpenVPN is an open-source free VPN that uses SSL as its underlying technology.

● We don't need to open SIP ports to the Internet.

● Road warriors VPN inand then it's as if they'rein the office.

Page 16: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Secure Remote AccessSecure Remote Access

● Our dialplan rings both the normal phone and the soft-phone. That way, your extension follows you all over the world!

● Communication with the office uses high-quality SSL encryption for safety.

● All you need isInternet access.

Page 17: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk at my HouseAsterisk at my House

● We have three daughters. One is a teenager.

● Our phone is heavily used...● Using IAX trunk from home Asterisk, we

can make outbound calls via the office. (Dial 112+number.)

● Those “in the know” cancall the office and diala special extension toring free home phone.

Page 18: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk at my HouseAsterisk at my House

● Nice feature: zapateller

● Plays the “this number is no longer in use” tone sequence.

● Fools (some) telemarketers into leaving you alone.

Page 19: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk and the Open-Asterisk and the Open-Source EcosystemSource Ecosystem

● Tcl-based gadgetsfor desktop users.

● (Demo: extension-state.tcl)

Page 20: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

The Kitchen Call MonitorThe Kitchen Call Monitor● What good is an ancient Eurocom

laptop (64MB; Celeron 433?)

● Plenty! Load Debian Etch. Install custom-written Tcl script.

● Can monitor calls in the kitchen.

● See who's on a support call.

● Be alerted to incoming calls - can decide whether to interrupt lunch.

● Data includes customer name from SugarCRM, if known.

● Tim Horton's... eat your heart out!

Page 21: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk and the Open-Asterisk and the Open-Source EcosystemSource Ecosystem

● We consider our IT infrastructure to be a huge competitive advantage:– No license fees (annual software license

budget is $0.00)

– Letters from BSA andCAAST => Shredder

– No service calls if we needchanges made. We do itourselves.

– No hassles hooking up disparate components of our workflow.

– Still more integration to do... just need time :-)

Page 22: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Asterisk and the Open-Asterisk and the Open-Source EcosystemSource Ecosystem

● Asterisk, by itself, is terrific.● Open-source building blocks, by

themselves, are terrific.● Glue languages like Perl, Tcl, etc. are

terrific.● The combination gives you

unparalleled power andflexibility at anunbeatable price.

Page 23: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

Thank you!Thank you!

Page 24: Saving a Bundle with Asterisk and Open-Source › files › asterisk.pdfAsterisk Integration SugarCRM: Our CRM system. Free, open-source. We wrote Perl glue code to hook Asterisk to

© 2007 Roaring Penguin Software

ResourcesResources● Asterisk: http://www.asterisk.org● OpenVPN: http://www.openvpn.net● SugarCRM: http://www.sugarcrm.com● RT: http://bestpractical.com● LedgerSMB: http://ledgersmb.org● Perl: http://www.perl.org● Tcl/Tk: http://www.tcl.tk● Debian: http://www.debian.org● Ubuntu: http://www.ubuntu.com● Roaring Penguin: http://www.roaringpenguin.com