Posts Tagged ‘restful’

Ruby on Rails Example for Tropo Web API without port forwarding!

Friday, February 12th, 2010

Zhao Lu (aka @zlu) has shared a tutorial he has done using Ruby on Rails and our recently released Tropo Web API. The tutorial shows how to add, or build, the Tropo features to your Rails application in 15 minutes using our REST/JSON API. All of this deployed to Heroku for easy application deployment.

Another great thing that Zhao goes on to show, is the ability to use the Tropo Web API behind a firewall where you can not open or forward ports. For this he shows using Tunnlr to establish a remote SSH tunnel. With this tunnel you obtain a port on Tunnlr’s public IP address that forwards via your SSH tunnel to your application inside your firewall. This is great when you are on a company or university network where opening and forwarding a port through a firewall is not an option.

For more details have a look at the README. The full source code example is available on Github @ http://github.com/zlu/tropo-tutorial. A big thanks to Zhao for showing how easy it is to use the Tropo Web API!

Using Persistent Sockets in Tropo.com Applications

Thursday, September 10th, 2009

While Tropo supports RESTful Web Services as a form of moving data to and from the communication cloud, it may not always be fast enough for all applications. There are apps that require the lowest possible latency, for example, when mobile devices become input devices. The unique approach of Tropo, allowing developers to host scripts in our cloud, allows you the ability to write applications that take direct advantage of persistent sockets. This means that you may open the socket once and then stream data to your remote application in realtime without having to establish HTTP connections each time.

I recently created an example of this using Ruby to serve a socket using EventMachine, and then writing a script on Tropo that opens a socket and sends touch-tones (DTMF) down the socket immediately as they come in. Here it is in action:

The code examples may be found here.