Extending the Open Source PBX Michael Haberler, IPA Otmar Lendl, .What is Asterisk? • A PBX software for the Linux platform developed by Digium. • Does PBX call switching, Codec translations, | Asterisk & ENUM Extending the Open Source PBX Michael Haberler, IPA Otmar Lendl, What is Asterisk? A PBX software for the Linux platform developed by Digium. Does PBX call switching, Codec translations, and various Applications. Available for free in source code under the GNU Public Licence. funded Digium to implement ENUM in call processesing. See Voice Interfaces (1) PRI (E1/T1) With cards sold by Digium Can be used to drive channel-banks ISDN BRI ISDN4Linux or CAPI POTS FXO and FXS PCI and USB versions available from Digium Linux Soundcard Voice Interfaces (2) SIP Includes codecs for (a, µ), ILBC, GSM Utilizes OpenH323 code IAX Inter-Asterisk-eXchange proprietary; TLS & certficates for signaling MGCP Applications Voicemail Conference Bridge ACD Queues (Automatic Call Distribution) IVR Applications ("press x for Sales") File Playback Scripting using "" for simple Applications Can do Database operations Can do ENUM lookups CGI-like interfaces for advanced programming Overview PSTN analog phones. VoIP Asterisk PSTN analog phones. VoIP Voicemail Conference IVR-App Call Routing Asterisk implements a State Machine which is defined in terms of The origin of the call (Which SIP user? PSTN? Anonymous SIP? Local POTS?) = CONTEXT The number dialed by the user (or Direct Dial In, or SIP URI) = EXTENSION A "Program Counter" which orders sequences of commands (like line numbers in BASIC) = PRIORITY State Machine Example (1) Make "80" in context call the Echo Application. [context] ; Let them know whats going on exten => 80,1,Playback(demo-echotest) exten => 80,2,Echo ; Do the echo test exten => 80,3,Playback(demo-echodone) ; Let them know its over exten => 80,4,Hangup ; End the call State Machine Example (2) Map extension "200" to a analog extension port with fallback to Voicemail: [channels] context=extension signalling=fxs_ls channel => 1 exten => 200,1,Dial(Zap/1,30) ; ring for | Asterisk & ENUM Extending the Open Source PBX Michael Haberler, IPA Otmar Lendl, What is Asterisk? A PBX software for the Linux platform developed by Digium. Does PBX call switching, Codec translations, and various Applications. Available for free in source code under the GNU Public Licence. funded Digium to implement ENUM in call processesing. See Voice Interfaces (1) PRI (E1/T1) With cards sold by Digium Can be used to drive channel-banks ISDN BRI ISDN4Linux or CAPI POTS FXO and FXS PCI and USB versions available from Digium Linux Soundcard Voice Interfaces (2) SIP Includes codecs for (a, µ), ILBC, GSM Utilizes OpenH323 code IAX Inter-Asterisk-eXchange proprietary; TLS & certficates for signaling MGCP Applications Voicemail Conference Bridge ACD Queues (Automatic Call Distribution) IVR Applications ("press x for Sales") File Playback Scripting using "" for simple Applications Can do Database operations Can do ENUM lookups