Introduction to Asterisk



Similar documents
Introduction to Asterisk

Overview of Asterisk (*) Jeff Gunther

Asterisk: A Non-Technical Overview

Providing VoIP Services with Asterisk (The Open Source PBX)

Mediatrix 3000 with Asterisk June 22, 2011

Crash Course in Asterisk

Asterisk. Michael Kershaw

Micronet VoIP Solution with Asterisk

VoIP-PSTN Interoperability by Asterisk and SS7 Signalling

Ryan Brown October 9, 2004 The Burgh Live, LLC. Voice over IP using Asterisk (*)

Asterisk & ENUM. Extending the Open Source PBX. Michael Haberler, IPA Otmar Lendl, nic.at

Leveraging Asterisk to Deliver Large Scale VoIP Services in a Carrier Environment. JR Richardson

Lab Introduction software Voice over IP

Asterisk: The Open Source PBX Solution Adam Olson Systems and network administrators typically deal with

So, you need to deploy a Private Branch exchange

Open Source Telephony Projects as an Application Development Platform. Frederic Dickey Director Product Management

and Voice Applications Eyal Wirsansky, Verso Technologies JaxJUG

Applications between Asotel VoIP and Asterisk

IP Telephony with Asterisk. Sunday A. Folayan

VoIP and FreeBSD. The daemon meets the phone. May 15th, 2008 University of Ottawa,, Ottawa, Canada Massimiliano Stucchi

LocaPhone VoIP PBX System

Introduction to VOIP. Stephen Okay Abdus Salam Int l Center for Theoretical Physics Trieste, Italy, February 21, 2007

Chapter 1 - Introduction

Open source VoIP Networks

Curso de Telefonía IP para el MTC. Sesión 1 Introducción. Mg. Antonio Ocampo Zúñiga

B rismark. Open Source IP PBX The Future of Telephony. T: W:

IP PBX SH-500N

ilanga: A Next Generation VoIP-based, TDMenabled

Basic configuration of the GXW410x with Asterisk

VoIP and POTS Integration with Asterisk

You da M.A.N. Voice, over IP, over stuff

IP-PBX Quick Start Guide

VOIP with Asterisk & Perl

Configuring the Cisco SPA8800 IP Telephony Gateway in an Asterisk Environment

IP- PBX. Functionality Options

FOR COMPANIES THAT WANT TO EXPAND AND IMPROVE THEIR TELEPHONE SYSTEM

Configuration Notes 290

Peer-to-Peer SIP Mode with FXS and FXO Gateways

VoIP for Business. A discussion of issues relating to deploying Asterisk based VoIP systems in a business setting

Asterisk Fast Start. The Asterisk Fast Start course is a three-day course. The class will consist of a combination of lectures and lab exercises.

Leveraging Asterisk to Deliver Large Scale VoIP Services within a Carrier Environment

Internet Telephony Terminology

Asterisk Voice Exchange: An Alternative to Conventional EPBX

VoIP and IP IT Tralee

Specialty Answering Service. All rights reserved.

F REQUENTLY A SKED Q UESTION

Setup Guide: on the MyNetFone Service. Revision History

Voice Rate Plans. A Call Path + Inbound Phone Number combination is commonly referred to as a Phone Line.

LessWires Advanced IP Soft-PBX System

AT&T SIP Trunk Compatibility Testing for Asterisk

Xorcom IP-PBX Software Features

Merging Old and New Telephony with Asterisk

The IP-Private Branch Exchange (PBX)

Introduction to the Asterisk Open Source PBX

NEWT Managed PBX A Secure VoIP Architecture Providing Carrier Grade Service

VOIP, Linux, and Asterisk Making Beautiful Voice Together

intelligence at the edge of the network EdgeBOX V 4.5 VoIP How To

Connecting Your Enterprise With Asterisk: IAX to Carriers. Dayton Turner Voxter Communications

3CX IP PBX Phone System Technical Training Deerfield.com

NOC Workshop VoIP in the NOC labs SANOG10

VoIP and IP Telephony

Figure The scenario

VoIP Workshop PacNOG3

Gateways and Their Roles

ACD: Average Call Duration is the average duration of the calls routed bya a VoIP provider. It is a quality parameter given by the VoIP providers.

Building an Asterisk Based Call Center. presented by Matt Florell

X X X X X. Platinum Edition. Unlimited Extensions. Unlimited Auto Attendants. Unlimited Voic Boxes. ACD Features

Integrate VoIP with your existing network

Using Asterisk with Odin s OTX Boards

IP PBX. SD Card Slot. FXO Ports. PBX WAN port. FXO Ports LED, RED means online

Voice over IP Basics for IT Technicians

vs. A Cost Comparison Guide

Quick Start Guide v1.0

ASTERISK & PHP. Hans-Christian Otto International PHP Conference 2010 SE Berlin, June 1, 2010

SIP Trunking Quick Reference Document

Wildix Management System (WMS) White Paper

VoIP Survivor s s Guide

V o I P. VoIP What it can do for you. John Ferlito johnf@inodes.org

Avaya IP Office 8.1 Configuration Guide

Design of PSTN-VoIP Gateway with inbuilt PBX & SIP extensions for wireless medium

Linux Telephony Overview Featuring Asterisk Open Source PBX

By Numan Khan

This document specifies the software requirements of CrossTalk+ A VoIP softphone. It describes the specifications of all components of CrossTalk.

Digium and Switchvox It s More than a Phone System It s a Better Way to Communicate

Manual. ABTO Software

Kyle Haefner Communications Programmer Telecommunications Colorado State University. Open Source Telecommunications. Applications to Education

Unicorn60x0 IP ANALOG GATEWAY ASTERISK CONFIGURATION

Asterisk Overview. Berkeley In Munich Tech Talks prepared by. Emil Stoyanov

The 3CXIPPBX Tutorial

Exchanging Phonecalls Asterisk offers a low-budget

Application Notes for Avaya IP Office 7.0 Integration with Skype Connect R2.0 Issue 1.0

Fig. Setting up of a VoIP call. Fig. Experimental setup

Mini IP-PBX PBX PBX120

VoIP 4D Primer. Building Voice Infrastructure in Developing Regions. Authors: Alberto Escudero Pascual Louise Berthilson

Xorcom CompletePBX Overview

Contents. Specialty Answering Service. All rights reserved.

Voice over IP (VoIP) Basics for IT Technicians

VoIP Solutions Guide Everything You Need to Know

Asterisk By Example...doing useful VoIP things. Jonny Martin

Analog Telephone Adapter Network settings via Keypad commands:

Transcription:

Introduction to Asterisk Or: How to spend 2 months on the phone John Todd (jtodd@loligo.com) CTO, VOIP Inc. http://www.voipincorporated.com/ 2015-09-20 AsterCON, Atlanta GA USA

Agenda What is Asterisk? What is Asterisk NOT? What do you want to do? (goals, budget, user requirements) PBX Replacement Super-Brief Examples

What is Asterisk? a conversion gateway for... physical media (C-T1, PRI, FXO, FSX, IP) protocol (TDM,SIP,H.323,IAX,MGCP,SCCP) codec (G.729,G.711,GSM,ILBC,G.726, etc.) an IVR/user interface application server a lot more (conferencing, recording, etc.)

What is Asterisk? (cont d) open-source (GPL + exceptions) blessed (cursed?) with an extremely active user community easily extended with Perl/C/Python/etc. or apps written (typically C) flexible enough to do almost any telecommunications task (blessing/curse again)

What is Asterisk not? not a SIP proxy (subtle, yet important) not a billing system not an OSS (Operational Support System) not a natively database-driven system not an email tool or USENET browser (yet) not easily configured without command-line interaction

Asterisk When: 1999 This guy, right here! This guy, right here! Who : Mark Spencer Why : I needed a phone system and with as small a startup budget as I had for Linux Support Services, I wasn't about to buy one, so building one seemed a logical way to go.

What Is? Asterisk Officially, Asterisk is an Open Source hybrid TDM and packet voice PBX and IVR platform with ACD functionality. Unofficially, Asterisk is quite possibly the most powerful, flexible, and extensible piece of integrated telecommunications software available. Its name comes from the asterisk symbol, *, which represents a wildcard, matching any filename. Similarly, Asterisk the PBX is designed to interface any piece of telephony hardware or software with any telephony application, seamlessly and consistently.

Facts An Open Source Telephony Swiss Army Knife A Linux Based PBX w/ Minimal Hardware Reqs A Community Driven Development Project A Really, Really Disruptive Technology Asterisk is any call, any time, from anywhere to anywhere else

Licensing Model Released and developed under GPL, but Digium retains rights to code-base All developers submit disclaimers to their code before patches are accepted, allowing for Digium to license specific branches for Commercial projects This dual-licensing allows companies to purchase license rights to snapshots of the Asterisk codebase to be used in commercial, non-gpl products

Who is Digium From Wikipedia, the free encyclopedia. Digium is the primary developer and sponsor of Asterisk, The Open Source PBX. Digium offers a variety of specially designed low and high density telephony hardware and professional services related to Asterisk. The company is based in Huntsville, Alabama. Digium sells telephony hardware and provides contract services for operating IP based telephony solutions.

The Asterisk Development Model

Which is remarkably similar to

The Linux Development Model

PBX Replacement! Primary stated goal is to be a *NIX based PBX replacement Multiple desksets, multiple inbound line support (hundreds or thousands) Features are comparable to or better than most PBX systems (even VoIP-enabled ones); some assembly required

What do you need to run Asterisk? Ugly answer: That depends. Easy answer: Dedicated P4 2.0ghz with good IRQ support and 1 X100P card (from Digium at around $110) Linux (RH 9.0, Debian are good choices; *BSD support is there, but shaky) Low-jitter, low-loss bandwidth to SIP endpoints (desktops and/or upstreams)

How big? MORE ugly answers: That depends. If the server is just a SIP redirector, then you can scale quite large (tens of thousands?) Figure 8:1 to 10:1 ratio for offhook users Word of the day: Erlangs Rule of thumb for g.729 transcoding: 2x Xeon 3ghz = 100 users

Typical VoIP Installation Cost Points Server for Asterisk (plus backup, if you re sane) - $??? T1 PRI card for Asterisk (~$500) SIP devices for desktop users (ranges widely - figure $120 per user to be safe, for analog lines) Termination agreement with carrier(s) - ranges widely - figure $.025 for US traffic, worst-case (prices drop radically with volume)

CPE Analog adapters (VOIP Inc., Sipura, Cisco, Grandstream, etc.) Typically between $80 and $120 (2 port) Digital Handsets (Cisco, Polycom, Snom, Pingtel, Grandstream) Typically around $300 (YGWYPF)

Why are you changing, anyway? Implement based on price, expand based on features. Long Distance will soon become a commodity (i.e.: invisible) but features of the system will always be visible to users Integration of telephony into other business systems is gradual and subtle; start with something that is open so you can expand as you need.

What new stuff are you providing? FEATURES! Don t get hung up on building just a replacement service. Implement phone++ services which are easily implemented with Asterisk (given time, patience, and Perl) Sample of services: phone spam blocking, inbound call redirection based on CLID, time-of-day routing, IM integration of VM notices, VM-to-email, busy line redirection, multi-number custom ringers

What do they see? Remember: the visibility of the customer is very limited. They see: Deskset (equipment) and features Call Quality/Call completion Price (if they re the CFO)

The Asterisk Development Model Similar to Linux Mark Spencer == Linus Torvalds Core developers with CVS commit rights 1.0 EOL (Serious Bug Fixes Only) 1.2 Trunk managed by Drumkilla (Russel Bryant) Digium employs a handful of full-time to just work on the code developers Community Supported

High Level Overview of a Developer s Conference

These guys, right here! Meet the Developers

Under The Hood

Under The Hood Modular architecture like Linux kernel or Apache Console Interface for debugging / status Most components can be loaded and unloaded from the CLI Configuration of system is flexible; Traditionally using Text Files (/etc/asterisk/ directory)

The Channel API Channel API Interfaces w/ Hard/Software Zap Zaptel Channel Driver Digium TDM Cards IAX2 InterAsterisk exchange Protocol Version 2 Extremely efficient, very simple, voice optimized protocol Can transport up to 3x as many calls per Megabit than SIP SIP Strives to maintain RFC 3261 compatibility Communicates with SIP Gateways / Phones H323 Based on OpenH323 Communicates with H323 Gateways / Phones

The Channel API Channel API Interfaces w/ Hard/Software MGCP Media Gateway Control Protocol Communicates with MGCP Gateways / Phones SCCP Cisco Proprietary Skinny Control Protocol Communicates with Cisco SCCP Equipment OSS Open Sound System Older Linux Sound Drivers Communicates with Soundcards ALSA Advanced Linux Sound Architecture

The Codec Translation API Codec Translation API Converts Audio Codecs G.711 Ulaw/Alaw Ulaw is used in the states, Alaw in Europe G.726 32Kbps G.729 Requires a license ($10 / channel from Digium) Most widely deployed, low bandwidth codec (8kbps) GSM

The File Format API This API Allows Reading/Writing of Various File Formats Some applications may need to archive digital audio streams in different formats Used by many applications such as VoiceMail, which records messages to disk in whatever format you choose Available Formats WAV MP3 AU GSM

The Application API Applications Perform Functions Modules of code that are used by the Dial Plan For Example: Answer: Answer a channel if ringing BackGround: Play a file while awaiting DTMF tones Busy: Indicate busy condition (normal busy) Congestion: Indicate congestion (fast busy)

exten => 2169203111,5,Wait(1) Simple Dial Plan Example The Application API Dial 216-920-3111 w/ your Cell Phone to hear it live ; CallerID Identify exten => 2169203111,1,Answer exten => 2169203111,2,Wait(2) exten => 2169203111,3,Playback(channel-insecure-warn) exten => 2169203111,4,SayDigits(${CALLERIDNUM})

Console Output -- Executing Answer("Zap/1-1", "") in new stack -- Accepting call from '2164114184' to '2169203111' on channel 0/1, span 1 -- Executing Wait("Zap/1-1", "2") in new stack -- Executing Playback("Zap/1-1", "channel-insecure-warn") in new stack -- Playing 'channel-insecure-warn' (language 'en') -- Executing SayDigits("Zap/1-1", "2164114184") in new stack -- Executing Wait("Zap/1-1", "1") in new stack -- Executing SayDigits("Zap/1-1", "2164114184") in new stack

API Access C API Accessible via standard ANSI C Pre-existing example code for applications, channel drivers etc.. Forms the Core of Asterisk Well documented, just read the code ;)

res_perl Similar to mod_perl for Apache Single Perl interpreter is loaded and used to process requests Allows embedding of perl commands directly in Dial Plan For the more adventurous, can be used to extend Asterisk to unimaginable tasks Available as part of the asterisk_addons package from CVS

res_js Similar to res_perl, except for Javascript Available from http://www.pbxfreeware.org

AGI Asterisk Gateway Interface Similar to CGI Write in whatever you want (Perl, PHP, Python, Pascal, Java, BASH ) Variables are passed on StdIn to your Applications, results and commands are passed back on StdOut Included w/ Asterisk, no additional work required

Manager API Allows client/server interaction over sockets w/ authentication Can be used to issue commands or events TCP/IP monitor PBX Used by applications such as the Flash Operator Panel and IP Switchboard

Pre-Recorded Prompts Hundreds of professionally recorded prompts Recorded by Allison Smith, a Voice Over Professional http://www.theivrvoice.com Clients include; Target Bell Canada Volkswagen Cingular

Connecting Asterisk To The World Many, Many Options.. TDM Cards from Digium VoIP Softphones VoIP Hardware from Various Vendors VoIP Termination / Origination Service from Carriers The ITSP Internet Telephony Service Provider

TDM Hardware from Digium X100P TDM400

TDM Hardware from Digium T100P TE405P

TDM Hardware from Digium DS3000P S100 IAXY

Analog Telephony Adapters Linksys PAP-NA2

SIP Hardware Phones Cisco 7960 Polycom IP-600

IAX2 Software Phones Firefly IAXPhone

Xlite SIP Software Phones

Where To Go For More Information Digium Website at http://www.digium.com Asterisk Website at http://www.asterisk.org Asterisk Docs Project at http://www.asteriskdocs.org VoIP Info Wiki at http://www.voip-info.org Bug Tracker at http://bugs.digium.com #asterisk on irc.freenode.org

How You Can Help Get Involved Try it out Report Bugs Make Suggestions Submit Patches Help Review, Revise Documentation

Channels How it goes together: SIP Zap (etc.) Context: from-sip Extension: 1234 Priority: 1 Context: from-zap Extension: (none) Priority: 1 Context: from-blah Extension: 8989 Priority: 1 (to extensions.conf)

sip.conf [2000] type=friend host=dynamic context=from-sip secret=mysecret [2001] type=friend host=dynamic context=from-sip secret=moresecret

extensions.conf (calls from SIP channel configs end up here) ; This is where we handle our SIP calls [from-sip] exten => 1234,1,Answer exten => 1234,2,Playback(tt-monkeys) exten => 1234,3,Hangup ; exten => _20XX,1,Dial(SIP/${EXTEN},30,r) exten => _20XX,2,Goto(from-sip,${EXTEN},102) exten => _20XX,102,Voicemail(b${EXTEN}) exten => _20XX,103,Hangup ; exten => t,1,hangup exten => h,1,hangup

Most-Used Applications Dial - tries to make a new call, and then connects current channel with new call if successful Goto - allows arbitrary leaps between contexts and priorities; allows modification of current extension Background - plays a file to current channel; interprets DTMF input

Magic with Include Contexts are NOT parsed in the order they appear Break up large contexts into smaller contexts and then use include => <context> in the main context This helps your sanity, as well.

Wrong [main] exten => _X11,1,Dial(Zap/1/${EXTEN},500,r) exten => _9.,1,Dial(SIP/${EXTEN}@mysipprovider,60,r) exten => _011.,1,Dial(SIP/${EXTEN:3}@int-sip,60,r) exten => h,1,hangup

Right [main] include => emergency include => outside-line include => international exten => h,1,hangup [emergency] exten => _X11,1,Dial(Zap/1/${EXTEN},500,r) [outside-line] exten => _9.,1,Dial(SIP/${EXTEN}@mysipprovider,60,r) [international] exten => _011.,1,Dial(SIP/${EXTEN:3}@int-sip,60,r)

Links http://www.asterisk.org/ http://www.voip-info/wiki-asterisk http://www.loligo.com/asterisk/ http://www.onlamp.com/pub/a/onlamp/2003/0 7/03/asterisk.html http://www.digium.com/ http://www.asteriskdocs.org/

Unabashed Plug Slide VOIP, Inc. Builds/Sells: MTA SIP hardware (2 port FXS) and various other devices Sells/Integrates: SIP proxy, billing/invoicing system, LCR system, customer care system, etc. (yes, asterisk is a part) http://www.voipincorporated.com/