SlideShare una empresa de 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?

Más contenido relacionado

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

Más de Mark A

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

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
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
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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
 

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