SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Building & Debugging
     Tools that Communicate

Tim Milliron
Director of Engineering   twilio
@timmilliron
twilio: an API for Phones
Outgoing

using Twilio;
var twilio = new TwilioRestClient("accountSid", "authToken");

var call = twilio.InitiateOutboundCall("+1555456790",
                          "+15551112222",
                          "http://example.com/handleCall");
var msg = twilio.SendSmsMessage("+15551112222",
                          "+15553334444",
                          "Hi BizSpark!");
Incoming

             Call: (415) 723-4BIZ
<Response>
    <Say>Welcome to the biz-spark meetup. Huzzah!</Say>
    <Sms>Thanks for calling the biz-spark meetup line.</Sms>
</Response>
Incoming

             Call: (415) 723-4BIZ
<Response>
    <Say>Welcome to the biz-spark meetup. Huzzah!</Say>
    <Sms>Thanks for calling the biz-spark meetup line.</Sms>
</Response>


     twiml
How it works
How it works




       <Response>
         ...
       </Response>
Debugging the Phone Grid


   “We’re sorry, an
   application error
     occurred.”
It’s just the internet
When in doubt, curl

curl http://demo.twilio.com/tim/bizsparkVoice.xml
When in doubt, curl

curl http://demo.twilio.com/tim/bizsparkVoice.xml



curl –u AC123:abcd
     -d “From:+14155551111”
     -d “To:+14158675309”
     -d “Body:Hi, Jenny”
     https://api.twilio.com/2010-04-01/Accounts/AC123/Calls
Debugging Tools
Debugging Tools
Debugging Tools
Debugging Tools
Eavesdropping on Yourself
  Calling our twilio number
var call = twilio.InitiateOutboundCall(
                       ”+14157234249”,
                       ”+14158675309”,
                       "http://example.com/eavesdrop.xml");




                                (415) 723-4BIZ
                           <Response>
                              <Say>…</Say>
                           </Response>
Eavesdropping on Yourself
  Calling our twilio number
var call = twilio.InitiateOutboundCall(
                       ”+14157234249”,
                       ”+14158675309”,
                       "http://example.com/eavesdrop.xml");

  eavesdrop.xml
       <Response>
           <Dial record=“true”>+14157234249</Dial>
       </Response>


                                (415) 723-4BIZ
                           <Response>
                              <Say>…</Say>
                           </Response>
Entering Data at Yourself
  Calling our twilio number
var call = twilio.InitiateOutboundCall(
                       ”+14157234249”,
                       ”+14158675309”,
                       "http://example.com/senddata.xml");




                                (415) 723-4BIZ
                           <Response>
                              <Gather numDigits=4>…</Gather>
                           </Response>
Entering Data at Yourself
  Calling our twilio number
var call = twilio.InitiateOutboundCall(
                       ”+14157234249”,
                       ”+14158675309”,
                       "http://example.com/senddata.xml");

  senddata.xml
       <Response>
           <Dial sendDigits=“1234”>+14157234249</Dial>
       </Response>


                                (415) 723-4BIZ
                           <Response>
                              <Gather numDigits=4>…</Gather>
                           </Response>
twilio: an API for Phones
Questions?

Weitere ähnliche Inhalte

Andere mochten auch (6)

Ict
IctIct
Ict
 
canço d'un doble amor aii0nso
canço d'un doble amor aii0nsocanço d'un doble amor aii0nso
canço d'un doble amor aii0nso
 
Dialnet el espaciocomoelementofacilitadordelaprendizaje-243780
Dialnet el espaciocomoelementofacilitadordelaprendizaje-243780Dialnet el espaciocomoelementofacilitadordelaprendizaje-243780
Dialnet el espaciocomoelementofacilitadordelaprendizaje-243780
 
5 cosas importantes
5 cosas importantes5 cosas importantes
5 cosas importantes
 
Disney world.803
Disney world.803Disney world.803
Disney world.803
 
Autoridades
AutoridadesAutoridades
Autoridades
 

Mehr von Mark A

Mehr von Mark A (6)

Chef’s Table Lean Startup Conference
Chef’s Table Lean Startup ConferenceChef’s Table Lean Startup Conference
Chef’s Table Lean Startup Conference
 
Introduction to database design with Idef1X entity relationship (ER) diagrams
Introduction to database design with Idef1X entity relationship (ER) diagramsIntroduction to database design with Idef1X entity relationship (ER) diagrams
Introduction to database design with Idef1X entity relationship (ER) diagrams
 
BizSpark SF Lightning Talk: "Design Patterns for Designers" by Stephan Orme
BizSpark SF Lightning Talk: "Design Patterns for Designers" by Stephan OrmeBizSpark SF Lightning Talk: "Design Patterns for Designers" by Stephan Orme
BizSpark SF Lightning Talk: "Design Patterns for Designers" by Stephan Orme
 
BizSpark SF Lightning Talk: "Automated Testing (Unit, Integration and Systems...
BizSpark SF Lightning Talk: "Automated Testing (Unit, Integration and Systems...BizSpark SF Lightning Talk: "Automated Testing (Unit, Integration and Systems...
BizSpark SF Lightning Talk: "Automated Testing (Unit, Integration and Systems...
 
BizSpark SF Lightning Talk: "Refactoring and Test-Driven Development" by Math...
BizSpark SF Lightning Talk: "Refactoring and Test-Driven Development" by Math...BizSpark SF Lightning Talk: "Refactoring and Test-Driven Development" by Math...
BizSpark SF Lightning Talk: "Refactoring and Test-Driven Development" by Math...
 
Introduction to Database Design with Entity Relationship Diagrams
Introduction to Database Design with Entity Relationship DiagramsIntroduction to Database Design with Entity Relationship Diagrams
Introduction to Database Design with Entity Relationship Diagrams
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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 New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

BizSpark SF Lightning Talk: "Phone and SMS Gateways" by Tim Milliron

  • 1. Building & Debugging Tools that Communicate Tim Milliron Director of Engineering twilio @timmilliron
  • 2. twilio: an API for Phones
  • 3. Outgoing using Twilio; var twilio = new TwilioRestClient("accountSid", "authToken"); var call = twilio.InitiateOutboundCall("+1555456790", "+15551112222", "http://example.com/handleCall"); var msg = twilio.SendSmsMessage("+15551112222", "+15553334444", "Hi BizSpark!");
  • 4. Incoming Call: (415) 723-4BIZ <Response> <Say>Welcome to the biz-spark meetup. Huzzah!</Say> <Sms>Thanks for calling the biz-spark meetup line.</Sms> </Response>
  • 5. Incoming Call: (415) 723-4BIZ <Response> <Say>Welcome to the biz-spark meetup. Huzzah!</Say> <Sms>Thanks for calling the biz-spark meetup line.</Sms> </Response> twiml
  • 7. How it works <Response> ... </Response>
  • 8. Debugging the Phone Grid “We’re sorry, an application error occurred.”
  • 9. It’s just the internet
  • 10. When in doubt, curl curl http://demo.twilio.com/tim/bizsparkVoice.xml
  • 11. When in doubt, curl curl http://demo.twilio.com/tim/bizsparkVoice.xml curl –u AC123:abcd -d “From:+14155551111” -d “To:+14158675309” -d “Body:Hi, Jenny” https://api.twilio.com/2010-04-01/Accounts/AC123/Calls
  • 16. Eavesdropping on Yourself Calling our twilio number var call = twilio.InitiateOutboundCall( ”+14157234249”, ”+14158675309”, "http://example.com/eavesdrop.xml"); (415) 723-4BIZ <Response> <Say>…</Say> </Response>
  • 17. Eavesdropping on Yourself Calling our twilio number var call = twilio.InitiateOutboundCall( ”+14157234249”, ”+14158675309”, "http://example.com/eavesdrop.xml"); eavesdrop.xml <Response> <Dial record=“true”>+14157234249</Dial> </Response> (415) 723-4BIZ <Response> <Say>…</Say> </Response>
  • 18. Entering Data at Yourself Calling our twilio number var call = twilio.InitiateOutboundCall( ”+14157234249”, ”+14158675309”, "http://example.com/senddata.xml"); (415) 723-4BIZ <Response> <Gather numDigits=4>…</Gather> </Response>
  • 19. Entering Data at Yourself Calling our twilio number var call = twilio.InitiateOutboundCall( ”+14157234249”, ”+14158675309”, "http://example.com/senddata.xml"); senddata.xml <Response> <Dial sendDigits=“1234”>+14157234249</Dial> </Response> (415) 723-4BIZ <Response> <Gather numDigits=4>…</Gather> </Response>
  • 20. twilio: an API for Phones