Posts Tagged ‘mashups’

Tropo-Powered Hamradio Callsign Lookup App

Wednesday, April 6th, 2011

Ham radio or amateur radio communications has been around since the early 1900s.  Ham radio technology has kept pace with traditional communications and may even be the only technology that allows people to communicate in natural disasters.  Ham radio operators can communicate over very far distances using HF (high frequencies) as well as through satellites via AMSAT and even using VoIP over the Internet using EchoLink, IRLP, or D-STAR!

There are nearly 750,000 FCC licensed ham radio operators in the United States and over 3M licensed operators worldwide.  Each operator has federally issued callsign that is used to uniquely identify the station operating on the band.

Using Tropo and Callook (Josh Dick’s W1JDD Callsign API), Chris Matthieu (N7ICE) was able quickly develop a speech recognition and text-to-speech based telephony app that is accessible by any of the following channels:

Voice and SMS: 1-480-374-3234

Skype: +990009369991489376

VoIP / SIP: sip:9991489376@sip.tropo.com

Phono: app:9991489376

Upon calling the application, you are asked to spell a callsign using military phonetics:

A – Alfa, B – Bravo, C – Charlie, D – Delta, E – Echo, F – Foxtrot, G – Golf, H – Hotel, I – India, J – Juliet, K – Kilo, L – Lima, M – Mike,  N – November, O – Oscar, P – Papa, Q – Quebec, R – Romeo, S – Sierra, T – Tango, U – Uniform, V – Victor, W – Whiskey, X – X-Ray, Y – Yankee, Z – Zulu

In addition to these commands, you can say restart to start over or stop if your callsign is entered correctly.  Upon saying stop, the Tropo application does a REST-based call to Callook to get a JSON response of the data related to the callsign inquired.  In addition to the communication channels listed above, Chris Matthieu was able to use his handheld hamradio (like the one featured above) to communicate using VHF (very high frequencies) to connect to a repeater nearly 50 miles away on a mountaintop and connect to Tropo via an auto-patch phone line to perform a callsign lookup.  Here is a screencast and source code for the application!

Here is the source code running on Tropo’s Scripting API:

require 'rest_client'
require 'json'

answer
sleep 2
say "welcome to the tropo ham radio call sign lookup application"

callsign = ""
callsigntext = ""

loop do

  result = ask "spell the callsign phonetically. say stop when done or restart to start over", {
      :choices => "alpha, bravo, charlie, delta, echo, foxtrot, golf, hotel, india, juliette, kilo, lima, mike, november, oscar, papa, quebec, romeo, sierra, tango, uniform, victor, whiskey, xray, yankee, zulu, one, two, three, four, five, six, seven, eight, nine, zero, stop, restart"}

  if result.value == "stop"
    break
  elsif result.value == "restart"
    callsign = ""
    callsigntext = ""
  else
    callsigntext = callsigntext + " " + result.value
    say "so far you entered #{callsigntext}"

    letter = case result.value
     when "alpha" then "a"
     when "bravo" then "b"
     when "charlie" then "c"
     when "delta" then "d"
     when "echo" then "e"
     when "foxtrot" then "f"
     when "golf" then "g"
     when "hotel" then "h"
     when "india" then "i"
     when "juliette" then "j"
     when "kilo" then "k"
     when "lima" then "l"
     when "mike" then "m"
     when "november" then "n"
     when "oscar" then "o"
     when "papa" then "p"
     when "quebec" then "q"
     when "romeo" then "r"
     when "sierra" then "s"
     when "tango" then "t"
     when "uniform" then "u"
     when "victor" then "v"
     when "whiskey" then "w"
     when "xray" then "x"
     when "yankee" then "y"
     when "zulu" then "z"
     when "one" then "1"
     when "two" then "2"
     when "three" then "3"
     when "four" then "4"
     when "five" then "5"
     when "six" then "6"
     when "seven" then "7"
     when "eight" then "8"
     when "nine" then "9"
     when "zero" then "0"
    end

    if letter
      callsign = callsign + letter
    end

  end

end

response = RestClient.get 'http://callook.info/' + callsign + '/json'
data = JSON.parse(response)

say callsigntext + "belongs to "
say data["name"]
say "in " + data["address"]["line2"]
say "and holds a " + data["current"]["operClass"] + " license"

Android Dev Camp Roundup

Monday, March 7th, 2011

This past weekend over 400 developers, VCs and Android fans gathered for Android Dev Camp, a not-for-profit event for the Android platform sponsored by PayPalx, Tropo, Google and others, encouraging development using both the native Android SDK and web standards. Participants designed, developed and demoed applications and explored the Android ecosystem as it works with other networks and APIs.

Several of the teams used Tropo’s API for voice, SMS and instant messaging integration. Top prizes went to several Tropo-powered apps including:

  • Family Connect (a social network app for families to share content and info in one shared space)
  • Disaster Radio (provides information such as relief centers location, safe travel routes, visibility into areas affected by disaster)
  • Good Access (lets powerful people be charitable, letting people chat with influencers for donations).

There were so many great uses of the Tropo API, we’re already working with the event organizers to sponsor a similar event in May which focuses on the iPhone operating system.  Keep an eye out on the Tropo blog for more details about future events like this one.

The Magical History Tour – Mashing up Google Latitude, Tropo and historical info

Monday, December 13th, 2010

The avatar you see on the map is  for John Paul Jones,  and it’s parked in front of the John Paul Jones House in Portsmouth, New Hampshire. If Admiral Jones were still alive, he could dial my Moveble History app, and let Wikipedia read to him about the house that bears his name . He could then press any key to hear about the next closest site, from the National Register of Historic Places (NRHP). But since he’s not, we’ll just let him stay parked there to offer a  demo to any passing Internet visitor.

This mashup follows the “moveable” paradigm I first laid out with Moveable Weather, and followed with Moveable Tides. The basic components are Google Latitude, Voxeo Tropo, and a geotagged dataset,  in this case a download of the NRHP, which we pump up by loading into a geohash.

The user interface for this mashup is extremely simple: If the user doesn’t change location between clicks, then each time he presses a key, the proximity search will cast a wider net, to find historic places that are further and further distant. However, if  he does move, then the proximity searches will begin from the new location. Plunk your Google Latitude avatar down in Times Square, or Gettysburg, and starting learning about the history around you.

I invite you to explore my source code, with associated wiki, to learn more. I’d like to give a special shout out to some of my favorite programming tools, including

  1. XSLT for wrestling XML into submission
  2. the geomodel Python module, for performing proximity searches
  3. the BeautifulSoup Python module, for wading into heavily marked-up HTML, to emerge with clean text for Tropo to pronounce

Finally, I leave you with a bit of Python code, which shows how you can get Voxeo to talk about distances in a kindler, gentler fashion, for your users:

    def get_sayable_distance (self, distance):

        miles = (distance/1000) * .62                          
        num_miles = "%.0f" % miles
        num_miles = int (num_miles)
        fraction = miles - num_miles
        if (num_miles == 1):
            mile_sing_plur = "mile"
        else:
            mile_sing_plur = "miles"

        if ((fraction < .15) and (num_miles < 1)):
            feet = miles * 5280
            feet = "%.0f" % feet
            return "about %s feet" % feet
        else:
            if (fraction < .15):
                fraction_part = ''

            if (fraction > .15):
                fraction_part = "a quarter"

            if (fraction > .35):
                fraction_part = "a half"

            if (fraction > .65):
                fraction_part = "three quarters"

            if (fraction > .90):
                fraction_part = ""
                num_miles = num_miles + 1

            if (num_miles):
                if (fraction_part):
                    say_miles = "%s and %s %s" % (num_miles, fraction_part, 
                                                             mile_sing_plur)
                else:
                    say_miles = "%s %s" % (num_miles, mile_sing_plur)
            else:
                if (fraction_part == "a half"):
                    say_miles = "a half a mile"
                elif  (fraction_part == "a quarter"):
                    say_miles = "a quarter of a mile"
                elif  (fraction_part == "three quarters"):
                    say_miles = "three quarters of a mile"
            say_miles = "about %s" % say_miles
        return say_miles

Congrats to Ted Gilchrist on his Tropo / Google Latitude app being “Mashup of the Day”!

Monday, November 15th, 2010

Congrats to Ted Gilchrist for his “Moveable Weather” app being chosen as Programmable Web’s “Mashup of the Day” for today, November 15, 2010. Ted wrote about Moveable Weather at some length on this blog and has more info at his project wiki on Google Code. Ted went on to create a variation on this called Moveable Tides which he also wrote about here. Ted was also the creator of the python library for the Tropo Web API and continues to experiment with various ways to mashup Tropo and location-based services in particular.

Congrats to Ted for being chosen today!

programmableweb.jpg

Checking into Foursquare with your voice

Thursday, May 13th, 2010

Earlier today Jason Dowdell mentioned on Twitter

Wish there was an iPhone app mashing up Foursquare search via IVR so I can log more places during my long runs.

Sounded like a great idea, so I wrote something up.

The code is available in the Tropo Samples project on Github.

This app is built using the WebAPI and the Tropo PHP class, a library for building Tropo apps.

There’s no way to determine your location when you’re calling in. We could always ask you to say your zip code and address, but doing that is beyond the scope of this simple example. Instead, this code checks to see where you last checked in at and lists the top 10 locations nearby, starting with places you commonly check in.

It’s then building a grammar using those locations. To check into Foursquare you provide a venue ID to the Foursquare API, so I need your selection to return an ID. To do this, I’ve used a simple grammar with the venue ID as the value and the venue name and touch tone options as alternate terms.

The grammar ends up looking like this:

868323 (Ancil Hoffman Park, 4), 1394352 (Starbucks, 5), 3484626 (Autumn Woods, 6), 2933197 (AutoMedics, 7), 1009591 (palm street pub and grill, 8), 2194297 (The InLaws, 9), 2316377 (One on One Workout, 0)

This way, if someone says “Ancil Hoffman Park” or presses “4″ the grammar will match and return “868323″, the Foursquare venue ID.

Once I have a venue ID, I check into Foursquare by posting the ID to their checkin API. Foursquare returns the same message you’d see on your mobile app, “Okay, we’ve got you at…” and I play it. If foursquare has a note about the mayor being changed, that gets played back too.

If you want to play with this code in your account, just download it from github and put it on your server. You’ll also need the Tropo PHP library. Then add your Foursquare username and password to the top of the code and give it a call.

Thomas Howe introduces the Mobile Mail List mashup for Tropo with screencasts, source code

Wednesday, November 11th, 2009

Over on his blog, mashup king Thomas Howe introduces a new Mobile Mail List application for use with Tropo.com. As Thomas describes it:

It allows retail facing businesses to quickly and easily let their customers sign up for customer care programs using their cell phone, then uses text messaging to send coupons back to the customers. It’s free and open source, and it runs today on Tropo.

Thomas indicates he’ll be doing a series of screencasts, the first two of which are out already. He has also made the source code available over on Github and included an architecture diagram to show how the pieces all fit together.

The first screencast introduces the Mobile Mail List application:

The second screencast, embedded in his second blog post dives into the voice app used on Tropo.com:

If you would like to try out Thomas’ app yourself, you can download the Mobile Mail List software and then use it with your Tropo.com account (which is free if you haven’t created one yet) as well as your own web server.

It’s cool to see and we’re looking forward to seeing the other screencasts Thomas creates!

Slides from Voxeo CTO RJ Auburn’s talk at VoiceCon about mashups and Tropo.com

Tuesday, March 31st, 2009

This morning at VoiceCon Orlando, Voxeo CTO RJ Auburn was part of a panel on “voice mashups”. RJ spoke about the tools available for developers and specifically focused on what you can do with Tropo.com. RJ’s slides are now available at SlideShare and I will embed them here for your viewing:

If you haven’t tried out Tropo yet, please do head on over there to register for a free account. There is also plenty of documentation and sample apps to help you get started with voice applications.


If you found this post interesting or helpful, please consider either subscribing via RSS or following us on Twitter.


Technorati Tags: , , , , , , , , , , , , ,

Great Tropo mashup – call in and query the IMDB Top 250 movies list

Wednesday, March 25th, 2009

We love seeing what people create with Tropo.com and this week we saw a fun app created by Gert Goet that lets you call in and speak the name of a movie. If that film is in the Top 250 list at the Internet Movie Database (IMDB) you’ll get the IMDB ratings for the film, it’s position in the IMDB Top 250 and other information about the film. You can try it yourself using either a Skype or SIP connection:

When I asked him about posting about his app on this blog, Gert Goet send along this (unsolicited) comment which he subsequently said I could also use:

The easy to use API made the app really fun to develop actually, even for someone with no prior experience in VOIP-development.

That’s exactly the kind of feedback we hoped we’d hear!

Kudos to Gert for creating this app and we look forward to seeing whatever else you all may create with Tropo!


If you found this post interesting or helpful, please consider either subscribing via RSS or following us on Twitter.


Technorati Tags: , , ,

Introducing Tropo… a new way to develop voice applications in languages you already know…

Tuesday, March 3rd, 2009

tropo.comlogo.jpgAt Voxeo, we love clouds but we don’t have our heads in them all the time. We realize not every developer wants to write applications in XML. There are lots of developers with lots of ideas, but they want to write their apps in the languages they’re already using. So we decided to do something about it – we created Tropo.

Tropo is an application platform that enables web developers to write communication applications in the languages they already use: Groovy, Ruby, PHP, Python and JavaScript. Tropo is in the cloud, so we manage the headaches of dealing with infrastructure and keeping applications up and running at enterprise-grade. Tropo is simple to deploy, requires no contracts and no up-front setup costs. With Tropo developers can build and deploy voice and telephony applications, or add voice to existing applications.

Previously developers had to write voice applications in VoiceXML. This has left out developers who either did not want to learn VoiceXML, wanted the flexibility of working in other development languages or have been working in VoiceXML for 10 years and are ready for a change.

Already, developers are having fun with the platform… take a look at the sample applications and you’ll see voice mashups that read you various news feeds (or your Google reader)… an app that gives you the ETA of trains on the BART system… location mashups using Yahoo!Local… weather examples… even a Monty Python quote server. (UPDATE: March 2, 2011 – A better place to start today is our Quickstart guide.)

With many applications still to be written and many existing applications that can be enhanced by adding voice, Tropo is unleashing the creativity of the web developer community on the communications world. We can’t wait to see what happens. Please visit www.tropo.com for more information and to sign up to get started today!


If you found this post interesting or helpful, please consider either subscribing via RSS or following us on Twitter.