introduction to asterisk terminology and jargon

23
Asterisk Jargon Alex Vishnev Chief Technical Office, VoIP ACN

Upload: catharine24

Post on 10-Jun-2015

1.178 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introduction to Asterisk Terminology and Jargon

Asterisk Jargon

Alex Vishnev

Chief Technical Office, VoIP

ACN

Page 2: Introduction to Asterisk Terminology and Jargon

What is Asterisk?

• Popular open source PBX (Private Branch Exchange)– Private Telephone Network inside the Enterprise

• Provides a library of basic telephony functions which you then use as script building-blocks.

• Common PBX functionality such as voicemail, call queuing, conferencing, music on hold and others are all included.

• Asterisk is one of the few PBXs in existence that connects legacy telephony technologies (Analog, PRI) to VoIP interfaces (SIP,H.323)

Page 3: Introduction to Asterisk Terminology and Jargon

AGENDA

• What is Asterisk?– PBX Definition and Functionality– Architecture Overview

• Jargon– Network Interfaces– VoIP Connections– Dial Plan– Codec– Channel– Context– Extension– Application– Variable– Macro

Page 4: Introduction to Asterisk Terminology and Jargon

Asterisk Architecture

Page 5: Introduction to Asterisk Terminology and Jargon

Network Interfaces

• PSTN– Analog (FXS/FXO)– Digital (E1/T1,BRI)

• IP– SIP– H.323– IAX

Page 6: Introduction to Asterisk Terminology and Jargon

FXS/FXO

• Analog Line Interface• FXS – Foreign Exchange Station

– Generates Dialtone– Generates Ring– Connect Analog Phones

• FXO – Foreign Exchange Office– Accepts Dialtone from CO– Connect Line from Telco

Page 7: Introduction to Asterisk Terminology and Jargon

T1

• Primarily Used In US• T1 – PSTN Digital Interface

– CAS – Channel Associated Signaling (Wink, Immediate, etc)

• 24 Voice Channels• MF/DTMF In-band Signaling

– PRI – Primary Rate Interface (“D” Channel)• 23 Voice Channels• 1 Data Channel• Q.931 Messages

Page 8: Introduction to Asterisk Terminology and Jargon

E1

• ITU-T Specification• Digital Interface

– CAS – Channel Associated Signaling• 30 Voice Channels• R2MF

– PRI – Primary Rate Interface (“D” Channel)• 28 Voice Channels• 2 Data Channel• Q.931 Messages

Page 9: Introduction to Asterisk Terminology and Jargon

Connections (Users/Peers/Friends)

• VoIP Connections– Users -> connections that authenticate to

us (phones, etc)– Peers –> authenticate us (service provider)– Friends ->Connections that do both may be

defined as• Relationship defined in (sip.conf, iax.conf)

Page 10: Introduction to Asterisk Terminology and Jargon

Dialplan

• "road map" for how Asterisk will work. – specifies how Asterisk should handle calls. – consists of a list of instructions or steps that

Asterisk should follow. • To successfully set up your own Asterisk system, it is

absolutely vital that you understand dialplans.

Page 11: Introduction to Asterisk Terminology and Jargon

Codec

• Codec – Short for Coder/Decoder• Codecs determine the sustained data bit rate which is required for

each channel.• The codec converts the analog voice signal to a digitally encoded

one that should take less space• The quality and data bitrate vary from one codec to the next. • Examples:

– ulaw, alaw, gsm,g.729, g.723.

Page 12: Introduction to Asterisk Terminology and Jargon

Channels

• Telephony connections to the PBX • Call Processing in Asterisk Is Centered Around

Channels• Drivers for various kinds of connections

– IP (SIP,H.323,IAX,SCCP,MGCP)– PSTN (Zaptel, PRI, BRI,

Page 13: Introduction to Asterisk Terminology and Jargon

Channel Types• Channel Types could be Physical or Logical• Agent: ACD Agent channel • Console: Linux console client driver for sound cards (using OSS or ALSA) • H.323: An older VOIP protocol • IAX and IAX2: Inter-Asterisk Exchange protocol, Asterisk's own VOIP protocol • MGCP: Media Gateway Control Protocol, another VOIP protocol • SIP: Session Initiation Protocol, the most common VOIP protocol • Skinny: A driver for Cisco Skinny Client Control Protocol (a VOIP protocol) • VOFR: voice over frame relay Adtran style • VPB: For connecting ordinary telephone and telephone lines using Voicetronix

cards • Zap: For connecting ordinary telephones and telephone lines using Digium

cards. Also for TDMoE and for Asterisk zaphfc

Page 14: Introduction to Asterisk Terminology and Jargon

Channel Drivers

• Channel drivers offering other technologies can be optionally installed:• Bluetooth: Allows the use of bluetooth devices to change routing - see CVS

"chan_btp" • CAPI: ISDN CAPI channel • mISDN: mISDN channel • vISDN: vISDN channel (native BRI channel for HFC chipsets) • SCCP: An alternate Skinny/SCCP channel • Sirrix: ISDN BRI for Sirrix cards (with optional ISDN encryption) • UNISTIM: Nortel Unistim channel • Unicall: Replacement for zaptel, with R2 support • SS7: SS7 (ISUP on MTP2/3) channel

Page 15: Introduction to Asterisk Terminology and Jargon

Context

• Named Group of Extensions• Extensions are Unique only Inside Context• [incoming] – example of context• Special Contexts

– [globals] – [general]

• Contexts are Used for Security and to Differentiate Services

Page 16: Introduction to Asterisk Terminology and Jargon

Extensions

• Defined Within Context• An extension is an instruction triggered by an incoming call or by digits

being dialed on a Channel.• Extensions specify what happens to calls as they make their way through

the dialplan. • Traditional Extensions (i.e. extension 153)• Extensions can be used for much more in Asterisk.• exten => (followed by the name of extensions)

– Can be numeric (i.e. regular Extension)– Alphanumeric (i.e. email address)

Page 17: Introduction to Asterisk Terminology and Jargon

Extensions (More then just a Number)

• An extension is composed of three components:– The name (or number) of the extension– The priority (each extension can include multiple steps; the

step number is called the “priority”)– The application (or command) that performs some action on

the call• Example

– exten => name, priority, application( )– exten => 123,1,Answer( )

Page 18: Introduction to Asterisk Terminology and Jargon

Special Extension

• ‘s’ - extension• Calls entering a context without a specific destination

(i.e. ring on FXO line), they are handled automatically by the s extension.

• Example– [incoming]– exten => s,1,Answer( )– exten => s,2,Playback(hello-world)– exten => s,3,Hangup( )

Page 19: Introduction to Asterisk Terminology and Jargon

Priority

• Defines step number in a multi-step Extension• Numbered sequentially, starting with 1.• Unnumbered Priority (Contradiction ;-))

– ‘n’ priority, - “next”– Takes the number of the previous priority and adds 1– No need to re-number dial plan when changes are made.– Example:

• exten => 123,1,Answer( )• exten => 123,n,do something• exten => 123,n,do something else• exten => 123,n,Hangup( )

– Label Priority• exten => 123,n(label),do something

• Executes one Specific Application

Page 20: Introduction to Asterisk Terminology and Jargon

Variables

• Channel Variables• A channel variable is a variable (such as the Caller*ID number) that is associated

only with a particular call. • Predefined channel variables available for use within the dialplan,which are explained

in the README.variables file in the doc subdirectory of the• Channel variables are set via the Set( ) application:

– exten => 123,1,Set(MAGICNUMBER=42)• Environment variables are a way of accessing Unix environment variables from within

Asterisk. – Example: ${ENV(var)} – var – Unix Environment Variable

• Global Variables– [globals] – Special Context– JOHN=ZIP/1– JANE=SIP/JANE– exten => 123,1,SetGlobalVar(JOHN=Zap/1)

Page 21: Introduction to Asterisk Terminology and Jargon

Applications

• Applications are the workhorses of the dialplan.– performs a specific action on the current channel

• Types– Generic (Authenticate, VMAuthenticate,etc)– Billing (SetAccount, SetAMAFlags)– Call Processing (Answer, Busy, Dial, Hangup)– Caller Presentation (SetCallerID, SetCallerCIDName)– Database(DBdel, DBget, DBput)– Application Interface( AGI, EAGI, PERL, PHP)– Audio( Playback, Playtones, MusicOnHold)– Voicemail & Conferencing( MeetMe, VoiceMailMain)– Queue/ACD (AddQueueMember,AgentLogin)

Page 22: Introduction to Asterisk Terminology and Jargon

Macros• Macros are used to reduce the amount of redundant

code in the dialplan. • passing arguments to the macro allows to generalize

macros• Single line invocation from dialplan• Macros are identified in the dialplan by starting a

context name with "macro-".• ’s’ extension is used within macros since we want the

actions to be performed automatically• Arguments in macros are accessed as {ARGn}

Page 23: Introduction to Asterisk Terminology and Jargon

Q&A

Alex Vishnev

Chief Technical Officer, VoIP

13620 Reese Blvd. Ste. 400

Huntersville, NC 28078

Office (704) 632-3682

Mobile (704) 778-7260

Fax (704) 947-7112

Email [email protected]

Website http://www.acninc.com