Skip to main content

Build local search on phone using Google places and KooKoo


Mashups are all the rage nowadays. With an increasing number of API’s out there, the possibilities are countless. Here’s one display of an interesting mashup using Google Places and the KooKoo API. 


Note: The demo can be accessed at 91-40-39411020. Pin: 1748 91-40-30512867 (The example application may not work on QWERTY keyboard phones like blackberry)
Step 1: The ‘Idea’
The basic idea here is to build an Interactive Voice Response System (IVRS) that is accessible through the phone. Something like JustDial, but without the hassle of talking to another human on the other end. You tell the phone the area you’re interested in, what type of establishments you’re looking for (hotels, restaurants or in an emergency, hospitals) and you will get a list of establishments that match the criteria you specified. Simple and fast.
Step 2: Identify functionality needed to develop the idea
The functionalities identified for this application are:
  1. Telephony interface for the IVRS
  2. Database to store a list of places
  3. Geocode (convert to latitude, longitude) the place given as input
  4. Find establishments of given type around the desired place
Step 3: Identify the API’s
The API’s required are
Google Geocoding API
This will account for functionality 3
Google Places API
This will account for functionality 4

KooKoo API
Provides the telephony interface, i.e., functionality 1

Sign up with Google API at https://code.google.com/apis/console to get an API key using which you can access the Google API functions.
Sign up with KooKoo to get a phone number for your application.

Step 4: Integrate the API’s
The first step is to register for a developer account at KooKoo. Let’s create a PHP page called “ivrs.php” and update the application URL to point to it.
Let’s now look at the code design that’s going to go into ivrs.php.
1. Include the KooKoo library to access the KooKoo functions.
2. When a new call comes, ask the caller to enter the location details like,“Enter the first 3 letters of the place followed by hash. For example, 2 6 3 hash for Ameerpet.”

We handle the new call event by instructing the user to input the first 3 letters of the desired place followed by a hash. Here we have mapped each place to a 3 digit code using the first 3 letters of the place and their corresponding number on a phone keypad.

The digit code to place mapping is maintained in a simple hashmap as shown below:


$hashmap["234"]="Begumpet";
$hashmap["263"]="Ameerpet";
$hashmap["623"]="Madhapur";
$hashmap["269"]="Bowenpally";
$hashmap["226"]="Banjara Hills";
More places can be added as and when required.

3. Ask the user to select an establishment like "Press 1 for ATM, press 2 for hospitals" etc

4. Using Google Geocoding API we geocode the place, i.e., we convert it into latitude,longitude. This is needed because the Google places API needs the Lat Long parameters and does not take a place parameter.

5. Using Google Places API we look for establishments of the type specified by the user around the location specified.
ex:”https://maps.googleapis.com/maps/api/place/search/json?location=”.$ll[0].”,”.$ll[1].”&radius=500&name=”.$type.”&sensor=false&key=AIzXXXXXXXXXj-5xXXXaW_qlXXXXX0w0″;

6. Parse the JSON result and play them back to the user or send an SMS.

Thats it. So with just around 50 lines of code, we have a competitor to JustDial :), thanks to Mashups.
The code can be downloaded here.
The code can be customized to your heart’s content. Add more places (the current database contains 20 places within Hyderabad) and add more “types” of establishments (dentists, doctors, etc.) The full list of types is here.
Enhancements: 
1. The code has to be updated to handle conflicts,two places could have the same first 3 letters. 
2. Update the DTMF interface to voice.

Note: This is a guest blog by our Intern, Vinay Kola. This has been adapted from his blog, Infinite Improbability
Vinay is "Student at IIT Kharagpur. Man Utd fanatic. Technophile. Music lover" as per his twitter account @vinaykola. 
He is doing a great job at Ozonetel and we hope he goes on to start a business on top of our KooKoo platform.

Popular posts from this blog

Cloud Telephony-History and state of the art

Well, its been 11 years since Twilio launched their voice API in November 2008. I would say that was a major turning point in the cloud telephony industry. Before that, for people to build telephony applications, you either had to depend on proprietary platforms like Avaya dialog designer or build on arcane technologies like VXML which again was supported at varying degrees by the incumbents. Enter Twilio with their voice API and the industry changed for the better. Since it's been almost 11 years now I thought now might be a good time to do a comprehensive review of the cloud telephony industry as a whole in general and in India in particular. The Beginning Twilio was undoubtedly the startup which ushered in the era of cloud telephony. They started in November 2008. At that time in India, we at Ozonetel had launched a hosted VXML platform. There were no takers. After all who coded in VXML :) So when Twilio launched and we saw them take off, we immediately realized tha...

Google business messages and chat agents-A match made in heaven

Google has launched Google business messages without much fanfare. It's just a small button that pops up when someone searches for your business on Google. But from the conversation industry perspective this is HUGE .   Do you know that the small call button drives millions of calls i n a year for pizza joints and other retailers in the US. Businesses spend more than a trillion dollars supporting billions of customer service calls each year. Now imagine how many chat conversations the "Message" button can drive.  Think of how customers interact with business. 1. Search on Google. 2. Click on web site link. 3. Web site shows chat pop up and tries to force the user to chat.(Annoying. I know :)) 4. User clicks on chat and starts conversing with a bot or an agent. This flow can now be completely changed. The new flow can be: 1. Search on Google. 2. User clicks on Message and starts conversing with a bot or an agent. What if you could design a customer experience that helps...

Telugu ASR speech data collection

Image Source: IIIT-H Developing an indigenous ASR for Indian languages has been a goal for us since a long time. In that regard we have been experimenting a lot, trying out various neural network architectures.  While doing these experiments we found that there was no good dataset for Indian languages. While discussing with IIIT professors we got to know that the government of India was also exploring options to generate a good dataset. We immediately offered our help and our platform for this endeavor. So, as a starting step we have come up with a few campaigns to encourage users to donate speech data. We wanted to make it fun, so our first few campaigns are along the lines of JAMs(Just a Minute speech topics) etc. A topic will be provided and you need to speak for a minute on that topic. We have started this campaign for college students to start with. Of course anyone can participate and contribute their data. The more the merrier :) We will adding a lot more innovative ways ut...