Operations research

System, method and apparatus for tracking deployment of cellular telephone network sites

6792269

Abstract

A system, method and apparatus is disclosed for tracking deployment of cellular telephone network sites and providing real-time characteristic information about the deployment to one or more users. The system includes a plurality of computers interconnected in a network for use in tracking the deployment of the cellular telephone sites, the plurality of computers each having one or more processors, a memory device for storing one or more sets of instructions to be executed and a storage device coupled to the one or more processors, at least one computer being operative to execute the one or more sets of instructions. The method includes providing a user interface accepting project variables entered into a computer; color coding changes that are made to the variables; in real-time, determining cellular telephone site deployment characteristics based on current project variables; and providing the deployment characteristics to an output device. The apparatus includes a computer for use in tracking the deployment of the cellular telephone sites, the computer having one or more processors that execute one or more sets of instructions, a memory device for storing the one or more sets of instructions to be executed and a storage device coupled to the one or more processors.


Claims

The claimed invention is:

1. A computer-assisted automated method, comprising:

tracking deployment of cellular telephone network sites;

obtaining real-time characteristie information about the deployment of the sites;

providing the characteristie information to one or more users in real-time;

receiving variables associated with the characteristic information in a computer through an interface adapted for receiving the variables;

visually encoding changes in the variables;

providing visual feedback on a display device associated with the computer for identifying changes to the variables;

in real-time, processing the variables with the computer;

in real-time, tracking changes to the characteristic information made during the cellular telephone network site deployment process based on the variables; and

displaying up-to-date characteristic information of the cellular network site on the display device.

2. The method according to claim 1, further comprising providing summary characteristic information of the variables.

3. The method according to claim 1, wherein tracking changes to the characteristic information of the cellular telephone network site deployment process comprises tracking changes to the characteristic information of the cellular telephone network site deployment process selected from the group consisting of project timelines, changes made to the project variables, and summary project variables.

4. The method according to claim 1, wherein providing variables through an interface comprises providing variables through an interface shared by one or more users.

5. The method according to claim 4, wherein the one or more users have access to changes made to the characteristic information of the cellular telephone network site deployment project by at least one other user.

6. The method according to claim 5, wherein the at least one user has access to changes that were made to the characteristic information of the cellular telephone network site deployment project and which user made those changes.

7. The method according to claim 1, wherein determining changes to the characteristic information of the cellular telephone network site deployment project comprises:

determining task priorities; and

automatically renumbering the task priorities.

8. The method according to claim 1, wherein tracking changes to the characteristic information of the cellular telephone network site deployment process comprises automatically providing electronic mail messages to a predetermined electronic mail account upon project dates being marked completed or changed.

9. The method according to claim 1, wherein tracking changes to the characteristic information of the cellular telephone network site deployment process comprises automatically updating a downstream date population based upon predefined time intervals.

10. An apparatus, comprising:

a computer for use in tracking the deployment of the cellular telephone sites, the computer having one or more processors that execute one or more sets of instructions, a memory device for storing the one or more sets of instructions to be executed, a storage device coupled to the one or more processors, and a display device for displaying information; and

the instructions in the memory device in the computer causing the one or more processors to:

track the deployment of cellular telephone network sites;

obtain real-time characteristic information about the deployment of the sites;

provide the characteristic information to one or more users in real-time;

receive variables associated with characteristic information about the deployment of a cellular telephone network site from one or more users;

store the variables in the storage device;

visually encode changes in the variables;

provide visual feedback on a display device associated with the computer for identifying changes to the variables;

in real-time, process the variables with the computer;

in real-time, track changes to the characteristic information made during the cellular telephone network site deployment process based on the variables; and

display up-to-date characteristic information of the cellular network site on the display device.

11. The apparatus according to claim 10, wherein the display device is selected from the group consisting of a monitor, a printer, a facsimile, and a plotter.

12. The apparatus according to claim 10, wherein the instructions in the memory device of the computer cause the one or more processors to provide summary information of associated with the variables.

13. The apparatus according to claim 10, wherein the instructions in the memory device of the computer cause the one or more processors to track changes selected from the group consisting of timelines, the variables, and summary of the variables.

14. The apparatus according to claim 10, wherein the instructions in the memory device of the computer cause the one or more processors to provide an interface to one or more users.

15. The apparatus according to claim 14, wherein the one or more users have access to changes that were made to the characteristic information of the cellular telephone site by at least one other user.

16. The apparatus according to claim 15, wherein the at least one user has access to changes that were made to the characteristic information of the cellular telephone network site and which user made the changes.

17. The apparatus according to claim 10, wherein the instructions in the memory device of the computer include instructions that cause the one or more processors to:

determine task priorities; and

automatically renumber the priorities.

18. The apparatus according to claim 10, wherein the instructions in the memory device of the computer include instructions that cause the one or more processors to provide electronic mail messages upon project dates being marked completed or changed.

19. The apparatus according to claim 10, wherein the instructions in the memory device of the computer include instructions that cause the one or more processors to automatically update downstream date population based upon predefined time intervals.

20. A computer readable medium having a set of computer instructions encoded thereon, comprising:

the set of computer instructions being operative with a computer to:

track the deployment of cellular telephone network sites;

obtain real-time characteristic infonnation about the deployment of the sites;

provide the characteristic information to one or more users in real-time;

provide an interface for entering variables associated with characteristic information of a cellular telephone network site into a computer;

visually encode changes in the variables; in real-time, process the variables with the computer;

in real-time, track changes to the characteristic information made during the cellular telephone network site deployment process based on the variables; and

display up-to-date characteristic information of the cellular network site on a display device.

21. A system, comprising:

a plurality of computers interconnected in a network for use in tracking the deployment of the cellular telephone sites, the plurality of computers each having one or more processors, a memory device for storing one or more sets of instructions to be executed, a storage device coupled to the one or more processors, and a display device for displaying information; at least one computer being operative to execute the one or more sets of instructions; and

the one or more sets of sets of instructions in the memory device in at least one computer causing the one or more processors associated therewith to:

track the deployment of cellular telephone network sites;

obtain real-time characteristic information about the deployment of the sites;

provide the characteristic information to one or more users in real-time;

receive variables associated with characteristic information about the deployment of a cellular telephone network site from one or more users associated with one or more other computers coupled to the network;

store the variables in the storage device associated with one or more computers coupled to the network;

visually encode changes in the variables;

provide visual feedback on a display device associated with the computer for identifying changes to the variables;

in real-time, process the variables with the computer;

in real-time, track changes to the characteristic information made during the cellular telephone network site deployment process based on the variables; and

display up-to-date characteristic information of the cellular network site on the display device, the display device being coupled to the network.

22. The system according to claim 21, wherein the display device is selected from the group consisting of a monitor, a printer, a facsimile, a computer, and a plotter.

23. An apparatus, comprising:

computing means for tracking the deployment of the cellular telephone sites, the computing means having one or more processors for executing one or more sets of instructions, memory means for storing the one or more sets of instructions to be executed and a storage means coupled to the one or more processors; and

the instructions in the memory means to be executed by the computing means to:

track the deployment of cellular telephone network sites;

obtain real-time characteristic information about the deployment of the sites;

provide the characteristic information to one or more users in real-time;

receive variables associated with characteristic information about the deployment of a cellular telephone network site from one or more users;

store the variables in the storage device;

visually encode changes in the variables;

provide visual feedback on a display device associated with the computer for identifying changes to the project variables;

in real-time, process the variables with the computer;

in real-time, track changes to the characteristic information made during the cellular telephone network site deployment process based on the variables; and

display up-to-date characteristic information of the cellular network site on the display device.

24. A system, comprising:

a plurality of computing means interconnected in a network for tracking the deployment of the cellular telephone sites, the plurality of computing means each having one or more processing means, memory means for storing one or more sets of instructions to be executed by the processing means, a storage means coupled to the one or more processing means, and a display means for displaying information; at least one computing means being operative for executing the one or more sets of instructions; and the one or more sets of sets of instructions in the memory means in at least one computing means causing the one or more processing means associated therewith to:

track the deployment of cellular telephone network sites;

obtain real-time characteristic information about the deployment of the sites;

provide the characteristic information to one or more users in real-time;

receive variables associated with characteristic information about the deployment of a cellular telephone network site from one or more users associated with one or more other computers coupled to the network;

store the project variables in the storage device associated with one or more computers coupled to the network;

visually encode changes in the variables;

provide visual feedback on a display device associated with the computer for identifying changes to the project variables;

in real-time, process the variables with the computer;

in real-time, track changes to the characteristic information made during the cellular telephone network site deployment process based on the variables; and

display up-to-date characteristic information of the cellular network site deployment project on the display device, the display device being coupled to the network.


Description

BACKGROUND

1. Technical Field

The system, method and apparatus relate generally to telecommunications. More particularly, the system, method and apparatus relate to tracking the deployment of cellular telephone network sites.

2. Description of Related Art

Related art systems provide data and processes, such as computer software programs, in multiple databases, spreadsheets and other files that are not interrelated, interconnected or in communication with each other. Accordingly, users of such data and processes on a distributed network are unable to execute the software programs and access the data on a real-time basis. For example, such users are unable to access modifications to the data or upgrades to the software programs. Furthermore, such users are unable to access changes to data which may have an effect on the user's function or processes made by others, on a real-time basis. There are no known related art systems that provide real-time access to a network-organized repository of data and processes, such as software programs, within a distributed data and processes information system.

Telecommunication systems generally employ switches that establish and release connections between two or more communication circuits. Generally, a control processor is utilized to control the operation of one or more telecommunication switches in a given geographic region. The control processor may be utilized to control the operation of one or more digital cellular switches deployed in a particular telecommunication system in a given city. Different geographic regions can generally deploy one or more telecommunication switches that are in turn controlled by a telecommunication switch control processor.

Failures that occur during a telecommunication transaction can be tracked by generating a failure message at the telecommunication switch control processor. Such failure messages generated at the telecommunication switch control processor are referred to as call processing failures occurring at the telecommunication switch control processor.

In general, related art systems provide reports of such call processing failures occurring at the telecommunication switch control processor. The reports are useful to a telecommunication system performance evaluation team for purposes of evaluating the overall operation of the telecommunication system. In accordance with the reports, the performance evaluation team will generally take remedial actions based on an analysis of the cell processing the failure data. However, in related art telecommunication systems, such reports are normally available only for the previous day and are not available substantially concurrently with the occurrence of a failure. There are no known systems that allow a telecommunication system performance evaluation team to receive and evaluate reports of call processing failures occurring at the telephone switch control processor on a real-time basis. Accordingly, the performance evaluation team cannot take the necessary remedial action in response to the call processing failure on a real-time basis.

Failures that occur during a telecommunication transaction can also be tracked by generating a failure message at the digital cellular switch. Such failure messages generated at the digital cellular switch are referred to as call processing failures occurring at the digital cellular switch.

In general, related art systems provide such digital cellular switch failure reports. The reports are useful to a telecommunication system performance evaluation team for purposes of evaluating the overall operation of the telecommunication system. In accordance with the reports, the performance evaluation team will generally take remedial actions based on an analysis of the call processing failure data. However, in related art telecommunication systems, such reports are normally available only for the previous day and are not available substantially concurrently with the occurrence of a failure. There are no known systems that allow a telecommunication system performance evaluation team to evaluate reports of call processing failures occurring at the digital cellular switch on a real-time basis. Accordingly, the performance evaluation team cannot take the necessary remedial action in response to the call processing failure on a real-time basis.

Telecommunication transaction records (call records) generally are collected from mobile telephone subscribers and used for various purposes. For example, the call records can be used for billing purposes, for tracking illegal activity, for troubleshooting the telecommunication system and the like. Related art methods and systems can obtain call records through either the billing system or by searching through every telecommunication switch on the system.

Searching for telephone call records in the billing system has several drawbacks. One drawback of such a system is that it could take days or weeks to obtain the call records.

Another related art method and system obtains the call records by searching within every telecommunication switch throughout the telecommunication system. The drawback with searching the switches for call records is that a user must perform the searching function at every existing switch. Accordingly, it may take up to 2-4 hours or more in order to obtain a complete set of call records at the central office. Another drawback of searching at every telecommunication switch location is that telephone call records are available at the switch insofar as there is adequate disk storage available at the switch. For example, generally, a switch only holds 3 to 4 days' worth of call records in its storage disk. Any call record older than 3 to 4 days would generally not be available to the user.

There are no known related art systems that can provide telephone call records on a real-time basis. For example, there are no known methods or systems that collect all incoming call records in real-time from mobile telecommunication devices of various subscribers of the telecommunication system. Furthermore, there are no known related art systems or methods that make the call records available to a user in real-time. As an example, real-time means substantially concurrently with the telecommunication device hanging up. In general, within 10-15 seconds of the telecommunication device hanging up, the call records become available for the user to review and manipulate. In addition, there are no known related art systems or methods that store the call records for longer than about 3 to 5 days.

Related art telecommunication methods and systems for collecting and communicating court-ordered requests of call records were found to be undependable. Such methods and systems collect transactional call records requested by court order and a telecommunication switch sends the call records to an agency that is responsible for managing and processing the court orders. However, if any problems are encountered within the telecommunication system, the call records are lost and cannot be communicated to the responsible agency.

There are no known methods or systems that filter incoming call records from a call record database associated with a court order and automatically communicate those call records, either by way of electronic mail (e-mail) message or by way of facsimile transmission, to the agency responsible for generating the court-ordered request. Also, there are no known methods or systems that make the call records available even if the court-ordered request is generated after the fact.

Related art systems are unable to obtain real-time telecommunication cell-specific information during call outages or emergencies. There are no known methods or systems that allow users to obtain up-to-date real-time information associated with a cellular telephone network when needed.

Related art systems are unable to obtain information regarding the deployment of cellular telecommunication sites on a real-time basis. For example, related systems are generally not updated with current information until a deployment project team meets at periodic intervals. In the meantime, deployment project team members are generally unaware of the status of the deployment project until a meeting is held. Accordingly, there is a need for a real-time process that is able to provide deployment project members with real-time up-to-date project information substantially instantaneously once it is entered into the process. Furthermore, there is a need for a process that eliminates the need for maintaining separate databases spread out across various project teams and updating the separate databases.

There are no known related art processes that can provide project teams members with real-time up to date project information once that information is entered into the process. There are no known processes that eliminate the need for maintaining separate databases spread out across various project teams and updating the separate databases. For example the MICROSOFT PROJECT TM process does not provide the type of benefits required for obtaining up to date real-time information associated with the deployment of cellular telecommunication network sites. There are no known related art systems that interact with a user's or project team's electronic mail system to provide real-time information such that when a user executes instructions associated with the process they are made aware of any changes in project status on a real-time basis and they are provided with access to the updated project data on a real-time basis.

In addition, there are no known related art systems or methods that provide auto down streaming, such that if a user changes a project variable such as a date, the process can automatically change downstream dates. Also, there are no known related art systems that provide the user with an electronic mail message if a particular project variable is edited or has been satisfied. There are no known related art systems that allow a user to obtain up to date real-time information associated with the deployment of cellular telecommunication network sites.

SUMMARY

In accordance with the invention the limitations of the related art described above and other limitations that will become apparent upon reading and understanding the present specification are overcome by providing a system, method and apparatus for obtaining real-time information associated with the deployment of cellular telephone network sites. The system, method and apparatus provide a user with the information regarding the deployment of cellular telephone network sites on a real-time basis.

One aspect of the invention provides a method for tracking deployment of cellular telephone network sites and providing real-time characteristic information about the deployment to one or more users. The method includes providing a user interface for entering project variables into a computer; color coding changes that are made to the variables; in real-time, determining cellular telephone site deployment characteristics based on current project variables; and providing the deployment characteristics to an output device.

Another aspect of the invention provides an apparatus for tracking deployment of cellular telephone network sites and providing real-time characteristic information about the deployment to one or more users. The apparatus includes a computer for use in tracking the deployment of the cellular telephone sites, the computer having one or more processors that execute one or more sets of instructions, a memory device for storing the one or more sets of instructions to be executed and a storage device coupled to the one or more processors; and the instructions in the memory device in the computer causing the one or more processors to: receive project variables from one or more users; store the project variables in the storage device; color code changes made to the project variables; in real-time, determine deployment characteristics of the cellular telephone sites based on current project variables; and provide the deployment characteristics to an output device.

A further aspect of the invention provides a computer readable medium having a set of computer instructions encoded thereon. The computer readable medium includes the set of computer instructions being operative with a computer to: provide a user interface for entering project variables into a computer; color code changes that are made to the variables; in real-time, determine cellular telephone site deployment characteristics based on current project variables; and provide the deployment characteristics to an output device.

Yet a further aspect of the invention provides a system for tracking deployment of cellular telephone network sites and providing real-time characteristic information about the deployment to one or more users. The system includes a plurality of computers interconnected in a network for use in tracking the deployment of the cellular telephone sites, the plurality of computers each having one or more processors, a memory device for storing one or more sets of instructions to be executed and a storage device coupled to the one or more processors, at least one computer being operative to execute the one or more sets of instructions; and the one or more sets of sets of instructions in the memory device in at least one computer causing the one or more processors associated therewith to: receive project variables from one or more users associated with one or more other computers coupled to the network; store the project variables in a storage device associated with one or more computers coupled to the network; color code changes made to the project variables; in real-time, determine deployment characteristics of the cellular telephone sites based on current project variables; and provide the deployment characteristics to an output device, the output device being coupled to the network.

Still a further aspect of the invention provides an apparatus for tracking deployment of cellular telephone network sites and providing real-time characteristic information about the deployment to one or more users. The apparatus includes computing means for tracking the deployment of the cellular telephone sites, the computing means having one or more processors for executing one or more sets of instructions, memory means for storing the one or more sets of instructions to be executed and a storage means coupled to the one or more processors. The instructions in the memory means to be executed by the computing means to: receive project variables from one or more users; store the project variables in the storage device; color code changes made to the project variables; in real-time, determine deployment characteristics of the cellular telephone sites based on current project variables; and provide the deployment characteristics to an output device.

Yet another aspect of the invention provides a system for tracking deployment of cellular telephone network sites and providing real-time characteristic information about the deployment to one or more users. The system includes a plurality of computing means interconnected in a network for tracking the deployment of the cellular telephone sites, the plurality of computing means each having one or more processing means, memory means for storing one or more sets of instructions to be executed by the processing means and a storage means coupled to the one or more processing means, at least one computing means being operative for executing the one or more sets of instructions. The one or more sets of sets of instructions in the memory means in at least one computing means causing the one or more processing means associated therewith to: receive project variables from one or more users associated with one or more other computers coupled to the network; store the project variables in a storage device associated with one or more computers coupled to the network; color code changes made to the project variables; in real-time, determine deployment characteristics of the cellular telephone sites based on current project variables; and provide the deployment characteristics to an output device, the output device being coupled to the network.

These and various other features of novelty as well as advantages that characterize the invention are pointed out with particularity in the claims annexed hereto and form a part hereof. However, for a better understanding of the invention, reference should be made to the drawings which form a further part hereof, and to accompanying descriptive matter, in which there are illustrated and described specific examples of the system, method and apparatus in accordance with the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers represent corresponding parts throughout, where:

FIG. 1 illustrates one embodiment of a computing system having one or more computers in communication via a network to perform logical operations;

FIG. 2 illustrates one embodiment of a hardware environment of a general-purpose computer to perform the logical operations;

FIG. 3 illustrates one embodiment of a logic flow diagram;

FIG. 4 illustrates one embodiment of a distributed information management system;

FIG. 5 illustrates one embodiment of a diagram of a telecommunication switch;

FIG. 6 illustrates one embodiment of a distributed information management system;

FIG. 7A illustrates one embodiment of a representation of a call record of a telecommunications system;

FIG. 7B illustrates one embodiment of an output display of a table;

FIG. 8 illustrates one embodiment of a logic flow diagram for monitoring and capturing telecommunication system data;

FIG. 9 illustrates one embodiment of a logic flow diagram for communicating and managing telecommunication system data;

FIG. 10 illustrates one embodiment of a logic flow diagram for processing court-ordered surveillance information;

FIG. 11A illustrates a related art system for processing court-ordered requests;

FIG. 11B illustrates one embodiment of a system for processing court-ordered requests; and

FIG. 12 illustrates one embodiment of a logic flow diagram for obtaining information associated with a telecommunication system.

DETAILED DESCRIPTION

In the following description of the specific embodiments, reference is made to the accompanying drawings which form a part hereof and which show by way of illustration the specific embodiments in which the invention may be practiced. In the accompanying drawings, like reference numbers represent corresponding parts throughout the several views. It is to be understood that other embodiments may be utilized as structural changes may be made without departing from the scope of the invention.

I. Distributed Information System for Data and Processes

The distributed information system for data and processes in accordance with one embodiment of the invention includes one or more databases and processes, such as computer software programs, that share a common database. In one embodiment, the distributed information system for data and processes can utilize a structured query language (SQL) common database for providing a distributed database management system. For example, a MICROSOFT SQL TM server can be used to provide a common database function whereby a plurality of general-purpose computers in communication with the SQL server can carry out the manipulation of data stored on the SQL server while the SQL server performs other operations associated with the distributed database management system. Those skilled in the art will appreciate that the SQL server can be coupled to or be in communication with one or more storage devices for storing data or computer software programs. In accordance with one embodiment of the invention, any changes that are made to a particular set of data by the one or more computer software programs in one process, or by one or more users, are reflected into and are accessible by other computer software programs within the distributed information system on a real-time basis.

Referring now to FIG. 1, where one embodiment of one set of components that can be used to carry out the system, method and apparatus is illustrated in diagram form. In one embodiment, the system components comprising the distributed information system 10 include an application server 12, a shared server 14, a database server 16, a general-purpose computer 18 and a workstation 26. The application server 12 provides access to one or more computer software programs 20 stored therein or stored in a database 22 in communication with the application server 12. Further in one embodiment, the application server 12 is in communication with one or more other components of the other distributed information system 10, such as the shared server 14, the database server 16, the general-purpose computer 18 and the workstation 26, for example. The one or more system components also can communicate with each other via well-known communications hardware and software. Still further in one embodiment, the one or more system components can be interconnected in a network 24 configuration in accordance with various well-known network topologies. For example, the components of the distributed information system 10 can be interconnected in a bus topology, ring topology, a star topology or combinations thereof. Those skilled in the art will appreciate that any one these network topologies, or combinations thereof, can provide an adequate implementation of the system, method and apparatus.

The general-purpose computer 18, the shared server 14, the database server 16 and the workstation 26 can each execute the computer software programs 20 stored in the application server 12 or programs that are stored in the database 22 depending on the specific implementation. In one embodiment, the general-purpose computer 18 can perform the function of the workstation 26 or other computing systems without departing from the scope of the invention. Those skilled in the art will appreciate that the general-purpose computer 18 can be provided with various peripherals in communication with or coupled thereto. For example, the general-purpose computer 18 can be coupled to an optical disk drive 28 for reading and writing instructions or data to be used by the general-purpose computer 18. Moreover, a tape drive 30 can be coupled to the general-purpose computer 18 for storing data and processes for backup purposes, for example. In addition, a storage device 32, such as a floppy disk drive or hard disk drive can be coupled to the general-purpose computer 18 for storing instructions and data to be used by the general-purpose computer 18. Instructions and/or data can be provided to the general-purpose computer 18 via a removable storage medium 34. A communication device 36 such as a modem can also be provided with the general-purpose computer 18 to serve various communication purposes. Also, an output device 38, such as a printer, or a monitor 44, can be provided in communication with or coupled to the general-purpose computer 18 for providing the user with reports and the like.

In use, a user operating the general-purpose computer 18 sends a request to access the one or more computer software programs 20 from the application server 12. Such computer software programs 20 can then be delivered to the general-purpose computer 18, the shared server 14, the database server 16 or the workstation 26 for execution thereon. Accordingly, any changes that are made by the user operating the general-purpose computers 18 in communication with the network 24 to any of the programs 20 or data residing within the databases 22 distributed throughout the distributed information system 10, will be available and accessible by the other system components and users. Those skilled in the art will appreciate, that if more than one general-purpose computers 18 are interconnected in a network 24, changes to the database 22 made by one user operating one general-purpose computer will be available and accessible to any other user operating any other general-purpose computer 18 in communication with the network 24 on a real-time basis (e.g., substantially instantaneously).

One embodiment of a hardware environment of a general-purpose computer 18, a distributed information system 10, a telecommunication switch and a switch-master, whereby the instructions of computer software program 20 can be executed by, or interact with, are described below. Furthermore, specific embodiments of the computer software programs 20, such as program 20 for receiving and capturing call processing failures and digital cellular switch failures, communicating and managing telecommunication call records, processing court-ordered surveillance requests, obtaining real-time information associated with a network and tracking the deployment of telecommunication network sites on a real-time basis also are described below.

II. General-Purpose Computer

Referring now to FIG. 2, one embodiment of a hardware environment of a general-purpose computer 18 provided for executing one or more computer software program 20 instructions is shown in diagram form. The general-purpose computer 18 can be, for example, an IBM-compatible computer that operates under the control of a number of operating systems. For example, the general-purpose computer 18 may operate under a DOS, OS/2, WINDOWS, WINDOWS NT, UNIX, XENIX, LINUX or PICK operating systems, among others, that are generally well known to those skilled in the art.

In one embodiment, the general-purpose computer 18 can include one or more peripherals that are coupled to or are in communication with the general-purpose computer 18. For example, the general-purpose computer 18 can include several input devices such as a mouse 40 or a keyboard 42. Furthermore, the general-purpose computer 18 can include several output devices such as a monitor 44, a printer 38 or a plotter. In addition, the general-purpose computer 18 can include several communication devices such as, for example, a modem 36.

The general-purpose computer 18 can also be adapted to be coupled to or in communication with one or more other general-purpose computers distributed throughout the distributed information system 10. For example, the one or more general-purpose computers can be interconnected or configured as a network 24. As discussed above, the network topology can be a bus topology, a ring topology, a star topology or combinations thereof without departing from the scope of the invention. Those skilled in the art will appreciate that any one of these network topologies, or combinations thereof, can provide an adequate network implementation for the system, method and apparatus. Still other peripherals may be coupled to the general-purpose computer 18 such as, for example, a storage device 32 such as a hard disk drive or floppy disk drive, an optical disk drive 28, a tape drive 30 and the like. Those skilled in the art will appreciate that the above list of peripherals is not exhaustive and that other peripherals may be utilized in conjunction with the general-purpose computer 18 without departing from the scope of the invention.

The general-purpose computer 18 also can include several other components known generally to those skilled in the art as the motherboard, interfaces, adapters and controllers. For example, a network adapter 45 may be utilized to provide a communication means or to couple the general-purpose computer 18 to one or more other general-purpose computers, one or more workstations, or more mainframe computers or servers distributed throughout the distributed information system 10. Also, a parallel interface 46 may be provided for coupling the general-purpose computer 18 to various printers 38 and plotters. Furthermore, a serial interface 48 may be provided for interfacing a communication device, such as a modem 36 to the general-purpose computer 18. In addition, a video graphics adapter 50 may be utilized to couple the general-purpose computer 18 to the monitor 44. Moreover, a storage device controller 52, e.g., a hard disk drive controller, a floppy disk drive controller or an optical disk drive controller, may be utilized for controlling the hard disk/floppy disk drive 32, the optical disk drive 28, and the like.

The motherboard of the general-purpose computer can include one or more central processing units 52 and one or more memory devices 54 for storing the instructions of software programs to be executed by the central processing unit 52 for carrying out a particular algorithm or function. The one or more central processing units 52 may be custom manufactured for a specific application at hand, or may be selected from a wide variety of processors and controllers that are generally available on the market and well known to those skilled in the art. For example, single chip or multi-chip processors manufactured by the INTEL CORPORATION including the 8051, 80386, 80486, PENTIUM and PENTIUM PRO family of processors can be used. In addition, single chip or multi-chip processors manufactured by the MOTOROLA CORPORATION including the MC68000 and MC68040 can be utilized. Further, various clones of the above listed processors that are readily available on the market can be used. For example, processors manufactured by ADVANCED MICRO DEVICES (AMD), CIRYX, C&T and IBM can be readily adapted and utilized as the central processing unit 52 for the general-purpose computer 18.

The general-purpose computer 18 can also act as a workstation 26 whether it be in a standalone configuration or interconnected in the network 24. In addition, workstations 26 requiring additional performance may utilize reduced instruction set computing (RISC) architecture processors and one or more SPARC central processing units 52 such as those manufactured by SPARC INTERNATIONAL, INC., SUN MICROSYSTEMS, INC., the POWER PC TM by MOTOROLA, the AMD 29000 TM, and the like.

Memory devices 54 such as random access memories (RAM), read only memories (ROM) and erasable programmable read only memories (EPROM) are generally used for storing the instructions of the software programs 20 to be executed by the central processing unit 52 of the general-purpose computer 18 for carrying out specific algorithms or functions. These memory devices 54 are well known to those skilled in the art and are available in a wide range of configurations and from a wide variety of manufacturers. Those skilled in the art will appreciate and recognize that the above recitation of central processing units 52 and memory devices 54 is not exhaustive and that others may be substituted without departing from the scope of the invention.

III. Network Organized Repository of Data

Referring now to FIG. 3, where one embodiment of a logic flow diagram 19 of a network organized repository of data is shown in logic diagram form. At logic block 21, one or more computer software programs 20 are stored in a shared database 22. At logic block 23, data are also stored in the shared database 22. At decision block 25, it is determined whether a user, a process or a computer has requested access to the programs 20 or data that are stored in the shared database 22. If access to the programs 20 is requested, at logic block 27 the user is permitted access to a selected program 20 stored in the shared database 22. At decision block 29, it is determined whether the user has modified the program 20. If the program has not been modified, the logic flow returns to the previous process. However, if the selected program 20 is modified in any way, at logic block 31, any changes or modifications that are made to the program 20 are reflected in the other programs 20 that are stored in the database 22. Furthermore, at logic block 33, the changes made to the programs 20 stored in the database 22 are made available to every other program on the distributed information system 10 on a real-time basis.

If, at logic block 25, access to data is requested, at block 35 the user is provided with access to the data stored in the database 22. If the data are modified, as determined at block 37, at block 39 the modifications made to the requested data are reflected in all other data stored in the database 22. At block 41, the changes made to the data stored in the database are made available on the distributed information system 10 on a real-time basis.

IV. Telecommunication Distributed Database Management System

Referring now to FIG. 4, where one embodiment of the distributed information system 10 is illustrated which can be utilized as part of a telecommunication distributed database management system 56. In one embodiment, the general-purpose computer 18 can be in communication with one or more other general-purpose computers configured and adapted as the database server 16 component of the telecommunication distributed database management system 56. The database server 16 can be configured as a distributed database management server for creating, maintaining and viewing database data. Those skilled in the art will appreciate that, in addition to the data, the database 22" can also include one or more computer software programs 20 therein.

In one embodiment, the database server 16 of the telecommunication distributed database management system 56 can utilize a structured query language (SQL) database for creating, viewing and maintaining database data. MICROSOFT, ORACLE, GUPTA, INFORMIX, POWERSOFT, ORACLE and SYBASE can all supply SQL databases, for example. Accordingly, the database server 16 can implement an SQL database server such that one or more general-purpose computers 18, workstations 26 or other servers can access and manipulate the data stored in the database 22" that is accessible by the database server 16. In addition, the database server 16 can manage and coordinate the data stored in the database 22 while also performing calculations locally. For example, as discussed above, the database server 16 can be comprised of a general-purpose computer 18 or workstation 26 that includes one or more central processing units 52 for executing instructions according to one or more software programs 20 and a memory 54 for storing such instructions. The database server 16 also can be configured and adapted to perform additional functions and execute additional algorithms in addition to manipulating data within the database 22".

For example, in one embodiment, the database server 16 can execute instructions of a software program 20 for carrying out tasks such as managing the storage and retrieval of database 22" data, generating reports, displaying data, transmitting data to one or more peripheral devices such as printers 38, plotters, facsimiles, modems 36 and other similar devices. In addition, in one embodiment, the database server 16 can execute instructions of one or more software programs 20 for carrying out tasks such as transmitting database data or specific reports to one or more other general-purpose computers 18 or workstations 26 that are in communication therewith.

Further, in one embodiment, the database server 16 can execute instructions of one or more software programs 20 for carrying out tasks such as communicating database 22" data or reports to one or more other computer software programs 20 whose instructions are executed on other general-purpose computers across the telecommunication distributed database management system 56. In addition, the database server 16 can execute instructions of one or more software programs 20 for carrying out tasks such as sending database data or reports to a network address or electronic mail (e-mail) address in response to a query or in response to a predetermined set of conditions. Still further in one embodiment, the database server 16, or for example any one of the one or more general-purpose computers 18 in communication with the network 24, can execute instructions of a software program 20 for carrying out the function of broadcasting a wireless signal to be received by one or more users carrying a wireless device or to be received by other devices having incorporated therein a device in response to a predetermined set of conditions. Those skilled in the art will appreciate that the wireless device can be, for example, a pager receiving a paging signal. Those skilled in the art will recognize that the above-enumerated tasks to be performed by the database server 16 can be performed by other components within the telecommunication distributed database management system 56. Also, such tasks are illustrative in nature are not intended to limit the scope of the invention.

V. Telephone Switch

In one embodiment, as illustrated in FIG. 4, a telecommunication switch 58 provides a communication path or circuit between a transmitting telecommunication device and a receiving telecommunication device, and vice-versa. Those skilled in the art will appreciate that the transmitting and receiving telecommunication devices include telephones (e.g., mobile or cellular) pagers or the like. The communication path or circuit remains in place for the duration of the transaction between the transmitting and the receiving devices. The switch 58 can process various signal types. For example, the switch can process voice (e.g., digital and analog voice), data, text, images and the like. As described herein, the telecommunication switch 58 can be associated with both wireless and wireline telecommunication devices. Furthermore, in one embodiment of, the telecommunication switch 58 can refer to an electronic switching office that switches calls from a cellular telephone to a wireline telephone or a digital cellular switch. The telecommunication switch 58 also can perform such tasks as controlling the handoff of transactions between cells in a cellular network and monitoring various transaction parameters. For example, the telecommunication switch 58 can provide telephone usage, cell monitoring data or transactional data, hereinafter referred to as call records 62, to various components of the telecommunication distributed database management system 56. The call records 62 are generated by telecommunication devices, for example from cellular telephones owned by subscribers 144. One embodiment of the telecommunication switch 58 also can include a storage device 60, for example it can include a tape drive, a hard drive, a disk drive or optical drive for the local storage of various call records 62.

An electronic control processor 64 (ECP) can be provided within the system for controlling the telecommunication switch 58. The ECP 64 can control the operation of one or more telecommunication switches 58 servicing a particular geographic region. For example, each geographic region near a major metropolitan area will generally have one or more ECP's 64 for controlling the operation of one or more telecommunication switches 58. In one embodiment, the data emerging from the ECP 62 include AMA records. AMA records are automatic message accounting records, which is another name for call records.

Furthermore, the ECP 64 can be configured to send a feed out to a switch-master 66 for clone detector fraud and at the same time, the ECP 64 can send a feed out to the home office. In other words, the ECP 64 can act as a gateway for directing where some of the call records 62, such as cell records, should go. Those skilled in the art will appreciate that the call records 62 can be exported into one of the programs 20 within the system 56, such as a spreadsheet, for additional analysis. Several different feeds also can be provided from the switch 58 to the switch-master 66. For example, a billing feed 142 and a data feed 143 can both be provided from the switch 58 to the switch-master 66. Alternatively, the data feed 143 can provide information associated with telecommunication failure data to the central office without the billing information. Feed data can be analyzed in various ways. For example, an analysis can be conducted with respect to how the ECP 64 viewed a particular telecommunication failure and how the switch 58 viewed the telecommunication failure, for example.

In a market using exclusively ERICSSON wireless technology and ERICSSON telecommunication switches 58, for example, the data feed 143 can be handled differently. The ERICSSON implementation is generally provided with a separate processor and a user back at the central office receives very little information. The majority of analysis will be performed based on the billing records. As discussed above, one embodiment of a telecommunication switch 58 can be a digital cellular switch. In one embodiment, the ECP 64 also can be coupled to the switch-master 66, which is discussed below.

VI. Switch-Master

In one embodiment, as illustrated in FIG. 4, the ECP 64 and/or the switch 58 interfaces with the switch-master 66. The switch-master 66 is an electronic device that operates under the control of a UNIX operating system, for example. Its function is to take a feed 145 coming from the ECP 64 that the AMA is teleprocessing. In addition, the telecommunication company's billing department uses the switch-master 66 for collecting call records 62. Moreover, the switch-master 66 can provide feeds 68 for detecting roamers 70, frauds 72 and other functions 74. The switch-master 66 is generally contained within a building at a particular telecommunication cell site. It is not part of the manufacturer's equipment, such as LUCENT, ERICSSON, nor is it part of the switch 58. The switch-master 66 is a self-contained electronic device that performs its own set of functions.

As discussed above, the switch-master 66 generally operates under the control of the UNIX operating system and, generally, there is a switch-master 66 for every switch 58 throughout a given telecommunication system. The switch-master 66 is maintained by a special group and is generally used for billing purposes. For example, the switch-master 66 can be provided with a billing feed 76 used for sending billing information to the billing system of the telecommunication system.

One embodiment of the switch-master 66 includes a storage device 78. For example, the switch-master can include a tape drive, a hard drive, a disk drive or an optical drive for local data storage. The switch 58 corresponding to a specific switch-master 66 stores all of the switch's 58 call records 62 on the switch-master's 66 own storage device 78. Periodically, every morning for example, the call records 62 stored in the switch's 58 storage device 60 are transferred and stored into the switch-master's 66 storage device 78. Accordingly, the entire billing contained in the switch 58 is sent to the storage device 78 within the switch-master 66 to be stored therein. One embodiment of the storage device 60 can be provided within the switch 58 itself, and accordingly, information stored in the storage device 60 can be provided to the switch-master 66. Memory can also be provided within the switch 58 or the switch-master 66 for temporarily storing the information prior to transferring it to a storage device (e.g., within the switch 58 or within the switch-master 66, depending on the direction in which the information is being transferred).

Turning now to FIG. 5, where one embodiment of a computer software program 20' is illustrated which interacts with the switch-master 66 as follows. The computer software program 20' allows a user logged into the general-purpose computer 18 to log into the switch-master 66 and execute a script 80. The script 80, in turn, allows the user to access a file 82 containing the call records 62 stored within the switch-master 66. When the switch-master 66 receives a billing feed 76, for example a serial feed, it dumps the call records 62 to the file 82. Generally, that file 82 is given a name, such as "000413.13," which represents the year, hour and day that the file 82 was created. Once these files 82 are generated, they can be compressed and the name of the file can subsequently be changed. Once the information is written to the file 82, the script 80 takes out the feed 76 and the file 82 is sent to the central office 77. In case there is a network failure, for example, a transmission control protocol/internet protocol (TCP/IP) connection failure, during the transfer, a pointer is stored within the switch-master 66 indicating the last record that was sent.

One embodiment of a computer software program (e.g., DD_RUN, to be discussed in more detail below) constantly looks for such system failures. Accordingly, if a failure occurs, the software program 20 provides instructions to the general-purpose computer 18 to shut down all processes and then restore them. Therefore, when the user logs in and executes the script 80, the script 80 is able to determine the last call record 62 that was sent prior to the interruption in the communication channel and will send the next call record 62 on the list.

In the event of a shutdown or loss in communication, there is always the possibility of actually losing some call records 62. If such a failure occurs, several call records 62, up to 200 for example, may actually be lost. Although the likelihood of losing a large number of call records 62 is remote, the system 56 provides the ability for determining who the calling party was and to see how they were being billed and resolve the situation. The system 56 can recreate more than 99% of the call records 62 and the billing records in case of a loss in communication during transmission.

VII. Computer Software Programs

A. Capturing and Processing Call Processing Failures Occurring at a Telephone Switch Control Processor and Call Processing Failures Occurring at a Digital Cellular Switch

Referring now to FIG. 6, where one embodiment of a system 56 for capturing and processing call processing failures occurring at a telephone switch control processor 64 and at a digital cellular switch 58 is shown in diagram form. The instructions of one or more computer software programs 20 (e.g., child applications 92) are executed on a general-purpose computer 18 for carrying out the function of capturing and processing the telephone call processing failure data collected at the switch 58 on a real-time basis (e.g., substantially instantaneously as the failures occur). In one embodiment, the instructions of the one or more software programs 20 can be executed on a general-purpose computer 18 for carrying out the function of analyzing the captured data and presenting the data to one more users that are logged into the network 24. In addition, the data can be presented in various user definable ways.

In one embodiment, the electronic control processor 64 (ECP) is in communication with or coupled to one or more digital cellular switches 58 (DCS). The ECP 64 and the DCSs 58 are located at a cell site 86 located in a given geographic region. For example, in the state of Florida there may be a cell site 88 located in West Palm Beach, a cell site 88 in Ft. Lauderdale, and so on. The ECP 64 is in communication with the switch-master 66. Physically, the switch-master 66 may be located remotely from the site 86 or may be contained in proximity of the ECP 64, within the same building for example. The ECP 64 is also in communication with the general-purpose computer 18 executing the instructions of one or more computer software programs 20 therein. For example, the instructions of a client computer software program 94 may be executing in the general-purpose computer 18 in conjunction with the instructions of a master computer software program 90 on the workstation 26. In addition, the instructions of one or more child computer software programs 92 may also be executing in the general-purpose computer 18 in order to continually capture and process call processing failure data occurring either at the ECP side 92 or at the DCS side 94 of a given cell site 86, 88 within a telecommunication system.

In one embodiment, the general-purpose computer 18 is in communication with one or more SQL servers 16 of the type described above. The one or more SQL servers 16 also can be in communication with the general-purpose computer 18 configured and adapted to act as the workstation 26. Accordingly, the workstation 26 also can be in communication with the application server 12. Those skilled in the art will appreciate that the one or more SQL servers 16, the general-purpose computer 18 and the application server 12 can be interconnected in the network 24.

In one embodiment, instructions of the client software program 94 can be executed in conjunction with several prerequisites in order to perform a given function. For example, the general-purpose computer 18 can execute the instructions of three distinct software programs simultaneously: a master software program 90 (hereinafter m_cpfail), the master's child software programs 92 (hereinafter s_cpfail) and the client software program 94 (hereinafter c_cpfail).

One embodiment of the instructions of the master software program 90 can be executed to perform the function of monitoring the execution of the instructions of the child software programs 92, assuring that failure data is continually received from the operations and maintenance platform (OMP processor), performing paging functions and maintaining data and logging administrating functions. The instructions of the child software programs 92 can be executed to carry out the function of establishing communication links to each OMP location, (e.g., by way of TCP/IP), filtering the received data and providing any predetermined fields to the SQL server 16, for later processing.

One embodiment of the instructions of one child software program 92 can be executed to collect failure data from each OMP location. The instructions of the client software program 94 can then be executed to carry out the function of displaying the data that were collected in various formats as predefined by the one or more users logged into the network 24. For example, the display format can include a graphical output format. Of the three software programs 90, 92, 94 whose instructions are executing, the client software program 94 is accessible to the one or more users. The instructions of the software programs 90, 92, however, are executed on a stand-alone basis and are generally not accessible to the users. For example, in one embodiment, the instructions associated with software programs 90, 92 can be executed on a stand-alone WINDOWS NT workstation 26 having administration privileges configured not intended for general use.

One embodiment of the ECP 64 that controls multiple switches 58 can be adapted to receive information from the switch-master 66. Further in one embodiment, the ECP 64 also can monitor any call processing failure records. Accordingly, a telecommunication system performance management team member, or system user at the central office, is able to view the failure data messages occurring at the ECP 64 on a real-time basis. For example, in implementations using a switch 58 manufactured by the LUCENT COMPANY, a feed 96 can be established between the ECP 64 and the general-purpose computer 18. The call processing failure records, and various other types of messages depending on the configuration of the ECP 64, are then sent to a specific port 98. The port 98 can be adapted in order to capture and receive the call processing failure records and then transmit the failure data messages to the general-purpose computer 18 that the user is logged into. Certain portions of the failure data messages and other information can then be stored into specific tables 100102 having fields 100 in the SQL database server 16, for example.

In operation, the user operating the general-purpose computer 18 at the central office points to and clicks on an icon on the display device 44 representative of the application server 12 and thereby executes the instructions of a software program 20 for carrying out the function of establishing a communication connection 93 between the general-purpose computer 18 and the SQL database server 16, and retrieving specific information requested by the user on a real-time basis. The user then establishes a communication connection 97 between the general-purpose computer 18 and the ECP 64. Once the communication connection has been established with the ECP 64, the user can retrieve the call processing failure messages from either the ECP 64 or the DCS 58.

The physical location of the ECP 64 may vary without departing from the scope of the invention. In general, the ECP 64 can reside within the same building in which the cellular switch 58 resides. The total number of cellular switches 58 that are located at a particular location 86, 88 will vary depending upon the telephone call traffic for the particular geographic region 86, 88 in which the switches 58 are located. For example, some regions may have three or more switches 58 within the same building or the switches 58 may be spread out in separate buildings throughout the geographic region 86, 88. For each switch 58 there can be provided separate output ports 104. For example, instructions of the child software program 92 can be executed for carrying out the function of receiving and capturing information from each separate switch port 104. Accordingly, there can be provided separate output ports 104 for each individual switch 58 handling a particular geographic region 86, 88.

In one embodiment, the operation of the cell site can be made to be automatic. For example, instructions of a computer software program 20 can be executed for carrying out the function of collecting the data portion of the cell while the instructions of the child software program 92 can be executed to provide that child 92 with enough intelligence to monitor its execution and to ensure that it continues collecting failure data messages from the ECP 64 or the DCS 58, depending on the specific implementation used.

Those skilled in the art will appreciate that more than one database server 16 can be utilized without departing from the scope of the invention. For example, two or more separate database servers 16 can be deployed, one serving a first set of computer software programs, the second serving another set of computer software programs, and so on. Having a multi-database server configuration is advantageous in case the operation of the first database server 16 fails. In the event of such failure, the second (or nth) database server 16' can be utilized to perform data collection until the operation of the first database server 16 is restored. In other words, the second database server 16' can act as a back up to the first data base server 16. It will be apparent to those skilled in the art that this concept can be extended to include a plurality of database servers working in conjunction and acting as backups for each other. The act of switching the operation between one database server and another can be performed either manually or automatically.

Turning now to FIG. 8, where one embodiment of a logic flow diagram 106 for capturing and processing call processing failure data messages occurring at a telephone switch control processor 64 and occurring at a digital cellular switch 58 is shown in diagram form. At block 108 instructions associated with the master software program 90 are executed. At block 110 instructions associated with the child program 92 are executed. At block 112, instructions associated the client program 94 are executed. Once the instructions for the master program 90, the child program 92 and the client program 94 are executed, at block 114, the master program 90 begins monitoring the execution of the child software program 92 and the client software program 94. These instructions execute concurrently.

Once the instructions associated with the child program 92 begin executing at block 110, the child software program 92 establishes communication links between the general-purpose computer 18 and one or more OMP sites at block 116. At decision block 118, it is determined whether the child software program 92 is to receive call processing failures from the ECP 64 or from the DCS 58. If the call processing failure records are to be received from the ECP 64, at block 120, the child software program 92 executes instructions for continually capturing call processing failure records from the OMP site at the telecommunication switch control processor ECP 64 on a real-time basis. If it is determined that the call processing failure records are to be received from the DCS 58 side, the child software program 92 executes instructions for continually capturing call processing failure records from the OMP sites at a digital cellular switch DCS 58 on a real-time basis at block 122.

While the child software program 92 continually captures call processing failure records at blocks 120, 122, the master software program 90, at block 128, ensures that the call processing failure records are continually received. Meanwhile, the child software program 92, upon continually capturing the call processing failure records, filters the captured data at block 124 and at block 126 stores the filtered captured data to a storage device 22 that is in communication with the general-purpose computer 18.

Meanwhile, the master software program 90, at block 130, monitors the captured data and looks for a predetermined set of conditions within the failure data messages. At decision block 132, the master software program 90 continuously checks if the predetermined condition has occurred. If the predetermined condition has occurred, at block 134, the master program 90 executes instructions that ultimately result in broadcasting a signal to a wireless telecommunication device. At block 136, the master program continuously maintains call processing failure records and also logs any administration data to the data storage device 22" coupled to the data base server 16.

The client computer software program 94, which is the only computer software program available to a user, can receive user-defined instructions for how to format the captured data at block 138. Once the user has determined the particular format for outputting the failure data messages, at block 140, the client program 94 provides the captured data messages to an output device coupled to the general-purpose computer 18 in accordance with the user's formatting instructions.

In one embodiment, the computer software program 20 provides several options and features. As described above, at block 134 of logic flow diagram 106, the software program has the ability to alert users of the occurrence of certain events based on various predetermined thresholds by automatically executing instructions for broadcasting, for example, a paging signal to one or more wireless paging devices. Thresholds can be set up to be dependent on time of day, call volume, the number of call failure data messages captured and the like. In a further example, one or more users may want to receive a paging signals in the event a particular cell site reaches a predetermined number of failure data messages of a particular type. In one embodiment, the users are permitted to specify the various threshold levels to be monitored. For example, one user may want to be paged if 50 failures occurred at 2:00 am. Another user may not want to be paged if less than 50 failures occur at 12:00 noon. Still another user may program the system to receive a page if 5,000 failures occur at 12:00 noon and if 50 failures occur at 12:00 midnight. Accordingly, the system provides means for allowing the one or more users to customize the individual threshold settings to satisfy their individual needs.

In one embodiment, the failure data message analysis is performed on a real-time basis. For example, the information received and captured at the ECP 64 or DCS 58 side of the telecommunication system is updated and displayed on a continuous basis by the general-purpose computer 18 operating in conjunction with the other network 24 components such as the database server 16, and the like. There exist a variety of methods that can be employed for analyzing the call failure data messages. For example, in one embodiment, the analysis can be performed on the basis of the specific hour, cell site, phase or radio (cellular telephone). In one embodiment, when the user first executes the software program the user is initially provided with data on an hourly basis and the user can then change these settings to ones that better suit.

Furthermore, the one or more users can be equipped with two or more general-purpose computers 18 at the central office that are in communication with the network 24. For example, a number of users can have two or more general-purpose computers 18 at their desk whereby one of the computers can be configured to have a specific screen open at all times, while the other computer can be configured to have a different screen open at all times. For example, one screen may be displayed such that the user can see, in real-time, how many call failures have occurred throughout the telecommunication system. These failure types can be displayed at the top of the screen. The user can then click on the heading in order to see what those failure types actually are. The lost calls, which are calls that were actually lost, are then displayed at the bottom of the screen.

To obtain additional information with regards to the call failures, the user can type, for example, "raw" in the command line and the software program will display all of the actual call failures. Furthermore, the user can sort the call failures based on various fields. For example, the user can sort the call failures based on directory number. The user can look at the output block to see if there exist any patterns and determine whether they are associated with a particular number. If a pattern emerges the user will see something stand out right away. The user also can sort the cell failure types by cellular telephone number. For example, if one particular cellular telephone number has a problem, the user will have the ability to view the raw record of the call failures associated with that particular cellular telephone number on a real-time basis.

The call processing failure records can be broken down even further. For example, the call processing failure records can be broken down according to every single failure that occurs. Furthermore, the call processing failure records can be broken down into current (Amperage), for analog telephones, or time division multiple access (TDMA), for the digital telephones. The call processing failure records also can be broken down and viewed on an hourly basis or they can be broken down and viewed on the basis of the specific cell. For example, if a particular cell has had either a lot of traffic or has a large number of failures associated therewith, for example 976 failures recorded in one day, the user more than likely will go in to view the raw data in order to determine the cause of the failure at that cell or try and determine whether a failure pattern exists for that cell. If the processing failure records are broken down and analyzed in terms of cellular telephone numbers, the user is then able to determine the worse cellular telephone in the entire telecommunication system.

Some processing failure records exhibit failure patterns that are easier to spot than others. For example, if there are problems with the telephone, an entire page may be filled with the same telephone number and that pattern will stand out and be readily apparent to the user. Upon detecting a certain failure pattern, the user will generally attempt to contact that particular subscriber 144 and work out the problem. Other failures, for example, could be caused by the telephone itself or the telephone may actually be turned off. Sometimes, the subscriber 144 may be in the middle of a telephone call, and for various reasons, the telephone will be powered off or the battery will go dead in the middle of the call. These are seen by the system 56 as failures merely because the call was terminated, however, the subscriber 144 generally knows when these situations arise and the issues can be readily worked out.

One embodiment of the software program 20 can be configured such that it reports the worst failure that occurs in the telecommunication system and the type of failure that occurred in the system when the software program is first invoked by the user. As illustrated at block 138 of logic flow diagram 106, the user has the ability to filter the output based on any single failure type. In addition to viewing the data, the user can also print the data.

In one embodiment, the user can invoke a software program 20 and execute instructions associated therewith for querying the database 22. For example, the user can query the database 22 based on a specific failure type or run a query based on a specific directory number. In accordance with the specific query, the system responds by showing the user the number of telephone call failures. For example, the output can illustrate that a particular telephone number queried had multiple failures, e.g., 128 because midnight. Accordingly, the user can readily deduce that something has gone wrong with that particular cellular telephone. In another example, the database can be queried based on the type of cellular telephone and call failures can be retrieved and displayed accordingly. Furthermore, the user can query the database 22 based on a variety of other failures, for example, hand-off failures between cell sites. As discussed above, the user has the option of viewing the failure reports in a number of canned report formats, which are provided by the system 56.

In one embodiment, the user has the option of executing instructions for running a "glare." Glare means that there are two identical telecommunication devices trying to be used at the same time. This is generally an indication that something has gone wrong. The user has the option of executing instructions for running a glare in accordance with trunk group, serial number or numbered history. The user also can output a report based on the cell number. For example, a cell report for cell number 8 will provide the user with every failure that occurred within cell number 8. The reports can be outputted to the display and can include the directory number, when it failed, what the failure was, the serial number, the cell and DCS, station class mark, what type of a call it was, trunk group member number, which cellular telephone it was on, whether it was answered, whether there are any call backs and so on.

Furthermore, the user can output a report based on a directory number and retrieve records as far as, for example, 90 days in the past. Those skilled in the art will appreciate that the number of days can be preset based on the available memory on the server 16 or in the database 22, and should not be considered as limiting the scope of the invention. The user also can use the backlog from a directory number. For example, if a subscriber 144 called the central office because of a problem they were experiencing on their line, the user will proceed to query the database 22 and make a determination as to whether there had been any failures on that particular line on that day.

Generally, users have three tools that they rely on for troubleshooting, namely, the graphical output, the investigation screen and the paging signal broadcast output. Thus, the user has the capability of graphing the call processing failure records and generating an output in the form of a graph. Furthermore, the investigation screen provides the user with the capability of setting up various thresholds and thereby broadcasting a paging signal to a remote wireless paging device based on a predetermined, user selectable 100 condition. Such paging broadcasts are tracked by the system 56 and an investigation number is tagged to the broadcast. Accordingly, the person or wireless telecommunication device that was signaled can call back into the central office, specify the investigation number and the user will be able to show them all of the failures that are associated with that specific investigation number. Those skilled in the art will appreciate that any identifiers such as an investigation number, a cell name and the like may be tagged to the paging signal broadcast for reference purposes.

There are other screens that can be viewed by the user on the output device. For example, the user can view a threshold screen where the thresholds can be viewed and specified. Such thresholds can be weighed based on the title and date, and other thresholds can be based on the various failures that can occur. The user also can apply system averages that can be tracked. Accordingly, if the user knows that, on average, there are 400 lost calls in the middle of the day and 300 at eleven o'clock, for example, the user can enter these values in the threshold screen and automatically have the system 56 generate what the threshold level should be. The system 56 also provides a paging screen that allows the user to specify who the individuals to be paged are, what their numbers are, and the like. In addition, the system 56 can be provided with functionality that allows the user to broadcast a paging signal to a digital pager. Moreover, the broadcast signal can page an Internet Protocol Suite (IPS) pager where the user can send an electronic mail (e-mail) address and perform additional paging functions. The messages are received via a TCP/IP communications link to the OMP processor. The messages are then stored on the SQL server 16 after being parsed.

B. Communicating and Managing Telephone Call Records

Referring now to FIG. 9, where one embodiment of a logic flow diagram 146 is illustrated in diagram form. The logic flow diagram 146 includes a series of steps representing instructions to be executed by a general-purpose computer 18. Beginning at block 148, from a telecommunication device such as a wireless telephone located at a remote site, one or more digits dialed by the telecommunication device that are associated with a call record 62 are transmitted from the remote site on a real-time basis. At block 150, a telecommunication switch 58 receives the one or more transmitted dial digits in real-time. At block 152, the transmitted one or more dial digits received by the switch 58 are transmitted to the general-purpose computer 18 located at a local site in real-time.

Upon receiving the one or more dial digits, the general-purpose computer 18 determines whether to analyze the dial digits in accordance with the user's instructions at block 154. If the general-purpose computer 18 has been programmed to analyze the dial digits, at block 156, the telephone dial digits are parsed and at block 158 a report is generated in accordance with a predetermined criteria as programmed by the user. If a determination is made at block 154 not to analyze the dial digits at that time, the one or more dial digits are stored in the database 22 coupled to the general-purpose computer 18.

Referring back to FIG. 4, where one embodiment of a system 56 for communicating and managing telephone call records is illustrated in block diagram form. In one embodiment, the general-purpose computer 18, for the purpose of communicating and managing telephone call records 62, executes instructions of one or more computer software programs 20. The telephone call records 62 can be the actual telephone billing records. In one embodiment, the one or more computer software programs 20 allow the user to query the call records 62 stored in the database 22 based on several variables such as the telecommunication device number (e.g., cellular), any particular digits that were dialed by the telecommunication device or the serial number of the telecommunication device.

The switch-master 66 is in communication with the switch 58 by way of a billing feed communication link 142. In one embodiment, the billing feed communication link 142 can be a landline or can be a wireline connection. The switch-master 66 also is in communication with a first general-purpose computer 18. One embodiment of the switch-master 66 and the general-purpose computer 18 can be arranged in a network 24, such as a local area network (LAN) configuration. The general-purpose computer 18 also is in communication with the database server 16, such as a computer having an SQL server, which in turn is in communication with a second general-purpose computer adapted and configured as a workstation 26.

The first general-purpose computer 18 is configured to execute instructions of one or more computer software programs 20. For example, the general-purpose computer 18 can execute instructions according to a first software program ("NTSTART" hereinafter) for carrying out the function of resetting various memory or storage tables 100 available on the network 24 to a known state. The NTSTART software program then initiates the execution of instructions according to a second software program ("DD_RUN" hereinafter) for carrying out the function of checking the status of any child software program 92 and for looping through various hosts. In addition the DD_RUN software program can check the sanity of the overall system 56 and on a real-time basis the status of the system 56 based on the switch 58 type. For example, if the switch 58 is a LUCENT switch, DD_RUN checks the system 56 status approximately every 15 minutes. If the switch 58 is an ERICSSON switch, DD_RUN checks the system 56 status approximately every 60 minutes. In addition, the DD_RUN software program initiates the execution of instructions according to two more other software programs ("DD_ALL" and "DD_ALLE" hereinafter).

The general-purpose computer 18 also executes instructions according to another software program ("DD_MON" hereinafter) for carrying out the function of providing real-time summaries, including the real-time summary of the last call record 62 or the last activity performed on the system 58, the number of records and the number of records inserted in the database 22 per second or per hour. Further, the general-purpose computer 18 executes another set of instructions according to a software program ("DD_QRY" hereinafter) for carrying out the function of providing a user interface and a subscriber's 144 telecommunication device number, telecommunication device serial number and the number of digits dialed by the telecommunication device ("dialed digits" hereinafter). The DD_QRY software program also provides various reports and has the capability of exporting data to other computer software programs executing on the system 56.

As discussed above, other instructions that are executed by the general-purpose computer 18 include DD_ALL and DD_ALLE, which are used to establish a communication session between a network 24 component and a telecommunication system component. For example, these instructions, when executed, can establish a TCP/IP communication session between the general-purpose computer 18 and the switch 58. Further, these instructions also can parse the call records 62 and provide the call records 62 to the database server 16.

Further, one or more computer software programs 20 can be provided for carrying out the function of communicating and managing telecommunication call records 62 from the subscriber 144 on a real-time basis. By real-time, it is meant that the user at the central office can access the telecommunication call records 62 from the subscriber 144 as soon as, or substantially instantaneously after, the subscriber 144 hangs up or terminates the telecommunication transaction with the switch 58. For example, generally within 10-15 seconds from when the subscriber 144 hangs up, the call records 62 become available for the user to review. Moreover, computer software programs 20 can be provided for carrying out the function of maintaining the telephone call records 62 in the database 22 over an extended period. For example, more than 400,000,000 telephone call records 62, representing about 10 weeks worth of telephone call records 62, can be stored by the system 56 in the database 22.

Those skilled in the art will appreciate that the user, or users, of the system 56 and computer software programs 20 include various people from various departments for manipulating telecommunication call records 62 of a telecommunication company or may include various people associated with a telecommunication company. For example, there are computer programs 20 that are useful to users from a fraud department of a telecommunication company for manipulating call records 62 in order to detect any sort of fraud being committed by the subscriber 144. One reason the fraud department finds the call records 62 useful is because certain dialing patterns can be associated with an act of fraud. For example, a call record 62 showing that the subscriber 144 within the same cell site has called "time of day" and has repeatedly hung up as soon as the call was answered can be an indication of someone trying to clone the telecommunication device used to make the call to time of day. Whenever these types of calls occur at a higher the frequency there is a higher the likelihood that the caller was attempting to clone the telecommunication device and thereby committing an act of fraud.

Users from an engineering department associated with a telecommunication company may find the one or more computer software programs 20 to be useful. For example, the engineering users are provided with the ability to see not only what digits a subscriber 144 has dialed, but also to see what digits were actually pulsed out by the switch 58. For the engineering users, the computer software programs 20 for communicating and managing call records 62 provide a good troubleshooting tool.

The engineering users also can use the one or more computer software programs 20 as a billing validation tool when a bill is received from the telephone company. For example, without the one or more software programs 20, there is virtually no way to confirm the actual minutes of usage from zone office trunks. In a telecommunication system, the zone office trunks are the trunks where the cellular telephone ties into the telephone system. The one or more software programs for communicating and managing telephone call records 62 provide the engineering users with a means for validating a particular bill.

Users from a telecommunication system performance evaluation department also may find the one or more computer software programs 20 to be useful. For example, the system performance evaluation users can utilize the software programs 20 to determine the calls that were dropped by the system 56. They also can determine which site actually dropped the call. Furthermore, in some geographic regions, for example in South Florida, the system performance evaluation users are provided with a special telephone line, for example a *888 line, that employees of the telecommunication company can use. If an employee drops a call or has a problem with a call, they can dial *888 and leave a voicemail message regarding what the problem was. When the user checks the call records 62 the following morning, they can pull the records of the individual user, look for the *888 call, backup one call from that point and they have at their disposal a variety of information about the telephone that failed.

A market research user associated with a telecommunication company also may find the one or more computer software programs 20 to be useful. Market research users can use the one or more computer software programs 20 to conduct certain marketing related studies. For example, one such study uses a special telephone line, for example a *123 line, which is a real-time traffic report line installed in a specific geographic region. The market research users can, for example, advertise the *123 number by using billboards or other methods of advertising. The market research users can then run a study of the number of people that actually dial the *123 number within the region before and after the number was advertised and thereby measure the effectiveness of the advertising in that region. For example, the marketing users can determine if there was an increase in the number of calls made to *123 after the advertisement was put in place.

Users from a technical support department of a telecommunication company also may find the one or more computer software programs 20 to be useful. For example, the technical support users can rely on the one or more computer software programs 20 for troubleshooting purposes. Subscribers 144 may call into the central office and complain, for example, that they cannot dial out. What the one or more software programs 20 allows the user to do is to find out if the subscriber 144 has an invalid serial number, what digits the subscriber 144 is dialing and what digits the switch 58 is actually sending out to the switch-master 66.

Furthermore, the technical support users can use the software programs 20 for subscribers 144 that question the validity of their bill. For example, the subscriber 144 may call the central office in order to get credit for a number of telephone calls that had been dropped throughout the week. The one or more software programs 20 can provide the technical support users with a tool that allows them to go back and review how many calls were actually dropped during the week in question. Generally, if only two or three calls are seen as actually having been dropped, the technical support user may have grounds upon which to challenge the subscriber's 144 claim.

Users from a security department of a telecommunication company also may find the one or more computer software programs 20 to be useful. The security users can use the one or more software programs 20 when they work in conjunction with a government agency, for example, for processing court-ordered requests for call records 62 (described in detail below) and for detecting fraud within the company itself.

Users from a "911" department of a telecommunication company also may find the one or more computer software programs 20 to be useful. For example, the "911" group of users can use the one or more computer software programs 20 in order to validate which numbers were actually dialed out by the subscriber's telecommunication device or where the telecommunication company is connecting the subscriber 144 upon dialing "911."

In one embodiment, the switch 58 is in communication with the switch-master 66. As discussed above, the switch-master 66 is an electronic device that operates, generally, under the control of the UNIX operating system. The telecommunication company's billing department for collecting call records 62 uses the switch-master 66. From the switch-master 66 there also can be provided a feed 68 for tracking roamers 70, fraudulent activity 72 and other functions 74.

In one embodiment, there is provided a network 24 by way of a Local Area Network 24 (LAN) connection 145 from the switch-master 66 to the general-purpose computer 18 that enables the user to log into an account within the switch-master 66 and then execute a script 80 such that all of the billing records can be supplied back to the central office 77. Accordingly, the LAN connection 145 acts as a billing feed 145 that is in essence being routed back to the central office 77.

Within the switch-master 66, the script 80 is provided with enough intelligence that if the LAN connection 145 fails (e.g., falls off) the user knows the last call record 62 that was sent to the central office 77. Accordingly, in the event of a LAN connection failure there is virtually no loss of call records 62. In practice, the central office 77 collects about 99% of the call records 62 after a LAN failure, which is adequate for the intended purpose.

A server 16 can be connected to the system via the LAN. For example, there can be provided a database server 16 in communication with the network 24. For example, there can be provided an SQL server of the type discussed above. One embodiment of the LAN connection can be provided with an SQL database of the type manufactured by the MICROSOFT COMPANY, for example. Further, the general-purpose computer 18 can be in communication with the database server 16 over the LAN. For example, the general-purpose computer 18 can be dedicated to performing the specific functions.

Those skilled in the art will appreciate, however, that the instructions of the software programs 20 to be executed by the general-purpose computer 18 also can be executed by the database server 16. In one embodiment, the database server 16, for processing efficiency reasons, can execute the instructions of the software programs 20. The database server 16 can execute the instructions faster than the general-purpose computer 18. Those skilled in the art will appreciate that, in one embodiment, the system 56 can collect, for example, up to five million call records 62 per day.

One embodiment of general-purpose computer 18 can execute the instructions of a client software program 94 for carrying out the function of collecting call records 62 data. Accordingly, the client software program 94 for collecting such data automatically establishes the LAN connection 145 to the switch-master 66 and, in one embodiment, also can automatically log the general-purpose computer 18 into the switch-master 66. There can be provided enough intelligence in the switch-master 66 such that the switch-master requests a password change from a particular account attempting to access it. In turn, the switch-master 66 will recognize the password change transaction, generate a password and store it in a table 100 for future use. The system 56 maintains the current and any previous passwords.

There is also another computer software program 20 whose instructions can be executed by the general-purpose computer 18 ("DD_ALL" hereinafter). Such software program also can connect into the switch-master 66 automatically. There are other software programs 20 that are part of a suite of software programs whose instructions carry out the function of monitoring the execution of the other software programs 20. One instance of such instructions is executed for every switch 58 that is in the telecommunication system. For example, if a particular region requires three switches 58, there will be three instances of instructions of such a software program executed by the general-purpose computer 18. There also can be other instances of instructions of the software program for monitoring other locations, such as the master software program 90. Accordingly, if five locations were being monitored, then there could be a total of five instances of instructions of such software programs being executed by the general-purpose computer 18.

The master software program 90 monitors all instances of a software program that is currently executing on the system 56. The master software program 90 ensures that each instance is currently executing, that they are receiving call records 62 on a real-time basis and that there are no problems. If the master software program 90 detects that, for some reason, any one of the currently executing instances has a problem, or if it detects that the LAN connection 145 is down, the master software program 90 will stop the execution (e.g., close) of every instance of the software programs currently executing and it will then continually try to reinitiate the session.

In one embodiment, there can be provided a computer software program 20 whose instructions are executed to initialize the general-purpose computer 18. For example, if the general-purpose computer 18 reboots for any reason, the instructions of the initialization software program first executes instructions associated with the start software program ("NT_START" hereinafter), which resets all the tables 100 and places all memory variables into a known state. NT_START then turns control over to DD_RUN which, in turn, executes instructions associated with all the other software programs 20.

In one embodiment, there can be provided a computer software program 20 for monitoring the other software programs whose instructions are being executed. In one example, the monitoring software program is a master program 90 that can be executed on workstation 26, the server 16 or any general-purpose computer 18 connected to the network 24. The master software program 92 provides the functionality for allowing the user to see what the status is of all the other software programs 20 that are executing. For example, the user can monitor the last call record 62 that was received, the last time stamp that was received and how many minutes difference there are between the receipt of the last all record 62 and the current time and it provides the user with this information on a in real-time basis.

The software programs 20 discussed above can use, for example, a MICROSOFT SQL server for manipulating data stored in the database 22. However, those skilled in the art will appreciate that other servers or database servers may be utilized without departing from the scope of the invention. The server storage device can be partitioned with about 120 or 125 Giga Bytes of storage in accordance with the needs of the current implementation, which will generally depend upon the telecommunication market or geographic region being served. Furthermore, there are many stored computer software programs and data administration processes that take place within the database server 16. One embodiment of the database server 16 operates on a standalone basis and does not require an operator to watch it. For example, if the database server 16 runs into any problem that it cannot resolve on its own, it will broadcast a paging signal or send an electronic mail (e-mail) message to the user or other authorized person.

One embodiment of the computer software programs 20 also can perform additional procedures. For example, the software programs 20 can perform database cleanup and maintenance. Furthermore, because telephone call records 62 are being kept for extended periods, for example, 10 to 13 weeks worth of information is kept, the software programs 20 also can take the oldest call records 62 and remove them from the database 22. In other words, instead of saving the oldest call records 62, they are removed from the database 22 and the database 22 is maintained on a rolling 10 to 13 week basis depending on user-selectable 100 options. Those skilled in the art will appreciate that the general-purpose computer 18, the workstation 26, the shared server 14 or any other computer that is in communication with the database 22 may execute the above cleanup and maintenance software programs.

There are other functions that can be performed by any one of the computers in communication with the database 22. For example, software program instructions for carrying out the function of accessing tables 100 stored within the database 22 can be executed in the background, while a wireless paging signal is broadcast to a user after the occurrence of certain predetermined conditions, for example how far behind the system 56 is running. There can be embedded in the paging signal information regarding how far behind the process is running, thus making it possible for the user to investigate the problem. Those skilled in the art will appreciate that the user can perform virtually any function from a remote location that the user is able to perform while directly operating the general-purpose computer 18. For example, the user can take an IPS pager and instruct the device to perform certain functions from a remote location. However, it should be noted that the database server 16 generally attempts to fix any failures that are encountered by it. If the database server 16 cannot repair the failure, it will broadcast a wireless paging signal or send an e-mail message to the user.

In one embodiment, two different types of telephone call records 62 are being collected depending on the particular switch 58 being used. For example, if the LUCENT (AT&T) switch is being served, 26 fields of billing data are collected. If the ERICSSON switch is being served, then 62 fields of data are collected. Those skilled in the art will appreciate that LUCENT and ERICSSON are manufacturers of telephone switches 58. The scope of the invention, however, should not be limited to the operation of the specific switches 58 provided as examples herein.

Also, data collection from each switch type can vary based on the data that are deemed necessary. For example, from the ERICSSON switch every field that is outputted by the switch 58 is collected. On the other hand, from the LUCENT switch only the fields that are deemed to be necessary are collected. There are certain fields that are not collected.

The types of fields that are collected include, for example, the originating number of the telecommunication device, the number called by the telecommunication device, voice channel seizure time, voice channel seizure date, the duration of the call, the cell location of the call, the facilities that the call went on and any features that the subscriber 144 may have used. In addition, there is a considerable amount of failure data (discussed above) that is collected from the system 56. Furthermore, there are fields that identify whether the call was an international call and whether the call was answered on the other end. It will appreciated that this list of fields is not exhaustive and the invention is not intended to be limited in scope thereto.

In one embodiment, several layers of network 24 security can be provided. For example, a first security layer can be provided when a user actually dials into the network 24, accesses a general-purpose computer 18 and logs into the network 24. Once the user has logged into the network 24, the user can execute instructions associated with a limited number of software programs 20 residing on the network 24. With few exceptions, the user will generally execute instructions associated with the software programs 20 on the network 24 in "read only" mode. However, if the software program 20 is of the type that would yield sensitive information, another security layer can be provided to prevent the user from accessing the sensitive software program even in read only mode. If the user does request access into the system 56 a separate account can be established for the user within the database server 16. Once the account is established, upon executing the instructions, the system administrator will know the user's identity and the location from which the user logged in. Accordingly, if the user matches any predetermined values set in a stored table 100, they will be given access into the system 56.

In one embodiment, the user generally performs three different types of searches. For example, the user can search by mobile telecommunication device number, by telecommunication device serial number or by the particular digits dialed by the telecommunication device. Because many fields are collected by the system 56 there are additional reports that can be provided for the user on a manual basis. However, in order to provide such functionality, there is an element of caution that must be exercised. For example, if a user attempts to perform a nonexistent function or a function that is not indexed in the database 22, the query may take forever to perform and may very well bog down the rest of the system 56. Searching and access speed are aspects to be taken into consideration because of the large quantity of searchable records that are stored within in the database 22.

In one embodiment, the user is forced to look at the current date and then, by way of option buttons, the user can look, for example, at the current day, the current week, two weeks back, four weeks back, and so on. The user also has the option of selecting a particular date.

Following is a description of the computer process steps from the time the subscriber 144, or caller, hangs up or terminates a telecommunication transaction. Also described will be one method of parsing the call records 62 into fields comprising the call records 62 as received by the switch 58. Furthermore, several representative computer software programs and their operation will be described.

1. Process Steps from the Time a Subscriber (Caller) Hangs Up

Once the subscriber 144 hangs up, for example terminates a telecommunication transaction, the system 56 collects the call record 62 for that particular call. The call record 62 is then sent to the switch-master 66. The switch-master 66 sends the call record 62 to the DD_ALL software program (discussed above) in the general-purpose computer 18 for further processing. The DD_ALL software program carries out instructions for receiving the raw call record 62 from the subscriber telecommunication device and passes the information within the call record 62. Once the instructions associated with the DD_ALL are executed it continuously executes instructions and waits for the call records 62 to be received by the switch-master 66.

In one embodiment, there are provided two different ways of receiving the call records 62. For example, in the LUCENT switch, the call records 62 are always obtained in real-time. In other words, as soon as that subscriber 144 hangs up or terminates a telecommunication transaction, that call record 62 is made available to the switch-master 66, it is sent to the general-purpose computer 18 and it is parsed by the general-purpose computer 18 and it is then sent to the server 16 for further manipulation or storage in the database 22. In the ERICSSON switch, the call record 62 is not actually obtained by the switch in real-time as is the case for the LUCENT switch. Rather, the call records 62 are sent directly to a buffer, which is filled with the incoming call records 62. Once the buffer becomes full, all of the records 62 in the buffer are sent to the general-purpose computer 18 for parsing and are then sent to the server 16 at one time. In one embodiment, the call records 62 can be sent at predetermined time intervals instead of when the buffer is full. For example, regardless of the status of the buffer, the call records 62 can be sent to the general-purpose computer 18 every 15 minutes or so. Therefore, depending on the specific set-up, the call records 62 can be sent to the server 16 approximately 15 minutes or more behind real-time as they are retrieved from the ERICSSON switch. It is to be understood that this is a limitation of the functionality of the particular switch 58 being employed and is not a limitation of the software program. Accordingly, the scope of the invention should not be limited thereby.

Once the call records 62 have been received by the switch-master 66 and parsed by the general-purpose computer 18, they are sent to the server 16 and they are stored in a database 22 storage device, which is in communication with the server 16. In one embodiment, the call records 62 are stored in several different tables 100 for access speed purposes. For example, there can be provided an hourly table 100 in which call records 62 are stored, which are obtained during the peak periods of the day. Furthermore, there can be provided special tables 100 set-up for the evening, nights and so on. In a further example, the call records 62 can be inserted into weekly tables 100 for access speed purposes. Those skilled in the art will appreciate that in order to insert call records 62 into the database 22 efficiently, the smaller the table 100 the quicker the task can be accomplished. In one embodiment, the searches and all the stored computer software programs that the user can access, are provided with enough intelligence to know whether they have to search the various records tables 100. For example, whether they have to search through the hourly records, the weekly records and so on. That information is also stored in a storage device in communication with the server 16.

2. Parsing the Call Record Fields

Referring now to FIG. 7A, where one embodiment of an example of a raw call record 62 is shown. It will appreciated by those skilled in the art that the various fields comprising the call records 62 can be parsed in accordance with the switch 58 manufacturer's specifications. For example, the switch 58 manufacturer can provide documentation illustrating what the actual raw call record 62 should look like. For illustration purposes, the call record 62 will be described by referencing the individual characters 162 and their relative position 164. For example, the first character position 166 is where the parsing process begins. Accordingly, the parsing process continues character by character sequentially through the call record 62 at positions 168, 170, 172 and so forth.

The call records 62 are received by the switch-master 66 in sequential order on a continuous basis. In one embodiment, the parsing process will begin at a predetermined field 166 of the call record 62 and will first determine the beginning or the starting point of the raw call record 62. Those skilled in the art will appreciate that the software program may obtain the necessary information required for parsing a call record 62 from a file accessible by any one of the network 24 components. Accordingly, the starting point may be defined as a character "0" that begins at position 166. In one embodiment, there is a table 100 stored within the server that defines where the initial position is located. For example, the starting point may be defined as position five 168 of the call record 62. Furthermore, position ten 170 of the call record 62 may be defined as being the starting point for the area code of a mobile telephone number. Moreover, the table 100 may further provide that the position 15 of the call record 172 is in excess of the user's NPA and so on. Accordingly, once one full call record 62 is parsed, the parsing process will begin searching for the starting point of the next call record 62. From that point on, the parsing process knows that regardless of the call record 62 presented to the general-purpose computer 18, it will merely add five to the starting position and retrieve the NPA and the parsing process is repeated for all the remaining call records 62.

Those skilled in the art will appreciate that the definitions of the specific call records 62 can vary depending on the switch manufacturer. For example, the ERICSSON switch call records can have a different definition than a LUCENT record and, accordingly, there may exist several definitional tables 100 that describe the various records. The table 100 structures can be different for each switch manufacturer's call records 62 format and this information is sent to the server 16.

FIG. 7B illustrates one embodiment of an output display of a table shown when the user executes or runs a particular query. Accordingly, the user sees a grid 174 or a matrix within the display 44 output screen. Within the grid 174 the user sees the various information illustrated. For example, there can be a call type 176 or there can be an NPA 178, the dialed number (NXX) 180, the failure type 182, the initial cell site 184 that the call originated from, and the like. As illustrated in FIG. 7B, the user will actually see one or more particular call records 62. The software program then takes this one step further and color-codes the grid 172 so that the user can look at it and at a glance will be able to determine which call records 62 are incoming records, which call records 62 are outgoing records, which call records 62 are tandem records, which call records 62 are slave records and so on. Those skilled in the art will appreciate that the user can access the call records 62 by clicking on any one of the records identifiers on the grid 174 displayed on the screen. Accordingly, the selected call record 62 is expanded and shown in a more detailed form. The more detailed form of the cell record 62 can show, for example, the call type 176 rather than the dialed number NXX 180, the originating call or the terminated call. The system can take many of the call records 62 fields and parse them into text that the user can read.

For example, there may be a field for the failure type 182 having a number four within the call record 62 field. Because the number four does not reveal much information about the failure type 182, the user can expand the field associated with the failure type 182. A failure type such as that a call was dropped will appear on the grid 174. Further, if one of the fields for the initial cell 184 is displayed, this may tell the user that the call was originated from cell A, for example. The software program provides an additional button for the user to click on for expanding that information and return to the main database 22. From there, the user is provided with information about that particular cell. For example, the user is provided with information about where the cell is located, its latitude, its longitude and its address. Furthermore, the user can be provided with information about what phase on the cell the call was placed on. Moreover, the user can be provided with the path through the switch 58 and what hardware was used during the call. The software program is thus a useful troubleshooting tool for the user.

For example, slave records are used in the LUCENT switch implementation. Slave records are created if there is more than one switch 58 from which the subscriber 144 originates a telecommunications transaction. Accordingly, a master call record is created for that transaction. For example, as the subscriber 144 drives on a highway, their cellular transaction will be handed off from one switch 58 to another switch 58'0 as the subscriber 144 travels across cell boundaries. Accordingly, a slave call record 62 is created within the other switch 58'. In general, the billing department normally discards the slave record. However, in one embodiment, the slave record can be maintained in a storage device associated with the database 22, which is in communication with the network 24 or server 16. In general, the slave records can be kept because each one provides information such as the identity of the telecommunication device, the first cell site from which the transaction originated and the last site from which the transaction terminated. Therefore, the user knows the site from where the subscriber 144 initiated the cellular transaction and the site from where the subscriber 144 terminated the transaction. Those skilled in the art will appreciate that a slave record exists for each new switch 58 that the subscriber 144 is handed off to as he or she drives on.

The billing department may use the slave record in billing if they are part of a different entity and there is an agreement in place between the owners of the different switches 58, 58'. Accordingly, there is a now a means of billing back for how many minutes a call was on the other switch 58' and so on.

3. Representative Computer Software Program Applications

In one embodiment, there can be a plurality of instructions associated with a plurality of software programs executing in VISUAL BASIC Version 5 or 6 throughout the system 56, for example. The general-purpose computer 18 initially executes the instructions of a software program ("DB_LIDE hereinafter) in order to carry out the function of establishing a communication connection between the general-purpose computer 18 and the server 16. The instructions are provided in native code of the general-purpose computer 18 directly to the server 16. The DB_LIDE program does not go through an Open Database Connectivity (ODBC) and provides an efficient way of accessing the server 16.

The general-purpose computer 18 executes instructions associated with a software program ("NTSTART" hereinafter) when the general-purpose computer 18 is initially booted up for carrying out the function of resetting all tables and memory variables to a known state and then beginning the execution of instructions associated with another software program, DD_RUN, for example. The tables 100 are predefined and there is a special table 100 that tells the NTSTART program what to expect at various fields and where within a call record 62 the fields are located. This is done in the event a new field is added or if a field is merged or contained within another field. If such an event occurs, rather than editing the software program instructions code, only the table 100 needs to be modified and the change will automatically be picked up.

The DD_RUN software program initially looks at a table 100 and then determines what the status is of each child software program 92 that is executing. When the system is initially booted, DD_RUN sets every child software program 92 to an out of service state. After it checks the status of the child software programs 92, the DD_RUN software program executes a loop through a table 100 and for every software program that is out of service it will execute instructions associated with the DD_ALL program or the DD_ALL_E program. Those skilled in the art will appreciate that the basic difference between the DD_ALL and DD_ALL_E programs is that one is utilized for a LUCENT switch implementation and the other is utilized for an ERICSSON switch implementation. Accordingly, certain functionality within the two software programs can be different. Those skilled in the art will appreciate that these software programs are described as examples of one embodiment of the invention and should not be construed as limiting the scope of the invention.

The DD_ALL and DD_ALL_E programs can, however, share some tables 100. For example, they can share employee tables 100, status tables 100 and they can write to certain common status tables 100. Although the information written to the tables 100 by each program may be somewhat different, these example programs write information to the status table 100 at approximately 30-second intervals. That is one way of determining how far behind real-time the actual program is running. For example, that is how the DD_RUN program knows whether or not all the other programs are executing instructions in a proper way. The DD_ALL and the DD_ALL_E programs also set a sanity bit. For example, these programs write a known number to a table 100 and then constantly increment that number. The current program looks at the numbers knowing what the previous number was. If the number has not changed, the program suspects that something went wrong and will begin watching it more frequently. If the number stops changing, the program will shut down or interrupt the execution of instructions associated with the current program.

Those skilled in the art will appreciate that it does not matter whether the shut down request comes from DD_ALL or DD_ALL_E. For example, a specific table 100 can be initiated by the program and within that table 100 certain information can be stored therein such as the host switch 58, the server 16 and one or more sanity bits for monitoring purposes. There may be one or more host switches 58. For example, one switch-master 66' may be called by one name, and another switch-master 66' may be called by another name. Accordingly, about every 30 seconds the current program checks and monitors the status of the table 100. Its function is to ensure that everything is executing properly.

The DD_RUN program continuously checks to determine if the sanity bits are constantly changing. The checks let the user know that the child software programs 92 are actually executing instructions and writing information to the tables 100. The DD_RUN program also looks at all the status fields. If they are all active, the program continues execution. If it detects that one of the child software programs 92 is marked out of service, the DD_RUN program will find out because it will know what the host switch 58 is and what the name of the child software program 92 is. The user can select which software program instructions to execute. It knows what to expect and it will send a command such as "DD_ALL.EXE NAME ONE," to initiate the execution. Accordingly, the program knows when it boots up that this is what it will be connecting to. Again, this process is repeated, for example, about every 30 seconds. Those skilled in the art will appreciate th