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

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

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

    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
    29. Stateless ‘Twimlet’ URLs + REST
    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

    + TwilioTwilio, 1 month ago

    custom

    391 views, 1 favs, 1 embeds more stats

    Call control is being reinvented in several excitin more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 391
      • 319 on SlideShare
      • 72 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 11
    Most viewed embeds
    • 72 views on http://blog.twilio.com

    more

    All embeds
    • 72 views on http://blog.twilio.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories