SlideShare una empresa de Scribd logo
1 de 16
FSMs can be Useful




                     Mahesh Paolini-Subramanya
                     CTO, Vocalocity
Hosted PBX Taxonomy
 ► Named  Box
   • Pure hosting
   • Clustering/Virtual or Big Honking Box
   • Load/Scaling issues same as ‘one box’ application


 ► High  Level Application Server
   •   Calls generate high level events
   •   Events interact with application server
   •   Predefined spaces/features
   •   Load/Scaling issues same as ‘one box’ application




                             © Vocalocity 2011. Confidential.   2
Hosted PBX Taxonomy
 ► Granular  Application Server
    • Calls generate granular events
    • Events interact with application server
    • Easy to create simple applications
        Point features: FML, notifications, transcriptions
        Call Switch: Routing, voicemail
 ► Difficult  to build complex applications
    •   Updates and deployments
    •   Testing and Debugging
    •   Concurrency
    •   Scaling and Partitioning
    •   Persistence

                              © Vocalocity 2011. Confidential.   3
Cloud Computing
 ►Wikipedia
   “a style of computing in which typically real-time scalable
  resources are provided as a service over the Internet to end-
  users who need not have knowledge of, expertise in, or control
  over the technology infrastructure”


 ►Vocalocity
   •   Horizontal Scaling and/or Clustering
   •   Abstraction of application layer
   •   SOA and/or fine-grained API
   •   Redundancy irrelevance



                             © Vocalocity 2011. Confidential.      4
Cloud Computing
 ► Telephony  makes it harder
    • Simple and distributed actions? Done
    • High Level Applications? Done
    • Both at the same time? Well, Maybe Not…


 ► Vocalocity
    • Distributed application infrastructure (erlang)
    • Distributed persistence infrastructure
    • Distributed telephony infrastructure
        Simple, atomic events!!




                             © Vocalocity 2011. Confidential.   5
Why erlang?
 ► Testing

 ► Code    deployment
 ► Concurrency

 ► Complexity

 ► Predictable   Performance
 ► Fault   tolerance
 ► Error   Containment
 ► Testing

 ► Code    Deployment




                               © Vocalocity 2011. Confidential.   6
Clean APIs
  ► Only   interface into System
  ► Handlersfor different modalities                                      System
    • HTTP for Public
    • STOMP for Private
                                                                         Business Rules




                                                               STOMP         HTTP           Event




                                                               Workflow     Vocalocity     Call Server




                            © Vocalocity 2011. Confidential.                                        7
Clean APIs
  ► Administrative
     • CRUD – Users, Depts, …
                                                                       System
     • Regulatory – E911, TRS, …
     • OSS
  ► Informative                                                       Business Rules

     • Notifications
     • High Level Events
     • Messages – History, Reporting                          STOMP       HTTP           Event

  ► Interactive
     • Communications – Calls, Contacts, …Workflow                       Vocalocity     Call Server

     • Profile – Blacklist, FML, Media, …
     • Messages – History, Reporting, …


                           © Vocalocity 2011. Confidential.                                      8
Processes
  ► Allrequest goes to any available
    application node as a message
  ► Nodes     have processes
     •    Users
     •    Clients
     •    Calls
     •    Faxes
     •    Phones
     •    Load Balancers
  ► Processes    do things




                               © Vocalocity 2011. Confidential.   9
Event Handlers
 ► Theyget information to endpoints
   • GUI
   • API callbacks




                           © Vocalocity 2011. Confidential.   10
Event Handlers
  ► The perform asynchronous application
   activities
    • Logging
    • notifications
  ► They   bridge between the FSMs and the
   calls
    • Check blacklist
    • Play error message
    • Hangup
    • Go offhook




                           © Vocalocity 2011. Confidential.   11
Calling
 ► Calls   are tracked as Processes
 ► Event   interface for requests and responses (XML)
 ► fine-grained    events that can
    •   make/break calls
    •   record audio and dtmf                                System            System             System

    •   play audio and dtmf
    •   file operations                                                  erlang / xml / events

 ► Call Process tracks
    • Channel parameters                                   Call Server       Call Server         Call Server


    • FSM name and state




                               © Vocalocity 2011. Confidential.                                         12
Finite State Machines
  ► System  has a limited set
    of states
  ► Statestransition based
    on conditions
  ► Transitions   are atomic
  ► Events and actions at
    entry and exit
                                                                                                    A Dog




                                                                                                 A Cat
                                                                  * Diagrams from http://learnyousomeerlang.com/finite-state-machines

                               © Vocalocity 2011. Confidential.                                                                         13
Finite State Machines
 ► Many   many many FSMs (25 at last count)                                         init


   •   Auto Attendant
   •   FML                                                                    Check node


   •   Voicemail
   •   Conference                                                      Check
                                                                      Blacklist
                                                                                                         Move node


   •   Fax
   •   C2C
   •   Video               Cancelled   Blacklisted                  Next Endpoint          Collections         Unknown

   •   Directory
   •   Search
   •   Announcements    Auto Attendant   FML                          Voicemail            Conference                Fax

   •   Paging


                                 © Vocalocity 2011. Confidential.                                                          14
Finite State Machines
 ► Templates    are your friend                                                               init
                                                                 init
 ► So   are BIG sheets of paper.
                                                                                            Return
                                                            Setup Call                   AutoAttendant
 ► More   is merrier
 ► But   keep them simple, OK?                                                             Hangup
                                                 Get Caller
                                                  Name
                                                                         Play Transfer
 ► Mixing   States is BAD                                                  Message

 ► As   is my haiku talent.                      Got Caller
                                                  Name




                                                                  Dial




                              © Vocalocity 2011. Confidential.                                       15
FSMs can be Useful – See?




                            Mahesh Paolini-Subramanya
                            CTO, Vocalocity

Más contenido relacionado

Similar a FSMs can help organize complex systems

Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?
Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?
Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?Voxeo Corp
 
Skl VoIP Presentation
Skl VoIP PresentationSkl VoIP Presentation
Skl VoIP PresentationJay Gubert
 
Path Solutions Shore Tel Connector
Path Solutions Shore Tel ConnectorPath Solutions Shore Tel Connector
Path Solutions Shore Tel ConnectorBrian Gendron
 
THE VOICE OF ESAU: HACKING ENTERPRISES THROUGH VOICE INTERFACES
THE VOICE OF ESAU: HACKING ENTERPRISES THROUGH VOICE INTERFACES   THE VOICE OF ESAU: HACKING ENTERPRISES THROUGH VOICE INTERFACES
THE VOICE OF ESAU: HACKING ENTERPRISES THROUGH VOICE INTERFACES Tal Be'ery
 
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009Vincenzo Iozzo
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012Eonblast
 
Experiences with Microservices at Tuenti
Experiences with Microservices at TuentiExperiences with Microservices at Tuenti
Experiences with Microservices at TuentiAndrés Viedma Peláez
 
Clavister security for virtualized environment
Clavister security for virtualized environmentClavister security for virtualized environment
Clavister security for virtualized environmentnicolasotira
 
סייבר ארק מירי
סייבר ארק  מיריסייבר ארק  מירי
סייבר ארק מיריlihig
 
Rayo for XMPP Folks
Rayo for XMPP FolksRayo for XMPP Folks
Rayo for XMPP FolksMojo Lingo
 
respond_to :voice - the convergence of voice and web interfaces with Rails an...
respond_to :voice - the convergence of voice and web interfaces with Rails an...respond_to :voice - the convergence of voice and web interfaces with Rails an...
respond_to :voice - the convergence of voice and web interfaces with Rails an...jpalley
 
Tel Net 1
Tel Net 1Tel Net 1
Tel Net 1mharlee
 
Rhonda Layfield Sniffing Your Network With Netmon 3.3
Rhonda Layfield   Sniffing Your Network With Netmon 3.3Rhonda Layfield   Sniffing Your Network With Netmon 3.3
Rhonda Layfield Sniffing Your Network With Netmon 3.3Nathan Winters
 
Talking To Rails
Talking To RailsTalking To Rails
Talking To RailsMojo Lingo
 
Voice Enabling your Applications with Twilio
Voice Enabling your Applications with TwilioVoice Enabling your Applications with Twilio
Voice Enabling your Applications with TwilioJim Schweitzer
 

Similar a FSMs can help organize complex systems (20)

Inside Flume
Inside FlumeInside Flume
Inside Flume
 
Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?
Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?
Developer Jam Session - What is new in Prophecy 9 / VoiceObjects 9?
 
Skl VoIP Presentation
Skl VoIP PresentationSkl VoIP Presentation
Skl VoIP Presentation
 
Jonathan bromley doulos
Jonathan bromley doulosJonathan bromley doulos
Jonathan bromley doulos
 
Karel ms series
Karel ms seriesKarel ms series
Karel ms series
 
Path Solutions Shore Tel Connector
Path Solutions Shore Tel ConnectorPath Solutions Shore Tel Connector
Path Solutions Shore Tel Connector
 
THE VOICE OF ESAU: HACKING ENTERPRISES THROUGH VOICE INTERFACES
THE VOICE OF ESAU: HACKING ENTERPRISES THROUGH VOICE INTERFACES   THE VOICE OF ESAU: HACKING ENTERPRISES THROUGH VOICE INTERFACES
THE VOICE OF ESAU: HACKING ENTERPRISES THROUGH VOICE INTERFACES
 
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009
Fun and Games with Mac OS X and iPhone Payloads, Black Hat Europe 2009
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
 
Experiences with Microservices at Tuenti
Experiences with Microservices at TuentiExperiences with Microservices at Tuenti
Experiences with Microservices at Tuenti
 
Clavister security for virtualized environment
Clavister security for virtualized environmentClavister security for virtualized environment
Clavister security for virtualized environment
 
סייבר ארק מירי
סייבר ארק  מיריסייבר ארק  מירי
סייבר ארק מירי
 
Rayo for XMPP Folks
Rayo for XMPP FolksRayo for XMPP Folks
Rayo for XMPP Folks
 
respond_to :voice - the convergence of voice and web interfaces with Rails an...
respond_to :voice - the convergence of voice and web interfaces with Rails an...respond_to :voice - the convergence of voice and web interfaces with Rails an...
respond_to :voice - the convergence of voice and web interfaces with Rails an...
 
Tel Net 1
Tel Net 1Tel Net 1
Tel Net 1
 
Rhonda Layfield Sniffing Your Network With Netmon 3.3
Rhonda Layfield   Sniffing Your Network With Netmon 3.3Rhonda Layfield   Sniffing Your Network With Netmon 3.3
Rhonda Layfield Sniffing Your Network With Netmon 3.3
 
Talking To Rails
Talking To RailsTalking To Rails
Talking To Rails
 
Voice Enabling your Applications with Twilio
Voice Enabling your Applications with TwilioVoice Enabling your Applications with Twilio
Voice Enabling your Applications with Twilio
 
Telisca products presentation
Telisca products presentationTelisca products presentation
Telisca products presentation
 
Karel bro new
Karel bro newKarel bro new
Karel bro new
 

Más de Mahesh Paolini-Subramanya

Más de Mahesh Paolini-Subramanya (9)

Drinking From The Firehose - The Erlang Way
Drinking From The Firehose - The Erlang WayDrinking From The Firehose - The Erlang Way
Drinking From The Firehose - The Erlang Way
 
Syntax - Why so CareMad?
Syntax - Why so CareMad?Syntax - Why so CareMad?
Syntax - Why so CareMad?
 
Erlang - Because S**t Happens
Erlang - Because S**t HappensErlang - Because S**t Happens
Erlang - Because S**t Happens
 
Erlang FTW!
Erlang FTW!Erlang FTW!
Erlang FTW!
 
Active Queue Management (for Cloud Services)
Active Queue Management (for Cloud Services)Active Queue Management (for Cloud Services)
Active Queue Management (for Cloud Services)
 
NoSQL learnings from the world of Telco
NoSQL learnings from the world of TelcoNoSQL learnings from the world of Telco
NoSQL learnings from the world of Telco
 
Emerging Trends in Communications
Emerging Trends in CommunicationsEmerging Trends in Communications
Emerging Trends in Communications
 
Finite State Machines - Why the fear?
Finite State Machines - Why the fear?Finite State Machines - Why the fear?
Finite State Machines - Why the fear?
 
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
 

Último

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Último (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

FSMs can help organize complex systems

  • 1. FSMs can be Useful Mahesh Paolini-Subramanya CTO, Vocalocity
  • 2. Hosted PBX Taxonomy ► Named Box • Pure hosting • Clustering/Virtual or Big Honking Box • Load/Scaling issues same as ‘one box’ application ► High Level Application Server • Calls generate high level events • Events interact with application server • Predefined spaces/features • Load/Scaling issues same as ‘one box’ application © Vocalocity 2011. Confidential. 2
  • 3. Hosted PBX Taxonomy ► Granular Application Server • Calls generate granular events • Events interact with application server • Easy to create simple applications  Point features: FML, notifications, transcriptions  Call Switch: Routing, voicemail ► Difficult to build complex applications • Updates and deployments • Testing and Debugging • Concurrency • Scaling and Partitioning • Persistence © Vocalocity 2011. Confidential. 3
  • 4. Cloud Computing ►Wikipedia “a style of computing in which typically real-time scalable resources are provided as a service over the Internet to end- users who need not have knowledge of, expertise in, or control over the technology infrastructure” ►Vocalocity • Horizontal Scaling and/or Clustering • Abstraction of application layer • SOA and/or fine-grained API • Redundancy irrelevance © Vocalocity 2011. Confidential. 4
  • 5. Cloud Computing ► Telephony makes it harder • Simple and distributed actions? Done • High Level Applications? Done • Both at the same time? Well, Maybe Not… ► Vocalocity • Distributed application infrastructure (erlang) • Distributed persistence infrastructure • Distributed telephony infrastructure  Simple, atomic events!! © Vocalocity 2011. Confidential. 5
  • 6. Why erlang? ► Testing ► Code deployment ► Concurrency ► Complexity ► Predictable Performance ► Fault tolerance ► Error Containment ► Testing ► Code Deployment © Vocalocity 2011. Confidential. 6
  • 7. Clean APIs ► Only interface into System ► Handlersfor different modalities System • HTTP for Public • STOMP for Private Business Rules STOMP HTTP Event Workflow Vocalocity Call Server © Vocalocity 2011. Confidential. 7
  • 8. Clean APIs ► Administrative • CRUD – Users, Depts, … System • Regulatory – E911, TRS, … • OSS ► Informative Business Rules • Notifications • High Level Events • Messages – History, Reporting STOMP HTTP Event ► Interactive • Communications – Calls, Contacts, …Workflow Vocalocity Call Server • Profile – Blacklist, FML, Media, … • Messages – History, Reporting, … © Vocalocity 2011. Confidential. 8
  • 9. Processes ► Allrequest goes to any available application node as a message ► Nodes have processes • Users • Clients • Calls • Faxes • Phones • Load Balancers ► Processes do things © Vocalocity 2011. Confidential. 9
  • 10. Event Handlers ► Theyget information to endpoints • GUI • API callbacks © Vocalocity 2011. Confidential. 10
  • 11. Event Handlers ► The perform asynchronous application activities • Logging • notifications ► They bridge between the FSMs and the calls • Check blacklist • Play error message • Hangup • Go offhook © Vocalocity 2011. Confidential. 11
  • 12. Calling ► Calls are tracked as Processes ► Event interface for requests and responses (XML) ► fine-grained events that can • make/break calls • record audio and dtmf System System System • play audio and dtmf • file operations erlang / xml / events ► Call Process tracks • Channel parameters Call Server Call Server Call Server • FSM name and state © Vocalocity 2011. Confidential. 12
  • 13. Finite State Machines ► System has a limited set of states ► Statestransition based on conditions ► Transitions are atomic ► Events and actions at entry and exit A Dog A Cat * Diagrams from http://learnyousomeerlang.com/finite-state-machines © Vocalocity 2011. Confidential. 13
  • 14. Finite State Machines ► Many many many FSMs (25 at last count) init • Auto Attendant • FML Check node • Voicemail • Conference Check Blacklist Move node • Fax • C2C • Video Cancelled Blacklisted Next Endpoint Collections Unknown • Directory • Search • Announcements Auto Attendant FML Voicemail Conference Fax • Paging © Vocalocity 2011. Confidential. 14
  • 15. Finite State Machines ► Templates are your friend init init ► So are BIG sheets of paper. Return Setup Call AutoAttendant ► More is merrier ► But keep them simple, OK? Hangup Get Caller Name Play Transfer ► Mixing States is BAD Message ► As is my haiku talent. Got Caller Name Dial © Vocalocity 2011. Confidential. 15
  • 16. FSMs can be Useful – See? Mahesh Paolini-Subramanya CTO, Vocalocity

Notas del editor

  1. Three types of PBXs – Named Box, High Level App Server, and Granular App ServerNamed Box – point at a box, and say “Yup, that’s my server”High Level App Server – Broadsoft and/or FS/Asterisk using dialplans.
  2. Point features are really easy to do. They are atomic, and don’t interact with each otherWhen you start talking about multiple entities interacting, users xferring amongst each other, state across a distributed environment, life gets a lot more difficult
  3. Explain supervisor trees - restart processes - dynamically move them around - location invariance - resilience
  4. We use event_handlers to get information to endpointsGUI – anytime something interesting ahppens, we ship events off to the GUI (ringing, answered, presenceApplication – The State servers (where processes live) ship events back and forth so that processes can keep up to dateTelephony – Call servers use events to know what to do next (based on the FSMs). Pick up the call, play an error message, etc.
  5. We use event_handlers to get information to endpointsGUI – anytime something interesting ahppens, we ship events off to the GUI (ringing, answered, presenceApplication – The State servers (where processes live) ship events back and forth so that processes can keep up to dateTelephony – Call servers use events to know what to do next (based on the FSMs). Pick up the call, play an error message, etc.
  6. We have our own BGP ASWe have DIDs from multiple providers ( limits exposure)
  7. We use Finite State Machines – gen_fsm – to deal with anything and everything involving callsauto_attendant, bridge, check_voicemail, conference, default_phone, fml, dial_out, and havent even gotten to the voicemails and faxes
  8. We use Finite State Machines – gen_fsm – to deal with anything and everything involving callsauto_attendant, bridge, check_voicemail, conference, default_phone, fml, dial_out, and havent even gotten to the voicemails and faxes
  9. We use Finite State Machines – gen_fsm – to deal with anything and everything involving callsauto_attendant, bridge, check_voicemail, conference, default_phone, fml, dial_out, and havent even gotten to the voicemails and faxes