Open Telephony The FreePBX ® Way Presented at Asterisk World, 2008 San Jose by Philippe Lindheimer FreePBX Project Leader http://freepbx.org
What is Open Telephony? +
A Revolutionary Telephony Platform is Born
The LAMP “Hall of Fame” Expands
PHP, (Perl, Python)
The FreePBX Project
Estimated 200,000 Installed Base
Estimated growth of thousands per month
100,000 Visits/Month (400,000 Page Views)
Proven Stability with Mature Release History
10/14/2004 – 1.1 (AMP)
03/17/2006 – 2.0 (FreePBX)
05/16/2006 – 2.1
01/05/2007 – 2.2
08/25/2007 – 2.3
02/10/2008 – 2.4
Who’s Using FreePBX?
Many others (some have come and gone)
ESCAUX net. PBX
Generic User Management System
Miruna Asterisk System
Pound Team PBX
Leader in Asterisk PBX Innovations
Across Asterisk 1.2, 1.4 and 1.6
V oice m ail e X tension provides a “Personal IVR” option
Integrates with Asterisk Voicemail and Follow-Me
Telephone Hot Desking
(Devices & Users – and multiple devices per user)
Sophisticated and Unlimited Call-Flow Construction
Online Modular Update System
Easy and Flexible Custom Asterisk Dialplan Integration
Feature Code Administration
Zap Channel DIDs
CallerID Lookup Sources
Music on Hold Administration
Paging and Intercom
FreePBX System Status
Asterisk Log Files
Backup & Restore
PHP AGI Config
Call Forward (CF, CFB, CFU)
Where to Learn More Open Telephony Training Seminar
Open Telephony Training Seminar
Where: Golden Nugget
Las Vegas, NV
When: May 20-23 rd (Extended Class)
May 21-23 rd (Standard Class)
More Info: [email_address] 1-877-480-9533 http://freepbx.org/open-telephony-training-seminar
Components of Asterisk and FreePBX and how they fit together, and FreePBX Internal, troubleshooting and integration with custom Asterisk dialplans.
PSTN Integration, Trunks, Troubleshooting with the PSTN, IP Phones and lots more.
Successful Marketing, positioning, competition, selling, sales cycle and techniques to differentiate your offerings in the small and medium business PBX space.
Past attendees are saying:
“ Great seminar - worth the money and, more important, the time!" – Calvin W.
“ Extremely well prepared and presented!” – Ronald C.
“ The OTTS was a valuable injection of information regarding the vibrant and dynamic Asterisk ecosphere; it should be attended yearly by anyone trying to keep abreast of this area.” Ron B.
The End Thank You for Listening http://freepbx.org
Red Eyed Tree Frog
Symbol of Progress
What’s with the Frog? Photo taken from www.newint.org (Klein)
Return from IVR Making complex IVR trees Day IVR Sales Support Billing 1 2 3 Night IVR Sales Support Billing Msg 1 2 3 Support IVR Residental Contractors Main Menu 1 2 9 Return to IVR Tip: Use “Return to IVR” with IVR’s and Announcements that will be called from multiple parents.
Inbound Call Flow Call Routing extensions Time Condition 8-5 M-F extensions Company DID 8004522233 Day/Night Mode Control IVR 1-Sales 2-Support 3-Directions Sales Msg Support Msg Sales Ringgroup Support Queue After Hr Msg John’s Voicemail
Outbound Route Patterns
Pattern Chooses the route
Route Choice is “final”
Subsequent routes that also match the number will never be tried
Pattern can only remove leading digits
Common example, emulate old style PBX
Outbound Call Flow Routes, Trunks, Dial Patterns Busy, Answer, No Answer Busy, Answer, No Answer Congested, Channel Unavailable Congested, Channel Unavailable Strip digits If configured All Circuits Busy Bad Number Context Route 1 (Emergency) Match? Route 2 Match? Route 3 Match ? Next Trunk Next Trunk Tip: Always make your first route your Emergency Route to handle E911 and other related calls. This assures that numbers matching your emergency patterns will ALWAYS go down the Emergency Route.
CallerID Handling Originated Call From User or Forwarded Call (CF, Follow-Me, etc.) Emer- gency Route Emer- gency CID? Intra- Company Outbound CID Trunk CID Trunk CID Set Never Overide CID CID Set? Trunk CID? Use Emer- gency CID Use Internal CID Use Outboundcid Use Trunk CID Yes Yes Yes No Yes No No No Use Extension (Undefined Results) No Use Forwarded CID Use Trunk CID Use Trunk CID No CID Transmitted No No No Outbound Call Flow CallerID Yes No Yes Yes Yes If CallerID(name) == “hidden” (“hidden” <2124351234>) SetCallerPres(prohib_passed_screen) Internal Caller?
DUNDi 101 - Redundancy Outbound Call Flow DUNDi & Branch Offices Chicago Ann Arbor Cleveland Indianapolis Milwaukee Detroit Madison IAX Trunk Media Path
Advanced FreePBX Features VmX™ & Follow-Me Dial Attempt Aleternative Optional 0 or 2 VmX Locater™ Incoming Call Unavail Msg #home #cell Voice Mail System Confirmation Cell Voicemail ANSWER VmX Locater™ Busy Msg Busy # or No choice Press 1 No Answer
FreePBX Internals Architecture Module Plugin Logic LAMPA Stack (Linux – Apache – MySQL – PHP – Asterisk) FreePBX Core Application Libraries Module Plugin Libraries FreePBX Core Dialplan Objects Module Plugin Objects Authorization / Security FreePBX Framework and Core Logic FreePBX Core API Module Plugin API FreePBX GUI Module Plugin GUI FreePBX Config MySQL DB
FreePBX Internals Architecture FreePBX GUI Business Logic MySQL Config Storage Dialplan Generation & Business Logic Astdb Asterisk Environment page.dispname.php functions.inc.php retrieve_conf Dialplan & Configuration files voicemail.conf AGI & System Scripts
Inbound Call Flow Types of Modules extension, vm or featurecode extension, vm or featurecode From Previous Module Destination Modules Multi-Destination Modules (e.g. IVR, Time-Conditions, Day/Night Control) From Previous Module Destination Module (or extension, vm, featurecode) Simple Module (e.g. Announcement) extension, vm or featurecode Destination Module (or extension, vm, featurecode) From Previous Module Common Module (e.g. Ring Group, Queues, Follow-Me)