15
Scaling Out FusionPBX With Kamailio Mack Hendricks, Lead Learner, USA web: http://dsiprouter.org phone: +1 888-907-2085 x 11 @dsiprouter

Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

  • Upload
    others

  • View
    33

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Scaling Out FusionPBX With Kamailio

Mack Hendricks, Lead Learner, USAweb: http://dsiprouter.orgphone: +1 888-907-2085 x 11 @dsiprouter

Page 2: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

<

About Me Education & VoIP Background:

● BS & MS in Computer Science● 10 years

How Did I Get Started in Telephony

● Dad bought me a Commodore Vic 20, which was the predecessor to the Commodore 64

● I convinced him to purchase me a 300 baud modem● Started a 1 line BBS (Bulletin Board Service) in my

bedroom with 2mb of storage online

Dependency Graphme

wife

22 yrs old

21 yrs old

4 yrs old

8 monthold

@[email protected]

Page 3: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Built in Detroit, MI USA

Agenda● Intro to dSIPRouter (2 minutes)● Problems we are trying to solve (2 minutes)● Architecture (5 minutes)● Demo (10 minutes)● Roadmap (2 minutes)● Questions (7 minutes)

Total: 28 minutes

Page 4: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Built in Detroit, MI USA

Intro to dSIPRouter

● What○ GUI Interface for implementing

Kamailio to provide SIP Trunking Services and PBX Hosting

● Core Components○ Python (GUI)○ Kamailio ○ RTPEngine (optional)○ Bash Scripts○ Nginx (optional)○ Docker (optional)

● Project Started○ V0.2 was released on Sept 2017

Kamailio

GUIC1

C2

C3

C4

RTPEngine(optional)

P1

P2

P3

P4NginxNginx

(optional)

Docker

Page 5: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Built in Detroit, MI USA

Intro to dSIPRouter

● Sponsors○ Skyetel (Gold)○ dOpenSource

Page 6: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Built in Detroit, MI USA

Intro to dSIPRouter● Design Principles

○ Stay true to Kamailio trunk (use standard modules)○ Help increase the adoption of Kamailio

○ Ability to start routing traffic between a carrier and endpoint within 10 minutes○ Minimum database interaction during runtime○ Push back on feature overload○ Provide a pipeline towards more feature rich Kamailio based proxies

Page 7: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Built in Detroit, MI USA

FreePBX

Problems we are trying to solve (PBX Hosting)

FreePBXCustomer A

FreePBX FreePBX FusionPBX FusionPBX

VIP

replication/rsync

FusionPBXCustomer A

Grew by Acquisition

FusionPBXCustomer B

Want custom stuff

Issues:

➔ Can’t easily help a customer grow - endpoints would need to change

➔ No central phone provisioning server

➔ Can’t take the standalone FusionPBX’s out of service for maintenance or hardware upgrade without causing an outage

➔ No central DID management

Page 8: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Built in Detroit, MI USA

Problems we are trying to solve (SIP Trunking)

Panasonic Avaya

SBC

Problem Space 2

FreePBX (on premise)

FusionPBX (on premise)

Backend SIP Provider

Problem Space 3

Mitel

FreePBX / FusionPBX

MitelMitel

Mitel

Problem Space 1

Page 9: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Built in Detroit, MI USA

Architecture

Physical / Virtual Hardware (Debian 9.x)

Kamailio RTPEngine

Docker

NGINX

MySQL

Web UI (Python / Flask) Job Scheduler (cron)

9 minuteinstall

Page 10: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Demo (UI Walk-thru)

Page 11: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Demo

FusionPBX Domain Routing

FusionPBX Provisioning

Page 12: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Demo (FusionPBX Domain Routing)

FusionPBXdomainA.comdomainB.com

FusionPBXdomainC.com

FusionPBXdomainD.comdomainE.com

UA

UA

UA

[email protected]

Page 13: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Demo (FusionPBX Provisioning)

FusionPBX1domainA.comdomainB.com

FusionPBX2domainC.com

FusionPBX3domainD.comdomainE.com

UA

UA

UA

http://dsiprouter.org/app/provision/8c8590990a08

http://fusionpbx1/app/provision/8c8590990a08

http://fusionpbx2/app/provision/8c8590990a08

Page 14: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Built in Detroit, MI USA

RoadmapFeatures v0.40 (Will Release Today) V0.50 (August)

Installation ● Added support for Docker Debian 9.next support

Docker Support & Orchestration

NGINX is provisioned or HTTP Proxy Provisioning

● UI, Kamailio and RTPProxy will be containerized

● Ability to deploy to Kubernetes

UI Added new logo and fixed UI bugs

● New UI Framework● RestFul Interface

SIP Trunking ● Allow UA Registration ● Ability to limit concurrent calls

PBX Hosting ● FusionPBX HTTP Provisioning

UI Monitoring of Domain Syncing

Page 15: Scaling Out FusionPBX With Kamailio · FreePBX Problems we are trying to solve (PBX Hosting) FreePBX Customer A FreePBX FreePBX FusionPBX FusionPBX VIP replication/rsync FusionPBX

Built in Detroit, MI USA

Questions

Follow us | Download | Use It | Improve It

t: @dsiprouterw: dsiprouter.org

github: https://github.com/dOpensource/dsiprouter