Archive for the ‘Tropo’ Category

Creating a Chat Room Interface using Multiple Conferences

Monday, February 20th, 2012

In this blog, I will demonstrate how to turn multiple conferences into a chat room interface, including a full option menu . A great perk to this app is the ability to monitor everyone in the room using CouchDB – with CouchDB, you can see how many people are in each room, along with their corresponding callerIDs. There are several different CouchDBs that you can use, however for this blog I will use iris.

To start, set up an instance of CouchDB by initially going here. Once on that page, fill in the “Sign Up” fields on the right side of the page and hit “SEND”. You will then be directed to the page where you can access your CouchDB; it looks something like this:



To finish setting up CouchDB, first click the link you received from the confirmation; once there, click “Create Database” towards the top – you can name your database whatever you want, however, to follow the app’s design, I named mine conferences.

(more…)

Join Tropo at LessConf Feb 23rd-24th Atlanta Georgia

Friday, February 17th, 2012

Tropo is sponsoring LessConf and giving away 2 FREE tickets worth $1,000!

Follow us on Twitter, tell us why you MUST go and we will DM the winner, it’s that simple.

Join us there for what’s being called the “Summer camp for startups” and “the best time of my life” with a full line up of kick-ass speakers and a pre-party on Wednesday Feb 22nd at Ri Ra Irish Pub.

ANY CHARACTER HERE
ANY CHARACTER HERE

>>What:  LessConf 2012

>>Where: Georgia Tech Research Institute (GTRI) 250 14th Street NW Atlanta, Georgia 30318

>>When:  February 23-24 2012

>>More info:  http://lessconf.eventbrite.com/

Don’t forget to follow @Tropo on Twitter and ping us why you want to go for a chance to win FREE tickets to LessConf 2012!

Tropo Helps Women 2.0 Pick Winners for Pitch Competition 2012

Wednesday, February 15th, 2012

Team Tropo spent Valentine’s Day at the Computer History Museum in Mountain View, CA for the 2012 Women 2.0 Pitch Competition and Conference.

Over 1,000 people filled the museum and exhibitor hall where Tropo set up a table and an application allowing attendees to vote for their favorite of the nine companies that presented to win the competition.

The pitches were passionate and the companies were cool which is why we developed the app to have the people vote and help us choose who to give the Tropo Cash Award to for “Most Disruptive Product”.

The voters decided the winner Perfect Beauty, a social site for beauty reviews to help women navigate the right products for them.  Considering the average woman spends over $400,000 in a lifetime on beauty products and the founder received over 100,000 visits a month on her YouTube channel reviewing beauty products it appears Perfect Beauty struck a chord among the ladies at Pitch.

The other winners included Docpons, a Groupon for doctors,  for the category of “Most Likely to Change the World”, Buyosphere, a Q&A, search site for products won the “Most Promising Team”.  And the winner of the whole competition and my personal favorite was Tiny Review, a mashup of Instagram, Yelp and Twitter allowing users to quickly, simply and creatively express their experiences (like the pic above).

In between the pitches were exceptional keynotes from Catarina Fake, Co-Founder of Flickr and Hunch, Robin Chase, Co-Founder of Zipcar and Katie Mitic, Director of Platform and Mobile Marketing at Facebook.  With all the exciting new companies, excellent keynotes, VC’s and Angels speaking through out the day it’s no wonder it was packed to the rim with people sitting on the floor and crammed against the walls during the sessions.

Tropo was happy to sponsor the innovators at Pitch and present a cash award to the company voted by the people participating.  Thank you Women 2.0 for a wonderful event and all the love given to us at Tropo on Valentine’s Day <3!

xoxo

Team Tropo

SMS Voting App in 10 Minutes with Tropo and CouchDB

Wednesday, February 8th, 2012

Lat fall, I attended CouchConf NYC and gave a presentation on using Tropo with CouchDB.

It only recently occurred to me that I never did a proper screencast and blog post about my presentation, which struck me as a bit odd – I constantly get asked how to set up an SMS voting app with Tropo.

The good news is that setting up this type of app is incredibly easy with Tropo and CouchDB. The even better news is that I’ve finally gotten around to recording a screencast on how to do it – watch below.

A vote for the Rolling Stones.

All of the code used in this demo can be obtained from GitHub.

To install the CouchApp utility, go to the CouchApp project page.

If you’re looking for an easy way to set up a CouchDB instance, have a look at IrisCouch.

By pairing Tropo with CouchDB and a CouchApp running in IrisiCouch, you can have an SMS and phone voting app running entirely in the cloud in about 10 minutes. It should actually take you longer to write up the categories for your voting app than it should to deploy this solution.

Tropo + CouchDB, FTW!

Customer Spotlight: PalmLing

Monday, January 30th, 2012

We are excited to feature PalmLing on this week’s Tropo Customer Spotlight! Today I sat down with Ryan Frankel, one of the co-founders of PalmLing, to discuss their new business and learn more about how they are using Tropo and Phono for their human translation services.

What is PalmLing?

PalmLing is human translation in the palm of your hand. PalmLing is a phone-based platform that enables travelers to use their cell phones to speak with exceptional translators. Translators are available 24/7 and can speak directly to the person with whom you are communicating, or they can provide the information you need to communicate in a foreign language.

PalmLing uses Tropo’s Voice APIs and platform to answer international calls and initiate conferences between callers and translators to provide their service. PalmLing also uses Phono, Tropo’s web phone, to demo their translation service directly from their website. Phono basically initiates a call from the web browser into their Tropo voice application just as if someone dialed their phone number.

To learn more about PalmLing, visit their website at http://palmling.com!

Tropo Teams with Apigee on API Explorer

Friday, January 27th, 2012

Tropo is excited to partner with Apigee on the Tropo API Explorer! The API Explorer allows more developers to explore, learn, and test Tropo’s cloud communications APIs faster than ever before.

Tropo provides an API and cloud communications platform for building powerful Voice applications with speech recognition and text-to-speech in 24 languages, call recording, conferencing, SIP/VoIP, and phone numbers in 41 countries. Tropo also provides international SMS services.

The API Explorer makes this integration easier, helping developers authenticate and test our API in seconds, view the full surface area of an API, view request/response pairs in only a few clicks and share what they are seeing with others.

Now you can use the Apigee API explorer to experiment with our REST API without writing a single line of code! It is built with Apigee To-Go, a free product to let users build, skin and embed their own API Console. The Tropo API Explorer is embedded below or you can jump to this full screen version.

Tropo Drinkup San Francisco

Wednesday, January 25th, 2012

Join us Friday January 27th for our Tropo Drinkup in San Francisco at our SOMA headquarters office and enjoy some complimentary drinks while entertained by future rockstars letting loose on our piano and guitars.

We like to get our happy hours on early so be ready to break some New Year’s resolutions with us at 3:58pm.  Yep, 3:58pm.  Because two minutes can make the world of a difference for your weekend.

End your work week early and shimmy by the Tropo office for some beers, bites and a lil’ rock jam session if you are so inclined.

Tropo Drinkup San Francisco

When: Friday January 27th

Where: 28 2nd Street 3rd Floor San Francisco, CA 94123

Time: 3:58pm- 6:00pm

Tropo joins Startup World in 36 cities

Monday, January 23rd, 2012

Tropo loves startups. Why? Because entrepreneurs always think of new and innovative ways to use Tropo that we’ve never even dreamed. Since we launched Tropo in 2009, we’ve helped thousands of developers and entrepreneurs build apps, demo them, pitch them, get investment and launch into full businesses. In fact, pretty much everyone behind Tropo from the engineers to evangelists…even our newest community manager…have come from startups of our own. It’s part of our DNA.

That’s why we’re extremely pleased to announce that Tropo is partnering with Newspepper, TheNextWeb, i/o Ventures, Startup Bus, Startup America (and a whole lot more!) to launch Startup World!

Startup World is a global competition to find the next big thing. The competition will be held in 36 cities world-wide, with the regional winners flying to Silicon Valley for a grand showdown to battle it out in front of a panel of expert judges to be crowned the “world’s best startup”.

We’ll be kicking off Startup World at a Launch Party at i/o Ventures in San Francisco on Tuesday Jan 24th 2012.   Come join us for the fun and some awesome speakers including Sarah Lacy!

Meet Phono – Tropo’s Web Phone

Monday, January 23rd, 2012

Have you heard about Phono, our open source Javascript Phone API project?

Phono is a free HTML5 jQuery-based web phone that you can add to any web page to place or receive open SIP-based VoIP calls to/from any web browser (or iOS/Android mobile device using Phono Mobile)!

Phono can be connected to Tropo to place or receive phone calls to/from real telephone numbers! Phono can also interact with Tropo voice applications directly from a web page using Tropo’s speech recognition and text-to-speech in 24 languages as well as record and play media such as WAV or MP3 files or conduct conference calls, call transfers, call recording, etc.

To make things even better, Phono and Tropo both support SIP headers which are basically key/value pairs of data that you can sent along with calls. SIP headers are very common in call center applications and enterprise screen-pop implementations. Using SIP headers allows Phono to place a call into a Tropo application and pass along data instructing Tropo to transfer the call to another telephone number. This is how all of the click-to-call demo applications work on phono.com. These demo applications are also limited to 10 minutes in length so that you can experience the quality of a Phono call and write your own Tropo application for longer calls.

Because we have had a few questions lately on this topic, I wanted to provide some sample code for both Phono and Tropo to make this easier for you to apply to your application. This demo application allows you to enter a phone number on a web page and call it using Phono and Tropo. The web page has a simple form that asks for a phone number and has a call button that initiates a SIP VoIP call to Tropo app:9996182316. Reviewing the Phono code below, you will find that it uses jQuery to pass the phone number value in the textbox to Tropo as a SIP header.

<html>
  <head>
    <script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
    <script src="http://s.phono.com/releases/0.3/jquery.phono.js"></script>
  </head>
  <body>
	<input id="phonenumber" type="text">
    <input id="call" type="button" disabled="true" value="Loading..." />
    <span id="status"></span>
    <script>
    $(document).ready(function(){
      var phono = $.phono({
        apiKey: "your secret key",
        onReady: function() {
          $("#call").attr("disabled", false).val("Call");
        }
      });

      $("#call").click(function() {
        $("#call").attr("disabled", true).val("Busy");
        phono.phone.dial("app:9996182316", {
		  	headers: [
			             {
			               name:"x-numbertodial",
			               value:$('#phonenumber').val()
			             }
			           ],
          onRing: function() {
            $("#status").html("Ringing");
          },
          onAnswer: function() {
            $("#status").html("Answered");
          },
          onHangup: function() {
            $("#call").attr("disabled", false).val("Call");
            $("#status").html("Hungup");
          }
        });
      });
    })
    </script>
  </body>
</html>

You could write a Tropo transfer application using the Scripting API in one line of Ruby code that transfers the call to the phone number in the SIP header like this:

transfer $currentCall.getHeader("x-numbertodial")

What if you wanted to add a timer that ends the call after 10 minutes like we do on phono.com for demo purposes? This feature is also simple but it requires multithreading your Ruby application and using our REST API for sending a signal to interrupt the transfer method once your timer reaches its alarm.

require "net/http"

# Create second thread for timer and announcements
Thread.new do
  sleep 600 # Note: Sleep is in seconds so 600 = 10 minutes

  http = Net::HTTP.new "api.tropo.com"

  request = Net::HTTP::Get.new "/1.0/sessions/#{$currentCall.sessionId}/signals?action=signal&value=limitreached"
  response = http.request request
end

say "hold please while we transfer your call."
transfer $currentCall.getHeader("x-numbertodial"), :allowsignals => "limitreached"
say "your limit has been reached."

That’s cool but what if you wanted to block certain phone numbers or limit the demo calls to North America? You could add area codes or phone numbers to a regex array and check the desired phone number against the list of regexes to see if you should allow the call to transfer or not like this example:

phone = $currentCall.getHeader "x-numbertodial"

# Blocked North American area codes
blocked = [
  /^\+?1?8[024]9/,
  /^\+?1?26[48]/,
  /^\+?1?24[26]/,
  /^\+?1?34[05]/,
  /^\+?1?[62]84/,
  /^\+?1?67[10]/,
  /^\+?1?78[47]/,
  /^\+?1?8[024]9/,
  /^\+?1?86[89]/,
  /^\+?1?441/,
  /^\+?1?473/,
  /^\+?1?664/,
  /^\+?1?649/,
  /^\+?1?721/,
  /^\+?1?758/,
  /^\+?1?767/,
  /^\+?1?876/,
  /^\+?1?939/
]

block_call = blocked.any? { |x| phone =~ x }

You could add this code immediately above your transfer and add a conditional statement that says something like this example:

if block_call
  say "calls to this area code are blocked."
else
  say "hold please while we transfer your call."
  transfer phone, :allowsignals => "limitreached"
  say "your limit has been reached."
end

You could also add billing functionality to the Tropo script by applying a rate based on country code and multiply it times the number of seconds that the call was in progress. To accomplish this goal, you would add a timestamp at the beginning of the script and a timestamp directly following the transfer method. When either party hangs up, the Tropo script will continue running with the line immediately following the blocked method such as transfer in this case.

If necessary, you could also check to see if the Phono caller is still on the call by interrogating the $currentCall.isActive property or by wrapping your entire application in a while loop like this example:

while $currentCall.isActive
  # Do Stuff
end

I think that should get you started! You can now build your next-generation click-to-call application using Phono and Tropo! Please let us know how you are using Phono with your Tropo applications :)

Changes to Tropo Channel Support

Wednesday, January 11th, 2012

As Tropo evolves, we continue to evaluate our product features and make changes to improve the overall experience of using Tropo. Often, this means we add a feature or improve an existing one. Sometimes, this means removing a feature.

Tropo will be deprecating two features at the end of this month.

  • Instant Messaging and Twitter – Sending instant messages to your application was a fun idea and we used this a lot internally to test text applications, but shifting network protocols and uncooperative IM services meant we spent a lot of effort on the feature for very little positive result. We will be disabling the ability to add new IM networks shortly, and turning off the IM servers on January 28. Read more about this change here.
  • Skype numbers – Providing each application a Skype number allowed developers to test incoming calls to their applications. Unlike all of our other phone numbers and VoIP access, this was one-way: you could not call out with Skype. The Microsoft acquisition of Skype has left even this limited support with an uncertain future. You can continue to test your applications with SIP, phone numbers, or Phono. We’ve even embedded Phono so you can dial your applications with one click. Read more about this change here.

Changing and shaping the future of communications takes a lot of focus, and sometimes requires us to reassess the past. We’ve learned a lot from our Skype and IM support, and will put that knowledge to work in creating more great things in the future.

Deprecating these features is the first step in allowing us to focus on things that our users truly want. Look for a lot of great things coming from Tropo in the coming weeks and months.

Stay tuned!