SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Reinventing the
   Dialplan

            Astricon Oct 14, 2009
                        Copyright 2009 Twilio
-Call
               ing
             c    n


                             to
                                                 X




               re
                                              P B




                      Click-
                   fe
                                        n y




                 on
                 R
                                   pa



                      C
               IV              m
                            Co

Voice Applications



             Asterisk
ci


                           -
                   n


                             to
                                                X




                 re
                                             P B




                      Click-
              fe
                                       n y




                      n
                                   a




                    o
                                  p
                 R




                      C
               IV              m
                            Co

Voice Applications


           The Cloud

             Asterisk
Voice Applications




     Voice Guru
Maintained by your Voice Guru
     Asterisk

                               Native scripting language
      Dialplan               written by your Voice Guru
     Application




                 Asterisk Dialplan
Language: Native Scripting       Where: Local on call router
IP
 Asterisk                      AGI/AMI


                               Java/C/Ruby...
                                Application




            Asterisk AGI/AMI
Language: AGI/AMI API +    Where: Remote via IP
  Java/C/Ruby/Python/Etc
Maintained by your Voice Guru
                      IP
 Asterisk                      AGI/AMI


                               Java/C/Ruby...
                                Application




            Asterisk AGI/AMI
Language: AGI/AMI API +    Where: Remote via IP
  Java/C/Ruby/Python/Etc
Maintained by your Programmer
                         IP
    Asterisk                        AGI/AMI


                                    Java/C/Ruby...
                                     Application




               Asterisk AGI/AMI
   Language: AGI/AMI API +      Where: Remote via IP
     Java/C/Ruby/Python/Etc
Enter the Programmer

             • Commodity skillset
             • Easy to hire
             • Cheap




Programmer
Better but...
                              IP
      Asterisk
 Large API with "lite" documentation.       AGI/AMI
The distinction between AGI/AMI can
             be confusing.

Tight integration between call router
    and voice app: direct socket            Java/C/Ruby...
             connections                     Application
       SCALING=HARD



                  Asterisk AGI/AMI
    Language: AGI/AMI API +             Where: Remote via IP
      Java/C/Ruby/Python/Etc
IP
Asterisk        AGI/AMI


Lets mull this over...
IP
Asterisk        AGI/AMI


 Why do I need a
  Voice Guru?
IP
Asterisk                AGI/AMI
Expert




         What if I outsourced
          my voice guru?
IP
                   AGI/AMI
Asterisk in
the Cloud
IP
                        ?????
Asterisk in
the Cloud



What is the ideal voice app API?
Web developers are (one of)
the largest engineering workforces
           on the planet




 • HTTP
 • Request/Response
 • XML/JSON
 • WAV/MP3
Magic
                       Ruby
                       Java
Asterisk in
                       PHP
the Cloud
                      Python
                         .
                         .
                         .
Create new messaging protocol
and new API for each language?
HTTP/XML
                          Ruby
                REST
                          Java
Asterisk in
                          PHP
the Cloud
                         Python
                           .
                           .
                           .
      Normal Web Server
       HTTP/XML/REST
HTTP/XML
                     Ruby
           REST
                     Java
                     PHP
                    Python
Twilio                 .
                       .
                       .
   Normal Web Server
    HTTP/XML/REST
HTTP/XML
                 REST     Google App Engine



                           Microsoft Azure


   Twilio                      Heroku



  Leverage existing cloud hosting
Scale: 1-10,000’s of simultaneous calls
Request/Response
 1    Procedural programming

digits = GetKeypadPresses();
switch(digits) {
  case 1:
    blah();
    break;
}
Request/Response
 1    Procedural programming

digits = GetKeypadPresses();
switch(digits) {
  case 1:
    blah();
    break;
}

     Not how HTML works!
Request/Response
 2    Web programming

<form action=”digits.php”>
  <input type=”text” name=”digits” />
  <input type="submit" value="Go"/>
</form>
Request/Response
 2    Web programming

<form action=”digits.php”>
  <input type=”text” name=”digits” />
  <input type="submit" value="Go"/>
</form>

     Submit back to digits.php
             on input
Request/Response
3    Web-like voice programming

<Gather numDigits=”5”
  action=”digits.php”/>

    Apply the same model for
       voice applications
Request/Response
3    Web-like voice programming

<Gather numDigits=”5”
  action=”digits.php”/>

    Submit back to digits.php
            on input
Request/Response
  4      Language-specific libraries
$r = new Response();
$r->append(new Say("Hello World");              PHP
$r->Respond();

r = twilio.Response()
r.append(twilio.Say("Hello World"))             Python
print r

@r = Twilio::Response.new
@r.append(Twilio::Say.new "Hello World")        Ruby
puts @r.respond

TwiMLResponse response = new TwiMLResponse();
Say say = new Say("Hello World");               Java
System.out.println(response.toXML());
⤸
⤸
⤸
            HTTP 307         HTTP 307

u.com             b.com            c.com
PBX Application   Authorization        CRM
                     Service        Integration

       Response Chaining
Stateless ‘Twimlet’ URLs + REST
curl -fSs -u "$ACCOUNTSID:
$AUTHTOKEN" -d "Caller=$CALLERID" -d
"Called=$PHONE" -d "Url=http://
twimlets.com/message?Message=$MSG"
"https://api.twilio.com/2008-08-01/
Accounts/$ACCOUNTSID/Calls


     Stateless ‘Twimlet’ URLs + REST
Put the Voice Guru in the Cloud
1   Asterisk in the cloud

    Adopt a standards-based web API
2   HTTP/XML/REST

    Leverage existing web infrastructure
3   Apache/Tomcat/AWS/AppEngine/Azure/Heroku

    Let the cloud handling scaling
4   1-10,000’s simultaneous calls

    Don’t break request/response model
5   Build libraries for PHP/Python/Java/C#/Ruby etc.
ci


                           -
                   n


                             to
                                                X




                 re
                                             P B




                      Click-
              fe
                                       n y




                      n
                                   a




                    o
                                  p
                 R




                      C
               IV              m
                            Co

Voice Applications


           The Cloud

             Asterisk
Simplifying Telecom
Simple • Powerful • Pay-As-You-Go

    Evan Cooke
 Co-Founder & CTO

     twitter: @twilio
     phy@twilio.com
  http://www.twilio.com

Contenu connexe

Tendances

Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub ActionsKnoldus Inc.
 
Role Based Access Controls (RBAC) for SSH and Kubernetes Access with Teleport
Role Based Access Controls (RBAC) for SSH and Kubernetes Access with TeleportRole Based Access Controls (RBAC) for SSH and Kubernetes Access with Teleport
Role Based Access Controls (RBAC) for SSH and Kubernetes Access with TeleportDevOps.com
 
Keeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp VaultKeeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp VaultMitchell Pronschinske
 
ProxySQL on Kubernetes
ProxySQL on KubernetesProxySQL on Kubernetes
ProxySQL on KubernetesRené Cannaò
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub ActionsBo-Yi Wu
 
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...Luis Lopez
 
Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Gelis Wu
 
Designing High Availability for HashiCorp Vault in AWS
Designing High Availability for HashiCorp Vault in AWSDesigning High Availability for HashiCorp Vault in AWS
Designing High Availability for HashiCorp Vault in AWS☁ Bryan Krausen
 
Securing Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp VaultSecuring Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp VaultBram Vogelaar
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkTimothy Spann
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)충섭 김
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...Yevgeniy Brikman
 
Adapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at GoogleAdapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at GoogleApigee | Google Cloud
 
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkSpring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkRed Hat Developers
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an OpportunityKCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an OpportunityAndreas Grabner
 
Microservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and JenkinsMicroservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and JenkinsRed Hat Developers
 
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...Edureka!
 

Tendances (20)

Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Role Based Access Controls (RBAC) for SSH and Kubernetes Access with Teleport
Role Based Access Controls (RBAC) for SSH and Kubernetes Access with TeleportRole Based Access Controls (RBAC) for SSH and Kubernetes Access with Teleport
Role Based Access Controls (RBAC) for SSH and Kubernetes Access with Teleport
 
Keeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp VaultKeeping a Secret with HashiCorp Vault
Keeping a Secret with HashiCorp Vault
 
ProxySQL on Kubernetes
ProxySQL on KubernetesProxySQL on Kubernetes
ProxySQL on Kubernetes
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
 
Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界
 
Designing High Availability for HashiCorp Vault in AWS
Designing High Availability for HashiCorp Vault in AWSDesigning High Availability for HashiCorp Vault in AWS
Designing High Availability for HashiCorp Vault in AWS
 
Securing Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp VaultSecuring Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp Vault
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
The Elastic ELK Stack
The Elastic ELK StackThe Elastic ELK Stack
The Elastic ELK Stack
 
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
 
Adapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at GoogleAdapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at Google
 
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkSpring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an OpportunityKCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
 
Microservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and JenkinsMicroservices with Docker, Kubernetes, and Jenkins
Microservices with Docker, Kubernetes, and Jenkins
 
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
 

Similaire à "Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk

Stuff we noticed while building "Asterisk in the cloud"
Stuff we noticed while building "Asterisk in the cloud"Stuff we noticed while building "Asterisk in the cloud"
Stuff we noticed while building "Asterisk in the cloud"troyd
 
Adhearsion and Telegraph Framework Presentation
Adhearsion and Telegraph Framework PresentationAdhearsion and Telegraph Framework Presentation
Adhearsion and Telegraph Framework PresentationJustin Grammens
 
Java based Cross-Platform Mobile Development
Java based Cross-Platform Mobile DevelopmentJava based Cross-Platform Mobile Development
Java based Cross-Platform Mobile DevelopmentPeter Friese
 
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
 
Tropo: Telephony in the Cloud
Tropo: Telephony in the CloudTropo: Telephony in the Cloud
Tropo: Telephony in the CloudWes Gamble
 
Twilio Voice Applications with Amazon AWS S3 and EC2
Twilio Voice Applications with Amazon AWS S3 and EC2Twilio Voice Applications with Amazon AWS S3 and EC2
Twilio Voice Applications with Amazon AWS S3 and EC2Twilio Inc
 
Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009eCommConf
 
Tastypie: Easy APIs to Make Your Work Easier
Tastypie: Easy APIs to Make Your Work EasierTastypie: Easy APIs to Make Your Work Easier
Tastypie: Easy APIs to Make Your Work EasierHarvard Web Working Group
 
Twilio at the Google App Engine Meetup 2009-10
Twilio at the Google App Engine Meetup 2009-10Twilio at the Google App Engine Meetup 2009-10
Twilio at the Google App Engine Meetup 2009-10Twilio Inc
 
Serverless survival kit
Serverless survival kitServerless survival kit
Serverless survival kitSteve Houël
 
AWS Customer Presentation - Twilio
AWS Customer Presentation - TwilioAWS Customer Presentation - Twilio
AWS Customer Presentation - TwilioAmazon Web Services
 
iKnow! API - introduction and sample applications
iKnow! API - introduction and sample applicationsiKnow! API - introduction and sample applications
iKnow! API - introduction and sample applicationsNov Matake
 
Running Kubernetes on AWS - AWS Online Tech Talks
Running Kubernetes on AWS - AWS Online Tech TalksRunning Kubernetes on AWS - AWS Online Tech Talks
Running Kubernetes on AWS - AWS Online Tech TalksAmazon Web Services
 
Improve extension API: C++ as better language for extension
Improve extension API: C++ as better language for extensionImprove extension API: C++ as better language for extension
Improve extension API: C++ as better language for extensionKouhei Sutou
 
HC - The Mobile Adventure with Phonegap
HC - The Mobile Adventure with PhonegapHC - The Mobile Adventure with Phonegap
HC - The Mobile Adventure with Phonegaphockeycommunity
 
One App, Multiple Platforms
One App, Multiple PlatformsOne App, Multiple Platforms
One App, Multiple PlatformsMike Hartington
 

Similaire à "Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk (20)

Stuff we noticed while building "Asterisk in the cloud"
Stuff we noticed while building "Asterisk in the cloud"Stuff we noticed while building "Asterisk in the cloud"
Stuff we noticed while building "Asterisk in the cloud"
 
Ruby voip
Ruby voipRuby voip
Ruby voip
 
Adhearsion and Telegraph Framework Presentation
Adhearsion and Telegraph Framework PresentationAdhearsion and Telegraph Framework Presentation
Adhearsion and Telegraph Framework Presentation
 
Java based Cross-Platform Mobile Development
Java based Cross-Platform Mobile DevelopmentJava based Cross-Platform Mobile Development
Java based Cross-Platform Mobile Development
 
Amoocon May 2009 Germany
Amoocon May 2009   GermanyAmoocon May 2009   Germany
Amoocon May 2009 Germany
 
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...
 
The API (R) Evolution
The API (R) EvolutionThe API (R) Evolution
The API (R) Evolution
 
Tropo: Telephony in the Cloud
Tropo: Telephony in the CloudTropo: Telephony in the Cloud
Tropo: Telephony in the Cloud
 
Twilio Voice Applications with Amazon AWS S3 and EC2
Twilio Voice Applications with Amazon AWS S3 and EC2Twilio Voice Applications with Amazon AWS S3 and EC2
Twilio Voice Applications with Amazon AWS S3 and EC2
 
Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009
 
Otto AI
Otto AIOtto AI
Otto AI
 
Tastypie: Easy APIs to Make Your Work Easier
Tastypie: Easy APIs to Make Your Work EasierTastypie: Easy APIs to Make Your Work Easier
Tastypie: Easy APIs to Make Your Work Easier
 
Twilio at the Google App Engine Meetup 2009-10
Twilio at the Google App Engine Meetup 2009-10Twilio at the Google App Engine Meetup 2009-10
Twilio at the Google App Engine Meetup 2009-10
 
Serverless survival kit
Serverless survival kitServerless survival kit
Serverless survival kit
 
AWS Customer Presentation - Twilio
AWS Customer Presentation - TwilioAWS Customer Presentation - Twilio
AWS Customer Presentation - Twilio
 
iKnow! API - introduction and sample applications
iKnow! API - introduction and sample applicationsiKnow! API - introduction and sample applications
iKnow! API - introduction and sample applications
 
Running Kubernetes on AWS - AWS Online Tech Talks
Running Kubernetes on AWS - AWS Online Tech TalksRunning Kubernetes on AWS - AWS Online Tech Talks
Running Kubernetes on AWS - AWS Online Tech Talks
 
Improve extension API: C++ as better language for extension
Improve extension API: C++ as better language for extensionImprove extension API: C++ as better language for extension
Improve extension API: C++ as better language for extension
 
HC - The Mobile Adventure with Phonegap
HC - The Mobile Adventure with PhonegapHC - The Mobile Adventure with Phonegap
HC - The Mobile Adventure with Phonegap
 
One App, Multiple Platforms
One App, Multiple PlatformsOne App, Multiple Platforms
One App, Multiple Platforms
 

Plus de Twilio Inc

Building Blocks for Next Generation Contact Centers
Building Blocks for Next Generation Contact CentersBuilding Blocks for Next Generation Contact Centers
Building Blocks for Next Generation Contact CentersTwilio Inc
 
Create an IVR that Keeps Up with Your Customers
Create an IVR that Keeps Up with Your CustomersCreate an IVR that Keeps Up with Your Customers
Create an IVR that Keeps Up with Your CustomersTwilio Inc
 
Salesforce’s Andy Kung on the Power of CRM Integrations
 Salesforce’s Andy Kung on the Power of CRM Integrations Salesforce’s Andy Kung on the Power of CRM Integrations
Salesforce’s Andy Kung on the Power of CRM IntegrationsTwilio Inc
 
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call Center
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call CenterAll Web Leads’ Lorena Lauv on How to Scale a Virtual Call Center
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call CenterTwilio Inc
 
Why Mobile Messaging Works?
Why Mobile Messaging Works?Why Mobile Messaging Works?
Why Mobile Messaging Works?Twilio Inc
 
Understand How Consumers Use Messaging
Understand How Consumers Use MessagingUnderstand How Consumers Use Messaging
Understand How Consumers Use MessagingTwilio Inc
 
What Can You Do With Twilio
What Can You Do With TwilioWhat Can You Do With Twilio
What Can You Do With TwilioTwilio Inc
 
How To Track Calls Using Twilio?
How To Track Calls Using Twilio?How To Track Calls Using Twilio?
How To Track Calls Using Twilio?Twilio Inc
 
Twilio Contact Center Overview
Twilio Contact Center OverviewTwilio Contact Center Overview
Twilio Contact Center OverviewTwilio Inc
 
Twilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC RebornTwilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC RebornTwilio Inc
 
Twilio Signal 2016 Using Add-ons
Twilio Signal 2016 Using Add-onsTwilio Signal 2016 Using Add-ons
Twilio Signal 2016 Using Add-onsTwilio Inc
 
Twilio Signal 2016 Technical Blogging
Twilio Signal 2016 Technical Blogging Twilio Signal 2016 Technical Blogging
Twilio Signal 2016 Technical Blogging Twilio Inc
 
Twilio Signal 2016 Serverless Contact Center
Twilio Signal 2016 Serverless Contact CenterTwilio Signal 2016 Serverless Contact Center
Twilio Signal 2016 Serverless Contact CenterTwilio Inc
 
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + Twilio
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + TwilioTwilio Signal 2016 Robots-IoT-Watson-Cognitive + Twilio
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + TwilioTwilio Inc
 
Twilio Signal 2016 Leading An Open Hardware Revolution
Twilio Signal 2016 Leading An Open Hardware RevolutionTwilio Signal 2016 Leading An Open Hardware Revolution
Twilio Signal 2016 Leading An Open Hardware RevolutionTwilio Inc
 
Twilio Signal 2016 IoT Using LittleBits and Twilio SMS
Twilio Signal 2016 IoT Using LittleBits and Twilio SMSTwilio Signal 2016 IoT Using LittleBits and Twilio SMS
Twilio Signal 2016 IoT Using LittleBits and Twilio SMSTwilio Inc
 
Twilio Signal 2016 Chaos Patterns
Twilio Signal 2016 Chaos PatternsTwilio Signal 2016 Chaos Patterns
Twilio Signal 2016 Chaos PatternsTwilio Inc
 
Twilio Signal 2016 How to Impact Non-profits
Twilio Signal 2016 How to Impact Non-profits Twilio Signal 2016 How to Impact Non-profits
Twilio Signal 2016 How to Impact Non-profits Twilio Inc
 
Twilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTCTwilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTCTwilio Inc
 
Twilio Signal 2016 Listing Services and Lead Generation
Twilio Signal 2016 Listing Services and Lead GenerationTwilio Signal 2016 Listing Services and Lead Generation
Twilio Signal 2016 Listing Services and Lead GenerationTwilio Inc
 

Plus de Twilio Inc (20)

Building Blocks for Next Generation Contact Centers
Building Blocks for Next Generation Contact CentersBuilding Blocks for Next Generation Contact Centers
Building Blocks for Next Generation Contact Centers
 
Create an IVR that Keeps Up with Your Customers
Create an IVR that Keeps Up with Your CustomersCreate an IVR that Keeps Up with Your Customers
Create an IVR that Keeps Up with Your Customers
 
Salesforce’s Andy Kung on the Power of CRM Integrations
 Salesforce’s Andy Kung on the Power of CRM Integrations Salesforce’s Andy Kung on the Power of CRM Integrations
Salesforce’s Andy Kung on the Power of CRM Integrations
 
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call Center
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call CenterAll Web Leads’ Lorena Lauv on How to Scale a Virtual Call Center
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call Center
 
Why Mobile Messaging Works?
Why Mobile Messaging Works?Why Mobile Messaging Works?
Why Mobile Messaging Works?
 
Understand How Consumers Use Messaging
Understand How Consumers Use MessagingUnderstand How Consumers Use Messaging
Understand How Consumers Use Messaging
 
What Can You Do With Twilio
What Can You Do With TwilioWhat Can You Do With Twilio
What Can You Do With Twilio
 
How To Track Calls Using Twilio?
How To Track Calls Using Twilio?How To Track Calls Using Twilio?
How To Track Calls Using Twilio?
 
Twilio Contact Center Overview
Twilio Contact Center OverviewTwilio Contact Center Overview
Twilio Contact Center Overview
 
Twilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC RebornTwilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC Reborn
 
Twilio Signal 2016 Using Add-ons
Twilio Signal 2016 Using Add-onsTwilio Signal 2016 Using Add-ons
Twilio Signal 2016 Using Add-ons
 
Twilio Signal 2016 Technical Blogging
Twilio Signal 2016 Technical Blogging Twilio Signal 2016 Technical Blogging
Twilio Signal 2016 Technical Blogging
 
Twilio Signal 2016 Serverless Contact Center
Twilio Signal 2016 Serverless Contact CenterTwilio Signal 2016 Serverless Contact Center
Twilio Signal 2016 Serverless Contact Center
 
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + Twilio
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + TwilioTwilio Signal 2016 Robots-IoT-Watson-Cognitive + Twilio
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + Twilio
 
Twilio Signal 2016 Leading An Open Hardware Revolution
Twilio Signal 2016 Leading An Open Hardware RevolutionTwilio Signal 2016 Leading An Open Hardware Revolution
Twilio Signal 2016 Leading An Open Hardware Revolution
 
Twilio Signal 2016 IoT Using LittleBits and Twilio SMS
Twilio Signal 2016 IoT Using LittleBits and Twilio SMSTwilio Signal 2016 IoT Using LittleBits and Twilio SMS
Twilio Signal 2016 IoT Using LittleBits and Twilio SMS
 
Twilio Signal 2016 Chaos Patterns
Twilio Signal 2016 Chaos PatternsTwilio Signal 2016 Chaos Patterns
Twilio Signal 2016 Chaos Patterns
 
Twilio Signal 2016 How to Impact Non-profits
Twilio Signal 2016 How to Impact Non-profits Twilio Signal 2016 How to Impact Non-profits
Twilio Signal 2016 How to Impact Non-profits
 
Twilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTCTwilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTC
 
Twilio Signal 2016 Listing Services and Lead Generation
Twilio Signal 2016 Listing Services and Lead GenerationTwilio Signal 2016 Listing Services and Lead Generation
Twilio Signal 2016 Listing Services and Lead Generation
 

Dernier

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
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
🐬 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
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
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
 

Dernier (20)

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...
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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...
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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...
 
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
 

"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk

  • 1. Reinventing the Dialplan Astricon Oct 14, 2009 Copyright 2009 Twilio
  • 2. -Call ing c n to X re P B Click- fe n y on R pa C IV m Co Voice Applications Asterisk
  • 3. ci - n to X re P B Click- fe n y n a o p R C IV m Co Voice Applications The Cloud Asterisk
  • 4. Voice Applications Voice Guru
  • 5. Maintained by your Voice Guru Asterisk Native scripting language Dialplan written by your Voice Guru Application Asterisk Dialplan Language: Native Scripting Where: Local on call router
  • 6. IP Asterisk AGI/AMI Java/C/Ruby... Application Asterisk AGI/AMI Language: AGI/AMI API + Where: Remote via IP Java/C/Ruby/Python/Etc
  • 7. Maintained by your Voice Guru IP Asterisk AGI/AMI Java/C/Ruby... Application Asterisk AGI/AMI Language: AGI/AMI API + Where: Remote via IP Java/C/Ruby/Python/Etc
  • 8. Maintained by your Programmer IP Asterisk AGI/AMI Java/C/Ruby... Application Asterisk AGI/AMI Language: AGI/AMI API + Where: Remote via IP Java/C/Ruby/Python/Etc
  • 9. Enter the Programmer • Commodity skillset • Easy to hire • Cheap Programmer
  • 10. Better but... IP Asterisk Large API with "lite" documentation. AGI/AMI The distinction between AGI/AMI can be confusing. Tight integration between call router and voice app: direct socket Java/C/Ruby... connections Application SCALING=HARD Asterisk AGI/AMI Language: AGI/AMI API + Where: Remote via IP Java/C/Ruby/Python/Etc
  • 11. IP Asterisk AGI/AMI Lets mull this over...
  • 12. IP Asterisk AGI/AMI Why do I need a Voice Guru?
  • 13. IP Asterisk AGI/AMI Expert What if I outsourced my voice guru?
  • 14. IP AGI/AMI Asterisk in the Cloud
  • 15. IP ????? Asterisk in the Cloud What is the ideal voice app API?
  • 16. Web developers are (one of) the largest engineering workforces on the planet • HTTP • Request/Response • XML/JSON • WAV/MP3
  • 17. Magic Ruby Java Asterisk in PHP the Cloud Python . . . Create new messaging protocol and new API for each language?
  • 18. HTTP/XML Ruby REST Java Asterisk in PHP the Cloud Python . . . Normal Web Server HTTP/XML/REST
  • 19. HTTP/XML Ruby REST Java PHP Python Twilio . . . Normal Web Server HTTP/XML/REST
  • 20. HTTP/XML REST Google App Engine Microsoft Azure Twilio Heroku Leverage existing cloud hosting Scale: 1-10,000’s of simultaneous calls
  • 21. Request/Response 1 Procedural programming digits = GetKeypadPresses(); switch(digits) { case 1: blah(); break; }
  • 22. Request/Response 1 Procedural programming digits = GetKeypadPresses(); switch(digits) { case 1: blah(); break; } Not how HTML works!
  • 23. Request/Response 2 Web programming <form action=”digits.php”> <input type=”text” name=”digits” /> <input type="submit" value="Go"/> </form>
  • 24. Request/Response 2 Web programming <form action=”digits.php”> <input type=”text” name=”digits” /> <input type="submit" value="Go"/> </form> Submit back to digits.php on input
  • 25. Request/Response 3 Web-like voice programming <Gather numDigits=”5” action=”digits.php”/> Apply the same model for voice applications
  • 26. Request/Response 3 Web-like voice programming <Gather numDigits=”5” action=”digits.php”/> Submit back to digits.php on input
  • 27. Request/Response 4 Language-specific libraries $r = new Response(); $r->append(new Say("Hello World"); PHP $r->Respond(); r = twilio.Response() r.append(twilio.Say("Hello World")) Python print r @r = Twilio::Response.new @r.append(Twilio::Say.new "Hello World") Ruby puts @r.respond TwiMLResponse response = new TwiMLResponse(); Say say = new Say("Hello World"); Java System.out.println(response.toXML());
  • 28. ⤸ ⤸ ⤸ HTTP 307 HTTP 307 u.com b.com c.com PBX Application Authorization CRM Service Integration Response Chaining
  • 30. curl -fSs -u "$ACCOUNTSID: $AUTHTOKEN" -d "Caller=$CALLERID" -d "Called=$PHONE" -d "Url=http:// twimlets.com/message?Message=$MSG" "https://api.twilio.com/2008-08-01/ Accounts/$ACCOUNTSID/Calls Stateless ‘Twimlet’ URLs + REST
  • 31. Put the Voice Guru in the Cloud 1 Asterisk in the cloud Adopt a standards-based web API 2 HTTP/XML/REST Leverage existing web infrastructure 3 Apache/Tomcat/AWS/AppEngine/Azure/Heroku Let the cloud handling scaling 4 1-10,000’s simultaneous calls Don’t break request/response model 5 Build libraries for PHP/Python/Java/C#/Ruby etc.
  • 32. ci - n to X re P B Click- fe n y n a o p R C IV m Co Voice Applications The Cloud Asterisk
  • 33. Simplifying Telecom Simple • Powerful • Pay-As-You-Go Evan Cooke Co-Founder & CTO twitter: @twilio phy@twilio.com http://www.twilio.com