Proven Stability with Mature Release History
Download
Report
Transcript Proven Stability with Mature Release History
FreePBX Turns Five!
Astricon 2009
By
Philippe Lindheimer
FreePBX.org / Bandwidth.com
FreePBX Turns Five
Project Introduction / Background
FreePBX Call Flows
Linking modules to customize solutions
Examples of Custom/Enterprise Solutions
FreePBX 3.0
Summary / Questions
Project Overview
Estimated:
5,000,000 Downloads
500,000 Installed Base
Proven
Stability
10/14/2004
– 1.1with Mature Release History
03/17/2006 – 2.0
05/16/2006 – 2.1
01/05/2007 – 2.2
08/25/2007 – 2.3
02/10/2008 – 2.4
09/19/2008 – 2.5
Astricon-09 – 2.6
08/04/2009 – 3.0DEV1
Astricon-09 – 3.0DEV2
Who's Using FreePBX?
+
=
Many others (some have come and gone)
Adminparadise
Version 1.5
What Does FreePBX Bring?
LAMPA
Linux
Apache
MySQL
PHP, (Perl, Python)
Asterisk
Asterisk
Linking Modules Together
From Previous Module
From Previous Module
Common Module
(e.g. Ring Group, Queues,
Follow-Me)
extension, vm
or featurecode
Simple Module
(e.g. Announcement)
Destination Module
(or extension, vm, featurecode)
Destination Module
(or extension, vm, featurecode)
From Previous Module
Multi-Destination Modules
(e.g. IVR, Time-Conditions, Day/Night Control)
extension, vm
or featurecode
extension, vm
or featurecode
Destination Modules
Inbound Call Flow
Company DID
8004522233
DID
Day/Night
Mode Control
Time
Condition
8-5 M-F
IVR
1-Sales
2-Support
3-Directions
extensions
extensions
Sales
Ringgroup
Support
Queue
Sales Msg
Support Msg
John’s Voicemail
After Hr Msg
Enterprise IVRs
Abundance of Features
Extension/User+Devices Config
FreePBX System Status
Feature Code Administration
Module Admin
Outbound Routes
Asterisk Log Files
Trunks
Online Support
Inbound Routes
Asterisk API
Zap Channel DIDs
Asterisk CLI
Announcements
Asterisk Info
CallerID Lookup Sources
Backup & Restore
Day/Night Control
Custom Destinations
Follow Me
Custom Extensions
IVR
Java SSH
Queues
PHP Info
Ring Groups
PHP AGI Config
Time Conditions
Print Extensions
Callback
Phonebook
Conferences
Phonebook Directory
Customizing FreePBX
Time Clock Solutions
Emergency Management Solutions
Automated Outbound Messaging
Speech (Magic Button – Schmooze)
Online Phone Payment
FreePBX 3.0
Reinventing ourselves with 3.0
Three projects come together
Language & Framework
Design Goals
Screenshots
Three Great Projects in One
TCAPI
Phonebooth hosted platform
MVC, Web2.0, Engine Independent
Phones Made Simple
FreePBX
Defacto Asterisk Management Interface
Modular Design
Design Goals
Modular approach to allow customization
Easily extendable UI
DRY (write reusable code once) / widgets
Easily skinnable / branding
Web2.0 AJAX
Links easily to outside programs and
widgets (libraries, APIs, etc.)
Language & Framework
Selection
PHP
Kohana (for View/Controller)
Extremely powerful
TCAPI (for Telephony)
Lightweight, flexible
Doctrine (for ORM)
Widely accepted, FreePBX 2.x developer base
Switch-agnostic design
jQuery (for Javascript goodness)
API
Web Browser
User Interface
VIEW
Business Logic
CONTROLLER
Data & Configs
MODEL / ORM
Menu & Frame Layout
XML,
SOAP,
etc.
(a.k.a. skin)
Module Views
(may load within frames)
Subviews
JavaScript
(AJAX)
Helpers
Telephony
UI
Helpers
Controllers (FreePBX Application)
Plugins
Core Edit/Save/Load
Actions
Error
Data
Handling Validation
Database Abstraction & Event Handlers
(Connect / Save / Load)
Individual table/feature modules
(Each feature acts as a database “table”)
DB storage engine
Real-time APIs
External
Data
(LDAP,
SQL, etc.)
Telephony
Switch
Config
Summary
FreePBX 2.x continues strong
FreePBX 3.x Under Rapid Development
Lots of new talent
Present in many Enterprise and
Government accounts
Bandwidth.com committed to FreePBX
continued success