Forked from stevebowman/AWSLambdaSimpleSMS.js
Last active
September 11, 2016 22:58
-
-
Save danehammer/c8c1f18a8837114ae4470a5f795a57a2 to your computer and use it in GitHub Desktop.
AWS Lambda Function to make demo phone call via the Twilio API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
console.log('Loading event'); | |
// Twilio Credentials | |
var accountSid = ''; | |
var authToken = ''; | |
var fromNumber = '+12345678910'; | |
var https = require('https'); | |
var queryString = require('querystring'); | |
// Lambda function: | |
exports.handler = function (event, context) { | |
console.log('Running event'); | |
// Rings the number. | |
// End the lambda function when the send function completes. | |
Call('+12345678910', function (status) { context.done(null, status); }); | |
}; | |
// Makes a call with demo URL using the Twilio API | |
// to: Phone number to send to | |
// completedCallback(status) : Callback with status message when the function completes. | |
function Call(to, completedCallback) { | |
// POST parameters | |
var message = { | |
To: to, | |
From: fromNumber, | |
Url: 'https://demo.twilio.com/welcome/voice/' | |
}; | |
var messageString = queryString.stringify(message); | |
// Options and headers for the HTTP request | |
var options = { | |
host: 'api.twilio.com', | |
port: 443, | |
path: '/2010-04-01/Accounts/' + accountSid + '/Calls.json', | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/x-www-form-urlencoded', | |
'Content-Length': Buffer.byteLength(messageString), | |
'Authorization': 'Basic ' + new Buffer(accountSid + ':' + authToken).toString('base64') | |
} | |
}; | |
// Setup the HTTP request | |
var req = https.request(options, function (res) { | |
res.setEncoding('utf-8'); | |
// Collect response data as it comes back. | |
var responseString = ''; | |
res.on('data', function (data) { | |
responseString += data; | |
}); | |
// Log the responce received from Twilio. | |
// Or could use JSON.parse(responseString) here to get at individual properties. | |
res.on('end', function () { | |
console.log('Twilio Response: ' + responseString); | |
completedCallback('API request sent successfully.'); | |
}); | |
}); | |
// Handler for HTTP request errors. | |
req.on('error', function (e) { | |
console.error('HTTP error: ' + e.message); | |
completedCallback('API request completed with error(s).'); | |
}); | |
// Send the HTTP request to the Twilio API. | |
// Log the message we are sending to Twilio. | |
console.log('Twilio API call: ' + messageString); | |
req.write(messageString); | |
req.end(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment