Fri, 12 Jun 2009

Actually, I’m a CIA Agent

I’m in the CIA

Don’t believe me?  Well call (866) 961-1673 and enter my Agent Identification Number: 12345.  (I know, that’s the kind of combination an idiot would have on his luggage.)

The CIA Pickup

The above demonstration of my secret identity was made possible by my latest demo: The CIA Pickup.  There’s a funny story behind this demo, but if you’re impatient, you can try out the demo now or watch this screencast (download the wmv for higher quality):

The Technology

Here’s a diagram of the architecture of

The CIA Pickup Architecture

The core web application is running on Windows Azure.  The code is written in C# as an ASP.NET MVC web role and a worker role that records incoming calls and sends outgoing email.  Twilio is handling the telephony, Windows Live ID is handling authentication, and Windows Live Mail is handling the outgoing mail for the domain

It took about three hours to get the basic functionality working (including buying the domain, signing up for Twilio, getting Windows Live Mail set up, writing the initial web page, and publishing everything to Windows Azure).  It took another five hours to add a worker role, incorporate Windows Live ID authentication, polish the UI, and clean up the code to the point where I was willing to share it.  Eight hours total… not too bad to get an idea like this off the ground!

The (True) Story

A coworker of mine, Annie (not her real name), was flying on an airplane and chatting with the guy in the seat next to her.  It was a typical airplane conversation… they were talking about work (he works in real estate), they were talking about travel (Annie has traveled the world and speaks several languages fluently), and generally making small-talk.

At some point in the conversation, the guy stopped, turned to Annie, and said, “You know, I’m not really in real estate.”

“Oh,” she replied, “Then what do you do?”

“I’m actually a CIA Agent,” he said quietly, “and I’m wondering if you’d be interested in a career with the CIA.”

Fast forward a number of years to when Annie comes to work and tells the story of how she was recruited to the CIA.  We’re in my manager’s office, and when Annie reaches this point in her story, he and I look at each other and start to laugh.  To us, it’s obvious that the guy was hitting on her, and not really a CIA agent.

This gave me the idea for, and I hope you find it as entertaining as I did.

Download the Code

Download the source code:

Note that to run the sample you’ll need to get your own storage account, Twilio account, Windows Live Application ID, etc.  All the configuration settings you need to fill in are located in ServiceConfiguration.cscfg.

Enjoy the Demo

Have fun, and tell your friends.  Just don’t be too upset when my Twilio account runs dry and the phone calls stop working! :)

Play with the sample: