pizza

Ok, admit it, you like the Domino’s new online “Pizza Tracker.” If you haven’t heard of it, It is a Flash application that tracks the status of your pizza order as it flows through the steps from the initial order, preparation, baking in the oven, being boxed, and out for delivery. See: http://www.dominos.com/home/tracker/pizzatracker.jsp

While waiting for an order the other day I thought, what could top that? The system should call us when the pizza is out for delivery! No longer do you need to stare at the progress meter on your computer while waiting when you could be in the pool, watching a game with friends, or beating your kids in a game on the Wii. I figured I only had roughly 30 minutes to get this working, so let’s get cracking.

Watching the flash application make web requests in Firebug pointed me to the source of the status. All it does is pass your phone number on to a web page and it returns an XML structure with the data needed. The data includes timestamps of each step in the process, durations in the current step, the person who took your order, how long you were on the phone with them, the store manager’s name, etc. Plenty of data to provide some metrics to their corporate office, plus the information we need to send out the alerts.

How does the pizza tracker notification work you ask? Well it is made up of two components. The first component, a Perl script, runs every minute or so from Cron checking the online order status for the numbers we are tracking and generating calls for those out for delivery. The second component, the Asterisk dial plan, allows you to call an extension and set up the pizza tracker for a number and check the order progress.

It is by no means a complete application but it was fun to write, and seems functional enough to use. I’m sure there are tons of uses for something similar to this. One such use could be an airline notification system that notifies limousine drivers’ cell phones when their clients’ planes land. What is your next cool Asterisk project?

Our team at Big in Japan (a social software company) has been enamored with Asterisk since early 2005 when we launched our social podcasting application for FX Network’s hit series Nip/Tuck.  Our application, that married Asterisk and Ruby on Rails, allowed fans of the show to participate in a ‘social podcast’ that was published on the show’s website and on iTunes.  Most viewers didn’t (and still don’t) have the equipment necessary for voice recording on their computers, so our implementation of Asterisk allowed FX to call viewers and record their thoughts, comments and questions about the show.  The system was designed to handle a minimum of 30,000 calls per hour, but could be expanded on-the-fly if necessary.  The system worked so well FX asked us to incorporate other shows into the system include The Shield, The Riches, Rescue Me, It’s Always Sunny in Philadelphia, and Damages.

Our most recent application that takes advantage of Asterisk is ServiceGuy. ServiceGuy is a free referral network. The idea is simple: You need help now. You don’t want to wait to receive a call back. You don’t want to wait for an email response. You don’t want to create an account or provide demographic data. You want to talk to a service provider in your area right now. Just call the ServiceGuy number for your area and get the service you need. Your call is then connected to a service provider. No voicemail. No email. No accounts. Just a direct connection to someone who can help you right now.

Basically, we build ‘public virtual hunt groups’ limited by geography and service type.  For example, we built a hunt group in Dallas for painters.  Painters are allowed to enter their cell phone numbers into the hunt group, and the main number of the hunt group is published for consumers to call.  When a consumer calls the ‘painter hunt group’ in Dallas each painter’s number is called.  The first available painter to press one is connected to the consumer.  The call is then recorded and placed into the painter’s account for future use.

Today ServiceGuy is active in Atlanta, Austin, Boston, Chicago, Dallas, Denver, Detroit, Houston, Los Angeles, New York, Philadelphia, Phoenix, San Francisco, Silicon Valley and Washington, D.C.  We offer hunt groups for cleaning, computer, design, electrician, handyman, landscape, moving, painter, plumber, pool and realtor.

For more on Alexander Muse and his endeavors check out:

http://myventurepad.com/MVP/28013

Being far away from home for a long period of time is a trying experience; leaving your life behind and relocating away from your support systems – family and friends – is even more so. The first three months of living in Silicon Valley after moving here from Israel could easily be the toughest I ever had, and frequent phone calls with the people I left behind were a considerable part of the coping process. Being able to make them relatively cheap helps too.

Most people think of a VoIP phone service as something that parallels a traditional phone: You hook up with a provider who gives you a phone number, people call you on your phone, and you call people on their phone. As simple as it sounds, this service is actually comprised of two different services:

Termination

A service that you supply with a phone number in the PSTN (Public Switched Telephone Network) and the service takes care of “Terminating” the call at the destination number. That term might be more intuitive if you figure that a phone call has an origin point and a termination point – you originate the call and the service terminates it for you.

There are different termination services around, some terminate locally for a country, and some are global and are called A-Z services, after the alphabetized list of destination countries. Prices and plans vary, and it’s relatively easy to shop around on-line. If you have an Asterisk PBX, the easiest to hook with are those that offer IAX2 connectivity, although Asterisk will deal with SIP termination just fine.

DID – Direct Inward Dialing

This slightly anachronistic name is basically the opposite service.

The DID service provider provides you with a phone number, which in the PSTN network routes to that provider. Whenever someone calls the number, the DID provider relays the call signaling information and (if you pick up) the call audio data to your PBX. Again, the easiest way is IAX2 when your PBX is Asterisk.

Like termination service providers, DID providers vary in their offering and pricing. Some provide numbers in specific countries, and some are more or less global.

Some providers like Vonage provide both services seamlessly.

So the first order of things was to give myself the ability to call Israel. I’ve set up an Astrix server, which was relatively painless on the Ubuntu distribution I was using at the time at home – Asterisk comes as a set of packages. I chose a termination provider, opened an account, put some funds in it, and I was set. A little Asterisk hacking and I was able to make calls world-wide from my soft-phone on my laptop. Very cool. This setup alone, took me – an Asterisk newbie at the time – around a day’s work.

The next step was to inbound calls for my Asterisk box. The primary reason for that was my parents. While the price of international calls has fallen down dramatically, my parents still have the psychological barrier for “calling abroad”, set back in the days when a minute on the phone from Israel to the US cost around $1, which it was in the early 1980s. Although it is about 10 times cheaper today, my parents would simply not call.

Luckily, I found an international DID provider that gave me a phone number in Israel for a low flat monthly rate. Setting it up to receive calls was a breeze, and I was up and running in no time. Empirically it has increased the number of calls I get from my parents dramatically, just because of the convenience of dialing a local number.

So far I was placing and receiving calls on my laptop using my soft-phone. This setup has some limitations when placing calls, but receiving calls means that I’m unavailable when I am away from my computer. Now if only I could route them to my cell phone… throw in another couple hours, mostly spent browsing through the Asterisk documentation, and my cell phone and soft-phone ring in tandem. I’ve used my international termination provider to dial my cell phone US number; the rate is reasonable and the convenience is worth it.

Now that I was receiving the calls on my cell phone, I wanted to make those international phone calls to Israel using my cell phone too. To facilitate that I checked my DID provider’s web site. Sure enough, it will sell me a DID in the US. Then off to my Asterisk again, where very little scripting makes sure that I can make calls calling my US DID only when the caller ID matches my cell phone. Being somewhat paranoid, I added a PIN on top of that.

The system is easily extensible. When a friend of mine moved to France, I added a French DID, allowing him to call me on a Paris number. This has resulted in a few telemarketing calls, which seem to come from a certain called ID. Calls from that number get Asterisk’s chirping monkeys these days and fail to ring my phone. When I move to Australia in a month, I plan to have a DID there, and route my calls to my Australian cell phone.

Another problem with having DIDs in different time-zones is calls in the middle of the night from people who just don’t realize where you are. My plan to deal with that is to set up a recording announcing (in the language appropriate to the DID) that I might be sleeping and that the caller should reconsider. I’m sure there’s some way to make it play only on the hours of the day that are night at my locale.

Finally, hosting the system at my home is relatively unreliable, especially when I download a big file. A tiny hosted VPS (Virtual Private Server) is enough to keep my Asterisk running in a reliable high-bandwidth environment. My VPS has 2.5GB of disk space, 64MB of RAM and a dedicated IP address. For Asterisk – that’s plenty, and it costs very little.

Matthew Nickasch of NetworkWorld.com has written an interesting article about VoIP in the hotel industry.

http://www.networkworld.com/community/node/28706

Matthew notes (rightly) that albeit a little late, hotels are transitioning to VoIP because the cost of hardware has finally come down, and it has apparently become easier to implement changes to a large amount of extensions quickly.

At VoIP Supply, we have seen and worked on several initiatives to make deploying asterisk-based PBX’s easier to implement.

On a typical deployment we will use a Rhino Equipment FXS Channel bank, the Rhino Ceros IP PBX and Rhino Equipment Digital PCI card, along with Aastra analog phones. The magic is in the dial plan, and we can set a lot of that up ahead of time.

We have a winner!

Ashley Kitto has won a $1500 VoIP Supply store credit in the ‘101 Things You Can Do with Asterisk’ contest from Digium and VoIP Supply.  We had over 250 reader responses in the contest, truly showing that Asterisk is more than just an open source phone system.

We picked our winner by using a completely random number generator, found on random.org.

Ashley’s suggestion for a use of Asterisk was the 171th reason:

“You can use Asterisk as a tandem switch in front of your legacy PBX, to add more functionality, like SIP and fax-to-email.”

We would like to thank everyone for the overwhelming response to this contest.  Because of your cooperation, we are looking to run more like it in the near future!

We are hoping to see Ashley’s reasoning for the Asterisk use in a future guest blog post.  We are also inviting all of our contributors to send in other guest blog posts on their Asterisk uses as well.

Part of the reason for the contest was to create more dialogue between us and our readers, and we want to continue the discussion. This will provide an arena for you to speak about your experiences and connect with other users in the VoIP/Asterisk world.

On behalf of VoIP Supply, thank you all so much for making this contest and the VoIP Insider such a success!

Can’t find the right Asterisk-based solution? Don’t have the expertise to manage an open-source phone system?

Thirdlane PBX, an Asterisk management tool, requires no Linux or Asterisk experience to manage and install.

  • Ease of Installation.PBX Manager is a Webmin module and can be installed in minutes without requiring any database or web server software. PBX Manager Installation or upgrade is just a matter of pointing at a URL and clicking install button.
  • Ease of operation. No special knowledge of Linux or Asterisk is required for the operation, so the management functions can be performed by regular staff. PBX Manager Permission’s system can be used for limiting users’ access to the system features as required.
  • Extendability. PBX Manager is shipped with a set of sample configuration files and a script repository for the common PBX functions. You may extend the included script repository with your own scripts taking advantage of the full power of Asterisk.
  • Ease of support.Use of Webmin as a platform for PBX Manager facilitates remote technical support. This is particularly important for the system integrators deploying Asterisk and PBX Manager for geographically distributed clients.

Thirdlane PBX 6.0 unlocks additional features typically found in other Asterisk management tools such as Trixbox.

  • Auto-provisioning
  • CRM Integration
  • Cluster Management
  • Enhanced Conference Configuration Management

Read the full press release here:

http://www.thirdlane.com/news/press-releases/20080514