SlideShare uma empresa Scribd logo
1 de 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?

Mais conteúdo relacionado

Destaque (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
 

Mais de Mark A

Mais de 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
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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...
 
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
 
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
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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...
 

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