SlideShare a Scribd company logo
1 of 24
VoIP in the Cloud




                    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
Issues - Updates and Deployment




                                                    Smooth, Seamless, and
                                                    Efficient




                 © Vocalocity 2011. Confidential.                           6
Issues - Updates and Deployment




                                                    “Hey guys!
                                                    I dropped my
                                                    wrench!”




                 © Vocalocity 2011. Confidential.                  7
Issues – Testing and Debugging




                 © Vocalocity 2011. Confidential.   8
Issues – Testing and Debugging




                 © Vocalocity 2011. Confidential.   9
Issues – Testing and Debugging
 ► Arrrggh

 ► Arrrggh

 ► Arrrggh

 ► Arrrggh

 ► Arrrggh

 ► Arrrggh




                 © Vocalocity 2011. Confidential.   10
Issues – Concurrency
 ► Live   displays of calls
 ► Interactivity   with calls
    •   Transfers
    •   Conferences
    •   Recording
    •   Monitoring
    •   Notifications




                                © Vocalocity 2011. Confidential.   11
Issues - Scaling

   • v
                                                      - VS -




                   © Vocalocity 2011. Confidential.            12
Issues - Persistence
  ► Voicemails    and faxes in the
    file system
  ► Databases
     • Telco =:= Reporting
     • We‟ve become Database
       gurus
  ► Replication   hell




                             © Vocalocity 2011. Confidential.   13
Issues – Testing and Debugging
 ► Arrrggh

 ► Arrrggh

 ► Arrrggh

 ► Arrrggh

 ► Arrrggh

 ► Arrrggh




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

 ► Code    deployment
 ► Concurrency

 ► Complexity

 ► Predictable   Performance
 ► Fault   tolerance
 ► Error   Containment
 ► Testing

 ► Code    Deployment




                               © Vocalocity 2011. Confidential.   15
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.                                      16
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.                                    17
Processes
  ► Allrequest goes to any available
    application node as a message
  ► Nodes     have processes
     •    Basic unit of concurrency
     •    Extremely light weight (~300
          bytes)
     •    Not a kernel process
     •    No shared memory
  ► Processes    are supervised
  ► They    restart themselves
  ► Processes    synchronize activities
  ► They    perform tasks


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




                           © Vocalocity 2011. Confidential.   19
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.   20
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.                                                                         21
Finite State Machines
 ► Many   many many FSMs (25 at last count)
   •   auto_attendant
   •   bridge
   •   check_voicemail
   •   conference
   •   dial_in
   •   dial_in_fml
   •   dial_out
   •   dial_out_fax
   •   dial_out_video
   •   originate
   •   originate_fax_back


                             © Vocalocity 2011. Confidential.   22
Persistence
 ► Schema    free document database
 ► Stores   documents as JSON Key-Value pairs
 ► Incremental  replication
    • Conflict management and resolution
 ► “Lazy”  indexes and views
    • Erlang
 ► BigCouch  = couchdb + Dynamo
    • http://www.allthingsdistributed.com/2008/12/eventually_cons
      istent.html




                               © Vocalocity 2011. Confidential.     23
Calling
 ► Event   interface for requests and responses
 ► erlang,   xml for event processing
 ► fine-grained    events which are merged to
    •   make/break calls
    •   record audio and dtmf                 System                            System             System

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



                                                            Call Server       Call Server         Call Server




                                © Vocalocity 2011. Confidential.                                         24

More Related Content

Viewers also liked

Springbot 2014 - A Year in Review
Springbot 2014 - A Year in ReviewSpringbot 2014 - A Year in Review
Springbot 2014 - A Year in ReviewAinsley Akam
 
Miva Presentation | The 2nd Annual eCommerce Expo South Florida
Miva Presentation | The 2nd Annual eCommerce Expo South FloridaMiva Presentation | The 2nd Annual eCommerce Expo South Florida
Miva Presentation | The 2nd Annual eCommerce Expo South FloridaRand Internet Marketing
 
Are Your Brand's Ads Seen On Facebook? Here's How To Ensure They Will Be.
Are Your Brand's Ads Seen On Facebook? Here's How To Ensure They Will Be.Are Your Brand's Ads Seen On Facebook? Here's How To Ensure They Will Be.
Are Your Brand's Ads Seen On Facebook? Here's How To Ensure They Will Be.Julie Hansen
 
VoIP applications and the Cloud - Where gen_fsm really shines
VoIP applications and the Cloud - Where gen_fsm really shines VoIP applications and the Cloud - Where gen_fsm really shines
VoIP applications and the Cloud - Where gen_fsm really shines Mahesh Paolini-Subramanya
 
Barb Brightpoint All Points
Barb Brightpoint All PointsBarb Brightpoint All Points
Barb Brightpoint All Pointsedenbj
 
Increase your Service Advantage: Innovations in Agent Hiring
Increase your Service Advantage: Innovations in Agent HiringIncrease your Service Advantage: Innovations in Agent Hiring
Increase your Service Advantage: Innovations in Agent HiringHireIQ Solutions, Inc.
 
$10,000 Phantom App & Playbook Contest - F5 and Cisco Meraki
$10,000 Phantom App & Playbook Contest - F5 and Cisco Meraki$10,000 Phantom App & Playbook Contest - F5 and Cisco Meraki
$10,000 Phantom App & Playbook Contest - F5 and Cisco MerakiJoel W. King
 
Predictive Analytics from Emotional Analysis
Predictive Analytics from Emotional Analysis Predictive Analytics from Emotional Analysis
Predictive Analytics from Emotional Analysis Todd Merrill
 
GSN Digital - Leveraging Games as a Powerful Marketing Medium
GSN Digital - Leveraging Games as a Powerful Marketing MediumGSN Digital - Leveraging Games as a Powerful Marketing Medium
GSN Digital - Leveraging Games as a Powerful Marketing MediumFutureM
 
Your business depends your customers - keeping them in the loop
Your business depends your customers - keeping them in the loop Your business depends your customers - keeping them in the loop
Your business depends your customers - keeping them in the loop Mahesh Paolini-Subramanya
 
Crisis Management Through Social Media Monitoriing
Crisis Management Through Social Media MonitoriingCrisis Management Through Social Media Monitoriing
Crisis Management Through Social Media Monitoriingtracx
 
How to Use Cryptography Properly: The Common Mistakes People Make When Using ...
How to Use Cryptography Properly: The Common Mistakes People Make When Using ...How to Use Cryptography Properly: The Common Mistakes People Make When Using ...
How to Use Cryptography Properly: The Common Mistakes People Make When Using ...POSSCON
 
Ecommerce School: Joe Reger, Jr., Springbot
Ecommerce School: Joe Reger, Jr., SpringbotEcommerce School: Joe Reger, Jr., Springbot
Ecommerce School: Joe Reger, Jr., SpringbotHypepotamus
 

Viewers also liked (17)

Springbot 2014 - A Year in Review
Springbot 2014 - A Year in ReviewSpringbot 2014 - A Year in Review
Springbot 2014 - A Year in Review
 
Miva Presentation | The 2nd Annual eCommerce Expo South Florida
Miva Presentation | The 2nd Annual eCommerce Expo South FloridaMiva Presentation | The 2nd Annual eCommerce Expo South Florida
Miva Presentation | The 2nd Annual eCommerce Expo South Florida
 
Ari
AriAri
Ari
 
Are Your Brand's Ads Seen On Facebook? Here's How To Ensure They Will Be.
Are Your Brand's Ads Seen On Facebook? Here's How To Ensure They Will Be.Are Your Brand's Ads Seen On Facebook? Here's How To Ensure They Will Be.
Are Your Brand's Ads Seen On Facebook? Here's How To Ensure They Will Be.
 
VoIP applications and the Cloud - Where gen_fsm really shines
VoIP applications and the Cloud - Where gen_fsm really shines VoIP applications and the Cloud - Where gen_fsm really shines
VoIP applications and the Cloud - Where gen_fsm really shines
 
Introduction to HireIQ Solutions
Introduction to HireIQ SolutionsIntroduction to HireIQ Solutions
Introduction to HireIQ Solutions
 
Barb Brightpoint All Points
Barb Brightpoint All PointsBarb Brightpoint All Points
Barb Brightpoint All Points
 
Increase your Service Advantage: Innovations in Agent Hiring
Increase your Service Advantage: Innovations in Agent HiringIncrease your Service Advantage: Innovations in Agent Hiring
Increase your Service Advantage: Innovations in Agent Hiring
 
$10,000 Phantom App & Playbook Contest - F5 and Cisco Meraki
$10,000 Phantom App & Playbook Contest - F5 and Cisco Meraki$10,000 Phantom App & Playbook Contest - F5 and Cisco Meraki
$10,000 Phantom App & Playbook Contest - F5 and Cisco Meraki
 
Predictive Analytics from Emotional Analysis
Predictive Analytics from Emotional Analysis Predictive Analytics from Emotional Analysis
Predictive Analytics from Emotional Analysis
 
GSN Digital - Leveraging Games as a Powerful Marketing Medium
GSN Digital - Leveraging Games as a Powerful Marketing MediumGSN Digital - Leveraging Games as a Powerful Marketing Medium
GSN Digital - Leveraging Games as a Powerful Marketing Medium
 
Staq (short)
Staq (short)Staq (short)
Staq (short)
 
Your business depends your customers - keeping them in the loop
Your business depends your customers - keeping them in the loop Your business depends your customers - keeping them in the loop
Your business depends your customers - keeping them in the loop
 
Crisis Management Through Social Media Monitoriing
Crisis Management Through Social Media MonitoriingCrisis Management Through Social Media Monitoriing
Crisis Management Through Social Media Monitoriing
 
Trade desk
Trade deskTrade desk
Trade desk
 
How to Use Cryptography Properly: The Common Mistakes People Make When Using ...
How to Use Cryptography Properly: The Common Mistakes People Make When Using ...How to Use Cryptography Properly: The Common Mistakes People Make When Using ...
How to Use Cryptography Properly: The Common Mistakes People Make When Using ...
 
Ecommerce School: Joe Reger, Jr., Springbot
Ecommerce School: Joe Reger, Jr., SpringbotEcommerce School: Joe Reger, Jr., Springbot
Ecommerce School: Joe Reger, Jr., Springbot
 

More from Mahesh Paolini-Subramanya

More from 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)
 

Recently uploaded

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Recently uploaded (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

VoIP in the cloud - scaling massively through the magic of erlang

  • 1. VoIP in the Cloud 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. Issues - Updates and Deployment Smooth, Seamless, and Efficient © Vocalocity 2011. Confidential. 6
  • 7. Issues - Updates and Deployment “Hey guys! I dropped my wrench!” © Vocalocity 2011. Confidential. 7
  • 8. Issues – Testing and Debugging © Vocalocity 2011. Confidential. 8
  • 9. Issues – Testing and Debugging © Vocalocity 2011. Confidential. 9
  • 10. Issues – Testing and Debugging ► Arrrggh ► Arrrggh ► Arrrggh ► Arrrggh ► Arrrggh ► Arrrggh © Vocalocity 2011. Confidential. 10
  • 11. Issues – Concurrency ► Live displays of calls ► Interactivity with calls • Transfers • Conferences • Recording • Monitoring • Notifications © Vocalocity 2011. Confidential. 11
  • 12. Issues - Scaling • v - VS - © Vocalocity 2011. Confidential. 12
  • 13. Issues - Persistence ► Voicemails and faxes in the file system ► Databases • Telco =:= Reporting • We‟ve become Database gurus ► Replication hell © Vocalocity 2011. Confidential. 13
  • 14. Issues – Testing and Debugging ► Arrrggh ► Arrrggh ► Arrrggh ► Arrrggh ► Arrrggh ► Arrrggh © Vocalocity 2011. Confidential. 14
  • 15. Why erlang? ► Testing ► Code deployment ► Concurrency ► Complexity ► Predictable Performance ► Fault tolerance ► Error Containment ► Testing ► Code Deployment © Vocalocity 2011. Confidential. 15
  • 16. 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. 16
  • 17. 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. 17
  • 18. Processes ► Allrequest goes to any available application node as a message ► Nodes have processes • Basic unit of concurrency • Extremely light weight (~300 bytes) • Not a kernel process • No shared memory ► Processes are supervised ► They restart themselves ► Processes synchronize activities ► They perform tasks © Vocalocity 2011. Confidential. 18
  • 19. Event Handlers ► Theyget information to endpoints • GUI • API callbacks © Vocalocity 2011. Confidential. 19
  • 20. 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. 20
  • 21. 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. 21
  • 22. Finite State Machines ► Many many many FSMs (25 at last count) • auto_attendant • bridge • check_voicemail • conference • dial_in • dial_in_fml • dial_out • dial_out_fax • dial_out_video • originate • originate_fax_back © Vocalocity 2011. Confidential. 22
  • 23. Persistence ► Schema free document database ► Stores documents as JSON Key-Value pairs ► Incremental replication • Conflict management and resolution ► “Lazy” indexes and views • Erlang ► BigCouch = couchdb + Dynamo • http://www.allthingsdistributed.com/2008/12/eventually_cons istent.html © Vocalocity 2011. Confidential. 23
  • 24. Calling ► Event interface for requests and responses ► erlang, xml for event processing ► fine-grained events which are merged to • make/break calls • record audio and dtmf System System System • play audio and dtmf • file operations erlang / xml / events Call Server Call Server Call Server © Vocalocity 2011. Confidential. 24

Editor's Notes

  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. Really, this is worth repeating. We’ve reached the state where we don’t do anything. Anything. *Anything*. Because something *will* break.
  4. On the other hand, lets not talk about concurrency
  5. Who knew that we’d end up being postgres gurusDo you know how many VMs and faxes we get per day? They have to go somewhereTelco is a reporting business.
  6. Really, this is worth repeating. We’ve reached the state where we don’t do anything. Anything. *Anything*. Because something *will* break.
  7. Explain supervisor trees - restart processes - dynamically move them around - location invariance - resilience
  8. 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.
  9. 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.
  10. 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
  11. 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
  12. 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
  13. We have our own BGP ASWe have DIDs from multiple providers ( limits exposure)