This post walks you through the steps to use Twilio with IBM’s Bluemix to send an SMS and also make a voice call when you click a URL. Twilio, is a cloud communications SaaS organization which allows you to use standard web languages to build voice, SMS and VOIP applications via a Web API.
Twilio provides the ability to build VOIP applications using APIs. Twilio itself resides in the cloud and is always available. It also provides SIP integration which means that it can be integrated with Soft switches. Twilio looks really interesting with its ability to combine the cloud, Web and VOIP, SMS and the like.
The steps given below allow you to use your app to perform 2 things by clicking the app’s URL namely websmstest.bluemix.net
a) Send a SMS to your mobile phone
b) Make a voice call to your mobile phone
The code can be forked from Devops at websmstest
Connecting Twilio with Bluemix
-
Fire-up a Node.js Webstarter application from the Bluemix dashboard. In my case I have named the application websmstest. Once this is up and running
2) Click Add a Service and under ‘Web and Application’ and choose Twilio.
3) Enter a name for the Twilio service. You will also need the Account SID and Authorization token
-
For this go to http://www.twilio.com and sign up
5) Once you have registered, go to your Twilio Dashboard for the Account SID and Auth Token. If the Auth token is encrypted, you can click the ‘lock’ symbol to display the Auth token in plain text.
-
Enter the Account SID and Auth Token in the Twilio service in Bluemix in the right hand panel shown in the picture below
-
To get started click the link websmstest code from Devops.
-
Next click the ‘Edit Code’ button at the top
-
Then click ‘Fork’ and provide a suitable name for your project
-
Check the option for a) Deploy to Bluemix. Uncheck the other options a) Make it private b) Add features for Scrum development
-
On the left hand side navigate to the file you need to edit and make the changes with the Devops GUI editor. You will need to make the following changes
Setup the application
12) You will need to modify the following files
- manifest.yml
- app.js
13) In the manifest.yml make sure you enter the name of your application and the host
applications:
- host: websmstest disk: 1024M name: websmstest command: node app.js path: . domain: mybluemix.net mem: 128M instances: 1
14) Lastly make changes to your app.js.
var app = require('gopher'), twilio = require('twilio'); var config = JSON.parse(process.env.VCAP_SERVICES); var twilioSid, twilioToken; config['user-provided'].forEach(function(service) { if (service.name == 'Twilio') { twilioSid = service.credentials.accountSID; twilioToken = service.credentials.authToken; } }); // URL app.get('/', function(request, response) { var client = new twilio.RestClient(twilioSid, twilioToken); /* To make a voice call to your mobile phone uncomment the next 2 lines */ //client.calls.create({ //url: "http://twimlets.com/message?Message%5B0%5D=Hello", // to: Enter your mobile phone for e.g.98765 43210 // from: Enter the number Twilio alloted to your account // body: The message you would like to send client.sendMessage({ to: '+919876543210', from: '+16305476427', body:'Twilio notification through Bluemix!' }, function(err, message) { response.send('Message sent! ID:'+message.sid); }); });
-
Enter your mobile number in the ‘to:’ line.
-
Enter the number provided to you in your Twilio account see below
-
In the app.js code above in step 14) use the green highlighted line to send a SMS to your mobile phone
-
If you uncomment the blue highlighted lines a voice call will be made to your mobile
-
Finally ‘Deploy’ the application on to Bluemix (more details on Deploying to Bluemix) can be found at Getting started with IBM Bluemix and IBM Devops services using Node.js
Test the application
19) Now click on your application to open the details and then click the link adjacent to the Routes.
20) You should see that an SMS has been sent as shown
21) Your mobile should now display the message that was sent as shown below
22) Uncomment the lines which deal with making voice call and you should receive a voice announcement (see below) (Remember to comment the green highlighted line client.sendMessage!)
23) Check the analytics in your Twilio dashboard
Disclaimer: This article represents the author’s viewpoint only and doesn’t necessarily represent IBM’s positions, strategies or opinions
Find me on Google+