Home Articles Development of “Location ID” system in CTI-GIS interface: A real-time telephone call...

Development of “Location ID” system in CTI-GIS interface: A real-time telephone call tracer

G. K. Tripathy, S. Sen, S. Shukla and P. Jothimani
Applied Technology Group, Tata Infotech Ltd, SEEPZ
Andheri (E), Mumbai 400 096
[email protected]
Commercial applications using GIS techniques is not much realised in India. With the use of Internet as a medium for disseminating information to larger population the role of GIS in terms of commercial applications have been multi-folded. Both GIS and Internet technologies are definitely in the forefront of present IT developments in application sectors like telecommunication, e-commerce, navigation, videoconferencing and power systems. Recent developments in public health and security systems to improvise their targeting and response time are based on GIS, GPS and Internet technologies. In this direction the present work discussed here by authors is a trend setter in GIS-telecommunication applications in the Indian scenario.

“Location ID” system is an amalgamation of CTI (Computer Telephony Integration) and MapInfo GIS to deliver the locational information of a telephone caller. This is based on acquiring the Caller’s identity number through CTI and using digital data of city and its telephone users’ addresses. As a call is registered through CTI, the display module based on GIS is used to locate the address (location) of the caller over the digital map. The system also generates a delivery path, allocation of nearest place of attendance and work order to follow up the route from the position of the caller.

Designed Solution
The proposed solution of Location ID system consists of few modules and takes into care few aspects of the conditions that are involved in the development and integration of the modules. These are

  • The Telephone Customers data of MTNL is available with MTNL and updated from time to time. These contain three distinct fields of addresses in the database records namely region, road and building/monument.
  • Marine Lines which is a region in Mumbai city was taken as a sample area for demonstration of the system. The region contains both residential and non-residential telephone subscribers.
  • The address of an area can be found from the digital data of Mumbai city corroborated by the postal zone addresses from the corresponding post office.
  • The process of obtaining Location ID is required to be instantaneous and hence the availability of an indexed database of telephone numbers and the lat/long position is required for quick recovery of information. For this purpose the Location ID database has to be kept ready for reference for the program. This database maybe refreshed and updated by using a geocoding program incorporated within Location ID system.
  • Routes (shortest routes) similarly have to be computed and kept ready for paths between the points (from the Caller to the destination) on the road network.
  • The CTI can capture the events of incoming call and capable of getting the CALLER ID and write the CALLER ID into a file. Triggering of the MapInfo Display could also be done using the CTI.
  • Using the above information the proposed solution is graphically described below.

Systen Description
CTI Interface CTI refers to the coordination of telephone calls with data processing functions. For example, when a call comes, it can be identified through its ANI (Calling number, obtained via ISDN or analog lines enable for caller identification). This identifier can trigger a database lookup to determine which department the call should be connected to, and who is the likely caller. The application may even consult the clock, forwarding calls to different agents or to a completely automated IVR (Interactive Voice Response) system depending on the time of day.

Description of a typical CTI architecture can be found in appendix A.

In the Location ID- CTI, the event of an incoming call and the capture of the CALLERID (Caller Identification) are trapped. This program runs as a continuous process monitoring the CTC server. In the event of a call the CALLERID is written into a text file in the root directory and the display module of the Location ID is executed.

Display Module The Display Module runs in a MapInfo GIS environment. It utilizes the map data of the city (say Mumbai), namely the building/ monument, road and region data and also uses the Location ID table and the Routes table created by the Geocoding Tool and the Path Finding tool respectively.

On execution the Display of all the maps in a single window is done. After reading the last entry of telephone number in the text file (trt.txt) done by the CTI program, the Display module then blinks at the point represented by the location (x,y) in the Location ID table. The map is also centered to that point. This action could be repeated by making clicking on the first button (Refresh) in the Location ID menu.

On Clicking the second button the Shortest Route to that point from a predefined point based on the routes table is displayed.

On Clicking the last button the list of roads to be traversed is displayed along with their identification numbers and the length.

Geocoding Tool This tool reads input data from the telephone users’ addresses (directory data) and writes into the Location ID table its latitude and longitude entries as x and y respectively. The values are read after matching the address fields to the map objects in the corrected digital map data. The matching is done based on region, street and building/(point features) matching sequentially. The string search is based on current name, old name and plot number in case of buildings while for streets it is old/new street names and pin code/locality name respectively.

Path Finding Tool This program reads the Location ID table and finds out the shortest path to that entry from a predefined point. The program finds these routes using the Dijkstra’s single source shortest path algorithm from a single vertex. These routes are stored in the Routes table with the telephone numbers as their id. The tool requires road data in tabular files (*.tab) and these road data need to be clean (devoid of dangles, multi-polyline object-free, circular path-free etc). A brief description of Dijkstra algorithm is described in the appendix B.

Technical Requirements
The basic hardwares /softwares those are required to run the system are as follows.

Hardware & Software

  • Pentium II based PC with 32 MB RAM (64MB recommended) with standard features and 256 color display)
  • 1.2 GB Hard disk memory
  • D21 H DialogicVoice Processing Board.
  • Windows NT 4.0/ 95 OS
  • MapInfo Professional ver 5.0 or above
  • CT Connect software
  • Switch Drivers for Dialogic processor board

For installation of the program the following data files/tables, as shown below, are copied into the directory (C:LOCID).

“Wards.tab”, “Railways.tab”, “Roads.tab”, ” Landmarks.tab”, “Location ID.tab”

“test.tab”, “routes.tab”, “landuse.tab”, “trt.txt”, “MTNLdata.tab”, “Test0.2.MBX”

The tools of Geocoding and Path Finding (Geocode.mbx and Route.mbx) can be installed optionally. The CTI component needs to be installed separately.

Application Execution
Make the CTI application active by running it (the CTC service on the server should be available). Wait till a telephone call is registered. In the event of an incoming call the blinking occurs for 5 seconds after which the place is labeled with a number. The number corresponding to it in the message window follows the details like latitude and longitude position, address and name of the Caller.

To repeat the Blink action press the first button on the Location ID menu. To find the shortest Path click on the second button. The shortest path to the point from the prefixed destination is displayed. To generate the Work Order browser table that is the list of roads to be traversed along with length information click on third button.

On receiving a new call a new MapInfo GIS window is opened. To obtain the information on the same window click on the first button of the Location ID menu in the first MapInfo window. The window display is as shown below. The execution process continues in the batch mode throughout till the user desires to cancel.


In our system testing, we have successfully executed a small sample of Mumbai city. There are few disadvantages of the system those are due to inherent inaccuracy or error in the input data. The road names are either missing or have duplicate names. The telephone subscribers’ addresses do not have one-to-one match with that of city digital records. The level of accuracy in digital data can not be in the individual subscriber’s level. Sometimes the road data, having both-ends not connected or even circular, need to be cleaned before using the routing solution. Due to these errors, the system does not give any solution. We are, therefore, updating our “Location ID” system to take into account these errors.

We are very much thankful to Dr. Arun Pande, Head, Applied Technology Group, Tata Infotech Ltd, for his conceptualisation of the application and guidance for reviewing and demonstration of the application system. We are thankful to Mr. Sanjay Agrawala of IDS, Calcutta for permitting to use “Amchi Mumbai” Digital data in demonstrating the system.


  • MTNL CD-ROM data of Mumbai, 1998, Mahanagar Telephone Nigam Limited, Mumbai, India.
  • Reference Manual of MapInfo Professional, Fourth Edition, 1997, MapInfo Corporation, New York, USA.
  • Reference Guide of MapBasic, Third Edition, 1996, MapInfo Corporation, New York, USA.
  • Student Workbook, Introduction to MapInfo Professional for Windows, 1997, MapInfo Australia Pty Limited, NSW, Australia.


  1. The classic CTI- MapInfo architecture is graphically described below.











  2. Following is a brief description of the path finding algorithm .

    //loop structure
    For I=0 to N-1
    Func_find [Vm,{T}],[Min dm]
    for edge(vm,vt)where vt belongs_to {T)
    if dt> dm+length((vm,vt))) then dt= dm+length((vm,vt)))
    end if
    next edge
    T=T- vm
    next I
    end sub


New layer…New layer…