4. ABOUT THE API TOOLS TEAM
CARTER RABASA | @CRTR0
PROTOTYPE TEST PROD MONITORBUILD DEBUG
API EXPLORER TWIML BINS DEBUGGER
REQ INSP
INSPECTOR
TRIGGERS
5. Overview Twilio’s Platform Architecture
Common REST API Issues
Common SDK Issues
Common Webhook Issues
CARTER RABASA | @CRTR0
AGENDA
6. CARTER RABASA | @CRTR0
OVERVIEW OF TWILIO’S ARCHITECTURE
TELECOM
SDK
HANDSET
SERVER
SIP/SMPP
HTTP
WEB SOCKET
WEB RTC
VOICE &
SMS INTER
7. CARTER RABASA | @CRTR0
THE INTERNET
DNS
NETWORK
CACHING
PROXIES
TIMEOUTS
URLS
SECURITY
SUPPORT
8. CARTER RABASA | @CRTR0
DEBUGGING
Software is easy to debug if you treat it like anything else.
If you have what you think is a bad light bulb, but when you
put a new bulb in the socket it doesn’t work, you’d
conclude the problem was in the socket, not the bulb.”
DEBUGGING CAN BE EASY“
- Dave Winer
10. CARTER RABASA | @CRTR0
FLOW OF REST API REQUESTS
INTERNET
SERVER
M
AKES
HTTP
REQ
UEST
TO
SEND
AN
SM
S
TW
ILIO
AUTHENTICATES
THE
REQ
UEST
TW
ILIO
VALIDATES
THE
PARAM
ETERS
PASSED
TW
ILIO
PASSES
M
ESSAGE
TO
SM
S
CARRIER
CARRIER
DELIVERS
SM
S
TO
END
USER’S
HANDSET
11. CARTER RABASA | @CRTR0
BREAKDOWN OF REST API ERRORS
4xx
43%
401
57%
5/1/2016 - 5/15/2016
3B REST API CALLS
12. CARTER RABASA | @CRTR0
LETS DIVE IN
Code: Send an SMS
Check Out the API Explorer
14. CARTER RABASA | @CRTR0
FLOW OF SDK REQUESTS
CLIENT
ASKS
SERVER
FO
R
A
IP
M
ESSAGING
TO
KEN
CLIENT
INITIALIZES
IP
M
ESSAGING
SDK
W
ITH
TO
KEN
INTERNET
CLIENT
INVO
KES
IP
M
ESSAGING
SDK
M
ETHO
D
TW
ILIO
EVALUATES
JW
T
TO
KEN
TW
ILIO
EXECUTES
IP
M
ESSAGE
M
ETHO
D
17. CARTER RABASA | @CRTR0
FLOW OF A WEBHOOK REQUEST
INTERNET
PHO
NE
CALLIS
M
AKE
TO
A
TW
ILIO
NUM
BER
CARRIER
PASSES
THE
PHO
NE
CALLTO
TW
ILIOTW
ILIO
LO
O
KS
UP
THE
VO
ICE
W
EBHO
O
K
URL
SERVER
RESPO
NDS
W
ITH
TW
IM
LINSTRUCTIO
NS
TW
ILIO
M
AKES
AN
HTTP
REQ
UEST
TO
THE
W
EBHO
O
K
URL
TW
ILIO
PARSES
AND
EXECUTES
THE
TW
IM
L
19. CARTER RABASA | @CRTR0
LETS DIVE IN
Code: Receive a Phone Call
Check out: Debugger & TwiML Bins
20. REST API
Catch errors and log them.
CARTER RABASA | @CRTR0
BEST PRACTICES FOR BUILDING
CLIENT SDK
Tokens! Log even more.
WEBHOOKS
Use helper libs and respond as quickly as possible.
Unit test and load test.
Set fallback handlers, consider TwiML Bins if possible.
21. BREAK THE PROBLEM DOWN
Mock out different components until you isolate the problem.
CARTER RABASA | @CRTR0
BEST PRACTICES FOR DEBUGGING
CHECK FOR INTERNET/NETWORK ISSUES
Check your proxies and HTTP logs.
CHECK STATUS PAGE, DEBUGGER AND LOGS
Check status.twilio.com
Check the Debugger
Check Voice and SMS logs