Asterisk in Three Beer’s Time Or Less

Slides:



Advertisements
Similar presentations
Aspire Vertical Markets Executive Suite Solution.
Advertisements

Aspire Vertical Markets Banking, Finance and Insurance.
Aspire Vertical Markets Retail Store. Retail Store Solution.
Facts about Welcome to this video from Ozeki. In this video I will present what makes Ozeki Phone System XE the Worlds best on-site software PBX for Windows.
VOIP SOLUTION IP PBX VOIP SOLUTION offer a rich and flexible featured IPPBX. VOIP SOLUTION's IP-PBX offers both classical PBX functionality.
Asterisk in Three Beer’s Time Or Less Or: How I Stopped Worrying and Learned to Love The Dialtone © John Todd
DUE Asterisk “The Future of Telecommunications” Vincente D’Ingianni Director of Professional Services Binary.
BAI613 Module 2 - Voice over IP Technology. Module Objectives 1. Describe the benefits of IP Telephony/Packet Telephony/VoIP over traditional telephone.
Overview of DVX 9000.
Voice over IP Solutions by KV IT-Solutions. What Is VoIP ? Voice over Internet Protocol, also called VoIP, IP Telephony, Internet telephony, Broadband.
VOIP SOLUTION Contact Center Solution For more details, visit or
Introduction to Asterisk with
1 Kommunikatsiooniteenuste arendus IRT0080 Loeng 10, “telefonisõlmed” Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
Ozeki Informatics Ltd. | | info.ozekiphone.com | Ozeki Informatics Ltd. | | +36.
Voice over Internet Protocol (VoIP) and Asterisk HOUNGUE Pélagie Contact:
Real-time multimedia and communication in packet networks Asterisk The open source IP PBX.
Copyright © 2002 ACNielsen a VNU company Key Features and Benefits of the 3CX PBX for Windows Server.
Asterisk Jargon Alex Vishnev Chief Technical Office, VoIP ACN.
 CHAPTER 2  Understanding the Pieces of Cisco Unified Communication.
Asterisk & VoIP and it’s role in your enterprise.
Architecture SIP proxy, redirect server SQL database sipd Proxy, Redirect, Registration server. Authentication Programmable (SIP- CGI) OpenSource SQL database:
Architecture Proxy, Redirect, Registration server. Authentication Programmable (SIP- CGI) OpenSource SQL database: MySQL User information:
Asterisk The Open Source PBX. What we will discuss... ● Functionality of a PBX... ● What is Asterisk... ● Setting up your own PBX...  Hardware needed.
VoIP Study and Implementation Asterisk Installation and Configuration Part 2 Version 1.0 – Author : Marc PYBOURDIN / Julien BERTON Last Update : 15/05/2012.
What’s new in agenTel 6.2 December 2009 The Voxtron Factory.
Asterisk & ENUM Extending the Open Source PBX Michael Haberler, IPA Otmar Lendl, nic.at.
IP Telephony Sunday A. Folayan. Disclaimer I am NOT an expert in VoIP technology I am NOT PRETENDING to be one. I am a user who just got interested in.
A gentle introduction to Asterisk Anthony Critelli.
VoIP, Asterisk, and Java Michael P. Plezbert Agilis Systems, Inc St. Louis Java Users Group April 13, 2006.
Applied Communications Technology Voice Over IP (VOIP) nas1, April 2012 How does VOIP work? Why are we interested? What components does it have? What standards.
Real-time multimedia and communication in packet networks Asterisk AGI and Manager Interface.
Real-time multimedia and communication in packet networks iLanga.
Introduction to IP Telephony Sunday A. Folayan. VoIP …. A few years ago, everyone struggled to convert data (IP) into sound, and move it over the Public.
Introduction to Asterisk Mark Turner Siteseers Inc June 2004.
LOGO Yeastar Technology Co., Ltd. Enterprise Communication.
Asterisk PBX. What is Asterisk ? A Full-featured open source (GPL) PBX for  Home users  Small to Medium Business  Enterprise  VoIP Service Providers.
Asterisk “The Future of Telecommunications”
Aria Telecom Solutions Pvt. Ltd.
VoIP ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
100% Exam Passing Guarantee & Money Back Assurance
Welcome to Customer Interaction Center (CIC) Client and Phone Training
IP Telephony (VoIP).
How To Setup Asterisk On the MCF54451
Business and Technical details Mark Spencer
Global Asterisk Voice over IP Implementation
Get the most out of your call center
VoIP with asterisk © Mathias Weyland.
Asterisk PBX with trixbox: for use in Small and Medium Businesses
Kristian Kielhofner Chad Phillips
Digium | Switchvox Product Announcement
SIX MONTHS INDUSTRIAL TRAINING REPORT
ASTERISK “Open Source Communications Platform”
Architecture OpenSource SQL database: MySQL
Asterisk: The Open Source PBX
The IP-PBX.
A Short Asterisk Overview
Introduction to Networking
DUE Asterisk “The Future of Telecommunications” Vincente D’Ingianni Director of Professional Services Binary.
01 A truly unified communications solution. PART ONE PART TWO
                      Digital Audio 1.
CTI Contact Center For CustomerSoft ESP
What is Asterisk? • Asterisk, The Open Source PBX.
IP Telephony with Asterisk
ENGR 475 – Telecommunications
Simple, Flexible and Easy-to-Scale Cloud PBX Solution
Web Manager Features Diagram
Bonrix Software Systems
Network customization
The Asterisk Open Source PBX Future Platform or Niche Application
Presentation transcript:

Asterisk in Three Beer’s Time Or Less Or: How I Stopped Worrying and Learned to Love The Dialtone © John Todd 2003-08-20 jtodd@loligo.com

What is Asterisk? (generally) Asterisk is a PBX replacement system, designed to reproduce the features of standard office phone systems. Asterisk is also a Voice over IP toolkit which allows interaction between these PBX features and IP-based networks (local and remote.) Asterisk is hardware independent, and is designed to run on OSS operating systems. © 2003 John Todd (jtodd@loligo.com)

What is Asterisk? (details) Telephony gateway (TDM channels - PRI,POTS) VoIP Gateway (IP channels) IVR system (Interactive Voice Response) Voicemail system Scriptable telephony-to-anything (Perl, C, etc.) More than will fit on this slide © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) What Asterisk isn’t A billing system A CRM system A web server or XML server (re: Cisco 79xx) A configuration tool for VoIP devices A voice recognition system A USENET or email client © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Goals of Asterisk Provide Open-Source implementations of basic PBX functionality Be vendor neutral (despite last point here) Be as all-encompassing as possible for features Be flexible and provide hooks for advanced features Move proprietary hardware features into open source software Sell TDM hardware cards for Digium © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Who is Digium? Primary supporter of Asterisk development Owner of the CVS server/bug system/mailing list boxes/etc. Approves all patches and features by community Produces TDM cards (“Wildcard” hardware) which works particularly well with Asterisk Owner of the disclaimers for all contributions to Asterisk, holder of copyright © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) WHAT?!? NON-GPL!?? JIHAD!! Asterisk is GPL, but with an important clause Digium can license branches of the source such that those branches are not GPL Digium gets disclaimers from all contributors saying that Digium can do so Generally everyone is happy with this system Hold your flames until after I’m finished. :-) © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Channel types: VoIP SIP - Session Initiation Protocol H.323 MGCP - Media Gateway Control Protocol SCCP - Skinny Client Control Protocol (Cisco) All of these use UDP for setup/transport except for SCCP, which uses a mix of UDP/TCP © 2003 John Todd (jtodd@loligo.com)

Channel Types: VoIP (cont’d) Phones for VoIP (SIP): Grandstream 102 - ~$85 new Cisco ATA 186 - 2 lines of analog - ~$140 new Cisco 7960/7940 - very nice deskphone - ~$300 used Many others - market is starting to flood with new vendors from SE Asia Software for VoIP (SIP) www.xten.com - free SIP client (“Lite”) gnophone.com - Linux SIP client Windows Messenger - don’t ask me, I don’t know how. © 2003 John Todd (jtodd@loligo.com)

Channel types - non-VoIP TDM POTS cards (Digium, Zapata, Voicetronix, etc.) TDM Digital (AdTran VoFR, Digium E1/T1, etc.) All TDM cards require install of Zaptel driver suite CAPI (ISDN card support for Linux ISDN driver) USB dongle for FXS Modem drivers for certain modems (yuck) Speaker/headphones (don’t try this at home, kids) © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) System Requirements No clear rule of thumb on processor size; at least 400mhz PIII recommended Almost any version of Linux supported; RH 7.x or 8 is dev platform (9 has tweak issues) Source + binaries (including sounds) are ~35m Using complex codecs (i.e.: G.729, speex, etc.) will increase processor load dramatically Best to have a >1.5ghz machine for multi-channel use Linux preferred, though *BSD slowly starting to become stable for non-hardware channels © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Gotchas Mpg123 needs to actually be mpg123, and not mpg321 (and located in /usr/bin/) You need to have matching kernel source installed correctly to compile Asterisk/Zaptel VoIP isn’t simple the first time you do it Asterisk documentation is less than adequate - mailing list and Google have better data © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Call Flow (briefly) Calls come in on channels and are then handed to the “extensions.conf” file, which is the dialplan Dialplan contains logical sections of matches called ‘Contexts,’ and each channel sends a call into the dialplan with a context name and a dialed number The dialplan then matches (with modified regexp’s) the number being dialed, and runs applications accordingly Each match on the dialed number has an order of steps called ‘Priorities’, and are indicated with an integral incrementing number (argh! Like a horrible BASIC Frankenstein, without the flexibility! ) © 2003 John Todd (jtodd@loligo.com)

Regular expressions (briefly) All regular expressions start with “_” character in dial examinations. “X” means any number, “N” is any number other than 0 or 1 “.” means any number of characters Brackets represent groups, with standard “-” and “,” meanings ([1-9] or [0,1,2]) Better regexp in the works Example: _1410985012X is the same as _1410985012[0-9] © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Call Flow (cont’d) [from-my-pri] exten => 14109850123,1,Answer exten => 14109850123,2,Wait(2) exten => 14109850123,3,Playback(monkeys) exten => 14109850123,4,Goto(more-monkeys,123,1) [more-monkeys] exten => _12X,1,Playback(sorry-no-more-monkeys) exten => _12X,2,Hangup © 2003 John Todd (jtodd@loligo.com)

Redirection based on ANI You can match against calling number instead of called number. This is a.k.a. “The ex-girlfriend filter” by the inventor of the routines This pattern matches against called number (1410…) and also against calling numer (301…) exten => 14109850123/3013659999,1,Busy © 2003 John Todd (jtodd@loligo.com)

Redirection of Call Flow GotoIf - can parse basic Booleans GotoIfTime - handy way to deal with time-based redirection Some applications will add 101 to the existing priority when certain errors occur (notably, Dial does this on busy, and DBget/DBput do this on errors reading from the internal database) Any other type of errors result in channel hangup © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Variables ${VARNAME} is how variables are used Variables must be declared before Booleans can be performed (gah - no null value comparitor) Variables can be nested during setting Exten => 123,1,SetVar(BAR=blah) Exten => 123,2,SetVar(FOO=3) Exten => 123,3,SetVar(NEWVAR.${FOO} = ${BAR}) This results in ${NEWVAR.3} being set to “blah” © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Special Variables ${EXTEN} - always the most important variable. This is the number that is being currently evaluated. ${CALLERIDNUM} - the ANI (if available) of the call leg that is creating the call Some others, less used: ${EPOCH}, ${ENV(var)}, ${CONTEXT}, ${PRIORITY}, several other descriptors of the call leg we’re processing © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Some Applications Dial - connects an inbound call with some other channel. One specifies the technology (SIP, Zap, H323, etc.) the number to be dialed, the Ring-No-Answer delay, and options (if desired) exten => 1234,1,Dial(SIP/1234,25) exten => 1234,2,Voicemail2(u1234) © 2003 John Todd (jtodd@loligo.com)

Some Applications (cont’d) Playback(filename) Plays a sound file in .gsm format Background(filename) Plays a sound file while listening for DTMF (touch tone) input [test] exten => 123,1,Background(press-a-number) exten => 123,2,Goto(1) exten => _X,1,SayDigits(${EXTEN}) © 2003 John Todd (jtodd@loligo.com)

Some Applications (cont’d) MeetMe(conf#) Adds the caller to a conference room (optionally muted or unmuted) Monitor Records channel (in and out) to .wav or .gsm files PrivacyManager Forces anonymous calls to enter valid ANI © 2003 John Todd (jtodd@loligo.com)

Some Applications (cont’d) DISA Lets callers from one channel get dialtone on another channel SetMusicOnHold You can specify .mp3 files as music on hold selections (random or sequential) MP3Player Fairly useless, but fun. You can specify files or streams of .mp3 to be played to callers. © 2003 John Todd (jtodd@loligo.com)

Some Applications (cont’d) There are over 80 different applications in the system - no time to talk about them all Applications are easily created and added if you’re a decent C coder Channels are generic, so you don’t have to know about any of the ugly VoIP or TDM stuff © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Voicemail Voicemail can be sent as email as well as stored on disk (1 minute = 100kb) Short pages can be sent to email addresses when VM received Customizable timezones and time readouts per user - supports multiple languages .wav, .gsm file storage or email Dial by name directory hinges on VM data © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Practical Uses (home) Ditch your long distance company! SIP long distance (domestic and int) providers starting to crop up at low rates. Use Asterisk to gateway to them. Prevent phone spam! Callers with no CID get ditched. Filter your phone lines. Allow or forward callers who are on “priority” lists based on ANI. © 2003 John Todd (jtodd@loligo.com)

Practical Uses (office) Ditch your LD company (see prior slide) Interconnect office PBXs at zero network cost Get “Unified Messaging” Give ubiquitous access to the PBX for home/travelling employees Disaster recovery scenarios Move phones into your IT department and away from your expensive PBX consulting firm Eliminate adds/moves/changes as physical chores © 2003 John Todd (jtodd@loligo.com)

© 2003 John Todd (jtodd@loligo.com) Advanced Topics Call queues - you can build a call center with Asterisk, with various call weightings and agent logins/hot seating Multi-ring, cascading ring with different technologies (inbound calls forward to your desk line and your cell phone - first answer gets it) Multi-language support with same dialplan Festival integration for voice synthesis © 2003 John Todd (jtodd@loligo.com)

Really Advanced Topics Manager interface: TCP socket based interface for controlling and monitoring the system; meant for automated manager tools (see: gastman) AGI scripts: built-in scriptable hooks to allow passing of data back and forth between Asterisk and external programs. Asterisk.pm - Perl module that works with AGI to handle gruntwork of call handling © 2003 John Todd (jtodd@loligo.com)

Really Advanced Topics(cont’d) Sybase and MySQL modules CDR (call detail record) output can be customized or put into database instead of flat file Use IAX2 trunk mode to get up to 200% more calls in the same bandwidth as other VoIP systems Route your calls to least-cost providers © 2003 John Todd (jtodd@loligo.com)

Crazy Extra Stuff That Didn’t Fit Can run PPP or HDLC over channels - Asterisk can be a RAS server or a router (masochism) Can use speaker/microphone as a “phone line” Can do video calls or conferencing ENUM e.164 DNS-based call routing E.G. 2.1.2.1.2.5.4.3.0.5.1.e164.arpa. TDM over ethernet for front-end processing © 2003 John Todd (jtodd@loligo.com)

Resources and Wrap-Up John Todd - jtodd@loligo.com http://www.asterisk.org/ http://www.digium.com/ http://www.loligo.com/asterisk/ http://www.wwworks-inc.com/asterisk/ http://www.xten.com/ http://www.onlamp.com/pub/a/onlamp/2003/07/03/asterisk.html John Todd - jtodd@loligo.com Asterisk Gun For Hire PLUG Advanced Topics 2003-08-20 © 2003 John Todd (jtodd@loligo.com)