Archive for September, 2010

RubyConf 2010

Thursday, September 30th, 2010

Tropo is proud to announce that we are now sponsoring RubyConf 2010 in New Orleans on November 11-13!

This is the place to be for Ruby developers!  Jason Goecke, VP of Innovation for Voxeo Labs, and Chris Matthieu, Director of Business Development, will be on-site attending the conference and helping co-host the Open Government Hack-a-thon along with Sunlight Labs!

We will have Voice, SMS, IM, and Twitter communications experts on-hand as well as open government data API experts on-hand and of course hundreds of Ruby web experts on-hand to help you build and launch your next open government app!

We hope to get local government officials and agencies involved in the hack-a-thon so stay tuned for more details!  There will also be free food and plenty of coffee to keep you caffeinated!  Did we mention prizes?!

Stay tuned…

Announcing the 10.10.10 GWOBorg Hackathon

Thursday, September 30th, 2010

Tropo is joining Heroku and Geeks Without Bounds to sponsor a hackathon on 10.10.10 to build +) GWOBorg applications to help save the world!

GWOBorg Logo+) GWOBorg (Geeks Without Bounds) is an international coalition of passionate problem solvers working together to assist people whose survival is threatened by lack of access to technology or communications due to violence, neglect, or catastrophe.

What is the 10.10.10 Hackathon?

This hackathon unites geeks all over the planet who are interested in creating applications that help people communicate more easily in situations where human lives are threatened.

We’ve identified some excellent free and open-source crisis-management platforms as well as group collaborative platforms (“The Platforms”), and we want to challenge developers to extend these platforms across the globe.  You can set up your own, or use one of the  ”sandbox” versions we will have running.

The Platforms we’re focusing on are:
  • UshahidiUshahidi is a free and open source platform that any person or organization can use to set up their own way to collect and visualize information. The core platform allows for plug-in and extensions so that it can be customized for different locales and needs.
  • Sahana - The Sahana project aims to provide an integrated set of pluggable, Web-based disaster management applications that provide solutions to large-scale humanitarian problems in the relief phase of a disaster.
  • Open AtriumOpen Atrium is an Drupal-based “intranet in a box” that has group spaces to allow different teams to have their own conversations. It comes with six features – a blog, a wiki, a calendar, a to do list, a shoutbox, and a dashboard to manage it all.

How to Participate

All you have to do is sign up to participate and then, during the hackathon, head to your local hacker/maker or co-working space and start coding.  Or create and develop from home –  you can participate anywhere just by signing up and developing.   If you do, you can qualify to win prizes (see below).

The 101010 +) GWOBorg Hackathon officially begins 10am EST on 10.09.10.  In order to qualify for a prize your app must be completed no later than 7:00am EST on 10.10.10.  Winners will be announced during the GWOBorg live broadcast at 1:10pm EST on 10.10.10.

Heroku and Tropo Like Peanut Butter and Chocolate!

Tuesday, September 28th, 2010

Peanut butter and chocolate!

Who doesn’t love peanut butter and chocolate? By themselves, they are equally delicious but together, they are irresistible!

The same can now be said about Heroku and Tropo.  Heroku is the super simple cloud hosting platform for Ruby and Ruby on Rails web applications.  While Tropo is the super simple cloud hosting platform for communications applications including Voice, SMS, IM, and Twitter.

While Tropo works with any web programming language, we have been seeing more and more Ruby applications being developed using Tropo’s WebAPI. Traditionally deploying an application took just about as much time as actually writing the application.  This is no longer true with Heroku’s cloud hosting platform.

Deploying a Ruby application to Heroku is as simple as issuing the following commands from your terminal window:

> heroku create

> git push heroku master

Equally as simple to deploying your application to Heroku is writing your multi-channel communications application using Tropo like this hello world application that can be accessed via the telephone using Voice or SMS or via Instant Message or Twitter:

answer

say “Yes, Tropo is this easy!”

hangup

Now on to the how-to video and Heroku deployment instructions located at http://tropo.heroku.com!

Heroku & TropoTo demonstrate this yummy combination of technologies (Heroku and Tropo), Mark Silverberg (student and talented freelance Tropo developer) built a powerful Voice and IM application using Ruby and the Sinatra Framework and walks us through his 3.5 minute start-to-finish deployment of this application on the Heroku platform!

Mark’s multi-channel application is a volunteer finder service that provides information on volunteer opportunities in your zipcode.  The application can be accessed by calling +99000936 9991456957 via Skype or by IMing volunteer1234@tropo.im.  Mark’s Ruby code can be found on GitHub along with deployment instructions hosted on Heroku at http://warm-spring-38.heroku.com/

Now follow along with this video at http://tropo.heroku.com to learn how to build and deploy your next billion dollar idea using Heroku and Tropo!  Leveraging Heroku and Tropo gives you the best of advancements in cloud technology available today.  Heroku’s cloud technology allows you to scale your web application while Tropo’s cloud technology allows you to scale your communications applications.  These hybrid cloud technologies provide you, the web developer, with peace of mind and assurance that when your new application goes viral, we can easily scale to meet your demand.  Best of all, both cloud platforms offer free entry points to kick our tires and try us out.

So what are you waiting for?  Taste our peanut butter and chocolate now at Heroku and Tropo!

Calling all C# developers! Now YOU can build voice, SMS, IM, Twitter apps with Tropo!

Tuesday, September 28th, 2010

csharp.jpgDo you develop your applications in C#? Are you looking for a way to bring voice, SMS, IM app development into the Windows world? Would you like to write automated agents for Twitter using Microsoft tools?

If so, we’re very pleased to let you know that we now have a C# library for Tropo! You can see the source code and download it for yourself at:

http://github.com/tropo/tropo-webapi-csharp

Developed by Tropo community member Mark Headd, who also developed the PHP library for Tropo, this C# library makes it easy to use the Tropo Web API to add voice, text messaging, IM or Twitter connectivity to your C# apps.

Sample code is available at:

http://github.com/tropo/tropo-webapi-csharp/tree/master/TropoSample/

Mark is continuing to work on the library and welcomes any and all feedback on it. If you are a Github user, feel free to fork the repo and make changes in your copy. You can also raise issues at:

http://github.com/tropo/tropo-webapi-csharp/issues

We’re delighted to make it easier for C# users to more easily build Tropo apps – and stay tuned for some more blog posts and tutorials in the future.

P.S. To use the library, you do need a free Tropo developer account if you don’t already have one. The Tropo Web API documentation also explains how to get started.

Portland OpenGov Hack-a-thon October 3rd!

Monday, September 27th, 2010

Portland OpenGov Hack-a-thon

Do you live in or near Portland, Oregon?  Do you want to help change the world?  If so, Tropo and GeoLoqi are sponsoring a free 8-hour open government hack-a-thon at NedSpace (Old Town, 117 NW 5th between Couch and Davis) on Sunday, October 3rd, from 8:30 AM to 6:30 PM!

Who should attend?  We are looking for anyone passionate about building web or phone applications to help their local government offices and communities.  This includes idea people, web developers, web designers, and data architects.  Fans are also welcome to cheer on your favorite teams or simply be spectators.

We will be serving breakfast and lunch and plenty of coffee!  Prizes will be awarded to the individuals and teams with the coolest ideas and applications (web, phone, SMS, IM, Twitter, etc.)

City officials will also be in attendance to provide inspiration and judging assistance.  Your application may even be featured in a local government promotion!  So stop by and join us for a full day of socializing, hacking, and innovation.  Let change the world together!

For more details and to register for this free event in advance, click here!

Need audio flexibility? Tropo’s got it covered.

Thursday, September 23rd, 2010

When working with voice applications, there’s quite a few situations where the basic, default Speech Synthesis engine doesn’t really do the trick.  Maybe your app communicates with people in the U.K. and they’d rather hear an accent to match; maybe you need to sloooow down the recital of your text to make it easier to understand; maybe you need the speech engine to recite a number as individual digits instead of a whole number (1234 as ‘one, two, three, four‘ instead of ‘one-thousand two-hundred thirty-four‘).

We gotcha covered, and then some.

Check out the Speaking & Playing chapter of the Scripting Guide.  Inside, you’ll find detailed descriptions (and examples) covering the use of alternate voices (including male and female voices for two different English dialects, two different Spanish dialects, French, German, Italian, Polish and Dutch), how to use various SSML elements (like prosody for speed and say-as for text interpretation), and how to use pre-recorded audio instead of speech synthesis all together.

Sort out any cool ways to manipulate your audio output?  Let us know in the comments or send us an e-mail to support@tropo.com!

Customer Testimonials Make Everything Worth It!

Wednesday, September 22nd, 2010

Rolling out the red carpets for our customers

We receive many testimonials from customers who love our cloud communications services.  With each testimonial, you realize just how lucky you are to be part of an organization that is consistently hitting the mark customer by customer and sustaining growth based on our 24/7 customer service, ease-of-use, proven ability to scale, and our breadth of technologies.

Today we received an email from a customer using Tropo’s Voice and SMS API for their mission critical “FlightRecordAir” (as in Black Box) product, an On-Air audio automation system, AirForce(tm).   Tropo forms the notification component of a broadcast transmitter remote control and monitoring program.  The program monitors power output, various temperatures, currents and voltages and if any points fall above or below “warning” or “danger” setpoint levels, the application uses Tropo to begin calling a list of engineers until it reaches someone that can acknowledge the alarm and take action. Similarly, lesser warnings generate SMS text messages that are sent to another call list, and Tropo’s simple scripting structure allowed them to use the same code to send text messages and place voice calls.  This use case demonstrates the power of Tropo’s multi-modal capabilities!

Below is the testimonial quote from the Founder of MacroMedia, Inc., Tim Valley:

“Tropo is the right choice for us because it offers 24/7 support, very high reliability and repeatability, extensive error and status logging, and the implementation was painless and fast.  Security is transparent yet bulletproof.  It only took a couple of hours (from sign-up to fully functional) to build a relatively complex system with branching, parameters, voice recognition, calling and SMS.  Our implementation uses PHP scripts, hosted on our own site, along with a Delphi front-end.  No libraries or binaries needed to be installed on the server.”

Please continue to keep your feedback coming in to us.  We appreciate all the you help us become.

Sincerely, Team Tropo

Two Ruby on Rails courses @ Tropo’s secret lair, be there or be square!

Wednesday, September 22nd, 2010

Voxeo, Tropo’s parent company, gives each team member a yearly education allowance so we can, well so we can learn new things :).  This is among one of the many reasons that Voxeo is one of the 100 best companies to work for! So this year we have organized an on-site training class to teach some of our team members the web’s rising stars when it comes to web development frameworks, Ruby on Rails.  We are having two courses,  Ruby on Rails Intermediate,  and a Ruby on Rails Introductory course.  The class is being thought by Jeff Casimir who runs Jumpstart Labs, a well known figure in the Ruby on Rails community, no expenses spared here!  Jeff will be flying down to Sunny (and Hot) Orlando, FL to teach at Voxeo’s HQ; The first course starts this Sunday (Intermediate Ruby on Rails) and runs through Tuesday.  Then Thursday & Friday we start a two day deep diver for some of our team members who are just looking to learn what all the fuss is about, and get an introduction to Ruby on Rails.  Internally there are 4 team members who are taking the Intermediate Ruby on Rails course, and then we have 5 Voxeon’s taking the Introductory course.  The cool thing here is that we have seats open for both courses, so if you are interested please check out the following links for more info, or feel free to shoot me an email ( jdyer (at) voxeo.com ) and I would be glad to address any questions you might have!

  • Rails Jumpstart Level 2: September 26 – 28 (3 Days!)
  • Rails Jumpstart in Orlando: 9/30-10/1
  • Regards,

    John

    Pick a shirt, get a shirt

    Friday, September 17th, 2010

    With the new Tropo logo, it’s time to get some new shirts to give out at events and stuff. For this shirt we thought it would be fun to hold a Tropo shirt design contest over on 99designs and let you vote for your favorites.

    Screenshot from the Tropo tshirt poll.

    So here’s the deal. First, make sure you’re following us on Twitter. Then, vote for your favorite shirts, and include your twitter handle in the comments on the poll. To thank you for voting, once we get the shirts printed, we’ll DM you on Twitter to get your address and send you one.

    We’ve picked 8 shirts we like out of the forty designs that have been submitted so far. Let us know which ones of those eight you like the best. We’ll probably try this again in a few days with eight more shirts, too.

    How-To: Sending an SMS using WebAPI

    Friday, September 10th, 2010

    Sending an SMS with WebAPI is quite simple, especially since we added the {message:} object to the API. To get started we’ll need you to first create a WebAPI application in your Tropo account. Once you have set this up you will need to assign an SMS enabled phone number to the application, this part is required to send messages from the application. The next step is to make sure you have a messaging token associated with the application, since you will need this to start the session via our API (more on this in a few). Please note there are two Tokens associate with Tropo applications, one for voice calls, and one for messaging, we will want to use the Messaging token for our purposes here, but if you are interested in Voice calls please check out our guides for Scripting and WebAPI.

    I will be using the Ruby WebAPI helper class for most of this example,  however I will post also include the raw JSON in-case you are using other libraries to render it (C#, Python, PHP, ect).

    To start please take a look at the finished product, this is an example in Sinatra, using the Ruby helper class ( Tip: Additional WebAPI Power tips can be found in a previous blog posting here).

    require 'rubygems'
    require 'sinatra'
    require 'tropo-webapi-ruby'
    
    post '/' do
      sessions_object = Tropo::Generator.parse request.env['rack.input'].read
    msg = sessions_object[:session][:parameters][:msg]
    number_to_dial = sessions_object[:session][:parameters][:to]
    
    tropo = Tropo::Generator.new do
                message({
                              :to => 'tel:+1'+number_to_dial,
                              :channel => 'TEXT',
                              :network => 'SMS'}) do
                                 say     :value => "#{msg}"
                              end
                end
    
      tropo.response
    
    end

    If you have the WebAPI class installed then you can start Sinatra by just running sinatra my_app.rb from the command line.  This will start the server, and as long as you have the URL to this machine in the messaging portion of your application then we are all set!  If you are doing development, and are perhaps behind a firewall, you can get setup quickly by using something like tunnlr ( more info here ).

    So lets review…  we have our server running, Tropo application created and pointed to our running server.  We have a messaging number associated with the application, and a messaging token.  I thin we are ready to rock and roll!!

    So to send the message we need to send an HTTP request to Tropo’s sessions API.  So I’ll go ahead and use CURL, which is a command line tool which will among other things send HTTP requests.  If you dont have CURL you can just as easily place the URL in your browser, since this will accomplish the same end result ( Tip: make sure to substitute your number in the to parameter, and use your own messaging token in place of ‘my_messaging_token_id’ )

    curl "http://api.tropo.com/1.0/sessions?action=create&token=my_messaging_token_id&msg=my+message+to+send&to=4075551212"

    Now the magic begins! What will happen is this HTTP request will hit our API servers, and using the messaging tokenID we’ll route that to your applications startURL. This will in turn send a JSON payload to your messaging startURL similar to what you see below. Please pay close attention to the parameters located in this JSON body, this contains the message, the number we are sending a msg to, as well as various other parameters:

    {
        "session": {
            "id": "76b05a0b25127dbf59a4627f6dcd38a7",
            "accountId": "12345",
            "timestamp": "2010-05-05T01:59:19.402Z",
            "userType": "NONE",
            "initialText": null,
            "callId":"092f931c4dddf0124ef426c56d26f98c",
            "parameters": {
                "token": "my_messaging_token_id",
                "action": "create",
    	     "msg":"my message to send",
    	     "to":"4075551212"
            }
        }
    }

    This JSON payload will hit out application and using the parse method of Tropo’s WebAPI helper class we can grab the associated values needed to send out message. This way we can use the same application to send multiple messages, to multiple recipients, with out having to change our code:

      sessions_object = Tropo::Generator.parse request.env['rack.input'].read
        msg = sessions_object[:session][:parameters][:msg]
        number_to_dial = sessions_object[:session][:parameters][:to]
    

    Now we just use the generator method to build the return JSON payload, which we’ll send back to the Tropo session, which will then send the message. You can see the final JSON that our script sends back to Tropo below for your reference:

    {
         "tropo":   [
             {
              "message": {
               "channel": "TEXT",
               "to": "tel:+14075551212",
                "say": [
                     {
                    "value":"my message to send"
                     }
                 ],
                  "network": "SMS"
             }
        }
      ]
    }
    This payload instructs Tropo to send the message to your user, and all of this was started with a simple HTTP request, how cool is that! Now to wrap things up I wanted to touch on a few frequently asked questions we see related to messaging:

  • When you send a message you can set the from callerID, however the number must be associated with the application sending the message.
  • SMS Messages are carrier limited to 10 messages per number a minute, and currently the developer is responsible the throttling their messaging campaigns.
  • Tropo does not block international SMS messages at this time, but delivery to international carriers is not officially supported at this time.
  • I really hope this information is helpful, and if there are any other questions please let us know, as our team is most certainly always standing by to offer any help our developers may require. You can always find us on Freenode irc.freenode.net in #tropo.

    John Dyer

    Tropo Support