230 likes | 247 Views
Asterisk Jargon. Alex Vishnev Chief Technical Office, VoIP ACN. 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.
E N D
Asterisk Jargon Alex Vishnev Chief Technical Office, VoIP ACN
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)
AGENDA • What is Asterisk? • PBX Definition and Functionality • Architecture Overview • Jargon • Network Interfaces • VoIP Connections • Dial Plan • Codec • Channel • Context • Extension • Application • Variable • Macro
Network Interfaces • PSTN • Analog (FXS/FXO) • Digital (E1/T1,BRI) • IP • SIP • H.323 • IAX
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
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
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
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)
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.
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.
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,
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
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
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
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)
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( )
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( )
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
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)
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)
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}
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 avishnev@acninc.com Website http://www.acninc.com