A SYSTEM, METHOD AND ARTICLE OF MANUFACTURE FOR CALL AUCTIONING IN A TELEPHONY NETWORKING FABRIC

Abstract: Telephony switches (e.g., PBX's or local exchange carrier's switches) route calls in accordance with economic incentives (e.g., least cost routing) resulting from a bidding process between participating interexchange telephony carriers (Carriers) by operation of a central processor, a computer referred to as a bidding moderator (Moderator). Each of the Carriers informs the Moderator of the rate it is willing to charge (or other economic incentive it is willing to offer) for service between two specific points in the telephony network at some particular time. The Moderator collects this bid information from all the Carriers, including at least one that is coupled to the Internet, sorts it among originating points and transmits it to an adjunct processor at each subscribing switch location and to all participating Carriers' network management centers. An adjunct database of economic incentive data is also coupled to the switch to provide an alternate source of call billing information that is updated periodically or on demand by the Moderator. From the list of all Carriers providing bid information to the Moderator, each Subscriber can select those Carriers to which it wants traffic routed and can change that selection at any time. After each new bid is submitted by a Carrier and is processed by the Moderator, it is distributed to both the relevant Subscribers and all other Carriers. All Carriers have the opportunity to submit at any time a lower or higher bid for any point-to-point routes on which they wish, respectively, to stimulate or discourage additional traffic. The Moderator could offer a different class of service to end users who are calling parties by broadcasting each carrier's bid to an interface unit at each use location. Some of the calls will be routed over the Internet on the basis of economic incentive data.

Description: A SYSTEM, METHOD AND ARTICLE OF MANUFACTURE FOR CALL AUCTIONING IN A TELEPHONY NETWORKING FABRIC Field Of The Invention The present invention relates to telephony network control and more particularly to an agent based system for providing call auctioning for telephony networking services. Background Of The Invention Agent based technology has become increasingly important for use with applications designed to interact with a user for performing various computer based tasks in foreground and background modes. Agent software comprises computer programs that are set on behalf of users to perform routine, tedious and time-consuming tasks. To be useful to an individual user, an agent must be personalized to the individual user's goals, habits and preferences. Thus, there exists a substantial requirement for the agent to efficiently and effectively acquire user-specific knowledge from the user and utilize it to perform tasks on behalf of the user. The concept of agency, or the user of agents, is well established. An agent is a person authorized by another person, typically referred to as a principal, to act on behalf of the principal. In this manner the principal empowers the agent to perform any of the tasks that the principal is unwilling or unable to perform. For example, an insurance agent may handle all of the insurance requirements for a principal, or a talent agent may act on behalf of a performer to arrange concert dates. With the advent of the computer, a new domain for employing agents has arrived. Significant advances in the realm of expert systems enable computer programs to act on behalf of computer users to perform routine, tedious and other time-consuming tasks. These computer programs are referred to as "software agents." Moreover, there has been a recent proliferation of computer and communication networks. These networks permit a user to access vast amounts of information and services without, essentially, any geographical boundaries. Thus, a software agent has a rich environment to perform a large number of tasks on behalf of a user. For example, it is now possible for an agent to make an airline reservation, purchase the ticket, and have the ticket delivered directly to a user. Similarly, an agent could scan the Internet and obtain information ranging from the latest sports or news to a particular graduate thesis in applied physics. Current solutions fail to apply agent technology to existing calendar technology to provide targeted acquisition of background information for a user's upcoming events. Many locally managed telephony systems, such as PBXs, employ "least cost routing" software to reduce telephony costs. The system's manager arranges with more than one interexchange carrier to carry the system's traffic from the local exchange to which it is connected to other exchanges. The manager keeps track of each carrier's charges and populates the routing table in the "least cost routing" software. The charges may be the regularly tariffed charges of the subscriber's primary carrier or contracted charges offered by an alternate carrier for a bulk discount or for discounting traffic during a specific time period during the day. The "least cost routing" software will examine each call attempt and automatically decide which carrier is the best economic choice for that call. If the call attempt fails, the software usually defaults the call attempt to the subscriber's primary carrier. Recently a great deal of competition has developed between telephony carriers. This has been stimulated by both regulatory and technological changes. As telephony becomes more of a commodity it would be of great benefit to consumers to stimulate this competition and facilitate the consumer's ability to make economic choices between telephony carriers. SUMMARY OF THE INVENTION Telephony services are presently dominated by fixed contractual relationships between users and service providers. However, because of technological and regulatory changes, telephony service is becoming more of a commodity, with competition between service providers for the users' traffic. Recently, the Internet has been utilized as a medium for carrying telephone calls. A preferred embodiment in accordance with the invention stimulates this competition and facilitates the consumer's ability to make economic choices between telephony carriers. Telephony switches (e.g., PBX's or local exchange carriers' Centrex-enabled switches) are coupled with the Internet to route calls through normal telephony channels and augmented transmission through the Internet in accordance with economic incentives (e.g., least cost routing) resulting from a bidding process between participating interexchange telephony carriers (Carriers), administered by a bidding service provider through operation of a central processor and a computer referred to as a bidding moderator (Moderator). In this arrangement, each of the Carriers transmits to the Moderator the rate it is willing to charge (or other economic incentive it is willing to offer) for service between two specific points, from an originating point NPA-NXX to a terminating point NPA-NXX, at some particular time. In the case of routing calls over the Internet, the carrier is responsible for converting the call to packets and routing the call from one Internet Protocol (IP) address to another IP address and converting the packets to an appropriate telephony signal. This "bid" rate may be lower than that Carrier's established rate for any of several reasons (e.g., the Carrier has excess capacity on that route at that time). The carrier may, for example, also decide for capacity or competitive reasons to place the same bid on all traffic originating at a specified NPA-NXX independent of destination or on all traffic independent of originating point and destination. The Carrier may change its bids as often as it likes during the day as traffic patterns change. The Moderator collects this bid information from all the participating Carriers, sorts it among originating points, and transmits it to an adjunct processor at each appropriate subscribing switch location and to all or some of the participating Carriers' network management centers. Each subscribing switch or adjunct device augmenting switch routing (Subscriber) gets the rate information submitted by some or all of the Carriers to the Moderator for all "point- to-point routes" originating in the Subscriber's NPA-NXX. The Moderator provides each Carrier with all or an appropriate subset of the bid information from all or some of the Carriers for point-to-point routes possible (from any NPA-NXX to any other NPA-NXX, or otherwise-defined telephony s network destination, in the world). From the list of all Carriers providing bid information to the Moderator, each Subscriber can select those Carriers to which it wants traffic routed and can change that selection at any time. The Subscriber downloads the bid information of those selected Carriers into the routing tables of the "least cost routing" software in its switch or at an adjunct database for the Subscriber to access as necessary. After each new bid is submitted by a Carrier and is processed by the Moderator, it will be distributed to both the relevant Subscribers and all other Carriers. All Carriers will have the opportunity thereafter to submit a lower or higher bid for any point-to-point routes on which they wish, respectively, to stimulate or discourage additional traffic. Similarly, the Moderator could offer a different class of service directly to end users who are calling parties. As part of such a service, Carriers will provide an economic incentive for all such end users in a given NPA-NXX, NPA-NPA or the entire country (or group of NPA-NXXs) to originate calls terminating anywhere (e.g., by means of a low rate or stated discount). In that case the Moderator would broadcast (by wired data link or wireless transmission) each carrier's bid to an interface unit at each end user location. The information may be displayed for evaluation by the end user or processed within the interface unit, with direction from the end user, and all outgoing calls routed to the selected carrier. If the carrier information is displayed for the end user, the user can choose a carrier for a call attempt and key in the selected carrier's carrier identification code before the desired destination address (e.g., telephone number). If the information is processed automatically within an interface unit in the line between the user's terminal equipment and the local exchange, the interface unit can automatically insert the appropriate carrier identifier before outgoing telephone numbers. Through this bidding process, carriers can compete for traffic on selected routes or compete for traffic originating from selected points in the telephony network. They can also manage their network traffic by adjusting their bids from time to time, depending on network traffic information or other network information. And users can easily make economic choices. DESCRIPTION OF THE DRAWINGS The foregoing and other objects, aspects and advantages are better understood from the following detailed description of a preferred embodiment of the invention with reference to the drawings, in which: Figure 1 A is a block diagram of a computer system in accordance with a preferred embodiment; Figure IB is a schematic view of an exemplary system of the invention showing dedicated communication lines from each Carrier to the Moderator, from the Moderator to each of the subscribing switches, and a common data link from the Moderator to each of the Carriers in accordance with a preferred embodiment; Figure 2 is a schematic view of an exemplary system of the invention showing the Carriers using a shared data link to provide information to the Moderator in accordance with a preferred embodiment; Figure 3 is a schematic view of an exemplary system of the invention showing switched access from the Moderator to each of the subscribing switches and to each Carrier in accordance with a preferred embodiment; Figure 4 is a schematic view of an exemplary system of the invention showing use of a shared data facility, such as a local area network, for communication from the Moderator to each of the subscribing switches and to each Carrier in accordance with a preferred embodiment; Figure 5 is a schematic representation of an exemplary process of the invention showing transmission of bid information from the Moderator to the subscribing switches in accordance with a preferred embodiment; Figure 6 is a schematic representation of an exemplary process of the invention showing transmission of information from the Moderator directly to end users in accordance with a preferred embodiment; Figure 7 is a schematic view of an exemplary end user portion of a system in accordance with a preferred embodiment; Figure 8 is a block diagram illustrating how a preferred embodiment can interact with the Internet to provide call auctioning processing; and Figure 9 is a block diagram illustrating caller preemptive bidding in accordance with an alternative embodiment. DETAILED DESCRIPTION A preferred embodiment of a system in accordance with the present invention is preferably practiced in the context of a personal computer such as an IBM compatible personal computer, Apple Macintosh computer or UNIX based workstation. A representative hardware environment is depicted in Figure 1, which illustrates a typical hardware configuration of a workstation in accordance with a preferred embodiment having a central processing unit 110, such as a microprocessor, and a number of other units interconnected via a system bus 112. The workstation shown in Figure 1 includes a Random Access Memory (RAM) 114, Read Only Memory (ROM) 116, an I/O adapter 118 for connecting peripheral devices such as disk storage units 120 to the bus 112, a user interface adapter 122 for connecting a keyboard 124, a mouse 126, a speaker 128, a microphone 132, and/or other user interface devices such as a touch screen (not shown) to the bus 112, communication adapter 134 for connecting the workstation to a communication network (e.g., a data processing network) and a display adapter 136 for connecting the bus 112 to a display device 138. The workstation typically has resident thereon an operating system such as the Microsoft Windows NT or Windows/95 Operating System (OS), the IBM OS/2 operating system, the MAC OS, or UNIX operating system. Those skilled in the art will appreciate that the present invention may also be implemented on platforms and operating systems other than those mentioned. A preferred embodiment is written using JAVA, C, and the C++ language and utilizes object oriented programming methodology. Object oriented programming (OOP) has become increasingly used to develop complex applications. As OOP moves toward the mainstream of software design and development, various software solutions require adaptation to make use of the benefits of OOP. A need exists for these principles of OOP to be applied to a messaging interface of an electronic messaging system such that a set of OOP classes and objects for the messaging interface can be provided. OOP is a process of developing computer software using objects, including the steps of analyzing the problem, designing the system, and constructing the program. An object is a software package that contains both data and a collection of related structures and procedures. Since it contains both data and a collection of structures and procedures, it can be visualized as a self-sufficient component that does not require other additional structures, procedures or data to perform its specific task. OOP, therefore, views a computer program as a collection of largely autonomous components, called objects, each of which is responsible for a specific task. This concept of packaging data, structures, and procedures together in one component or module is called encapsulation. In general, OOP components are reusable software modules which present an interface that conforms to an object model and which are accessed at run- time through a component integration architecture. A component integration architecture is a set of architecture mechanisms which allow software modules in different process spaces to utilize each others capabilities or functions. This is generally done by assuming a common component object model on which to build the architecture. It is worthwhile to differentiate between an object and a class of objects at this point. An object is a single instance of the class of objects, which is often just called a class. A class of objects can be viewed as a blueprint, from which many objects can be formed. OOP allows the programmer to create an object that is a part of another object. For example, the object representing a piston engine is said to have a composition- relationship with the object representing a piston. In reality, a piston engine comprises a piston, valves and many other components; the fact that a piston is an element of a piston engine can be logically and semantically represented in OOP by two objects. OOP also allows creation of an object that "depends from" another object. If there are two objects, one representing a piston engine and the other representing a piston engine wherein the piston is made of ceramic, then the relationship between the two objects is not that of composition. A ceramic piston engine does not make up a piston engine. Rather it is merely one kind of piston engine that has one more limitation than the piston engine; its piston is made of ceramic. In this case, the object representing the ceramic piston engine is called a derived object, and it inherits all of the aspects of the object representing the piston engine and adds further limitation or detail to it. The object representing the ceramic piston engine "depends from" the object representing the piston engine. The relationship between these objects is called inheritance. When the object or class representing the ceramic piston engine inherits all of the aspects of the objects representing the piston engine, it inherits the thermal characteristics of a standard piston defined in the piston engine class. However, the ceramic piston engine object overrides these ceramic specific thermal characteristics, which are typically different from those associated with a metal piston. It skips over the original and uses new functions related to ceramic pistons. Different kinds of piston engines have different characteristics, but may have the same underlying functions associated with it (e.g., how many pistons in the engine, ignition sequences, lubrication, etc.). To access each of these functions in any piston engine object, a programmer would call the same functions with the same names, but each type of piston engine may have different/overriding implementations of functions behind the same name. This ability to hide different implementations of a function behind the same name is called polymorphism and it greatly simplifies communication among objects. With the concepts of composition-relationship, encapsulation, inheritance and polymorphism, an object can represent just about anything in the real world. In fact, our logical perception of the reality is the only limit on determining the kinds of things that can become objects in object-oriented software. Some typical categories are as follows: • Objects can represent physical objects, such as automobiles in a traffic-flow simulation, electrical components in a circuit-design program, countries in an economics model, or aircraft in an air-traffic-control system. • Objects can represent elements of the computer-user environment such as windows, menus or graphics objects. • An object can represent an inventory, such as a personnel file or a table of the latitudes and longitudes of cities. • An object can represent user-defined data types such as time, angles, and complex numbers, or points on the plane. With this enormous capability of an object to represent just about any logically separable matters, OOP allows the software developer to design and implement a computer program that is a model of some aspects of reality, whether that reality is a physical entity, a process, a system, or a composition of matter. Since the object can represent anything, the software developer can create an object which can be used as a component in a larger software project in the future. If 90% of a new OOP software program consists of proven, existing components made from preexisting reusable objects, then only the remaining 10% of the new software project has to be written and tested from scratch. Since 90% already came from an inventory of extensively tested reusable objects, the potential domain from which an error could originate is 10% of the program. As a result, OOP enables software developers to build objects out of other, previously built, objects. This process closely resembles complex machinery being built out of assemblies and sub-assemblies. OOP technology, therefore, makes software engineering more like hardware engineering in that software is built from existing components, which are available to the developer as objects. All this adds up to an improved quality of the software as well as an increased speed of its development. Programming languages are beginning to fully support the OOP principles, such as encapsulation, inheritance, polymorphism, and composition-relationship. With the advent of the C++ language, many commercial software developers have embraced OOP. C++ is an OOP language that offers a fast, machine-executable code. Furthermore, C++ is suitable for both commercial-application and systems- programming projects. For now, C++ appears to be the most popular choice among many OOP programmers, but there is a host of other OOP languages, such as Smalltalk, common lisp object system (CLOS), and Eiffel. Additionally, OOP capabilities are being added to more traditional popular computer programming languages such as Pascal. The benefits of object classes can be summarized, as follows: • Objects and their corresponding classes break down complex programming problems into many smaller, simpler problems. • Encapsulation enforces data abstraction through the organization of data into small, independent objects that can communicate with each other. Encapsulation protects the data in an object from accidental damage, but allows other objects to interact with that data by calling the object's member functions and structures. • Subclassing and inheritance make it possible to extend and modify objects through deriving new kinds of objects from the standard classes available in the system. Thus, new capabilities are created without having to start from scratch. • Polymorphism and multiple inheritance make it possible for different programmers to mix and match characteristics of many different classes and create specialized objects that can still work with related objects in predictable ways. • Class hierarchies and containment hierarchies provide a flexible mechanism for modeling real- world objects and the relationships among them. • Libraries of reusable classes are useful in many situations, but they also have some limitations. For example: • Complexity. In a complex system, the class hierarchies for related classes can become extremely confusing, with many dozens or even hundreds of classes. • Flow of control. A program written with the aid of class libraries is still responsible for the flow of control (i.e., it must control the interactions among all the objects created from a particular library). The programmer has to decide which functions to call at what times for which kinds of objects. • Duplication of effort. Although class libraries allow programmers to use and reuse many small pieces of code, each programmer puts those pieces together in a different way. Two different programmers can use the same set of class libraries to write two programs that do exactly the same thing but whose internal structure (i.e., design) may be quite different, depending on hundreds of small decisions each programmer makes along the way. Inevitably, similar pieces of code end up doing similar things in slightly different ways and do not work as well together as they should. Class libraries are very flexible. As programs grow more complex, more programmers are forced to reinvent basic solutions to basic problems over and over again. A relatively new extension of the class library concept is to have a framework of class libraries. This framework is more complex and consists of significant collections of collaborating classes that capture both the small scale patterns and major mechanisms that implement the common requirements and design in a specific application domain. They were first developed to free application programmers from the chores involved in displaying menus, windows, dialog boxes, and other standard user interface elements for personal computers. Frameworks also represent a change in the way programmers think about the interaction between the code they write and code written by others. In the early days of procedural programming, the programmer called libraries provided by the operating system to perform certain tasks, but basically the program executed down the page from start to finish, and the programmer was solely responsible for the flow of control. This was appropriate for printing out paychecks, calculating a mathematical table, or solving other problems with a program that executed in just one way. The development of graphical user interfaces began to turn this procedural programming arrangement inside out. These interfaces allow the user, rather than program logic, to drive the program and decide when certain actions should be performed. Today, most personal computer software accomplishes this by means of an event loop which monitors the mouse, keyboard, and other sources of external events and calls the appropriate parts of the programmer's code according to actions that the user performs. The programmer no longer determines the order in which events occur. Instead, a program is divided into separate pieces that are called at unpredictable times and in an unpredictable order. By relinquishing control in this way to users, the developer creates a program that is much easier to use. Nevertheless, individual pieces of the program written by the developer still call libraries provided by the operating system to accomplish certain tasks, and the programmer must still determine the flow of control within each piece after being called by the event loop. Application code still "sits on top of the system. Even event loop programs require programmers to write a lot of code that should not need to be written separately for every application. The concept of an application framework carries the event loop concept further. Instead of dealing with all the nuts and bolts of constructing basic menus, windows, and dialog boxes and then making these things all work together, programmers using application frameworks start with working application code and basic user interface elements in place. Subsequently, they build from there by replacing some of the generic capabilities of the framework with the specific capabilities of the intended application. Application frameworks reduce the total amount of code that a programmer has to write from scratch. However, because the framework is really a generic application that displays windows, supports copy and paste, and so on, the programmer can also relinquish control to a greater degree than event loop programs permit. The framework code takes care of almost all event handling and flow of control, and the programmer's code is called only when the framework needs it (e.g., to create or manipulate a proprietary data structure). A programmer writing a framework program not only relinquishes control to the user (as is also true for event loop programs), but also relinquishes the detailed flow of control within the program to the framework. This approach allows the creation of more complex systems that work together in interesting ways, as opposed to isolated programs, having custom code, being created over and over again for similar problems. Thus, as is explained above, a framework basically is a collection of cooperating classes that make up a reusable design solution for a given problem domain. It typically includes objects that provide default behavior (e.g., for menus and windows), and programmers use it by inheriting some of that default behavior and overriding other behavior so that the framework calls application code at the appropriate times. There are three main differences between frameworks and class libraries: • Behavior versus protocol. Class libraries are essentially collections of behaviors that you can call when you want those individual behaviors in your program. A framework, on the other hand, provides not only behavior but also the protocol or set of rules that govern the ways in which behaviors can be combined, including rules for what a programmer is supposed to provide versus what the framework provides. • Call versus override. With a class library, the code the programmer instantiates objects and calls their member functions. It's possible to instantiate and call objects in the same way with a framework (i.e., to treat the framework as a class library), but to take full advantage of a framework's reusable design, a programmer typically writes code that overrides and is called by the framework. The framework manages the flow of control among its objects. Writing a program involves dividing responsibilities among the various pieces of software that are called by the framework rather than specifying how the different pieces should work together. • Implementation versus design. With class libraries, programmers reuse only implementations, whereas with frameworks, they reuse design. A framework embodies the way a family of related programs or pieces of software work. It represents a generic design solution that can be adapted to a variety of specific problems in a given domain. For example, a single framework can embody the way a user interface works, even though two different user interfaces created with the same framework might solve quite different interface problems. Thus, through the development of frameworks for solutions to various problems and programming tasks, significant reductions in the design and development effort for software can be achieved. A preferred embodiment of the invention utilizes HyperText Markup Language (HTML) to implement documents on the Internet together with a general-purpose secure communication protocol for a transport medium between the client and the Newco. HTTP or other protocols could be readily substituted for HTML without undue experimentation. Information on these products is available in T. Berners-Lee, D. Connoly, "RFC 1866: Hypertext Markup Language - 2.0" (Nov. 1995); and R. Fielding, H, Frystyk, T. Berners-Lee, J. Gettys and J.C. Mogul, "Hypertext Transfer Protocol - HTTP/1.1 : HTTP Working Group Internet Draft" (May 2, 1996). HTML is a simple data format used to create hypertext documents that are portable from one platform to another. HTML documents are SGML documents with generic semantics that are appropriate for representing information from a wide range of domains. HTML has been in use by the World-Wide Web global information initiative since 1990. HTML is an application of ISO Standard 8879:1986 Information Processing Text and Office Systems; Standard Generalized Markup Language (SGML). To date, Web development tools have been limited in their ability to create dynamic Web applications which span from client to server and interoperate with existing computing resources. Until recently, HTML has been the dominant technology used in development of Web-based solutions. However, HTML has proven to be inadequate in the following areas: • Poor performance; • Restricted user interface capabilities; • Can only produce static Web pages; • Lack of interoperability with existing applications and data; and • Inability to scale. Sun Microsystem's Java language solves many of the client-side problems by: • Improving performance on the client side; • Enabling the creation of dynamic, real-time Web applications; and • Providing the ability to create a wide variety of user interface components. With Java, developers can create robust User Interface (UI) components. Custom "widgets" (e.g. real-time stock tickers, animated icons, etc.) can be created, and client-side performance is improved. Unlike HTML, Java supports the notion of client-side validation, offloading appropriate processing onto the client for improved performance. Dynamic, real-time Web pages can be created. Using the above- mentioned custom UI components, dynamic Web pages can also be created. Sun's Java language has emerged as an industry-recognized language for "programming the Internet." Sun defines Java as: "a simple, object-oriented, distributed, interpreted, robust, secure, architecture-neutral, portable, high- performance, multithreaded, dynamic, buzzword-compliant, general-purpose programming language. Java supports programming for the Internet in the form of platform-independent Java applets." Java applets are small, specialized applications that comply with Sun's Java Application Programming Interface (API) allowing developers to add "interactive content" to Web documents (e.g. simple animations, page adornments, basic games, etc.). Applets execute within a Java-compatible browser (e.g. Netscape Navigator) by copying code from the server to client. From a language standpoint, Java's core feature set is based on C++. Sun's Java literature states that Java is basically "C++, with extensions from Objective C for more dynamic method resolution". Another technology that provides similar function to JAVA is provided by Microsoft and ActiveX Technologies, to give developers and Web designers wherewithal to build dynamic content for the Internet and personal computers. ActiveX includes tools for developing animation, 3-D virtual reality, video and other multimedia content. The tools use Internet standards, work on multiple platforms, and are being supported by over 100 companies. The group's building blocks are called ActiveX Controls, small, fast components that enable developers to embed parts of software in hypertext markup language (HTML) pages. ActiveX Controls work with a variety of programming languages including Microsoft Visual C++, Borland Delphi, Microsoft Visual Basic programming system and, in the future, Microsoft's development tool for Java, code named "Jakarta." ActiveX Technologies also includes ActiveX Server Framework, allowing developers to create server applications. One of ordinary skill in the art readily recognizes that ActiveX could be substituted for JAVA without undue experimentation to practice the invention. In accordance with a preferred embodiment, the call auctioning process is implemented as an agent responsible for preparing an individual for an upcoming meeting by helping him/her retrieve relevant information about a call from various sources. Figure IB shows an exemplary system for carrying out the herein disclosed bidding process for telephony services, in which a Moderator 1 administers collection and dissemination of bidding information. The Moderator 1 includes a computer with a processor and memory, together with input and output devices to communicate with the Carriers' network management computers 2, which are the source of the bidding information, and the switches 3, which are the ultimate users of the information. The Carriers include interexchange carriers that carry telephony traffic between local exchange switches and Internet exchanges for converting telephone calls into packets and routing them over the Internet. By means of the Figure IB system, the Carriers bid for traffic from subscribing switches 3, associated with a local exchange switch, to other local exchange switches. The Carriers transmit their bids from their network management computers 2 over data links 7, which may be either analog (using modems) or digital. However, the information is usually transmitted in digital form for input into the Moderator 1. Each Carrier has a network administrator who enters network management instructions into each network management computer 2 through input port 6 by means, for example, of a keyboard or a data link from a remote site or local computer. The Moderator 1 receives the bids, processes them in its processor, and enters them into a database in its memory by means of the data buses and registers internal to a computer. The processed bids, applicable to each subscribing switch 3, are transmitted to such switch 3, by way of a computer 4 (such as the one described in Figure 1 A) adjunct to the switch 3 over a data link 8. The data link 8 is illustrated as a dedicated transmission facility between the Moderator 1 and each switch 3. However, any other transmission technology offering a selective way to transmit data from the Moderator 1 to the switch may be used. (A "transmission facility" is a telephony path or channel. It may be, for example, a wired link, a radio channel in a wireless system, or a time slot in a digitally multiplexed optical transmission system). The data inputs and outputs of the Moderator 1, the network management computers 2, the adjunct computers 4, and the switches 3 are implemented by such devices as interfaces, registers and modems that are well known in the art. An adjunct computer is known in the art to be a computer, closely associated with a switch, that provides the switch's operating software additional data or operating logic to provide the switch with additional operational capability. In the herein disclosed architecture the adjunct computer 4 enters the bids received from the Moderator 1 into a database in its memory and receives, through input port 5, decision rules from the switch administrator. Software in the computer's processor accesses the data in memory and applies the decision rules to the bid data, producing the rate data required to populate the routing tables of the least cost routing software in the switch 3, or identifying to the switch's 3 routing software the least cost carrier. Alternatively, the switch 3 can access the adjunct database 747 of Figure 7 to identify the optimal route for the call. The adjunct computer 4 communicates with the switch 3 over a digital data link (such as the Internet), or data bus 11. If the switch 3 has enough processing capacity, the function of the adjunct computer 4 may be incorporated in the switch's processor and memory. In this case the switch must also provide input ports to receive transmission line 8 and input 5 for the switch administrator. Each switch 3 receives call attempts over incoming lines 12. Each call attempt includes routing data identifying the call's destination. The switch's least cost routing software then selects the carrier to which the call attempt shall be routed over outgoing line 13. An alternative to use of a PBX, a private switch, is subscription to Centrex service, in which the end users' switch is a software-defined portion of the local central office switch. With data links between the adjunct computer 4 and the local central office switch, the end users' switch administrator can administer the end user portion of the bidding process in much the same way as if a PBX were being administered. In addition, instead of using a PBX or subscribing to a Centrex service, a residential or small business customer could subscribe to a "least cost routing" feature offered by the local exchange carrier as part of its enhanced calling services (cuπently including call waiting, call forwarding, 3-way calling, speed dialing, etc.). As with Centrex service the end users' switch enabling these enhanced calling features is a software-defined portion of the local central office switch. The Moderator 1 also transmits all or an appropriate subset of the received bids to the network management computers 2 of all or some of the Carriers over the data link 9, 10. The exemplary architecture of Figure IB shows a combination of a single output data link 9 and individual Carrier input link 10 for this Moderator-to-Carriers bid data, indicating that the Moderator 1 sends the same data to all Carriers. There are many alternate transmission technologies available to broadcast this bid data to all Carriers, including dedicated bidirectional links between the Moderator 1 and each Carrier, combining the function of lines 7, 9, and 10. Figure 2 illustrates an alternative network architecture in which the individual Carrier-to-Moderator data links 14 share a common data input line 15 into the Moderator 1. This can be done, for example, by means of fiber optics using the SONET transmission protocol and ATM technology. This would require an ATM switching module at each junction 16 between the individual carrier links 10, 14 and the common Moderator input-output lines 9, 15. Figure 3 illustrates an architecture incorporating switched access from the Moderator 1 to the switches 3. In this architecture a single Moderator output link 17 transmits each subscribing switch's bid data to a switch 18, which may be a dedicated switch or part of the public switched network. The bid information appropriate to each subscribing switch 3 is switched to each individual switch data link 8. Figure 4 illustrates use of shared facilities between the Moderator 1 and each of the switches 3 and the Carriers' network management computers 2. This could be accomplished, for example, by many known local area network (LAN), metropolitan area network (MAN), the Internet and wide area network (WAN) technologies. The economic choices presented to telephony service users under this invention depend on bids submitted by carriers for telephony traffic over the routes they serve. Each route is defined by the local exchange switch serving its originating point and the local exchange switch serving its terminating point. Each local exchange switch is identified in the North American Numbering Plan by a unique NPA-NXX code, where the NPA is a three digit numbering plan area identifier (e.g., area code 201 identifies Northern New Jersey) and NXX is a three digit code identifying a particular local exchange switch within the numbering plan area. The interexchange carriers that utilize this bidding process are identified by a carrier access code. This code may be, for example, a "1" signifying the end user's primary carrier, a 5 digit code " 1 OXXX" for a carrier other than the end user's primary Carrier, or some other code designated for that purpose. Once a Carrier is selected for a call attempt, the appropriate carrier access code is inserted before the call attempt's routing data, (NPA)NXX-XXXX, the last four digits identifying the particular line served by the called party's NPA-NXX switch. The subscribing switch may also have dedicated direct links to one or more carrier points of presence. If such a carrier is selected, the subscribing switch would route the call attempt directly to that link. While the currently predominant numbering scheme for network switching end points is the North American Numbering Plan, other numbering schemes identifying route originating points and terminating points are possible and may be used as telephony technology evolves. The competing carriers bid for traffic by transmitting to the Moderator the economic incentive each carrier will offer for traffic over each route it serves (or, at least, each route it wishes to compete for using the bidding process). The economic incentive presently contemplated as being most usual is the rate (amount of money charged per unit of time). However, many other kinds of economic incentive may be offered, such as a credit toward other services (e.g., frequent flyer points) or a credit toward an additional rebate that may be offered if a user's traffic for a given month rises above a threshold. The economic incentive could be a combination of rate and another incentive. But the economic incentive should be selected from a limited set authorized by the provider of the bidding mechanism, because the incentive must be capable of being evaluated by the software in each subscribing switch's adjunct computer. A Carrier may wish to submit more than one bid for routes that originate at points at which it offers more than one class of service (e.g., switched service to some subscribers, dedicated access to others, or both classes of service to some). Each bid must be associated with a time period within which the bid will be effective. The rules of the bidding process can be structured in many ways. The following are examples of possible bidding rules. a) The day is divided into blocks of time by the bidding service provider and bids are submitted for each block of time. All bids for a given block of time must be submitted prior to a cut-off time that precedes that block of time by a protection interval. Any bid received after the cut-off time is considered to be effective for the next block of time, unless a new bid is subsequently received from the same Carrier for that route. The protection interval is needed to permit processing of the information by the Moderator and transmission of bids to the adjunct computers prior to the bid's start time. For example, if thirty minute blocks of time are auctioned, a five minute protection interval may be appropriate. b) Carriers are permitted to submit bids for any time interval by specifying a start time and a termination time or a start time and a good-until-cancel instruction. However, no bid can be effective before a protection time interval specified by the bidding service provider. The bidding service provider can provide confirmation of received bids back to the carrier if the data link from the Moderator to the Carriers is provided with a selective messaging capability. c) Carriers may be permitted to enter default bids for any route or block of time for which they transmit no other bid. d) As a fail-safe mechanism, to avoid use of old bids that have not been changed due to communication failure, the Moderator may impose a rule setting a time limit (a fail-safe protection time) to the applicability of any bid. At the expiration of the time limit, the expired bid could default to a preset default bid or to no bid. Such a rule could also be built into the adjunct computer software to protect against a failure in the Moderator-to-adjunct computer data link. The principal data feedback from the Moderator to the Carriers is the broadcast of all bidding data from the Moderator to each of the Carriers. This permits the Carriers to adjust their own bids for any particular route in view of other carriers' bids for that route. In a block of time bidding scheme this broadcast transmission may take place, in different service offerings, either before or after the bid cutoff time for a given block of time. If broadcast before the cutoff time, the Carriers have an opportunity, up to the cutoff time, to adjust their bids for that block of time. If the service is arranged for broadcast back to the Carriers after the cutoff time, the Carriers can adjust their bids for the next or subsequent blocks of time. If the bids are broadcast back to the Carriers after the cutoff time but before the bid's effective time, the Carriers would be able to manage their networks to take account of that time interval's bid structure. The bids can be adjusted to be higher or lower, dependent on whether the Carrier, in view of the state of its network traffic, wishes to further encourage or discourage additional traffic. The Carrier may wish to reduce its bid, for example, to encourage additional traffic on an underutilized telephony facility, or increase its bid to discourage traffic over a facility approaching a congested state. Depending on the transmission and computer technologies used, broadcast back to the Carriers could also be accomplished by posting all bids on a bulletin board system, making them available for retrieval by all Carriers. An evolutionary development in local exchange switch architecture is the combination of a "dumb" switch and a "smart" peripheral computer. In this arrangement the switch accomplishes the actual connection between incoming and outgoing telephony facilities and the switch operating software performs the management functions specifically supporting the switching function at times in conjunction with an Internet exchange unit or appropriate data connection from the peripheral computer. The peripheral computer contains the service-related software. This arrangement permits the telephony service provider to modify its service offerings without the need to ask the switch manufacturer to change the switch's operating software. Through use of a intelligent peripheral computer, one service that could be offered to all subscribers, including small businesses and individuals, is least cost routing. As in PBX least cost routing, the routing of a call attempt is dependent on population of a routing table. This table is a memory file containing the cost (or other economic incentive) of call carriage over each route accessed by the switch. In accordance with the herein disclosed process, this routing table could be populated by an adjunct computer, based on economic incentive data from a bidding Moderator and decision rules entered by a switch administrator. Or, with appropriate software, the adjunct computer function could be incorporated in the peripheral computer. With this combination of software implementations, a telephony service provider could offer least cost routing service, at economically advantageous rates based on a bidding process, to all of its subscribers. The network architecture involved is as illustrated in Figure IB, where the switch 3 represents the combination of the dumb switch and the intelligent peripheral computer and the input and output lines 12, 13 represent all of the telephony facilities accessed by the switch 3. The bid information being transmitted between the Moderator, the Carriers, and subscribing switches is sensitive business information and may need, under various circumstances, to be encrypted. Depending on how the service is arranged, there may be a need to protect the privacy of bids from interception by other participating Carriers or from interception by non-participating carriers. Some of the most sensitive information would be bid information sent from the Carriers to the Moderator and bid confirmation messages from the Moderator to the Carriers. Some less sensitive information would be the bids broadcast back to all participating Carriers after the cutoff time for a given block of time. There are several encryption schemes known in the art for such use, including the RSA and PGP schemes. Figure 5 illustrates the bidding process of this invention. The process is earned out by the participating interexchange Carriers, acting through their network management computers, the bidding service provider, acting through the Moderator computer, and the subscribing switches, acting through their adjunct computers. The carriers' primary purpose is to maximize revenue from the carriage of telephony traffic over their networks. The subscribing switches are usually managed to obtain telephony service most economically. In operation of the bidding process, the Moderator receives bids 520 from each Carrier specifying the economic incentive the Carrier is willing to offer for each route it serves. This information is stored in the computer's memory. At a time appropriate to the particular service arrangement in operation, the Moderator transmits 521 all or an appropriate subset of the bids received from all or an appropriate subset of Carriers to the appropriate targeted Carriers. The Moderator also processes the data in a sorting operation to determine which bids are for routes that have an originating point associated with each subscribing switch and transmits 523 the appropriate bids to each such switch. Each subscribing switch is operated by a switch administrator that formulates 529 the decision rules to be applied by the switch's adjunct computer. A decision rule may be, for example, a simple instruction to switch a call attempt to the Carrier that has submitted the lowest cost bid. The rules may include an instruction to route all calls in a particular time period (e.g., from midnight to 6:00 A.M.) to a particular Carrier to satisfy the requirements of a contract between the switch's owner and that Carrier, or because that Carrier has contracted to carry all traffic during that time period for a flat monthly fee. The switch administrator may also instruct the computer to value a non-rate economic incentive in a particular way. The bids and decision rules are received by the adjunct computer and stored in a data base in its memory. The adjunct computer applies 531 the decision rules to the economic incentive data received as bids and generates the Carrier selection data needed to populate the switch's routing table. The routing table is the file that is accessed by the switch's least cost routing software to decide which Carrier will receive a call attempt. The software will also provide for treatment of failed call attempts (e.g., retry, try the next lowest cost carrier, or default to the primary carrier). When a call attempt is presented to the switch, a routing decision is made and the call routed 533 to a carrier for transmission to the call's destination. In order to route a call, the subscribing switch's operating software connects the input register carrying the call attempt to the output register connected to the local carrier's local exchange switch or to the selected interexchange carrier's point of presence. The transmission of bid information between the Carriers and the Moderator is a feed back process. Each Carrier transmits 528 its economic incentive bids to the Moderator and the Moderator transmits 521 all or an appropriate subset of the received bids to the appropriate Carrier or Carriers. The Carrier starts its bid formulation by collecting 524 network data, such as the capacity and traffic loading of each network facility, and transmitting 525 this network data to the Carrier's network management computer. The network data can be entered by keying it in or over a data link from the Carrier's network operations systems. The Carrier's network administrator enters (e.g., by keying them in or by data link) network management instructions, such as the fact that a particular facility is being taken out of service for maintenance or has a trouble that reduces its transmission capacity. The network management instructions could also be based on network performance characteristics, such as response time, or competitive business factors, such as the intent to compete more intensively for traffic to a specific region of the country or over routes that compete directly with another specified Carrier. Software within each Carrier's network management computer then accesses the network data, the network management instructions, and the bid data received from the Moderator, from the computers memory and determines 527 the economic incentive the Carrier will bid for traffic over each route. These data are accessed by means of the data buses and registers commonly internal to a computer. These bids are stored in the computer memory and transmitted 528 to Moderator. Since the network management computer has access to the bids of all other appropriate Carriers, during each bidding cycle each Carrier has the opportunity to adjust its bids in view of the bids of all or an appropriate subset of other Carriers for traffic over each route. This adjustment may be accomplished automatically by the software in response to the network management instructions, or may be accomplished by direct input from the network administrator viewing displayed bidding data. The result of such adjustment consideration may be a decision to leave the bid as originally calculated, as being appropriate to accomplish the network administrator's objective. Figure 6 illustrates a process by which Carriers submit bids directly to end users for traffic originating in a specified NPA-NXX (or a group of NPA-NXXs, including a group comprising all NPA-NXXs in the North American Numbering Plan) and terminating anywhere. Here the Moderator receives bids 634 as before. However, the bids are independent of terminating point. The Moderator processes the data to sort it by originating point to determine 635 which bids apply to which end users, each end user having an interface unit to receive and store the data. The Moderator then transmits 636 the bid data for a particular NPA-NXX (or group of NPA-NXXs) to the interface units of all subscribing end users in such NPA-NXX originating point areas (i.e., all subscribing end users served by the local exchange switch for each such NPA-NXX), as interface unit information. The information may be displayed for evaluation by the end user or processed, within the interface unit, with direction from the end user, and all outgoing calls routed to the selected carrier. If the carrier information is displayed for the end user, the end user can choose a carrier for a call attempt and key in the selected carrier's carrier identification code before the desired telephone number. If the information is processed automatically within an interface unit, in the line or wireless connection between the end user's terminal equipment and the local exchange switch or an interexchange carrier's point of presence, the interface unit can automatically insert the appropriate carrier identifier before the outgoing telephone numbers. The interface unit could be a stand-alone piece of equipment, an attachment incorporated into the end user's terminal equipment or a software-defined portion of the-end user's terminal equipment. At the end user, the degree of automation of the process depends on the particular telephony terminal equipment being used. If the terminal equipment is a simple telephone, the telecommunicator function 637 specified in Figure 6 may consist of the end user reading the bids from a display screen in the interface unit, making the routing decision, and routing 638 the call attempt by keying in the selected carrier access code. If the terminal equipment is more complex, such as a personal computer or other microprocessor-containing equipment, the decision can be software implemented. The carrier access code could be inserted by the terminal equipment or by the interface unit, if the interface unit is in the end user's telephony access line or wireless connection to the telephony network. Figure 7 illustrates the interface unit's position within the bidding architecture of Figure 6. The interface unit 739 receives bid data from the Moderator 740 over a telephony facility that may be a wire link 744 or a wireless link 745. The interface unit has either a wired input port or contains a wireless receiver (e.g., radio or optical). The interface unit 739 is in the telephony path between the telecommunicator and the external telephony network, such as the Local Exchange (LEC) switch 742 that routes the call to the selected interexchange carrier 743 in response to the carrier access code. The LEC 742 also has access to an adjunct database 747 which has routing information and cost of routing that is updated on a periodic basis or in realtime on demand. This information in the adjunct database 747 allows the LEC to determine optimal routing. The moderator 740 is responsible for updating the information in the adjunct database 747. The interface unit may have a separate end user input port 746 for use by the end user to key in the selected carrier access code each time a call is placed. The end user may also be able to key in a carrier selection and the interface unit may contain a tone generator or digital signal generator necessary to automatically insert the carrier access identification code for each call attempt. The interface unit 739 may also have a screen to display the bid information to the end user. INFORMATION TRANSPORT IN COMMUNICATION NETWORKS Switching Techniques An understanding of how information travels in communication systems is required to appreciate the recent steps taken by key players in today's Internet backbone business. The traditional type of communication network is circuit switched. The U.S. telephone system uses such circuit switching techniques. When a person or a computer makes a telephone call, the switching equipment within the telephone system seeks out a physical path from the originating telephone to the receiver's telephone. A circuit-switched network attempts to form a dedicated connection, or circuit, between these two points by first establishing a circuit from the originating phone through the local switching office, then across trunk lines, to a remote switching office, and finally to the destination telephone. This dedicated connection exists until the call terminates. The establishment of a completed path is a prerequisite to the transmission of data for circuit switched networks. After the circuit is in place, the microphone captures analog signals, and the signals are transmitted to the Local Exchange Carrier (LEC) Central Office (CO) in analog form over an analog loop. The analog signal is not converted to digital form until it reaches the LEC Co, and even then only if the equipment is modern enough to support digital information. In an ISDN embodiment, however, the analog signals are converted to digital at the device and transmitted to the LEC as digital information. Upon connection, the circuit guarantees that the samples can be delivered and reproduced by maintaining a data path of 64 Kbps (thousand bits per second). This rate is not the rate required to send digitized voice per se. Rather, 64Kbps is the rate required to send voice digitized with the Pulse Code Modulated (PCM) technique. Many other methods for digitizing voice exist, including ADPCM (32Kbps), GSM (13 Kbps), TrueSpeech 8.5 (8.5 Kbps), G.723 (6.4 Kbps or 5.3 Kbps) and Voxware RT29HQ (2.9 Kbps). Furthermore, the 64 Kbps path is maintained from LEC Central Office (CO) Switch to LEC CO, but not from end to end. The analog local loop transmits an analog signal, not 64 Kbps digitized audio. One of these analog local loops typically exists as the "last mile" of each of the telephone network circuits to attach the local telephone of the calling party. This guarantee of capacity is the strength of circuit-switched networks. However, circuit switching has two significant drawbacks. First, the setup time can be considerable, because the call signal request may find the lines busy with other calls; in this event, there is no way to gain connection until some other connection terminates. Second, utilization can be low while costs are high. In other words, the calling party is charged for the duration of the call and for all of the time even if no data transmission takes place (i.e. no one speaks). Utilization can be low because the time between transmission of signals is unable to be used by any other calls, due to the dedication of the line. Any such unused bandwidth during the connection is wasted. Additionally, the entire circuit switching infrastructure is built around 64 Kbps circuits. The infrastructure assumes the use of PCM encoding techniques for voice. However, very high quality codecs are available that can encode voice using less than one-tenth of the bandwidth of PCM. However, the circuit switched network blindly allocates 64 Kbps of bandwidth for a call, end-to-end, even if only one-tenth of the bandwidth is utilized. Furthermore, each circuit generally only connects two parties. Without the assistance of conference bridging equipment, an entire circuit to a phone is occupied in connecting one party to another party. Circuit switching has no multicast or multipoint communication capabilities, except when used in combination with conference bridging equipment. Other reasons for long call setup time include the different signaling networks involved in call setup and the sheer distance causing propagation delay. Analog signaling from an end station to a CO on a low bandwidth link can also delay call setup. Also, the call setup data travels great distances on signaling networks that are not always transmitting data at the speed of light. When the calls are international, the variations in signaling networks grows, the equipment handling call setup is usually not as fast as modem setup and the distances are even greater, so call setup slows down even more. Further, in general, connection-oriented virtual or physical circuit setup, such as circuit switching, requires more time at connection setup time than comparable connectionless techniques due to the end-to-end handshaking required between the conversing parties. Message switching is another switching strategy that has been considered. With this form of switching, no physical path is established in advance between the sender and receiver; instead, whenever the sender has a block of data to be sent, it is stored at the first switching office and retransmitted to the next switching point after error inspection. Message switching places no limit on block size, thus requiring that switching stations must have disks to buffer long blocks of data; also, a single block may tie up a line for many minutes, rendering message switching useless for interactive traffic. Packet switched networks, which predominate the computer network industry, divide data into small pieces called packets that are multiplexed onto high capacity intermachine connections. A packet is a block of data with a strict upper limit on block size that carries with it sufficient identification necessary for delivery to its destination. Such packets usually contain several hundred bytes of data and occupy a given transmission line for only a few tens of milliseconds. Delivery of a larger file via packet switching requires that it be broken into many small packets and sent one at a time from one machine to the other. The network hardware delivers these packets to the specified destination, where the software reassembles them into a single file. Packet switching is used by virtually all computer interconnections because of its efficiency in data transmissions. Packet switched networks use bandwidth on a circuit as needed, allowing other transmissions to pass through the lines in the interim. Furthermore, throughput is increased by the fact that a router or switching office can quickly forward to the next stop any given packet, or portion of a large file, that it receives, long before the other packets of the file have arrived. In message switching, the intermediate router would have to wait until the entire block was delivered before forwarding. Today, message switching is no longer used in computer networks because of the superiority of packet switching. To better understand the Internet, a comparison to the telephone system is helpful. The public switched telephone network was designed with the goal of transmitting human voice, in a more or less recognizable form. Their suitability has been improved for computer-to-computer communications but remains far from optimal. A cable running between two computers can transfer data at speeds in the hundreds of megabits, and even gigabits per second. A poor error rate at these speeds would be only one error per day. In contrast, a dial-up line, using standard telephone lines, has a maximum data rate in the thousands of bits per second, and a much higher error rate. In fact, the combined bit rate times error rate performance of a local cable could be 11 orders of magnitude better than a voice-grade telephone line. New technology, however, has been improving the performance of these lines. Gateways and Routers The Internet is composed of a great number of individual networks, together forming a global connection of thousands of computer systems. After understanding that machines are connected to the individual networks, we can investigate how the networks are connected together to form an internetwork, or an internet. At this point, internet gateways and internet routers come into play. In terms of architecture, two given networks are connected by a computer that attaches to both of them. Internet gateways and routers provide those links necessary to send packets between networks and thus make connections possible. Without these links, data communication through the Internet would not be possible, as the information either would not reach its destination or would be incomprehensible upon arrival. A gateway may be thought of as an entrance to a communications network that performs code and protocol conversion between two otherwise incompatible networks. For instance, gateways transfer electronic mail and data files between networks over the internet. IP Routers are also computers that connect networks and is a newer term prefened by vendors. These routers must make decisions as to how to send the data packets it receives to its destination through the use of continually updated routing tables. By analyzing the destination network address of the packets, routers make these decisions. Importantly, a router does not generally need to decide which host or end user will receive a packet; instead, a router seeks only the destination network and thus keeps track of information sufficient to get to the appropriate network, not necessarily the appropriate end user. Therefore, routers do not need to be huge supercomputing systems and are often just machines with small main memories and little disk storage. The distinction between gateways and routers is slight, and current usage blurs the line to the extent that the two terms are often used interchangeably. In current terminology, a gateway moves data between different protocols and a router moves data between different networks. So a system that moves mail between TCP/IP and OSI is a gateway, but a traditional IP gateway (that connects different networks) is a router. Now, it is useful to take a simplified look at routing in traditional telephone systems. The telephone system is organized as a highly redundant, multilevel hierarchy. Each telephone has two copper wires coming out of it that go directly to the telephone company's nearest end office, also called a local central office. The distance is typically less than 10 km; in the U.S. alone, there are approximately 20,000 end offices. The concatenation of the area code and the first three digits of the telephone number uniquely specify an end office and help dictate the rate and billing structure. The two-wire connections between each subscriber's telephone and the end office are called local loops. If a subscriber attached to a given end office calls another subscriber attached to the same end office, the switching mechanism within the office sets up a direct electrical connection between the two local loops. This connection remains intact for the duration of the call, due to the circuit switching techniques discussed earlier. If the subscriber attached to a given end office calls a user attached to a different end office, more work has to be done in the routing of the call. First, each end office has a number of outgoing lines to one or more nearby switching centers, called toll offices. These lines are called toll connecting trunks. If both the caller's and the receiver's end offices happen to have a toll connecting trunk to the same toll office, the connection may be established within the toll office. If the caller and the recipient of the call do not share a toll office, then the path will have to be established somewhere higher up in the hierarchy. There are sectional and regional offices that form a network by which the toll offices are connected. The toll, sectional, and regional exchanges communicate with each other via high bandwidth inter-toll trunks. The number of different kinds of switching centers and their specific topology varies from country to country, depending on its telephone density. Using Network Level Communication for Smooth User Connection In addition to the data transfer functionality of the Internet, TCP/IP also seeks to convince users that the Internet is a solitary, virtual network. TCP/IP accomplishes this by providing a universal interconnection among machines, independent of the specific networks to which hosts and end users attach. Besides router interconnection of physical networks, software is required on each host to allow application programs to use the Internet as if it were a single, real physical network. Datagrams and Routing The basis of Internet service is an underlying, connectionless packet delivery system run by routers, with the basic unit of transfer being the packet. In internets rurining TCP/IP, such as the Internet backbone, these packets are called datagrams. This section will briefly discuss how these datagrams are routed through the Internet. In packet switching systems, routing is the process of choosing a path over which to send packets. As mentioned before, routers are the computers that make such choices. For the routing of information from one host within a network to another host on the same network, the datagrams that are sent do not actually reach the Internet backbone. This is an example of internal routing, which is completely self- contained within the network. The machines outside of the network do not participate in these internal routing decisions. At this stage, a distinction should be made between direct delivery and indirect delivery. Direct delivery is the transmission of a datagram from one machine across a single physical network to another machine on the same physical network. Such deliveries do not involve routers. Instead, the sender encapsulates the datagram in a physical frame, addresses it, and then sends the frame directly to the destination machine. Indirect delivery is necessary when more than one physical network is involved, in particular when a machine on one network wishes to communicate with a machine on another network. This type of communication is what we think of when we speak of routing information across the Internet backbone. In indirect delivery, routers are required. To send a datagram, the sender must identify a router to which the datagram can be sent, and the router then forwards the datagram towards the destination network. Recall that routers generally do not keep track of the individual host addresses (of which there are millions), but rather just keeps track of physical networks (of which there are thousands). Essentially, routers in the Internet form a cooperative, interconnected structure, and datagrams pass from router to router across the backbone until they reach a router that can deliver the datagram directly. TECHNOLOGY INTRODUCTION The changing face of the internet world causes a steady inflow of new systems and technology. The following three developments, each likely to become more prevalent in the near future, serve as an introduction to the technological arena: ATM Asynchronous Transfer Mode (ATM) is a networking technology using a highspeed, connection-oriented system for both local area and wide area networks. ATM networks require modern hardware including: • High speed switches that can operate at gigabit (trillion bit) per second speeds to handle the traffic from many computers; • Optical fibers (versus copper wires) that provide high data transfer rates, with host-to- ATM switch connections running at 100 or 155 Mbps (million bits per second); • Fixed size cells, each of which includes 53 bytes. ATM incorporates features of both packet switching and circuit switching, as it is designed to carry voice, video, and television signals in addition to data. Pure packet switching technology is not conducive to carrying voice transmissions because such transfers demand more stable bandwidth. Frame Relay Frame relay systems use packet switching techniques, but are more efficient than traditional systems. This efficiency is partly due to the fact that they perform less error checking than traditional X.25 packet-switching services. In fact, many intermediate nodes do little or no error checking at all and only deal with routing, leaving the error checking to the higher layers of the system. With the greater reliability of today's transmissions, much of the error checking previously performed has become unnecessary. Thus, frame relay offers increased performance compared to traditional systems. ISDN An Integrated Services Digital Network is an "international telecommunications standard for transmitting voice, video, and data over digital lines," most commonly running at 64 kilobits per second. The traditional phone network runs voice at only 4 kilobits per second. To adopt ISDN, an end user or company must upgrade to ISDN terminal equipment, central office hardware, and central office software. The ostensible goals of ISDN include the following: 1. To provide an internationally accepted standard for voice, data and signaling; 2. To make all transmission circuits end-to-end digital; 3. To adopt a standard out-of-band signaling system; and To bring significantly more bandwidth to the desktop. The telecommunication industry is a major transmission provider of the Internet. A preferred embodiment which provides many features from telephony environments for Internet clients is optimal. Figure 8 is a block diagram illustrating how a prefeπed embodiment can interact with the Internet to provide call auctioning processing. The same telecommunicator 870 is utilized to inquire of the interface unit 820 which receives bid data from the Moderator 845 over a telephony facility that may be a wire link 830 or a wireless link 840. The interface unit has either a wired input port or contains a wireless receiver (e.g., radio or optical). The interface unit 820 is in the telephony path between the telecommunicator 870 and the external network 800 which communicates to the local exchange switch 850 that routes the call to the selected interexchange carrier 860 in response to the carrier access code. The interface unit may have a separate end user input port 810 for use by the end user to key in the selected carrier access code each time a call is placed. The end user may also be able to key in a carrier selection and the interface unit may contain a tone generator or digital signal generator necessary to automatically insert the earner access identification code for each call attempt. The interface unit 820 may also have a screen to display the bid information to the end user. The interface unit 820 is responsible for converting the call from an analog signal to a digital signal utilizing a modem or other device and packetizing the information for transmittal to a particular Internet Protocol (IP) address through the Internet 800. The IP address will be stored in the table of routing information and associated with a corresponding port of the LEC 850 that has corresponding hardware and software for converting the packetized call information into an analog signal for transmittal to the appropriate interexchange carrier 860. The Internet 800 is tied to the Interface Unit 820 and the Local Switch 850. The gateway in a preferred embodiment provides a virtual connection from a circuit switched call in the public switched network and some entity in the Internet 800. Figure 9 is a block diagram illustrating caller preemptive bidding in accordance with an alternative embodiment. A caller that is only willing to pay a certain price for a call can submit the price and the characteristics of the call to the system as shown in function block 900. The price and characteristics of the call are then distributed to each of the carriers as shown in function block 910 until a carrier accepts the price as reflected in function block 920. When a carrier is found that is willing to accept the price in function block 920, the telecommunicator routes the call to the carrier that accepted the price as shown in function block 930. Then, control is passed back to 940 to await the next caller preemptive bidding. While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims: CLAIMS What is claimed is: 1. A method for managing a telephony network in which a computer collects economic incentive data from each carrier of a plurality of carriers which may include at least one carrier that is connected to the Internet to process calls, processes the economic incentive data and distributes all or a subset of the economic incentive data to one or more of the switches, each switch associated with an originating point, thereby enabling each switch of the plurality of switches to select which carrier of the plurality of carriers each call attempt presented to each switch shall be routed, comprising the steps of: (a) receiving in the computer, economic incentive data associated with each carrier for a call from each originating point of a plurality of originating points to each terminating point of a plurality of terminating points, processing the economic incentive data to determine a first originating point, and storing the economic incentive data in a database of the computer; (b) identifying a first set of switches of the plurality of switches, each switch associated with the first originating point, and transmitting the economic incentive data or an appropriate subset of the economic incentive data to one or more of the first set of switches; (c) transmitting the economic incentive data or an appropriate subset of the economic incentive data to one or more of the plurality of carriers; and (d) routing a call over the Internet or through a switch in response to selection of the most favorable economic incentive data. 2. A method for managing a telephony network as recited in claim 1, wherein the economic incentive data is rate data. 3. A method for managing a telephony network as recited in claim 1, wherein the economic incentive data received from each carrier is valid for a specified time. 4. A method for managing a telephony network as recited in claim 1 , wherein the economic incentive data valid for a specified time must be received by the computer prior to a cut-off time. 5. A method for managing a telephony network as recited in claim 1 , wherein each element of economic incentive data includes a specification of initial validity time and such element of economic incentive data is received by the moderating computer at least a protection interval of time before the initial validity time. 6. A method for managing a telephony network as recited in claim 1 , wherein a caller submits a price the caller is willing to pay for a call. 7. A method for managing a telephony network as recited in claim 1 , wherein an adjunct database is utilized to determine the routing of a call. 8. A method for managing a telephony network as recited in claim 7, wherein the adjunct database is updated on demand to reflect current economic incentive data. 9. A method for managing a telephony network as recited in claim 1, wherein for a failed call attempt, the decision rules specify routing the call attempt to the Internet. 10. An apparatus that manages a telephony network, comprising a moderator for enabling a first switch of a plurality of switches to route call attempts to a plurality of carriers, including at least one carrier coupled to the Internet for routing calls over the Internet, wherein the moderator comprises: (a) a computer coupled to the Internet with a processor and a memory that receives economic incentive data from a first carrier and stores the economic incentive data correlated to the first carrier in the memory; (b) logic that transmits all or an appropriate subset of the economic incentive data received from a plurality of carriers to one or more of the plurality of carriers; (c) logic that sorts the economic incentive data received from the plurality of carriers to determine a first subset of such data corresponding to the first switch; and (d) logic that transmits the first subset of economic incentive data to the first switch. 11. A computer program embodied on a computer-readable medium that manages a telephony network, comprising: (a) a code segment that receives economic incentive data from a first carrier and stores the economic incentive data correlated to the first carrier in the memory; (b) a code segment that transmits all or an appropriate subset of the economic incentive data received from a plurality of carriers to one or more of the plurality of carriers; (c) a code segment that sorts the economic incentive data received from the plurality of earners to determine a first subset of such data corresponding to the first switch; and (d) a code segment that transmits the first subset of economic incentive data to the first switch. 12. A computer program embodied on a computer-readable medium that manages a telephony network as recited in claim 11 , wherein the economic incentive data is rate data. 13. A computer program embodied on a computer-readable medium that manages a telephony network as recited in claim 11 , wherein the economic incentive data received from each carrier is valid for a specified first block of time. 14. A computer program embodied on a computer-readable medium that manages a telephony network as recited in claim 11 , wherein the economic incentive data valid for the first block of time must be received by the computer prior to a cut-off time. 15. A computer program embodied on a computer-readable medium that manages a telephony network as recited in claim 11 , wherein each element of economic incentive data includes a specification of initial validity time and such element of economic incentive data is received by the moderating computer at least a protection interval of time before the initial validity time. 16. A computer program embodied on a computer-readable medium that manages a telephony network as recited in claim 11 , wherein a caller submits a price the caller is willing to pay for a call. 17. A computer program embodied on a computer-readable medium that manages a telephony network as recited in claim 11 , wherein an adjunct database is utilized to determine the routing of a call. 18. A computer program embodied on a computer-readable medium that manages a telephony network as recited in claim 17, wherein the adjunct database is updated on demand to reflect current economic incentive data. 19. A computer program embodied on a computer-readable medium that manages a telephony network as recited in claim 11 , wherein for a failed call attempt, the decision rules specify routing the call attempt to the Internet. 20. A computer program embodied on a computer-readable medium that manages a telephony network as recited in claim 11, wherein a call is routed over the Internet.

Inventors: OSKIELUNAS LAWRENCE ADAM, OSKIELUNAS, LAWRENCE, ADAM
Applicants: A C PROPERTIES B V, A.C. PROPERTIES B.V.
Application year: 2000
Main classification: H04M3
IPC codes: H04M7, H04M15, H04Q3