SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceEvan McGee
 
ACI MultiFabric 소개
ACI MultiFabric 소개ACI MultiFabric 소개
ACI MultiFabric 소개Woo Hyung Choi
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetMichael Lessard
 
Voice over IP (VoIP)
Voice over IP (VoIP)Voice over IP (VoIP)
Voice over IP (VoIP)Peter R. Egli
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouFred Posner
 
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red HatMultiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red HatOpenStack
 
Video Call with WebRTC & Janus Server, Signaling
Video Call with WebRTC & Janus Server, SignalingVideo Call with WebRTC & Janus Server, Signaling
Video Call with WebRTC & Janus Server, SignalingManh Le
 
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 20152600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 20152600Hz
 
Manish (passive optic network)
Manish (passive optic network)Manish (passive optic network)
Manish (passive optic network)Manish Desai
 
Red Hat Enterprise Linux 8
Red Hat Enterprise Linux 8Red Hat Enterprise Linux 8
Red Hat Enterprise Linux 8Kangaroot
 
Alu xgpon solution for pt telkom akses 20130830+
Alu xgpon solution for pt telkom akses 20130830+Alu xgpon solution for pt telkom akses 20130830+
Alu xgpon solution for pt telkom akses 20130830+Wahyu Nasution
 
Introduction to FreeSWITCH
Introduction to FreeSWITCHIntroduction to FreeSWITCH
Introduction to FreeSWITCHChien Cheng Wu
 
Android Security Internals
Android Security InternalsAndroid Security Internals
Android Security InternalsOpersys inc.
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Lorenzo Miniero
 

La actualidad más candente (20)

FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
 
ACI MultiFabric 소개
ACI MultiFabric 소개ACI MultiFabric 소개
ACI MultiFabric 소개
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with Puppet
 
Astricon 10 (October 2013) - SIP over WebSocket on Kamailio
Astricon 10 (October 2013) - SIP over WebSocket on KamailioAstricon 10 (October 2013) - SIP over WebSocket on Kamailio
Astricon 10 (October 2013) - SIP over WebSocket on Kamailio
 
Voice over IP (VoIP)
Voice over IP (VoIP)Voice over IP (VoIP)
Voice over IP (VoIP)
 
Kamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and YouKamailio, FreeSWITCH, and You
Kamailio, FreeSWITCH, and You
 
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red HatMultiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
 
Video Call with WebRTC & Janus Server, Signaling
Video Call with WebRTC & Janus Server, SignalingVideo Call with WebRTC & Janus Server, Signaling
Video Call with WebRTC & Janus Server, Signaling
 
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 20152600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
2600Hz - Tuning Kazoo to 10,000 Handsets - KazooCon 2015
 
Multicast in OpenStack
Multicast in OpenStackMulticast in OpenStack
Multicast in OpenStack
 
Manish (passive optic network)
Manish (passive optic network)Manish (passive optic network)
Manish (passive optic network)
 
Red Hat Enterprise Linux 8
Red Hat Enterprise Linux 8Red Hat Enterprise Linux 8
Red Hat Enterprise Linux 8
 
Alu xgpon solution for pt telkom akses 20130830+
Alu xgpon solution for pt telkom akses 20130830+Alu xgpon solution for pt telkom akses 20130830+
Alu xgpon solution for pt telkom akses 20130830+
 
Cisco CCNP Data Center
Cisco CCNP Data CenterCisco CCNP Data Center
Cisco CCNP Data Center
 
Introduction to FreeSWITCH
Introduction to FreeSWITCHIntroduction to FreeSWITCH
Introduction to FreeSWITCH
 
Android Security Internals
Android Security InternalsAndroid Security Internals
Android Security Internals
 
Podman rootless containers
Podman rootless containersPodman rootless containers
Podman rootless containers
 
Spanning Tree Protocol Cheat Sheet
Spanning Tree Protocol Cheat SheetSpanning Tree Protocol Cheat Sheet
Spanning Tree Protocol Cheat Sheet
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023
 
NFV and OpenStack
NFV and OpenStackNFV and OpenStack
NFV and OpenStack
 

Similar a "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
 

Similar a "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
 

Más 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
 

Más 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
 

Último

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
[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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
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
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Último (20)

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
[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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 

"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